diff --git a/src/main/java/malte0811/industrialWires/blocks/hv/TileEntityJacobsLadder.java b/src/main/java/malte0811/industrialWires/blocks/hv/TileEntityJacobsLadder.java index 9e7b9b7..92143dc 100644 --- a/src/main/java/malte0811/industrialWires/blocks/hv/TileEntityJacobsLadder.java +++ b/src/main/java/malte0811/industrialWires/blocks/hv/TileEntityJacobsLadder.java @@ -21,8 +21,6 @@ import blusunrize.immersiveengineering.common.blocks.IEBlockInterfaces.IDirectio import blusunrize.immersiveengineering.common.blocks.TileEntityIEBase; import com.elytradev.mirage.lighting.IColoredLight; import com.elytradev.mirage.lighting.Light; -import ic2.api.energy.event.EnergyTileLoadEvent; -import ic2.api.energy.event.EnergyTileUnloadEvent; import ic2.api.energy.tile.IEnergyEmitter; import ic2.api.energy.tile.IEnergySink; import malte0811.industrialWires.IWConfig; @@ -31,6 +29,7 @@ import malte0811.industrialWires.IndustrialWires; import malte0811.industrialWires.blocks.IBlockBoundsIW; import malte0811.industrialWires.blocks.IHasDummyBlocksIW; import malte0811.industrialWires.blocks.ISyncReceiver; +import malte0811.industrialWires.compat.Compat; import malte0811.industrialWires.network.MessageTileSyncIW; import malte0811.industrialWires.util.Beziers; import malte0811.industrialWires.util.ConversionUtil; @@ -53,7 +52,6 @@ import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Vec3d; import net.minecraft.world.World; -import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.energy.CapabilityEnergy; import net.minecraftforge.fml.common.Optional; @@ -86,7 +84,6 @@ public class TileEntityJacobsLadder extends TileEntityIEBase implements ITickabl public int timeTillActive = -1; private double tStep = 0; private double consumtionJoule; - private boolean addedToIC2Net = false; private int soundPhase; private Vec3d soundPos; public double salt; @@ -111,6 +108,12 @@ public class TileEntityJacobsLadder extends TileEntityIEBase implements ITickabl 40 * consumtionJoule); } + @Override + public void onLoad() { + super.onLoad(); + Compat.loadIC2Tile.accept(this); + } + @Override public void update() { ApiUtils.checkForNeedlessTicking(this); @@ -118,9 +121,6 @@ public class TileEntityJacobsLadder extends TileEntityIEBase implements ITickabl return; } if (!world.isRemote) { - if (hasIC2&&!addedToIC2Net) { - addToIC2Net(); - } if ((controlControls[0][0] == null || timeTillActive == -1 || t >= 1) && energy.getEnergyStoredJ() >= 2 * consumtionJoule) { for (int j = 0; j < size.movementPoints; j++) { @@ -187,12 +187,6 @@ public class TileEntityJacobsLadder extends TileEntityIEBase implements ITickabl } } - @Optional.Method(modid = "ic2") - private void addToIC2Net() { - MinecraftForge.EVENT_BUS.post(new EnergyTileLoadEvent(this)); - addedToIC2Net = true; - } - private void initArc(int delay) { if (controlMovement == null) { initControl(); @@ -463,31 +457,22 @@ public class TileEntityJacobsLadder extends TileEntityIEBase implements ITickabl @Override public void onChunkUnload() { if (hasIC2) { - removeFromIC2Net(); + Compat.unloadIC2Tile.accept(this); } - addedToIC2Net = false; super.onChunkUnload(); } @Override public void invalidate() { if (hasIC2) - removeFromIC2Net(); + Compat.unloadIC2Tile.accept(this); if (world.isRemote) { //stop sound IndustrialWires.proxy.playJacobsLadderSound(this, -1, soundPos); } - addedToIC2Net = false; super.invalidate(); } - @Optional.Method(modid = "ic2") - private void removeFromIC2Net() { - if (!world.isRemote && addedToIC2Net) { - MinecraftForge.EVENT_BUS.post(new EnergyTileUnloadEvent(this)); - } - } - @Nonnull @Override diff --git a/src/main/java/malte0811/industrialWires/blocks/wire/TileEntityIC2ConnectorTin.java b/src/main/java/malte0811/industrialWires/blocks/wire/TileEntityIC2ConnectorTin.java index c15041a..477d82f 100644 --- a/src/main/java/malte0811/industrialWires/blocks/wire/TileEntityIC2ConnectorTin.java +++ b/src/main/java/malte0811/industrialWires/blocks/wire/TileEntityIC2ConnectorTin.java @@ -20,7 +20,6 @@ import blusunrize.immersiveengineering.api.energy.wires.*; import blusunrize.immersiveengineering.api.energy.wires.ImmersiveNetHandler.AbstractConnection; import blusunrize.immersiveengineering.api.energy.wires.ImmersiveNetHandler.Connection; import blusunrize.immersiveengineering.common.blocks.IEBlockInterfaces.IDirectionalTile; -import ic2.api.energy.event.EnergyTileUnloadEvent; import ic2.api.energy.tile.IEnergyAcceptor; import ic2.api.energy.tile.IEnergyEmitter; import ic2.api.energy.tile.IEnergySink; @@ -40,7 +39,6 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraft.util.ITickable; import net.minecraft.util.math.*; -import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.energy.CapabilityEnergy; import net.minecraftforge.energy.IEnergyStorage; @@ -295,7 +293,7 @@ public class TileEntityIC2ConnectorTin extends TileEntityImmersiveConnectable im @Override public void invalidate() { if (!world.isRemote) - MinecraftForge.EVENT_BUS.post(new EnergyTileUnloadEvent(this)); + Compat.unloadIC2Tile.accept(this); super.invalidate(); } @@ -303,7 +301,7 @@ public class TileEntityIC2ConnectorTin extends TileEntityImmersiveConnectable im public void onChunkUnload() { super.onChunkUnload(); if (!world.isRemote) - MinecraftForge.EVENT_BUS.post(new EnergyTileUnloadEvent(this)); + Compat.unloadIC2Tile.accept(this); } @Override diff --git a/src/main/java/malte0811/industrialWires/compat/Compat.java b/src/main/java/malte0811/industrialWires/compat/Compat.java index 9652c6b..c2c8152 100644 --- a/src/main/java/malte0811/industrialWires/compat/Compat.java +++ b/src/main/java/malte0811/industrialWires/compat/Compat.java @@ -17,6 +17,7 @@ package malte0811.industrialWires.compat; import blusunrize.immersiveengineering.api.ApiUtils; import blusunrize.immersiveengineering.api.tool.ToolboxHandler; +import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import crafttweaker.CraftTweakerAPI; import ic2.api.energy.event.EnergyTileLoadEvent; @@ -44,6 +45,7 @@ import pl.asie.charset.api.wires.IBundledReceiver; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; +import java.util.List; import java.util.Map; import java.util.function.BiFunction; import java.util.function.Consumer; @@ -53,6 +55,7 @@ public class Compat { public static final String CRAFTTWEAKER_ID = "crafttweaker"; public static final String CHARSET_ID = "charset"; public static BiFunction stackFromInfo = (s, i)->s; + public static BiFunction> getIC2Item = (s, s2)->ImmutableList.of(); static Consumer addMarx = (o) -> { }; static Consumer removeMarx = (o) -> { @@ -143,6 +146,7 @@ public class Compat { MinecraftForge.EVENT_BUS.post(new EnergyTileUnloadEvent((IEnergyTile) te)); } }; + getIC2Item = (type, variant)->ImmutableList.of(IC2Items.getItem(type, variant)); try { Class teb = Class.forName("ic2.core.block.TileEntityBlock"); Method getPickBlock = teb.getDeclaredMethod("getPickBlock", EntityPlayer.class, RayTraceResult.class); diff --git a/src/main/java/malte0811/industrialWires/crafting/IC2TRHelper.java b/src/main/java/malte0811/industrialWires/crafting/IC2TRHelper.java index 802844d..0dd18c6 100644 --- a/src/main/java/malte0811/industrialWires/crafting/IC2TRHelper.java +++ b/src/main/java/malte0811/industrialWires/crafting/IC2TRHelper.java @@ -16,9 +16,9 @@ package malte0811.industrialWires.crafting; import blusunrize.immersiveengineering.api.ApiUtils; -import ic2.api.item.IC2Items; import malte0811.industrialWires.IEObjects; import malte0811.industrialWires.IndustrialWires; +import malte0811.industrialWires.compat.Compat; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.Ingredient; import net.minecraftforge.oredict.OreIngredient; @@ -35,9 +35,7 @@ public final class IC2TRHelper { return new OreIngredient("itemRubber"); } } - if (IndustrialWires.hasIC2) { - stacks.add(IC2Items.getItem(type, variant)); - } + stacks.addAll(Compat.getIC2Item.apply(type, variant)); if (IndustrialWires.hasTechReborn) { switch (type) { case "cable":