Skip to content

Commit

Permalink
add energy capability to terminal, to allow them being charged by oth…
Browse files Browse the repository at this point in the history
…er mods (fix #251)
  • Loading branch information
Mari023 committed Mar 19, 2024
1 parent 64517f1 commit 04cbf69
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 0 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- add energy capability to terminal, to allow them being charged by other mods (fix #251)
15 changes: 15 additions & 0 deletions src/main/java/de/mari_023/ae2wtlib/AE2wtlibForge.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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
Expand All @@ -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,
Expand All @@ -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))
Expand Down

0 comments on commit 04cbf69

Please sign in to comment.