/// <summary> /// Executes the enchantment modifier on the ItemStack passed. /// </summary> private static void ApplyEnchantmentModifier(IEnchantmentModifier par0IEnchantmentModifier, ItemStack par1ItemStack) { if (par1ItemStack == null) { return; } NBTTagList nbttaglist = par1ItemStack.GetEnchantmentTagList(); if (nbttaglist == null) { return; } for (int i = 0; i < nbttaglist.TagCount(); i++) { short word0 = ((NBTTagCompound)nbttaglist.TagAt(i)).GetShort("id"); short word1 = ((NBTTagCompound)nbttaglist.TagAt(i)).GetShort("lvl"); if (Enchantment.EnchantmentsList[word0] != null) { par0IEnchantmentModifier.CalculateModifier(Enchantment.EnchantmentsList[word0], word1); } } }
/// <summary> /// (abstract) Protected helper method to read subclass entity data from NBT. /// </summary> public override void ReadEntityFromNBT(NBTTagCompound par1NBTTagCompound) { MinecartType = par1NBTTagCompound.GetInteger("Type"); if (MinecartType == 2) { PushX = (float)par1NBTTagCompound.GetDouble("PushX"); PushZ = (float)par1NBTTagCompound.GetDouble("PushZ"); Fuel = par1NBTTagCompound.GetShort("Fuel"); } else if (MinecartType == 1) { NBTTagList nbttaglist = par1NBTTagCompound.GetTagList("Items"); CargoItems = new ItemStack[GetSizeInventory()]; for (int i = 0; i < nbttaglist.TagCount(); i++) { NBTTagCompound nbttagcompound = (NBTTagCompound)nbttaglist.TagAt(i); int j = nbttagcompound.GetByte("Slot") & 0xff; if (j >= 0 && j < CargoItems.Length) { CargoItems[j] = ItemStack.LoadItemStackFromNBT(nbttagcompound); } } } }
/// <summary> /// Returns the level of enchantment on the ItemStack passed. /// </summary> public static int GetEnchantmentLevel(int par0, ItemStack par1ItemStack) { if (par1ItemStack == null) { return(0); } NBTTagList nbttaglist = par1ItemStack.GetEnchantmentTagList(); if (nbttaglist == null) { return(0); } for (int i = 0; i < nbttaglist.TagCount(); i++) { short word0 = ((NBTTagCompound)nbttaglist.TagAt(i)).GetShort("id"); short word1 = ((NBTTagCompound)nbttaglist.TagAt(i)).GetShort("lvl"); if (word0 == par0) { return(word1); } } return(0); }
/// <summary> /// gets a list of strings representing the item name and successive extra data, eg Enchantments and potion effects /// </summary> public List <string> GetItemNameandInformation() { List <string> arraylist = new List <string>(); Item item = Item.ItemsList[ItemID]; arraylist.Add(item.GetItemDisplayName(this)); item.AddInformation(this, arraylist); if (HasTagCompound()) { NBTTagList nbttaglist = GetEnchantmentTagList(); if (nbttaglist != null) { for (int i = 0; i < nbttaglist.TagCount(); i++) { short word0 = ((NBTTagCompound)nbttaglist.TagAt(i)).GetShort("id"); short word1 = ((NBTTagCompound)nbttaglist.TagAt(i)).GetShort("lvl"); if (Enchantment.EnchantmentsList[word0] != null) { arraylist.Add(Enchantment.EnchantmentsList[word0].GetTranslatedName(word1)); } } } } return(arraylist); }
/// <summary> /// (abstract) Protected helper method to write subclass entity data to NBT. /// </summary> public override void WriteEntityToNBT(NBTTagCompound par1NBTTagCompound) { par1NBTTagCompound.SetInteger("Type", MinecartType); if (MinecartType == 2) { par1NBTTagCompound.SetDouble("PushX", PushX); par1NBTTagCompound.SetDouble("PushZ", PushZ); par1NBTTagCompound.SetShort("Fuel", (short)Fuel); } else if (MinecartType == 1) { NBTTagList nbttaglist = new NBTTagList(); for (int i = 0; i < CargoItems.Length; i++) { if (CargoItems[i] != null) { NBTTagCompound nbttagcompound = new NBTTagCompound(); nbttagcompound.SetByte("Slot", (byte)i); CargoItems[i].WriteToNBT(nbttagcompound); nbttaglist.AppendTag(nbttagcompound); } } par1NBTTagCompound.SetTag("Items", nbttaglist); } }
public override bool Equals(object par1Obj) { if (base.Equals(par1Obj)) { NBTTagList nbttaglist = (NBTTagList)par1Obj; if (TagType == nbttaglist.TagType) { return(TagList.Equals(nbttaglist.TagList)); } } return(false); }
/// <summary> /// Creates a clone of the tag. /// </summary> public override NBTBase Copy() { NBTTagList nbttaglist = new NBTTagList(GetName()); nbttaglist.TagType = TagType; NBTBase nbtbase1; for (IEnumerator <NBTBase> iterator = TagList.GetEnumerator(); iterator.MoveNext(); nbttaglist.TagList.Add(nbtbase1)) { NBTBase nbtbase = iterator.Current; nbtbase1 = nbtbase.Copy(); } return(nbttaglist); }
/// <summary> /// Writes a tile entity to NBT. /// </summary> public override void WriteToNBT(NBTTagCompound par1NBTTagCompound) { base.WriteToNBT(par1NBTTagCompound); NBTTagList nbttaglist = new NBTTagList(); for (int i = 0; i < DispenserContents.Length; i++) { if (DispenserContents[i] != null) { NBTTagCompound nbttagcompound = new NBTTagCompound(); nbttagcompound.SetByte("Slot", (byte)i); DispenserContents[i].WriteToNBT(nbttagcompound); nbttaglist.AppendTag(nbttagcompound); } } par1NBTTagCompound.SetTag("Items", nbttaglist); }
/// <summary> /// Reads a tile entity from NBT. /// </summary> public override void ReadFromNBT(NBTTagCompound par1NBTTagCompound) { base.ReadFromNBT(par1NBTTagCompound); NBTTagList nbttaglist = par1NBTTagCompound.GetTagList("Items"); DispenserContents = new ItemStack[GetSizeInventory()]; for (int i = 0; i < nbttaglist.TagCount(); i++) { NBTTagCompound nbttagcompound = (NBTTagCompound)nbttaglist.TagAt(i); int j = nbttagcompound.GetByte("Slot") & 0xff; if (j >= 0 && j < DispenserContents.Length) { DispenserContents[j] = ItemStack.LoadItemStackFromNBT(nbttagcompound); } } }
/// <summary> /// Load the server list from servers.dat /// </summary> private void LoadServerList() { try { NBTTagCompound nbttagcompound = CompressedStreamTools.Read(System.IO.Path.Combine(Mc.McDataDir, "servers.dat")); NBTTagList nbttaglist = nbttagcompound.GetTagList("servers"); ServerList.Clear(); for (int i = 0; i < nbttaglist.TagCount(); i++) { ServerList.Add(ServerNBTStorage.CreateServerNBTStorage((NBTTagCompound)nbttaglist.TagAt(i))); } } catch (Exception exception) { Utilities.LogException(exception); } }
/// <summary> /// Writes a tile entity to NBT. /// </summary> public override void WriteToNBT(NBTTagCompound par1NBTTagCompound) { base.WriteToNBT(par1NBTTagCompound); par1NBTTagCompound.SetShort("BrewTime", (short)BrewTime); NBTTagList nbttaglist = new NBTTagList(); for (int i = 0; i < BrewingItemStacks.Length; i++) { if (BrewingItemStacks[i] != null) { NBTTagCompound nbttagcompound = new NBTTagCompound(); nbttagcompound.SetByte("Slot", (byte)i); BrewingItemStacks[i].WriteToNBT(nbttagcompound); nbttaglist.AppendTag(nbttagcompound); } } par1NBTTagCompound.SetTag("Items", nbttaglist); }
/// <summary> /// Adds a enchantments with a desired level on the ItemStack. /// </summary> public void AddEnchantment(Enchantment par1Enchantment, int par2) { if (StackTagCompound == null) { SetTagCompound(new NBTTagCompound()); } if (!StackTagCompound.HasKey("ench")) { StackTagCompound.SetTag("ench", new NBTTagList("ench")); } NBTTagList nbttaglist = (NBTTagList)StackTagCompound.GetTag("ench"); NBTTagCompound nbttagcompound = new NBTTagCompound(); nbttagcompound.SetShort("id", (short)par1Enchantment.EffectId); nbttagcompound.SetShort("lvl", (sbyte)par2); nbttaglist.AppendTag(nbttagcompound); }
/// <summary> /// Reads a tile entity from NBT. /// </summary> public override void ReadFromNBT(NBTTagCompound par1NBTTagCompound) { base.ReadFromNBT(par1NBTTagCompound); NBTTagList nbttaglist = par1NBTTagCompound.GetTagList("Items"); BrewingItemStacks = new ItemStack[GetSizeInventory()]; for (int i = 0; i < nbttaglist.TagCount(); i++) { NBTTagCompound nbttagcompound = (NBTTagCompound)nbttaglist.TagAt(i); byte byte0 = nbttagcompound.GetByte("Slot"); if (byte0 >= 0 && byte0 < BrewingItemStacks.Length) { BrewingItemStacks[byte0] = ItemStack.LoadItemStackFromNBT(nbttagcompound); } } BrewTime = par1NBTTagCompound.GetShort("BrewTime"); }
/// <summary> /// Save the server list to servers.dat /// </summary> private void SaveServerList() { try { NBTTagList nbttaglist = new NBTTagList(); for (int i = 0; i < ServerList.Count; i++) { nbttaglist.AppendTag(ServerList[i].GetCompoundTag()); } NBTTagCompound nbttagcompound = new NBTTagCompound(); nbttagcompound.SetTag("servers", nbttaglist); CompressedStreamTools.SafeWrite(nbttagcompound, System.IO.Path.Combine(Mc.McDataDir, "servers.dat")); } catch (Exception exception) { Utilities.LogException(exception); } }
private Chunk Func_48444_a(World par1World, NBTTagCompound par2NBTTagCompound) { int i = par2NBTTagCompound.GetInteger("xPos"); int j = par2NBTTagCompound.GetInteger("zPos"); Chunk chunk = new Chunk(par1World, i, j); chunk.HeightMap = par2NBTTagCompound.Func_48182_l("HeightMap"); chunk.IsTerrainPopulated = par2NBTTagCompound.Getbool("TerrainPopulated"); NBTTagList nbttaglist = par2NBTTagCompound.GetTagList("Sections"); sbyte byte0 = 16; ExtendedBlockStorage[] aextendedblockstorage = new ExtendedBlockStorage[byte0]; for (int k = 0; k < nbttaglist.TagCount(); k++) { NBTTagCompound nbttagcompound = (NBTTagCompound)nbttaglist.TagAt(k); byte byte1 = nbttagcompound.GetByte("Y"); ExtendedBlockStorage extendedblockstorage = new ExtendedBlockStorage(byte1 << 4); extendedblockstorage.SetBlockLSBArray(nbttagcompound.GetByteArray("Blocks")); if (nbttagcompound.HasKey("Add")) { extendedblockstorage.SetBlockMSBArray(new NibbleArray(nbttagcompound.GetByteArray("Add"), 4)); } extendedblockstorage.SetBlockMetadataArray(new NibbleArray(nbttagcompound.GetByteArray("Data"), 4)); extendedblockstorage.SetSkylightArray(new NibbleArray(nbttagcompound.GetByteArray("SkyLight"), 4)); extendedblockstorage.SetBlocklightArray(new NibbleArray(nbttagcompound.GetByteArray("BlockLight"), 4)); extendedblockstorage.Func_48708_d(); aextendedblockstorage[byte1] = extendedblockstorage; } chunk.SetStorageArrays(aextendedblockstorage); if (par2NBTTagCompound.HasKey("Biomes")) { chunk.SetBiomeArray(par2NBTTagCompound.GetByteArray("Biomes")); } NBTTagList nbttaglist1 = par2NBTTagCompound.GetTagList("Entities"); if (nbttaglist1 != null) { for (int l = 0; l < nbttaglist1.TagCount(); l++) { NBTTagCompound nbttagcompound1 = (NBTTagCompound)nbttaglist1.TagAt(l); Entity entity = EntityList.CreateEntityFromNBT(nbttagcompound1, par1World); chunk.HasEntities = true; if (entity != null) { chunk.AddEntity(entity); } } } NBTTagList nbttaglist2 = par2NBTTagCompound.GetTagList("TileEntities"); if (nbttaglist2 != null) { for (int i1 = 0; i1 < nbttaglist2.TagCount(); i1++) { NBTTagCompound nbttagcompound2 = (NBTTagCompound)nbttaglist2.TagAt(i1); TileEntity tileentity = TileEntity.CreateAndLoadEntity(nbttagcompound2); if (tileentity != null) { chunk.AddTileEntity(tileentity); } } } if (par2NBTTagCompound.HasKey("TileTicks")) { NBTTagList nbttaglist3 = par2NBTTagCompound.GetTagList("TileTicks"); if (nbttaglist3 != null) { for (int j1 = 0; j1 < nbttaglist3.TagCount(); j1++) { NBTTagCompound nbttagcompound3 = (NBTTagCompound)nbttaglist3.TagAt(j1); par1World.ScheduleBlockUpdateFromLoad(nbttagcompound3.GetInteger("x"), nbttagcompound3.GetInteger("y"), nbttagcompound3.GetInteger("z"), nbttagcompound3.GetInteger("i"), nbttagcompound3.GetInteger("t")); } } } return(chunk); }
private void Func_48445_a(Chunk par1Chunk, World par2World, NBTTagCompound par3NBTTagCompound) { par2World.CheckSessionLock(); par3NBTTagCompound.SetInteger("xPos", par1Chunk.XPosition); par3NBTTagCompound.SetInteger("zPos", par1Chunk.ZPosition); par3NBTTagCompound.SetLong("LastUpdate", par2World.GetWorldTime()); par3NBTTagCompound.Func_48183_a("HeightMap", par1Chunk.HeightMap); par3NBTTagCompound.Setbool("TerrainPopulated", par1Chunk.IsTerrainPopulated); ExtendedBlockStorage[] aextendedblockstorage = par1Chunk.GetBlockStorageArray(); NBTTagList nbttaglist = new NBTTagList("Sections"); ExtendedBlockStorage[] aextendedblockstorage1 = aextendedblockstorage; int i = aextendedblockstorage1.Length; for (int k = 0; k < i; k++) { ExtendedBlockStorage extendedblockstorage = aextendedblockstorage1[k]; if (extendedblockstorage == null || extendedblockstorage.Func_48700_f() == 0) { continue; } NBTTagCompound nbttagcompound = new NBTTagCompound(); nbttagcompound.SetByte("Y", (byte)(extendedblockstorage.GetYLocation() >> 4 & 0xff)); nbttagcompound.SetByteArray("Blocks", extendedblockstorage.Func_48692_g()); if (extendedblockstorage.GetBlockMSBArray() != null) { nbttagcompound.SetByteArray("Add", extendedblockstorage.GetBlockMSBArray().Data); } nbttagcompound.SetByteArray("Data", extendedblockstorage.Func_48697_j().Data); nbttagcompound.SetByteArray("SkyLight", extendedblockstorage.GetSkylightArray().Data); nbttagcompound.SetByteArray("BlockLight", extendedblockstorage.GetBlocklightArray().Data); nbttaglist.AppendTag(nbttagcompound); } par3NBTTagCompound.SetTag("Sections", nbttaglist); par3NBTTagCompound.SetByteArray("Biomes", par1Chunk.GetBiomeArray()); par1Chunk.HasEntities = false; NBTTagList nbttaglist1 = new NBTTagList(); label0: for (int j = 0; j < par1Chunk.EntityLists.Length; j++) { IEnumerator <Entity> iterator = par1Chunk.EntityLists[j].GetEnumerator(); do { if (!iterator.MoveNext()) { goto label0; } Entity entity = iterator.Current; par1Chunk.HasEntities = true; NBTTagCompound nbttagcompound1 = new NBTTagCompound(); if (entity.AddEntityID(nbttagcompound1)) { nbttaglist1.AppendTag(nbttagcompound1); } }while (true); } par3NBTTagCompound.SetTag("Entities", nbttaglist1); NBTTagList nbttaglist2 = new NBTTagList(); NBTTagCompound nbttagcompound2; for (IEnumerator <TileEntity> iterator1 = par1Chunk.ChunkTileEntityMap.Values.GetEnumerator(); iterator1.MoveNext(); nbttaglist2.AppendTag(nbttagcompound2)) { TileEntity tileentity = iterator1.Current; nbttagcompound2 = new NBTTagCompound(); tileentity.WriteToNBT(nbttagcompound2); } par3NBTTagCompound.SetTag("TileEntities", nbttaglist2); List <NextTickListEntry> list = par2World.GetPendingBlockUpdates(par1Chunk, false); if (list != null) { long l = par2World.GetWorldTime(); NBTTagList nbttaglist3 = new NBTTagList(); NBTTagCompound nbttagcompound3; for (IEnumerator <NextTickListEntry> iterator2 = list.GetEnumerator(); iterator2.MoveNext(); nbttaglist3.AppendTag(nbttagcompound3)) { NextTickListEntry nextticklistentry = iterator2.Current; nbttagcompound3 = new NBTTagCompound(); nbttagcompound3.SetInteger("i", nextticklistentry.BlockID); nbttagcompound3.SetInteger("x", nextticklistentry.XCoord); nbttagcompound3.SetInteger("y", nextticklistentry.YCoord); nbttagcompound3.SetInteger("z", nextticklistentry.ZCoord); nbttagcompound3.SetInteger("t", (int)(nextticklistentry.ScheduledTime - l)); } par3NBTTagCompound.SetTag("TileTicks", nbttaglist3); } }