From e366f85de1471055607ae7e6057d952ca302a6d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Przemys=C5=82aw=20Pluta?= Date: Thu, 25 Aug 2022 13:59:22 +0200 Subject: [PATCH] Enable collecting items from map to equipment --- data.mv.db | Bin 32768 -> 32768 bytes maps/551e1afc-9cda-4d9f-8817-bfd831fc0a75.dat | Bin 21681 -> 23444 bytes .../bartlomiejpluta/demo/entity/Player.java | 30 ++++++++++-- .../demo/gui/EquipmentWindow.java | 24 ++++++++++ .../com/bartlomiejpluta/demo/gui/HUD.java | 8 +--- .../demo/gui/ItemIconView.java | 43 ++++++++++++++++++ .../bartlomiejpluta/demo/world/item/Item.java | 7 +++ .../demo/world/weapon/MeleeWeapon.java | 18 ++++---- .../demo/world/weapon/RangedWeapon.java | 20 ++++---- .../demo/world/weapon/Weapon.java | 7 +-- .../c473a91a-ff25-4e71-9bec-b35e48102aeb.xml | 42 +++++++---------- 11 files changed, 142 insertions(+), 57 deletions(-) create mode 100644 src/main/java/com/bartlomiejpluta/demo/gui/ItemIconView.java create mode 100644 src/main/java/com/bartlomiejpluta/demo/world/item/Item.java diff --git a/data.mv.db b/data.mv.db index 9ae0793745c8eff4c72381360aa31e1fcae8bd64..408d1a5c2d4d59c505543881e4cba0af0f0c53d4 100644 GIT binary patch delta 2916 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 CHpFfK delta 54 zcmbQTopIwz#tjwf-1C&USbP&R^Q5LKO`fP8IeCFP-()!*fyoWpJd+n_uuan7+bpF~ LC$PENUQz}C1X2;V diff --git a/src/main/java/com/bartlomiejpluta/demo/entity/Player.java b/src/main/java/com/bartlomiejpluta/demo/entity/Player.java index 1f0639c..e8460c7 100644 --- a/src/main/java/com/bartlomiejpluta/demo/entity/Player.java +++ b/src/main/java/com/bartlomiejpluta/demo/entity/Player.java @@ -1,10 +1,12 @@ package com.bartlomiejpluta.demo.entity; import com.bartlomiejpluta.base.api.character.Character; +import com.bartlomiejpluta.demo.world.item.Item; import lombok.NonNull; import org.joml.Vector2i; public class Player extends Creature { + private final Item[] equipment = new Item[4 * 4]; public Player(@NonNull Character entity) { super(entity); @@ -14,13 +16,35 @@ public class Player extends Creature { public void interact() { var coords = getCoordinates().add(getFaceDirection().vector, new Vector2i()); - for (var entity : getLayer().getEntities()) { - if (entity.getCoordinates().equals(coords) && entity instanceof MapObject) { - ((MapObject) entity).interact(this); + var entities = getLayer().getEntities(); + for (var i=0; i< entities.size(); ++i) { + var entity = entities.get(i); + + if (entity.getCoordinates().equals(coords) && entity instanceof MapObject object) { + object.interact(this); + return; + } + + if (entity.getCoordinates().equals(getCoordinates()) && entity instanceof Item item) { + pushItemToEquipment(item); + getLayer().removeEntity(item); } } } + private void pushItemToEquipment(@NonNull Item item) { + for(int i=0; iEquipment - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + +