public SplatmappedSurfacePostProcessor(string importedFilePath, int ditherLimit, int localRegionX, int localRegionZ) { var desc = new SplatmapDescriptorReader(importedFilePath + ".splat", true); string root = Path.GetDirectoryName(importedFilePath); foreach (string k in desc.maps.Keys) { List <SplatmapMapping> mappings = new List <SplatmapMapping>(); foreach (var sm in desc.layers.Keys) { if (sm.mapName == k) { mappings.Add(sm); } } mappings.Add(new SplatmapMapping(k, Color.Black, 0)); maps.Add(k, SplatmapImporter.GetFixedSplatmap(root + "\\" + desc.maps[k], mappings.ToArray(), ditherLimit, localRegionX, localRegionZ)); } foreach (var sm in desc.layers.Keys) { layers.Add((byte)sm.value, desc.layers[sm].Split(',')); } Program.WriteLine("Splatmapping enabled"); if (!string.IsNullOrWhiteSpace(desc.watermapPath)) { waterSurfaceMap = HeightmapImporter.ImportHeightmapRaw(root + "\\" + desc.watermapPath, localRegionX * 512, localRegionZ * 512, 512, 512); waterLevel = desc.waterLevel; waterBlock = desc.waterBlock; Program.WriteLine("Water mapping enabled"); } if (!string.IsNullOrWhiteSpace(desc.biomeMapperPath)) { biomePostProcessor = new SplatmappedBiomePostProcessor(root + "\\" + desc.biomeMapperPath, 0, localRegionX, localRegionZ); Program.WriteLine("Biome mapping & decoration enabled"); } }
public SplatmappedBiomePostProcessor(string filepath, int ditherLimit, int localRegionX, int localRegionZ) { var desc = new SplatmapDescriptorReader(filepath, false); biomes = desc.biomes; foreach (string k in desc.maps.Keys) { string path = Path.GetDirectoryName(filepath); List <SplatmapMapping> mappings = new List <SplatmapMapping>(); foreach (var sm in desc.layers.Keys) { if (sm.mapName == k) { mappings.Add(sm); } } mappings.Add(new SplatmapMapping(k, Color.Black, 0)); maps.Add(k, SplatmapImporter.GetFixedSplatmap(path + "\\" + desc.maps[k], mappings.ToArray(), ditherLimit, localRegionX, localRegionZ)); } /*foreach(var sm in desc.layers.Keys) { * layers.Add((byte)sm.value, desc.layers[sm].Split(',')); * }*/ }