Replaced bucket slots in GUIs with right click functionality
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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){
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
|
@ -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);
|
||||
}
|
||||
}
|
|
@ -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);
|
||||
}
|
||||
}
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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){
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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){
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -12,4 +12,7 @@ package de.ellpeck.actuallyadditions.mod.tile;
|
|||
|
||||
public class TileEntityPhantomBooster extends TileEntityBase{
|
||||
|
||||
public TileEntityPhantomBooster(){
|
||||
super("phantomBooster");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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:
|
||||
|
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 3 KiB |
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.6 KiB |