public class Obj implements java.io.Serializable {
	static final long serialVersionUID = 1L;
	
	public enum Type
	{
		YUKKURI,
		SHIT,
		FOOD,
		TOILET,
		BALL
	}
	
	// Object event
	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
	protected boolean removed = false;
	protected boolean grabbed = false;
	
	public int getX() { return x; }
	/// Returns the y
	public int getY() { return y; }
	/// Returns the z-coordinate of this Obj.
	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;
	}
}