// Path: scripting/wrapper/ScriptItemStack.java
// public class ScriptItemStack {
// 	
// 	public final ItemStack stack;
// 
// 	private ScriptItemStack(ItemStack is) {
// 		this.stack = is;
// 	}
// 	
// 	public ScriptItemStack(ScriptItem item, int size, int damage) {
// 		this.stack = new ItemStack((item == null) ? null : item.item, size, damage);
// 	}
// 	
// 	public ScriptItemStack(ScriptBlock block, int size, int damage) {
// 		this.stack = new ItemStack((block == null) ? null : block.block, size, damage);
// 	}
// 	
// 	public ScriptItem getItem() {
// 		return (stack.getItem() == null) ? null : ScriptItem.fromItem(stack.getItem());
// 	}
// 	
// 	public int getStackSize() {
// 		return stack.stackSize;
// 	}
// 	
// 	public void setStackSize(int size) {
// 		stack.stackSize = size;
// 	}
// 	
// 	public int getItemDamage() {
// 		return stack.getItemDamage();
// 	}
// 	
// 	public void setItemDamage(int damage) {
// 		stack.setItemDamage(damage);
// 	}
// 	
// 	public boolean hasTagCompound() {
// 		return stack.hasTagCompound();
// 	}
// 	
// 	public TAG_Compound getTagCompound() {
// 		return (hasTagCompound()) ? new TAG_Compound(stack.getTagCompound()) : null;
// 	}
// 	
// 	public void setTagCompound(TAG_Compound tag) {
// 		stack.setTagCompound((tag == null) ? null : tag.tag);
// 	}
// 	
// 	public TAG_Compound writeToTag() {
// 		return new TAG_Compound(stack.writeToNBT(new NBTTagCompound()));
// 	}
// 	
// 	public void readFromTag(TAG_Compound tag) {
// 		stack.readFromNBT(tag.tag);
// 	}
// 	
// 	public static ScriptItemStack fromItemStack(ItemStack stack) {
// 		return (stack == null) ? null : new ScriptItemStack(stack);
// 	}
// 	
// }


import net.minecraft.entity.DataWatcher;
import scripting.wrapper.ScriptItemStack;
package scripting.wrapper.entity;


public class ScriptDataWatcher {

	public final DataWatcher watcher;

	public ScriptDataWatcher(DataWatcher watcher) {
		this.watcher = watcher;
	}

	public void addObject(int id, Object obj) {
		watcher.addObject(id, obj);
	}

	public void addObjectByDataType(int id, int type) {
		watcher.addObjectByDataType(id, type);
	}

	public byte getWatchableObjectByte(int id) {
		return watcher.getWatchableObjectByte(id);
	}

	public short getWatchableObjectShort(int id) {
		return watcher.getWatchableObjectShort(id);
	}

	public int getWatchableObjectInt(int id) {
		return watcher.getWatchableObjectInt(id);
	}

	public float getWatchableObjectFloat(int id) {
		return watcher.getWatchableObjectFloat(id);
	}

	public String getWatchableObjectString(int id) {
		return watcher.getWatchableObjectString(id);
	}

	public ScriptItemStack getWatchableObjectItemStack(int id) {
// Path: scripting/wrapper/ScriptItemStack.java
// public class ScriptItemStack {
// 	
// 	public final ItemStack stack;
// 
// 	private ScriptItemStack(ItemStack is) {
// 		this.stack = is;
// 	}
// 	
// 	public ScriptItemStack(ScriptItem item, int size, int damage) {
// 		this.stack = new ItemStack((item == null) ? null : item.item, size, damage);
// 	}
// 	
// 	public ScriptItemStack(ScriptBlock block, int size, int damage) {
// 		this.stack = new ItemStack((block == null) ? null : block.block, size, damage);
// 	}
// 	
// 	public ScriptItem getItem() {
// 		return (stack.getItem() == null) ? null : ScriptItem.fromItem(stack.getItem());
// 	}
// 	
// 	public int getStackSize() {
// 		return stack.stackSize;
// 	}
// 	
// 	public void setStackSize(int size) {
// 		stack.stackSize = size;
// 	}
// 	
// 	public int getItemDamage() {
// 		return stack.getItemDamage();
// 	}
// 	
// 	public void setItemDamage(int damage) {
// 		stack.setItemDamage(damage);
// 	}
// 	
// 	public boolean hasTagCompound() {
// 		return stack.hasTagCompound();
// 	}
// 	
// 	public TAG_Compound getTagCompound() {
// 		return (hasTagCompound()) ? new TAG_Compound(stack.getTagCompound()) : null;
// 	}
// 	
// 	public void setTagCompound(TAG_Compound tag) {
// 		stack.setTagCompound((tag == null) ? null : tag.tag);
// 	}
// 	
// 	public TAG_Compound writeToTag() {
// 		return new TAG_Compound(stack.writeToNBT(new NBTTagCompound()));
// 	}
// 	
// 	public void readFromTag(TAG_Compound tag) {
// 		stack.readFromNBT(tag.tag);
// 	}
// 	
// 	public static ScriptItemStack fromItemStack(ItemStack stack) {
// 		return (stack == null) ? null : new ScriptItemStack(stack);
// 	}
// 	
// }


// Path: scripting/wrapper/entity/ScriptDataWatcher.java
import net.minecraft.entity.DataWatcher;
import scripting.wrapper.ScriptItemStack;

package scripting.wrapper.entity;


public class ScriptDataWatcher {

	public final DataWatcher watcher;

	public ScriptDataWatcher(DataWatcher watcher) {
		this.watcher = watcher;
	}

	public void addObject(int id, Object obj) {
		watcher.addObject(id, obj);
	}

	public void addObjectByDataType(int id, int type) {
		watcher.addObjectByDataType(id, type);
	}

	public byte getWatchableObjectByte(int id) {
		return watcher.getWatchableObjectByte(id);
	}

	public short getWatchableObjectShort(int id) {
		return watcher.getWatchableObjectShort(id);
	}

	public int getWatchableObjectInt(int id) {
		return watcher.getWatchableObjectInt(id);
	}

	public float getWatchableObjectFloat(int id) {
		return watcher.getWatchableObjectFloat(id);
	}

	public String getWatchableObjectString(int id) {
		return watcher.getWatchableObjectString(id);
	}

	public ScriptItemStack getWatchableObjectItemStack(int id) {
		return ScriptItemStack.fromItemStack(watcher.getWatchableObjectItemStack(id));