void Dispose(bool disposing) { if (disposed) { return; } if (disposing) { Viewer.Dispose(); Preview.Dispose(); GridBlockMesh.Dispose(); BasicBlockEffect.Dispose(); } disposed = true; }
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); }
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(); }