public TMTerrainDesc(DatLoader.Entity.TMTerrainDesc terrainDesc) { _terrainDesc = terrainDesc; TerrainType = (LandDefs.TerrainType)terrainDesc.TerrainType; TerrainTex = new TerrainTex(_terrainDesc.TerrainTex); }
public List <TerrainTex> BuildTCodes(List <LandDefs.TerrainType> pcodes, List <uint> tcode, int i) { // some output combinations: // 1,0,0 // 2,0,0 // 4,0,0 // 6,0,0 // 8,0,0 // 12,0,0 // 2,8,0 var terrainTex = Enumerable.Repeat(new TerrainTex(), 3).ToList(); LandDefs.TerrainType t1 = pcodes[i]; LandDefs.TerrainType t2 = 0; terrainTex[0] = GetTerrainTex(t1); for (var k = 0; k < 4; k++) { if (t1 == pcodes[k]) { continue; } if (tcode[0] == 0) { tcode[0] = (uint)(1 << k); t2 = pcodes[k]; terrainTex[1] = GetTerrainTex(t2); } else { if (t2 == pcodes[k] && tcode[0] == (1 << (k - 1))) { tcode[0] += (uint)(1 << k); } else { terrainTex[2] = GetTerrainTex(pcodes[k]); tcode[1] = (uint)(1 << k); } break; } } return(terrainTex); }
public TerrainTex GetTerrainTex(LandDefs.TerrainType t1) { var numTextures = TerrainDesc.Count; if (numTextures == 0) { return(null); } for (var i = 0; i < numTextures; i++) { var terrainDesc = TerrainDesc[i]; if (t1 == terrainDesc.TerrainType) { return(terrainDesc.TerrainTex); } } return(TerrainDesc[0].TerrainTex); }