minecraft_server-b1.7.3/src/net/minecraft/container/ContainerFurnace.java

101 lines
3 KiB
Java

package net.minecraft.container;
import net.minecraft.block.tile.TileEntityFurnace;
import net.minecraft.container.inventory.InventoryPlayer;
import net.minecraft.container.slot.Slot;
import net.minecraft.container.slot.SlotFurnace;
import net.minecraft.entity.EntityPlayer;
import net.minecraft.item.crafting.ICrafting;
import net.minecraft.item.crafting.ItemStack;
public class ContainerFurnace extends Container {
private TileEntityFurnace furnace;
private int lastCookTime = 0;
private int lastBurnTime = 0;
private int lastItemBurnTime = 0;
public ContainerFurnace(InventoryPlayer var1, TileEntityFurnace var2) {
this.furnace = var2;
this.addSlot(new Slot(var2, 0, 56, 17));
this.addSlot(new Slot(var2, 1, 56, 53));
this.addSlot(new SlotFurnace(var1.player, var2, 2, 116, 35));
int var3;
for(var3 = 0; var3 < 3; ++var3) {
for(int var4 = 0; var4 < 9; ++var4) {
this.addSlot(new Slot(var1, var4 + var3 * 9 + 9, 8 + var4 * 18, 84 + var3 * 18));
}
}
for(var3 = 0; var3 < 9; ++var3) {
this.addSlot(new Slot(var1, var3, 8 + var3 * 18, 142));
}
}
public void onCraftGuiOpened(ICrafting var1) {
super.onCraftGuiOpened(var1);
var1.updateCraftingInventoryInfo(this, 0, this.furnace.furnaceCookTime);
var1.updateCraftingInventoryInfo(this, 1, this.furnace.furnaceBurnTime);
var1.updateCraftingInventoryInfo(this, 2, this.furnace.currentItemBurnTime);
}
public void updateCraftingMatrix() {
super.updateCraftingMatrix();
for(int var1 = 0; var1 < this.crafters.size(); ++var1) {
ICrafting var2 = (ICrafting)this.crafters.get(var1);
if(this.lastCookTime != this.furnace.furnaceCookTime) {
var2.updateCraftingInventoryInfo(this, 0, this.furnace.furnaceCookTime);
}
if(this.lastBurnTime != this.furnace.furnaceBurnTime) {
var2.updateCraftingInventoryInfo(this, 1, this.furnace.furnaceBurnTime);
}
if(this.lastItemBurnTime != this.furnace.currentItemBurnTime) {
var2.updateCraftingInventoryInfo(this, 2, this.furnace.currentItemBurnTime);
}
}
this.lastCookTime = this.furnace.furnaceCookTime;
this.lastBurnTime = this.furnace.furnaceBurnTime;
this.lastItemBurnTime = this.furnace.currentItemBurnTime;
}
public boolean canInteractWith(EntityPlayer var1) {
return this.furnace.canInteractWith(var1);
}
public ItemStack func_27086_a(int var1) {
ItemStack var2 = null;
Slot var3 = (Slot)this.inventorySlots.get(var1);
if(var3 != null && var3.func_27006_b()) {
ItemStack var4 = var3.getStack();
var2 = var4.copy();
if(var1 == 2) {
this.func_28126_a(var4, 3, 39, true);
} else if(var1 >= 3 && var1 < 30) {
this.func_28126_a(var4, 30, 39, false);
} else if(var1 >= 30 && var1 < 39) {
this.func_28126_a(var4, 3, 30, false);
} else {
this.func_28126_a(var4, 3, 39, false);
}
if(var4.stackSize == 0) {
var3.putStack((ItemStack)null);
} else {
var3.onSlotChanged();
}
if(var4.stackSize == var2.stackSize) {
return null;
}
var3.onPickupFromSlot(var4);
}
return var2;
}
}