Esempio n. 1
0
        public static Bitmap StartPaste()
        {
            currentPaste = (BiomeCopy)System.Windows.Forms.Clipboard.GetData("BiomeCopy");
            if (currentPaste == null)
            {
                return(null);
            }
            if (currentPaste.Empty)
            {
                currentPaste = null;
                return(null);
            }

            return(currentPaste.ToBitmap());
        }
Esempio n. 2
0
        public static void Copy(RegionFile region, Bitmap selection, Color selectionColor)
        {
            BiomeCopy biomeData = new BiomeCopy();

            for (int chunkX = 0; chunkX < 32; chunkX++)
            {
                for (int chunkZ = 0; chunkZ < 32; chunkZ++)
                {
                    Chunk c = region.Chunks[chunkX, chunkZ];
                    if (c == null || c.Root == null)
                    {
                        continue;
                    }

                    byte[] biomes = (byte[])c.Root["Level"]["Biomes"];
                    for (int x = 0; x < 16; x++)
                    {
                        for (int z = 0; z < 16; z++)
                        {
                            if (selection.GetPixel(RegionUtil.OFFSETX + chunkX * 16 + x, RegionUtil.OFFSETY + chunkZ * 16 + z).ToArgb() == selectionColor.ToArgb())
                            {
                                biomeData.Biomes[chunkX * 16 + x, chunkZ * 16 + z] = biomes[x + z * 16];
                                biomeData.Empty = false;
                                if (biomeData.Left > chunkX * 16 + x)
                                {
                                    biomeData.Left = chunkX * 16 + x;
                                }
                                if (biomeData.Right < chunkX * 16 + x)
                                {
                                    biomeData.Right = chunkX * 16 + x;
                                }
                                if (biomeData.Top > chunkZ * 16 + z)
                                {
                                    biomeData.Top = chunkZ * 16 + z;
                                }
                                if (biomeData.Bottom < chunkZ * 16 + z)
                                {
                                    biomeData.Bottom = chunkZ * 16 + z;
                                }
                            }
                        }
                    }
                }
            }
            biomeData.Crop();
            System.Windows.Forms.Clipboard.SetData("BiomeCopy", biomeData);
        }
Esempio n. 3
0
        public static void Copy(RegionFile region, Bitmap selection, Color selectionColor)
        {
            BiomeCopy biomeData = new BiomeCopy();
            for (int chunkX = 0; chunkX < 32; chunkX++)
            {
                for (int chunkZ = 0; chunkZ < 32; chunkZ++)
                {
                    Chunk c = region.Chunks[chunkX, chunkZ];
                    if (c == null || c.Root == null)
                        continue;

                    byte[] biomes = (byte[])c.Root["Level"]["Biomes"];
                    for (int x = 0; x < 16; x++)
                    {
                        for (int z = 0; z < 16; z++)
                        {
                            if (selection.GetPixel(RegionUtil.OFFSETX + chunkX * 16 + x, RegionUtil.OFFSETY + chunkZ * 16 + z).ToArgb() == selectionColor.ToArgb())
                            {
                                biomeData.Biomes[chunkX * 16 + x, chunkZ * 16 + z] = biomes[x + z * 16];
                                biomeData.Empty = false;
                                if (biomeData.Left > chunkX * 16 + x)
                                    biomeData.Left = chunkX * 16 + x;
                                if (biomeData.Right < chunkX * 16 + x)
                                    biomeData.Right = chunkX * 16 + x;
                                if (biomeData.Top > chunkZ * 16 + z)
                                    biomeData.Top = chunkZ * 16 + z;
                                if (biomeData.Bottom < chunkZ * 16 + z)
                                    biomeData.Bottom = chunkZ * 16 + z;
                            }
                        }
                    }
                }
            }
            biomeData.Crop();
            System.Windows.Forms.Clipboard.SetData("BiomeCopy", biomeData);
        }
Esempio n. 4
0
        public static Bitmap StartPaste()
        {
            currentPaste = (BiomeCopy)System.Windows.Forms.Clipboard.GetData("BiomeCopy");
            if (currentPaste == null)
                return null;
            if (currentPaste.Empty)
            {
                currentPaste = null;
                return null;
            }

            return currentPaste.ToBitmap();
        }