OpenMinecraft.InfdevHandler.NewChunk C# (CSharp) Method

NewChunk() public method

public NewChunk ( long X, long Y ) : Chunk
X long
Y long
return Chunk
		public override Chunk NewChunk(long X, long Y)
        {
            NbtCompound c = NewNBTChunk(X, Y);
            string f = GetChunkFilename((int)X, (int)Y);

            // Create folder first.
            string d = Path.GetDirectoryName(f);
            
            if(!Directory.Exists(d))
                Directory.CreateDirectory(d);

            // Get around crash where Windows doesn't like creating new files in Write mode for some fucking stupid reason
            {
                FileInfo fi = new FileInfo(f);
                FileStream fs = fi.Create();
                fs.Close();
            }

            // Create the damn file.
            NbtFile cf = new NbtFile(f);
            cf.RootTag = c;
            cf.SaveFile(f);
            cf.Dispose(); // Pray.

            return GetChunk(X, Y);
        }

Usage Example

Ejemplo n.º 1
0
        public void TEST002_SaveMap()
        {
            if (Directory.Exists("002"))
                Directory.Delete("002", true);
            Directory.CreateDirectory("002"); // Saves map here.

            InfdevHandler mh = new InfdevHandler();
            mh.Save("002/level.dat");
            mh.SetDimension(0);

            Chunk cnkA = mh.NewChunk(0, 0);
            cnkA.Blocks[0, 0, 0] = 0x01;
            cnkA.Blocks[0, 0, 1] = 0x02;
            cnkA.Blocks[0, 0, 2] = 0x03;
            cnkA.Blocks[0, 0, 3] = 0x04;
            cnkA.Save();

            FileInfo fA = new FileInfo(cnkA.Filename);

            Assert.Greater(fA.Length, 0, "System writing zero-length chunks.");

            Chunk cnkB = mh.GetChunk(0, 0);
            Assert.AreEqual(cnkB.Blocks[0, 0, 0], 0x01);
            Assert.AreEqual(cnkB.Blocks[0, 0, 1], 0x02);
            Assert.AreEqual(cnkB.Blocks[0, 0, 2], 0x03);
            Assert.AreEqual(cnkB.Blocks[0, 0, 3], 0x04);

            Directory.Delete("002", true);
        }
All Usage Examples Of OpenMinecraft.InfdevHandler::NewChunk