コード例 #1
0
    public ServerGameWorld(GameWorld world, NetworkServer networkServer, Dictionary <int, ServerGameLoop.ClientInfo> clients, ChatSystemServer m_ChatSystem, BundledResourceManager resourceSystem)
    {
        m_NetworkServer   = networkServer;
        m_Clients         = clients;
        this.m_ChatSystem = m_ChatSystem;

        m_GameWorld = world;

        m_CharacterModule        = new CharacterModuleServer(m_GameWorld, resourceSystem);
        m_ProjectileModule       = new ProjectileModuleServer(m_GameWorld, resourceSystem);
        m_HitCollisionModule     = new HitCollisionModule(m_GameWorld, 128, 1);
        m_PlayerModule           = new PlayerModuleServer(m_GameWorld, resourceSystem);
        m_SpectatorCamModule     = new SpectatorCamModuleServer(m_GameWorld, resourceSystem);
        m_ReplicatedEntityModule = new ReplicatedEntityModuleServer(m_GameWorld, resourceSystem, m_NetworkServer);
        m_ReplicatedEntityModule.ReserveSceneEntities(networkServer);
        m_ItemModule = new ItemModule(m_GameWorld);

        m_GameModeSystem = m_GameWorld.GetECSWorld().CreateManager <GameModeSystemServer>(m_GameWorld, m_ChatSystem, resourceSystem);

        m_DestructablePropSystem = m_GameWorld.GetECSWorld().CreateManager <UpdateDestructableProps>(m_GameWorld);

        m_DamageAreaSystem = m_GameWorld.GetECSWorld().CreateManager <DamageAreaSystemServer>(m_GameWorld);

        m_TeleporterSystem = m_GameWorld.GetECSWorld().CreateManager <TeleporterSystemServer>(m_GameWorld);

        m_HandleGrenadeRequests   = m_GameWorld.GetECSWorld().CreateManager <HandleGrenadeRequest>(m_GameWorld, resourceSystem);
        m_StartGrenadeMovement    = m_GameWorld.GetECSWorld().CreateManager <StartGrenadeMovement>(m_GameWorld);
        m_FinalizeGrenadeMovement = m_GameWorld.GetECSWorld().CreateManager <FinalizeGrenadeMovement>(m_GameWorld);

        m_platformSystem = m_GameWorld.GetECSWorld().CreateManager <MoverUpdate>(m_GameWorld);

        m_MoveableSystem = new MovableSystemServer(m_GameWorld, resourceSystem);
        m_CameraSystem   = new ServerCameraSystem(m_GameWorld);
    }
コード例 #2
0
    void EnterActiveState()
    {
        m_GameWorld.RegisterSceneEntities();

        m_resourceSystem = new BundledResourceManager(m_GameWorld, "BundledResources/Client");

        // Create serializers so we get errors in preview build
        var dataComponentSerializers = new DataComponentSerializers();

        m_CharacterModule    = new CharacterModulePreview(m_GameWorld, m_resourceSystem);
        m_PlayerModuleClient = new PlayerModuleClient(m_GameWorld);
        m_PlayerModuleServer = new PlayerModuleServer(m_GameWorld, m_resourceSystem);

        m_UpdateReplicatedOwnerFlag = m_GameWorld.GetECSWorld().CreateSystem <UpdateReplicatedOwnerFlag>(m_GameWorld);

        m_PlayerModuleClient.RegisterLocalPlayer(0, null);

        // Spawn PlayerState, Character and link up LocalPlayer
        m_Player = m_PlayerModuleServer.CreatePlayer(m_GameWorld, 0, "LocalMech", true);

        var playerEntity = m_Player.gameObject.GetComponent <GameObjectEntity>().Entity;
        //var charControl = m_Player.gameObject.GetComponent<PlayerCharacterControl>();
        var charControl = m_GameWorld.GetEntityManager().GetComponentObject <PlayerCharacterControl>(playerEntity);

        charControl.RequestedMechSettings = new MechSettings();
        m_Player.teamIndex = 0;

        m_previewGameMode = m_GameWorld.GetECSWorld().CreateSystem <PreviewGameMode>(m_GameWorld, m_Player);

        Game.SetMousePointerLock(true);
    }
コード例 #3
0
    public ServerGameWorld(GameWorld world, BundledResourceManager resourceSystem, Dictionary <int, ServerGameLoop.ClientInfo> clients, NetworkServer networkServer)
    {
        _gameWorld     = world;
        _networkServer = networkServer;
        m_Clients      = clients;

        m_PlayerModule           = new PlayerModuleServer(_gameWorld, resourceSystem);
        m_CharacterModule        = new CharacterModuleServer(_gameWorld, resourceSystem);
        m_ReplicatedEntityModule = new ReplicatedEntityModuleServer(_gameWorld, resourceSystem, networkServer);
        m_ReplicatedEntityModule.ReserveSceneEntities(networkServer);

        movableSystemServer = new MovableSystemServer(_gameWorld, resourceSystem);

        m_GameModeSystem = _gameWorld.GetECSWorld().CreateSystem <GameModeSystemServer>(_gameWorld);
    }
