ControlC ControlC.com

VWE WF TILE ENTITY

Views: 133Total Chars: 4,246
Created: 10/24/14 6:13:06AM ET
Self Destructs: Never
package com.masseyDev.VWE.TileEntities;


import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.tileentity.TileEntity;

/**
* Created by Massey Dev on 19/10/2014.
*/
public class TileEntityWeaponsForge extends TileEntity implements IInventory {
public static final String publicName = "tileEntityWeaponsForge";
private String NAME = "tileEntityWeaponsForge";

public String getName(){
return NAME;
}
private ItemStack WeaponsForgeSlots[];

public TileEntityWeaponsForge(){
WeaponsForgeSlots = new ItemStack[17];
}

@Override
public int getSizeInventory() {
return WeaponsForgeSlots.length;
}

@Override
public ItemStack getStackInSlot(int i) {
return WeaponsForgeSlots[i];
}

@Override
public ItemStack decrStackSize(int i, int i2) {
if (WeaponsForgeSlots[i] != null)
{
if (WeaponsForgeSlots[i].stackSize <= i2)
{
ItemStack itemstack = WeaponsForgeSlots[i];
WeaponsForgeSlots[i] = null;
return itemstack;
}

ItemStack itemstack1 = WeaponsForgeSlots[i].splitStack(i2);

if (WeaponsForgeSlots[i].stackSize == 0)
{
WeaponsForgeSlots[i] = null;
}

return itemstack1;
}
else
{
return null;
}
}

@Override
public ItemStack getStackInSlotOnClosing(int i) {
if (WeaponsForgeSlots[i] != null)
{
ItemStack itemstack = WeaponsForgeSlots[i];
WeaponsForgeSlots[i] = null;
return itemstack;
}
else
{
return null;
}
}

@Override
public void setInventorySlotContents(int i, ItemStack itemStack) {
if (itemStack != null && itemStack.stackSize > getInventoryStackLimit()) {
itemStack.stackSize = getInventoryStackLimit();
}
WeaponsForgeSlots[i] = itemStack;
}

@Override
public String getInventoryName() {
return "container.weaponsForge";
}

@Override
public void readFromNBT(NBTTagCompound tagCompound) {
super.readFromNBT(tagCompound);

NBTTagList tagList = tagCompound.getTagList("WeaponsForge" ,WeaponsForgeSlots.length);
for (int i = 0; i < tagList.tagCount(); i++) {
NBTTagCompound tag = (NBTTagCompound) tagList.getCompoundTagAt(i);
byte slot = tag.getByte("Slot");
if (slot >= 0 && slot < WeaponsForgeSlots.length) {
WeaponsForgeSlots[slot] = ItemStack.loadItemStackFromNBT(tag);
}
}
}

@Override
public void writeToNBT(NBTTagCompound tagCompound) {
super.writeToNBT(tagCompound);

NBTTagList itemList = new NBTTagList();
for (int i = 0; i < WeaponsForgeSlots.length; i++) {
ItemStack stack = WeaponsForgeSlots[i];
if (stack != null) {
NBTTagCompound tag = new NBTTagCompound();
tag.setByte("Slot", (byte) i);
stack.writeToNBT(tag);
itemList.appendTag(tag);
}
}
tagCompound.setTag("Inventory", itemList);
}



@Override
public boolean hasCustomInventoryName() {
return false;
}

@Override
public int getInventoryStackLimit() {
return 64;
}

@Override
public boolean isUseableByPlayer(EntityPlayer entityPlayer) {
if (worldObj.getTileEntity(xCoord, yCoord, zCoord) != this)
{
return false;
}

return entityPlayer.getDistanceSq((double)xCoord + 0.5D, (double)yCoord + 0.5D, (double)zCoord + 0.5D) <= 64D;
}

@Override
public void openInventory() {

}

@Override
public void closeInventory() {

}

@Override
public boolean isItemValidForSlot(int i, ItemStack itemStack) {
return true;
}

@Override
public void updateEntity(){
//TODO crafting checker and slot updater.
}
}
4,246 chars, 358 words, 162 lines·Create new version