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 Type objType;		//YUKKURI, SHIT, FOOD, TOILET
	protected boolean removed = false;
	protected boolean grabbed = false;

	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 > Box.maxX) {
			x = Box.maxX;
		}
		else {
			x = X;
		}
	}

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

	public void setZ(int Z)
	{
		if (Z < 0) {
			z = 0;
		}
		else if (Z > Box.maxZ) {
			z = Box.maxZ;
		}
		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;
	}
}