コード例 #1
0
    public CharacterModuleServer(GameWorld world, BundledResourceManager resourceSystem) : base(world)
    {
        // Handle spawn requests
        m_HandleCharacterSpawnRequests   = m_world.GetECSWorld().CreateManager <HandleCharacterSpawnRequests>(m_world, resourceSystem, true);
        m_HandleCharacterDespawnRequests = m_world.GetECSWorld().CreateManager <HandleCharacterDespawnRequests>(m_world);

        // Handle controlled entity changed
        CharacterBehaviours.CreateControlledEntityChangedSystems(m_world, m_ControlledEntityChangedSystems);
        m_ControlledEntityChangedSystems.Add(m_world.GetECSWorld().CreateManager <PlayerCharacterControlSystem>(m_world));

        // Handle spawn
        CharacterBehaviours.CreateHandleSpawnSystems(m_world, m_HandleSpawnSystems, resourceSystem);

        // Handle despawn
        CharacterBehaviours.CreateHandleDespawnSystems(m_world, m_HandleSpawnSystems);

        // Movement
        m_MovementStartSystems.Add(m_world.GetECSWorld().CreateManager <UpdateTeleportation>(m_world));
        CharacterBehaviours.CreateMovementStartSystems(m_world, m_MovementStartSystems);
        CharacterBehaviours.CreateMovementResolveSystems(m_world, m_MovementResolveSystems);

        // Ability
        CharacterBehaviours.CreateAbilityStartSystems(m_world, m_AbilityStartSystems);
        CharacterBehaviours.CreateAbilityResolveSystems(m_world, m_AbilityResolveSystems);



        m_UpdateCharPresentationState        = m_world.GetECSWorld().CreateManager <UpdateCharPresentationState>(m_world);
        m_ApplyPresentationStateToCharacters = m_world.GetECSWorld().CreateManager <ApplyPresentationStateToCharacters>(m_world);
        m_ApplyPresentationStateToItems      = m_world.GetECSWorld().CreateManager <ApplyPresentationStateToItems>(m_world);


        m_HandleDamage            = m_world.GetECSWorld().CreateManager <HandleDamage>(m_world);
        m_characterItemLateUpdate = m_world.GetECSWorld().CreateManager <CharacterItemLateUpdate>(m_world);
    }
コード例 #2
0
    public CharacterModulePreview(GameWorld world, BundledResourceManager resourceSystem) : base(world)
    {
        // Handle spawn requests
        m_HandleCharacterSpawnRequests  = m_world.GetECSWorld().CreateManager <HandleCharacterSpawnRequests>(m_world, resourceSystem, false);
        m_HandleCharacterDepawnRequests = m_world.GetECSWorld().CreateManager <HandleCharacterDespawnRequests>(m_world);

        // Handle control change
        m_ControlledEntityChangedSystems.Add(m_world.GetECSWorld().CreateManager <PlayerCharacterControlSystem>(m_world));
        m_ControlledEntityChangedSystems.Add(m_world.GetECSWorld().CreateManager <UpdateCharacter1PSpawn>(m_world, resourceSystem));

        // Handle spawning
        CharacterBehaviours.CreateHandleSpawnSystems(m_world, m_HandleSpawnSystems, resourceSystem, false);

        // Handle despawn
        CharacterBehaviours.CreateHandleDespawnSystems(m_world, m_HandleDespawnSystems);

        // Movement
        m_MovementStartSystems.Add(m_world.GetECSWorld().CreateManager <UpdateTeleportation>(m_world));
        CharacterBehaviours.CreateMovementStartSystems(m_world, m_MovementStartSystems);
        CharacterBehaviours.CreateMovementResolveSystems(m_world, m_MovementResolveSystems);

        // Ability
        CharacterBehaviours.CreateAbilityStartSystems(m_world, m_AbilityStartSystems);
        CharacterBehaviours.CreateAbilityResolveSystems(m_world, m_AbilityResolveSystems);

        m_UpdateCharPresentationState = m_world.GetECSWorld().CreateManager <UpdateCharPresentationState>(m_world);
        m_ApplyPresentationState      = m_world.GetECSWorld().CreateManager <ApplyPresentationState>(m_world);

        m_CharacterLateUpdate = m_world.GetECSWorld().CreateManager <CharacterLateUpdate>(m_world);

        m_HandleDamage = m_world.GetECSWorld().CreateManager <HandleDamage>(m_world);

        m_updateCharacterUI     = m_world.GetECSWorld().CreateManager <UpdateCharacterUI>(m_world);
        m_characterCameraSystem = m_world.GetECSWorld().CreateManager <UpdateCharacterCamera>(m_world);

        m_UpdatePresentationRootTransform       = m_world.GetECSWorld().CreateManager <UpdatePresentationRootTransform>(m_world);
        m_UpdatePresentationAttachmentTransform = m_world.GetECSWorld().CreateManager <UpdatePresentationAttachmentTransform>(m_world);

        m_HandleCharacterEvents = m_world.GetECSWorld().CreateManager <HandleCharacterEvents>();

        // Preload all character resources (until we have better streaming solution)
        var charRegistry = resourceSystem.GetResourceRegistry <CharacterTypeRegistry>();

        for (var i = 0; i < charRegistry.entries.Count; i++)
        {
            resourceSystem.LoadSingleAssetResource(charRegistry.entries[i].prefab1P.guid);
            resourceSystem.LoadSingleAssetResource(charRegistry.entries[i].prefabClient.guid);
        }
        var itemRegistry = resourceSystem.GetResourceRegistry <ItemRegistry>();

        for (var i = 0; i < itemRegistry.entries.Count; i++)
        {
            resourceSystem.LoadSingleAssetResource(itemRegistry.entries[i].prefab1P.guid);
            resourceSystem.LoadSingleAssetResource(itemRegistry.entries[i].prefabClient.guid);
        }

        Console.AddCommand("thirdperson", CmdToggleThirdperson, "Toggle third person mode", this.GetHashCode());
    }
