public void Tick()
	{
		//MOVEMENT
		boolean[][]RoomUnitMap = new boolean[this.GrabModel().MapSizeX][this.GrabModel().MapSizeY]; 

		for(Session mSession : this.GrabParty().values())
		{
			if(mSession.GrabActor().NeedsPathChange) //Give them .5 of a second to get ready for their new path
			{
				Collection<byte[]> Path = this.Pathfinder.Path(
						(byte)mSession.GrabActor().CurrentPosition.X, 
						(byte)mSession.GrabActor().CurrentPosition.Y, 
						(byte)mSession.GrabActor().GoalPosition.X, 
						(byte)mSession.GrabActor().GoalPosition.Y, 
						Grizzly.GrabHabboHotel().GrabRoomHandler().MaxDrop, 
						Grizzly.GrabHabboHotel().GrabRoomHandler().MaxJump);
				
				mSession.GrabActor().CurrentPath = Path;
				
				mSession.GrabActor().Move(true);
				//mSession.GrabActor().NewPathReady = true;
			}
			else if(mSession.GrabActor().GoalPosition != null && !mSession.GrabActor().IsMoving && !mSession.GrabActor().NeedsPathChange) //Start moving them
			{
				Collection<byte[]> Path = this.Pathfinder.Path(
						(byte)mSession.GrabActor().CurrentPosition.X, 
						(byte)mSession.GrabActor().CurrentPosition.Y, 
						(byte)mSession.GrabActor().GoalPosition.X, 
						(byte)mSession.GrabActor().GoalPosition.Y, 
						Grizzly.GrabHabboHotel().GrabRoomHandler().MaxDrop, 
						Grizzly.GrabHabboHotel().GrabRoomHandler().MaxJump);
				
				mSession.GrabActor().CurrentPath = Path;
				
				mSession.GrabActor().Move(false);
			}	
			
			RoomUnitMap[mSession.GrabActor().CurrentPosition.X][mSession.GrabActor().CurrentPosition.Y] = true;
			
			this.Pathfinder.ApplyCollisionMap(GenerateCollisionMap(RoomUnitMap), GenerateFurniHeightMap());
			
			//SIGNS
			if (mSession.GrabActor().SignTimer > 0)
			{
				if (mSession.GrabActor().SignTimer == 1)
				{
					mSession.GrabActor().UpdateStatus("");
				}
				
				mSession.GrabActor().SignTimer--;
			}
		}
	}