Remove TE's that don't need to tick from the ticking TE list

Use IE uranium if IC2 isn't installed
This commit is contained in:
malte0811 2017-09-13 21:32:19 +02:00
parent d5d0dca298
commit 67562ef296
6 changed files with 25 additions and 7 deletions

View file

@ -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

View file

@ -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();
}
}

View file

@ -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 extends TileEntityIWMultiblock> 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 extends TileEntityIWMultiblock> T masterOr(T here, @Nonnull T def) {
T master = master(here);

View file

@ -114,6 +114,7 @@ public class TileEntityJacobsLadder extends TileEntityIEBase implements ITickabl
@Override
public void update() {
ApiUtils.checkForNeedlessTicking(this);
if (isDummy()) {
return;
}

View file

@ -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;

View file

@ -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) {