Пример #1
0
        public void SetItem(Item item)
        {
            var newItem = new NbtCompound("Item")
            {
                new NbtShort("id", item.Id),
                new NbtShort("Damage", item.Metadata),
                new NbtByte("Count", 1)
            };

            if (item.ExtraData != null)
            {
                var newTag = (NbtTag) item.ExtraData.Clone();
                newTag.Name = "tag";
                newItem.Add(newTag);
            }

            var comp = new NbtCompound(string.Empty)
            {
                new NbtString("id", Id),
                new NbtInt("x", Coordinates.X),
                new NbtInt("y", Coordinates.Y),
                new NbtInt("z", Coordinates.Z),
            };

            comp["Item"] = newItem;
            Compound = comp;
        }
Пример #2
0
		public PlayerInventory(Player player)
		{
			Player = player;

			Slots = Enumerable.Repeat(new ItemStack(), InventorySize).ToList();
			//Slots = Enumerable.Repeat(new ItemStack(new ItemIronSword(0), 1), InventorySize).ToList();
			//Slots[Slots.Count-10] = new ItemStack(new ItemDiamondAxe(0), 1);
			//Slots[Slots.Count-9] = new ItemStack(new ItemDiamondAxe(0), 1);
			//int c = -1;
			//Slots[++c] = new ItemStack(new ItemIronSword(0), 1);
			//Slots[++c] = new ItemStack(new ItemBow(0), 1);
			//Slots[++c] = new ItemStack(new ItemSnowball(0), 64);
			//Slots[++c] = new ItemStack(new ItemEgg(0), 64);
			//Slots[++c] = new ItemStack(262, 32);
			//Slots[++c] = new ItemStack(new ItemBucket(10), 1);
			//Slots[++c] = new ItemStack(new ItemChest(0), 1);
			////Slots[++c] = new ItemStack(new ItemBlock(new DiamondOre(), 0), 64);
			//Slots[++c] = new ItemStack(new ItemBlock(new GoldBlock(), 0), 64);
			//Slots[++c] = new ItemStack(new ItemBlock(new GoldBlock(), 0), 64);
			//Slots[++c] = new ItemStack(new ItemBlock(new GoldBlock(), 0), 64);
			//Slots[++c] = new ItemStack(new ItemBlock(new GoldBlock(), 0), 64);
			//Slots[++c] = new ItemStack(new ItemBlock(new GoldBlock(), 0), 64);
			//Slots[++c] = new ItemStack(new ItemBlock(new GoldBlock(), 0), 64);
			//Slots[++c] = new ItemStack(new ItemBlock(new GoldBlock(), 0), 64);
			//Slots[++c] = new ItemStack(new ItemBlock(new GoldBlock(), 0), 64);
			//Slots[++c] = new ItemStack(new ItemBlock(new GoldBlock(), 0), 64);
			//Slots[++c] = new ItemStack(new ItemBlock(new GoldBlock(), 0), 64);
			//Slots[++c] = new ItemStack(new ItemBlock(new GoldBlock(), 0), 64);
			//Slots[++c] = new ItemStack(new ItemBlock(new GoldBlock(), 0), 64);
			//Slots[++c] = new ItemStack(new ItemBlock(new GoldBlock(), 0), 64);
			//Slots[++c] = new ItemStack(new ItemBlock(new GoldBlock(), 0), 64);
			//Slots[++c] = new ItemStack(new ItemBlock(new GoldBlock(), 0), 64);
			//Slots[++c] = new ItemStack(new ItemBlock(new CoalBlock(), 0), 64);

			//Slots = new List<ItemStack>();
			//for (int i = 0; i < 100; i++)
			//{
			//	Slots.Add(new ItemStack(ItemFactory.GetItem(i, 0), 1));
			//}

			ItemHotbar = new int[HotbarSize];
			InHandSlot = 0;

			for (byte i = 0; i < ItemHotbar.Length; i++)
			{
				ItemHotbar[i] = i;
			}

			Boots = new Item(0, 0);
			Leggings = new Item(0, 0);
			Chest = new Item(0, 0);
			Helmet = new Item(0, 0);

			//Boots = new ItemDiamondBoots(0);
			//Leggings = new ItemDiamondLeggings(0);
			//Chest = new ItemDiamondChestplate(0);
			//Helmet = new ItemDiamondHelmet(0);
		}
