Ejemplo n.º 1
0
    public List <TerrainMod> GetTerrainMods()
    {
        List <TerrainMod> rtn = new List <TerrainMod>();
        //find out which is the highest terrain - this is used if we raise the terrain so that only the highest one is raised
        TerrainListItem HighestTerrain = TerrainController.Instance.TerrainList.OrderByDescending(item => item.TData.GetHeight(this.TerrainXBase, this.TerrainYBase)).First();

        foreach (TerrainListItem TLI in TerrainController.Instance.TerrainList)
        {
            TerrainMod Mod = new TerrainMod();
            Mod.TerrainId    = TLI.TerrainId;
            Mod.TerrainXBase = this.TerrainXBase;
            Mod.TerrainYBase = this.TerrainYBase;
            Mod.Heights      = new float[this.Heights.GetLength(1), this.Heights.GetLength(0)];
            bool ThisTerrainWasCut = false;
            float[,] PrevHeights = TLI.TData.GetHeights(this.TerrainXBase, this.TerrainYBase, this.Heights.GetLength(0), this.Heights.GetLength(1));
            for (int j = 0; j < this.Heights.GetLength(0); j++)
            {
                for (int k = 0; k < this.Heights.GetLength(1); k++)
                {
                    if (this.Heights[j, k] == 0)
                    {
                        Mod.Heights[k, j] = PrevHeights[k, j];
                    }
                    else
                    {
                        float NewHeight = (this.Heights[j, k] - TLI.T.transform.position.y) / TLI.yRes;
                        if (!this.RaiseAllowed)
                        {
                            if (NewHeight < PrevHeights[k, j])
                            {
                                Mod.Heights[k, j] = NewHeight;
                                ThisTerrainWasCut = true;
                            }
                            else
                            {
                                Mod.Heights[k, j] = PrevHeights[k, j];
                            }
                        }
                        else  //if RaiseAllowed
                        {
                            if (TLI == HighestTerrain)
                            {
                                Mod.Heights[k, j] = NewHeight;
                            }
                            else
                            {
                                Mod.Heights[k, j] = NewHeight * 0.95f;
                            }
                            ThisTerrainWasCut = true;
                        }
                    }
                }
            }
            if (ThisTerrainWasCut)
            {
                rtn.Add(Mod);
            }
        }
        return(rtn);
    }
Ejemplo n.º 2
0
	// Use this for initialization
	void Start () {
		if(!inMenu) {
			songAverage = Global.songTotalAverage;
		} else {
			songAverage = .0000001f;
		}
		
		tMod = gameObject.GetComponent<TerrainMod>();
		//Debug.Log(songAverage);
		oldValues = new float[512];
		currentValues = new float[512];
		deltas = new float[512];
		currentPower = new float[4];
		source = audioObj.audio;
		//skyParticles = skyParticlesObj.particleSystem;
		theTrails = new Trail[trailObjects.Length];
		for(int i = 0; i < trailObjects.Length; i++) {
			theTrails[i] = trailObjects[i].GetComponent<Trail>();
		}
	}