Здравствуйте. Возникла проблема с обновлением слота. У меня есть кастомный гуи для моего механизма с 2-мя слотами. В процессе работы этого механизма используются фильтры. Они кладутся в верхний слот. После того как фильтр загрязнился, он исчезает, а в нижний слот добавляется загрязненный фильтр. Проблема в том, что когда в нижнем слоте уже есть один загрязненный фильтр, то после добавления еще одного по идее их должно быть 2 в нижнем слоте. Но если не нажимать на слот, то число предметов в слоте графически не меняется. На самом деле их количество увеличивается, как и должно быть. То есть пока не нажмешь на слот и не возьмешь из него эти грязные фильтры то не узнаешь сколько их там, как будто один. Короче, не происходит графического обновления количества предметов в стаке в слоте. Фильтры добавляю в слот в методе litterFilter.
Код конечно грязный, но это черновая модель, потом весь мусор убирается. Это test-версия =)
Как это исправить и обновить слот?
Код конечно грязный, но это черновая модель, потом весь мусор убирается. Это test-версия =)
Как это исправить и обновить слот?
public class BlockTestTile extends TileEntity implements ISidedInventory,IPipeConnection,IFluidHandler{
private String inventoryTitle="CustomName";
public int idBlock=new Random().nextInt();
public boolean activeBlock=false;
private int slotsCount=2;
private ItemStack[] inventoryContents;
private List field_70480_d;
private boolean field_94051_e;
public static final int SLOTCOUNT=2;
public final Tank tank1;
public final Tank tank2;
public TankManager<Tank> tankManager;
long startTime=new Date().getTime();
int t=0;
int damage=0;
public BlockTestTile(String inventoryTitle, boolean p_i1561_2_)
{
if(this.inventoryContents==null) {
this.inventoryContents = new ItemStack[SLOTCOUNT];
}
this.inventoryTitle = inventoryTitle;
this.field_94051_e = p_i1561_2_;
this.slotsCount = SLOTCOUNT;
tank1 = new Tank("tank", 16000, this);
tank2=new Tank("tank2",16000,this);
tankManager= new TankManager<>();
this.tankManager.add(this.tank1);
this.tankManager.add(this.tank2);
// activeBlock=worldObj.isBlockIndirectlyGettingPowered(xCoord,yCoord,zCoord);
}
public BlockTestTile(){
if(this.inventoryContents==null) {
this.inventoryContents = new ItemStack[SLOTCOUNT];
}
tank1 = new Tank("tank", 16000, this);
tank2=new Tank("tank2",16000,this);
tankManager= new TankManager<>();
this.tankManager.add(this.tank1);
this.tankManager.add(this.tank2);
// tankManager= new TankManager<>();
// this.tankManager.add(this.tank);
// ContainerFurnace
}
public void func_110134_a(IInvBasic p_110134_1_)
{
if (this.field_70480_d == null)
{
this.field_70480_d = new ArrayList();
}
this.field_70480_d.add(p_110134_1_);
}
public void func_110132_b(IInvBasic p_110132_1_)
{
this.field_70480_d.remove(p_110132_1_);
}
public void func_110133_a(String p_110133_1_)
{
this.field_94051_e = true;
this.inventoryTitle = p_110133_1_;
}
@Override
public int[] getAccessibleSlotsFromSide(int p_94128_1_) {
return new int[0];
}
@Override
public boolean canInsertItem(int p_102007_1_, ItemStack p_102007_2_, int p_102007_3_) {
return this.isItemValidForSlot(p_102007_1_, p_102007_2_);
}
@Override
public boolean canExtractItem(int p_102008_1_, ItemStack p_102008_2_, int p_102008_3_) {
return false;
}
@Override
public int getSizeInventory()
{
return this.slotsCount;
}
@Override
public ItemStack getStackInSlot(int index) {
//Minecraft.getMinecraft().thePlayer.sendChatMessage("SLOT: "+index);
if(this.inventoryContents!=null){
return index >= 0 && index < this.inventoryContents.length ? this.inventoryContents[index] : null;
}else
return null;
}
@Override
public ItemStack decrStackSize(int p_70298_1_, int p_70298_2_) {
if (this.inventoryContents[p_70298_1_] != null)
{
ItemStack itemstack;
if (this.inventoryContents[p_70298_1_].stackSize <= p_70298_2_)
{
itemstack = this.inventoryContents[p_70298_1_];
this.inventoryContents[p_70298_1_] = null;
this.markDirty();
return itemstack;
}
else
{
itemstack = this.inventoryContents[p_70298_1_].splitStack(p_70298_2_);
if (this.inventoryContents[p_70298_1_].stackSize == 0)
{
this.inventoryContents[p_70298_1_] = null;
}
this.markDirty();
return itemstack;
}
}
else
{
return null;
}
}
@Override
public ItemStack getStackInSlotOnClosing(int p_70304_1_) {
if (this.inventoryContents[p_70304_1_] != null)
{
ItemStack itemstack = this.inventoryContents[p_70304_1_];
this.inventoryContents[p_70304_1_] = null;
return itemstack;
}
else
{
return null;
}
}
@SideOnly(Side.CLIENT)
@Override
public void setInventorySlotContents(int index, ItemStack stack) {
if(this.inventoryContents!=null) {
this.inventoryContents[index] = stack;
if(stack!=null&&stack.getItem()==ItemLoader.filter) {
damage = stack.getItemDamage();//Нужно проверить!
Minecraft.getMinecraft().thePlayer.sendChatMessage("item: "+stack.getItem()+", damage: " + damage);
}
if (stack != null && stack.stackSize > this.getInventoryStackLimit()) {
stack.stackSize = this.getInventoryStackLimit();
}
this.markDirty();
}
}
@Override
public void markDirty()
{
if (this.field_70480_d != null)
{
for (int i = 0; i < this.field_70480_d.size(); ++i)
{
((IInventory)this.field_70480_d.get(i)).markDirty();
}
}
}
@Override
public String getInventoryName()
{
return this.hasCustomInventoryName() ? this.inventoryTitle : "container.testblock";
}
@Override
public boolean hasCustomInventoryName()
{
return this.field_94051_e;
}
@Override
public int getInventoryStackLimit() {
return 1;
}
@Override
public boolean isUseableByPlayer(EntityPlayer p_70300_1_)
{
return true;
}
@Override
public void openInventory() {}
@Override
public void closeInventory() {}
@Override
public boolean isItemValidForSlot(int p_94041_1_, ItemStack p_94041_2_) {
if(p_94041_2_!=null){
return p_94041_2_.getItem() == ItemLoader.filter;
} else return false;
//return true;
}
//TO DO
@Override
public void readFromNBT(NBTTagCompound data) {
super.readFromNBT(data);
System.out.println("READ");
NBTTagList nbttaglist = data.getTagList("Items", 10);
inventoryContents = new ItemStack[2];
if (data.hasKey("CustomName", 8))
{
this.inventoryTitle = data.getString("CustomName");
}
for (int i = 0; i < nbttaglist.tagCount(); i++)
{
NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i);
int j = nbttagcompound1.getByte("Slot") & 255;
if (j >= 0 && j < this.inventoryContents.length)
{
this.inventoryContents[j] = ItemStack.loadItemStackFromNBT(nbttagcompound1);
}
boolean acBl=nbttagcompound1.getBoolean("powerActive");
activeBlock=acBl;
try {
System.out.println("ACTIVE BLOCK READ " + activeBlock);
Minecraft.getMinecraft().thePlayer.sendChatMessage("ACTIVE BLOCK READ " + activeBlock);
}catch (Exception e){
}
}
}
//TO DO
@Override
public void writeToNBT(NBTTagCompound data) {
super.writeToNBT(data);
System.out.println("WRITE");
NBTTagList nbttaglist = new NBTTagList();
for (int i = 0; i < this.inventoryContents.length; i++)
{
if (this.inventoryContents != null)
{
NBTTagCompound nbttagcompound1 = new NBTTagCompound();
nbttagcompound1.setByte("Slot", (byte)i);
nbttagcompound1.setBoolean("powerActive",activeBlock);
System.out.println("ACTIVE BLOCK WRITE "+activeBlock);
Minecraft.getMinecraft().thePlayer.sendChatMessage("ACTIVE BLOCK WRITE "+activeBlock);
this.inventoryContents.writeToNBT(nbttagcompound1);
nbttaglist.appendTag(nbttagcompound1);
}
}
data.setTag("Items", nbttaglist);
if (this.hasCustomInventoryName())
{
data.setString("CustomName", this.inventoryTitle);
}
}
@Override
public ConnectOverride overridePipeConnection(IPipeTile.PipeType pipeType, ForgeDirection forgeDirection) {
if(pipeType!= IPipeTile.PipeType.ITEM) {
return ConnectOverride.CONNECT;
}else {
return ConnectOverride.DISCONNECT;
}
}
public ItemStack[] getInventoryContents() {
return inventoryContents;
}
public FluidTankInfo[] getTankInfo(ForgeDirection direction) {
return this.tankManager.getTankInfo(direction);
}
@Override
public int fill(ForgeDirection from, FluidStack resource, boolean doFill) {
if(resource != null && resource.getFluid() != null) {
if(resource.getFluid()==FluidRegistry.WATER) {
// tank2.fill(new FluidStack(TestMod.testFluid,resource.amount), doFill);
return this.tank1.fill(resource, doFill);
} else if(resource.getFluid()==TestMod.testFluid)
{
return this.tank2.fill(resource, doFill);
}else
return 0;
}else
return 0;
}
@Override
public FluidStack drain(ForgeDirection from, FluidStack resource, boolean doDrain) {
if(resource==null){
return null;
}//else if(activeBlock){
// tank.getFluid().amount-=100;
if(tank2.getFluid()!=null) {
//try {
//Minecraft.getMinecraft().thePlayer.sendChatMessage("amount1: " + tank1.getFluid().amount);
//Minecraft.getMinecraft().thePlayer.sendChatMessage("amount2: " + resource.amount);
//} catch (Exception e) {
// e.printStackTrace();
// }
//this.tank1.drain(resource.amount, doDrain);
// Minecraft.getMinecraft().thePlayer.sendChatMessage("amount: " + resource.amount);
//Слив из аппарата в трубу?
return tank2.drain(resource.amount,doDrain);
/*if(FluidRegistry.WATER == resource.getFluid()){
return this.tank.drain(resource.amount, doDrain);
}else {
return null;
}*/
}else return null;
// }else return null;
// return null;
//return resource == null?null
this.tankCoolant.getFluidType() == resource.getFluid()?this.tankCoolant.drain(resource.amount, doDrain)
this.tankFuel.getFluidType() == resource.getFluid()?this.tankFuel.drain(resource.amount, doDrain):null));
}
@Override
public FluidStack drain(ForgeDirection from, int maxDrain, boolean doDrain) {
// return this.tank.drain(maxDrain, doDrain);
//if(tank1.getFluid()!=null&&activeBlock) {
// if(activeBlock){
// this.tank1.drain(maxDrain, doDrain);
Minecraft.getMinecraft().thePlayer.sendChatMessage("amount: " + maxDrain);
return tank2.drain(maxDrain,doDrain);
//}else return null;
}
public boolean canFill(ForgeDirection from, Fluid fluid) {
return fluid==FluidRegistry.WATER;
}
public boolean canDrain(ForgeDirection from, Fluid fluid) {
return fluid==TestMod.testFluid;
}
@Override
public void updateEntity() {
super.updateEntity();
//try {
//if (inventoryContents[0] != null && inventoryContents[0].equals(new ItemStack(ItemLoader.filter))) {
if(!worldObj.isRemote) {
// long a = new Date().getTime();
//System.out.println("INVENTORY :"+(inventoryContents[0] != null &&inventoryContents[0].getItem().equals(ItemLoader.filter)));
if (checkCondition()) {
if(new Date().getTime()%1000<50){
clearWater();
}
//true раз в секунду
// timer.scheduleAtFixedRate(task,0,1000);
//if ((a - startTime) > 1000) {
//}
//tank2.fill(new FluidStack(TestMod.testFluid,tank1.drain(100, true).amount), true);
//}
// startTime = a;
//}
}
}
//Minecraft.getMinecraft().thePlayer.sendChatMessage("update event");
// }catch (Exception e){
// e.printStackTrace();
// }
}
/*public int getFluidLightLevel() {
FluidStack tankFluid = this.tank.getFluid();
return tankFluid != null && tankFluid.amount != 0?tankFluid.getFluid().getLuminosity(tankFluid):0;
}
public int calculateComparatorInputOverride() {
FluidTankInfo[] info = this.getTankInfo(ForgeDirection.UNKNOWN);
return info.length > 0 && info[0] != null && info[0].fluid != null?info[0].fluid.amount * 15 / info[0].capacity:0;
}
public int getComparatorInputOverride() {
return this.cachedComparatorOverride;
}*/
public void litterFilter(int damage,ItemStack[] inventory){
System.out.println("INVLITTER: "+inventoryContents.length);
ItemStack dirtyFilter=new ItemStack(ItemLoader.dirtyFilter);
if(damage>=5){
// int countDirtyFilter;
if(inventory[1]!=null){
dirtyFilter.stackSize=inventory[1].stackSize+1;
inventory[0]=null;
inventory[1]=dirtyFilter;
}else {
inventory[0]=null;
inventory[1]=dirtyFilter;
// countDirtyFilter=0;
}
/*if(!inventory[0].equals(dirtyFilter)) {
inventory[0] = dirtyFilter;
}*/
}
}
public boolean checkCondition(){
if(inventoryContents[0] != null &&inventoryContents[0].getItem().equals(ItemLoader.filter)){
return tank1.getFluid() != null && activeBlock;
}else return false;
}
public void clearWater() {
t+=20;
if (t == 400) {
damage++;
inventoryContents[0].setItemDamage(damage);
t = 0;
System.out.println("INV: "+inventoryContents.length);
litterFilter(damage, inventoryContents);
Minecraft.getMinecraft().thePlayer.sendChatMessage("damage: " + damage);
}
// System.out.println("TIME: " + (a - startTime));
//if (tank1.getFluid() != null) {
tank1.drain(30, true);
tank2.fill(new FluidStack(TestMod.testFluid, 20), true);
try {
Minecraft.getMinecraft().thePlayer.sendChatMessage("V water: " + tank1.getFluid().amount);
Minecraft.getMinecraft().thePlayer.sendChatMessage("V fresh water: " + tank2.getFluid().amount);
Minecraft.getMinecraft().thePlayer.sendChatMessage("t: " + t);
}catch (Exception e){
e.printStackTrace();
}
}
}
private String inventoryTitle="CustomName";
public int idBlock=new Random().nextInt();
public boolean activeBlock=false;
private int slotsCount=2;
private ItemStack[] inventoryContents;
private List field_70480_d;
private boolean field_94051_e;
public static final int SLOTCOUNT=2;
public final Tank tank1;
public final Tank tank2;
public TankManager<Tank> tankManager;
long startTime=new Date().getTime();
int t=0;
int damage=0;
public BlockTestTile(String inventoryTitle, boolean p_i1561_2_)
{
if(this.inventoryContents==null) {
this.inventoryContents = new ItemStack[SLOTCOUNT];
}
this.inventoryTitle = inventoryTitle;
this.field_94051_e = p_i1561_2_;
this.slotsCount = SLOTCOUNT;
tank1 = new Tank("tank", 16000, this);
tank2=new Tank("tank2",16000,this);
tankManager= new TankManager<>();
this.tankManager.add(this.tank1);
this.tankManager.add(this.tank2);
// activeBlock=worldObj.isBlockIndirectlyGettingPowered(xCoord,yCoord,zCoord);
}
public BlockTestTile(){
if(this.inventoryContents==null) {
this.inventoryContents = new ItemStack[SLOTCOUNT];
}
tank1 = new Tank("tank", 16000, this);
tank2=new Tank("tank2",16000,this);
tankManager= new TankManager<>();
this.tankManager.add(this.tank1);
this.tankManager.add(this.tank2);
// tankManager= new TankManager<>();
// this.tankManager.add(this.tank);
// ContainerFurnace
}
public void func_110134_a(IInvBasic p_110134_1_)
{
if (this.field_70480_d == null)
{
this.field_70480_d = new ArrayList();
}
this.field_70480_d.add(p_110134_1_);
}
public void func_110132_b(IInvBasic p_110132_1_)
{
this.field_70480_d.remove(p_110132_1_);
}
public void func_110133_a(String p_110133_1_)
{
this.field_94051_e = true;
this.inventoryTitle = p_110133_1_;
}
@Override
public int[] getAccessibleSlotsFromSide(int p_94128_1_) {
return new int[0];
}
@Override
public boolean canInsertItem(int p_102007_1_, ItemStack p_102007_2_, int p_102007_3_) {
return this.isItemValidForSlot(p_102007_1_, p_102007_2_);
}
@Override
public boolean canExtractItem(int p_102008_1_, ItemStack p_102008_2_, int p_102008_3_) {
return false;
}
@Override
public int getSizeInventory()
{
return this.slotsCount;
}
@Override
public ItemStack getStackInSlot(int index) {
//Minecraft.getMinecraft().thePlayer.sendChatMessage("SLOT: "+index);
if(this.inventoryContents!=null){
return index >= 0 && index < this.inventoryContents.length ? this.inventoryContents[index] : null;
}else
return null;
}
@Override
public ItemStack decrStackSize(int p_70298_1_, int p_70298_2_) {
if (this.inventoryContents[p_70298_1_] != null)
{
ItemStack itemstack;
if (this.inventoryContents[p_70298_1_].stackSize <= p_70298_2_)
{
itemstack = this.inventoryContents[p_70298_1_];
this.inventoryContents[p_70298_1_] = null;
this.markDirty();
return itemstack;
}
else
{
itemstack = this.inventoryContents[p_70298_1_].splitStack(p_70298_2_);
if (this.inventoryContents[p_70298_1_].stackSize == 0)
{
this.inventoryContents[p_70298_1_] = null;
}
this.markDirty();
return itemstack;
}
}
else
{
return null;
}
}
@Override
public ItemStack getStackInSlotOnClosing(int p_70304_1_) {
if (this.inventoryContents[p_70304_1_] != null)
{
ItemStack itemstack = this.inventoryContents[p_70304_1_];
this.inventoryContents[p_70304_1_] = null;
return itemstack;
}
else
{
return null;
}
}
@SideOnly(Side.CLIENT)
@Override
public void setInventorySlotContents(int index, ItemStack stack) {
if(this.inventoryContents!=null) {
this.inventoryContents[index] = stack;
if(stack!=null&&stack.getItem()==ItemLoader.filter) {
damage = stack.getItemDamage();//Нужно проверить!
Minecraft.getMinecraft().thePlayer.sendChatMessage("item: "+stack.getItem()+", damage: " + damage);
}
if (stack != null && stack.stackSize > this.getInventoryStackLimit()) {
stack.stackSize = this.getInventoryStackLimit();
}
this.markDirty();
}
}
@Override
public void markDirty()
{
if (this.field_70480_d != null)
{
for (int i = 0; i < this.field_70480_d.size(); ++i)
{
((IInventory)this.field_70480_d.get(i)).markDirty();
}
}
}
@Override
public String getInventoryName()
{
return this.hasCustomInventoryName() ? this.inventoryTitle : "container.testblock";
}
@Override
public boolean hasCustomInventoryName()
{
return this.field_94051_e;
}
@Override
public int getInventoryStackLimit() {
return 1;
}
@Override
public boolean isUseableByPlayer(EntityPlayer p_70300_1_)
{
return true;
}
@Override
public void openInventory() {}
@Override
public void closeInventory() {}
@Override
public boolean isItemValidForSlot(int p_94041_1_, ItemStack p_94041_2_) {
if(p_94041_2_!=null){
return p_94041_2_.getItem() == ItemLoader.filter;
} else return false;
//return true;
}
//TO DO
@Override
public void readFromNBT(NBTTagCompound data) {
super.readFromNBT(data);
System.out.println("READ");
NBTTagList nbttaglist = data.getTagList("Items", 10);
inventoryContents = new ItemStack[2];
if (data.hasKey("CustomName", 8))
{
this.inventoryTitle = data.getString("CustomName");
}
for (int i = 0; i < nbttaglist.tagCount(); i++)
{
NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i);
int j = nbttagcompound1.getByte("Slot") & 255;
if (j >= 0 && j < this.inventoryContents.length)
{
this.inventoryContents[j] = ItemStack.loadItemStackFromNBT(nbttagcompound1);
}
boolean acBl=nbttagcompound1.getBoolean("powerActive");
activeBlock=acBl;
try {
System.out.println("ACTIVE BLOCK READ " + activeBlock);
Minecraft.getMinecraft().thePlayer.sendChatMessage("ACTIVE BLOCK READ " + activeBlock);
}catch (Exception e){
}
}
}
//TO DO
@Override
public void writeToNBT(NBTTagCompound data) {
super.writeToNBT(data);
System.out.println("WRITE");
NBTTagList nbttaglist = new NBTTagList();
for (int i = 0; i < this.inventoryContents.length; i++)
{
if (this.inventoryContents != null)
{
NBTTagCompound nbttagcompound1 = new NBTTagCompound();
nbttagcompound1.setByte("Slot", (byte)i);
nbttagcompound1.setBoolean("powerActive",activeBlock);
System.out.println("ACTIVE BLOCK WRITE "+activeBlock);
Minecraft.getMinecraft().thePlayer.sendChatMessage("ACTIVE BLOCK WRITE "+activeBlock);
this.inventoryContents.writeToNBT(nbttagcompound1);
nbttaglist.appendTag(nbttagcompound1);
}
}
data.setTag("Items", nbttaglist);
if (this.hasCustomInventoryName())
{
data.setString("CustomName", this.inventoryTitle);
}
}
@Override
public ConnectOverride overridePipeConnection(IPipeTile.PipeType pipeType, ForgeDirection forgeDirection) {
if(pipeType!= IPipeTile.PipeType.ITEM) {
return ConnectOverride.CONNECT;
}else {
return ConnectOverride.DISCONNECT;
}
}
public ItemStack[] getInventoryContents() {
return inventoryContents;
}
public FluidTankInfo[] getTankInfo(ForgeDirection direction) {
return this.tankManager.getTankInfo(direction);
}
@Override
public int fill(ForgeDirection from, FluidStack resource, boolean doFill) {
if(resource != null && resource.getFluid() != null) {
if(resource.getFluid()==FluidRegistry.WATER) {
// tank2.fill(new FluidStack(TestMod.testFluid,resource.amount), doFill);
return this.tank1.fill(resource, doFill);
} else if(resource.getFluid()==TestMod.testFluid)
{
return this.tank2.fill(resource, doFill);
}else
return 0;
}else
return 0;
}
@Override
public FluidStack drain(ForgeDirection from, FluidStack resource, boolean doDrain) {
if(resource==null){
return null;
}//else if(activeBlock){
// tank.getFluid().amount-=100;
if(tank2.getFluid()!=null) {
//try {
//Minecraft.getMinecraft().thePlayer.sendChatMessage("amount1: " + tank1.getFluid().amount);
//Minecraft.getMinecraft().thePlayer.sendChatMessage("amount2: " + resource.amount);
//} catch (Exception e) {
// e.printStackTrace();
// }
//this.tank1.drain(resource.amount, doDrain);
// Minecraft.getMinecraft().thePlayer.sendChatMessage("amount: " + resource.amount);
//Слив из аппарата в трубу?
return tank2.drain(resource.amount,doDrain);
/*if(FluidRegistry.WATER == resource.getFluid()){
return this.tank.drain(resource.amount, doDrain);
}else {
return null;
}*/
}else return null;
// }else return null;
// return null;
//return resource == null?null
}
@Override
public FluidStack drain(ForgeDirection from, int maxDrain, boolean doDrain) {
// return this.tank.drain(maxDrain, doDrain);
//if(tank1.getFluid()!=null&&activeBlock) {
// if(activeBlock){
// this.tank1.drain(maxDrain, doDrain);
Minecraft.getMinecraft().thePlayer.sendChatMessage("amount: " + maxDrain);
return tank2.drain(maxDrain,doDrain);
//}else return null;
}
public boolean canFill(ForgeDirection from, Fluid fluid) {
return fluid==FluidRegistry.WATER;
}
public boolean canDrain(ForgeDirection from, Fluid fluid) {
return fluid==TestMod.testFluid;
}
@Override
public void updateEntity() {
super.updateEntity();
//try {
//if (inventoryContents[0] != null && inventoryContents[0].equals(new ItemStack(ItemLoader.filter))) {
if(!worldObj.isRemote) {
// long a = new Date().getTime();
//System.out.println("INVENTORY :"+(inventoryContents[0] != null &&inventoryContents[0].getItem().equals(ItemLoader.filter)));
if (checkCondition()) {
if(new Date().getTime()%1000<50){
clearWater();
}
//true раз в секунду
// timer.scheduleAtFixedRate(task,0,1000);
//if ((a - startTime) > 1000) {
//}
//tank2.fill(new FluidStack(TestMod.testFluid,tank1.drain(100, true).amount), true);
//}
// startTime = a;
//}
}
}
//Minecraft.getMinecraft().thePlayer.sendChatMessage("update event");
// }catch (Exception e){
// e.printStackTrace();
// }
}
/*public int getFluidLightLevel() {
FluidStack tankFluid = this.tank.getFluid();
return tankFluid != null && tankFluid.amount != 0?tankFluid.getFluid().getLuminosity(tankFluid):0;
}
public int calculateComparatorInputOverride() {
FluidTankInfo[] info = this.getTankInfo(ForgeDirection.UNKNOWN);
return info.length > 0 && info[0] != null && info[0].fluid != null?info[0].fluid.amount * 15 / info[0].capacity:0;
}
public int getComparatorInputOverride() {
return this.cachedComparatorOverride;
}*/
public void litterFilter(int damage,ItemStack[] inventory){
System.out.println("INVLITTER: "+inventoryContents.length);
ItemStack dirtyFilter=new ItemStack(ItemLoader.dirtyFilter);
if(damage>=5){
// int countDirtyFilter;
if(inventory[1]!=null){
dirtyFilter.stackSize=inventory[1].stackSize+1;
inventory[0]=null;
inventory[1]=dirtyFilter;
}else {
inventory[0]=null;
inventory[1]=dirtyFilter;
// countDirtyFilter=0;
}
/*if(!inventory[0].equals(dirtyFilter)) {
inventory[0] = dirtyFilter;
}*/
}
}
public boolean checkCondition(){
if(inventoryContents[0] != null &&inventoryContents[0].getItem().equals(ItemLoader.filter)){
return tank1.getFluid() != null && activeBlock;
}else return false;
}
public void clearWater() {
t+=20;
if (t == 400) {
damage++;
inventoryContents[0].setItemDamage(damage);
t = 0;
System.out.println("INV: "+inventoryContents.length);
litterFilter(damage, inventoryContents);
Minecraft.getMinecraft().thePlayer.sendChatMessage("damage: " + damage);
}
// System.out.println("TIME: " + (a - startTime));
//if (tank1.getFluid() != null) {
tank1.drain(30, true);
tank2.fill(new FluidStack(TestMod.testFluid, 20), true);
try {
Minecraft.getMinecraft().thePlayer.sendChatMessage("V water: " + tank1.getFluid().amount);
Minecraft.getMinecraft().thePlayer.sendChatMessage("V fresh water: " + tank2.getFluid().amount);
Minecraft.getMinecraft().thePlayer.sendChatMessage("t: " + t);
}catch (Exception e){
e.printStackTrace();
}
}
}