Пример #1
0
        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(','));
             * }*/
        }