From f60d83172d56260ed7a72e552175a3b6aca131d6 Mon Sep 17 00:00:00 2001 From: austin Date: Wed, 14 May 2025 21:17:44 -0400 Subject: [PATCH] fix equip transform containing parent --- .../electrosphere/entity/state/equip/ServerEquipState.java | 6 ++++++ .../entity/state/inventory/ServerInventoryState.java | 4 ++++ src/test/java/electrosphere/test/testutils/EngineInit.java | 7 ++++++- 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/main/java/electrosphere/entity/state/equip/ServerEquipState.java b/src/main/java/electrosphere/entity/state/equip/ServerEquipState.java index f4feb5a8..dab15bc4 100644 --- a/src/main/java/electrosphere/entity/state/equip/ServerEquipState.java +++ b/src/main/java/electrosphere/entity/state/equip/ServerEquipState.java @@ -95,6 +95,12 @@ public class ServerEquipState implements BehaviorTree { String equipItemClass = ItemUtils.getEquipClass(inInventoryEntity); List pointEquipClassList = point.getEquipClassWhitelist(); boolean itemIsInPointWhitelist = pointEquipClassList.contains(equipItemClass); + if(inInventoryEntity == null){ + throw new Error("In inventory entity is null!"); + } + if(ItemUtils.getContainingParent(inInventoryEntity) == null){ + throw new Error("Containing parent is null!"); + } if(!hasEquipped && targetIsItem && itemIsInPointWhitelist){ //hydrate inventory item String itemType = ItemUtils.getType(inInventoryEntity); diff --git a/src/main/java/electrosphere/entity/state/inventory/ServerInventoryState.java b/src/main/java/electrosphere/entity/state/inventory/ServerInventoryState.java index 63cef3e6..50dbf3d7 100644 --- a/src/main/java/electrosphere/entity/state/inventory/ServerInventoryState.java +++ b/src/main/java/electrosphere/entity/state/inventory/ServerInventoryState.java @@ -398,6 +398,10 @@ public class ServerInventoryState implements BehaviorTree { ServerInventoryState.serverRemoveItemFromInventories(existingContainer,itemEnt); } + //set containing parent + ItemUtils.setContainingParent(itemEnt, container); + + //apply transforms if(containerType == InventoryProtocol.INVENTORY_TYPE_EQUIP){ ServerEquipState equipState = ServerEquipState.getEquipState(container); EquipPoint point = equipState.getEquipPoint(slotId); diff --git a/src/test/java/electrosphere/test/testutils/EngineInit.java b/src/test/java/electrosphere/test/testutils/EngineInit.java index 789008eb..0b8494a8 100644 --- a/src/test/java/electrosphere/test/testutils/EngineInit.java +++ b/src/test/java/electrosphere/test/testutils/EngineInit.java @@ -11,9 +11,14 @@ import electrosphere.engine.loadingthreads.LoadingThread.LoadingThreadType; import electrosphere.engine.profiler.Profiler; import electrosphere.net.NetUtils; +/** + * Engine initialization utils for testing + */ public class EngineInit { - //The maximum number of frames to wait before failing the startup routine + /** + * The maximum number of frames to wait before failing the startup routine + */ public static final int MAX_FRAMES_TO_WAIT = 100; /**