private void InjectDependencies(
     ITerrainAlphamapLogic alphamapLogic, ITerrainHeightLogic heightLogic,
     IMapRenderConfig renderConfig, IWaterTriangulator waterTriangulator,
     IHexFeatureManager hexFeatureManager, ICultureTriangulator cultureTriangulator, IHexCellShaderData shaderData,
     DiContainer container, IHexMeshFactory hexMeshFactory, IRoadTriangulator roadTriangulator,
     IMarshTriangulator marshTriangulator, IOasisTriangulator oasisTriangulator,
     ITerrainBaker terrainBaker, IOrientationBaker orientationBaker, IGeometry2D geometry2D,
     IPointOrientationLogic pointOrientationLogic, IFullMapRefresher fullMapRefresher,
     [Inject(Id = "Feature Container")] Transform featureContainer, MapRenderingSignals mapRenderingSignals,
     IVisibilityResponder visibilityResponder
     )
 {
     AlphamapLogic         = alphamapLogic;
     HeightLogic           = heightLogic;
     RenderConfig          = renderConfig;
     WaterTriangulator     = waterTriangulator;
     HexFeatureManager     = hexFeatureManager;
     CultureTriangulator   = cultureTriangulator;
     ShaderData            = shaderData;
     HexMeshFactory        = hexMeshFactory;
     RoadTriangulator      = roadTriangulator;
     MarshTriangulator     = marshTriangulator;
     OasisTriangulator     = oasisTriangulator;
     TerrainBaker          = terrainBaker;
     OrientationBaker      = orientationBaker;
     Geometry2D            = geometry2D;
     PointOrientationLogic = pointOrientationLogic;
     FullMapRefresher      = fullMapRefresher;
     FeatureContainer      = featureContainer;
     MapRenderingSignals   = mapRenderingSignals;
     VisibilityResponder   = visibilityResponder;
 }
        public VisibilityResponder(
            IPossessionRelationship <ICivilization, IUnit> unitPossessionCanon,
            IPossessionRelationship <ICivilization, ICity> cityPossessionCanon,
            IVisibilityCanon visibilityCanon, IExplorationCanon explorationCanon,
            ICityLineOfSightLogic cityLineOfSightLogic,
            IUnitVisibilityLogic unitLineOfSightLogic,
            IUnitFactory unitFactory,
            ICityFactory cityFactory,
            IHexGrid grid,
            [Inject(Id = "Coroutine Invoker")] MonoBehaviour coroutineInvoker,
            IHexCellShaderData hexCellShaderData,
            UnitSignals unitSignals,
            CitySignals citySignals,
            HexCellSignals cellSignals,
            CivilizationSignals civSignals,
            VisibilitySignals visibilitySignals,
            CoreSignals coreSignals,
            MapRenderingSignals mapRenderingSignals
            )
        {
            UnitPossessionCanon  = unitPossessionCanon;
            CityPossessionCanon  = cityPossessionCanon;
            VisibilityCanon      = visibilityCanon;
            ExplorationCanon     = explorationCanon;
            CityLineOfSightLogic = cityLineOfSightLogic;
            UnitLineOfSightLogic = unitLineOfSightLogic;
            UnitFactory          = unitFactory;
            CityFactory          = cityFactory;
            Grid              = grid;
            CoroutineInvoker  = coroutineInvoker;
            HexCellShaderData = hexCellShaderData;

            unitSignals.LeftLocation.Subscribe(OnUnitLeftLocation);
            unitSignals.EnteredLocation.Subscribe(OnUnitEnteredLocation);

            citySignals.LostCellFromBoundaries.Subscribe(OnCityLostCell);
            citySignals.GainedCellToBoundaries.Subscribe(OnCityGainedCell);

            cellSignals.TerrainChanged.Subscribe(data => TryResetCellVisibility());
            cellSignals.ShapeChanged.Subscribe(data => TryResetCellVisibility());
            cellSignals.VegetationChanged.Subscribe(data => TryResetCellVisibility());

            civSignals.CivLosingCity.Subscribe(OnCivLosingCity);
            civSignals.CivGainedCity.Subscribe(OnCivGainedCity);
            civSignals.CivDiscoveredTech.Subscribe(data => TryResetResourceVisibility());
            civSignals.CivUndiscoveredTech.Subscribe(data => TryResetResourceVisibility());

            visibilitySignals.CellVisibilityModeChanged.Subscribe(unit => TryResetCellVisibility());
            visibilitySignals.CellExplorationModeChanged.Subscribe(unit => TryResetCellVisibility());
            visibilitySignals.ResourceVisibilityModeChanged.Subscribe(unit => TryResetResourceVisibility());

            coreSignals.ActivePlayerChanged.Subscribe(OnActivePlayerChanged);

            mapRenderingSignals.MapFinishedLoading.Subscribe(Unit => TryResetCellVisibility());
            mapRenderingSignals.MapFinishedLoading.Subscribe(Unit => TryResetResourceVisibility());
        }
Exemple #3
0
 public void InjectDependencies(
     IWorkerSlotFactory workerSlotFactory, ICellModificationLogic cellModificationLogic,
     IMapRenderConfig renderConfig, HexCellSignals cellSignals, IGeometry2D geometry2D,
     IHexCellShaderData shaderData, IMemoryPool <MapChunk> mapChunkPool,
     IHexMeshFactory hexMeshFactory
     )
 {
     WorkerSlotFactory     = workerSlotFactory;
     CellModificationLogic = cellModificationLogic;
     RenderConfig          = renderConfig;
     CellSignals           = cellSignals;
     Geometry2D            = geometry2D;
     ShaderData            = shaderData;
     MapChunkPool          = mapChunkPool;
     HexMeshFactory        = hexMeshFactory;
 }