Example #1
0
 public static TileEntity FromNbt(NbtCompound entityTag, out Vector3 position)
 {
     position = Vector3.Zero;
     var id = entityTag.Get<NbtString>("id").Value;
     Type type = (from e in dummyInstances where e.Id == id select e.GetType()).FirstOrDefault();
     if (type == null)
         return null;
     
     var serializer = new NbtSerializer(type);
     
     var entity = (TileEntity)serializer.Deserialize(entityTag);
     
     position = new Vector3(
         entityTag.Get<NbtInt>("x").Value,
         entityTag.Get<NbtInt>("y").Value,
         entityTag.Get<NbtInt>("z").Value);
     return entity;
 }
Example #2
0
 public void TestSignTile()
 {
     SignTileEntity entity = new SignTileEntity();
     entity.Text1 = "Test1";
     entity.Text2 = "Test2";
     entity.Text3 = "Test3";
     entity.Text4 = "Test4";
     
     var serializer = new NbtSerializer(typeof(SignTileEntity));
     
     var obj = serializer.Serialize(entity);
     
     var result = (SignTileEntity)serializer.Deserialize(obj);
     
     Assert.AreEqual(entity.Id, result.Id);
     Assert.AreEqual(entity.Text1, result.Text1);
     Assert.AreEqual(entity.Text2, result.Text2);
     Assert.AreEqual(entity.Text3, result.Text3);
     Assert.AreEqual(entity.Text4, result.Text4);
 }
Example #3
0
        private void LoadFromFile(string directory)
        {
            NbtFile file = new NbtFile();
            using (var stream = File.Open(Path.Combine(LevelDirectory, "level.dat"), FileMode.Open))
                file.LoadFromStream(stream, NbtCompression.None, null);
            var data = file.RootTag.Get<NbtCompound>("Data");
            var serializer = new NbtSerializer(typeof(SavedLevel));
            SavedLevel level = (SavedLevel)serializer.Deserialize(data);
            Name = level.LevelName;
            Time = level.Time;
            GameMode = (GameMode)level.GameMode;
            MapFeatures = level.MapFeatures;
            Seed = level.Seed;
            // Find world generator
            string generatorName = level.GeneratorName;
            WorldGenerator = GetGenerator(generatorName);
            WorldGenerator.Seed = Seed;
                GeneratorOptions = level.GeneratorOptions;
            WorldGenerator.Initialize(this);

            SpawnPoint = level.SpawnPoint;

            World = new World(this, WorldGenerator, Path.Combine(directory, "region"));
        }