public static TerrainAlphaMap Read(StreamReader data, StreamWriter outputData, bool write = true) { TerrainAlphaMap obj = new TerrainAlphaMap(); obj.TCode = Utils.readAndWriteUInt32(data, outputData, write); obj.TexGID = Utils.readAndWriteUInt32(data, outputData, write); return(obj); }
public void RefreshTerrainData() { TerrainData terrainDatum = Terrain.activeTerrain.terrainData; TerrainHeightMap component = Terrain.activeTerrain.GetComponent <TerrainHeightMap>(); if (component) { this.heightmap = component.HeightTexture; } TerrainSplatMap terrainSplatMap = Terrain.activeTerrain.GetComponent <TerrainSplatMap>(); if (terrainSplatMap) { this.splatmap0 = terrainSplatMap.SplatTexture0; this.splatmap1 = terrainSplatMap.SplatTexture1; } TerrainAlphaMap terrainAlphaMap = Terrain.activeTerrain.GetComponent <TerrainAlphaMap>(); if (terrainAlphaMap) { this.alphamap = terrainAlphaMap.AlphaTexture; } TerrainBiomeMap terrainBiomeMap = Terrain.activeTerrain.GetComponent <TerrainBiomeMap>(); if (terrainBiomeMap) { this.biomemap = terrainBiomeMap.BiomeTexture; } TerrainTopologyMap terrainTopologyMap = Terrain.activeTerrain.GetComponent <TerrainTopologyMap>(); if (terrainTopologyMap) { this.topologymap = terrainTopologyMap.TopologyTexture; } TerrainWaterMap terrainWaterMap = Terrain.activeTerrain.GetComponent <TerrainWaterMap>(); if (terrainWaterMap) { this.watermap = terrainWaterMap.WaterTexture; } TerrainBlendMap terrainBlendMap = Terrain.activeTerrain.GetComponent <TerrainBlendMap>(); if (terrainBlendMap) { this.blendmap = terrainBlendMap.BlendTexture; } this.size = terrainDatum.size; this.extents = terrainDatum.size * 0.5f; this.offset = (Terrain.activeTerrain.GetPosition() + (terrainDatum.size.XZ3D() * 0.5f)) - base.transform.position; }
public void RefreshTerrainData() { TerrainData terrainData = Terrain.get_activeTerrain().get_terrainData(); TerrainHeightMap component1 = (TerrainHeightMap)((Component)Terrain.get_activeTerrain()).GetComponent <TerrainHeightMap>(); if (Object.op_Implicit((Object)component1)) { this.heightmap = component1.HeightTexture; } TerrainSplatMap component2 = (TerrainSplatMap)((Component)Terrain.get_activeTerrain()).GetComponent <TerrainSplatMap>(); if (Object.op_Implicit((Object)component2)) { this.splatmap0 = component2.SplatTexture0; this.splatmap1 = component2.SplatTexture1; } TerrainAlphaMap component3 = (TerrainAlphaMap)((Component)Terrain.get_activeTerrain()).GetComponent <TerrainAlphaMap>(); if (Object.op_Implicit((Object)component3)) { this.alphamap = component3.AlphaTexture; } TerrainBiomeMap component4 = (TerrainBiomeMap)((Component)Terrain.get_activeTerrain()).GetComponent <TerrainBiomeMap>(); if (Object.op_Implicit((Object)component4)) { this.biomemap = component4.BiomeTexture; } TerrainTopologyMap component5 = (TerrainTopologyMap)((Component)Terrain.get_activeTerrain()).GetComponent <TerrainTopologyMap>(); if (Object.op_Implicit((Object)component5)) { this.topologymap = component5.TopologyTexture; } TerrainWaterMap component6 = (TerrainWaterMap)((Component)Terrain.get_activeTerrain()).GetComponent <TerrainWaterMap>(); if (Object.op_Implicit((Object)component6)) { this.watermap = component6.WaterTexture; } TerrainBlendMap component7 = (TerrainBlendMap)((Component)Terrain.get_activeTerrain()).GetComponent <TerrainBlendMap>(); if (Object.op_Implicit((Object)component7)) { this.blendmap = component7.BlendTexture; } this.size = terrainData.get_size(); this.extents = Vector3.op_Multiply(terrainData.get_size(), 0.5f); this.offset = Vector3.op_Subtraction(Vector3.op_Addition(Terrain.get_activeTerrain().GetPosition(), Vector3.op_Multiply(Vector3Ex.XZ3D(terrainData.get_size()), 0.5f)), ((Component)this).get_transform().get_position()); }
private void DoWork() { Vector3 vector3 = new Vector3((float)(this.width / 2), 0f, (float)(this.height / 2)); Vector3 vector31 = new Vector3(this.pivot.x - vector3.x, 0f, this.pivot.z - vector3.z); TerrainHeightMap heightMap = TerrainMeta.HeightMap; TerrainAlphaMap alphaMap = TerrainMeta.AlphaMap; int num = 0; for (int i = 0; i <= this.height; i++) { int num1 = 0; while (num1 <= this.width) { Vector3 vector32 = new Vector3((float)num1, 0f, (float)i) + vector31; Vector3 vector33 = new Vector3((float)num1, 0f, (float)i) - vector3; float height = heightMap.GetHeight(vector32); if (height < -1f) { this.indices.Add(-1); } else if (!this.alpha || alphaMap.GetAlpha(vector32) >= 0.1f) { if (this.normal) { Vector3 normal = heightMap.GetNormal(vector32); this.normals.Add(normal); } float single = height - this.pivot.y; float single1 = single; vector33.y = single; vector32.y = single1; this.indices.Add(this.vertices.Count); this.vertices.Add(vector33); } else { this.indices.Add(-1); } num1++; num++; } } int num2 = 0; int num3 = 0; while (num3 < this.height) { int num4 = 0; while (num4 < this.width) { int item = this.indices[num2]; int item1 = this.indices[num2 + this.width + 1]; int item2 = this.indices[num2 + 1]; int item3 = this.indices[num2 + 1]; int item4 = this.indices[num2 + this.width + 1]; int item5 = this.indices[num2 + this.width + 2]; if (item != -1 && item1 != -1 && item2 != -1) { this.triangles.Add(item); this.triangles.Add(item1); this.triangles.Add(item2); } if (item3 != -1 && item4 != -1 && item5 != -1) { this.triangles.Add(item3); this.triangles.Add(item4); this.triangles.Add(item5); } num4++; num2++; } num3++; num2++; } }
public static TexMerge Read(StreamReader data, StreamWriter outputData, bool write = true) { TexMerge obj = new TexMerge(); obj.CornerTerrainMaps = new List <TerrainAlphaMap>(); obj.SideTerrainMaps = new List <TerrainAlphaMap>(); obj.RoadMaps = new List <RoadAlphaMap>(); obj.TerrainDescription = new List <TMTerrainDesc>(); //obj.BaseTexSize = Utils.readAndWriteUInt32(data, outputData, write); obj.BaseTexSize = Utils.readAndWriteUInt32(data, outputData, false); outputData.BaseStream.Write(BitConverter.GetBytes((uint)256), 0, 4); uint num_corner_terrain_maps = Utils.readAndWriteUInt32(data, outputData, write); for (uint i = 0; i < num_corner_terrain_maps; i++) { obj.CornerTerrainMaps.Add(TerrainAlphaMap.Read(data, outputData, write)); } uint num_side_terrain_maps = Utils.readAndWriteUInt32(data, outputData, write); for (uint i = 0; i < num_side_terrain_maps; i++) { obj.SideTerrainMaps.Add(TerrainAlphaMap.Read(data, outputData, write)); } uint num_road_maps = Utils.readAndWriteUInt32(data, outputData, write); for (uint i = 0; i < num_road_maps; i++) { obj.RoadMaps.Add(RoadAlphaMap.Read(data, outputData, write)); } uint num_terrain_desc = Utils.readAndWriteUInt32(data, outputData, write); for (uint i = 0; i < num_terrain_desc; i++) { obj.TerrainDescription.Add(TMTerrainDesc.Read(data, outputData, write)); } //TMTerrainDesc BarrenRock = TMTerrainDesc.Read(data, outputData, false); //TMTerrainDesc Grassland = TMTerrainDesc.Read(data, outputData, false); //TMTerrainDesc Ice = TMTerrainDesc.Read(data, outputData, false); //TMTerrainDesc LushGrass = TMTerrainDesc.Read(data, outputData, false); //TMTerrainDesc MarshSparseSwamp = TMTerrainDesc.Read(data, outputData, false); //TMTerrainDesc MudRichDirt = TMTerrainDesc.Read(data, outputData, false); //TMTerrainDesc ObsidianPlain = TMTerrainDesc.Read(data, outputData, false); //TMTerrainDesc PackedDirt = TMTerrainDesc.Read(data, outputData, false); //TMTerrainDesc PatchyDirt = TMTerrainDesc.Read(data, outputData, false); //TMTerrainDesc PatchyGrassland = TMTerrainDesc.Read(data, outputData, false); //TMTerrainDesc SandYellow = TMTerrainDesc.Read(data, outputData, false); //TMTerrainDesc SandGrey = TMTerrainDesc.Read(data, outputData, false); //TMTerrainDesc SandRockStrewn = TMTerrainDesc.Read(data, outputData, false); //TMTerrainDesc SedimentaryRock = TMTerrainDesc.Read(data, outputData, false); //TMTerrainDesc SemiBarrenRock = TMTerrainDesc.Read(data, outputData, false); //TMTerrainDesc Snow = TMTerrainDesc.Read(data, outputData, false); //TMTerrainDesc WaterRunning = TMTerrainDesc.Read(data, outputData, false); //TMTerrainDesc WaterStandingFresh = TMTerrainDesc.Read(data, outputData, false); //TMTerrainDesc WaterShallowSea = TMTerrainDesc.Read(data, outputData, false); //TMTerrainDesc WaterShallowStillSea = TMTerrainDesc.Read(data, outputData, false); //TMTerrainDesc WaterDeepSea = TMTerrainDesc.Read(data, outputData, false); //TMTerrainDesc Forestfloor = TMTerrainDesc.Read(data, outputData, false); //TMTerrainDesc FauxWaterRunning = TMTerrainDesc.Read(data, outputData, false); //TMTerrainDesc SeaSlime = TMTerrainDesc.Read(data, outputData, false); //TMTerrainDesc Argila = TMTerrainDesc.Read(data, outputData, false); //TMTerrainDesc Volcano1 = TMTerrainDesc.Read(data, outputData, false); //TMTerrainDesc Volcano2 = TMTerrainDesc.Read(data, outputData, false); //TMTerrainDesc BlueIce = TMTerrainDesc.Read(data, outputData, false); //TMTerrainDesc Moss = TMTerrainDesc.Read(data, outputData, false); //TMTerrainDesc DarkMoss = TMTerrainDesc.Read(data, outputData, false); //TMTerrainDesc olthoi = TMTerrainDesc.Read(data, outputData, false); //TMTerrainDesc DesolateLands = TMTerrainDesc.Read(data, outputData, false); //TMTerrainDesc Road = TMTerrainDesc.Read(data, outputData, false); //BarrenRock.terrainTex = Snow.terrainTex; //Grassland.terrainTex.TexGID = 0x0500146B; ////LushGrass.terrainTex = Snow.terrainTex; ////PatchyDirt.terrainTex = Snow.terrainTex; //PatchyGrassland.terrainTex = Snow.terrainTex; ////Forestfloor.terrainTex = Ice.terrainTex; //WaterRunning.terrainTex = BlueIce.terrainTex; //WaterStandingFresh.terrainTex = BlueIce.terrainTex; //BarrenRock.Write(outputData); //Grassland.Write(outputData); //Ice.Write(outputData); //LushGrass.Write(outputData); //MarshSparseSwamp.Write(outputData); //MudRichDirt.Write(outputData); //ObsidianPlain.Write(outputData); //PackedDirt.Write(outputData); //PatchyDirt.Write(outputData); //PatchyGrassland.Write(outputData); //SandYellow.Write(outputData); //SandGrey.Write(outputData); //SandRockStrewn.Write(outputData); //SedimentaryRock.Write(outputData); //SemiBarrenRock.Write(outputData); //Snow.Write(outputData); //WaterRunning.Write(outputData); //WaterStandingFresh.Write(outputData); //WaterShallowSea.Write(outputData); //WaterShallowStillSea.Write(outputData); //WaterDeepSea.Write(outputData); //Forestfloor.Write(outputData); //FauxWaterRunning.Write(outputData); //SeaSlime.Write(outputData); //Argila.Write(outputData); //Volcano1.Write(outputData); //Volcano2.Write(outputData); //BlueIce.Write(outputData); //Moss.Write(outputData); //DarkMoss.Write(outputData); //olthoi.Write(outputData); //DesolateLands.Write(outputData); //Road.Write(outputData); return(obj); }
private void DoWork() { Vector3 vector3_1; ((Vector3) ref vector3_1).\u002Ector((float)(this.width / 2), 0.0f, (float)(this.height / 2)); Vector3 vector3_2; ((Vector3) ref vector3_2).\u002Ector((float)(this.pivot.x - vector3_1.x), 0.0f, (float)(this.pivot.z - vector3_1.z)); TerrainHeightMap heightMap = TerrainMeta.HeightMap; TerrainAlphaMap alphaMap = TerrainMeta.AlphaMap; int num1 = 0; for (int index = 0; index <= this.height; ++index) { int num2 = 0; while (num2 <= this.width) { Vector3 worldPos = Vector3.op_Addition(new Vector3((float)num2, 0.0f, (float)index), vector3_2); Vector3 vector3_3 = Vector3.op_Subtraction(new Vector3((float)num2, 0.0f, (float)index), vector3_1); float height = heightMap.GetHeight(worldPos); if ((double)height < -1.0) { this.indices.Add(-1); } else if (this.alpha && (double)alphaMap.GetAlpha(worldPos) < 0.100000001490116) { this.indices.Add(-1); } else { if (this.normal) { this.normals.Add(heightMap.GetNormal(worldPos)); } worldPos.y = (__Null)(double)(vector3_3.y = (__Null)(height - (float)this.pivot.y)); this.indices.Add(this.vertices.Count); this.vertices.Add(vector3_3); } ++num2; ++num1; } } int index1 = 0; int num3 = 0; while (num3 < this.height) { int num2 = 0; while (num2 < this.width) { int index2 = this.indices[index1]; int index3 = this.indices[index1 + this.width + 1]; int index4 = this.indices[index1 + 1]; int index5 = this.indices[index1 + 1]; int index6 = this.indices[index1 + this.width + 1]; int index7 = this.indices[index1 + this.width + 2]; if (index2 != -1 && index3 != -1 && index4 != -1) { this.triangles.Add(index2); this.triangles.Add(index3); this.triangles.Add(index4); } if (index5 != -1 && index6 != -1 && index7 != -1) { this.triangles.Add(index5); this.triangles.Add(index6); this.triangles.Add(index7); } ++num2; ++index1; } ++num3; ++index1; } }
private void DoWork() { Vector3 vector = new Vector3(width / 2, 0f, height / 2); Vector3 vector2 = new Vector3(pivot.x - vector.x, 0f, pivot.z - vector.z); TerrainHeightMap heightMap = TerrainMeta.HeightMap; TerrainAlphaMap alphaMap = TerrainMeta.AlphaMap; int num = 0; for (int i = 0; i <= height; i++) { int num2 = 0; while (num2 <= width) { Vector3 worldPos = new Vector3(num2, 0f, i) + vector2; Vector3 item = new Vector3(num2, 0f, i) - vector; float num3 = heightMap.GetHeight(worldPos); if (num3 < -1f) { indices.Add(-1); } else if (alpha && alphaMap.GetAlpha(worldPos) < 0.1f) { indices.Add(-1); } else { if (normal) { Vector3 item2 = heightMap.GetNormal(worldPos); normals.Add(item2); } worldPos.y = (item.y = num3 - pivot.y); indices.Add(vertices.Count); vertices.Add(item); } num2++; num++; } } int num4 = 0; int num5 = 0; while (num5 < height) { int num6 = 0; while (num6 < width) { int num7 = indices[num4]; int num8 = indices[num4 + width + 1]; int num9 = indices[num4 + 1]; int num10 = indices[num4 + 1]; int num11 = indices[num4 + width + 1]; int num12 = indices[num4 + width + 2]; if (num7 != -1 && num8 != -1 && num9 != -1) { triangles.Add(num7); triangles.Add(num8); triangles.Add(num9); } if (num10 != -1 && num11 != -1 && num12 != -1) { triangles.Add(num10); triangles.Add(num11); triangles.Add(num12); } num6++; num4++; } num5++; num4++; } }