Initial Commit
This commit is contained in:
commit
ee5c2f922d
2255 changed files with 547750 additions and 0 deletions
32
Assets/Scripts/Installers/GoapInstaller.cs
Normal file
32
Assets/Scripts/Installers/GoapInstaller.cs
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
using AI;
|
||||
using AI.FSM;
|
||||
using UnityEngine;
|
||||
using Util;
|
||||
using Zenject;
|
||||
|
||||
namespace DefaultNamespace.Installers
|
||||
{
|
||||
public class GoapInstaller : MonoInstaller
|
||||
{
|
||||
[SerializeField] private AttackPlayerGoapSystem.Settings attackPlayerSettings;
|
||||
[SerializeField] private MoveStateSystem.Settings moveStateSystemSettings;
|
||||
[SerializeField] private SearchTargetGoapActionSystem.Settings findTargetSettings;
|
||||
[SerializeField] private ReloadGoapActionSystem.Settings reloadSettings;
|
||||
|
||||
public override void InstallBindings()
|
||||
{
|
||||
// Settings
|
||||
Container.Bind<MoveStateSystem.Settings>().FromInstance(moveStateSystemSettings);
|
||||
Container.Bind<AttackPlayerGoapSystem.Settings>().FromInstance(attackPlayerSettings);
|
||||
Container.Bind<SearchTargetGoapActionSystem.Settings>().FromInstance(findTargetSettings);
|
||||
Container.Bind<ReloadGoapActionSystem.Settings>().FromInstance(reloadSettings);
|
||||
|
||||
// Systems
|
||||
Container.Bind<MoveStateSystem>().FromEcs();
|
||||
Container.Bind<AttackPlayerGoapSystem>().FromEcs();
|
||||
Container.Bind<RangeAttackPlayerGoapActionSystem>().FromEcs();
|
||||
Container.Bind<SearchTargetGoapActionSystem>().FromEcs();
|
||||
Container.Bind<ReloadGoapActionSystem>().FromEcs();
|
||||
}
|
||||
}
|
||||
}
|
||||
3
Assets/Scripts/Installers/GoapInstaller.cs.meta
Normal file
3
Assets/Scripts/Installers/GoapInstaller.cs.meta
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 5766c5538509482d948c3adeb066b421
|
||||
timeCreated: 1533385798
|
||||
24
Assets/Scripts/Installers/NavigationInstaller.cs
Normal file
24
Assets/Scripts/Installers/NavigationInstaller.cs
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
using DefaultNamespace.Navigation;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Tilemaps;
|
||||
using Util;
|
||||
using Zenject;
|
||||
|
||||
namespace DefaultNamespace.Installers
|
||||
{
|
||||
public class NavigationInstaller : MonoInstaller
|
||||
{
|
||||
[SerializeField] private NavigationAgentDriverSystem.Settings navigationAgentDriverSettings;
|
||||
[SerializeField] private Tilemap navigationTilemap;
|
||||
|
||||
public override void InstallBindings()
|
||||
{
|
||||
// Settings
|
||||
Container.Bind<NavigationAgentDriverSystem.Settings>().FromInstance(navigationAgentDriverSettings);
|
||||
|
||||
// Systems
|
||||
Container.BindInterfacesAndSelfTo<NavigationBuilder>().AsSingle().WithArguments(navigationTilemap);
|
||||
Container.Bind<NavigationAgentDriverSystem>().FromEcs();
|
||||
}
|
||||
}
|
||||
}
|
||||
11
Assets/Scripts/Installers/NavigationInstaller.cs.meta
Normal file
11
Assets/Scripts/Installers/NavigationInstaller.cs.meta
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 14dead9d46ab9e849ab5cbfa75a3a910
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
165
Assets/Scripts/Installers/PlayerInstaller.cs
Normal file
165
Assets/Scripts/Installers/PlayerInstaller.cs
Normal file
|
|
@ -0,0 +1,165 @@
|
|||
using Cinemachine;
|
||||
using Items;
|
||||
using System;
|
||||
using Trive.Mono.Utils;
|
||||
using Tween;
|
||||
using Unity.Entities;
|
||||
using UnityEngine;
|
||||
using UnityEngine.AddressableAssets;
|
||||
using UnityEngine.EventSystems;
|
||||
using UnityEngine.InputSystem;
|
||||
using Util;
|
||||
using Zenject;
|
||||
using Hash128 = Unity.Entities.Hash128;
|
||||
using Random = UnityEngine.Random;
|
||||
|
||||
namespace DefaultNamespace.Installers
|
||||
{
|
||||
public class PlayerInstaller : MonoInstaller
|
||||
{
|
||||
[SerializeField] private PlayerMoveSystem.Settings playerMoveManagerSettings;
|
||||
[SerializeField] private PlayerLookSystem.Settings playerLookManagerSettings;
|
||||
[SerializeField] private TilemapManager.Settings tilemapManagerSettings;
|
||||
[SerializeField] private PlayerWeaponSystem.Settings playerWeaponManagerSettings;
|
||||
[SerializeField] private ProjectileCastSystem.Settings projectileSystemSettings;
|
||||
[SerializeField] private PlayerVitalsSystem.Settings vitalsSystemSettings;
|
||||
[SerializeField] private ItemPickupSystem.Settings pickupSystemSettings;
|
||||
[SerializeField] private DebugSpawnSystem.Settings debugSpawnSystemSettings;
|
||||
[SerializeField] private PlayerDeathSystem.Settings playerDeathSystemSettings;
|
||||
[SerializeField] private PlayerCoverSystem.Settings playerCoverSystemSettings;
|
||||
[SerializeField] private PlayerEmotionSystem.Settings playerEmotionSystemSettings;
|
||||
[SerializeField] private AudioListener audioListener;
|
||||
[SerializeField] private new Camera camera;
|
||||
[SerializeField] private EventSystem eventSystem;
|
||||
[SerializeField] private AssetReferenceGrenadeItem GrenadeItem;
|
||||
|
||||
[SerializeField] private HealthItemRef HealthItem;
|
||||
|
||||
[SerializeField] private InputActionAsset inputMap;
|
||||
[SerializeField] private int maxPlayerInventory;
|
||||
[SerializeField] private GameObject playerPrefab;
|
||||
|
||||
[SerializeField] private AssetReferenceItemPrefab[] StartingItems;
|
||||
[SerializeField] private AssetReferenceRangedWeapon StartingWeapon;
|
||||
[SerializeField] private CinemachineVirtualCamera virtualCamera;
|
||||
|
||||
public override void InstallBindings()
|
||||
{
|
||||
// Settings
|
||||
Container.Bind<PlayerEmotionSystem.Settings>().FromInstance(playerEmotionSystemSettings);
|
||||
Container.Bind<PlayerCoverSystem.Settings>().FromInstance(playerCoverSystemSettings);
|
||||
Container.Bind<PlayerDeathSystem.Settings>().FromInstance(playerDeathSystemSettings);
|
||||
Container.Bind<DebugSpawnSystem.Settings>().FromInstance(debugSpawnSystemSettings);
|
||||
Container.Bind<ItemPickupSystem.Settings>().FromInstance(pickupSystemSettings);
|
||||
Container.Bind<PlayerVitalsSystem.Settings>().FromInstance(vitalsSystemSettings);
|
||||
Container.Bind<ProjectileCastSystem.Settings>().FromInstance(projectileSystemSettings);
|
||||
Container.Bind<PlayerWeaponSystem.Settings>().FromInstance(playerWeaponManagerSettings);
|
||||
Container.Bind<PlayerMoveSystem.Settings>().FromInstance(playerMoveManagerSettings);
|
||||
Container.Bind<PlayerLookSystem.Settings>().FromInstance(playerLookManagerSettings);
|
||||
Container.Bind<TilemapManager.Settings>().FromInstance(tilemapManagerSettings);
|
||||
|
||||
// Systems
|
||||
Container.Bind<EventSystem>().FromInstance(eventSystem);
|
||||
Container.Bind<InputActionAsset>().FromInstance(inputMap);
|
||||
Container.Bind<InputActions>().AsSingle();
|
||||
Container.Bind<AudioListener>().FromInstance(audioListener);
|
||||
Container.Bind<Camera>().FromInstance(camera);
|
||||
Container.Bind<PlayerFacade>()
|
||||
.FromMethod(
|
||||
c =>
|
||||
{
|
||||
var spawnPoints = GameObject.FindGameObjectsWithTag("SpawnPoint");
|
||||
var player = c.Container.InstantiatePrefab(
|
||||
playerPrefab,
|
||||
spawnPoints[Random.Range(0, spawnPoints.Length)].transform.position,
|
||||
Quaternion.identity,
|
||||
c.Container.DefaultParent);
|
||||
var facade = player.GetComponent<PlayerFacade>();
|
||||
|
||||
return facade;
|
||||
})
|
||||
.AsSingle();
|
||||
Container.Bind<Entity>()
|
||||
.WithId("player")
|
||||
.FromMethod(c => BootstrapPlayer(c.Container.Resolve<PlayerFacade>(), c.Container.Resolve<EntityManager>()))
|
||||
.AsSingle()
|
||||
.NonLazy();
|
||||
Container.Bind<CinemachineVirtualCamera>()
|
||||
.FromResolveGetter<PlayerFacade>(
|
||||
f =>
|
||||
{
|
||||
virtualCamera.Follow = f.transform;
|
||||
return virtualCamera;
|
||||
})
|
||||
.AsSingle()
|
||||
.NonLazy();
|
||||
Container.Bind<TweenSystem>().FromEcs();
|
||||
Container.Bind<PlayerMoveSystem>().FromEcs();
|
||||
Container.BindInterfacesTo<PlayerMoveSystem>().FromResolve();
|
||||
Container.Bind<PlayerLookSystem>().FromEcs();
|
||||
Container.Bind<IInitializable>().To<PlayerLookSystem>().FromResolve();
|
||||
Container.BindInterfacesAndSelfTo<TilemapManager>().AsSingle();
|
||||
Container.Bind<PlayerWeaponSystem>().FromEcs();
|
||||
Container.Bind<ProjectileCastSystem>().FromEcs();
|
||||
Container.Bind<PlayerVitalsSystem>().FromEcs();
|
||||
Container.Bind<ItemPickupSystem>().FromEcs();
|
||||
Container.Bind<AmmoPickupSystem>().FromEcs();
|
||||
Container.Bind<EnemySpawnSystem>().FromEcs();
|
||||
Container.Bind<InventoryPickupSystem>().FromEcs();
|
||||
Container.Bind<PlayerAnimationSystem>().FromEcs();
|
||||
Container.Bind<DebugSpawnSystem>().FromEcs();
|
||||
Container.Bind<PlayerActionMapSystem>().FromEcs();
|
||||
Container.Bind<PlayerDeathSystem>().FromEcs();
|
||||
Container.Bind<PlayerCoverSystem>().FromEcs();
|
||||
Container.Bind<PlayerCoverSystemRaycast>().FromEcs();
|
||||
Container.Bind<PlayerCoverSystemWeaponAdjust>().FromEcs();
|
||||
Container.Bind<PlayerEmotionSystem>().FromEcs();
|
||||
}
|
||||
|
||||
private Entity BootstrapPlayer(PlayerFacade playerFacade, EntityManager entityManager)
|
||||
{
|
||||
var playerEntity = playerFacade.gameObject.ConvertToEntity(entityManager.World);
|
||||
playerFacade.GetComponent<ActorFacade>().Entity = playerEntity;
|
||||
playerFacade.GetComponent<ActorFacade>().World = entityManager.World;
|
||||
|
||||
entityManager.AddComponent<ActorMeleeData>(playerEntity);
|
||||
entityManager.AddComponent<ActorBoundsData>(playerEntity);
|
||||
entityManager.AddComponent<RigidBody2DData>(playerEntity);
|
||||
entityManager.AddComponent<ActorWeaponAccuracyData>(playerEntity);
|
||||
entityManager.AddComponent<LocalPlayerData>(playerEntity);
|
||||
entityManager.AddComponent<PlayerData>(playerEntity);
|
||||
entityManager.AddComponentData(playerEntity, new ActorData { Health = playerFacade.MaxHealth });
|
||||
entityManager.AddComponent<PlayerInput>(playerEntity);
|
||||
entityManager.AddComponent<AnimatorStateData>(playerEntity);
|
||||
entityManager.AddComponent<Rotation2D>(playerEntity);
|
||||
|
||||
entityManager.AddBuffer<Slot>(playerEntity);
|
||||
var fixedArray = entityManager.GetBuffer<Slot>(playerEntity);
|
||||
for (var i = 0; i < maxPlayerInventory - (int)SlotType.Health; i++)
|
||||
{
|
||||
if (i < StartingItems.Length)
|
||||
{
|
||||
fixedArray.Add(new Slot { Item = new ItemData(new Hash128(StartingItems[i].AssetGUID), 1) });
|
||||
}
|
||||
else
|
||||
{
|
||||
fixedArray.Add(new Slot { Item = ItemData.Empty });
|
||||
}
|
||||
}
|
||||
fixedArray.Add(new Slot { Type = SlotType.Health, Item = new ItemData(new Hash128(HealthItem.AssetGUID), 4) });
|
||||
fixedArray.Add(new Slot { Type = SlotType.Grenade, Item = new ItemData(new Hash128(GrenadeItem.AssetGUID), 16) });
|
||||
fixedArray.Add(new Slot { Type = SlotType.MeleeWeapon });
|
||||
fixedArray.Add(new Slot { Type = SlotType.RangedWeapon, Item = new ItemData(new Hash128(StartingWeapon.AssetGUID), 1) });
|
||||
return playerEntity;
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
public class HealthItemRef : AssetReferenceT<HealthKitItem>
|
||||
{
|
||||
public HealthItemRef(string guid)
|
||||
: base(guid)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
3
Assets/Scripts/Installers/PlayerInstaller.cs.meta
Normal file
3
Assets/Scripts/Installers/PlayerInstaller.cs.meta
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 7bee0215648c492fa7c4e30a74f65158
|
||||
timeCreated: 1530879208
|
||||
53
Assets/Scripts/Installers/UserInterfaceInstaller.cs
Normal file
53
Assets/Scripts/Installers/UserInterfaceInstaller.cs
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
using Events;
|
||||
using UI;
|
||||
using Unity.Entities;
|
||||
using UnityEngine;
|
||||
using Util;
|
||||
using Zenject;
|
||||
|
||||
namespace DefaultNamespace.Installers
|
||||
{
|
||||
public class UserInterfaceInstaller : MonoInstaller
|
||||
{
|
||||
[SerializeField] private CursorManager.Settings cursorManagerSettings;
|
||||
[SerializeField] private HudManager.Settings hudManagerSettings;
|
||||
[SerializeField] private ArHudManager.Settings arHudManagerSettings;
|
||||
[SerializeField] private InventoryUiSystem.Settings inventoryUiSystemSettings;
|
||||
[SerializeField] private ItemDraggingSystem.Settings itemDraggingSystemSettings;
|
||||
[SerializeField] private GameObject InventoryScreen;
|
||||
|
||||
public override void InstallBindings()
|
||||
{
|
||||
// Settings
|
||||
Container.Bind<CursorManager.Settings>().FromInstance(cursorManagerSettings);
|
||||
Container.Bind<HudManager.Settings>().FromInstance(hudManagerSettings);
|
||||
Container.Bind<ArHudManager.Settings>().FromInstance(arHudManagerSettings);
|
||||
Container.Bind<InventoryUiSystem.Settings>().FromInstance(inventoryUiSystemSettings);
|
||||
Container.Bind<ItemDraggingSystem.Settings>().FromInstance(itemDraggingSystemSettings);
|
||||
|
||||
// Systems
|
||||
Container.Bind<CursorManager>().FromEcs();
|
||||
Container.Bind<IInitializable>().To<CursorManager>().FromResolve();
|
||||
Container.Bind<HudManager>().FromEcs();
|
||||
Container.Bind<ArHudManager>().FromEcs();
|
||||
Container.Bind<IInitializable>().To<ArHudManager>().FromResolve();
|
||||
Container.Bind<InventoryUiSystem>().FromEcs();
|
||||
Container.Bind<GameObject>()
|
||||
.FromResolveGetter<EntityManager>(
|
||||
manager =>
|
||||
{
|
||||
var inventoryWindowEntity = GameObjectEntity.AddToEntityManager(manager, InventoryScreen);
|
||||
manager.AddComponent(inventoryWindowEntity, ComponentType.ReadWrite<WindowComponentData>());
|
||||
manager.AddSharedComponentData(inventoryWindowEntity, new WindowButtonPropertiesData { Button = "Inventory" });
|
||||
manager.AddSharedComponentData(
|
||||
inventoryWindowEntity,
|
||||
new InventoryWindowData { Inventory = Container.ResolveId<Entity>("player") });
|
||||
return InventoryScreen;
|
||||
})
|
||||
.AsSingle()
|
||||
.NonLazy();
|
||||
Container.Bind<ItemDraggingSystem>().FromEcs();
|
||||
Container.BindInterfacesTo<ItemDraggingSystem>().FromResolve();
|
||||
}
|
||||
}
|
||||
}
|
||||
3
Assets/Scripts/Installers/UserInterfaceInstaller.cs.meta
Normal file
3
Assets/Scripts/Installers/UserInterfaceInstaller.cs.meta
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 1054e96b50cd4613b436304b4055ebe6
|
||||
timeCreated: 1530994985
|
||||
34
Assets/Scripts/Installers/WeaponsInstaller.cs
Normal file
34
Assets/Scripts/Installers/WeaponsInstaller.cs
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
using UnityEngine;
|
||||
using Util;
|
||||
using Zenject;
|
||||
|
||||
namespace DefaultNamespace.Installers
|
||||
{
|
||||
public class WeaponsInstaller : MonoInstaller
|
||||
{
|
||||
[SerializeField] private ActorGrenadeSystem.Settings grenadeSystemSettings;
|
||||
[SerializeField] private FragGrenadeSystem.Settings fragGrenadeSystemSettings;
|
||||
[SerializeField] private WeaponFiringSystem.Settings weaponFiringSystemSettings;
|
||||
[SerializeField] private ActorWeaponSystem.Settings actorWeaponSystemSettings;
|
||||
[SerializeField] private ActorWeaponInitializationSystem.Settings weaponInitializationSystemSettings;
|
||||
|
||||
public override void InstallBindings()
|
||||
{
|
||||
// Settings
|
||||
Container.Bind<ActorGrenadeSystem.Settings>().FromInstance(grenadeSystemSettings);
|
||||
Container.Bind<FragGrenadeSystem.Settings>().FromInstance(fragGrenadeSystemSettings);
|
||||
Container.Bind<WeaponFiringSystem.Settings>().FromInstance(weaponFiringSystemSettings);
|
||||
Container.Bind<ActorWeaponSystem.Settings>().FromInstance(actorWeaponSystemSettings);
|
||||
Container.Bind<ActorWeaponInitializationSystem.Settings>().FromInstance(weaponInitializationSystemSettings);
|
||||
|
||||
// Systems
|
||||
Container.Bind<ActorGrenadeSystem>().FromEcs();
|
||||
Container.Bind<FragGrenadeSystem>().FromEcs();
|
||||
Container.Bind<WeaponReloadSystem>().FromEcs();
|
||||
Container.Bind<WeaponAnimationSystem>().FromEcs();
|
||||
Container.Bind<WeaponFiringSystem>().FromEcs();
|
||||
Container.Bind<ActorWeaponSystem>().FromEcs();
|
||||
Container.Bind<ActorWeaponInitializationSystem>().FromEcs();
|
||||
}
|
||||
}
|
||||
}
|
||||
3
Assets/Scripts/Installers/WeaponsInstaller.cs.meta
Normal file
3
Assets/Scripts/Installers/WeaponsInstaller.cs.meta
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 8be4986248214de39da2cff4be3baee8
|
||||
timeCreated: 1533643786
|
||||
81
Assets/Scripts/Installers/WorldInstaller.cs
Normal file
81
Assets/Scripts/Installers/WorldInstaller.cs
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
using DefaultNamespace.Util;
|
||||
using System;
|
||||
using System.Reflection;
|
||||
using System.Runtime.Serialization;
|
||||
using Unity.Entities;
|
||||
using UnityEngine;
|
||||
using UnityEngine.AddressableAssets;
|
||||
using Util;
|
||||
using Zenject;
|
||||
|
||||
namespace DefaultNamespace.Installers
|
||||
{
|
||||
public class WorldInstaller : MonoInstaller
|
||||
{
|
||||
[SerializeField] private SoundManager.Settings soundManagerSettings;
|
||||
[SerializeField] private EnemyDriverSystem.Settings enemyDriverSystemSettings;
|
||||
[SerializeField] private ActorGroundCheckSystem.Settings groundCheckSystemSettings;
|
||||
[SerializeField] private ActorAimingAnimationSystem.Settings actorAimingAnimationSystemSettings;
|
||||
[SerializeField] private ActorAnimationSystem.Settings actorAnimationSystemSettings;
|
||||
[SerializeField] private EnemyDeathSystem.Settings enemyDeathSystemSettings;
|
||||
[SerializeField] private ItemContainerFactory.Settings itemContainerFactorySettings;
|
||||
[SerializeField] private ActorMeleeSystem.Settings actorMeleeSystemSettings;
|
||||
[SerializeField] private ActorDeathSystem.Settings actorDeathSystemSettings;
|
||||
[SerializeField] private AssetReferenceItemPrefab healthKit;
|
||||
|
||||
public override void InstallBindings()
|
||||
{
|
||||
// Settings
|
||||
Container.Bind<ActorAnimationSystem.Settings>().FromInstance(actorAnimationSystemSettings);
|
||||
Container.Bind<ActorAimingAnimationSystem.Settings>().FromInstance(actorAimingAnimationSystemSettings);
|
||||
Container.Bind<ActorGroundCheckSystem.Settings>().FromInstance(groundCheckSystemSettings);
|
||||
Container.Bind<EnemyDriverSystem.Settings>().FromInstance(enemyDriverSystemSettings);
|
||||
Container.Bind<EnemyDeathSystem.Settings>().FromInstance(enemyDeathSystemSettings);
|
||||
Container.Bind<ItemContainerFactory.Settings>().FromInstance(itemContainerFactorySettings);
|
||||
Container.Bind<ActorMeleeSystem.Settings>().FromInstance(actorMeleeSystemSettings);
|
||||
Container.Bind<ActorDeathSystem.Settings>().FromInstance(actorDeathSystemSettings);
|
||||
Container.Bind<SoundManager.Settings>().FromInstance(soundManagerSettings);
|
||||
|
||||
// Systems
|
||||
Container.Bind<EntityManager>().FromResolveGetter<Unity.Entities.World>(w => w.EntityManager);
|
||||
Container.Bind<Unity.Entities.World>().FromInstance(Unity.Entities.World.DefaultGameObjectInjectionWorld);
|
||||
Container.Bind<ActorAnimationSystem>().FromEcs();
|
||||
Container.Bind<SoundManager>().AsSingle();
|
||||
Container.Bind<ActorAimingAnimationSystem>().FromEcs();
|
||||
Container.Bind<ActorGroundCheckSystem>().FromEcs();
|
||||
Container.Bind<EnemyDriverSystem>().FromEcs();
|
||||
Container.Bind<EnemyDeathSystem>().FromEcs();
|
||||
Container.Bind<ItemContainerFactory>().AsSingle();
|
||||
Container.Bind<ItemDropSystem>().FromEcs();
|
||||
Container.Bind<ActorMeleeSystem>().FromEcs();
|
||||
Container.Bind(binder => binder.AllTypes().DerivingFrom<IHashes>())
|
||||
.FromMethodUntyped(
|
||||
c =>
|
||||
{
|
||||
var hashes = FormatterServices.GetUninitializedObject(c.MemberType);
|
||||
var fields = hashes.GetType().GetFields(BindingFlags.Instance | BindingFlags.Public);
|
||||
foreach (var field in fields)
|
||||
{
|
||||
if (field.FieldType == typeof(int))
|
||||
{
|
||||
field.SetValue(hashes, Animator.StringToHash(field.Name));
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new Exception($"Only int types allowed in {c.MemberType} for field {field.Name}");
|
||||
}
|
||||
}
|
||||
return hashes;
|
||||
})
|
||||
.AsTransient();
|
||||
Container.Bind<CollisionSoundSystem>().FromEcs();
|
||||
Container.Bind<ParticleSystemFactory>().AsSingle();
|
||||
Container.Bind<ActorDeathSystem>().FromEcs();
|
||||
Container.Bind<ParticleCollisionSystem>().FromEcs();
|
||||
Container.Bind<ItemUseSystem>().FromEcs();
|
||||
Container.Bind<IItemUseSystem>().To<HealthPackUseSystem>().AsSingle();
|
||||
Container.Bind<IItemUseSystem>().To<GrenadeUseSystem>().AsSingle();
|
||||
Container.Bind<AssetReferenceT<ItemPrefab>>().WithId(AssetManifest.HealthKit).FromInstance(healthKit);
|
||||
}
|
||||
}
|
||||
}
|
||||
3
Assets/Scripts/Installers/WorldInstaller.cs.meta
Normal file
3
Assets/Scripts/Installers/WorldInstaller.cs.meta
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 3e15ef1ad21741a68784c7a4ddfd9718
|
||||
timeCreated: 1531150718
|
||||
Loading…
Add table
Add a link
Reference in a new issue