コード例 #4
0
    void EnterActiveState()
    {
        m_GameWorld.RegisterSceneEntities();

        m_resourceSystem = new BundledResourceManager("BundledResources/Client");

        m_CharacterModule          = new CharacterModulePreview(m_GameWorld, m_resourceSystem);
        m_ProjectileModule         = new ProjectileModuleClient(m_GameWorld, m_resourceSystem);
        m_HitCollisionModule       = new HitCollisionModule(m_GameWorld, 1, 2);
        m_PlayerModuleClient       = new PlayerModuleClient(m_GameWorld);
        m_PlayerModuleServer       = new PlayerModuleServer(m_GameWorld, m_resourceSystem);
        m_DebugPrimitiveModule     = new DebugPrimitiveModule(m_GameWorld, 1.0f, 0);
        m_SpectatorCamModuleServer = new SpectatorCamModuleServer(m_GameWorld, m_resourceSystem);
        m_SpectatorCamModuleClient = new SpectatorCamModuleClient(m_GameWorld);
        m_EffectModule             = new EffectModuleClient(m_GameWorld, m_resourceSystem);
        m_WeaponsModule            = new WeaponsModule(m_GameWorld, m_resourceSystem, false);

        m_ragdollModule = new RagdollModule(m_GameWorld);

        m_DespawnProjectiles     = m_GameWorld.GetECSWorld().CreateManager <DespawnProjectiles>(m_GameWorld);
        m_DamageAreaSystemServer = m_GameWorld.GetECSWorld().CreateManager <DamageAreaSystemServer>(m_GameWorld);

        m_TeleporterSystemServer = m_GameWorld.GetECSWorld().CreateManager <TeleporterSystemServer>(m_GameWorld);
        m_TeleporterSystemClient = m_GameWorld.GetECSWorld().CreateManager <TeleporterSystemClient>(m_GameWorld);

        m_UpdateDestructableProps      = m_GameWorld.GetECSWorld().CreateManager <UpdateDestructableProps>(m_GameWorld);
        m_DestructiblePropSystemClient = m_GameWorld.GetECSWorld().CreateManager <DestructiblePropSystemClient>(m_GameWorld);

        m_HandleGrenadeRequests    = m_GameWorld.GetECSWorld().CreateManager <HandleGrenadeRequest>(m_GameWorld, m_resourceSystem);
        m_StartGrenadeMovement     = m_GameWorld.GetECSWorld().CreateManager <StartGrenadeMovement>(m_GameWorld);
        m_FinalizeGrenadeMovement  = m_GameWorld.GetECSWorld().CreateManager <FinalizeGrenadeMovement>(m_GameWorld);
        m_ApplyGrenadePresentation = m_GameWorld.GetECSWorld().CreateManager <ApplyGrenadePresentation>(m_GameWorld);

        m_moverUpdate = m_GameWorld.GetECSWorld().CreateManager <MoverUpdate>(m_GameWorld);

        m_SpinSystem = m_GameWorld.GetECSWorld().CreateManager <SpinSystem>(m_GameWorld);
        m_HandleNamePlateOwnerSpawn   = m_GameWorld.GetECSWorld().CreateManager <HandleNamePlateSpawn>(m_GameWorld);
        m_HandleNamePlateOwnerDespawn = m_GameWorld.GetECSWorld().CreateManager <HandleNamePlateDespawn>(m_GameWorld);
        m_UpdateNamePlates            = m_GameWorld.GetECSWorld().CreateManager <UpdateNamePlates>(m_GameWorld);

        m_UpdateReplicatedOwnerFlag = m_GameWorld.GetECSWorld().CreateManager <UpdateReplicatedOwnerFlag>(m_GameWorld);


        m_TwistSystem          = new TwistSystem(m_GameWorld);
        m_FanSystem            = new FanSystem(m_GameWorld);
        m_TranslateScaleSystem = new TranslateScaleSystem(m_GameWorld);

        m_PlayerModuleClient.RegisterLocalPlayer(0, null);


        // Spawn PlayerState, Character and link up LocalPlayer
        m_Player = m_PlayerModuleServer.CreatePlayer(m_GameWorld, 0, "LocalHero", true);

        var playerEntity = m_Player.gameObject.GetComponent <GameObjectEntity>().Entity;
        var charControl  = m_GameWorld.GetEntityManager().GetComponentObject <PlayerCharacterControl>(playerEntity);

        charControl.characterType = math.max(Game.characterType.IntValue, 0);
        m_Player.teamIndex        = 0;

        m_previewGameMode = m_GameWorld.GetECSWorld().CreateManager <PreviewGameMode>(m_GameWorld, m_Player);

        Game.SetMousePointerLock(true);
    }