Fixed a few bugs!

This commit is contained in:
Aidan Brady 2013-10-30 21:59:36 -04:00
parent 102b0ffeda
commit f9350c40f8
5 changed files with 43 additions and 5 deletions

View file

@ -3,6 +3,7 @@ package mekanism.common.block;
import java.util.List;
import java.util.Random;
import mekanism.api.IConfigurable;
import mekanism.api.IUpgradeManagement;
import mekanism.api.Object3D;
import mekanism.api.energy.IEnergizedItem;
@ -54,6 +55,7 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.Icon;
@ -751,6 +753,25 @@ public class BlockMachine extends BlockContainer implements ISpecialBounds
upgrade.setSpeedMultiplier(((IUpgradeManagement)tileEntity).getSpeedMultiplier(), itemStack);
}
if(tileEntity instanceof IConfigurable)
{
IConfigurable config = (IConfigurable)tileEntity;
if(itemStack.stackTagCompound == null)
{
itemStack.setTagCompound(new NBTTagCompound());
}
itemStack.stackTagCompound.setBoolean("hasSideData", true);
itemStack.stackTagCompound.setBoolean("ejecting", config.getEjector().isEjecting());
for(int i = 0; i < 6; i++)
{
itemStack.stackTagCompound.setByte("config"+i, config.getConfiguration()[i]);
}
}
if(tileEntity instanceof TileEntityElectricBlock)
{
IEnergizedItem energizedItem = (IEnergizedItem)itemStack.getItem();

View file

@ -6,6 +6,7 @@ import ic2.api.item.ISpecialElectricItem;
import java.util.List;
import mekanism.api.EnumColor;
import mekanism.api.IConfigurable;
import mekanism.api.IUpgradeManagement;
import mekanism.api.energy.IEnergizedItem;
import mekanism.common.IElectricChest;
@ -157,6 +158,21 @@ public class ItemBlockMachine extends ItemBlock implements IEnergizedItem, IItem
((IUpgradeManagement)tileEntity).setSpeedMultiplier(getSpeedMultiplier(stack));
}
if(tileEntity instanceof IConfigurable)
{
IConfigurable config = (IConfigurable)tileEntity;
if(stack.stackTagCompound != null && stack.stackTagCompound.hasKey("hasSideData"))
{
config.getEjector().setEjecting(stack.stackTagCompound.getBoolean("ejecting"));
for(int i = 0; i < 6; i++)
{
config.getConfiguration()[i] = stack.stackTagCompound.getByte("config"+i);
}
}
}
if(tileEntity instanceof TileEntityFactory)
{
((TileEntityFactory)tileEntity).recipeType = getRecipeType(stack);

View file

@ -4,6 +4,7 @@ import ic2.api.tile.IWrenchable;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import mekanism.api.Object3D;
@ -33,7 +34,7 @@ public abstract class TileEntityBasicBlock extends TileEntity implements IWrench
public boolean doAutoSync = true;
public Set<ITileComponent> components = new HashSet<ITileComponent>();
public List<ITileComponent> components = new ArrayList<ITileComponent>();
@Override
public void updateEntity()

View file

@ -78,7 +78,7 @@ public class TileEntityLogisticalSorter extends TileEntityElectricBlock implemen
IInventory inventory = (IInventory)back;
TileEntityLogisticalTransporter transporter = (TileEntityLogisticalTransporter)front;
SlotInfo inInventory = TransporterUtils.takeItem(inventory, facing);
SlotInfo inInventory = TransporterUtils.takeItem(inventory, ForgeDirection.getOrientation(facing).getOpposite().ordinal());
if(inInventory != null && inInventory.itemStack != null)
{