コード例 #3
0
    public CharacterModuleClient(GameWorld world, BundledResourceManager resourceSystem) : base(world)
    {
        // Handle controlled entity change
        CharacterBehaviours.CreateControlledEntityChangedSystems(m_world, m_ControlledEntityChangedSystems);
        m_ControlledEntityChangedSystems.Add(m_world.GetECSWorld().CreateManager <UpdateCharacter1PSpawn>(m_world, resourceSystem));
        m_ControlledEntityChangedSystems.Add(m_world.GetECSWorld().CreateManager <PlayerCharacterControlSystem>(m_world));

        // Handle spawn
        CharacterBehaviours.CreateHandleSpawnSystems(m_world, m_HandleSpawnSystems, resourceSystem);

        // Handle despawn
        CharacterBehaviours.CreateHandleDespawnSystems(m_world, m_HandleSpawnSystems);

        // Movement
        CharacterBehaviours.CreateMovementStartSystems(m_world, m_MovementStartSystems);
        CharacterBehaviours.CreateMovementResolveSystems(m_world, m_MovementResolveSystems);

        // Abilities
        CharacterBehaviours.CreateAbilityStartSystems(m_world, m_AbilityStartSystems);
        CharacterBehaviours.CreateAbilityResolveSystems(m_world, m_AbilityResolveSystems);

        // Rollback
        CharacterBehaviours.CreateRollbackSystems(m_world, m_RollbackSystems);
        m_RollbackSystems.Add(m_world.GetECSWorld().CreateManager <CharacterRollback>(m_world));

        // Interpolation
        m_InterpolateSystems.Add(world.GetECSWorld().CreateManager <ReplicatedAbilityInterpolate>(world));
        m_InterpolatePresentationState = m_world.GetECSWorld().CreateManager <InterpolatePresentationState>(m_world);

        m_UpdateCharPresentationState        = m_world.GetECSWorld().CreateManager <UpdateCharPresentationState>(m_world);
        m_ApplyPresentationStateToCharacters = m_world.GetECSWorld().CreateManager <ApplyPresentationStateToCharacters>(m_world);
        m_ApplyPresentationStateToItems      = m_world.GetECSWorld().CreateManager <ApplyPresentationStateToItems>(m_world);
        m_CharacterLateUpdate       = m_world.GetECSWorld().CreateManager <CharacterLateUpdate>(m_world);
        m_characterItemLateUpdate   = m_world.GetECSWorld().CreateManager <CharacterItemLateUpdate>(m_world);
        m_characterItem1PLateUpdate = m_world.GetECSWorld().CreateManager <CharacterItem1PLateUpdate>(m_world);
        m_updateCharacterUI         = m_world.GetECSWorld().CreateManager <UpdateCharacterUI>(m_world);
        characterCameraSystem       = m_world.GetECSWorld().CreateManager <UpdateCharacterCamera>(m_world);
        m_HandleCharacterEvents     = m_world.GetECSWorld().CreateManager <HandleCharacterEvents>();


        // Preload all character resources (until we have better streaming solution)
        var charRegistry = resourceSystem.GetResourceRegistry <CharacterTypeRegistry>();

        for (var i = 0; i < charRegistry.entries.Length; i++)
        {
            resourceSystem.LoadSingleAssetResource(charRegistry.entries[i].prefab1P.guid);
            resourceSystem.LoadSingleAssetResource(charRegistry.entries[i].prefabClient.guid);
        }
        var itemRegistry = resourceSystem.GetResourceRegistry <ItemRegistry>();

        for (var i = 0; i < itemRegistry.entries.Length; i++)
        {
            resourceSystem.LoadSingleAssetResource(itemRegistry.entries[i].prefab1P.guid);
            resourceSystem.LoadSingleAssetResource(itemRegistry.entries[i].prefabClient.guid);
        }
        var heroTypeRegistry = resourceSystem.GetResourceRegistry <HeroTypeRegistry>();

        for (var i = 0; i < heroTypeRegistry.entries.Length; i++)
        {
            for (var j = 0; j < heroTypeRegistry.entries[i].abilities.Length; j++)
            {
                resourceSystem.LoadSingleAssetResource(heroTypeRegistry.entries[i].abilities[j].guid);
            }
        }


        Console.AddCommand("thirdperson", CmdToggleThirdperson, "Toggle third person mode", this.GetHashCode());
    }