protected static ItemStack ReadItem(StreamWrapper buff) { var id = buff.ReadShort(); var item = ItemStack.CreateItemStack(id); if (item == null) { return(null); } item.ItemCount = buff.ReadByte(); item.ItemDamage = buff.ReadShort(); var nbtLength = buff.ReadShort(); if (nbtLength < 0) { return(item); } item.NbtData = buff.ReadBytes(nbtLength); var reader = new NbtFile() { BigEndian = true }; reader.LoadFromBuffer(item.NbtData, 0, nbtLength, NbtCompression.AutoDetect); item.NbtRoot = reader.RootTag; return(item); }
public void LoadWorld(int id) { Logger.Log("Loading world id " + id, true); //Clear ALL enemies/projectiles/tiles/etc entityLivings.Clear(); tiles.Clear(); if (id == 0) { player = Player.CreatePlayer(new Vector2(0, 0), 1); TileStatic.CreateTileStatic(new Rectangle(0, 0, 512, 512), Assets.tile_grass1, 0); TileStatic.CreateTileStatic(new Rectangle(512, 0, 64, 512), Assets.tile_rockwall, 4, true, Directions.West); TileStatic.CreateTileStatic(new Rectangle(0, 512, 512, 64), Assets.tile_rockwall, 4, true, Directions.North); TileStatic.CreateTileStatic(new Rectangle(512, 512, 64, 64), Assets.tile_rockwall, 4, true, Directions.NorthWest); //TileTrigger.CreateTileTrigger(new Rectangle(64, 0, 64, 64), true, 5, "<intro_3>"); TileTrigger.CreateTileTriggerDialogue(new Rectangle(64, 0, 64, 64), false, "<default>"); TileTrigger.CreateTileTriggerKillBox(new Rectangle(128, 0, 64, 64), false); ItemEntity.CreateItemEntity(new Vector2(576 + 64, 576), Vector2.Zero, ItemStack.CreateItemStack(ItemWeapon.CreateItemWeapon(0), 1), 1); ItemEntity.CreateItemEntity(new Vector2(576 + 128, 576 - 36), Vector2.Zero, ItemStack.CreateItemStack(ItemWeapon.CreateItemWeapon(1), 58), 1); Enemy.CreateEnemy(new Vector2(576, 0), 2, 0); ambientColor = new Color(25, 25, 50, 100); } if (id == 1) { player = Player.CreatePlayer(Vector2.Zero, 1); Enemy.CreateEnemy(new Vector2(500, 300), 1, 0); Enemy.CreateEnemy(new Vector2(300, 500), 1, 1); TileStatic.CreateTileStatic(new Rectangle(128, 128, 64, 64), "tile_grass1", 0); TileStatic.CreateTileStatic(new Rectangle(128, 360, 128, 64), "tile_grass1", 0); } drawnTileRenderTarget = false; }