Exemple #1
0
        public BuildAction(StructureDefinition.StructureType structureType, IFaction owner)
        {
            _structureType = structureType;
            _owner         = owner;

            _spawnManager = Locator.Instance.Find <ISpawnManager>();
            _structureDefinitionManager = Locator.Instance.Find <IStructureDefinitionManager>();
        }
Exemple #2
0
 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);
        }