Exemple #1
0
        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);
        }
Exemple #2
0
        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;
        }