Switched EnchantmentSerilizer to namespace
This commit is contained in:
parent
e14ddff1c0
commit
f13a14d2cf
@ -8,6 +8,7 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include "WorldStorage/EnchantmentSerializer.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -20,7 +21,6 @@ class cParsedNBT;
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
// tolua_begin
|
|
||||||
|
|
||||||
/** Class that stores item enchantments or stored-enchantments
|
/** Class that stores item enchantments or stored-enchantments
|
||||||
The enchantments may be serialized to a stringspec and read back from such stringspec.
|
The enchantments may be serialized to a stringspec and read back from such stringspec.
|
||||||
@ -29,11 +29,12 @@ mapping each enchantment's id onto its level. ID may be either a number or the e
|
|||||||
Level value of 0 means no such enchantment, and it will not be stored in the m_Enchantments.
|
Level value of 0 means no such enchantment, and it will not be stored in the m_Enchantments.
|
||||||
Serialization will never put zero-level enchantments into the stringspec and will always use numeric IDs.
|
Serialization will never put zero-level enchantments into the stringspec and will always use numeric IDs.
|
||||||
*/
|
*/
|
||||||
|
// tolua_begin
|
||||||
class cEnchantments
|
class cEnchantments
|
||||||
{
|
{
|
||||||
friend class cEnchantmentSerializer;
|
|
||||||
public:
|
public:
|
||||||
/// Individual enchantment IDs, corresponding to their NBT IDs ( http://www.minecraftwiki.net/wiki/Data_Values#Enchantment_IDs )
|
/// Individual enchantment IDs, corresponding to their NBT IDs ( http://www.minecraftwiki.net/wiki/Data_Values#Enchantment_IDs )
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
enchProtection = 0,
|
enchProtection = 0,
|
||||||
@ -97,7 +98,11 @@ public:
|
|||||||
/// Returns true if a_Other doesn't contain exactly the same enchantments and levels
|
/// Returns true if a_Other doesn't contain exactly the same enchantments and levels
|
||||||
bool operator !=(const cEnchantments & a_Other) const;
|
bool operator !=(const cEnchantments & a_Other) const;
|
||||||
|
|
||||||
|
/// Writes the enchantments into the specified NBT writer; begins with the LIST tag of the specified name ("ench" or "StoredEnchantments")
|
||||||
|
friend void EnchantmentSerializer::WriteToNBTCompound(cEnchantments const& a_Enchantments, cFastNBTWriter & a_Writer, const AString & a_ListTagName);
|
||||||
|
|
||||||
|
/// Reads the enchantments from the specified NBT list tag (ench or StoredEnchantments)
|
||||||
|
friend void EnchantmentSerializer::ParseFromNBT(cEnchantments& a_Enchantments, const cParsedNBT & a_NBT, int a_EnchListTagIdx);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
/// Maps enchantment ID -> enchantment level
|
/// Maps enchantment ID -> enchantment level
|
||||||
|
@ -764,7 +764,7 @@ void cProtocol132::WriteItem(const cItem & a_Item)
|
|||||||
// Send the enchantments:
|
// Send the enchantments:
|
||||||
cFastNBTWriter Writer;
|
cFastNBTWriter Writer;
|
||||||
const char * TagName = (a_Item.m_ItemType == E_ITEM_BOOK) ? "StoredEnchantments" : "ench";
|
const char * TagName = (a_Item.m_ItemType == E_ITEM_BOOK) ? "StoredEnchantments" : "ench";
|
||||||
cEnchantmentSerializer::WriteToNBTCompound(a_Item.m_Enchantments, Writer, TagName);
|
EnchantmentSerializer::WriteToNBTCompound(a_Item.m_Enchantments, Writer, TagName);
|
||||||
Writer.Finish();
|
Writer.Finish();
|
||||||
AString Compressed;
|
AString Compressed;
|
||||||
CompressStringGZIP(Writer.GetResult().data(), Writer.GetResult().size(), Compressed);
|
CompressStringGZIP(Writer.GetResult().data(), Writer.GetResult().size(), Compressed);
|
||||||
@ -850,7 +850,7 @@ int cProtocol132::ParseItemMetadata(cItem & a_Item, const AString & a_Metadata)
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
cEnchantmentSerializer::ParseFromNBT(a_Item.m_Enchantments, NBT, tag);
|
EnchantmentSerializer::ParseFromNBT(a_Item.m_Enchantments, NBT, tag);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1697,7 +1697,7 @@ void cProtocol172::ParseItemMetadata(cItem & a_Item, const AString & a_Metadata)
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
cEnchantmentSerializer::ParseFromNBT(a_Item.m_Enchantments, NBT, tag);
|
EnchantmentSerializer::ParseFromNBT(a_Item.m_Enchantments, NBT, tag);
|
||||||
}
|
}
|
||||||
else if ((NBT.GetType(tag) == TAG_Compound) && (NBT.GetName(tag) == "display")) // Custom name and lore tag
|
else if ((NBT.GetType(tag) == TAG_Compound) && (NBT.GetName(tag) == "display")) // Custom name and lore tag
|
||||||
{
|
{
|
||||||
@ -1782,7 +1782,7 @@ void cProtocol172::cPacketizer::WriteItem(const cItem & a_Item)
|
|||||||
if (!a_Item.m_Enchantments.IsEmpty())
|
if (!a_Item.m_Enchantments.IsEmpty())
|
||||||
{
|
{
|
||||||
const char * TagName = (a_Item.m_ItemType == E_ITEM_BOOK) ? "StoredEnchantments" : "ench";
|
const char * TagName = (a_Item.m_ItemType == E_ITEM_BOOK) ? "StoredEnchantments" : "ench";
|
||||||
cEnchantmentSerializer::WriteToNBTCompound(a_Item.m_Enchantments,Writer, TagName);
|
EnchantmentSerializer::WriteToNBTCompound(a_Item.m_Enchantments,Writer, TagName);
|
||||||
}
|
}
|
||||||
if (!a_Item.IsBothNameAndLoreEmpty())
|
if (!a_Item.IsBothNameAndLoreEmpty())
|
||||||
{
|
{
|
||||||
|
@ -2,9 +2,10 @@
|
|||||||
#include "Globals.h"
|
#include "Globals.h"
|
||||||
|
|
||||||
#include "EnchantmentSerializer.h"
|
#include "EnchantmentSerializer.h"
|
||||||
|
#include "Enchantments.h"
|
||||||
#include "FastNBT.h"
|
#include "FastNBT.h"
|
||||||
|
|
||||||
void cEnchantmentSerializer::WriteToNBTCompound(cEnchantments const& a_Enchantments, cFastNBTWriter & a_Writer, const AString & a_ListTagName)
|
void EnchantmentSerializer::WriteToNBTCompound(cEnchantments const& a_Enchantments, cFastNBTWriter & a_Writer, const AString & a_ListTagName)
|
||||||
{
|
{
|
||||||
// Write the enchantments into the specified NBT writer
|
// Write the enchantments into the specified NBT writer
|
||||||
// begin with the LIST tag of the specified name ("ench" or "StoredEnchantments")
|
// begin with the LIST tag of the specified name ("ench" or "StoredEnchantments")
|
||||||
@ -24,7 +25,7 @@ void cEnchantmentSerializer::WriteToNBTCompound(cEnchantments const& a_Enchantme
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
void cEnchantmentSerializer::ParseFromNBT(cEnchantments& a_Enchantments, const cParsedNBT & a_NBT, int a_EnchListTagIdx)
|
void EnchantmentSerializer::ParseFromNBT(cEnchantments& a_Enchantments, const cParsedNBT & a_NBT, int a_EnchListTagIdx)
|
||||||
{
|
{
|
||||||
// Read the enchantments from the specified NBT list tag (ench or StoredEnchantments)
|
// Read the enchantments from the specified NBT list tag (ench or StoredEnchantments)
|
||||||
|
|
||||||
|
@ -1,17 +1,17 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "Enchantments.h"
|
class cEnchantments;
|
||||||
|
class cFastNBTWriter;
|
||||||
|
class cParsedNBT;
|
||||||
|
|
||||||
class cEnchantmentSerializer
|
namespace EnchantmentSerializer
|
||||||
{
|
{
|
||||||
|
|
||||||
public:
|
|
||||||
|
|
||||||
/// Writes the enchantments into the specified NBT writer; begins with the LIST tag of the specified name ("ench" or "StoredEnchantments")
|
/// Writes the enchantments into the specified NBT writer; begins with the LIST tag of the specified name ("ench" or "StoredEnchantments")
|
||||||
static void WriteToNBTCompound(cEnchantments const& a_Enchantments, cFastNBTWriter & a_Writer, const AString & a_ListTagName);
|
void WriteToNBTCompound(cEnchantments const& a_Enchantments, cFastNBTWriter & a_Writer, const AString & a_ListTagName);
|
||||||
|
|
||||||
/// Reads the enchantments from the specified NBT list tag (ench or StoredEnchantments)
|
/// Reads the enchantments from the specified NBT list tag (ench or StoredEnchantments)
|
||||||
static void ParseFromNBT(cEnchantments& a_Enchantments, const cParsedNBT & a_NBT, int a_EnchListTagIdx);
|
void ParseFromNBT(cEnchantments& a_Enchantments, const cParsedNBT & a_NBT, int a_EnchListTagIdx);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@ -92,7 +92,7 @@ void cNBTChunkSerializer::AddItem(const cItem & a_Item, int a_Slot, const AStrin
|
|||||||
{
|
{
|
||||||
const char * TagName = (a_Item.m_ItemType == E_ITEM_BOOK) ? "StoredEnchantments" : "ench";
|
const char * TagName = (a_Item.m_ItemType == E_ITEM_BOOK) ? "StoredEnchantments" : "ench";
|
||||||
m_Writer.BeginCompound("tag");
|
m_Writer.BeginCompound("tag");
|
||||||
cEnchantmentSerializer::WriteToNBTCompound(a_Item.m_Enchantments, m_Writer, TagName);
|
EnchantmentSerializer::WriteToNBTCompound(a_Item.m_Enchantments, m_Writer, TagName);
|
||||||
m_Writer.EndCompound();
|
m_Writer.EndCompound();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -640,7 +640,7 @@ bool cWSSAnvil::LoadItemFromNBT(cItem & a_Item, const cParsedNBT & a_NBT, int a_
|
|||||||
int EnchTag = a_NBT.FindChildByName(TagTag, EnchName);
|
int EnchTag = a_NBT.FindChildByName(TagTag, EnchName);
|
||||||
if (EnchTag > 0)
|
if (EnchTag > 0)
|
||||||
{
|
{
|
||||||
cEnchantmentSerializer::ParseFromNBT(a_Item.m_Enchantments, a_NBT, EnchTag);
|
EnchantmentSerializer::ParseFromNBT(a_Item.m_Enchantments, a_NBT, EnchTag);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
Loading…
Reference in New Issue
Block a user