Exemple #1
0
        public World LoadWorld(string worldName)
        {
            if (_worldManager.WorldExists(worldName))
            {
                WorldDirectory = _worldManager.GetWorldDirectory(worldName);
                GameServer.Instance.Worlds.CurrentWorldDirectory = WorldDirectory;
                WorldName = worldName;
                WorldConfigSave worldSave = FileManager.LoadObject <WorldConfigSave>(WorldDirectory + AppSettings.WorldSaveFile, false);
                WorldStartTime = worldSave.time;
                Terrain        = new TerrainBuilder(worldSave.terrain);
                GameServer.Instance.Users.LoadUsers(WorldDirectory + "Users" + GameServer.sepChar);
                GameServer.Instance.Alliances.Load(worldSave.alliances);
                GameServer.Instance.Structures.Load();

                Logger.Log("World \"{0}\" loaded.", worldName);
                GameServer.Instance.StartWorld(this);
            }
            else
            {
                Logger.LogWarning("Created world \"{0}\" as it does not exists.", worldName);
                CreateNewWorld(worldName);
            }

            return(this);
        }
Exemple #2
0
        public World CreateNewWorld(string worldName)
        {
            string stage = "stage1";

            try {
                Logger.Log("Creating new world '{0}'.", worldName);
                WorldDirectory = _worldManager.MainWorldDirectory + worldName + GameServer.sepChar;
                if (!Directory.Exists(WorldDirectory))
                {
                    Directory.CreateDirectory(WorldDirectory);
                }
                _worldManager.AddWorldDirectory(worldName, WorldDirectory);
                _worldManager.CurrentWorldDirectory = WorldDirectory;

                IModule module = new Perlin();
                ((Perlin)module).OctaveCount = 16;
                ((Perlin)module).Seed        = AppSettings.TerrainSeed;
                Terrain = new TerrainBuilder(AppSettings.TerrainWidth, AppSettings.TerrainHeight, AppSettings.TerrainSeed);
                Terrain.Generate(module, AppSettings.TerrainPreset);
                Terrain.Save(WorldDirectory + AppSettings.TerrainImageFile);
                Terrain.SaveModule(WorldDirectory + AppSettings.TerrainModuleFile);
                WorldName = worldName;
                WorldConfigSave worldSave = new WorldConfigSave();
                WorldStartTime      = new Time(0, 0, 0, 0, 0, 0, AppSettings.SecondsInTicks);
                worldSave.version   = GameServer.Instance.Version;
                worldSave.time      = WorldStartTime;
                worldSave.terrain   = Terrain.Settings;
                worldSave.alliances = GameServer.Instance.Alliances.Save();
                FileManager.SaveConfigFile(WorldDirectory + AppSettings.WorldSaveFile, worldSave, false);
                GameServer.Instance.Users.Save(WorldDirectory + "Users" + GameServer.sepChar);

                Logger.Log("World \"{0}\" created.", worldName);
                GameServer.Instance.StartWorld(this);
            }
            catch (JsonSerializationException e) {
                Logger.LogError("json serialization failed: {0}", stage);
                Logger.LogError(e.StackTrace);
            }
            catch (Exception e) {
                Logger.LogError("{0}: {1}\n{2}", e.GetType(), e.Message, e.StackTrace);
            }
            return(this);
        }
Exemple #3
0
        public void Save(string worldName)
        {
            WorldDirectory = _worldManager.MainWorldDirectory + worldName + "/";

            WorldConfigSave worldSave = new WorldConfigSave();
            GameTimer       timer     = GameServer.Instance.GameTime;

            worldSave.version   = GameServer.Instance.Version;
            worldSave.time      = new Time(timer.TotalSeconds, timer.Minutes, timer.Hours, timer.Days, timer.Tick, timer.SecondsInTick, timer.MaxSecondsInTick);
            worldSave.terrain   = Terrain.Settings;
            worldSave.alliances = GameServer.Instance.Alliances.Save();
            FileManager.SaveConfigFile(WorldDirectory + AppSettings.WorldSaveFile, worldSave, false);

            if (!File.Exists(WorldDirectory + AppSettings.TerrainImageFile))
            {
                Terrain.Save(WorldDirectory + AppSettings.TerrainImageFile);
            }
            GameServer.Instance.Users.Save(WorldDirectory + "Users" + GameServer.sepChar);

            Logger.Log("World \"{0}\" saved.", worldName);
        }
Exemple #4
0
        public World CreateNewWorld(string worldName)
        {
            string stage = "stage1";
            try {
                Logger.Log("Creating new world '{0}'.", worldName);
                WorldDirectory = _worldManager.MainWorldDirectory + worldName + GameServer.sepChar;
                if (!Directory.Exists (WorldDirectory))
                    Directory.CreateDirectory (WorldDirectory);
                _worldManager.AddWorldDirectory (worldName, WorldDirectory);
                _worldManager.CurrentWorldDirectory = WorldDirectory;

                IModule module = new Perlin ();
                ((Perlin)module).OctaveCount = 16;
                ((Perlin)module).Seed = AppSettings.TerrainSeed;
                Terrain = new TerrainBuilder (AppSettings.TerrainWidth, AppSettings.TerrainHeight, AppSettings.TerrainSeed);
                Terrain.Generate (module, AppSettings.TerrainPreset);
                Terrain.Save(WorldDirectory + AppSettings.TerrainImageFile);
                Terrain.SaveModule(WorldDirectory + AppSettings.TerrainModuleFile);
                WorldName = worldName;
                WorldConfigSave worldSave = new WorldConfigSave ();
                WorldStartTime = new Time (0, 0, 0, 0, 0, 0, AppSettings.SecondsInTicks);
                worldSave.version = GameServer.Instance.Version;
                worldSave.time = WorldStartTime;
                worldSave.terrain = Terrain.Settings;
                worldSave.alliances = GameServer.Instance.Alliances.Save();
                FileManager.SaveConfigFile(WorldDirectory + AppSettings.WorldSaveFile, worldSave, false);
                GameServer.Instance.Users.Save(WorldDirectory + "Users" + GameServer.sepChar);

                Logger.Log ("World \"{0}\" created.", worldName);
                GameServer.Instance.StartWorld (this);
            }
            catch (JsonSerializationException e){
                Logger.LogError("json serialization failed: {0}", stage);
                Logger.LogError(e.StackTrace);
            }
            catch (Exception e){
                Logger.LogError("{0}: {1}\n{2}", e.GetType(), e.Message, e.StackTrace);
            }
            return this;
        }
Exemple #5
0
        public void Save(string worldName)
        {
            WorldDirectory = _worldManager.MainWorldDirectory + worldName + "/";

            WorldConfigSave worldSave = new WorldConfigSave ();
            GameTimer timer = GameServer.Instance.GameTime;
            worldSave.version = GameServer.Instance.Version;
            worldSave.time = new Time (timer.TotalSeconds, timer.Minutes, timer.Hours, timer.Days, timer.Tick, timer.SecondsInTick, timer.MaxSecondsInTick );
            worldSave.terrain = Terrain.Settings;
            worldSave.alliances = GameServer.Instance.Alliances.Save();
            FileManager.SaveConfigFile (WorldDirectory + AppSettings.WorldSaveFile, worldSave, false);

            if (!File.Exists(WorldDirectory + AppSettings.TerrainImageFile))
                Terrain.Save (WorldDirectory + AppSettings.TerrainImageFile);
            GameServer.Instance.Users.Save (WorldDirectory + "Users" + GameServer.sepChar);

            Logger.Log ("World \"{0}\" saved.", worldName);
        }