public BuildAction(StructureDefinition.StructureType structureType, IFaction owner) { _structureType = structureType; _owner = owner; _spawnManager = Locator.Instance.Find <ISpawnManager>(); _structureDefinitionManager = Locator.Instance.Find <IStructureDefinitionManager>(); }
public StructureManager(IStructureDefinitionManager structureDefinitionManager, IStructureFactory structureFactory, IFactionManager factionManager, IMapManager mapManager) { _structures = new List <IStructure>(); _structureFactory = structureFactory; _factionManager = factionManager; _mapManager = mapManager; _structureDefinitionManager = structureDefinitionManager; }
public override void Initialize() { _structureDefinitionManager = Locate <IStructureDefinitionManager>(); var pools = new List <(string pool, int size)> { (UIManager.HighlightAsset, 500), ("RemoveMarker", 50), }; foreach (var def in _structureDefinitionManager.StructureDefinitions) { pools.Add((def.Asset, def.PoolSize)); } foreach (var(pool, size) in pools) { Debug.Log($"Init {pool}"); var queue = new List <GameObject>(); _objectPools.Add(pool, queue); for (var i = 0; i < size; i++) { InitModel(pool, Vector3.zero, (obj) => { _objectPools[pool].Add(obj); obj.name = $"{pool}-{_objectPools[pool].Count}"; InitOutline(obj); obj.SetActive(false); }); } } MapEventManager.OnChunkRenderCreated += MapEventManager_OnChunkRenderCreated; MapEventManager.OnChunkRenderActivated += MapEventManager_OnChunkRenderActivated; MapEventManager.OnChunkRenderDeactivated += MapEventManager_OnChunkRenderDeactivated; StructureEventManager.OnStructurePlanned += StructureEventManager_OnStructurePlanned; StructureEventManager.OnStructureDestroyed += StructureEventManager_OnStructureDestroyed; StructureEventManager.OnShowHighlight += (structure) => SetOutlineOnStructure(structure, true); StructureEventManager.OnHideHighlight += (structure) => SetOutlineOnStructure(structure, false); }