From 67562ef29634f8d0ccee81f370be18f4fcb505cd Mon Sep 17 00:00:00 2001 From: malte0811 Date: Wed, 13 Sep 2017 21:32:19 +0200 Subject: [PATCH] Remove TE's that don't need to tick from the ticking TE list Use IE uranium if IC2 isn't installed --- .../malte0811/industrialWires/IndustrialWires.java | 2 +- .../industrialWires/blocks/IHasDummyBlocksIW.java | 8 +++++++- .../blocks/TileEntityIWMultiblock.java | 12 ++++++++++-- .../blocks/hv/TileEntityJacobsLadder.java | 1 + .../industrialWires/blocks/hv/TileEntityMarx.java | 6 ++++-- .../malte0811/industrialWires/hv/MarxOreHandler.java | 3 ++- 6 files changed, 25 insertions(+), 7 deletions(-) diff --git a/src/main/java/malte0811/industrialWires/IndustrialWires.java b/src/main/java/malte0811/industrialWires/IndustrialWires.java index 5a75b0d..d8c3874 100644 --- a/src/main/java/malte0811/industrialWires/IndustrialWires.java +++ b/src/main/java/malte0811/industrialWires/IndustrialWires.java @@ -66,7 +66,7 @@ import org.apache.logging.log4j.Logger; import java.util.ArrayList; import java.util.List; - +//TODO require IE 0.12-72 @Mod(modid = IndustrialWires.MODID, version = IndustrialWires.VERSION, dependencies = "required-after:immersiveengineering@[0.10-58,);after:ic2", certificateFingerprint = "7e11c175d1e24007afec7498a1616bef0000027d") @Mod.EventBusSubscriber diff --git a/src/main/java/malte0811/industrialWires/blocks/IHasDummyBlocksIW.java b/src/main/java/malte0811/industrialWires/blocks/IHasDummyBlocksIW.java index c7d0108..e12c0d9 100644 --- a/src/main/java/malte0811/industrialWires/blocks/IHasDummyBlocksIW.java +++ b/src/main/java/malte0811/industrialWires/blocks/IHasDummyBlocksIW.java @@ -18,12 +18,18 @@ package malte0811.industrialWires.blocks; +import blusunrize.immersiveengineering.common.blocks.IEBlockInterfaces; +import blusunrize.immersiveengineering.common.blocks.IEBlockInterfaces.IGeneralMultiblock; import net.minecraft.block.state.IBlockState; -public interface IHasDummyBlocksIW { +public interface IHasDummyBlocksIW extends IGeneralMultiblock { void placeDummies(IBlockState state); void breakDummies(); boolean isDummy(); + + default boolean isLogicDummy() { + return isDummy(); + } } diff --git a/src/main/java/malte0811/industrialWires/blocks/TileEntityIWMultiblock.java b/src/main/java/malte0811/industrialWires/blocks/TileEntityIWMultiblock.java index 0aa1e9c..3b1fa20 100644 --- a/src/main/java/malte0811/industrialWires/blocks/TileEntityIWMultiblock.java +++ b/src/main/java/malte0811/industrialWires/blocks/TileEntityIWMultiblock.java @@ -18,6 +18,8 @@ package malte0811.industrialWires.blocks; +import blusunrize.immersiveengineering.common.blocks.IEBlockInterfaces; +import blusunrize.immersiveengineering.common.blocks.IEBlockInterfaces.IGeneralMultiblock; import malte0811.industrialWires.util.MiscUtils; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.item.EntityItem; @@ -33,7 +35,7 @@ import javax.annotation.Nonnull; import javax.annotation.Nullable; import java.util.function.BiConsumer; -public abstract class TileEntityIWMultiblock extends TileEntityIWBase { +public abstract class TileEntityIWMultiblock extends TileEntityIWBase implements IGeneralMultiblock { protected final static String OFFSET = "offset"; protected final static String FORMED = "formed"; protected final static String MIRRORED = "mirrored"; @@ -53,7 +55,7 @@ public abstract class TileEntityIWMultiblock extends TileEntityIWBase { } @Nullable public T master(T here) { - if (offset.getX()==0&&offset.getY()==0&&offset.getZ()==0) { + if (!isLogicDummy()) { return here; } TileEntity m = world.getTileEntity(pos.subtract(offset)); @@ -62,6 +64,12 @@ public abstract class TileEntityIWMultiblock extends TileEntityIWBase { } return null; } + + @Override + public boolean isLogicDummy() { + return offset.getX()!=0||offset.getY()!=0||offset.getZ()!=0; + } + @Nonnull public T masterOr(T here, @Nonnull T def) { T master = master(here); diff --git a/src/main/java/malte0811/industrialWires/blocks/hv/TileEntityJacobsLadder.java b/src/main/java/malte0811/industrialWires/blocks/hv/TileEntityJacobsLadder.java index fdf26df..ae4a87f 100644 --- a/src/main/java/malte0811/industrialWires/blocks/hv/TileEntityJacobsLadder.java +++ b/src/main/java/malte0811/industrialWires/blocks/hv/TileEntityJacobsLadder.java @@ -114,6 +114,7 @@ public class TileEntityJacobsLadder extends TileEntityIEBase implements ITickabl @Override public void update() { + ApiUtils.checkForNeedlessTicking(this); if (isDummy()) { return; } diff --git a/src/main/java/malte0811/industrialWires/blocks/hv/TileEntityMarx.java b/src/main/java/malte0811/industrialWires/blocks/hv/TileEntityMarx.java index f832d27..b38327c 100644 --- a/src/main/java/malte0811/industrialWires/blocks/hv/TileEntityMarx.java +++ b/src/main/java/malte0811/industrialWires/blocks/hv/TileEntityMarx.java @@ -18,6 +18,7 @@ package malte0811.industrialWires.blocks.hv; +import blusunrize.immersiveengineering.api.ApiUtils; import blusunrize.immersiveengineering.api.IEProperties; import blusunrize.immersiveengineering.api.TargetingInfo; import blusunrize.immersiveengineering.api.energy.wires.IImmersiveConnectable; @@ -217,6 +218,7 @@ public class TileEntityMarx extends TileEntityIWMultiblock implements ITickable, @Override public void update() { + ApiUtils.checkForNeedlessTicking(this); FIRING_GENERATORS.remove(this); switch (state) { case NEXT_TICK: @@ -544,8 +546,8 @@ public class TileEntityMarx extends TileEntityIWMultiblock implements ITickable, public int outputEnergy(int amount, boolean simulate, int energyType) { TileEntityMarx master = master(this); if (master!=null && amount>0) { - double ret = master.storage.insertIF(amount, leftover, !simulate); - leftover -= ret; + double ret = master.storage.insertIF(amount, master.leftover, !simulate); + master.leftover -= ret; return (int) ret; } else { return 0; diff --git a/src/main/java/malte0811/industrialWires/hv/MarxOreHandler.java b/src/main/java/malte0811/industrialWires/hv/MarxOreHandler.java index 885ab87..f6afd69 100644 --- a/src/main/java/malte0811/industrialWires/hv/MarxOreHandler.java +++ b/src/main/java/malte0811/industrialWires/hv/MarxOreHandler.java @@ -58,7 +58,8 @@ public class MarxOreHandler { for (String ore : ores) { putOre("ore" + ore, .75, 4, "dust" + ore, "nugget" + ore); } - putOre("oreUranium", 1.25, 4, "crushedUranium", "nuggetUranium"); + putOre("oreUranium", 1.25, 4, + IndustrialWires.hasIC2?"crushedUranium":"ingotUranium", "nuggetUranium"); } public static void putOre(String oreName, double avgEnergy, double maxYield, String oreOut) {