Пример #3
0
        public static Item GetItem(int id, short metadata)
        {
            Item item = null;

            if (CustomItemFactory != null)
            {
                item = CustomItemFactory.GetItem(id, metadata);
            }

            if (item != null) return item;

            if (id == 54) item = new ItemChest(metadata);
            else if (id == 44) item = new ItemSlab(id, metadata);
            else if (id == 61) item = new ItemFurnace(metadata);
            else if (id == 158) item = new ItemSlab(id, metadata);
            else if (id == 256) item = new ItemIronShovel(metadata);
            else if (id == 259) item = new ItemFlintAndSteel(metadata);
            else if (id == 261) item = new ItemBow(metadata);
            else if (id == 263) item = new ItemCoal(metadata);
            else if (id == 267) item = new ItemIronSword(metadata);
            else if (id == 268) item = new ItemWoodenSword(metadata);
            else if (id == 269) item = new ItemWoodenShovel(metadata);
            else if (id == 270) item = new ItemWoodenPickaxe(metadata);
            else if (id == 271) item = new ItemWoodenAxe(metadata);
            else if (id == 273) item = new ItemStoneShovel(metadata);
            else if (id == 277) item = new ItemDiamondShovel(metadata);
            else if (id == 280) item = new ItemStick(metadata);
            else if (id == 284) item = new ItemGoldShovel(metadata);
            else if (id == 290) item = new ItemWoodenHoe(metadata);
            else if (id == 291) item = new ItemStoneHoe(metadata);
            else if (id == 292) item = new ItemIronHoe(metadata);
            else if (id == 293) item = new ItemDiamondHoe(metadata);
            else if (id == 294) item = new ItemGoldHoe(metadata);
            else if (id == 323) item = new ItemSign(metadata);
            else if (id == 324) item = new ItemDoor(metadata);
            else if (id == 325) item = new ItemBucket(metadata);
            else if (id == 332) item = new ItemSnowball(metadata);
            else if (id == 355) item = new ItemBed(metadata);
            else if (id == 363) item = new ItemRawBeef(metadata);
            else if (id == 365) item = new ItemRawChicken(metadata);
            else if (id == 319) item = new ItemRawPorkchop(metadata);
            else if (id == 309) item = new ItemIronBoots(metadata);
            else if (id == 308) item = new ItemIronLeggings(metadata);
            else if (id == 307) item = new ItemIronChestplate(metadata);
            else if (id == 306) item = new ItemIronHelmet(metadata);
            else if (id == 310) item = new ItemDiamondHelmet(metadata);
            else if (id == 311) item = new ItemDiamondChestplate(metadata);
            else if (id == 312) item = new ItemDiamondLeggings(metadata);
            else if (id == 313) item = new ItemDiamondBoots(metadata);
            else if (id == 344) item = new ItemEgg(metadata);
            else if (id == 383) item = new ItemSpawnEgg(metadata);
            else if (id <= 255) item = new ItemBlock(BlockFactory.GetBlockById((byte) id), metadata);
            else item = new Item(id, metadata);

            return item;
        }
Пример #4
0
        public ItemEntity(Level level, Item item)
            : base(64, level)
        {
            Item = item;

            Height = 0.25;
            Width = 0.25;
            Length = 0.25;

            PickupDelay = 10;
            TimeToLive = 6000;
        }
Пример #5
0
 public MetadataSlot(Item value)
 {
     Value = value;
 }
Пример #6
0
		private bool FirstEmptySlot(short itemId, byte amount, short metadata, bool update, int si, Item item)
		{
			var b = Slots[si];
			if (b.Id == itemId && b.Metadata == metadata && b.Count + amount <= item.MaxStackSize)
			{
				Slots[si].Count += amount;
				//if (update) Player.SendPlayerInventory();
				if (update) SendSetSlot(si);
				Log.Info("Set on slot " + si);
				return true;
			}
			else if (b.Id == 0 || b.Id == -1)
			{
				Slots[si] = new ItemStack(itemId, amount, metadata);
				//if (update) Player.SendPlayerInventory();
				if (update) SendSetSlot(si);
				Log.Info("Set on slot " + si);
				return true;
			}
			return false;
		}
Пример #7
0
		protected bool Equals(Item other)
		{
			return Id == other.Id && Metadata == other.Metadata;
		}
Пример #8
0
 public ItemBreakParticle(Level level, Item item)
     : base(ParticleType.ItemBreak, level)
 {
     Data = (item.Id << 16) | item.Metadata;
 }
