From 04cbf698a72c0d5f1752c09b6cb2d1f407bf7056 Mon Sep 17 00:00:00 2001 From: Mari023 <38946771+Mari023@users.noreply.github.com> Date: Tue, 19 Mar 2024 01:34:14 +0100 Subject: [PATCH] add energy capability to terminal, to allow them being charged by other mods (fix #251) --- CHANGELOG.md | 1 + .../java/de/mari_023/ae2wtlib/AE2wtlibForge.java | 15 +++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e69de29b..df4477f2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -0,0 +1 @@ +- add energy capability to terminal, to allow them being charged by other mods (fix #251) \ No newline at end of file diff --git a/src/main/java/de/mari_023/ae2wtlib/AE2wtlibForge.java b/src/main/java/de/mari_023/ae2wtlib/AE2wtlibForge.java index 44197dc5..84a3b7c1 100644 --- a/src/main/java/de/mari_023/ae2wtlib/AE2wtlibForge.java +++ b/src/main/java/de/mari_023/ae2wtlib/AE2wtlibForge.java @@ -11,6 +11,8 @@ import net.neoforged.fml.common.Mod; import net.neoforged.fml.config.ModConfig; import net.neoforged.fml.event.lifecycle.FMLClientSetupEvent; +import net.neoforged.neoforge.capabilities.Capabilities; +import net.neoforged.neoforge.capabilities.RegisterCapabilitiesEvent; import net.neoforged.neoforge.event.BuildCreativeModeTabContentsEvent; import net.neoforged.neoforge.event.entity.living.LivingEntityUseItemEvent; import net.neoforged.neoforge.event.entity.player.EntityItemPickupEvent; @@ -19,11 +21,14 @@ import net.neoforged.neoforge.network.registration.IPayloadRegistrar; import net.neoforged.neoforge.registries.RegisterEvent; +import appeng.items.tools.powered.powersink.PoweredItemCapabilities; + import de.mari_023.ae2wtlib.networking.AE2wtlibPacket; import de.mari_023.ae2wtlib.networking.CycleTerminalPacket; import de.mari_023.ae2wtlib.networking.RestockAmountPacket; import de.mari_023.ae2wtlib.networking.UpdateRestockPacket; import de.mari_023.ae2wtlib.networking.UpdateWUTPackage; +import de.mari_023.ae2wtlib.terminal.ItemWT; @Mod(AE2wtlib.MOD_NAME) @Mod.EventBusSubscriber @@ -47,6 +52,11 @@ public AE2wtlibForge(IEventBus modEventBus) { registerPacket(registrar, RestockAmountPacket.ID, RestockAmountPacket::new); }); modEventBus.addListener((FMLClientSetupEvent e) -> AE2wtlib.registerScreens()); + modEventBus.addListener((RegisterCapabilitiesEvent event) -> { + registerPowerStorageItem(event, AE2wtlibItems.instance().UNIVERSAL_TERMINAL); + registerPowerStorageItem(event, AE2wtlibItems.instance().PATTERN_ACCESS_TERMINAL); + registerPowerStorageItem(event, AE2wtlibItems.instance().PATTERN_ENCODING_TERMINAL); + }); } private static void registerPacket(IPayloadRegistrar registrar, ResourceLocation id, @@ -58,6 +68,11 @@ private static void registerPacket(IPayloadRegistrar registrar, ResourceLocation })); } + private static void registerPowerStorageItem(RegisterCapabilitiesEvent event, ItemWT item) { + event.registerItem(Capabilities.EnergyStorage.ITEM, + (object, context) -> new PoweredItemCapabilities(object, item), item); + } + @SubscribeEvent public static void handle(LivingEntityUseItemEvent.Finish event) { if (!(event.getEntity() instanceof ServerPlayer player))