MapDataObject object = data.getMapObject(x, y); if (object instanceof MapTreeObject) { writeObject(stream, x, y, TYPE_TREE, ""); } else if (object instanceof StoneMapDataObject) { int capacity = ((StoneMapDataObject) object).getCapacity(); writeObject(stream, x, y, TYPE_STONE, Integer.toString(capacity)); } else if (object instanceof BuildingMapDataObject) { int player = ((BuildingMapDataObject) object).getPlayerId(); writeObject(stream, x, y, TYPE_BUILDING, ((BuildingMapDataObject) object).getType() + "," + player); } else if (object instanceof MovableObject) { int player = ((MovableObject) object).getPlayerId(); writeObject(stream, x, y, TYPE_MOVABLE, ((MovableObject) object).getType() + "," + player); } else if (object instanceof StackMapDataObject) { int capacity = ((StackMapDataObject) object).getCount(); writeObject(stream, x, y, TYPE_STACK, ((StackMapDataObject) object).getType() + "," + capacity);