From bbec72109af2fdebec4091198e3dc8b70be1d86e Mon Sep 17 00:00:00 2001 From: Progwml6 Date: Fri, 6 Dec 2013 13:33:55 -0500 Subject: [PATCH] move more block logic to mantle --- build.properties | 2 +- .../java/tconstruct/blocks/LavaTankBlock.java | 2 +- .../java/tconstruct/blocks/SmelteryBlock.java | 6 +- .../blocks/component/SmelteryScan.java | 2 +- .../blocks/logic/AdaptiveDrainLogic.java | 17 +- .../blocks/logic/AdaptiveSmelteryLogic.java | 6 +- .../blocks/logic/LavaTankLogic.java | 1 + .../blocks/logic/MultiServantLogic.java | 177 -------------- .../blocks/logic/SmelteryDrainLogic.java | 9 +- .../blocks/logic/SmelteryLogic.java | 5 +- .../tconstruct/blocks/logic/TankAirLogic.java | 4 +- .../blocks/logic/TowerFurnaceLogic.java | 4 +- src/main/java/tconstruct/common/TRecipes.java | 1 + .../blocks/AdaptiveInventoryLogic.java | 102 -------- .../blocks/ExpandableInventoryLogic.java | 218 ------------------ .../library/component/TankLayerScan.java | 5 +- .../tconstruct/library/util/IMasterLogic.java | 12 - .../tconstruct/library/util/IMasterNode.java | 8 - .../library/util/IServantLogic.java | 44 ---- 19 files changed, 35 insertions(+), 590 deletions(-) delete mode 100644 src/main/java/tconstruct/blocks/logic/MultiServantLogic.java delete mode 100644 src/main/java/tconstruct/library/blocks/AdaptiveInventoryLogic.java delete mode 100644 src/main/java/tconstruct/library/blocks/ExpandableInventoryLogic.java delete mode 100644 src/main/java/tconstruct/library/util/IMasterLogic.java delete mode 100644 src/main/java/tconstruct/library/util/IMasterNode.java delete mode 100644 src/main/java/tconstruct/library/util/IServantLogic.java diff --git a/build.properties b/build.properties index 22fedc1601b..3de04083edd 100644 --- a/build.properties +++ b/build.properties @@ -1,6 +1,6 @@ minecraft_version=1.6.4 forge_version=9.11.1.964 -mantle_version=425894 +mantle_version=b850ec FMP_version=1.0.0.211 CCLIB_version=1.0.0.44 NEI_version=1.6.1.5_d1 diff --git a/src/main/java/tconstruct/blocks/LavaTankBlock.java b/src/main/java/tconstruct/blocks/LavaTankBlock.java index 0e2db4b4be3..468cb6d8a91 100644 --- a/src/main/java/tconstruct/blocks/LavaTankBlock.java +++ b/src/main/java/tconstruct/blocks/LavaTankBlock.java @@ -24,7 +24,7 @@ import tconstruct.blocks.logic.LavaTankLogic; import tconstruct.client.block.TankRender; import tconstruct.library.TConstructRegistry; -import tconstruct.library.util.IServantLogic; +import mantle.blocks.iface.IServantLogic; public class LavaTankBlock extends BlockContainer { diff --git a/src/main/java/tconstruct/blocks/SmelteryBlock.java b/src/main/java/tconstruct/blocks/SmelteryBlock.java index 6ea9e1423e6..e9f4e7e0b57 100644 --- a/src/main/java/tconstruct/blocks/SmelteryBlock.java +++ b/src/main/java/tconstruct/blocks/SmelteryBlock.java @@ -14,7 +14,6 @@ import net.minecraft.world.World; import tconstruct.TConstruct; import tconstruct.blocks.logic.AdaptiveSmelteryLogic; -import tconstruct.blocks.logic.MultiServantLogic; import tconstruct.blocks.logic.AdaptiveDrainLogic; import tconstruct.blocks.logic.SmelteryDrainLogic; import tconstruct.blocks.logic.SmelteryLogic; @@ -22,8 +21,9 @@ import tconstruct.library.TConstructRegistry; import mantle.blocks.abstracts.InventoryBlock; import mantle.blocks.iface.IFacingLogic; -import tconstruct.library.util.IMasterLogic; -import tconstruct.library.util.IServantLogic; +import mantle.blocks.iface.IMasterLogic; +import mantle.blocks.iface.IServantLogic; +import mantle.blocks.iface.MultiServantLogic; import tconstruct.util.config.PHConstruct; public class SmelteryBlock extends InventoryBlock diff --git a/src/main/java/tconstruct/blocks/component/SmelteryScan.java b/src/main/java/tconstruct/blocks/component/SmelteryScan.java index 00632dd52a8..94ebf9ff3d1 100644 --- a/src/main/java/tconstruct/blocks/component/SmelteryScan.java +++ b/src/main/java/tconstruct/blocks/component/SmelteryScan.java @@ -3,6 +3,7 @@ import java.util.ArrayList; import java.util.Iterator; +import mantle.blocks.iface.IServantLogic; import mantle.world.CoordTuple; import net.minecraft.block.Block; import net.minecraft.nbt.NBTTagCompound; @@ -12,7 +13,6 @@ import tconstruct.common.TContent; import tconstruct.common.TRepo; import tconstruct.library.component.TankLayerScan; -import tconstruct.library.util.IServantLogic; public class SmelteryScan extends TankLayerScan { diff --git a/src/main/java/tconstruct/blocks/logic/AdaptiveDrainLogic.java b/src/main/java/tconstruct/blocks/logic/AdaptiveDrainLogic.java index 70f8e3ba851..96d606f1913 100644 --- a/src/main/java/tconstruct/blocks/logic/AdaptiveDrainLogic.java +++ b/src/main/java/tconstruct/blocks/logic/AdaptiveDrainLogic.java @@ -1,7 +1,8 @@ package tconstruct.blocks.logic; import mantle.blocks.iface.IFacingLogic; -import tconstruct.library.util.IMasterLogic; +import mantle.blocks.iface.IMasterLogic; +import mantle.blocks.iface.MultiServantLogic; import net.minecraft.entity.EntityLivingBase; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.INetworkManager; @@ -28,7 +29,7 @@ public boolean canUpdate () public boolean setPotentialMaster (IMasterLogic master, World world, int x, int y, int z) { // TConstruct.logger.info("Master: "+master); - return (master instanceof AdaptiveSmelteryLogic || master instanceof AdaptiveDrainLogic) && !hasMaster; + return (master instanceof AdaptiveSmelteryLogic || master instanceof AdaptiveDrainLogic) && !hasValidMaster(); } @Override @@ -36,7 +37,7 @@ public int fill (ForgeDirection from, FluidStack resource, boolean doFill) { if (hasValidMaster() && canDrain(from, null)) { - AdaptiveSmelteryLogic smeltery = (AdaptiveSmelteryLogic) worldObj.getBlockTileEntity(master.x, master.y, master.z); + AdaptiveSmelteryLogic smeltery = (AdaptiveSmelteryLogic) worldObj.getBlockTileEntity(getMasterPosition().x, getMasterPosition().y, getMasterPosition().z); return smeltery.fill(from, resource, doFill); } return 0; @@ -48,7 +49,7 @@ public FluidStack drain (ForgeDirection from, int maxDrain, boolean doDrain) // TConstruct.logger.info("Attempting drain " + hasValidMaster()); if (hasValidMaster() && canDrain(from, null)) { - AdaptiveSmelteryLogic smeltery = (AdaptiveSmelteryLogic) worldObj.getBlockTileEntity(master.x, master.y, master.z); + AdaptiveSmelteryLogic smeltery = (AdaptiveSmelteryLogic) worldObj.getBlockTileEntity(getMasterPosition().x, getMasterPosition().y, getMasterPosition().z); // TConstruct.logger.info("Found master"); return smeltery.drain(from, maxDrain, doDrain); } @@ -60,7 +61,7 @@ public FluidStack drain (ForgeDirection from, FluidStack resource, boolean doDra { if (hasValidMaster() && canDrain(from, null)) { - AdaptiveSmelteryLogic smeltery = (AdaptiveSmelteryLogic) worldObj.getBlockTileEntity(master.x, master.y, master.z); + AdaptiveSmelteryLogic smeltery = (AdaptiveSmelteryLogic) worldObj.getBlockTileEntity(getMasterPosition().x, getMasterPosition().y, getMasterPosition().z); return smeltery.drain(from, resource, doDrain); } return null; @@ -71,7 +72,7 @@ public boolean canFill (ForgeDirection from, Fluid fluid) { if (hasValidMaster()) { - AdaptiveSmelteryLogic smeltery = (AdaptiveSmelteryLogic) worldObj.getBlockTileEntity(master.x, master.y, master.z); + AdaptiveSmelteryLogic smeltery = (AdaptiveSmelteryLogic) worldObj.getBlockTileEntity(getMasterPosition().x, getMasterPosition().y, getMasterPosition().z); return smeltery.getFillState() < 2; } return false; @@ -82,7 +83,7 @@ public boolean canDrain (ForgeDirection from, Fluid fluid) { if (hasValidMaster()) { - AdaptiveSmelteryLogic smeltery = (AdaptiveSmelteryLogic) worldObj.getBlockTileEntity(master.x, master.y, master.z); + AdaptiveSmelteryLogic smeltery = (AdaptiveSmelteryLogic) worldObj.getBlockTileEntity(getMasterPosition().x, getMasterPosition().y, getMasterPosition().z); return smeltery.getFillState() > 0; } return false; @@ -93,7 +94,7 @@ public FluidTankInfo[] getTankInfo (ForgeDirection from) { if (hasValidMaster() && (from == getForgeDirection() || from == getForgeDirection().getOpposite() || from == ForgeDirection.UNKNOWN)) { - AdaptiveSmelteryLogic smeltery = (AdaptiveSmelteryLogic) worldObj.getBlockTileEntity(master.x, master.y, master.z); + AdaptiveSmelteryLogic smeltery = (AdaptiveSmelteryLogic) worldObj.getBlockTileEntity(getMasterPosition().x, getMasterPosition().y, getMasterPosition().z); return smeltery.getTankInfo(ForgeDirection.UNKNOWN); } return null; diff --git a/src/main/java/tconstruct/blocks/logic/AdaptiveSmelteryLogic.java b/src/main/java/tconstruct/blocks/logic/AdaptiveSmelteryLogic.java index 8eff029e89d..4bb2f03994f 100644 --- a/src/main/java/tconstruct/blocks/logic/AdaptiveSmelteryLogic.java +++ b/src/main/java/tconstruct/blocks/logic/AdaptiveSmelteryLogic.java @@ -28,14 +28,14 @@ import tconstruct.common.TContent; import tconstruct.common.TRepo; import tconstruct.inventory.AdaptiveSmelteryContainer; -import tconstruct.library.blocks.AdaptiveInventoryLogic; +import mantle.blocks.abstracts.AdaptiveInventoryLogic; import tconstruct.library.component.IComponentHolder; import tconstruct.library.component.LogicComponent; import tconstruct.library.component.MultiFluidTank; import mantle.blocks.iface.IActiveLogic; import mantle.world.CoordTuple; -import tconstruct.library.util.IMasterLogic; -import tconstruct.library.util.IServantLogic; +import mantle.blocks.iface.IMasterLogic; +import mantle.blocks.iface.IServantLogic; public class AdaptiveSmelteryLogic extends AdaptiveInventoryLogic implements IActiveLogic, IMasterLogic, IComponentHolder, IFluidHandler { diff --git a/src/main/java/tconstruct/blocks/logic/LavaTankLogic.java b/src/main/java/tconstruct/blocks/logic/LavaTankLogic.java index e590c798c81..946e18928e9 100644 --- a/src/main/java/tconstruct/blocks/logic/LavaTankLogic.java +++ b/src/main/java/tconstruct/blocks/logic/LavaTankLogic.java @@ -1,5 +1,6 @@ package tconstruct.blocks.logic; +import mantle.blocks.iface.MultiServantLogic; import net.minecraft.block.Block; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.INetworkManager; diff --git a/src/main/java/tconstruct/blocks/logic/MultiServantLogic.java b/src/main/java/tconstruct/blocks/logic/MultiServantLogic.java deleted file mode 100644 index af4e1fc07b8..00000000000 --- a/src/main/java/tconstruct/blocks/logic/MultiServantLogic.java +++ /dev/null @@ -1,177 +0,0 @@ -package tconstruct.blocks.logic; - -import mantle.world.CoordTuple; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.INetworkManager; -import net.minecraft.network.packet.Packet; -import net.minecraft.network.packet.Packet132TileEntityData; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; -import tconstruct.library.util.IMasterLogic; -import tconstruct.library.util.IServantLogic; - -public class MultiServantLogic extends TileEntity implements IServantLogic -{ - boolean hasMaster; - CoordTuple master; - short masterID; - byte masterMeat; //Typo, it stays! - - public boolean canUpdate () - { - return false; - } - - public boolean hasValidMaster () - { - if (!hasMaster) - return false; - - if (worldObj.getBlockId(master.x, master.y, master.z) == masterID && worldObj.getBlockMetadata(master.x, master.y, master.z) == masterMeat) - return true; - - else - { - hasMaster = false; - master = null; - return false; - } - } - - public CoordTuple getMasterPosition () - { - return master; - } - - public void overrideMaster (int x, int y, int z) - { - hasMaster = true; - master = new CoordTuple(x, y, z); - masterID = (short) worldObj.getBlockId(x, y, z); - masterMeat = (byte) worldObj.getBlockMetadata(x, y, z); - } - - public void removeMaster () - { - hasMaster = false; - master = null; - masterID = 0; - masterMeat = 0; - } - - @Deprecated - public boolean verifyMaster (IMasterLogic logic, int x, int y, int z) - { - if (master.equalCoords(x, y, z) && worldObj.getBlockId(x, y, z) == masterID && worldObj.getBlockMetadata(x, y, z) == masterMeat) - return true; - else - return false; - } - - @Deprecated - public boolean setMaster (int x, int y, int z) - { - if (!hasMaster || worldObj.getBlockId(master.x, master.y, master.z) != masterID || (worldObj.getBlockMetadata(master.x, master.y, master.z) != masterMeat)) - { - overrideMaster(x, y, z); - return true; - } - else - { - return false; - } - } - - @Override - public boolean setPotentialMaster (IMasterLogic master, World world, int x, int y, int z) - { - return !hasMaster; - } - - @Override - public boolean verifyMaster (IMasterLogic logic, World world, int x, int y, int z) - { - if (hasMaster) - { - return hasValidMaster(); - } - else - { - overrideMaster(x, y, z); - return true; - } - } - - @Override - public void invalidateMaster (IMasterLogic master, World world, int x, int y, int z) - { - hasMaster = false; - master = null; - } - - public void notifyMasterOfChange () - { - if (hasValidMaster()) - { - IMasterLogic logic = (IMasterLogic) worldObj.getBlockTileEntity(master.x, master.y, master.z); - logic.notifyChange(this, xCoord, yCoord, zCoord); - } - } - - public void readCustomNBT (NBTTagCompound tags) - { - hasMaster = tags.getBoolean("TiedToMaster"); - if (hasMaster) - { - int xCenter = tags.getInteger("xCenter"); - int yCenter = tags.getInteger("yCenter"); - int zCenter = tags.getInteger("zCenter"); - master = new CoordTuple(xCenter, yCenter, zCenter); - masterID = tags.getShort("MasterID"); - masterMeat = tags.getByte("masterMeat"); - } - } - - public void writeCustomNBT (NBTTagCompound tags) - { - tags.setBoolean("TiedToMaster", hasMaster); - if (hasMaster) - { - tags.setInteger("xCenter", master.x); - tags.setInteger("yCenter", master.y); - tags.setInteger("zCenter", master.z); - tags.setShort("MasterID", masterID); - tags.setByte("masterMeat", masterMeat); - } - } - - @Override - public void readFromNBT (NBTTagCompound tags) - { - super.readFromNBT(tags); - readCustomNBT(tags); - } - - @Override - public void writeToNBT (NBTTagCompound tags) - { - super.writeToNBT(tags); - writeCustomNBT(tags); - } - - /* Packets */ - @Override - public Packet getDescriptionPacket () - { - NBTTagCompound tag = new NBTTagCompound(); - writeCustomNBT(tag); - return new Packet132TileEntityData(xCoord, yCoord, zCoord, 1, tag); - } - - @Override - public void onDataPacket (INetworkManager net, Packet132TileEntityData packet) - { - readCustomNBT(packet.data); - worldObj.markBlockForRenderUpdate(xCoord, yCoord, zCoord); - } -} diff --git a/src/main/java/tconstruct/blocks/logic/SmelteryDrainLogic.java b/src/main/java/tconstruct/blocks/logic/SmelteryDrainLogic.java index 7cf41856134..1c9e539c57e 100644 --- a/src/main/java/tconstruct/blocks/logic/SmelteryDrainLogic.java +++ b/src/main/java/tconstruct/blocks/logic/SmelteryDrainLogic.java @@ -1,6 +1,7 @@ package tconstruct.blocks.logic; import mantle.blocks.iface.IFacingLogic; +import mantle.blocks.iface.MultiServantLogic; import net.minecraft.entity.EntityLivingBase; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.INetworkManager; @@ -29,7 +30,7 @@ public int fill (ForgeDirection from, FluidStack resource, boolean doFill) { if (doFill) { - SmelteryLogic smeltery = (SmelteryLogic) worldObj.getBlockTileEntity(master.x, master.y, master.z); + SmelteryLogic smeltery = (SmelteryLogic) worldObj.getBlockTileEntity(getMasterPosition().x, getMasterPosition().y, getMasterPosition().z); return smeltery.fill(resource, doFill); } else @@ -48,7 +49,7 @@ public FluidStack drain (ForgeDirection from, int maxDrain, boolean doDrain) { if (hasValidMaster() && canDrain(from, null)) { - SmelteryLogic smeltery = (SmelteryLogic) worldObj.getBlockTileEntity(master.x, master.y, master.z); + SmelteryLogic smeltery = (SmelteryLogic) worldObj.getBlockTileEntity(getMasterPosition().x, getMasterPosition().y, getMasterPosition().z); return smeltery.drain(maxDrain, doDrain); } else @@ -79,7 +80,7 @@ public boolean canDrain (ForgeDirection from, Fluid fluid) boolean containsFluid = fluid == null; if (fluid != null) { - SmelteryLogic smeltery = (SmelteryLogic) worldObj.getBlockTileEntity(master.x, master.y, master.z); + SmelteryLogic smeltery = (SmelteryLogic) worldObj.getBlockTileEntity(getMasterPosition().x, getMasterPosition().y, getMasterPosition().z); for (FluidStack fstack : smeltery.moltenMetal) { if (fstack.fluidID == fluid.getID()) @@ -98,7 +99,7 @@ public FluidTankInfo[] getTankInfo (ForgeDirection from) { if (hasValidMaster() && (from == getForgeDirection() || from == getForgeDirection().getOpposite() || from == ForgeDirection.UNKNOWN)) { - SmelteryLogic smeltery = (SmelteryLogic) worldObj.getBlockTileEntity(master.x, master.y, master.z); + SmelteryLogic smeltery = (SmelteryLogic) worldObj.getBlockTileEntity(getMasterPosition().x, getMasterPosition().y, getMasterPosition().z); return smeltery.getMultiTankInfo(); //return new FluidTankInfo[] { smeltery.getInfo() }; } diff --git a/src/main/java/tconstruct/blocks/logic/SmelteryLogic.java b/src/main/java/tconstruct/blocks/logic/SmelteryLogic.java index c3ac41ea2c6..c31562f5235 100644 --- a/src/main/java/tconstruct/blocks/logic/SmelteryLogic.java +++ b/src/main/java/tconstruct/blocks/logic/SmelteryLogic.java @@ -37,9 +37,10 @@ import tconstruct.library.crafting.Smeltery; import mantle.blocks.iface.IActiveLogic; import mantle.blocks.iface.IFacingLogic; +import mantle.blocks.iface.MultiServantLogic; import mantle.world.CoordTuple; -import tconstruct.library.util.IMasterLogic; -import tconstruct.library.util.IServantLogic; +import mantle.blocks.iface.IMasterLogic; +import mantle.blocks.iface.IServantLogic; import tconstruct.util.SmelteryDamageSource; import tconstruct.util.config.PHConstruct; import cpw.mods.fml.common.network.PacketDispatcher; diff --git a/src/main/java/tconstruct/blocks/logic/TankAirLogic.java b/src/main/java/tconstruct/blocks/logic/TankAirLogic.java index 9ec224d098d..2c24ffb6f3d 100644 --- a/src/main/java/tconstruct/blocks/logic/TankAirLogic.java +++ b/src/main/java/tconstruct/blocks/logic/TankAirLogic.java @@ -18,8 +18,8 @@ import tconstruct.blocks.component.TankAirComponent; import mantle.blocks.abstracts.InventoryLogic; import mantle.world.CoordTuple; -import tconstruct.library.util.IMasterLogic; -import tconstruct.library.util.IServantLogic; +import mantle.blocks.iface.IMasterLogic; +import mantle.blocks.iface.IServantLogic; public class TankAirLogic extends InventoryLogic implements IServantLogic, ISidedInventory { diff --git a/src/main/java/tconstruct/blocks/logic/TowerFurnaceLogic.java b/src/main/java/tconstruct/blocks/logic/TowerFurnaceLogic.java index 1d2ce2c2486..bca8372d9c1 100644 --- a/src/main/java/tconstruct/blocks/logic/TowerFurnaceLogic.java +++ b/src/main/java/tconstruct/blocks/logic/TowerFurnaceLogic.java @@ -1,9 +1,9 @@ package tconstruct.blocks.logic; -import tconstruct.library.blocks.AdaptiveInventoryLogic; +import mantle.blocks.abstracts.AdaptiveInventoryLogic; import mantle.blocks.iface.IActiveLogic; import mantle.blocks.iface.IFacingLogic; -import tconstruct.library.util.IMasterLogic; +import mantle.blocks.iface.IMasterLogic; //Not actually abstract public abstract class TowerFurnaceLogic extends AdaptiveInventoryLogic implements IActiveLogic, IFacingLogic, IMasterLogic diff --git a/src/main/java/tconstruct/common/TRecipes.java b/src/main/java/tconstruct/common/TRecipes.java index 751e13d0e1a..ba902d9c46a 100644 --- a/src/main/java/tconstruct/common/TRecipes.java +++ b/src/main/java/tconstruct/common/TRecipes.java @@ -6,6 +6,7 @@ import java.util.HashMap; import java.util.List; +import mantle.blocks.iface.MultiServantLogic; import net.minecraft.block.Block; import net.minecraft.block.BlockDispenser; import net.minecraft.item.Item; diff --git a/src/main/java/tconstruct/library/blocks/AdaptiveInventoryLogic.java b/src/main/java/tconstruct/library/blocks/AdaptiveInventoryLogic.java deleted file mode 100644 index 72470d8723a..00000000000 --- a/src/main/java/tconstruct/library/blocks/AdaptiveInventoryLogic.java +++ /dev/null @@ -1,102 +0,0 @@ -package tconstruct.library.blocks; - -import java.util.Random; - -import net.minecraft.entity.item.EntityItem; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import mantle.blocks.iface.IFacingLogic; -import mantle.blocks.abstracts.InventoryLogic; - -public abstract class AdaptiveInventoryLogic extends InventoryLogic implements IFacingLogic -{ - Random random = new Random(); - protected int inventorySize; - - public AdaptiveInventoryLogic() - { - super(0); - } - - protected void adjustInventory (int size, boolean forceAdjust) - { - if (size != inventorySize || forceAdjust) - { - inventorySize = size; - - ItemStack[] tempInv = inventory; - inventory = new ItemStack[size]; - int invLength = tempInv.length > inventory.length ? inventory.length : tempInv.length; - System.arraycopy(tempInv, 0, inventory, 0, invLength); - - if (tempInv.length > inventory.length) - { - for (int i = inventory.length; i < tempInv.length; i++) - { - ItemStack stack = tempInv[i]; - if (stack != null) - { - float jumpX = random.nextFloat() * 0.8F + 0.1F; - float jumpY = random.nextFloat() * 0.8F + 0.1F; - float jumpZ = random.nextFloat() * 0.8F + 0.1F; - - int offsetX = 0; - int offsetY = 0; - int offsetZ = 0; - switch (getTossDirection()) - { - case 0: // -y - offsetY--; - break; - case 1: // +y - offsetY++; - break; - case 2: // +z - offsetZ--; - break; - case 3: // -z - offsetZ++; - break; - case 4: // +x - offsetX--; - break; - case 5: // -x - offsetX++; - break; - } - - while (stack.stackSize > 0) - { - int itemSize = random.nextInt(21) + 10; - - if (itemSize > stack.stackSize) - { - itemSize = stack.stackSize; - } - - stack.stackSize -= itemSize; - EntityItem entityitem = new EntityItem(worldObj, (double) ((float) xCoord + jumpX + offsetX), (double) ((float) yCoord + jumpY), - (double) ((float) zCoord + jumpZ + offsetZ), new ItemStack(stack.itemID, itemSize, stack.getItemDamage())); - - if (stack.hasTagCompound()) - { - entityitem.getEntityItem().setTagCompound((NBTTagCompound) stack.getTagCompound().copy()); - } - - float offset = 0.05F; - entityitem.motionX = (double) ((float) random.nextGaussian() * offset); - entityitem.motionY = (double) ((float) random.nextGaussian() * offset + 0.2F); - entityitem.motionZ = (double) ((float) random.nextGaussian() * offset); - worldObj.spawnEntityInWorld(entityitem); - } - } - } - } - } - } - - public int getTossDirection () - { - return getRenderDirection(); - } -} diff --git a/src/main/java/tconstruct/library/blocks/ExpandableInventoryLogic.java b/src/main/java/tconstruct/library/blocks/ExpandableInventoryLogic.java deleted file mode 100644 index 5f0089fa879..00000000000 --- a/src/main/java/tconstruct/library/blocks/ExpandableInventoryLogic.java +++ /dev/null @@ -1,218 +0,0 @@ -package tconstruct.library.blocks; - -import java.util.*; -import net.minecraft.entity.player.*; -import net.minecraft.inventory.*; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.*; -import net.minecraft.world.World; -import mantle.blocks.abstracts.InventoryLogic; - -public abstract class ExpandableInventoryLogic extends InventoryLogic implements IInventory -{ - - public ExpandableInventoryLogic() - { - super(0); - } - - protected ArrayList inventory = new ArrayList(); - protected String invName; - - @Override - public ItemStack getStackInSlot (int slot) - { - return slot < inventory.size() ? inventory.get(slot) : null; - } - - public boolean isStackInSlot (int slot) - { - return slot < inventory.size() && inventory.get(slot) != null; - } - - @Override - public int getSizeInventory () - { - return inventory.size(); - } - - public int getMaxSize () - { - return 64; - } - - @Override - public int getInventoryStackLimit () - { - return 64; - } - - public boolean canDropInventorySlot (int slot) - { - return true; - } - - @Override - public void setInventorySlotContents (int slot, ItemStack itemstack) - { - if (slot < inventory.size()) - { - inventory.set(slot, itemstack); - } - else if (slot == inventory.size()) - { - inventory.add(itemstack); - } - else if (slot < getMaxSize()) - { - inventory.ensureCapacity(slot); - inventory.set(slot, itemstack); - } - else - { - return; - } - if (itemstack != null && itemstack.stackSize > getInventoryStackLimit()) - { - itemstack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public ItemStack decrStackSize (int slot, int quantity) - { - if (slot < inventory.size() && inventory.get(slot) != null) - { - if (inventory.get(slot).stackSize <= quantity) - { - ItemStack stack = inventory.get(slot); - inventory.set(slot, null); - return stack; - } - ItemStack split = inventory.get(slot).splitStack(quantity); - if (inventory.get(slot).stackSize == 0) - { - inventory.set(slot, null); - } - return split; - } - else - { - return null; - } - } - - /* Supporting methods */ - @Override - public boolean isUseableByPlayer (EntityPlayer entityplayer) - { - if (worldObj.getBlockTileEntity(xCoord, yCoord, zCoord) != this) - return false; - - else - return entityplayer.getDistance((double) xCoord + 0.5D, (double) yCoord + 0.5D, (double) zCoord + 0.5D) <= 64D; - - } - - public abstract Container getGuiContainer (InventoryPlayer inventoryplayer, World world, int x, int y, int z); - - /* NBT */ - @Override - public void readFromNBT (NBTTagCompound tags) - { - super.readFromNBT(tags); - this.invName = tags.getString("InvName"); - NBTTagList nbttaglist = tags.getTagList("Items"); - inventory = new ArrayList(); - inventory.ensureCapacity(nbttaglist.tagCount() > getMaxSize() ? getMaxSize() : nbttaglist.tagCount()); - for (int iter = 0; iter < nbttaglist.tagCount(); iter++) - { - NBTTagCompound tagList = (NBTTagCompound) nbttaglist.tagAt(iter); - byte slotID = tagList.getByte("Slot"); - if (slotID >= 0 && slotID < inventory.size()) - { - inventory.set(slotID, ItemStack.loadItemStackFromNBT(tagList)); - } - } - } - - @Override - public void writeToNBT (NBTTagCompound tags) - { - super.writeToNBT(tags); - if (invName != null) - tags.setString("InvName", invName); - NBTTagList nbttaglist = new NBTTagList(); - for (int iter = 0; iter < inventory.size(); iter++) - { - if (inventory.get(iter) != null) - { - NBTTagCompound tagList = new NBTTagCompound(); - tagList.setByte("Slot", (byte) iter); - inventory.get(iter).writeToNBT(tagList); - nbttaglist.appendTag(tagList); - } - } - - tags.setTag("Items", nbttaglist); - } - - /* Default implementations of hardly used methods */ - public ItemStack getStackInSlotOnClosing (int slot) - { - return null; - } - - public void openChest () - { - } - - public void closeChest () - { - } - - protected abstract String getDefaultName (); - - public void setInvName (String name) - { - this.invName = name; - } - - public String getInvName () - { - return this.isInvNameLocalized() ? this.invName : getDefaultName(); - } - - public boolean isInvNameLocalized () - { - return this.invName != null && this.invName.length() > 0; - } - - public void cleanInventory () - { - Iterator i1 = inventory.iterator(); - while (i1.hasNext()) - { - if (i1.next() == null) - { - i1.remove(); - } - } - } - - @Override - public boolean isItemValidForSlot (int slot, ItemStack itemstack) - { - if (slot < getSizeInventory()) - { - if (inventory.get(slot) == null || itemstack.stackSize + inventory.get(slot).stackSize <= getInventoryStackLimit()) - return true; - } - else - { - return slot < getMaxSize(); - } - return false; - } - -} diff --git a/src/main/java/tconstruct/library/component/TankLayerScan.java b/src/main/java/tconstruct/library/component/TankLayerScan.java index c79b7694ffa..bea4158f1d7 100644 --- a/src/main/java/tconstruct/library/component/TankLayerScan.java +++ b/src/main/java/tconstruct/library/component/TankLayerScan.java @@ -6,10 +6,11 @@ import net.minecraft.nbt.*; import net.minecraft.tileentity.TileEntity; import tconstruct.TConstruct; -import tconstruct.library.util.IMasterLogic; -import tconstruct.library.util.IServantLogic; import mantle.world.*; import mantle.blocks.iface.IFacingLogic; +import mantle.blocks.iface.IMasterLogic; +import mantle.blocks.iface.IServantLogic; + public class TankLayerScan extends LogicComponent { diff --git a/src/main/java/tconstruct/library/util/IMasterLogic.java b/src/main/java/tconstruct/library/util/IMasterLogic.java deleted file mode 100644 index 2ad5d2184c9..00000000000 --- a/src/main/java/tconstruct/library/util/IMasterLogic.java +++ /dev/null @@ -1,12 +0,0 @@ -package tconstruct.library.util; - -public interface IMasterLogic -{ - /** Called when servants change their state - * - * @param x Servant X - * @param y Servant Y - * @param z Servant Z - */ - public void notifyChange (IServantLogic servant, int x, int y, int z); -} diff --git a/src/main/java/tconstruct/library/util/IMasterNode.java b/src/main/java/tconstruct/library/util/IMasterNode.java deleted file mode 100644 index 3b72c1aa892..00000000000 --- a/src/main/java/tconstruct/library/util/IMasterNode.java +++ /dev/null @@ -1,8 +0,0 @@ -package tconstruct.library.util; - -public interface IMasterNode extends IMasterLogic, IServantLogic -{ - public boolean isCurrentlyMaster (); - - public boolean isEquivalentMaster (IMasterLogic master); -} diff --git a/src/main/java/tconstruct/library/util/IServantLogic.java b/src/main/java/tconstruct/library/util/IServantLogic.java deleted file mode 100644 index d7339d4f270..00000000000 --- a/src/main/java/tconstruct/library/util/IServantLogic.java +++ /dev/null @@ -1,44 +0,0 @@ -package tconstruct.library.util; - -import mantle.world.CoordTuple; -import net.minecraft.world.World; - -public interface IServantLogic -{ - public CoordTuple getMasterPosition (); - - /** The block should already have a valid master */ - public void notifyMasterOfChange (); - - /** Checks if this block can be tied to this master - * - * @param master - * @param x xCoord of master - * @param y yCoord of master - * @param z zCoord of master - * @return whether the servant can be tied to this master - */ - - public boolean setPotentialMaster (IMasterLogic master, World world, int xMaster, int yMaster, int zMaster); - - /** Used to set and verify that this is the block's master - * - * @param master - * @param x xCoord of master - * @param y yCoord of master - * @param z zCoord of master - * @return Is this block tied to this master? - */ - - public boolean verifyMaster (IMasterLogic master, World world, int xMaster, int yMaster, int zMaster); - - /** Exactly what it says on the tin - * - * @param master - * @param x xCoord of master - * @param y yCoord of master - * @param z zCoord of master - */ - - public void invalidateMaster (IMasterLogic master, World world, int xMaster, int yMaster, int zMaster); -}