public class Obj implements java.io.Serializable {
	static final long serialVersionUID = 1L;

	public enum Type {YUKKURI, SHIT, FOOD, TOILET}
	public enum Event {DONOTHING, BIRTHBABY, DOSHIT, DEAD, REMOVED}

	public static final int TICK = 1;

	// basic attributes
	protected long age;			//age of this object
	protected int x, y, z;		//location
	protected int vx, vy, vz;	//velocity of the object
	protected Type objType;		//YUKKURI, SHIT, FOOD, TOILET
	protected boolean removed = false;
	protected boolean grabbed = false;

	public long getAge() {
		return age;
	}

	public int getX() {
		return x;
	}

	public int getY() {
		return y;
	}

	public int getZ() {
		return z;
	}

	public void setX (int X)
	{
		if (X < 0) {
			x = 0;
		}
		else if (X > Terrarium.MAX_X) {
			x = Terrarium.MAX_X;
		}
		else {
			x = X;
		}
	}

	public void setY (int Y) {
		if (Y < 0) {
			y = 0;
		}
		else if(Y > Terrarium.MAX_Y) {
			y = Terrarium.MAX_Y;
		}
		else {
			y = Y;
		}
	}

	public void setZ(int Z)
	{
		if (Z < 0) {
			z = 0;
		}
		else if (Z > Terrarium.MAX_Z) {
			z = Terrarium.MAX_Z;
		}
		else {
			z = Z;
		}
	}

	public void grab() { grabbed = true; }

	public void release() { grabbed = false; }

	public boolean isGrabbed() { return grabbed; }

	public Type getObjType() { return objType; }

	public void remove() { removed = true; }

	public Event clockTick()
	{
		age += TICK;
		if (removed == true) {
			return Event.REMOVED;
		}
		return Event.DONOTHING;
	}
}