From 8b6e9451abeb24a8ddd71e4e56d36464c9101c49 Mon Sep 17 00:00:00 2001 From: austin Date: Wed, 4 Sep 2024 01:06:35 -0400 Subject: [PATCH] fix item utils incorrect value handling --- .../engine/loadingthreads/ViewportLoading.java | 4 ---- .../electrosphere/entity/types/item/ItemUtils.java | 5 ++++- .../entity/state/equip/ClientEquipStateTests.java | 12 ++++++------ .../entity/types/item/ItemUtilsUnitTests.java | 12 ++++++++++++ 4 files changed, 22 insertions(+), 11 deletions(-) diff --git a/src/main/java/electrosphere/engine/loadingthreads/ViewportLoading.java b/src/main/java/electrosphere/engine/loadingthreads/ViewportLoading.java index d7a23f5d..a618c031 100644 --- a/src/main/java/electrosphere/engine/loadingthreads/ViewportLoading.java +++ b/src/main/java/electrosphere/engine/loadingthreads/ViewportLoading.java @@ -6,8 +6,6 @@ import org.joml.Vector3d; import electrosphere.auth.AuthenticationManager; import electrosphere.engine.Globals; -import electrosphere.entity.types.creature.CreatureTemplate; -import electrosphere.entity.types.creature.CreatureUtils; import electrosphere.logger.LoggerInterface; import electrosphere.menu.MenuGenerators; import electrosphere.menu.WindowStrings; @@ -76,8 +74,6 @@ public class ViewportLoading { //Run client startup process ClientLoading.loadViewport(params); - - CreatureUtils.serverSpawnBasicCreature(Globals.realmManager.first(), new Vector3d(1,1,1), "human", CreatureTemplate.createDefault("human")); } } diff --git a/src/main/java/electrosphere/entity/types/item/ItemUtils.java b/src/main/java/electrosphere/entity/types/item/ItemUtils.java index 9f4955dc..f5aa9583 100644 --- a/src/main/java/electrosphere/entity/types/item/ItemUtils.java +++ b/src/main/java/electrosphere/entity/types/item/ItemUtils.java @@ -366,7 +366,10 @@ public class ItemUtils { * @return true if the item IS in an inventory container, otherwise false */ public static boolean itemIsInInventory(Entity item){ - return item.containsKey(EntityDataStrings.ITEM_IS_IN_INVENTORY); + if(!item.containsKey(EntityDataStrings.ITEM_IS_IN_INVENTORY)){ + return false; + } + return (boolean)item.getData(EntityDataStrings.ITEM_IS_IN_INVENTORY); } /** diff --git a/src/test/java/electrosphere/entity/state/equip/ClientEquipStateTests.java b/src/test/java/electrosphere/entity/state/equip/ClientEquipStateTests.java index 7a6d76f7..bfed0028 100644 --- a/src/test/java/electrosphere/entity/state/equip/ClientEquipStateTests.java +++ b/src/test/java/electrosphere/entity/state/equip/ClientEquipStateTests.java @@ -4,7 +4,6 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertTrue; -import java.util.Iterator; import java.util.Set; import org.joml.Vector3d; @@ -60,14 +59,12 @@ public class ClientEquipStateTests extends EntityTestTemplate { //verify we still have everything clientSideCreatures = Globals.clientSceneWrapper.getScene().getEntitiesWithTag(EntityTags.CREATURE); - assertEquals(2, clientSideCreatures.size()); + assertEquals(1, clientSideCreatures.size()); clientSideItems = Globals.clientSceneWrapper.getScene().getEntitiesWithTag(EntityTags.ITEM); - assertEquals(2, clientSideItems.size()); + assertEquals(1, clientSideItems.size()); //grab the item in particular - Iterator entityIterator = clientSideItems.iterator(); - entityIterator.next(); - Entity child = entityIterator.next(); + Entity child = clientSideItems.iterator().next(); // //verify was equipped @@ -89,6 +86,9 @@ public class ClientEquipStateTests extends EntityTestTemplate { TestEngineUtils.simulateFrames(1); //spawn entities + CreatureTemplate creatureTemplate = CreatureTemplate.createDefault("human"); + Entity creature = CreatureUtils.serverSpawnBasicCreature(Globals.realmManager.first(), new Vector3d(0,0,0), "human", creatureTemplate); + //TODO: associate creature with player object created for viewport ItemUtils.serverSpawnBasicItem(Globals.realmManager.first(), new Vector3d(0,0,0), "Katana2H"); //wait for entities to propagate to client diff --git a/src/test/java/electrosphere/entity/types/item/ItemUtilsUnitTests.java b/src/test/java/electrosphere/entity/types/item/ItemUtilsUnitTests.java index 0c0b221b..25eb5032 100644 --- a/src/test/java/electrosphere/entity/types/item/ItemUtilsUnitTests.java +++ b/src/test/java/electrosphere/entity/types/item/ItemUtilsUnitTests.java @@ -4,6 +4,9 @@ import org.junit.jupiter.api.Assertions; import annotations.FastTest; import annotations.UnitTest; +import electrosphere.entity.Entity; +import electrosphere.entity.EntityCreationUtils; +import electrosphere.entity.EntityDataStrings; /** * Unit tests for item utils @@ -31,4 +34,13 @@ public class ItemUtilsUnitTests { Assertions.assertEquals(null, result); } + @UnitTest + @FastTest + public void itemIsInInventory_FalseValue_False(){ + Entity entity = EntityCreationUtils.TEST_createEntity(); + entity.putData(EntityDataStrings.ITEM_IS_IN_INVENTORY, false); + boolean result = ItemUtils.itemIsInInventory(entity); + Assertions.assertEquals(false, result); + } + }