Example #1
0
        private World CreateWorld(DateTime serverStartTime,
                                  EntityData entityData,
                                  BaseData baseData,
                                  VehicleData vehicleData,
                                  InventoryData inventoryData,
                                  PlayerData playerData,
                                  GameData gameData,
                                  List <Int3> ParsedBatchCells,
                                  EscapePodData escapePodData)
        {
            World world = new World();

            world.TimeKeeper = new TimeKeeper();
            world.TimeKeeper.ServerStartTime = serverStartTime;

            world.SimulationOwnershipData = new SimulationOwnershipData();
            world.PlayerManager           = new PlayerManager(playerData);
            world.EntityData       = entityData;
            world.EventTriggerer   = new EventTriggerer(world.PlayerManager);
            world.BaseData         = baseData;
            world.VehicleData      = vehicleData;
            world.InventoryData    = inventoryData;
            world.PlayerData       = playerData;
            world.GameData         = gameData;
            world.EscapePodData    = escapePodData;
            world.EscapePodManager = new EscapePodManager(escapePodData);
            world.EntitySimulation = new EntitySimulation(world.EntityData, world.SimulationOwnershipData, world.PlayerManager);

            ResourceAssets resourceAssets = ResourceAssetsParser.Parse();

            world.BatchEntitySpawner = new BatchEntitySpawner(resourceAssets, ParsedBatchCells);

            return(world);
        }
        private World CreateFreshWorld()
        {
            PersistedWorldData pWorldData = new PersistedWorldData
            {
                BaseData   = BaseData.From(new List <BasePiece>(), new List <BasePiece>()),
                EntityData = EntityData.From(new List <Entity>()),
                PlayerData = PlayerData.From(new List <Player>()),
                WorldData  = new WorldData()
                {
                    EscapePodData = EscapePodData.From(new List <EscapePodModel>()),
                    GameData      = new GameData
                    {
                        PDAState    = new PDAStateData(),
                        StoryGoals  = new StoryGoalData(),
                        StoryTiming = new StoryTimingData()
                    },
                    InventoryData    = InventoryData.From(new List <ItemData>(), new List <ItemData>(), new List <EquippedItemData>()),
                    VehicleData      = VehicleData.From(new List <VehicleModel>()),
                    ParsedBatchCells = new List <NitroxInt3>(),
                    ServerStartTime  = DateTime.Now
#if DEBUG
                    ,
                    Seed = "TCCBIBZXAB"
#endif
                }
            };

            return(CreateWorld(pWorldData, config.GameMode));
        }
Example #3
0
        private World CreateWorld(DateTime serverStartTime,
                                  EntityData entityData,
                                  BaseData baseData,
                                  VehicleData vehicleData,
                                  InventoryData inventoryData,
                                  PlayerData playerData,
                                  GameData gameData,
                                  List <Int3> parsedBatchCells,
                                  EscapePodData escapePodData,
                                  string gameMode)
        {
            World world = new World();

            world.TimeKeeper = new TimeKeeper();
            world.TimeKeeper.ServerStartTime = serverStartTime;

            world.SimulationOwnershipData = new SimulationOwnershipData();
            world.PlayerManager           = new PlayerManager(playerData, config);
            world.EntityData       = entityData;
            world.EventTriggerer   = new EventTriggerer(world.PlayerManager);
            world.BaseData         = baseData;
            world.VehicleData      = vehicleData;
            world.InventoryData    = inventoryData;
            world.PlayerData       = playerData;
            world.GameData         = gameData;
            world.EscapePodData    = escapePodData;
            world.EscapePodManager = new EscapePodManager(escapePodData);

            HashSet <TechType> serverSpawnedSimulationWhiteList = NitroxServiceLocator.LocateService <HashSet <TechType> >();

            world.EntitySimulation = new EntitySimulation(world.EntityData, world.SimulationOwnershipData, world.PlayerManager, serverSpawnedSimulationWhiteList);
            world.GameMode         = gameMode;

            world.BatchEntitySpawner = new BatchEntitySpawner(NitroxServiceLocator.LocateService <EntitySpawnPointFactory>(),
                                                              NitroxServiceLocator.LocateService <UweWorldEntityFactory>(),
                                                              NitroxServiceLocator.LocateService <UwePrefabFactory>(),
                                                              parsedBatchCells,
                                                              serializer,
                                                              NitroxServiceLocator.LocateService <Dictionary <TechType, IEntityBootstrapper> >(),
                                                              NitroxServiceLocator.LocateService <Dictionary <string, List <PrefabAsset> > >());

            Log.Info("World GameMode: " + gameMode);

            Log.Info("Server Password: "******"None. Public Server." : config.ServerPassword));
            Log.Info("Admin Password: "******"To get help for commands, run help in console or /help in chatbox");

            return(world);
        }
