コード例 #1
0
        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;
        }
コード例 #2
0
ファイル: PlayerEntity.cs プロジェクト: LiveMC/SharpMC
 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;
 }