void WriteTileObject(ContentWriter output, TiledTileObject obj) { output.Write((byte)TiledObjectType.Tile); output.Write(obj.GID); output.Write(obj.FlipHor); output.Write(obj.FlipVer); }
TiledObject ReadTileObject(ContentReader input, TiledObject baseObj, TiledMap map) { var obj = new TiledTileObject(baseObj); obj.GID = input.ReadInt32(); obj.FlipHor = input.ReadBoolean(); obj.FlipVer = input.ReadBoolean(); obj.Tileset = map.GetTileset(obj.GID); return(obj); }
public static void ReadTileObject(TiledObjectGroup layer, XElement root) { var obj = new TiledTileObject(); // Read generic object information. ReadGenericObjectInformation(obj, root); // Read tile specific stuff. obj.Tile = root.ReadAttribute("gid", 0); layer.Objects.Add(obj); }
static TiledTileObject ParseTileObject(XmlNode node, TiledObject baseObj) { var obj = new TiledTileObject(baseObj); uint firstGID = 0; if (node["tileset"] != null && node["tileset"].Attributes["source"] != null) { // GetFullPath gets rid of stuff like // and /../ var src = Path.GetFullPath(TiledMapImporter.CurrentRootDir + '/' + node["tileset"].Attributes["source"].Value); TilesetParser.ExternalTilesetsFirstGID.TryGetValue(src, out firstGID); } // For some reason, gid field is counted from 1, but other tile ids are counted from 0. var gid = uint.Parse(node.Attributes["gid"].Value) + firstGID - 1; obj.FlipHor = ((gid & (uint)FlipFlags.FlipHor) != 0); obj.FlipVer = ((gid & (uint)FlipFlags.FlipVer) != 0); obj.GID = (int)(gid & (~(uint)FlipFlags.All)); return(obj); }