Пример #9
0
        private bool FirstEmptySlot(Item item, bool update, int si)
        {
            Item existingItem = Slots[si];

            if (existingItem.Id == item.Id && existingItem.Metadata == item.Metadata && existingItem.Count + item.Count <= item.MaxStackSize)
            {
                Slots[si].Count += item.Count;
                //if (update) Player.SendPlayerInventory();
                if (update) SendSetSlot(si);
                return true;
            }
            else if (existingItem is ItemAir || existingItem.Id == -1)
            {
                Slots[si] = item;
                //if (update) Player.SendPlayerInventory();
                if (update) SendSetSlot(si);
                return true;
            }

            return false;
        }
Пример #10
0
		public static Item GetItem(int id, short metadata)
		{
			Item item = null;

			if (CustomItemFactory != null)
			{
				item = CustomItemFactory.GetItem(id, metadata);
			}

			if (item != null) return item;

			if (id == 54) item = new ItemChest(metadata);
			else if (id == 44) item = new ItemSlab(id, metadata);
			else if (id == 61) item = new ItemFurnace(metadata);
			else if (id == 63) item = new ItemSign(metadata);
			else if (id == 68) item = new ItemSign(metadata);
			else if (id == 158) item = new ItemSlab(id, metadata);
			else if (id == 256) item = new ItemIronShovel(metadata);
			else if (id == 258) item = new ItemIronAxe(metadata);
			else if (id == 259) item = new ItemFlintAndSteel(metadata);
			else if (id == 260) item = new ItemApple();
			else if (id == 261) item = new ItemBow(metadata);
			else if (id == 263) item = new ItemCoal(metadata);
			else if (id == 267) item = new ItemIronSword(metadata);
			else if (id == 268) item = new ItemWoodenSword(metadata);
			else if (id == 269) item = new ItemWoodenShovel(metadata);
			else if (id == 270) item = new ItemWoodenPickaxe(metadata);
			else if (id == 271) item = new ItemWoodenAxe(metadata);
			else if (id == 272) item = new ItemStoneSword(metadata);
			else if (id == 273) item = new ItemStoneShovel(metadata);
			else if (id == 275) item = new ItemStoneAxe(metadata);
			else if (id == 276) item = new ItemDiamondSword(metadata);
			else if (id == 277) item = new ItemDiamondShovel(metadata);
			else if (id == 279) item = new ItemDiamondAxe(metadata);
			else if (id == 280) item = new ItemStick(metadata);
			else if (id == 283) item = new ItemGoldSword(metadata);
			else if (id == 284) item = new ItemGoldShovel(metadata);
			else if (id == 286) item = new ItemGoldAxe(metadata);
			else if (id == 290) item = new ItemWoodenHoe(metadata);
			else if (id == 291) item = new ItemStoneHoe(metadata);
			else if (id == 292) item = new ItemIronHoe(metadata);
			else if (id == 293) item = new ItemDiamondHoe(metadata);
			else if (id == 294) item = new ItemGoldHoe(metadata);
			else if (id == 297) item = new ItemBread();
			else if (id == 298) item = new ItemLeatherHelmet(metadata);
			else if (id == 299) item = new ItemLeatherChestplate(metadata);
			else if (id == 300) item = new ItemLeatherLeggings(metadata);
			else if (id == 301) item = new ItemLeatherBoots(metadata);
			else if (id == 302) item = new ItemChainmailHelmet(metadata);
			else if (id == 303) item = new ItemChainmailChestplate(metadata);
			else if (id == 304) item = new ItemChainmailLeggings(metadata);
			else if (id == 305) item = new ItemChainmailBoots(metadata);
			else if (id == 309) item = new ItemIronBoots(metadata);
			else if (id == 308) item = new ItemIronLeggings(metadata);
			else if (id == 307) item = new ItemIronChestplate(metadata);
			else if (id == 306) item = new ItemIronHelmet(metadata);
			else if (id == 310) item = new ItemDiamondHelmet(metadata);
			else if (id == 311) item = new ItemDiamondChestplate(metadata);
			else if (id == 312) item = new ItemDiamondLeggings(metadata);
			else if (id == 313) item = new ItemDiamondBoots(metadata);
			else if (id == 314) item = new ItemGoldHelmet(metadata);
			else if (id == 315) item = new ItemGoldChestplate(metadata);
			else if (id == 316) item = new ItemGoldLeggings(metadata);
			else if (id == 317) item = new ItemGoldBoots(metadata);
			else if (id == 319) item = new ItemRawPorkchop(metadata);
			else if (id == 320) item = new ItemCookedPorkshop();
			else if (id == 322) item = new ItemGoldenApple();
			else if (id == 323) item = new ItemSign(metadata);
			else if (id == 324) item = new ItemDoor(metadata);
			else if (id == 325) item = new ItemBucket(metadata);
			else if (id == 332) item = new ItemSnowball(metadata);
			else if (id == 344) item = new ItemEgg(metadata);
			else if (id == 355) item = new ItemBed(metadata);
			else if (id == 357) item = new ItemCookie();
			else if (id == 360) item = new ItemMelonSlice();
			else if (id == 363) item = new ItemRawBeef();
			else if (id == 364) item = new ItemSteak();
			else if (id == 365) item = new ItemRawChicken();
			else if (id == 366) item = new ItemCoockedChicken();
			else if (id == 383) item = new ItemSpawnEgg(metadata);
			else if (id == 391) item = new ItemCarrot();
			else if (id == 392) item = new ItemPotato();
			else if (id == 393) item = new ItemBakedPotato();
			else if (id == 400) item = new ItemPumpkinPie();
			else if (id <= 255)
			{
				Block block = BlockFactory.GetBlockById((byte) id);
				if (CustomBlockItemFactory == null)
				{
					item = new ItemBlock(block, metadata);
				}
				else
				{
					item = CustomBlockItemFactory.GetBlockItem(block, metadata);
				}
			}
			else item = new Item(id, metadata);

			return item;
		}
