Fix crashes
This commit is contained in:
parent
2404e7416a
commit
50b98674ed
16 changed files with 50 additions and 18 deletions
common/mekanism
client
common
multipart
tileentity
TileEntityAdvancedBoundingBlock.javaTileEntityAdvancedElectricMachine.javaTileEntityAdvancedFactory.javaTileEntityBin.javaTileEntityChemicalFormulator.javaTileEntityChemicalInfuser.javaTileEntityContainerBlock.javaTileEntityDigitalMiner.javaTileEntityElectricChest.javaTileEntityElectricMachine.javaTileEntityEliteFactory.javaTileEntityFactory.javaTileEntityMetallurgicInfuser.java
util
|
@ -396,6 +396,17 @@ public class ClientTickHandler implements ITickHandler
|
|||
}
|
||||
}
|
||||
|
||||
public static void killDeadNetworks()
|
||||
{
|
||||
for(Iterator<IClientTicker> iter = tickingSet.iterator(); iter.hasNext();)
|
||||
{
|
||||
if(!iter.next().needsTicks())
|
||||
{
|
||||
iter.remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean isJetpackOn(EntityPlayer player)
|
||||
{
|
||||
if(player != mc.thePlayer)
|
||||
|
|
|
@ -12,6 +12,7 @@ import mekanism.api.transmitters.ITransmitter;
|
|||
import mekanism.api.transmitters.TransmissionType;
|
||||
import mekanism.api.transmitters.TransmissionType.Size;
|
||||
import mekanism.api.transmitters.TransmitterNetworkRegistry;
|
||||
import mekanism.client.ClientTickHandler;
|
||||
import mekanism.client.render.RenderPartTransmitter;
|
||||
import mekanism.common.IConfigurable;
|
||||
import mekanism.common.ITileNetwork;
|
||||
|
@ -462,6 +463,11 @@ public abstract class PartTransmitter<N extends DynamicNetwork<?, N>> extends TM
|
|||
{
|
||||
TransmitterNetworkRegistry.getInstance().pruneEmptyNetworks();
|
||||
}
|
||||
else {
|
||||
try {
|
||||
ClientTickHandler.killDeadNetworks();
|
||||
} catch(Exception e) {}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -522,6 +528,11 @@ public abstract class PartTransmitter<N extends DynamicNetwork<?, N>> extends TM
|
|||
{
|
||||
TransmitterNetworkRegistry.getInstance().pruneEmptyNetworks();
|
||||
}
|
||||
else {
|
||||
try {
|
||||
ClientTickHandler.killDeadNetworks();
|
||||
} catch(Exception e) {}
|
||||
}
|
||||
}
|
||||
|
||||
super.preRemove();
|
||||
|
|
|
@ -14,6 +14,7 @@ import mekanism.api.Object3D;
|
|||
import mekanism.api.energy.IStrictEnergyAcceptor;
|
||||
import mekanism.api.energy.IStrictEnergyStorage;
|
||||
import mekanism.common.IAdvancedBoundingBlock;
|
||||
import mekanism.common.util.InventoryUtils;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.inventory.ISidedInventory;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
@ -160,7 +161,7 @@ public class TileEntityAdvancedBoundingBlock extends TileEntityBoundingBlock imp
|
|||
{
|
||||
if(getInv() == null)
|
||||
{
|
||||
return new int[0];
|
||||
return InventoryUtils.EMPTY;
|
||||
}
|
||||
|
||||
return getInv().getBoundSlots(Object3D.get(this), slotID);
|
||||
|
|
|
@ -9,6 +9,7 @@ import mekanism.common.SideData;
|
|||
import mekanism.common.TileComponentEjector;
|
||||
import mekanism.common.TileComponentUpgrade;
|
||||
import mekanism.common.util.ChargeUtils;
|
||||
import mekanism.common.util.InventoryUtils;
|
||||
import mekanism.common.util.MekanismUtils;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
|
@ -48,7 +49,7 @@ public abstract class TileEntityAdvancedElectricMachine extends TileEntityBasicM
|
|||
{
|
||||
super(soundPath, name, location, perTick, ticksRequired, maxEnergy);
|
||||
|
||||
sideOutputs.add(new SideData(EnumColor.GREY, new int[0]));
|
||||
sideOutputs.add(new SideData(EnumColor.GREY, InventoryUtils.EMPTY));
|
||||
sideOutputs.add(new SideData(EnumColor.DARK_RED, new int[] {0}));
|
||||
sideOutputs.add(new SideData(EnumColor.PURPLE, new int[] {1}));
|
||||
sideOutputs.add(new SideData(EnumColor.DARK_BLUE, new int[] {2}));
|
||||
|
|
|
@ -5,6 +5,7 @@ import mekanism.common.SideData;
|
|||
import mekanism.common.TileComponentEjector;
|
||||
import mekanism.common.Tier.FactoryTier;
|
||||
import mekanism.common.block.BlockMachine.MachineType;
|
||||
import mekanism.common.util.InventoryUtils;
|
||||
|
||||
public class TileEntityAdvancedFactory extends TileEntityFactory
|
||||
{
|
||||
|
@ -12,7 +13,7 @@ public class TileEntityAdvancedFactory extends TileEntityFactory
|
|||
{
|
||||
super(FactoryTier.ADVANCED, MachineType.ADVANCED_FACTORY);
|
||||
|
||||
sideOutputs.add(new SideData(EnumColor.GREY, new int[0]));
|
||||
sideOutputs.add(new SideData(EnumColor.GREY, InventoryUtils.EMPTY));
|
||||
sideOutputs.add(new SideData(EnumColor.ORANGE, new int[] {0}));
|
||||
sideOutputs.add(new SideData(EnumColor.DARK_GREEN, new int[] {1}));
|
||||
sideOutputs.add(new SideData(EnumColor.PURPLE, new int[] {4}));
|
||||
|
|
|
@ -455,7 +455,7 @@ public class TileEntityBin extends TileEntityBasicBlock implements ISidedInvento
|
|||
return new int[] {0};
|
||||
}
|
||||
|
||||
return new int[0];
|
||||
return InventoryUtils.EMPTY;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -19,6 +19,7 @@ import mekanism.common.RecipeHandler;
|
|||
import mekanism.common.block.BlockMachine.MachineType;
|
||||
import mekanism.common.network.PacketTileEntity;
|
||||
import mekanism.common.util.ChargeUtils;
|
||||
import mekanism.common.util.InventoryUtils;
|
||||
import mekanism.common.util.MekanismUtils;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
|
@ -178,7 +179,7 @@ public class TileEntityChemicalFormulator extends TileEntityElectricBlock implem
|
|||
return new int[] {2};
|
||||
}
|
||||
|
||||
return new int[0];
|
||||
return InventoryUtils.EMPTY;
|
||||
}
|
||||
|
||||
public int getScaledProgress(int i)
|
||||
|
|
|
@ -21,6 +21,7 @@ import mekanism.common.RecipeHandler;
|
|||
import mekanism.common.block.BlockMachine.MachineType;
|
||||
import mekanism.common.network.PacketTileEntity;
|
||||
import mekanism.common.util.ChargeUtils;
|
||||
import mekanism.common.util.InventoryUtils;
|
||||
import mekanism.common.util.MekanismUtils;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
@ -463,6 +464,6 @@ public class TileEntityChemicalInfuser extends TileEntityElectricBlock implement
|
|||
return new int[3];
|
||||
}
|
||||
|
||||
return new int[0];
|
||||
return InventoryUtils.EMPTY;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package mekanism.common.tileentity;
|
||||
|
||||
import mekanism.common.ISustainedInventory;
|
||||
import mekanism.common.util.InventoryUtils;
|
||||
import mekanism.common.util.MekanismUtils;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.inventory.ISidedInventory;
|
||||
|
@ -183,7 +184,7 @@ public abstract class TileEntityContainerBlock extends TileEntityBasicBlock impl
|
|||
@Override
|
||||
public int[] getAccessibleSlotsFromSide(int side)
|
||||
{
|
||||
return new int[0];
|
||||
return InventoryUtils.EMPTY;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -940,7 +940,7 @@ public class TileEntityDigitalMiner extends TileEntityElectricBlock implements I
|
|||
@Override
|
||||
public int[] getAccessibleSlotsFromSide(int side)
|
||||
{
|
||||
return new int[0];
|
||||
return InventoryUtils.EMPTY;
|
||||
}
|
||||
|
||||
public TileEntity getEjectTile()
|
||||
|
|
|
@ -2,13 +2,11 @@ package mekanism.common.tileentity;
|
|||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import mekanism.common.Mekanism;
|
||||
import mekanism.common.util.ChargeUtils;
|
||||
import mekanism.common.util.InventoryUtils;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraftforge.common.ForgeDirection;
|
||||
|
||||
import com.google.common.io.ByteArrayDataInput;
|
||||
|
||||
|
@ -137,7 +135,7 @@ public class TileEntityElectricChest extends TileEntityElectricBlock
|
|||
{
|
||||
if(side == 0 || !canAccess())
|
||||
{
|
||||
return new int[0];
|
||||
return InventoryUtils.EMPTY;
|
||||
}
|
||||
else {
|
||||
int[] ret = new int[55];
|
||||
|
|
|
@ -7,6 +7,7 @@ import mekanism.common.SideData;
|
|||
import mekanism.common.TileComponentEjector;
|
||||
import mekanism.common.TileComponentUpgrade;
|
||||
import mekanism.common.util.ChargeUtils;
|
||||
import mekanism.common.util.InventoryUtils;
|
||||
import mekanism.common.util.MekanismUtils;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
|
@ -30,7 +31,7 @@ public abstract class TileEntityElectricMachine extends TileEntityBasicMachine
|
|||
{
|
||||
super(soundPath, name, location, perTick, ticksRequired, maxEnergy);
|
||||
|
||||
sideOutputs.add(new SideData(EnumColor.GREY, new int[0]));
|
||||
sideOutputs.add(new SideData(EnumColor.GREY, InventoryUtils.EMPTY));
|
||||
sideOutputs.add(new SideData(EnumColor.DARK_RED, new int[] {0}));
|
||||
sideOutputs.add(new SideData(EnumColor.DARK_GREEN, new int[] {1}));
|
||||
sideOutputs.add(new SideData(EnumColor.DARK_BLUE, new int[] {2}));
|
||||
|
|
|
@ -5,6 +5,7 @@ import mekanism.common.SideData;
|
|||
import mekanism.common.Tier.FactoryTier;
|
||||
import mekanism.common.TileComponentEjector;
|
||||
import mekanism.common.block.BlockMachine.MachineType;
|
||||
import mekanism.common.util.InventoryUtils;
|
||||
|
||||
public class TileEntityEliteFactory extends TileEntityFactory
|
||||
{
|
||||
|
@ -12,7 +13,7 @@ public class TileEntityEliteFactory extends TileEntityFactory
|
|||
{
|
||||
super(FactoryTier.ELITE, MachineType.ELITE_FACTORY);
|
||||
|
||||
sideOutputs.add(new SideData(EnumColor.GREY, new int[0]));
|
||||
sideOutputs.add(new SideData(EnumColor.GREY, InventoryUtils.EMPTY));
|
||||
sideOutputs.add(new SideData(EnumColor.ORANGE, new int[] {0}));
|
||||
sideOutputs.add(new SideData(EnumColor.DARK_GREEN, new int[] {1}));
|
||||
sideOutputs.add(new SideData(EnumColor.PURPLE, new int[] {4}));
|
||||
|
|
|
@ -29,6 +29,7 @@ import mekanism.common.TileComponentUpgrade;
|
|||
import mekanism.common.block.BlockMachine.MachineType;
|
||||
import mekanism.common.network.PacketTileEntity;
|
||||
import mekanism.common.util.ChargeUtils;
|
||||
import mekanism.common.util.InventoryUtils;
|
||||
import mekanism.common.util.MekanismUtils;
|
||||
import mekanism.common.util.StackUtils;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
@ -96,7 +97,7 @@ public class TileEntityFactory extends TileEntityElectricBlock implements IPerip
|
|||
{
|
||||
this(FactoryTier.BASIC, MachineType.BASIC_FACTORY);
|
||||
|
||||
sideOutputs.add(new SideData(EnumColor.GREY, new int[0]));
|
||||
sideOutputs.add(new SideData(EnumColor.GREY, InventoryUtils.EMPTY));
|
||||
sideOutputs.add(new SideData(EnumColor.ORANGE, new int[] {0}));
|
||||
sideOutputs.add(new SideData(EnumColor.DARK_GREEN, new int[] {1}));
|
||||
sideOutputs.add(new SideData(EnumColor.PURPLE, new int[] {4}));
|
||||
|
|
|
@ -11,21 +11,22 @@ import mekanism.api.infuse.InfusionInput;
|
|||
import mekanism.api.infuse.InfusionOutput;
|
||||
import mekanism.client.sound.IHasSound;
|
||||
import mekanism.common.IActiveState;
|
||||
import mekanism.common.IInvConfiguration;
|
||||
import mekanism.common.IEjector;
|
||||
import mekanism.common.IInvConfiguration;
|
||||
import mekanism.common.IRedstoneControl;
|
||||
import mekanism.common.IUpgradeTile;
|
||||
import mekanism.common.Mekanism;
|
||||
import mekanism.common.PacketHandler;
|
||||
import mekanism.common.SideData;
|
||||
import mekanism.common.PacketHandler.Transmission;
|
||||
import mekanism.common.RecipeHandler;
|
||||
import mekanism.common.RecipeHandler.Recipe;
|
||||
import mekanism.common.SideData;
|
||||
import mekanism.common.TileComponentEjector;
|
||||
import mekanism.common.TileComponentUpgrade;
|
||||
import mekanism.common.block.BlockMachine.MachineType;
|
||||
import mekanism.common.network.PacketTileEntity;
|
||||
import mekanism.common.util.ChargeUtils;
|
||||
import mekanism.common.util.InventoryUtils;
|
||||
import mekanism.common.util.MekanismUtils;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
|
@ -84,7 +85,7 @@ public class TileEntityMetallurgicInfuser extends TileEntityElectricBlock implem
|
|||
{
|
||||
super("MetallurgicInfuser", MachineType.METALLURGIC_INFUSER.baseEnergy);
|
||||
|
||||
sideOutputs.add(new SideData(EnumColor.GREY, new int[0]));
|
||||
sideOutputs.add(new SideData(EnumColor.GREY, InventoryUtils.EMPTY));
|
||||
sideOutputs.add(new SideData(EnumColor.ORANGE, new int[] {0}));
|
||||
sideOutputs.add(new SideData(EnumColor.PURPLE, new int[] {1}));
|
||||
sideOutputs.add(new SideData(EnumColor.DARK_RED, new int[] {2}));
|
||||
|
|
|
@ -15,6 +15,8 @@ import net.minecraftforge.common.ForgeDirection;
|
|||
|
||||
public final class InventoryUtils
|
||||
{
|
||||
public static final int[] EMPTY = new int[0];
|
||||
|
||||
public static IInventory checkChestInv(IInventory inv)
|
||||
{
|
||||
if(inv instanceof TileEntityChest)
|
||||
|
|
Loading…
Add table
Reference in a new issue