Beispiel #1
0
        public PostEffectComponent(D3DEngine engine, [Named("SkyBuffer")] StaggingBackBuffer backBufferClouds)
        {
            _engine                     = engine;
            _backBufferClouds           = backBufferClouds;
            _engine.ScreenSize_Updated += engine_ScreenSize_Updated;

            _registeredEffects = new Dictionary <string, IPostEffect>();

            this.DrawOrders.UpdateIndex(0, 11, "FROM");                     //Call at the beginning of what must be draw into this texture.
            _postEffectEndingDrawId = this.DrawOrders.AddIndex(9999, "TO"); //Call when the drawing is finished.
        }
Beispiel #2
0
        public Clouds(D3DEngine engine, [Named("SkyBuffer")] StaggingBackBuffer skyBackBuffer, IClock worldclock, WorldFocusManager worldFocusManager, CameraManager <ICameraFocused> cameraManager, IWeather weather)
        {
            if (engine == null)
            {
                throw new ArgumentNullException("engine");
            }
            _d3DEngine         = engine;
            _skyBackBuffer     = skyBackBuffer;
            _worldclock        = worldclock;
            _worldFocusManager = worldFocusManager;
            _cameraManager     = cameraManager;
            _weather           = weather;

            _skyBackBuffer.OnStaggingBackBufferChanged += _skyBackBuffer_OnStaggingBackBufferChanged;
        }
 private void ChangeLandscapeFog(string landscapeFogType)
 {
     if (isGameRunning)
     {
         var skyDome = _iocContainer.Get <ISkyDome>();
         if (landscapeFogType == "SkyFog")
         {
             StaggingBackBuffer skyBackBuffer = _iocContainer.Get <StaggingBackBuffer>("SkyBuffer");
             skyBackBuffer.EnableComponent(true);
             skyDome.DrawOrders.UpdateIndex(0, 40);
         }
         else
         {
             StaggingBackBuffer skyBackBuffer = _iocContainer.Get <StaggingBackBuffer>("SkyBuffer");
             skyBackBuffer.DisableComponent();
             skyDome.DrawOrders.UpdateIndex(0, 990);
         }
     }
 }
Beispiel #4
0
        public WorldChunks(D3DEngine d3dEngine,
                           CameraManager <ICameraFocused> camManager,
                           VisualWorldParameters visualWorldParameters,
                           WorldFocusManager worldFocusManager,
                           GameStatesManager gameStates,
                           IClock gameClock,
                           SingleArrayChunkContainer cubesHolder,
                           ILandscapeManager2D landscapeManager,
                           IChunkMeshManager chunkMeshManager,
                           IChunksWrapper chunkWrapper,
                           ILightingManager lightingManager,
                           IChunkStorageManager chunkstorage,
                           ServerComponent server,
                           IWeather weather,
                           [Named("SkyBuffer")] StaggingBackBuffer skyBackBuffer,
                           VoxelModelManager voxelModelManager,
                           IChunkEntityImpactManager chunkEntityImpactManager,
                           InputsManager inputsManager
                           )
        {
            _server                   = server;
            _chunkstorage             = chunkstorage;
            _d3dEngine                = d3dEngine;
            _worldFocusManager        = worldFocusManager;
            _gameStates               = gameStates;
            _camManager               = camManager;
            _gameClock                = gameClock;
            VisualWorldParameters     = visualWorldParameters;
            _cubesHolder              = cubesHolder;
            _chunkWrapper             = chunkWrapper;
            _landscapeManager         = landscapeManager;
            _chunkMeshManager         = chunkMeshManager;
            _lightingManager          = lightingManager;
            _weather                  = weather;
            _skyBackBuffer            = skyBackBuffer;
            _voxelModelManager        = voxelModelManager;
            _chunkEntityImpactManager = chunkEntityImpactManager;
            _inputsManager            = inputsManager;

            _skyBackBuffer.OnStaggingBackBufferChanged += _skyBackBuffer_OnStaggingBackBufferChanged;

            SliceViewChunks = 25;

            DrawStaticInstanced = true;

            if (visualWorldParameters.WorldParameters.Configuration is UtopiaWorldConfiguration)
            {
                _utopiaProcessorParam = ((UtopiaWorldConfiguration)visualWorldParameters.WorldParameters.Configuration).ProcessorParam;
            }

            //Self injecting inside components, to avoid circular dependency
            _chunkWrapper.WorldChunks     = this;
            lightingManager.WorldChunk    = this;
            _chunkMeshManager.WorldChunks = this;
            landscapeManager.WorldChunks  = this;

            DrawOrders.UpdateIndex(SOLID_DRAW, 100, "SOLID_DRAW");
            TRANSPARENT_DRAW = DrawOrders.AddIndex(1050, "TRANSPARENT_DRAW");
            ENTITIES_DRAW    = DrawOrders.AddIndex(101, "ENTITIES_DRAW");

            this.IsDefferedLoadContent = true;
        }