public override ChunkColumn LoadChunk(int x, int z) { var u = Globals.Decompress(File.ReadAllBytes(_folder + "/" + x + "." + z + ".cfile")); var reader = new DataBuffer(u); var blockLength = reader.ReadInt(); var block = reader.ReadUShortLocal(blockLength); var metalength = reader.ReadInt(); var blockmeta = reader.ReadUShortLocal(metalength); var skyLength = reader.ReadInt(); var skylight = reader.Read(skyLength); var lightLength = reader.ReadInt(); var blocklight = reader.Read(lightLength); var biomeIdLength = reader.ReadInt(); var biomeId = reader.Read(biomeIdLength); var cc = new ChunkColumn { Blocks = block, Metadata = blockmeta, Blocklight = {Data = blocklight}, Skylight = {Data = skylight}, BiomeId = biomeId, X = x, Z = z }; Debug.WriteLine("We should have loaded " + x + ", " + z); return cc; }
public void LoadPlayer() { string savename = ServerSettings.OnlineMode ? Uuid : Username; if (File.Exists("Players/" + savename + ".pdata")) { byte[] data = File.ReadAllBytes("Players/" + savename + ".pdata"); data = Globals.Decompress(data); DataBuffer reader = new DataBuffer(data); double x = reader.ReadDouble(); double y = reader.ReadDouble(); double z = reader.ReadDouble(); float yaw = reader.ReadFloat(); float pitch = reader.ReadFloat(); bool onGround = reader.ReadBool(); KnownPosition = new PlayerLocation(x, y, z) {Yaw = yaw, Pitch = pitch, OnGround = onGround}; Gamemode = (Gamemode) reader.ReadVarInt(); int healthLength = reader.ReadVarInt(); byte[] healthData = reader.Read(healthLength); int inventoryLength = reader.ReadVarInt(); byte[] inventoryData = reader.Read(inventoryLength); HealthManager.Import(healthData); Inventory.Import(inventoryData); } else { KnownPosition = Level.GetSpawnPoint(); } Loaded = true; }