private void BecomeWaterVoxelMass() { WaterVoxelMass mass = WaterVoxelManager.Instance.SpawnWaterVoxelMass(); WaterVoxel waterVoxel = WaterVoxelManager.Instance.SpawnWaterVoxel(this.transform.position); mass.AddVoxel(waterVoxel); ObjectPooler.Instance.Reclaim(this.gameObject); }
private void InitWave() { GameManager.Instance.Reset(); WaterVoxelMass mass = this.SpawnWaterVoxelMass(); for (int i = 0; i <= 256; i += this.VoxelSize) { mass.AddVoxel(this.SpawnWaterVoxel(new Vector3(i, 0, 0))); } }
private void OnTriggerEnter(Collider other) { if (other.gameObject.tag == "WaterVoxel") { WaterVoxelMass otherMass = other.GetComponent <WaterVoxel>().Mass; if (this.Mass.ID > otherMass.ID) { this.Mass.AbsorbMass(otherMass); } } }
public void AbsorbMass(WaterVoxelMass otherMass) { foreach (WaterVoxel voxel in otherMass.allVoxels) { this.allVoxels.Add(voxel); voxel.Mass = this; voxel.transform.parent = this.transform; } foreach (WaterVoxel voxel in otherMass.activeVoxels) { this.activeVoxels.Add(voxel); } otherMass.activeVoxels.Clear(); otherMass.allVoxels.Clear(); ObjectPooler.Instance.Reclaim(otherMass.gameObject); }
private void OnEnable() { this.Mass = null; this.meshRenderer.material = GameManager.Instance.WaterMaterial; }