コード例 #1
0
ファイル: DataManager.cs プロジェクト: allugit/StasisEngine
        // Load world map states
        private static Dictionary <string, WorldMapState> loadWorldMapStates(List <XElement> allWorldMapStateData)
        {
            Dictionary <string, WorldMapState> worldMapStates = new Dictionary <string, WorldMapState>();

            foreach (XElement worldMapStateData in allWorldMapStateData)
            {
                string        worldMapUid   = worldMapStateData.Attribute("world_map_uid").Value;
                WorldMapState worldMapState = new WorldMapState(
                    _worldMapManager.getWorldMapDefinition(worldMapUid),
                    bool.Parse(worldMapStateData.Attribute("discovered").Value));

                foreach (XElement levelIconStateData in worldMapStateData.Elements("LevelIconState"))
                {
                    string levelIconUid = levelIconStateData.Attribute("level_icon_uid").Value;

                    worldMapState.levelIconStates.Add(
                        new LevelIconState(
                            _worldMapManager.getLevelIconDefinition(worldMapUid, levelIconUid),
                            bool.Parse(levelIconStateData.Attribute("discovered").Value),
                            bool.Parse(levelIconStateData.Attribute("finished").Value)));
                }

                foreach (XElement levelPathStateData in worldMapStateData.Elements("LevelPathState"))
                {
                    int id = int.Parse(levelPathStateData.Attribute("id").Value);

                    worldMapState.levelPathState.Add(
                        new LevelPathState(
                            _worldMapManager.getLevelPathDefinition(worldMapUid, id),
                            bool.Parse(levelPathStateData.Attribute("discovered").Value)));
                }

                worldMapStates.Add(worldMapUid, worldMapState);
            }

            return(worldMapStates);
        }