Exemple #1
0
        void Dispose(bool disposing)
        {
            if (disposed)
            {
                return;
            }

            if (disposing)
            {
                Viewer.Dispose();
                Preview.Dispose();
                GridBlockMesh.Dispose();
                BasicBlockEffect.Dispose();
            }

            disposed = true;
        }
Exemple #2
0
        public Scene(Workspace workspace)
        {
            if (workspace == null)
            {
                throw new ArgumentNullException("workspace");
            }
            this.workspace = workspace;

            graphicsDevice = workspace.GraphicsDevice;

            projection = new PerspectiveFov
            {
                NearPlaneDistance = 0.01f,
                FarPlaneDistance  = 100
            };

            CameraMoveScale = 0.05f;

            CameraView = new ChaseView
            {
                Distance = 3.5f,
                Angle    = new Vector2(-MathHelper.PiOver4 * 0.5f, MathHelper.PiOver4)
            };
            CurrentView = CameraView;

            DirectionalLightModel0 = new DirectionalLightModel
            {
                Enabled      = true,
                DiffuseColor = Vector3.One
            };
            DirectionalLightModel1 = new DirectionalLightModel {
                Enabled = false
            };
            DirectionalLightModel2 = new DirectionalLightModel {
                Enabled = false
            };

            AmbientLightColor = new Vector3(0.05333332f, 0.09882354f, 0.1819608f);

            GridBlockMesh = new GridBlockMesh(graphicsDevice, gridSize, cellSize, Color.White);
        }
Exemple #3
0
        public Workspace(Game game)
        {
            if (game == null)
            {
                throw new ArgumentNullException("game");
            }
            Game = game;

            GraphicsDevice = game.GraphicsDevice;

            interBlockMeshLoadQueue = new InterBlockMeshLoadQueue();
            blockMeshLoadQueue      = new BlockMeshLoadQueue(100);

            StorageBlockService = game.Services.GetRequiredService <IStorageBlockService>();

            Viewer = new Viewer(this);

            Preview = new Preview(this);

            GridBlockMesh = new GridBlockMesh(GraphicsDevice, 16, 0.1f, Color.White);

            BasicBlockEffect = new BasicBlockEffect(GraphicsDevice);
            BasicBlockEffect.EnableDefaultLighting();
        }