Example #4
0
        public void Save(World world)
        {
            try
            {
                PersistedWorldData persistedData = new PersistedWorldData();
                persistedData.WorldData.ParsedBatchCells = world.BatchEntitySpawner.SerializableParsedBatches;
                persistedData.WorldData.ServerStartTime  = world.TimeKeeper.ServerStartTime;
                persistedData.WorldData.EntityData       = EntityData.From(world.EntityManager.GetAllEntities());
                persistedData.BaseData = BaseData.From(world.BaseManager.GetPartiallyConstructedPieces(), world.BaseManager.GetCompletedBasePieceHistory());
                persistedData.WorldData.VehicleData   = VehicleData.From(world.VehicleManager.GetVehicles());
                persistedData.WorldData.InventoryData = InventoryData.From(world.InventoryManager.GetAllInventoryItems(), world.InventoryManager.GetAllStorageSlotItems());
                persistedData.PlayerData                = PlayerData.From(world.PlayerManager.GetAllPlayers());
                persistedData.WorldData.GameData        = world.GameData;
                persistedData.WorldData.StoryTimingData = StoryTimingData.From(world.EventTriggerer);
                persistedData.WorldData.EscapePodData   = EscapePodData.From(world.EscapePodManager.GetEscapePods());

                if (!Directory.Exists(config.SaveName))
                {
                    Directory.CreateDirectory(config.SaveName);
                }

                using (Stream stream = File.OpenWrite(Path.Combine(config.SaveName, "BaseData.nitrox")))
                {
                    serializer.Serialize(stream, new SaveVersion(BaseData.VERSION));
                    serializer.Serialize(stream, persistedData.BaseData);
                }

                using (Stream stream = File.OpenWrite(Path.Combine(config.SaveName, "PlayerData.nitrox")))
                {
                    serializer.Serialize(stream, new SaveVersion(PlayerData.VERSION));
                    serializer.Serialize(stream, persistedData.PlayerData);
                }

                using (Stream stream = File.OpenWrite(Path.Combine(config.SaveName, "WorldData.nitrox")))
                {
                    serializer.Serialize(stream, new SaveVersion(WorldData.VERSION));
                    serializer.Serialize(stream, persistedData.WorldData);
                }

                Log.Info("World state saved.");
            }
            catch (Exception ex)
            {
                Log.Info("Could not save world: " + ex);
            }
        }
Example #5
0
 public static PersistedWorldData From(World world)
 {
     return(new PersistedWorldData
     {
         BaseData = BaseData.From(world.BaseManager.GetPartiallyConstructedPieces(), world.BaseManager.GetCompletedBasePieceHistory()),
         PlayerData = PlayerData.From(world.PlayerManager.GetAllPlayers()),
         EntityData = EntityData.From(world.EntityManager.GetAllEntities()),
         WorldData =
         {
             ParsedBatchCells = world.BatchEntitySpawner.SerializableParsedBatches,
             ServerStartTime  = world.TimeKeeper.ServerStartTime,
             VehicleData      = VehicleData.From(world.VehicleManager.GetVehicles()),
             InventoryData    = InventoryData.From(world.InventoryManager.GetAllInventoryItems(),world.InventoryManager.GetAllStorageSlotItems()),
             GameData         = world.GameData,
             EscapePodData    = EscapePodData.From(world.EscapePodManager.GetEscapePods())
         }
     });
 }
Example #6
0
 public static PersistedWorldData From(World world)
 {
     return(new PersistedWorldData
     {
         BaseData = BaseData.From(world.BaseManager.GetPartiallyConstructedPieces(), world.BaseManager.GetCompletedBasePieceHistory()),
         PlayerData = PlayerData.From(world.PlayerManager.GetAllPlayers()),
         EntityData = EntityData.From(world.EntityManager.GetAllEntities()),
         WorldData =
         {
             ParsedBatchCells = world.BatchEntitySpawner.SerializableParsedBatches,
             VehicleData      = VehicleData.From(world.VehicleManager.GetVehicles()),
             InventoryData    = InventoryData.From(world.InventoryManager.GetAllInventoryItems(),world.InventoryManager.GetAllStorageSlotItems(),world.InventoryManager.GetAllModules()),
             GameData         = GameData.From(world.GameData.PDAState,                           world.GameData.StoryGoals,                     world.ScheduleKeeper,                   world.EventTriggerer),
             EscapePodData    = EscapePodData.From(world.EscapePodManager.GetEscapePods()),
             Seed             = world.Seed
         }
     });
 }
