void GenerateWorld(float[][] solid_layers, float[][] liquid_layers) { if (m_use_world_gen) { GenerateWorld(); } else if (m_use_height_map) { var height_map_tex = Resources.Load <Texture2D>("heightmap"); var pixels = height_map_tex.GetPixels(); var height_map_width = height_map_tex.width; Resources.UnloadAsset(height_map_tex); var densities = new float[m_grid_width_in_voxels * m_grid_depth_in_voxels]; for (int y = 0; y < m_grid_depth_in_voxels; ++y) { for (int x = 0; x < m_grid_width_in_voxels; ++x) { var density_idx = y * m_grid_width_in_voxels + x; var pixel_idx = y * height_map_width + x; var density = pixels[pixel_idx].r; densities[density_idx] = density; } } m_solid_simulation.ApplyHeightMap(densities); m_solid_mesher.TriangulateAll(); m_liquid_mesher.TriangulateAll(); } else { // Make just a solid floor. for (int layer_idx = 20; layer_idx < 22; ++layer_idx) { var layer = solid_layers[layer_idx]; for (int i = 0; i < layer.Length; ++i) { layer[i] = 1; } } var sdf = new DensityField(solid_layers, m_grid_width_in_voxels, m_grid_depth_in_voxels); var ldf = new DensityField(liquid_layers, m_grid_width_in_voxels, m_grid_depth_in_voxels); var l = 22; var x = 130; var y = 250; { sdf.Line(x + 0, y + 0, x + 2, y + 0, l, 1f); sdf.Line(x + 0, y + 2, x + 2, y + 2, l, 1f); sdf.Line(x + 0, y + 0, x + 0, y + 2, l, 1f); sdf.Line(x + 2, y + 0, x + 2, y + 2, l, 1f); ldf.Line(x + 1, y + 1, x + 1, y + 1, l, 1f); } x += 4; { sdf.Line(x + 0, y + 0, x + 1, y + 0, l, 0.96f); sdf.Line(x + 0, y + 1, x + 1, y + 1, l, 0.96f); } m_solid_mesher.TriangulateAll(); m_liquid_mesher.TriangulateAll(); } }
void ReleaseDesignerOutlets() { if (DeleteButton != null) { DeleteButton.Dispose(); DeleteButton = null; } if (DensityField != null) { DensityField.Dispose(); DensityField = null; } if (DoneSwich != null) { DoneSwich.Dispose(); DoneSwich = null; } if (FlipNOField != null) { FlipNOField.Dispose(); FlipNOField = null; } if (fuelViewCell != null) { fuelViewCell.Dispose(); fuelViewCell = null; } if (KilosField != null) { KilosField.Dispose(); KilosField = null; } if (LiterField != null) { LiterField.Dispose(); LiterField = null; } if (OrderNamePicker != null) { OrderNamePicker.Dispose(); OrderNamePicker = null; } if (OrderTableView != null) { OrderTableView.Dispose(); OrderTableView = null; } if (SaveButton != null) { SaveButton.Dispose(); SaveButton = null; } }