Beispiel #1
0
        public static bool RenderTopo(Rendering.BlockColors bc, WorldVoxelEx wv, string RegionDirectory, string ImgsDirectory)
        {
            if (wv.R > 1)
            {
                return(false);
            }

            byte[][] MapData   = new byte[][] { new byte[512 * 512], new byte[512 * 512] };
            Color[]  BlockData = new Color[512 * 512];

            RegionMCA mca = new RegionMCA(RegionDirectory);


            mca.LoadRegion(wv.Xs, wv.Zs);

            try
            {
                Rendering.MCRegionMaps.RenderDataFromRegion(bc, mca, MapData, BlockData);
                Rendering.MCRegionMaps.RenderTopoPngFromRegion(MapData, ImgsDirectory, wv.Xs, wv.Zs);
                Rendering.MCRegionMaps.RenderBlockPngFromRegion(MapData, BlockData, ImgsDirectory, wv.Xs, wv.Zs);


                FileInfo mcaH = new FileInfo(Path.Combine(RegionDirectory, $"r{wv.BaseFilename()}.hdt"));

                using (FileStream tempFS = mcaH.Create())
                {
                    tempFS.Write(MapData[0], 0, 512 * 512);
                    tempFS.Write(MapData[1], 0, 512 * 512);
                    tempFS.Flush();
                    tempFS.Close();
                }

                mcaH.LastWriteTime = mca.LastModified;

                FileInfo lwFS = new FileInfo(Path.Combine(ImgsDirectory, $"topo{wv.BaseFilename()}.png"));
                if (lwFS.Exists)
                {
                    lwFS.LastWriteTime = mca.LastModified;
                }

                lwFS = new FileInfo(Path.Combine(ImgsDirectory, $"tile{wv.BaseFilename()}.png"));
                if (lwFS.Exists)
                {
                    lwFS.LastWriteTime = mca.LastModified;
                }

                return(true);
            }
            catch (Exception ex)
            {
                Debug.Print(ex.Message);
                return(false);
            }
        }
Beispiel #2
0
        public static bool RenderTopo(Rendering.BlockColors bc, WorldVoxelEx mr, string RegionDirectory, string ImgsDirectory)
        {
            if (mr.R > 1)
            {
                return(false);
            }

            byte[][] MapData   = new byte[][] { new byte[512 * 512], new byte[512 * 512] };
            Color[]  BlockData = new Color[512 * 512];

            RegionMCA mca = new RegionMCA(RegionDirectory);


            mca.LoadRegion(mr.Xs, mr.Zs);

            Rendering.MCRegionMaps.RenderDataFromRegion(bc, mca, MapData, BlockData);
            Rendering.MCRegionMaps.RenderTopoPngFromRegion(MapData, ImgsDirectory, mr.Xs, mr.Zs);
            //LibMCRcon.Rendering.MCRegionMaps.RenderBlockPngFromRegion(MapData, BlockData, ImgsDir.FullName, RV);


            FileInfo mcaH = new FileInfo(Path.Combine(RegionDirectory, $"r{mr.BaseFilename()}.hdt"));

            using (FileStream tempFS = mcaH.Create())
            {
                tempFS.Write(MapData[0], 0, 512 * 512);
                tempFS.Write(MapData[1], 0, 512 * 512);
                tempFS.Flush();
                tempFS.Close();
            }

            mcaH.LastWriteTime = mca.LastModified;

            FileInfo lwFS = new FileInfo(Path.Combine(ImgsDirectory, $"topo{mr.BaseFilename()}.png"));

            if (lwFS.Exists)
            {
                lwFS.LastWriteTime = mca.LastModified;
            }

            return(true);
        }
Beispiel #3
0
        public bool SyncAnvilToRender(Rendering.BlockColors bc, string RegionDirectory, string ImgsDirectory)
        {
            int renderCount = 0;

            if (SourceList[0].R == 1)
            {
                foreach (var mf in SourceList)
                {
                    FileInfo mca      = new FileInfo(Path.Combine(RegionDirectory, $"r{mf.BaseFilename()}.mca"));
                    FileInfo lwFStile = new FileInfo(Path.Combine(ImgsDirectory, $"tile{mf.BaseFilename()}.png"));
                    FileInfo lwFStopo = new FileInfo(Path.Combine(ImgsDirectory, $"topo{mf.BaseFilename()}.png"));

                    if (mca.Exists)
                    {
                        if (lwFStile.Exists)
                        {
                            lwFStile.LastWriteTime = mca.LastWriteTime;
                            if (lwFStopo.Exists ? true : RenderTopo(bc, mf, RegionDirectory, ImgsDirectory))
                            {
                                ++renderCount;
                            }
                        }
                        else if (!lwFStopo.Exists)
                        {
                            RenderTopo(bc, mf, RegionDirectory, ImgsDirectory);
                        }
                    }
                }
            }

            if (renderCount == SourceList.Count)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }