From 5c062ac9844b5db0b1a77a982879b0e379175a17 Mon Sep 17 00:00:00 2001 From: austin Date: Tue, 13 May 2025 14:19:47 -0400 Subject: [PATCH] interact with inventory objects --- assets/Data/entity/objects/containers.json | 16 ++++++++++++++++ docs/src/progress/renderertodo.md | 1 + .../client/interact/ButtonInteraction.java | 4 ++++ .../data/common/interact/InteractionData.java | 5 +++++ 4 files changed, 26 insertions(+) diff --git a/assets/Data/entity/objects/containers.json b/assets/Data/entity/objects/containers.json index a4772b8c..226d434f 100644 --- a/assets/Data/entity/objects/containers.json +++ b/assets/Data/entity/objects/containers.json @@ -27,6 +27,22 @@ "offsetY" : 0, "offsetZ" : 0 }, + "buttonInteraction" : { + "onInteract" : "inventory", + "interactionShape" : { + "type" : "CUBE", + "dimension1" : 2.0, + "dimension2" : 2.0, + "dimension3" : 2.0, + "rotX": 0, + "rotY": 0, + "rotZ": 0, + "rotW": 1, + "offsetX" : 0.0, + "offsetY" : 0.0, + "offsetZ" : 0.0 + } + }, "tokens": [ "GRAVITY" ], diff --git a/docs/src/progress/renderertodo.md b/docs/src/progress/renderertodo.md index 2e4ad962..9eff8534 100644 --- a/docs/src/progress/renderertodo.md +++ b/docs/src/progress/renderertodo.md @@ -1746,6 +1746,7 @@ Enitity id collision validation Full-sized wheat plants spawn in forest now Natural inventory size explicitly defined in data Fix server life tree missing nullcheck +Inventory interaction type diff --git a/src/main/java/electrosphere/client/interact/ButtonInteraction.java b/src/main/java/electrosphere/client/interact/ButtonInteraction.java index 8874c8af..3dc4c2ef 100644 --- a/src/main/java/electrosphere/client/interact/ButtonInteraction.java +++ b/src/main/java/electrosphere/client/interact/ButtonInteraction.java @@ -13,6 +13,7 @@ import electrosphere.entity.state.equip.ClientEquipState; import electrosphere.entity.state.inventory.InventoryUtils; import electrosphere.entity.types.common.CommonEntityFlags; import electrosphere.entity.types.common.CommonEntityUtils; +import electrosphere.logger.LoggerInterface; import electrosphere.net.parser.net.message.EntityMessage; /** @@ -61,6 +62,9 @@ public class ButtonInteraction { case InteractionData.ON_INTERACT_DIALOG: { DialogMenuGenerator.displayEntityDialog(target); } break; + case InteractionData.ON_INTERACT_INVENTORY: { + LoggerInterface.loggerEngine.WARNING("Interacting with inventory"); + } break; default: { throw new Error("Unhandled interaction signal " + interactionData.getOnInteract()); } diff --git a/src/main/java/electrosphere/data/common/interact/InteractionData.java b/src/main/java/electrosphere/data/common/interact/InteractionData.java index 36ffb7a3..baf00949 100644 --- a/src/main/java/electrosphere/data/common/interact/InteractionData.java +++ b/src/main/java/electrosphere/data/common/interact/InteractionData.java @@ -26,6 +26,11 @@ public class InteractionData { * A dialog interaction */ public static final String ON_INTERACT_DIALOG = "dialog"; + + /** + * An inventory interaction + */ + public static final String ON_INTERACT_INVENTORY = "inventory"; /** * The function to run on interaction