diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockCanolaPress.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockCanolaPress.java index 78bb4be1f..27bd04c36 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockCanolaPress.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockCanolaPress.java @@ -46,7 +46,9 @@ public class BlockCanolaPress extends BlockContainerBase{ if(!world.isRemote){ TileEntityCanolaPress press = (TileEntityCanolaPress)world.getTileEntity(pos); if(press != null){ - player.openGui(ActuallyAdditions.instance, GuiHandler.GuiTypes.CANOLA_PRESS.ordinal(), world, pos.getX(), pos.getY(), pos.getZ()); + if(!this.tryUseItemOnTank(player, stack, side, press)){ + player.openGui(ActuallyAdditions.instance, GuiHandler.GuiTypes.CANOLA_PRESS.ordinal(), world, pos.getX(), pos.getY(), pos.getZ()); + } } return true; } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockCoffeeMachine.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockCoffeeMachine.java index 08d4f9c75..106879a53 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockCoffeeMachine.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockCoffeeMachine.java @@ -66,7 +66,9 @@ public class BlockCoffeeMachine extends BlockContainerBase{ if(!world.isRemote){ TileEntityCoffeeMachine machine = (TileEntityCoffeeMachine)world.getTileEntity(pos); if(machine != null){ - player.openGui(ActuallyAdditions.instance, GuiHandler.GuiTypes.COFFEE_MACHINE.ordinal(), world, pos.getX(), pos.getY(), pos.getZ()); + if(!this.tryUseItemOnTank(player, stack, f6, machine)){ + player.openGui(ActuallyAdditions.instance, GuiHandler.GuiTypes.COFFEE_MACHINE.ordinal(), world, pos.getX(), pos.getY(), pos.getZ()); + } } return true; } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockFermentingBarrel.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockFermentingBarrel.java index d8794f597..532b85d4d 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockFermentingBarrel.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockFermentingBarrel.java @@ -52,7 +52,9 @@ public class BlockFermentingBarrel extends BlockContainerBase{ if(!world.isRemote){ TileEntityFermentingBarrel press = (TileEntityFermentingBarrel)world.getTileEntity(pos); if(press != null){ - player.openGui(ActuallyAdditions.instance, GuiHandler.GuiTypes.FERMENTING_BARREL.ordinal(), world, pos.getX(), pos.getY(), pos.getZ()); + if(!this.tryUseItemOnTank(player, heldItem, par6, press)){ + player.openGui(ActuallyAdditions.instance, GuiHandler.GuiTypes.FERMENTING_BARREL.ordinal(), world, pos.getX(), pos.getY(), pos.getZ()); + } } return true; } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockFluidCollector.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockFluidCollector.java index 7f4f5ad2f..6596e80f1 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockFluidCollector.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockFluidCollector.java @@ -59,7 +59,9 @@ public class BlockFluidCollector extends BlockContainerBase{ if(!world.isRemote){ TileEntityFluidCollector collector = (TileEntityFluidCollector)world.getTileEntity(pos); if(collector != null){ - player.openGui(ActuallyAdditions.instance, GuiHandler.GuiTypes.FLUID_COLLECTOR.ordinal(), world, pos.getX(), pos.getY(), pos.getZ()); + if(!this.tryUseItemOnTank(player, stack, par6, collector)){ + player.openGui(ActuallyAdditions.instance, GuiHandler.GuiTypes.FLUID_COLLECTOR.ordinal(), world, pos.getX(), pos.getY(), pos.getZ()); + } } return true; } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockOilGenerator.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockOilGenerator.java index 12ba314e2..ada610e7b 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockOilGenerator.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockOilGenerator.java @@ -68,7 +68,9 @@ public class BlockOilGenerator extends BlockContainerBase{ if(!world.isRemote){ TileEntityOilGenerator generator = (TileEntityOilGenerator)world.getTileEntity(pos); if(generator != null){ - player.openGui(ActuallyAdditions.instance, GuiHandler.GuiTypes.OIL_GENERATOR.ordinal(), world, pos.getX(), pos.getY(), pos.getZ()); + if(!this.tryUseItemOnTank(player, stack, par6, generator)){ + player.openGui(ActuallyAdditions.instance, GuiHandler.GuiTypes.OIL_GENERATOR.ordinal(), world, pos.getX(), pos.getY(), pos.getZ()); + } } return true; } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/base/BlockContainerBase.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/base/BlockContainerBase.java index 69efb8475..9c438c630 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/base/BlockContainerBase.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/base/BlockContainerBase.java @@ -13,7 +13,6 @@ package de.ellpeck.actuallyadditions.mod.blocks.base; import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; import de.ellpeck.actuallyadditions.mod.tile.*; import de.ellpeck.actuallyadditions.mod.util.ItemUtil; -import de.ellpeck.actuallyadditions.mod.util.ModUtil; import de.ellpeck.actuallyadditions.mod.util.Util; import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; @@ -33,11 +32,13 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumBlockRenderType; -import net.minecraft.util.ResourceLocation; +import net.minecraft.util.EnumFacing; import net.minecraft.util.math.BlockPos; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.FluidUtil; +import net.minecraftforge.fluids.IFluidHandler; import java.util.ArrayList; import java.util.Random; @@ -174,6 +175,10 @@ public abstract class BlockContainerBase extends BlockContainer{ } } + protected boolean tryUseItemOnTank(EntityPlayer player, ItemStack heldItem, EnumFacing sideHit, IFluidHandler tank){ + return heldItem != null && FluidUtil.interactWithTank(heldItem, player, tank, sideHit); + } + @Override public void onBlockAdded(World world, BlockPos pos, IBlockState state){ this.updateRedstoneState(world, pos); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/ContainerCanolaPress.java b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/ContainerCanolaPress.java index dc636f81f..ef0f9321b 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/ContainerCanolaPress.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/ContainerCanolaPress.java @@ -34,8 +34,6 @@ public class ContainerCanolaPress extends Container{ this.press = (TileEntityCanolaPress)tile; this.addSlotToContainer(new Slot(this.press, 0, 81, 10)); - this.addSlotToContainer(new Slot(this.press, 1, 136, 73)); - this.addSlotToContainer(new SlotOutput(this.press, 2, 136, 42)); for(int i = 0; i < 3; i++){ for(int j = 0; j < 9; j++){ @@ -49,7 +47,7 @@ public class ContainerCanolaPress extends Container{ @Override public ItemStack transferStackInSlot(EntityPlayer player, int slot){ - final int inventoryStart = 3; + final int inventoryStart = 1; final int inventoryEnd = inventoryStart+26; final int hotbarStart = inventoryEnd+1; final int hotbarEnd = hotbarStart+8; @@ -68,11 +66,6 @@ public class ContainerCanolaPress extends Container{ return null; } } - else if(FluidContainerRegistry.getContainerCapacity(new FluidStack(InitFluids.fluidCanolaOil, 1), newStack) > 0){ - if(!this.mergeItemStack(newStack, 1, 2, false)){ - return null; - } - } // else if(slot >= inventoryStart && slot <= inventoryEnd){ diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/ContainerCoffeeMachine.java b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/ContainerCoffeeMachine.java index 9aa870112..ecbe9a177 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/ContainerCoffeeMachine.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/ContainerCoffeeMachine.java @@ -44,9 +44,6 @@ public class ContainerCoffeeMachine extends Container{ } } - this.addSlotToContainer(new Slot(this.machine, TileEntityCoffeeMachine.SLOT_WATER_INPUT, 26, 73)); - this.addSlotToContainer(new SlotOutput(this.machine, TileEntityCoffeeMachine.SLOT_WATER_OUTPUT, 45, 73)); - for(int i = 0; i < 3; i++){ for(int j = 0; j < 9; j++){ this.addSlotToContainer(new Slot(inventory, j+i*9+9, 8+j*18, 97+i*18)); @@ -59,7 +56,7 @@ public class ContainerCoffeeMachine extends Container{ @Override public ItemStack transferStackInSlot(EntityPlayer player, int slot){ - final int inventoryStart = 13; + final int inventoryStart = 11; final int inventoryEnd = inventoryStart+26; final int hotbarStart = inventoryEnd+1; final int hotbarEnd = hotbarStart+8; @@ -85,11 +82,6 @@ public class ContainerCoffeeMachine extends Container{ return null; } } - else if(FluidContainerRegistry.containsFluid(newStack, new FluidStack(FluidRegistry.WATER, 1))){ - if(!this.mergeItemStack(newStack, TileEntityCoffeeMachine.SLOT_WATER_INPUT, TileEntityCoffeeMachine.SLOT_WATER_INPUT+1, false)){ - return null; - } - } else if(ItemCoffee.getIngredientFromStack(newStack) != null){ if(!this.mergeItemStack(newStack, 3, 11, false)){ return null; diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/ContainerFermentingBarrel.java b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/ContainerFermentingBarrel.java index 6a23ad5df..c0dba6b6a 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/ContainerFermentingBarrel.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/ContainerFermentingBarrel.java @@ -31,11 +31,6 @@ public class ContainerFermentingBarrel extends Container{ public ContainerFermentingBarrel(InventoryPlayer inventory, TileEntityBase tile){ this.barrel = (TileEntityFermentingBarrel)tile; - this.addSlotToContainer(new Slot(this.barrel, 0, 42, 74)); - this.addSlotToContainer(new SlotOutput(this.barrel, 1, 42, 43)); - this.addSlotToContainer(new Slot(this.barrel, 2, 118, 74)); - this.addSlotToContainer(new SlotOutput(this.barrel, 3, 118, 43)); - for(int i = 0; i < 3; i++){ for(int j = 0; j < 9; j++){ this.addSlotToContainer(new Slot(inventory, j+i*9+9, 8+j*18, 97+i*18)); @@ -48,7 +43,7 @@ public class ContainerFermentingBarrel extends Container{ @Override public ItemStack transferStackInSlot(EntityPlayer player, int slot){ - final int inventoryStart = 4; + final int inventoryStart = 0; final int inventoryEnd = inventoryStart+26; final int hotbarStart = inventoryEnd+1; final int hotbarEnd = hotbarStart+8; @@ -61,20 +56,7 @@ public class ContainerFermentingBarrel extends Container{ //Other Slots in Inventory excluded if(slot >= inventoryStart){ - //Shift from Inventory - if(FluidContainerRegistry.containsFluid(newStack, new FluidStack(InitFluids.fluidCanolaOil, 1))){ - if(!this.mergeItemStack(newStack, 0, 1, false)){ - return null; - } - } - else if(FluidContainerRegistry.getContainerCapacity(new FluidStack(InitFluids.fluidOil, 1), newStack) > 0){ - if(!this.mergeItemStack(newStack, 2, 3, false)){ - return null; - } - } - // - - else if(slot >= inventoryStart && slot <= inventoryEnd){ + if(slot >= inventoryStart && slot <= inventoryEnd){ if(!this.mergeItemStack(newStack, hotbarStart, hotbarEnd+1, false)){ return null; } @@ -106,6 +88,6 @@ public class ContainerFermentingBarrel extends Container{ @Override public boolean canInteractWith(EntityPlayer player){ - return this.barrel.isUseableByPlayer(player); + return this.barrel.canPlayerUse(player); } } \ No newline at end of file diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/ContainerFluidCollector.java b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/ContainerFluidCollector.java index 7dcc3499a..7dafd4566 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/ContainerFluidCollector.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/ContainerFluidCollector.java @@ -29,9 +29,6 @@ public class ContainerFluidCollector extends Container{ public ContainerFluidCollector(InventoryPlayer inventory, TileEntityBase tile){ this.collector = (TileEntityFluidCollector)tile; - this.addSlotToContainer(new Slot(this.collector, 0, 90, 73)); - this.addSlotToContainer(new SlotOutput(this.collector, 1, 90, 42)); - for(int i = 0; i < 3; i++){ for(int j = 0; j < 9; j++){ this.addSlotToContainer(new Slot(inventory, j+i*9+9, 8+j*18, 97+i*18)); @@ -44,7 +41,7 @@ public class ContainerFluidCollector extends Container{ @Override public ItemStack transferStackInSlot(EntityPlayer player, int slot){ - final int inventoryStart = 2; + final int inventoryStart = 0; final int inventoryEnd = inventoryStart+26; final int hotbarStart = inventoryEnd+1; final int hotbarEnd = hotbarStart+8; @@ -64,15 +61,7 @@ public class ContainerFluidCollector extends Container{ } //Other Slots in Inventory excluded else if(slot >= inventoryStart){ - //Shift from Inventory - if(FluidContainerRegistry.isEmptyContainer(newStack)){ - if(!this.mergeItemStack(newStack, 0, 1, false)){ - return null; - } - } - // - - else if(slot >= inventoryStart && slot <= inventoryEnd){ + if(slot >= inventoryStart && slot <= inventoryEnd){ if(!this.mergeItemStack(newStack, hotbarStart, hotbarEnd+1, false)){ return null; } @@ -104,6 +93,6 @@ public class ContainerFluidCollector extends Container{ @Override public boolean canInteractWith(EntityPlayer player){ - return this.collector.isUseableByPlayer(player); + return this.collector.canPlayerUse(player); } } \ No newline at end of file diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/ContainerOilGenerator.java b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/ContainerOilGenerator.java index a41d04864..8b4a1e05c 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/ContainerOilGenerator.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/ContainerOilGenerator.java @@ -10,8 +10,6 @@ package de.ellpeck.actuallyadditions.mod.inventory; -import de.ellpeck.actuallyadditions.mod.fluids.InitFluids; -import de.ellpeck.actuallyadditions.mod.inventory.slot.SlotOutput; import de.ellpeck.actuallyadditions.mod.tile.TileEntityBase; import de.ellpeck.actuallyadditions.mod.tile.TileEntityOilGenerator; import invtweaks.api.container.InventoryContainer; @@ -20,8 +18,6 @@ import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.FluidContainerRegistry; -import net.minecraftforge.fluids.FluidStack; @InventoryContainer public class ContainerOilGenerator extends Container{ @@ -31,9 +27,6 @@ public class ContainerOilGenerator extends Container{ public ContainerOilGenerator(InventoryPlayer inventory, TileEntityBase tile){ this.generator = (TileEntityOilGenerator)tile; - this.addSlotToContainer(new Slot(this.generator, 0, 98, 74)); - this.addSlotToContainer(new SlotOutput(this.generator, 1, 98, 43)); - for(int i = 0; i < 3; i++){ for(int j = 0; j < 9; j++){ this.addSlotToContainer(new Slot(inventory, j+i*9+9, 8+j*18, 97+i*18)); @@ -46,12 +39,12 @@ public class ContainerOilGenerator extends Container{ @Override public ItemStack transferStackInSlot(EntityPlayer player, int slot){ - final int inventoryStart = 2; + final int inventoryStart = 0; final int inventoryEnd = inventoryStart+26; final int hotbarStart = inventoryEnd+1; final int hotbarEnd = hotbarStart+8; - Slot theSlot = (Slot)this.inventorySlots.get(slot); + Slot theSlot = this.inventorySlots.get(slot); if(theSlot != null && theSlot.getHasStack()){ ItemStack newStack = theSlot.getStack(); @@ -59,15 +52,7 @@ public class ContainerOilGenerator extends Container{ //Other Slots in Inventory excluded if(slot >= inventoryStart){ - //Shift from Inventory - if(FluidContainerRegistry.containsFluid(newStack, new FluidStack(InitFluids.fluidOil, 1))){ - if(!this.mergeItemStack(newStack, 0, 1, false)){ - return null; - } - } - // - - else if(slot >= inventoryStart && slot <= inventoryEnd){ + if(slot >= inventoryStart && slot <= inventoryEnd){ if(!this.mergeItemStack(newStack, hotbarStart, hotbarEnd+1, false)){ return null; } @@ -99,6 +84,6 @@ public class ContainerOilGenerator extends Container{ @Override public boolean canInteractWith(EntityPlayer player){ - return this.generator.isUseableByPlayer(player); + return this.generator.canPlayerUse(player); } } \ No newline at end of file diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiFermentingBarrel.java b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiFermentingBarrel.java index 061999f80..59bd13efb 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiFermentingBarrel.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiFermentingBarrel.java @@ -54,7 +54,7 @@ public class GuiFermentingBarrel extends GuiContainer{ @Override public void drawGuiContainerForegroundLayer(int x, int y){ - AssetUtil.displayNameString(this.fontRendererObj, this.xSize, -10, this.press.getName()); + AssetUtil.displayNameString(this.fontRendererObj, this.xSize, -10, this.press.name); } @Override diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiFluidCollector.java b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiFluidCollector.java index 3644aa6ea..e19eab4df 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiFluidCollector.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiFluidCollector.java @@ -49,7 +49,7 @@ public class GuiFluidCollector extends GuiContainer{ @Override public void drawGuiContainerForegroundLayer(int x, int y){ - AssetUtil.displayNameString(this.fontRendererObj, this.xSize, -10, this.collector.getName()); + AssetUtil.displayNameString(this.fontRendererObj, this.xSize, -10, this.collector.name); } @Override diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiOilGenerator.java b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiOilGenerator.java index 14c78bf42..4938c3ebe 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiOilGenerator.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiOilGenerator.java @@ -52,7 +52,7 @@ public class GuiOilGenerator extends GuiContainer{ @Override public void drawGuiContainerForegroundLayer(int x, int y){ - AssetUtil.displayNameString(this.fontRendererObj, this.xSize, -10, this.generator.getName()); + AssetUtil.displayNameString(this.fontRendererObj, this.xSize, -10, this.generator.name); } @Override diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityBase.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityBase.java index fc082c81a..90a9f2f5f 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityBase.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityBase.java @@ -15,6 +15,7 @@ import de.ellpeck.actuallyadditions.mod.network.PacketHandler; import de.ellpeck.actuallyadditions.mod.network.PacketUpdateTileEntity; import de.ellpeck.actuallyadditions.mod.util.ModUtil; import net.minecraft.block.state.IBlockState; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.NetworkManager; import net.minecraft.network.Packet; @@ -30,7 +31,13 @@ public abstract class TileEntityBase extends TileEntity implements ITickable{ public boolean isRedstonePowered; protected int ticksElapsed; + public String name; + public TileEntityBase(String name){ + this.name = "container."+ModUtil.MOD_ID+"."+name; + } + + //TODO Change for next major update to use the name variable automatically public static void init(){ ModUtil.LOGGER.info("Registering TileEntities..."); @@ -151,6 +158,10 @@ public abstract class TileEntityBase extends TileEntity implements ITickable{ this.markDirty(); } + public boolean canPlayerUse(EntityPlayer player){ + return player.getDistanceSq(this.getPos().getX()+0.5D, this.pos.getY()+0.5D, this.pos.getZ()+0.5D) <= 64 && !this.isInvalid() && this.worldObj.getTileEntity(this.pos) == this; + } + protected final boolean sendUpdateWithInterval(){ if(this.ticksElapsed%ConfigIntValues.TILE_ENTITY_UPDATE_INTERVAL.getValue() == 0){ this.sendUpdate(); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityCanolaPress.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityCanolaPress.java index a038b524c..e59983c75 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityCanolaPress.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityCanolaPress.java @@ -15,6 +15,7 @@ import cofh.api.energy.IEnergyReceiver; import de.ellpeck.actuallyadditions.mod.fluids.InitFluids; import de.ellpeck.actuallyadditions.mod.items.InitItems; import de.ellpeck.actuallyadditions.mod.items.metalists.TheMiscItems; +import de.ellpeck.actuallyadditions.mod.util.Util; import de.ellpeck.actuallyadditions.mod.util.WorldUtil; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; @@ -30,14 +31,14 @@ public class TileEntityCanolaPress extends TileEntityInventoryBase implements IE public static final int ENERGY_USE = 35; private static final int TIME = 30; public EnergyStorage storage = new EnergyStorage(40000); - public FluidTank tank = new FluidTank(2*FluidContainerRegistry.BUCKET_VOLUME); + public FluidTank tank = new FluidTank(2*Util.BUCKET); public int currentProcessTime; private int lastEnergyStored; private int lastTankAmount; private int lastProcessTime; public TileEntityCanolaPress(){ - super(3, "canolaPress"); + super(1, "canolaPress"); } @SideOnly(Side.CLIENT) @@ -97,8 +98,6 @@ public class TileEntityCanolaPress extends TileEntityInventoryBase implements IE this.currentProcessTime = 0; } - WorldUtil.fillBucket(this.tank, this.slots, 1, 2); - if(this.tank.getFluidAmount() > 0){ WorldUtil.pushFluid(this.worldObj, this.pos, EnumFacing.DOWN, this.tank); if(!this.isRedstonePowered){ @@ -119,7 +118,7 @@ public class TileEntityCanolaPress extends TileEntityInventoryBase implements IE @Override public boolean isItemValidForSlot(int i, ItemStack stack){ - return (i == 0 && stack.getItem() == InitItems.itemMisc && stack.getItemDamage() == TheMiscItems.CANOLA.ordinal()) || (i == 1 && stack.getItem() == Items.BUCKET); + return (i == 0 && stack.getItem() == InitItems.itemMisc && stack.getItemDamage() == TheMiscItems.CANOLA.ordinal()); } public boolean isCanola(int slot){ @@ -133,7 +132,7 @@ public class TileEntityCanolaPress extends TileEntityInventoryBase implements IE @Override public boolean canExtractItem(int slot, ItemStack stack, EnumFacing side){ - return slot == 2 && FluidContainerRegistry.containsFluid(this.slots[0], new FluidStack(InitFluids.fluidCanolaOil, FluidContainerRegistry.BUCKET_VOLUME)); + return false; } @Override diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityCoffeeMachine.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityCoffeeMachine.java index 49ca1c558..7c2996d3b 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityCoffeeMachine.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityCoffeeMachine.java @@ -19,6 +19,7 @@ import de.ellpeck.actuallyadditions.mod.items.ItemCoffee; import de.ellpeck.actuallyadditions.mod.items.metalists.TheMiscItems; import de.ellpeck.actuallyadditions.mod.misc.SoundHandler; import de.ellpeck.actuallyadditions.mod.network.gui.IButtonReactor; +import de.ellpeck.actuallyadditions.mod.util.Util; import de.ellpeck.actuallyadditions.mod.util.WorldUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -34,15 +35,13 @@ public class TileEntityCoffeeMachine extends TileEntityInventoryBase implements public static final int SLOT_COFFEE_BEANS = 0; public static final int SLOT_INPUT = 1; public static final int SLOT_OUTPUT = 2; - public static final int SLOT_WATER_INPUT = 11; - public static final int SLOT_WATER_OUTPUT = 12; public static final int CACHE_USE = 15; public static final int ENERGY_USED = 150; public static final int WATER_USE = 500; public static final int COFFEE_CACHE_MAX_AMOUNT = 300; private static final int TIME_USED = 500; public EnergyStorage storage = new EnergyStorage(300000); - public FluidTank tank = new FluidTank(4*FluidContainerRegistry.BUCKET_VOLUME); + public FluidTank tank = new FluidTank(4*Util.BUCKET); public int coffeeCacheAmount; public int brewTime; private int lastEnergy; @@ -51,7 +50,7 @@ public class TileEntityCoffeeMachine extends TileEntityInventoryBase implements private int lastBrewTime; public TileEntityCoffeeMachine(){ - super(13, "coffeeMachine"); + super(11, "coffeeMachine"); } @SideOnly(Side.CLIENT) @@ -113,7 +112,7 @@ public class TileEntityCoffeeMachine extends TileEntityInventoryBase implements @Override public boolean isItemValidForSlot(int i, ItemStack stack){ - return (i >= 3 && ItemCoffee.getIngredientFromStack(stack) != null) || (i == SLOT_COFFEE_BEANS && stack.getItem() == InitItems.itemCoffeeBean) || (i == SLOT_INPUT && stack.getItem() == InitItems.itemMisc && stack.getItemDamage() == TheMiscItems.CUP.ordinal()) || (i == SLOT_WATER_INPUT && FluidContainerRegistry.containsFluid(stack, new FluidStack(FluidRegistry.WATER, 1))); + return (i >= 3 && ItemCoffee.getIngredientFromStack(stack) != null) || (i == SLOT_COFFEE_BEANS && stack.getItem() == InitItems.itemCoffeeBean) || (i == SLOT_INPUT && stack.getItem() == InitItems.itemMisc && stack.getItemDamage() == TheMiscItems.CUP.ordinal()); } public void storeCoffee(){ @@ -127,8 +126,6 @@ public class TileEntityCoffeeMachine extends TileEntityInventoryBase implements this.coffeeCacheAmount += toAdd; } } - - WorldUtil.emptyBucket(this.tank, this.slots, SLOT_WATER_INPUT, SLOT_WATER_OUTPUT, FluidRegistry.WATER); } public void brew(){ @@ -180,7 +177,7 @@ public class TileEntityCoffeeMachine extends TileEntityInventoryBase implements @Override public boolean canExtractItem(int slot, ItemStack stack, EnumFacing side){ - return slot == SLOT_OUTPUT || (slot >= 3 && slot < this.slots.length-2 && ItemCoffee.getIngredientFromStack(stack) == null) || slot == SLOT_WATER_OUTPUT; + return slot == SLOT_OUTPUT || (slot >= 3 && slot < this.slots.length-2 && ItemCoffee.getIngredientFromStack(stack) == null); } @Override diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFermentingBarrel.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFermentingBarrel.java index ab8f4c0c2..a615575b6 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFermentingBarrel.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFermentingBarrel.java @@ -11,6 +11,7 @@ package de.ellpeck.actuallyadditions.mod.tile; import de.ellpeck.actuallyadditions.mod.fluids.InitFluids; +import de.ellpeck.actuallyadditions.mod.util.Util; import de.ellpeck.actuallyadditions.mod.util.WorldUtil; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; @@ -20,18 +21,18 @@ import net.minecraftforge.fluids.*; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; -public class TileEntityFermentingBarrel extends TileEntityInventoryBase implements IFluidHandler, IFluidSaver{ +public class TileEntityFermentingBarrel extends TileEntityBase implements IFluidHandler, IFluidSaver{ private static final int PROCESS_TIME = 100; - public FluidTank canolaTank = new FluidTank(2*FluidContainerRegistry.BUCKET_VOLUME); - public FluidTank oilTank = new FluidTank(2*FluidContainerRegistry.BUCKET_VOLUME); + public FluidTank canolaTank = new FluidTank(2*Util.BUCKET); + public FluidTank oilTank = new FluidTank(2*Util.BUCKET); public int currentProcessTime; private int lastCanola; private int lastOil; private int lastProcessTime; public TileEntityFermentingBarrel(){ - super(4, "fermentingBarrel"); + super("fermentingBarrel"); } @Override @@ -72,9 +73,6 @@ public class TileEntityFermentingBarrel extends TileEntityInventoryBase implemen this.currentProcessTime = 0; } - WorldUtil.emptyBucket(this.canolaTank, this.slots, 0, 1, InitFluids.fluidCanolaOil); - WorldUtil.fillBucket(this.oilTank, this.slots, 2, 3); - if(this.oilTank.getFluidAmount() > 0){ WorldUtil.pushFluid(this.worldObj, this.pos, EnumFacing.DOWN, this.oilTank); if(!this.isRedstonePowered){ @@ -93,11 +91,6 @@ public class TileEntityFermentingBarrel extends TileEntityInventoryBase implemen } } - @Override - public boolean isItemValidForSlot(int i, ItemStack stack){ - return (i == 0 && FluidContainerRegistry.containsFluid(stack, new FluidStack(InitFluids.fluidCanolaOil, FluidContainerRegistry.BUCKET_VOLUME))) || (i == 2 && stack.getItem() == Items.BUCKET); - } - @SideOnly(Side.CLIENT) public int getProcessScaled(int i){ return this.currentProcessTime*i/PROCESS_TIME; @@ -113,16 +106,6 @@ public class TileEntityFermentingBarrel extends TileEntityInventoryBase implemen return this.canolaTank.getFluidAmount()*i/this.canolaTank.getCapacity(); } - @Override - public boolean canInsertItem(int slot, ItemStack stack, EnumFacing side){ - return this.isItemValidForSlot(slot, stack); - } - - @Override - public boolean canExtractItem(int slot, ItemStack stack, EnumFacing side){ - return (slot == 1 && stack.getItem() == Items.BUCKET) || (slot == 3 && FluidContainerRegistry.containsFluid(stack, new FluidStack(InitFluids.fluidOil, FluidContainerRegistry.BUCKET_VOLUME))); - } - @Override public int fill(EnumFacing from, FluidStack resource, boolean doFill){ if(from != EnumFacing.DOWN && resource.getFluid() == InitFluids.fluidCanolaOil){ diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFireworkBox.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFireworkBox.java index b25f87e19..fd3729b9b 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFireworkBox.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFireworkBox.java @@ -32,6 +32,10 @@ public class TileEntityFireworkBox extends TileEntityBase implements IEnergyRece private boolean activateOnceWithSignal; private int oldEnergy; + public TileEntityFireworkBox(){ + super("fireworkBox"); + } + @Override public void writeSyncableNBT(NBTTagCompound compound, boolean sync){ super.writeSyncableNBT(compound, sync); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFishingNet.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFishingNet.java index a43ffb12a..ce0cb97e8 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFishingNet.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFishingNet.java @@ -32,6 +32,10 @@ public class TileEntityFishingNet extends TileEntityBase{ public int timeUntilNextDrop; + public TileEntityFishingNet(){ + super("fishingNet"); + } + @Override public void writeSyncableNBT(NBTTagCompound compound, boolean sync){ super.writeSyncableNBT(compound, sync); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFluidCollector.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFluidCollector.java index 5c40f980c..605012c44 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFluidCollector.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFluidCollector.java @@ -12,11 +12,10 @@ package de.ellpeck.actuallyadditions.mod.tile; import de.ellpeck.actuallyadditions.mod.util.PosUtil; +import de.ellpeck.actuallyadditions.mod.util.Util; import de.ellpeck.actuallyadditions.mod.util.WorldUtil; import net.minecraft.block.Block; import net.minecraft.init.Blocks; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumFacing; import net.minecraft.util.math.BlockPos; @@ -24,20 +23,20 @@ import net.minecraftforge.fluids.*; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; -public class TileEntityFluidCollector extends TileEntityInventoryBase implements IFluidHandler, IFluidSaver, IRedstoneToggle{ +public class TileEntityFluidCollector extends TileEntityBase implements IFluidHandler, IFluidSaver, IRedstoneToggle{ - public FluidTank tank = new FluidTank(8*FluidContainerRegistry.BUCKET_VOLUME); + public FluidTank tank = new FluidTank(8*Util.BUCKET); public boolean isPlacer; private int lastTankAmount; private int currentTime; private boolean activateOnceWithSignal; - public TileEntityFluidCollector(int slots, String name){ - super(slots, name); + public TileEntityFluidCollector(String name){ + super(name); } public TileEntityFluidCollector(){ - super(2, "fluidCollector"); + this("fluidCollector"); this.isPlacer = false; } @@ -62,28 +61,28 @@ public class TileEntityFluidCollector extends TileEntityInventoryBase implements if(coordsBlock != null){ Block blockToBreak = PosUtil.getBlock(coordsBlock, this.worldObj); - if(!this.isPlacer && blockToBreak != null && PosUtil.getMetadata(coordsBlock, this.worldObj) == 0 && FluidContainerRegistry.BUCKET_VOLUME <= this.tank.getCapacity()-this.tank.getFluidAmount()){ + if(!this.isPlacer && blockToBreak != null && PosUtil.getMetadata(coordsBlock, this.worldObj) == 0 && Util.BUCKET <= this.tank.getCapacity()-this.tank.getFluidAmount()){ if(blockToBreak instanceof IFluidBlock && ((IFluidBlock)blockToBreak).getFluid() != null){ - if(this.tank.fill(new FluidStack(((IFluidBlock)blockToBreak).getFluid(), FluidContainerRegistry.BUCKET_VOLUME), false) >= FluidContainerRegistry.BUCKET_VOLUME){ - this.tank.fill(new FluidStack(((IFluidBlock)blockToBreak).getFluid(), FluidContainerRegistry.BUCKET_VOLUME), true); + if(this.tank.fill(new FluidStack(((IFluidBlock)blockToBreak).getFluid(), Util.BUCKET), false) >= Util.BUCKET){ + this.tank.fill(new FluidStack(((IFluidBlock)blockToBreak).getFluid(), Util.BUCKET), true); WorldUtil.breakBlockAtSide(sideToManipulate, this.worldObj, this.pos); } } else if(blockToBreak == Blocks.LAVA || blockToBreak == Blocks.FLOWING_LAVA){ - if(this.tank.fill(new FluidStack(FluidRegistry.LAVA, FluidContainerRegistry.BUCKET_VOLUME), false) >= FluidContainerRegistry.BUCKET_VOLUME){ - this.tank.fill(new FluidStack(FluidRegistry.LAVA, FluidContainerRegistry.BUCKET_VOLUME), true); + if(this.tank.fill(new FluidStack(FluidRegistry.LAVA, Util.BUCKET), false) >= Util.BUCKET){ + this.tank.fill(new FluidStack(FluidRegistry.LAVA, Util.BUCKET), true); WorldUtil.breakBlockAtSide(sideToManipulate, this.worldObj, this.pos); } } else if(blockToBreak == Blocks.WATER || blockToBreak == Blocks.FLOWING_WATER){ - if(this.tank.fill(new FluidStack(FluidRegistry.WATER, FluidContainerRegistry.BUCKET_VOLUME), false) >= FluidContainerRegistry.BUCKET_VOLUME){ - this.tank.fill(new FluidStack(FluidRegistry.WATER, FluidContainerRegistry.BUCKET_VOLUME), true); + if(this.tank.fill(new FluidStack(FluidRegistry.WATER, Util.BUCKET), false) >= Util.BUCKET){ + this.tank.fill(new FluidStack(FluidRegistry.WATER, Util.BUCKET), true); WorldUtil.breakBlockAtSide(sideToManipulate, this.worldObj, this.pos); } } } else if(this.isPlacer && PosUtil.getBlock(coordsBlock, this.worldObj).isReplaceable(this.worldObj, coordsBlock)){ - if(this.tank.getFluidAmount() >= FluidContainerRegistry.BUCKET_VOLUME){ + if(this.tank.getFluidAmount() >= Util.BUCKET){ Block block = this.tank.getFluid().getFluid().getBlock(); if(block != null){ BlockPos offsetPos = this.pos.offset(sideToManipulate); @@ -91,7 +90,7 @@ public class TileEntityFluidCollector extends TileEntityInventoryBase implements boolean replaceable = blockPresent.isReplaceable(this.worldObj, offsetPos); if(replaceable){ PosUtil.setBlock(offsetPos, this.worldObj, block, 0, 3); - this.tank.drain(FluidContainerRegistry.BUCKET_VOLUME, true); + this.tank.drain(Util.BUCKET, true); } } } @@ -169,13 +168,6 @@ public class TileEntityFluidCollector extends TileEntityInventoryBase implements } } - if(!this.isPlacer){ - WorldUtil.fillBucket(this.tank, this.slots, 0, 1); - } - else{ - WorldUtil.emptyBucket(this.tank, this.slots, 0, 1); - } - if(!this.isPlacer && this.tank.getFluidAmount() > 0){ WorldUtil.pushFluid(this.worldObj, this.pos, EnumFacing.DOWN, this.tank); if(!this.isRedstonePowered){ @@ -192,34 +184,11 @@ public class TileEntityFluidCollector extends TileEntityInventoryBase implements } } - @Override - public boolean isItemValidForSlot(int i, ItemStack stack){ - if(i == 0){ - if(this.isPlacer){ - return FluidContainerRegistry.isFilledContainer(stack); - } - else{ - return stack.isItemEqual(FluidContainerRegistry.EMPTY_BUCKET); - } - } - return false; - } - @SideOnly(Side.CLIENT) public int getTankScaled(int i){ return this.tank.getFluidAmount()*i/this.tank.getCapacity(); } - @Override - public boolean canInsertItem(int slot, ItemStack stack, EnumFacing side){ - return this.isItemValidForSlot(slot, stack); - } - - @Override - public boolean canExtractItem(int slot, ItemStack stack, EnumFacing side){ - return slot == 1; - } - @Override public FluidStack[] getFluids(){ return new FluidStack[]{this.tank.getFluid()}; @@ -233,7 +202,7 @@ public class TileEntityFluidCollector extends TileEntityInventoryBase implements public static class TileEntityFluidPlacer extends TileEntityFluidCollector{ public TileEntityFluidPlacer(){ - super(2, "fluidPlacer"); + super("fluidPlacer"); this.isPlacer = true; } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFurnaceSolar.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFurnaceSolar.java index ed4227725..ed4740804 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFurnaceSolar.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFurnaceSolar.java @@ -26,6 +26,10 @@ public class TileEntityFurnaceSolar extends TileEntityBase implements IEnergyPro public EnergyStorage storage = new EnergyStorage(30000); private int oldEnergy; + public TileEntityFurnaceSolar(){ + super("solarPanel"); + } + @Override public int extractEnergy(EnumFacing from, int maxExtract, boolean simulate){ return this.storage.extractEnergy(maxExtract, simulate); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityGreenhouseGlass.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityGreenhouseGlass.java index ca7d95dc5..4dfdaac40 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityGreenhouseGlass.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityGreenhouseGlass.java @@ -24,6 +24,10 @@ public class TileEntityGreenhouseGlass extends TileEntityBase{ private int timeUntilNextFert; + public TileEntityGreenhouseGlass(){ + super("greenhouseGlass"); + } + @Override public void writeSyncableNBT(NBTTagCompound compound, boolean isForSync){ super.writeSyncableNBT(compound, isForSync); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityHeatCollector.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityHeatCollector.java index fa38e1cf1..04703218f 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityHeatCollector.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityHeatCollector.java @@ -32,6 +32,10 @@ public class TileEntityHeatCollector extends TileEntityBase implements IEnergyPr public EnergyStorage storage = new EnergyStorage(30000); private int oldEnergy; + public TileEntityHeatCollector(){ + super("heatCollector"); + } + @Override public void writeSyncableNBT(NBTTagCompound compound, boolean isForSync){ super.writeSyncableNBT(compound, isForSync); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityInventoryBase.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityInventoryBase.java index b464c1f81..66512d9a2 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityInventoryBase.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityInventoryBase.java @@ -27,12 +27,12 @@ import net.minecraftforge.items.wrapper.SidedInvWrapper; public abstract class TileEntityInventoryBase extends TileEntityBase implements ISidedInventory{ public ItemStack slots[]; - public String name; private SidedInvWrapper[] invWrappers = new SidedInvWrapper[6]; public TileEntityInventoryBase(int slots, String name){ + super(name); + this.initializeSlots(slots); - this.name = "container."+ModUtil.MOD_ID+"."+name; for(int i = 0; i < this.invWrappers.length; i++){ this.invWrappers[i] = new SidedInvWrapper(this, EnumFacing.values()[i]); @@ -109,10 +109,9 @@ public abstract class TileEntityInventoryBase extends TileEntityBase implements @Override public boolean isUseableByPlayer(EntityPlayer player){ - return player.getDistanceSq(this.getPos().getX()+0.5D, this.pos.getY()+0.5D, this.pos.getZ()+0.5D) <= 64 && !this.isInvalid() && this.worldObj.getTileEntity(this.pos) == this; + return this.canPlayerUse(player); } - @Override public void openInventory(EntityPlayer player){ diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLaserRelay.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLaserRelay.java index 3a1541e35..d07fe7f0e 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLaserRelay.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLaserRelay.java @@ -31,6 +31,10 @@ public class TileEntityLaserRelay extends TileEntityBase implements IEnergyRecei public static final int MAX_DISTANCE = 15; private static final float[] COLOR = new float[]{1F, 0F, 0F}; + public TileEntityLaserRelay(){ + super("laserRelay"); + } + @Override public void receiveSyncCompound(NBTTagCompound compound){ BlockPos thisPos = this.pos; diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLavaFactoryController.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLavaFactoryController.java index 4100ffce9..df91f798e 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLavaFactoryController.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLavaFactoryController.java @@ -33,6 +33,10 @@ public class TileEntityLavaFactoryController extends TileEntityBase implements I private int currentWorkTime; private int oldEnergy; + public TileEntityLavaFactoryController(){ + super("lavaFactory"); + } + @Override public void writeSyncableNBT(NBTTagCompound compound, boolean sync){ super.writeSyncableNBT(compound, sync); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLeafGenerator.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLeafGenerator.java index 7e88f279f..e95cf7373 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLeafGenerator.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLeafGenerator.java @@ -37,6 +37,10 @@ public class TileEntityLeafGenerator extends TileEntityBase implements IEnergyPr private int nextUseCounter; private int oldEnergy; + public TileEntityLeafGenerator(){ + super("leafGenerator"); + } + @Override public void writeSyncableNBT(NBTTagCompound compound, boolean sync){ super.writeSyncableNBT(compound, sync); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityOilGenerator.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityOilGenerator.java index 0aa93cef3..0f36ed4c8 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityOilGenerator.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityOilGenerator.java @@ -14,6 +14,7 @@ import cofh.api.energy.EnergyStorage; import cofh.api.energy.IEnergyProvider; import de.ellpeck.actuallyadditions.mod.fluids.InitFluids; import de.ellpeck.actuallyadditions.mod.util.PosUtil; +import de.ellpeck.actuallyadditions.mod.util.Util; import de.ellpeck.actuallyadditions.mod.util.WorldUtil; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -22,19 +23,19 @@ import net.minecraftforge.fluids.*; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; -public class TileEntityOilGenerator extends TileEntityInventoryBase implements IEnergyProvider, IFluidHandler, IEnergySaver, IFluidSaver{ +public class TileEntityOilGenerator extends TileEntityBase implements IEnergyProvider, IFluidHandler, IEnergySaver, IFluidSaver{ public static final int ENERGY_PRODUCED = 76; private static final int BURN_TIME = 100; public EnergyStorage storage = new EnergyStorage(50000); - public FluidTank tank = new FluidTank(2*FluidContainerRegistry.BUCKET_VOLUME); + public FluidTank tank = new FluidTank(2*Util.BUCKET); public int currentBurnTime; private int lastEnergy; private int lastTank; private int lastBurnTime; public TileEntityOilGenerator(){ - super(2, "oilGenerator"); + super("oilGenerator"); } @SideOnly(Side.CLIENT) @@ -88,8 +89,6 @@ public class TileEntityOilGenerator extends TileEntityInventoryBase implements I } } - WorldUtil.emptyBucket(this.tank, this.slots, 0, 1, InitFluids.fluidOil); - if(this.storage.getEnergyStored() > 0){ WorldUtil.pushEnergyToAllSides(this.worldObj, this.pos, this.storage); } @@ -115,21 +114,6 @@ public class TileEntityOilGenerator extends TileEntityInventoryBase implements I } } - @Override - public boolean isItemValidForSlot(int i, ItemStack stack){ - return FluidContainerRegistry.containsFluid(stack, new FluidStack(InitFluids.fluidOil, FluidContainerRegistry.BUCKET_VOLUME)) && i == 0; - } - - @Override - public boolean canInsertItem(int slot, ItemStack stack, EnumFacing side){ - return this.isItemValidForSlot(slot, stack); - } - - @Override - public boolean canExtractItem(int slot, ItemStack stack, EnumFacing side){ - return slot == 1; - } - @Override public int extractEnergy(EnumFacing from, int maxExtract, boolean simulate){ return this.storage.extractEnergy(maxExtract, simulate); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityPhantomBooster.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityPhantomBooster.java index f6d4c700c..b2e5a5753 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityPhantomBooster.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityPhantomBooster.java @@ -12,4 +12,7 @@ package de.ellpeck.actuallyadditions.mod.tile; public class TileEntityPhantomBooster extends TileEntityBase{ + public TileEntityPhantomBooster(){ + super("phantomBooster"); + } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntitySmileyCloud.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntitySmileyCloud.java index 549b7cacb..6a54495ca 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntitySmileyCloud.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntitySmileyCloud.java @@ -22,6 +22,10 @@ public class TileEntitySmileyCloud extends TileEntityBase implements IStringReac public String name; private String nameBefore; + public TileEntitySmileyCloud(){ + super("smileyCloud"); + } + @Override public void writeSyncableNBT(NBTTagCompound compound, boolean sync){ super.writeSyncableNBT(compound, sync); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/util/Util.java b/src/main/java/de/ellpeck/actuallyadditions/mod/util/Util.java index 3c99a2d16..612fd438b 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/util/Util.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/util/Util.java @@ -17,6 +17,7 @@ import net.minecraft.item.Item; import net.minecraft.util.text.TextFormatting; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.util.EnumHelper; +import net.minecraftforge.fluids.FluidContainerRegistry; import net.minecraftforge.oredict.OreDictionary; import java.util.Random; @@ -26,6 +27,7 @@ public class Util{ public static final Random RANDOM = new Random(); public static final int WILDCARD = OreDictionary.WILDCARD_VALUE; + public static final int BUCKET = FluidContainerRegistry.BUCKET_VOLUME; public static final EnumRarity CRYSTAL_RED_RARITY = EnumHelper.addRarity(ModUtil.MOD_ID+"crystalRed", TextFormatting.DARK_RED, ModUtil.NAME+" Red Crystal"); public static final EnumRarity CRYSTAL_BLUE_RARITY = EnumHelper.addRarity(ModUtil.MOD_ID+"crystalBlue", TextFormatting.DARK_BLUE, ModUtil.NAME+" Blue Crystal"); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/util/WorldUtil.java b/src/main/java/de/ellpeck/actuallyadditions/mod/util/WorldUtil.java index a1fb2f1df..b56a92ba5 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/util/WorldUtil.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/util/WorldUtil.java @@ -120,9 +120,17 @@ public class WorldUtil{ boolean replaceable = block.isReplaceable(world, offsetPos); //Fluids - if(replaceable && FluidContainerRegistry.isFilledContainer(stack) && !(block instanceof IFluidBlock) && !(block instanceof BlockLiquid)){ - FluidStack fluid = FluidContainerRegistry.getFluidForFilledItem(stack); - if(fluid != null && fluid.getFluid().getBlock() != null && fluid.getFluid().getBlock().canPlaceBlockAt(world, offsetPos)){ + if(replaceable && !(block instanceof IFluidBlock) && !(block instanceof BlockLiquid)){ + FluidStack fluid = null; + //TODO Remove when FluidContainerRegistry is gone + if(FluidContainerRegistry.isFilledContainer(stack)){ + fluid = FluidContainerRegistry.getFluidForFilledItem(stack); + } + else if(stack.getItem() instanceof IFluidContainerItem){ + fluid = ((IFluidContainerItem)stack.getItem()).getFluid(stack); + } + + if(fluid != null && fluid.amount >= Util.BUCKET && fluid.getFluid().getBlock() != null && fluid.getFluid().getBlock().canPlaceBlockAt(world, offsetPos)){ if(PosUtil.setBlock(offsetPos, world, fluid.getFluid().getBlock(), 0, 2)){ return stack.getItem().getContainerItem(stack); } @@ -170,56 +178,6 @@ public class WorldUtil{ } } - public static void fillBucket(FluidTank tank, ItemStack[] slots, int inputSlot, int outputSlot){ - if(slots[inputSlot] != null && tank.getFluid() != null){ - ItemStack filled = FluidContainerRegistry.fillFluidContainer(tank.getFluid(), slots[inputSlot].copy()); - if(filled != null && FluidContainerRegistry.isEmptyContainer(slots[inputSlot]) && (slots[outputSlot] == null || (slots[outputSlot].isItemEqual(filled) && slots[outputSlot].stackSize < slots[outputSlot].getMaxStackSize()))){ - int cap = FluidContainerRegistry.getContainerCapacity(tank.getFluid(), slots[inputSlot]); - if(cap > 0 && cap <= tank.getFluidAmount()){ - if(slots[outputSlot] == null){ - slots[outputSlot] = FluidContainerRegistry.fillFluidContainer(tank.getFluid(), slots[inputSlot].copy()); - } - else{ - slots[outputSlot].stackSize++; - } - - if(slots[outputSlot] != null){ - tank.drain(cap, true); - slots[inputSlot].stackSize--; - if(slots[inputSlot].stackSize <= 0){ - slots[inputSlot] = null; - } - } - } - } - } - } - - public static void emptyBucket(FluidTank tank, ItemStack[] slots, int inputSlot, int outputSlot){ - emptyBucket(tank, slots, inputSlot, outputSlot, null); - } - - public static void emptyBucket(FluidTank tank, ItemStack[] slots, int inputSlot, int outputSlot, Fluid containedFluid){ - if(slots[inputSlot] != null && FluidContainerRegistry.isFilledContainer(slots[inputSlot]) && (slots[outputSlot] == null || (slots[outputSlot].isItemEqual(FluidContainerRegistry.drainFluidContainer(slots[inputSlot].copy())) && slots[outputSlot].stackSize < slots[outputSlot].getMaxStackSize()))){ - if(containedFluid == null || FluidContainerRegistry.containsFluid(slots[inputSlot], new FluidStack(containedFluid, 0))){ - if((tank.getFluid() == null || FluidContainerRegistry.getFluidForFilledItem(slots[inputSlot]).isFluidEqual(tank.getFluid())) && tank.getCapacity()-tank.getFluidAmount() >= FluidContainerRegistry.getContainerCapacity(slots[inputSlot])){ - if(slots[outputSlot] == null){ - slots[outputSlot] = FluidContainerRegistry.drainFluidContainer(slots[inputSlot].copy()); - } - else{ - slots[outputSlot].stackSize++; - } - - tank.fill(FluidContainerRegistry.getFluidForFilledItem(slots[inputSlot]), true); - slots[inputSlot].stackSize--; - if(slots[inputSlot].stackSize <= 0){ - slots[inputSlot] = null; - } - } - } - } - } - public static EnumFacing getDirectionBySidesInOrder(int side){ switch(side){ case 0: diff --git a/src/main/resources/assets/actuallyadditions/textures/gui/guiCanolaPress.png b/src/main/resources/assets/actuallyadditions/textures/gui/guiCanolaPress.png index 4472e793f..329ca83de 100644 Binary files a/src/main/resources/assets/actuallyadditions/textures/gui/guiCanolaPress.png and b/src/main/resources/assets/actuallyadditions/textures/gui/guiCanolaPress.png differ diff --git a/src/main/resources/assets/actuallyadditions/textures/gui/guiCoffeeMachine.png b/src/main/resources/assets/actuallyadditions/textures/gui/guiCoffeeMachine.png index 338f8beb8..71dd7595e 100644 Binary files a/src/main/resources/assets/actuallyadditions/textures/gui/guiCoffeeMachine.png and b/src/main/resources/assets/actuallyadditions/textures/gui/guiCoffeeMachine.png differ diff --git a/src/main/resources/assets/actuallyadditions/textures/gui/guiFermentingBarrel.png b/src/main/resources/assets/actuallyadditions/textures/gui/guiFermentingBarrel.png index 68f68415e..a50af9b98 100644 Binary files a/src/main/resources/assets/actuallyadditions/textures/gui/guiFermentingBarrel.png and b/src/main/resources/assets/actuallyadditions/textures/gui/guiFermentingBarrel.png differ diff --git a/src/main/resources/assets/actuallyadditions/textures/gui/guiFluidCollector.png b/src/main/resources/assets/actuallyadditions/textures/gui/guiFluidCollector.png index 33714d691..c99b5f194 100644 Binary files a/src/main/resources/assets/actuallyadditions/textures/gui/guiFluidCollector.png and b/src/main/resources/assets/actuallyadditions/textures/gui/guiFluidCollector.png differ diff --git a/src/main/resources/assets/actuallyadditions/textures/gui/guiOilGenerator.png b/src/main/resources/assets/actuallyadditions/textures/gui/guiOilGenerator.png index 79b7459c7..117ca75a8 100644 Binary files a/src/main/resources/assets/actuallyadditions/textures/gui/guiOilGenerator.png and b/src/main/resources/assets/actuallyadditions/textures/gui/guiOilGenerator.png differ