It compiles, disable JEI as it needs redoing

This commit is contained in:
modmuss50 2016-11-19 14:41:00 +00:00
parent a0e6a2dc34
commit 65e651f402
No known key found for this signature in database
GPG key ID: 773D17BE8BF49C82
97 changed files with 246 additions and 1111 deletions

View file

@ -23,7 +23,7 @@ public class TileDigitalChest extends TileLegacyMachineBase implements IInventor
// Slot 1 = Output
// Slot 2 = Fake Item
public ItemStack storedItem;
public ItemStack storedItem = ItemStack.EMPTY;
// TODO use long so we can have 9,223,372,036,854,775,807 items instead of
// 2,147,483,647
int storage = 32767;
@ -34,11 +34,11 @@ public class TileDigitalChest extends TileLegacyMachineBase implements IInventor
if (!world.isRemote) {
if (storedItem != null) {
ItemStack fakeStack = storedItem.copy();
fakeStack.getCount() = 1;
fakeStack.setCount(1);
setInventorySlotContents(2, fakeStack);
} else if (storedItem == null && getStackInSlot(1) != null) {
} else if (storedItem == ItemStack.EMPTY && getStackInSlot(1) != ItemStack.EMPTY) {
ItemStack fakeStack = getStackInSlot(1).copy();
fakeStack.getCount() = 1;
fakeStack.setCount(1);
setInventorySlotContents(2, fakeStack);
} else {
setInventorySlotContents(2, null);
@ -47,10 +47,10 @@ public class TileDigitalChest extends TileLegacyMachineBase implements IInventor
if (getStackInSlot(0) != null) {
if (storedItem == null) {
storedItem = getStackInSlot(0);
setInventorySlotContents(0, null);
setInventorySlotContents(0, ItemStack.EMPTY);
} else if (ItemUtils.isItemEqual(storedItem, getStackInSlot(0), true, true)) {
if (storedItem.getCount() <= storage - getStackInSlot(0).getCount()) {
storedItem.getCount() += getStackInSlot(0).getCount();
storedItem.grow(getStackInSlot(0).getCount());
decrStackSize(0, getStackInSlot(0).getCount());
}
}
@ -58,14 +58,14 @@ public class TileDigitalChest extends TileLegacyMachineBase implements IInventor
if (storedItem != null && getStackInSlot(1) == null) {
ItemStack itemStack = storedItem.copy();
itemStack.getCount() = itemStack.getMaxStackSize();
itemStack.setCount(itemStack.getMaxStackSize());
setInventorySlotContents(1, itemStack);
storedItem.getCount() -= itemStack.getMaxStackSize();
storedItem.shrink(itemStack.getMaxStackSize());
} else if (ItemUtils.isItemEqual(getStackInSlot(1), storedItem, true, true)) {
int wanted = getStackInSlot(1).getMaxStackSize() - getStackInSlot(1).getCount();
if (storedItem.getCount() >= wanted) {
decrStackSize(1, -wanted);
storedItem.getCount() -= wanted;
storedItem.shrink(wanted);
} else {
decrStackSize(1, -storedItem.getCount());
storedItem = null;
@ -92,11 +92,11 @@ public class TileDigitalChest extends TileLegacyMachineBase implements IInventor
storedItem = null;
if (tagCompound.hasKey("storedStack")) {
storedItem = ItemStack.loadItemStackFromNBT((NBTTagCompound) tagCompound.getTag("storedStack"));
storedItem = new ItemStack((NBTTagCompound) tagCompound.getTag("storedStack"));
}
if (storedItem != null) {
storedItem.getCount() = tagCompound.getInteger("storedQuantity");
storedItem.setCount(tagCompound.getInteger("storedQuantity"));
}
}

View file

@ -86,7 +86,7 @@ public class TileIronFurnace extends TileLegacyMachineBase implements IInventory
if (getStackInSlot(output) == null) {
setInventorySlotContents(output, itemstack.copy());
} else if (getStackInSlot(output).isItemEqual(itemstack)) {
getStackInSlot(output).getCount() += itemstack.getCount();
getStackInSlot(output).grow(itemstack.getCount());
}
if (getStackInSlot(input1).getCount() > 1) {
this.decrStackSize(input1, 1);

View file

@ -130,7 +130,7 @@ public class TileMatterFabricator extends TilePowerAcceptor implements IWrenchab
if (inventory.getStackInSlot(6) == null) {
inventory.setInventorySlotContents(6, new ItemStack(ModItems.uuMatter));
} else if (ItemUtils.isItemEqual(inventory.getStackInSlot(6), new ItemStack(ModItems.uuMatter), true, true)) {
inventory.getStackInSlot(6).getCount() = Math.min(64, 1 + inventory.getStackInSlot(6).getCount());
inventory.getStackInSlot(6).setCount(Math.min(64, 1 + inventory.getStackInSlot(6).getCount()));
}
}

View file

@ -81,7 +81,7 @@ public class TilePlayerDectector extends TilePowerAcceptor {
}
if (lastRedstone != redstone) {
WorldUtils.updateBlock(world, getPos());
world.notifyNeighborsOfStateChange(getPos(), world.getBlockState(getPos()).getBlock());
world.notifyNeighborsOfStateChange(getPos(), world.getBlockState(getPos()).getBlock(), true);
}
}
}

View file

@ -8,7 +8,9 @@ import net.minecraft.util.EnumFacing;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.text.TextFormatting;
import net.minecraft.world.World;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.fluids.*;
import net.minecraftforge.fluids.capability.CapabilityFluidHandler;
import reborncore.api.power.EnumPowerTier;
import reborncore.common.powerSystem.PowerSystem;
import reborncore.common.powerSystem.TilePowerAcceptor;
@ -20,7 +22,7 @@ import java.util.List;
/**
* Created by modmuss50 on 08/05/2016.
*/
public class TilePump extends TilePowerAcceptor implements IFluidHandler {
public class TilePump extends TilePowerAcceptor {
public Tank tank = new Tank("TilePump", 10000, this);
@ -130,40 +132,19 @@ public class TilePump extends TilePowerAcceptor implements IFluidHandler {
return tagCompound;
}
// IFluidHandler
@Override
public int fill(EnumFacing from, FluidStack resource, boolean doFill) {
int fill = tank.fill(resource, doFill);
tank.compareAndUpdate();
return fill;
public boolean hasCapability(Capability<?> capability, EnumFacing facing) {
if(capability == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY){
return true;
}
return super.hasCapability(capability, facing);
}
@Override
public FluidStack drain(EnumFacing from, FluidStack resource, boolean doDrain) {
FluidStack drain = tank.drain(resource.amount, doDrain);
tank.compareAndUpdate();
return drain;
}
@Override
public FluidStack drain(EnumFacing from, int maxDrain, boolean doDrain) {
FluidStack drain = tank.drain(maxDrain, doDrain);
tank.compareAndUpdate();
return drain;
}
@Override
public boolean canFill(EnumFacing from, Fluid fluid) {
return false;
}
@Override
public boolean canDrain(EnumFacing from, Fluid fluid) {
return tank.getFluid() == null || tank.getFluid().getFluid() == fluid;
}
@Override
public FluidTankInfo[] getTankInfo(EnumFacing from) {
return new FluidTankInfo[] { tank.getInfo() };
public <T> T getCapability(Capability<T> capability, EnumFacing facing) {
if(capability == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY){
return (T) tank;
}
return super.getCapability(capability, facing);
}
}

View file

@ -36,11 +36,11 @@ public class TileQuantumChest extends TileLegacyMachineBase
if (!world.isRemote) {
if (storedItem != null) {
ItemStack fakeStack = storedItem.copy();
fakeStack.getCount() = 1;
fakeStack.setCount(1);
setInventorySlotContents(2, fakeStack);
} else if (storedItem == null && getStackInSlot(1) != null) {
} else if (storedItem == ItemStack.EMPTY && getStackInSlot(1) != ItemStack.EMPTY) {
ItemStack fakeStack = getStackInSlot(1).copy();
fakeStack.getCount() = 1;
fakeStack.setCount(1);
setInventorySlotContents(2, fakeStack);
} else {
setInventorySlotContents(2, null);
@ -49,10 +49,10 @@ public class TileQuantumChest extends TileLegacyMachineBase
if (getStackInSlot(0) != null) {
if (storedItem == null) {
storedItem = getStackInSlot(0);
setInventorySlotContents(0, null);
setInventorySlotContents(0, ItemStack.EMPTY);
} else if (ItemUtils.isItemEqual(storedItem, getStackInSlot(0), true, true)) {
if (storedItem.getCount() <= storage - getStackInSlot(0).getCount()) {
storedItem.getCount() += getStackInSlot(0).getCount();
storedItem.grow(getStackInSlot(0).getCount());
decrStackSize(0, getStackInSlot(0).getCount());
}
}
@ -60,14 +60,14 @@ public class TileQuantumChest extends TileLegacyMachineBase
if (storedItem != null && getStackInSlot(1) == null) {
ItemStack itemStack = storedItem.copy();
itemStack.getCount() = itemStack.getMaxStackSize();
itemStack.setCount(itemStack.getMaxStackSize());
setInventorySlotContents(1, itemStack);
storedItem.getCount() -= itemStack.getMaxStackSize();
storedItem.shrink(itemStack.getMaxStackSize());
} else if (ItemUtils.isItemEqual(getStackInSlot(1), storedItem, true, true)) {
int wanted = getStackInSlot(1).getMaxStackSize() - getStackInSlot(1).getCount();
if (storedItem.getCount() >= wanted) {
decrStackSize(1, -wanted);
storedItem.getCount() -= wanted;
storedItem.shrink(wanted);
} else {
decrStackSize(1, -storedItem.getCount());
storedItem = null;
@ -94,11 +94,11 @@ public class TileQuantumChest extends TileLegacyMachineBase
storedItem = null;
if (tagCompound.hasKey("storedStack")) {
storedItem = ItemStack.loadItemStackFromNBT((NBTTagCompound) tagCompound.getTag("storedStack"));
storedItem = new ItemStack((NBTTagCompound) tagCompound.getTag("storedStack"));
}
if (storedItem != null) {
storedItem.getCount() = tagCompound.getInteger("storedQuantity");
storedItem.setCount(tagCompound.getInteger("storedQuantity"));
}
}
@ -161,15 +161,14 @@ public class TileQuantumChest extends TileLegacyMachineBase
@Override
public void setStoredItemCount(int amount) {
this.storedItem.getCount() = 0;
this.storedItem.getCount() += (amount);
storedItem.grow(amount);
this.markDirty();
}
@Override
public void setStoredItemType(ItemStack type, int amount) {
this.storedItem = type;
this.storedItem.getCount() = amount;
storedItem.setCount(amount);
this.markDirty();
}

View file

@ -6,10 +6,8 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.NetworkManager;
import net.minecraft.network.play.server.SPacketUpdateTileEntity;
import net.minecraft.util.EnumFacing;
import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.FluidTankInfo;
import net.minecraftforge.fluids.IFluidHandler;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.fluids.capability.CapabilityFluidHandler;
import reborncore.api.IListInfoProvider;
import reborncore.api.tile.IInventoryProvider;
import reborncore.common.IWrenchable;
@ -23,7 +21,7 @@ import techreborn.init.ModBlocks;
import java.util.List;
public class TileQuantumTank extends TileLegacyMachineBase
implements IFluidHandler, IInventoryProvider, IWrenchable, IListInfoProvider {
implements IInventoryProvider, IWrenchable, IListInfoProvider {
public Tank tank = new Tank("TileQuantumTank", Integer.MAX_VALUE, this);
public Inventory inventory = new Inventory(3, "TileQuantumTank", 64, this);
@ -61,8 +59,8 @@ public class TileQuantumTank extends TileLegacyMachineBase
public void updateEntity() {
super.updateEntity();
if (!world.isRemote) {
FluidUtils.drainContainers(this, inventory, 0, 1);
FluidUtils.fillContainers(this, inventory, 0, 1, tank.getFluidType());
FluidUtils.drainContainers(tank, inventory, 0, 1);
FluidUtils.fillContainers(tank, inventory, 0, 1, tank.getFluidType());
if (tank.getFluidType() != null && getStackInSlot(2) == null) {
// inventory.setInventorySlotContents(2, new ItemStack(tank.getFluidType().getBlock()));
} else if (tank.getFluidType() == null && getStackInSlot(2) != null) {
@ -72,41 +70,20 @@ public class TileQuantumTank extends TileLegacyMachineBase
}
}
// IFluidHandler
@Override
public int fill(EnumFacing from, FluidStack resource, boolean doFill) {
int fill = tank.fill(resource, doFill);
tank.compareAndUpdate();
return fill;
public boolean hasCapability(Capability<?> capability, EnumFacing facing) {
if(capability == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY){
return true;
}
return super.hasCapability(capability, facing);
}
@Override
public FluidStack drain(EnumFacing from, FluidStack resource, boolean doDrain) {
FluidStack drain = tank.drain(resource.amount, doDrain);
tank.compareAndUpdate();
return drain;
}
@Override
public FluidStack drain(EnumFacing from, int maxDrain, boolean doDrain) {
FluidStack drain = tank.drain(maxDrain, doDrain);
tank.compareAndUpdate();
return drain;
}
@Override
public boolean canFill(EnumFacing from, Fluid fluid) {
return tank.getFluid() == null || tank.getFluid().getFluid() == fluid;
}
@Override
public boolean canDrain(EnumFacing from, Fluid fluid) {
return tank.getFluid() == null || tank.getFluid().getFluid() == fluid;
}
@Override
public FluidTankInfo[] getTankInfo(EnumFacing from) {
return new FluidTankInfo[] { tank.getInfo() };
public <T> T getCapability(Capability<T> capability, EnumFacing facing) {
if(capability == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY){
return (T) tank;
}
return super.getCapability(capability, facing);
}
@Override

View file

@ -80,7 +80,7 @@ public class TileRollingMachine extends TilePowerAcceptor implements IWrenchable
if (inventory.getStackInSlot(0).getCount() + currentRecipe.getCount() <= currentRecipe
.getMaxStackSize()) {
ItemStack stack = inventory.getStackInSlot(0);
stack.getCount() = stack.getCount() + currentRecipe.getCount();
stack.setCount(stack.getCount() + currentRecipe.getCount());
inventory.setInventorySlotContents(0, stack);
tickTime = -1;
hasCrafted = true;

View file

@ -6,7 +6,9 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.NetworkManager;
import net.minecraft.network.play.server.SPacketUpdateTileEntity;
import net.minecraft.util.EnumFacing;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.fluids.*;
import net.minecraftforge.fluids.capability.CapabilityFluidHandler;
import reborncore.api.fuel.FluidPowerManager;
import reborncore.api.power.EnumPowerTier;
import reborncore.api.tile.IInventoryProvider;
@ -18,10 +20,10 @@ import reborncore.common.util.Tank;
import techreborn.config.ConfigTechReborn;
import techreborn.init.ModBlocks;
public class TileDieselGenerator extends TilePowerAcceptor implements IWrenchable, IFluidHandler, IInventoryProvider {
public class TileDieselGenerator extends TilePowerAcceptor implements IWrenchable, IInventoryProvider {
public static final int euTick = ConfigTechReborn.ThermalGeneratorOutput;
public Tank tank = new Tank("TileDieselGenerator", FluidContainerRegistry.BUCKET_VOLUME * 10, this);
public Tank tank = new Tank("TileDieselGenerator", 1000 * 10, this);
public Inventory inventory = new Inventory(3, "TileDieselGenerator", 64, this);
public TileDieselGenerator() {
@ -54,42 +56,19 @@ public class TileDieselGenerator extends TilePowerAcceptor implements IWrenchabl
}
@Override
public int fill(EnumFacing from, FluidStack resource, boolean doFill) {
int filled = tank.fill(resource, doFill);
tank.compareAndUpdate();
return filled;
}
@Override
public FluidStack drain(EnumFacing from, FluidStack resource, boolean doDrain) {
if (resource == null || !resource.isFluidEqual(tank.getFluid())) {
return null;
public boolean hasCapability(Capability<?> capability, EnumFacing facing) {
if(capability == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY){
return true;
}
FluidStack fluidStack = tank.drain(resource.amount, doDrain);
tank.compareAndUpdate();
return fluidStack;
return super.hasCapability(capability, facing);
}
@Override
public FluidStack drain(EnumFacing from, int maxDrain, boolean doDrain) {
FluidStack drained = tank.drain(maxDrain, doDrain);
tank.compareAndUpdate();
return drained;
}
@Override
public boolean canFill(EnumFacing from, Fluid fluid) {
return FluidPowerManager.fluidPowerValues.containsKey(fluid);
}
@Override
public boolean canDrain(EnumFacing from, Fluid fluid) {
return tank.getFluid() == null || tank.getFluid().getFluid() == fluid;
}
@Override
public FluidTankInfo[] getTankInfo(EnumFacing from) {
return new FluidTankInfo[] { tank.getInfo() };
public <T> T getCapability(Capability<T> capability, EnumFacing facing) {
if(capability == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY){
return (T) tank;
}
return super.getCapability(capability, facing);
}
@Override
@ -116,8 +95,8 @@ public class TileDieselGenerator extends TilePowerAcceptor implements IWrenchabl
public void updateEntity() {
super.updateEntity();
if (!world.isRemote) {
FluidUtils.drainContainers(this, inventory, 0, 1);
FluidUtils.fillContainers(this, inventory, 0, 1, tank.getFluidType());
FluidUtils.drainContainers(tank, inventory, 0, 1);
FluidUtils.fillContainers(tank, inventory, 0, 1, tank.getFluidType());
if (tank.getFluidType() != null && getStackInSlot(2) == null) {
inventory.setInventorySlotContents(2, new ItemStack(tank.getFluidType().getBlock()));
syncWithAll();

View file

@ -6,7 +6,9 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.NetworkManager;
import net.minecraft.network.play.server.SPacketUpdateTileEntity;
import net.minecraft.util.EnumFacing;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.fluids.*;
import net.minecraftforge.fluids.capability.CapabilityFluidHandler;
import reborncore.api.power.EnumPowerTier;
import reborncore.api.tile.IInventoryProvider;
import reborncore.common.IWrenchable;
@ -20,11 +22,11 @@ import techreborn.init.ModBlocks;
import java.util.HashMap;
import java.util.Map;
public class TileGasTurbine extends TilePowerAcceptor implements IWrenchable, IFluidHandler, IInventoryProvider {
public class TileGasTurbine extends TilePowerAcceptor implements IWrenchable, IInventoryProvider {
// TODO: run this off config
public static final int euTick = 16;
public Tank tank = new Tank("TileGasTurbine", FluidContainerRegistry.BUCKET_VOLUME * 10, this);
public Tank tank = new Tank("TileGasTurbine", 1000 * 10, this);
public Inventory inventory = new Inventory(3, "TileGasTurbine", 64, this);
Map<String, Integer> fluids = new HashMap<>();
@ -67,42 +69,19 @@ public class TileGasTurbine extends TilePowerAcceptor implements IWrenchable, IF
}
@Override
public int fill(EnumFacing from, FluidStack resource, boolean doFill) {
int fill = tank.fill(resource, doFill);
tank.compareAndUpdate();
return fill;
}
@Override
public FluidStack drain(EnumFacing from, FluidStack resource, boolean doDrain) {
FluidStack drain = tank.drain(resource.amount, doDrain);
tank.compareAndUpdate();
return drain;
}
@Override
public FluidStack drain(EnumFacing from, int maxDrain, boolean doDrain) {
FluidStack drain = tank.drain(maxDrain, doDrain);
tank.compareAndUpdate();
return drain;
}
@Override
public boolean canFill(EnumFacing from, Fluid fluid) {
if (fluid != null) {
return fluids.containsKey(FluidRegistry.getFluidName(fluid));
public boolean hasCapability(Capability<?> capability, EnumFacing facing) {
if(capability == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY){
return true;
}
return false;
return super.hasCapability(capability, facing);
}
@Override
public boolean canDrain(EnumFacing from, Fluid fluid) {
return tank.getFluid() == null || tank.getFluid().getFluid() == fluid;
}
@Override
public FluidTankInfo[] getTankInfo(EnumFacing from) {
return new FluidTankInfo[] { tank.getInfo() };
public <T> T getCapability(Capability<T> capability, EnumFacing facing) {
if(capability == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY){
return (T) tank;
}
return super.getCapability(capability, facing);
}
@Override
@ -129,7 +108,7 @@ public class TileGasTurbine extends TilePowerAcceptor implements IWrenchable, IF
public void updateEntity() {
super.updateEntity();
if (!world.isRemote) {
FluidUtils.drainContainers(this, inventory, 0, 1);
FluidUtils.drainContainers(tank, inventory, 0, 1);
tank.compareAndUpdate();
}

View file

@ -6,7 +6,9 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.NetworkManager;
import net.minecraft.network.play.server.SPacketUpdateTileEntity;
import net.minecraft.util.EnumFacing;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.fluids.*;
import net.minecraftforge.fluids.capability.CapabilityFluidHandler;
import reborncore.api.power.EnumPowerTier;
import reborncore.api.tile.IInventoryProvider;
import reborncore.common.IWrenchable;
@ -20,11 +22,11 @@ import techreborn.init.ModBlocks;
import java.util.HashMap;
import java.util.Map;
public class TileSemifluidGenerator extends TilePowerAcceptor implements IWrenchable, IFluidHandler, IInventoryProvider {
public class TileSemifluidGenerator extends TilePowerAcceptor implements IWrenchable, IInventoryProvider {
// TODO: run this off config
public static final int euTick = 8;
public Tank tank = new Tank("TileSemifluidGenerator", FluidContainerRegistry.BUCKET_VOLUME * 10, this);
public Tank tank = new Tank("TileSemifluidGenerator", 1000 * 10, this);
public Inventory inventory = new Inventory(3, "TileSemifluidGenerator", 64, this);
Map<String, Integer> fluids = new HashMap<>();
@ -73,42 +75,19 @@ public class TileSemifluidGenerator extends TilePowerAcceptor implements IWrench
}
@Override
public int fill(EnumFacing from, FluidStack resource, boolean doFill) {
int fill = tank.fill(resource, doFill);
tank.compareAndUpdate();
return fill;
}
@Override
public FluidStack drain(EnumFacing from, FluidStack resource, boolean doDrain) {
FluidStack drain = tank.drain(resource.amount, doDrain);
tank.compareAndUpdate();
return drain;
}
@Override
public FluidStack drain(EnumFacing from, int maxDrain, boolean doDrain) {
FluidStack drain = tank.drain(maxDrain, doDrain);
tank.compareAndUpdate();
return drain;
}
@Override
public boolean canFill(EnumFacing from, Fluid fluid) {
if (fluid != null) {
return fluids.containsKey(FluidRegistry.getFluidName(fluid));
public boolean hasCapability(Capability<?> capability, EnumFacing facing) {
if(capability == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY){
return true;
}
return false;
return super.hasCapability(capability, facing);
}
@Override
public boolean canDrain(EnumFacing from, Fluid fluid) {
return tank.getFluid() == null || tank.getFluid().getFluid() == fluid;
}
@Override
public FluidTankInfo[] getTankInfo(EnumFacing from) {
return new FluidTankInfo[] { tank.getInfo() };
public <T> T getCapability(Capability<T> capability, EnumFacing facing) {
if(capability == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY){
return (T) tank;
}
return super.getCapability(capability, facing);
}
@Override
@ -135,7 +114,7 @@ public class TileSemifluidGenerator extends TilePowerAcceptor implements IWrench
public void updateEntity() {
super.updateEntity();
if (!world.isRemote)
FluidUtils.drainContainers(this, inventory, 0, 1);
FluidUtils.drainContainers(tank, inventory, 0, 1);
if (tank.getFluidAmount() > 0 && getMaxPower() - getEnergy() >= euTick && tank.getFluidType() != null && fluids.containsKey(tank.getFluidType().getName())) {
Integer euPerBucket = fluids.get(tank.getFluidType().getName());

View file

@ -8,7 +8,9 @@ import net.minecraft.network.NetworkManager;
import net.minecraft.network.play.server.SPacketUpdateTileEntity;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.math.BlockPos;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.fluids.*;
import net.minecraftforge.fluids.capability.CapabilityFluidHandler;
import reborncore.api.power.EnumPowerTier;
import reborncore.api.tile.IInventoryProvider;
import reborncore.common.IWrenchable;
@ -20,10 +22,10 @@ import reborncore.common.util.Tank;
import techreborn.config.ConfigTechReborn;
import techreborn.init.ModBlocks;
public class TileThermalGenerator extends TilePowerAcceptor implements IWrenchable, IFluidHandler, IInventoryProvider {
public class TileThermalGenerator extends TilePowerAcceptor implements IWrenchable, IInventoryProvider {
public static final int euTick = ConfigTechReborn.ThermalGeneratorOutput;
public Tank tank = new Tank("TileThermalGenerator", FluidContainerRegistry.BUCKET_VOLUME * 10, this);
public Tank tank = new Tank("TileThermalGenerator", 1000 * 10, this);
public Inventory inventory = new Inventory(3, "TileThermalGenerator", 64, this);
public TileThermalGenerator() {
@ -56,44 +58,19 @@ public class TileThermalGenerator extends TilePowerAcceptor implements IWrenchab
}
@Override
public int fill(EnumFacing from, FluidStack resource, boolean doFill) {
int fill = tank.fill(resource, doFill);
tank.compareAndUpdate();
return fill;
}
@Override
public FluidStack drain(EnumFacing from, FluidStack resource, boolean doDrain) {
FluidStack drain = tank.drain(resource.amount, doDrain);
tank.compareAndUpdate();
return drain;
}
@Override
public FluidStack drain(EnumFacing from, int maxDrain, boolean doDrain) {
FluidStack drain = tank.drain(maxDrain, doDrain);
tank.compareAndUpdate();
return drain;
}
@Override
public boolean canFill(EnumFacing from, Fluid fluid) {
if (fluid != null) {
if (fluid == FluidRegistry.LAVA) {
return true;
}
public boolean hasCapability(Capability<?> capability, EnumFacing facing) {
if(capability == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY){
return true;
}
return false;
return super.hasCapability(capability, facing);
}
@Override
public boolean canDrain(EnumFacing from, Fluid fluid) {
return tank.getFluid() == null || tank.getFluid().getFluid() == fluid;
}
@Override
public FluidTankInfo[] getTankInfo(EnumFacing from) {
return new FluidTankInfo[] { tank.getInfo() };
public <T> T getCapability(Capability<T> capability, EnumFacing facing) {
if(capability == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY){
return (T) tank;
}
return super.getCapability(capability, facing);
}
@Override
@ -121,7 +98,7 @@ public class TileThermalGenerator extends TilePowerAcceptor implements IWrenchab
public void updateEntity() {
super.updateEntity();
if (!world.isRemote) {
FluidUtils.drainContainers(this, inventory, 0, 1);
FluidUtils.drainContainers(tank, inventory, 0, 1);
for (EnumFacing direction : EnumFacing.values()) {
if (world.getBlockState(new BlockPos(getPos().getX() + direction.getFrontOffsetX(),
getPos().getY() + direction.getFrontOffsetY(), getPos().getZ() + direction.getFrontOffsetZ()))

View file

@ -9,7 +9,9 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.math.BlockPos;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.fluids.*;
import net.minecraftforge.fluids.capability.CapabilityFluidHandler;
import reborncore.api.power.EnumPowerTier;
import reborncore.api.recipe.IRecipeCrafterProvider;
import reborncore.api.tile.IInventoryProvider;
@ -31,7 +33,7 @@ import static techreborn.tiles.multiblock.MultiblockChecker.CASING_REINFORCED;
import static techreborn.tiles.multiblock.MultiblockChecker.ZERO_OFFSET;
public class TileIndustrialGrinder extends TilePowerAcceptor
implements IWrenchable, IFluidHandler, IInventoryProvider, ISidedInventory, ITileRecipeHandler<IndustrialGrinderRecipe>, IRecipeCrafterProvider {
implements IWrenchable, IInventoryProvider, ISidedInventory, ITileRecipeHandler<IndustrialGrinderRecipe>, IRecipeCrafterProvider {
public static final int TANK_CAPACITY = 16000;
public Inventory inventory = new Inventory(6, "TileGrinder", 64, this);
@ -100,7 +102,7 @@ public class TileIndustrialGrinder extends TilePowerAcceptor
if (getMutliBlock()) {
crafter.updateEntity();
}
FluidUtils.drainContainers(this, inventory, 1, 5);
FluidUtils.drainContainers(tank, inventory, 1, 5);
}
@Override
@ -128,48 +130,20 @@ public class TileIndustrialGrinder extends TilePowerAcceptor
super.onChunkUnload();
}
/* IFluidHandler */
@Override
public int fill(EnumFacing from, FluidStack resource, boolean doFill) {
if (resource.getFluid() == FluidRegistry.WATER || resource.getFluid() == ModFluids.fluidMercury
|| resource.getFluid() == ModFluids.fluidSodiumpersulfate) {
int filled = tank.fill(resource, doFill);
tank.compareAndUpdate();
return filled;
public boolean hasCapability(Capability<?> capability, EnumFacing facing) {
if(capability == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY){
return true;
}
return 0;
return super.hasCapability(capability, facing);
}
@Override
public FluidStack drain(EnumFacing from, FluidStack resource, boolean doDrain) {
if (resource == null || !resource.isFluidEqual(tank.getFluid())) {
return null;
public <T> T getCapability(Capability<T> capability, EnumFacing facing) {
if(capability == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY){
return (T) tank;
}
FluidStack fluidStack = tank.drain(resource.amount, doDrain);
tank.compareAndUpdate();
return fluidStack;
}
@Override
public FluidStack drain(EnumFacing from, int maxDrain, boolean doDrain) {
FluidStack drained = tank.drain(maxDrain, doDrain);
tank.compareAndUpdate();
return drained;
}
@Override
public boolean canFill(EnumFacing from, Fluid fluid) {
return fluid == FluidRegistry.WATER || fluid == ModFluids.fluidMercury || fluid == ModFluids.fluidSodiumpersulfate;
}
@Override
public boolean canDrain(EnumFacing from, Fluid fluid) {
return false;
}
@Override
public FluidTankInfo[] getTankInfo(EnumFacing from) {
return new FluidTankInfo[] { tank.getInfo() };
return super.getCapability(capability, facing);
}
// ISidedInventory

View file

@ -9,7 +9,9 @@ import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.math.BlockPos;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.fluids.*;
import net.minecraftforge.fluids.capability.CapabilityFluidHandler;
import net.minecraftforge.oredict.OreDictionary;
import reborncore.api.IListInfoProvider;
import reborncore.api.power.EnumPowerTier;
@ -29,7 +31,7 @@ import static techreborn.tiles.multiblock.MultiblockChecker.CASING_NORMAL;
import static techreborn.tiles.multiblock.MultiblockChecker.CASING_REINFORCED;
import static techreborn.tiles.multiblock.MultiblockChecker.ZERO_OFFSET;
public class TileIndustrialSawmill extends TilePowerAcceptor implements IWrenchable, IFluidHandler, IInventoryProvider, ISidedInventory, IListInfoProvider {
public class TileIndustrialSawmill extends TilePowerAcceptor implements IWrenchable, IInventoryProvider, ISidedInventory, IListInfoProvider {
public Inventory inventory = new Inventory(5, "Sawmill", 64, this);
public Tank tank = new Tank("Sawmill", 16000, this);
@ -57,8 +59,9 @@ public class TileIndustrialSawmill extends TilePowerAcceptor implements IWrencha
canUseEnergy(128.0F) &&
!tank.isEmpty() &&
tank.getFluid().amount >= 1000) {
if (--wood.getCount() == 0)
setInventorySlotContents(0, null);
wood.shrink(1);
if (wood.getCount() == 0)
setInventorySlotContents(0, ItemStack.EMPTY);
tank.drain(1000, true);
useEnergy(128.0F);
tickTime = 1;
@ -79,13 +82,13 @@ public class TileIndustrialSawmill extends TilePowerAcceptor implements IWrencha
tickTime = 0;
}
}
FluidUtils.drainContainers(this, inventory, 1, 4);
FluidUtils.drainContainers(tank, inventory, 1, 4);
}
public void addOutput(int slot, ItemStack stack) {
if (getStackInSlot(slot) == null)
setInventorySlotContents(slot, stack);
getStackInSlot(slot).getCount() += stack.getCount();
getStackInSlot(slot).grow(stack.getCount());
}
public boolean canAddOutput(int slot, int amount) {
@ -148,48 +151,20 @@ public class TileIndustrialSawmill extends TilePowerAcceptor implements IWrencha
return tagCompound;
}
/* IFluidHandler */
@Override
public int fill(EnumFacing from, FluidStack resource, boolean doFill) {
if (resource.getFluid() == FluidRegistry.WATER || resource.getFluid() == ModFluids.fluidMercury
|| resource.getFluid() == ModFluids.fluidSodiumpersulfate) {
int filled = tank.fill(resource, doFill);
tank.compareAndUpdate();
return filled;
public boolean hasCapability(Capability<?> capability, EnumFacing facing) {
if(capability == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY){
return true;
}
return 0;
return super.hasCapability(capability, facing);
}
@Override
public FluidStack drain(EnumFacing from, FluidStack resource, boolean doDrain) {
if (resource == null || !resource.isFluidEqual(tank.getFluid())) {
return null;
public <T> T getCapability(Capability<T> capability, EnumFacing facing) {
if(capability == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY){
return (T) tank;
}
FluidStack fluidStack = tank.drain(resource.amount, doDrain);
tank.compareAndUpdate();
return fluidStack;
}
@Override
public FluidStack drain(EnumFacing from, int maxDrain, boolean doDrain) {
FluidStack drained = tank.drain(maxDrain, doDrain);
tank.compareAndUpdate();
return drained;
}
@Override
public boolean canFill(EnumFacing from, Fluid fluid) {
return fluid == FluidRegistry.WATER;
}
@Override
public boolean canDrain(EnumFacing from, Fluid fluid) {
return false;
}
@Override
public FluidTankInfo[] getTankInfo(EnumFacing from) {
return new FluidTankInfo[] { tank.getInfo() };
return super.getCapability(capability, facing);
}
@Override

View file

@ -80,7 +80,7 @@ public class TileRecycler extends TilePowerAcceptor implements IWrenchable, IInv
} else if (getStackInSlot(output).isItemEqual(itemstack)) {
useEnergy(cost);
if (randomchance == 1) {
getStackInSlot(output).getCount() += itemstack.getCount();
getStackInSlot(output).setCount(itemstack.getCount());
}
}
if (getStackInSlot(input1).getCount() > 1) {