Пример #11
0
 public bool HasItem(Item item)
 {
     for (byte i = 0; i < Slots.Count; i++)
     {
         if ((Slots[i]).Id == item.Id && (Slots[i]).Metadata == item.Metadata)
         {
             return true;
         }
     }
     return false;
 }
Пример #12
0
 public ItemStack(Item item, byte count)
 {
     Count = count;
     Item = item;
 }
Пример #13
0
 public virtual bool VerifyItemStack(Player player, Item itemStack)
 {
     return true;
 }
Пример #14
0
 public virtual Item SignItem(Item item)
 {
     return item;
 }
Пример #15
0
 public override void IncreaseFoodAndSaturation(Item item, int foodPoints, double saturationRestore)
 {
 }
Пример #16
0
 public override void FromStream(BinaryReader stream)
 {
     var id = stream.ReadInt16();
     var count = stream.ReadByte();
     var metadata = stream.ReadInt16();
     Value = new Item(id, metadata, count);
 }
Пример #17
0
        public static Item GetItem(short id, short metadata = 0, byte count = 1)
        {
            Item item = null;

            if (CustomItemFactory != null)
            {
                item = CustomItemFactory.GetItem(id, metadata, count);
            }

            if (item != null) return item;

            if (id == 0) item = new ItemAir();
            else if (id == 54) item = new ItemChest();
            else if (id == 44) item = new ItemSlab(id, metadata);
            else if (id == 61) item = new ItemFurnace();
            else if (id == 63) item = new ItemSign();
            else if (id == 68) item = new ItemSign();
            else if (id == 116) item = new ItemEnchantingTable();
            else if (id == 158) item = new ItemSlab(id, metadata);
            else if (id == 256) item = new ItemIronShovel();
            else if (id == 257) item = new ItemIronPickaxe();
            else if (id == 258) item = new ItemIronAxe();
            else if (id == 259) item = new ItemFlintAndSteel();
            else if (id == 260) item = new ItemApple();
            else if (id == 261) item = new ItemBow();
            else if (id == 262) item = new ItemArrow();
            else if (id == 263) item = new ItemCoal();
            else if (id == 267) item = new ItemIronSword();
            else if (id == 268) item = new ItemWoodenSword();
            else if (id == 269) item = new ItemWoodenShovel();
            else if (id == 270) item = new ItemWoodenPickaxe();
            else if (id == 271) item = new ItemWoodenAxe();
            else if (id == 272) item = new ItemStoneSword();
            else if (id == 273) item = new ItemStoneShovel();
            else if (id == 274) item = new ItemStonePickaxe();
            else if (id == 275) item = new ItemStoneAxe();
            else if (id == 276) item = new ItemDiamondSword();
            else if (id == 277) item = new ItemDiamondShovel();
            else if (id == 278) item = new ItemDiamondPickaxe();
            else if (id == 279) item = new ItemDiamondAxe();
            else if (id == 280) item = new ItemStick();
            else if (id == 283) item = new ItemGoldSword();
            else if (id == 284) item = new ItemGoldShovel();
            else if (id == 285) item = new ItemGoldPickaxe();
            else if (id == 286) item = new ItemGoldAxe();
            else if (id == 290) item = new ItemWoodenHoe();
            else if (id == 291) item = new ItemStoneHoe();
            else if (id == 292) item = new ItemIronHoe();
            else if (id == 293) item = new ItemDiamondHoe();
            else if (id == 294) item = new ItemGoldHoe();
            else if (id == 297) item = new ItemBread();
            else if (id == 298) item = new ItemLeatherHelmet();
            else if (id == 299) item = new ItemLeatherChestplate();
            else if (id == 300) item = new ItemLeatherLeggings();
            else if (id == 301) item = new ItemLeatherBoots();
            else if (id == 302) item = new ItemChainmailHelmet();
            else if (id == 303) item = new ItemChainmailChestplate();
            else if (id == 304) item = new ItemChainmailLeggings();
            else if (id == 305) item = new ItemChainmailBoots();
            else if (id == 309) item = new ItemIronBoots();
            else if (id == 308) item = new ItemIronLeggings();
            else if (id == 307) item = new ItemIronChestplate();
            else if (id == 306) item = new ItemIronHelmet();
            else if (id == 310) item = new ItemDiamondHelmet();
            else if (id == 311) item = new ItemDiamondChestplate();
            else if (id == 312) item = new ItemDiamondLeggings();
            else if (id == 313) item = new ItemDiamondBoots();
            else if (id == 314) item = new ItemGoldHelmet();
            else if (id == 315) item = new ItemGoldChestplate();
            else if (id == 316) item = new ItemGoldLeggings();
            else if (id == 317) item = new ItemGoldBoots();
            else if (id == 319) item = new ItemRawPorkchop();
            else if (id == 320) item = new ItemCookedPorkshop();
            else if (id == 322) item = new ItemGoldenApple();
            else if (id == 323) item = new ItemSign();
            else if (id == 324) item = new ItemDoor();
            else if (id == 325) item = new ItemBucket(metadata);
            else if (id == 332) item = new ItemSnowball();
            else if (id == 344) item = new ItemEgg();
            else if (id == 355) item = new ItemBed();
            else if (id == 357) item = new ItemCookie();
            else if (id == 360) item = new ItemMelonSlice();
            else if (id == 363) item = new ItemRawBeef();
            else if (id == 364) item = new ItemSteak();
            else if (id == 365) item = new ItemRawChicken();
            else if (id == 366) item = new ItemCoockedChicken();
            else if (id == 373) item = new ItemPotion(metadata);
            else if (id == 383) item = new ItemSpawnEgg(metadata);
            else if (id == 391) item = new ItemCarrot();
            else if (id == 392) item = new ItemPotato();
            else if (id == 393) item = new ItemBakedPotato();
            else if (id == 397) item = new ItemMobHead(metadata);
            else if (id == 400) item = new ItemPumpkinPie();
            else if (id <= 255)
            {
                Block block = BlockFactory.GetBlockById((byte) id);
                if (CustomBlockItemFactory == null)
                {
                    item = new ItemBlock(block, metadata);
                }
                else
                {
                    item = CustomBlockItemFactory.GetBlockItem(block, metadata, count);
                }
            }
            else item = new Item(id, metadata, count);

            // This might now be a good idea if the constructor changes these
            // properties for custom items.
            item.Metadata = metadata;
            item.Count = count;

            return item;
        }
Пример #18
0
        public bool SetFirstEmptySlot(Item item, bool update, bool reverseOrder)
        {
            if (reverseOrder)
            {
                for (int si = Slots.Count; si > 0; si--)
                {
                    if (FirstEmptySlot(item, update, si - 1)) return true;
                }
            }
            else
            {
                for (int si = 0; si < Slots.Count; si++)
                {
                    if (FirstEmptySlot(item, update, si)) return true;
                }
            }

            return false;
        }
Пример #19
0
		public double GetMineTime(Item miningTool)
		{
			int multiplier = (int) miningTool.ItemMaterial;
			return Hardness*(1.5*multiplier);
		}
Пример #20
0
        public void SetInventorySlot(int slot, Item item)
        {
            Slots[slot] = item;

            SendSetSlot(slot);
        }