Пример #1
0
        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));
                }
            }
        }
Пример #2
0
        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);
            }
        }
Пример #3
0
 internal TiledMapTilesetTile(int localTileIdentifier)
 {
     LocalTileIdentifier = localTileIdentifier;
     Properties          = new TiledMapProperties();
 }