// 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/ScriptVec3.java
// public class ScriptVec3 {
// 
// 	public double x;
// 	public double y;
// 	public double z;
// 
// 	public ScriptVec3(double x, double y, double z) {
// 		this.x = x;
// 		this.y = y;
// 		this.z = z;
// 	}
// 
// 	public ScriptVec3() {
// 		this(0, 0, 0);
// 	}
// 
// 	public void add(ScriptVec3 vec) {
// 		this.x += vec.x;
// 		this.y += vec.y;
// 		this.z += vec.z;
// 	}
// 
// 	public void add(double x, double y, double z) {
// 		this.x += x;
// 		this.y += y;
// 		this.z += z;
// 	}
// 
// 	public void multiply(ScriptVec3 vec) {
// 		this.x *= vec.x;
// 		this.y *= vec.y;
// 		this.z *= vec.z;
// 	}
// 
// 	public void multiply(double x, double y, double z) {
// 		this.x *= x;
// 		this.y *= y;
// 		this.z *= z;
// 	}
// 
// 	public void scale(double s) {
// 		this.x *= s;
// 		this.y *= s;
// 		this.z *= s;
// 	}
// 
// 	public double length() {
// 		return Math.sqrt(x*x + y*y + z*z);
// 	}
// 	
// 	public void normalize() {
// 		double l = length();
// 		if (l > 0) {
// 			this.x /= l;
// 			this.y /= l;
// 			this.z /= l;
// 		}
// 	}
// 
// 	public double distanceTo(ScriptVec3 vec) {
// 		double dx = this.x - vec.x;
// 		double dy = this.y - vec.y;
// 		double dz = this.z - vec.z;
// 		return Math.sqrt(dx*dx + dy*dy + dz*dz);
// 	}
// }


import java.util.Random;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.item.ItemStack;
import scripting.wrapper.ScriptItemStack;
import scripting.wrapper.ScriptVec3;
package scripting.wrapper.entity;



public class ScriptEntityLivingBase extends ScriptEntity {
	
	public final EntityLivingBase entityLivingBase;
	
	public ScriptEntityLivingBase(EntityLivingBase entityLivingBase) {
		super(entityLivingBase);
		
		this.entityLivingBase = entityLivingBase;
	}
	
	public void setHealth(float health) {
		entityLivingBase.setHealth(health);
	}
	
	public float getHealth() {
		return entityLivingBase.getHealth();
	}
	
	public boolean isChild() {
		return entityLivingBase.isChild();
	}
	
	public Random getRNG() {
		return entityLivingBase.getRNG();
	}
	
	public void clearActivePotions() {
		entityLivingBase.clearActivePotions();
	}
	
// 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/ScriptVec3.java
// public class ScriptVec3 {
// 
// 	public double x;
// 	public double y;
// 	public double z;
// 
// 	public ScriptVec3(double x, double y, double z) {
// 		this.x = x;
// 		this.y = y;
// 		this.z = z;
// 	}
// 
// 	public ScriptVec3() {
// 		this(0, 0, 0);
// 	}
// 
// 	public void add(ScriptVec3 vec) {
// 		this.x += vec.x;
// 		this.y += vec.y;
// 		this.z += vec.z;
// 	}
// 
// 	public void add(double x, double y, double z) {
// 		this.x += x;
// 		this.y += y;
// 		this.z += z;
// 	}
// 
// 	public void multiply(ScriptVec3 vec) {
// 		this.x *= vec.x;
// 		this.y *= vec.y;
// 		this.z *= vec.z;
// 	}
// 
// 	public void multiply(double x, double y, double z) {
// 		this.x *= x;
// 		this.y *= y;
// 		this.z *= z;
// 	}
// 
// 	public void scale(double s) {
// 		this.x *= s;
// 		this.y *= s;
// 		this.z *= s;
// 	}
// 
// 	public double length() {
// 		return Math.sqrt(x*x + y*y + z*z);
// 	}
// 	
// 	public void normalize() {
// 		double l = length();
// 		if (l > 0) {
// 			this.x /= l;
// 			this.y /= l;
// 			this.z /= l;
// 		}
// 	}
// 
// 	public double distanceTo(ScriptVec3 vec) {
// 		double dx = this.x - vec.x;
// 		double dy = this.y - vec.y;
// 		double dz = this.z - vec.z;
// 		return Math.sqrt(dx*dx + dy*dy + dz*dz);
// 	}
// }


// Path: scripting/wrapper/entity/ScriptEntityLivingBase.java
import java.util.Random;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.item.ItemStack;
import scripting.wrapper.ScriptItemStack;
import scripting.wrapper.ScriptVec3;

package scripting.wrapper.entity;



public class ScriptEntityLivingBase extends ScriptEntity {
	
	public final EntityLivingBase entityLivingBase;
	
	public ScriptEntityLivingBase(EntityLivingBase entityLivingBase) {
		super(entityLivingBase);
		
		this.entityLivingBase = entityLivingBase;
	}
	
	public void setHealth(float health) {
		entityLivingBase.setHealth(health);
	}
	
	public float getHealth() {
		return entityLivingBase.getHealth();
	}
	
	public boolean isChild() {
		return entityLivingBase.isChild();
	}
	
	public Random getRNG() {
		return entityLivingBase.getRNG();
	}
	
	public void clearActivePotions() {
		entityLivingBase.clearActivePotions();
	}
	
	public ScriptItemStack getHeldItem() {