Fixed crashes when using the wires without IC2, closes #41
This commit is contained in:
parent
a9a481c1cf
commit
cbcc95a010
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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<ItemStack, Template.BlockInfo, ItemStack> stackFromInfo = (s, i)->s;
|
||||
public static BiFunction<String, String, List<ItemStack>> getIC2Item = (s, s2)->ImmutableList.of();
|
||||
static Consumer<MarxOreHandler.OreInfo> addMarx = (o) -> {
|
||||
};
|
||||
static Consumer<MarxOreHandler.OreInfo> 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);
|
||||
|
|
|
@ -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":
|
||||
|
|
Loading…
Reference in a new issue