Example #7
0
        private World CreateWorld(DateTime serverStartTime,
                                  EntityData entityData,
                                  BaseData baseData,
                                  VehicleData vehicleData,
                                  InventoryData inventoryData,
                                  PlayerData playerData,
                                  GameData gameData,
                                  List <Int3> ParsedBatchCells,
                                  EscapePodData escapePodData,
                                  GameModeOption gameMode)
        {
            World world = new World();

            world.TimeKeeper = new TimeKeeper();
            world.TimeKeeper.ServerStartTime = serverStartTime;

            world.SimulationOwnershipData = new SimulationOwnershipData();
            world.PlayerManager           = new PlayerManager(playerData, config);
            world.EntityData       = entityData;
            world.EventTriggerer   = new EventTriggerer(world.PlayerManager);
            world.BaseData         = baseData;
            world.VehicleData      = vehicleData;
            world.InventoryData    = inventoryData;
            world.PlayerData       = playerData;
            world.GameData         = gameData;
            world.EscapePodData    = escapePodData;
            world.EscapePodManager = new EscapePodManager(escapePodData);
            world.EntitySimulation = new EntitySimulation(world.EntityData, world.SimulationOwnershipData, world.PlayerManager);
            world.GameMode         = gameMode;

            ResourceAssets resourceAssets = ResourceAssetsParser.Parse();

            world.BatchEntitySpawner = new BatchEntitySpawner(resourceAssets, ParsedBatchCells, serializer);

            Log.Info("World GameMode: " + gameMode);

            Log.Info("Server Password: "******"None. Public Server." : config.ServerPassword));
            Log.Info("Admin Password: "******"To get help for commands, run help in console or /help in chatbox");

            return(world);
        }
Example #8
0
        private World CreateWorld(DateTime serverStartTime,
                                  EntityData entityData,
                                  BaseData baseData,
                                  VehicleData vehicleData,
                                  InventoryData inventoryData,
                                  PlayerData playerData,
                                  GameData gameData,
                                  List <Int3> ParsedBatchCells,
                                  EscapePodData escapePodData,
                                  GameModeOption gameMode)
        {
            World world = new World();

            world.TimeKeeper = new TimeKeeper();
            world.TimeKeeper.ServerStartTime = serverStartTime;

            world.SimulationOwnershipData = new SimulationOwnershipData();
            world.PlayerManager           = new PlayerManager(playerData);
            world.EntityData       = entityData;
            world.EventTriggerer   = new EventTriggerer(world.PlayerManager);
            world.BaseData         = baseData;
            world.VehicleData      = vehicleData;
            world.InventoryData    = inventoryData;
            world.PlayerData       = playerData;
            world.GameData         = gameData;
            world.EscapePodData    = escapePodData;
            world.EscapePodManager = new EscapePodManager(escapePodData);
            world.EntitySimulation = new EntitySimulation(world.EntityData, world.SimulationOwnershipData, world.PlayerManager);
            world.GameMode         = gameMode;

            ResourceAssets resourceAssets = ResourceAssetsParser.Parse();

            world.BatchEntitySpawner = new BatchEntitySpawner(resourceAssets, ParsedBatchCells, serializer);

            Log.Info("World GameMode " + gameMode);

            Log.Info("Server Admin Password : "******" You can set your own password in the server config file or by using the /changepassword command");

            return(world);
        }
Example #9
0
        public void Save(World world, string saveDir)
        {
            try
            {
                PersistedWorldData persistedData = new PersistedWorldData
                {
                    BaseData   = BaseData.From(world.BaseManager.GetPartiallyConstructedPieces(), world.BaseManager.GetCompletedBasePieceHistory()),
                    PlayerData = PlayerData.From(world.PlayerManager.GetAllPlayers()),
                    EntityData = EntityData.From(world.EntityManager.GetAllEntities()),
                    WorldData  =
                    {
                        ParsedBatchCells = world.BatchEntitySpawner.SerializableParsedBatches,
                        ServerStartTime  = world.TimeKeeper.ServerStartTime,
                        VehicleData      = VehicleData.From(world.VehicleManager.GetVehicles()),
                        InventoryData    = InventoryData.From(world.InventoryManager.GetAllInventoryItems(), world.InventoryManager.GetAllStorageSlotItems()),
                        GameData         = world.GameData,
                        StoryTimingData  = StoryTimingData.From(world.EventTriggerer),
                        EscapePodData    = EscapePodData.From(world.EscapePodManager.GetEscapePods())
                    }
                };

                if (!Directory.Exists(saveDir))
                {
                    Directory.CreateDirectory(saveDir);
                }

                saveDataSerializer.Serialize(Path.Combine(saveDir, "Version" + fileEnding), new SaveFileVersions());
                saveDataSerializer.Serialize(Path.Combine(saveDir, "BaseData" + fileEnding), persistedData.BaseData);
                saveDataSerializer.Serialize(Path.Combine(saveDir, "PlayerData" + fileEnding), persistedData.PlayerData);
                saveDataSerializer.Serialize(Path.Combine(saveDir, "WorldData" + fileEnding), persistedData.WorldData);
                saveDataSerializer.Serialize(Path.Combine(saveDir, "EntityData" + fileEnding), persistedData.EntityData);

                Log.Info("World state saved.");
            }
            catch (Exception ex)
            {
                Log.Info("Could not save world: " + ex);
            }
        }