public override Systems CreateUpdateSystems(IContexts contexts1) { var contexts = contexts1 as Contexts; var sessionObjects = contexts.session.commonSession; var entityIdGenerator = sessionObjects.EntityIdGenerator; _gameModule = new CompositeGameModule(); _gameModule.AddModule(new ServerPlayerModule(contexts)); _gameModule.AddModule(new ServerEntityInitModule(contexts)); _gameModule.AddModule(new ServerBulletModule(contexts)); IHitBoxEntityManager hitBoxEntityManager = new HitBoxEntityManager(contexts, true); var snapshotSelectorContainer = contexts.session.serverSessionObjects.CompensationSnapshotSelector; ICompensationWorldFactory factory = new ServerCompensationWorldFactory(snapshotSelectorContainer, hitBoxEntityManager); var serverDamageInfoCollector = new ServerDamageInfoCollector(contexts.player); _gameModule.AddModule(new UserCmdGameModule(contexts, factory, new BulletHitHandler(contexts, entityIdGenerator, room.PlayerDamager, serverDamageInfoCollector, contexts.session.entityFactoryObject.SoundEntityFactory, SingletonManager.Get <EnvironmentTypeConfigManager>()), new MeleeHitHandler(contexts, room.PlayerDamager, entityIdGenerator, serverDamageInfoCollector, contexts.session.entityFactoryObject.SoundEntityFactory), new ThrowingHitHandler(contexts, room.PlayerDamager), sessionObjects, MotorsFactory.CraeteMotors(contexts, SingletonManager.Get <CameraConfigManager>().Config))); _gameModule.AddModule(new ServerPostPredictionModule(contexts)); _gameModule.AddModule(new ServerVehicleModule(contexts, contexts.session.serverSessionObjects.VehicleTimer)); _gameModule.AddModule(new ServerGamePlayModule(contexts, room)); _gameModule.AddModule( new ServerSceneObjectModule(contexts, this, sessionObjects.EquipmentEntityIdGenerator)); IUserCmdExecuteSystemHandler userCmdExecuteSystemHandler = new UserCmdExecuteSystemHandler(contexts); IVehicleCmdExecuteSystemHandler vehicleCmdExecuteSystemHandler = new ServerVehicleCmdExecuteSystemHandler(contexts); var systems = new Feature("GameSessionState"); systems.Add(new PingSystem(contexts)); systems.Add(new ServerMainFeature( "ServerSystems", _gameModule, userCmdExecuteSystemHandler, vehicleCmdExecuteSystemHandler, contexts.session.serverSessionObjects.SimulationTimer, new VehicleExecutionSelector(contexts), sessionObjects, room)); return(systems); }
public static CompositeGameModule CreateCompositeGameModule(Contexts contexts) { var motors = MotorsFactory.CraeteMotors(contexts, SingletonManager.Get <CameraConfigManager>().Config); var sessionObjects = contexts.session.commonSession; var gameModule = new CompositeGameModule(); IHitBoxEntityManager hitBoxEntityManager = new HitBoxEntityManager(contexts, false); ICompensationWorldFactory factory = new ClientCompensationWorldFactory(contexts.session.commonSession.GameContexts, hitBoxEntityManager); GameModule cmdModule = new UserCmdGameModule(contexts, factory, new BulletHitHandler(contexts, sessionObjects.EntityIdGenerator, null), new MeleeHitHandler(null), new ThrowingHitHandler(null), contexts.session.commonSession, motors); // cmdModule.AddSystem(new PlayerAddMarkSystem(contexts)); cmdModule.AddSystem(new PlayerSprayPaintSystem(contexts)); gameModule.AddModule(cmdModule); gameModule.AddModule(new BulletModule(contexts)); gameModule.AddModule(new ThrowingModule(contexts)); gameModule.AddModule(new ClientEffectModule(contexts)); gameModule.AddModule(new ClientVehicleModule(contexts)); gameModule.AddModule(new ClientPlayerModule(contexts)); gameModule.AddModule(new ClientSoundModule(contexts)); if (SharedConfig.IsRobot) { gameModule.AddModule(new ClientRobotModule(contexts)); } gameModule.AddSystem(new VisionCenterUpdateSystem(contexts)); gameModule.AddSystem(new TerrainDataLoadSystem(contexts)); if (SingletonManager.Get <MapConfigManager>().SceneParameters is SceneConfig || SingletonManager.Get <MapConfigManager>().SceneParameters.Id == 0) { gameModule.AddSystem(new ClientAutoWorldShiftRenderSystem(contexts)); } //gameModule.AddSystem(new OcclusionCullingSystem(contexts)); gameModule.AddModule(new ClientSceneObjectModule(contexts, sessionObjects)); // gameModule.AddModule(new ClientSoundModule(contexts)); gameModule.AddModule(new ClientGamePlayModule(contexts)); gameModule.AddModule(new ClientFreeMoveModule(contexts)); gameModule.AddModule(new UiModule(contexts)); gameModule.AddModule(new ConfigurationRefreshModule(contexts)); SingletonManager.Get <FreeUiManager>().Contexts1 = contexts; SimpleMessageManager.Instance.Init(contexts.session.entityFactoryObject.SoundEntityFactory); return(gameModule); }
public static CompositeGameModule CreateRobotCompositeGameModule(Contexts contexts) { var motors = MotorsFactory.CraeteMotors(contexts, SingletonManager.Get <CameraConfigManager>().Config); var sessionObjects = contexts.session.commonSession; var gameModule = new CompositeGameModule(); IHitBoxEntityManager hitBoxEntityManager = new HitBoxEntityManager(contexts, false); ICompensationWorldFactory factory = new ClientCompensationWorldFactory(contexts.session.commonSession.GameContexts, hitBoxEntityManager); GameModule cmdModule = new UserCmdGameModule(contexts, factory, new BulletHitHandler(contexts, sessionObjects.EntityIdGenerator, null), new MeleeHitHandler(null), new ThrowingHitHandler(null), contexts.session.commonSession, motors); // cmdModule.AddSystem(new PlayerAddMarkSystem(contexts)); gameModule.AddModule(cmdModule); // gameModule.AddModule(new BulletModule(contexts)); // gameModule.AddModule(new ThrowingModule(contexts)); // gameModule.AddModule(new ClientEffectModule(contexts)); // gameModule.AddModule(new ClientVehicleModule(contexts)); // gameModule.AddModule(new ClientPlayerModule(contexts)); if (SharedConfig.IsRobot) { gameModule.AddModule(new ClientRobotModule(contexts)); } // gameModule.AddModule(new ClientSceneObjectModule(contexts, sessionObjects)); // gameModule.AddModule(new ClientSoundModule(contexts)); gameModule.AddModule(new ClientGamePlayModule(contexts)); gameModule.AddModule(new ClientFreeMoveModule(contexts)); gameModule.AddModule(new ConfigurationRefreshModule(contexts)); SimpleProto loginSucess = FreePool.Allocate(); loginSucess.Key = FreeMessageConstant.ClientLoginSucess; if (contexts.session.clientSessionObjects.NetworkChannel != null) { contexts.session.clientSessionObjects.NetworkChannel.SendReliable((int)EClient2ServerMessage.FreeEvent, loginSucess); } SingletonManager.Get <FreeUiManager>().Contexts1 = contexts; SimpleMessageManager.Instance.Init(contexts.session.entityFactoryObject.SoundEntityFactory); return(gameModule); }
public override Systems CreateUpdateSystems(IContexts contexts1) { var contexts = contexts1 as Contexts; var sessionObjects = contexts.session.commonSession; var entityIdGenerator = sessionObjects.EntityIdGenerator; _gameModule = new CompositeGameModule(); _gameModule.AddModule(new ServerPlayerModule(contexts)); //if (GameRules.IsChicken(contexts.session.commonSession.RoomInfo.ModeId)) //{ _gameModule.AddModule(new ServerEntityInitModule(contexts)); //} IHitBoxEntityManager hitBoxEntityManager = new HitBoxEntityManager(contexts, true); var SnapshotSelector = contexts.session.serverSessionObjects.SnapshotSelector; ICompensationWorldFactory factory = new ServerCompensationWorldFactory(SnapshotSelector, hitBoxEntityManager); _gameModule.AddModule(new UserCmdGameModule(contexts, factory, new BulletHitHandler(contexts, entityIdGenerator, room.PlayerDamager), new MeleeHitHandler(room.PlayerDamager), new ThrowingHitHandler(room.PlayerDamager), sessionObjects, MotorsFactory.CraeteMotors(contexts, SingletonManager.Get <CameraConfigManager>().Config))); _gameModule.AddModule(new ServerPostPredictionModule(contexts)); _gameModule.AddModule(new ServerVehicleModule(contexts, contexts.session.serverSessionObjects.VehicleTimer)); _gameModule.AddModule(new ServerGamePlayModule(contexts, room)); _gameModule.AddModule( new ServerSceneObjectModule(contexts, this, sessionObjects.EquipmentEntityIdGenerator)); IServerUserCmdList serrverServerUserCmdList = new ServerServerUserCmdList(contexts); IVehicleCmdExecuteSystemHandler vehicleCmdExecuteSystemHandler = new ServerVehicleCmdExecuteSystemHandler(contexts); var systems = new Feature("GameSessionState"); systems.Add(new PingSystem(contexts)); systems.Add(new ServerMainFeature("ServerSystems", _gameModule, serrverServerUserCmdList, vehicleCmdExecuteSystemHandler, contexts.session.serverSessionObjects.SimulationTimer, new VehicleExecutionSelector(contexts), sessionObjects, room)); return(systems); }