Ejemplo n.º 1
0
    private void BecomeWaterVoxelMass()
    {
        WaterVoxelMass mass       = WaterVoxelManager.Instance.SpawnWaterVoxelMass();
        WaterVoxel     waterVoxel = WaterVoxelManager.Instance.SpawnWaterVoxel(this.transform.position);

        mass.AddVoxel(waterVoxel);
        ObjectPooler.Instance.Reclaim(this.gameObject);
    }
Ejemplo n.º 2
0
    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)));
        }
    }
Ejemplo n.º 3
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);
            }
        }
    }
Ejemplo n.º 4
0
 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);
 }
Ejemplo n.º 5
0
 private void OnEnable()
 {
     this.Mass = null;
     this.meshRenderer.material = GameManager.Instance.WaterMaterial;
 }