private void InitEntity(DungeonTile tile, TiledMapProperties properties) { if (!properties.ContainsKey("entity")) { Log.Error("Invalid entity at " + tile + ": 'entity' not found."); return; } if (!Enum.TryParse(properties.GetString("direction", "Down"), out Direction direction)) { Log.Error("Unknown entity direction '" + properties.GetString("direction") + "' at " + tile); } var entityName = properties.GetString("entity"); if (entityName == "player") { PlayerStartTile = tile; PlayerStartDirection = direction; } else { var entity = EntityData.Get(entityName); if (entity == null) { Log.Error("Unknown entity '" + entityName + "' at " + tile); } else { entities.Add(new EntityArguments(entity, tile.X, tile.Y, direction)); } } }
private void InitTile(DungeonTile tile, TiledMapProperties properties) { if (Enum.TryParse(properties.GetString("solidType", "None"), out TileSolidType solidType)) { tile.SolidType = solidType; } else { Log.Error("Unknown tile solid type '" + properties.GetString("solidType") + "' at " + tile); } if (properties.ContainsKey("tile")) { if (Enum.TryParse(properties.GetString("tile"), out DungeonTileType type)) { tile.Type = type; } else { Log.Error("Unknown tile type '" + properties.GetString("type") + "' at " + tile); } } tile.Trigger = properties.GetString("trigger"); tile.Anim = properties.GetString("anim"); if (properties.ContainsKey("displayTid")) { tile.DisplayTid = properties.GetInt("displayTid"); } if (properties.ContainsKey("entity")) { InitEntity(tile, properties); } }
internal TiledMapTilesetTile(int localTileIdentifier) { LocalTileIdentifier = localTileIdentifier; Properties = new TiledMapProperties(); }