HashSet<TypeData> datas = new HashSet<TypeData>();
NBTTagCompound nbt = (NBTTagCompound) obj;
TypeData data;
NBTBase tag;
for (String name : (Collection<String>) nbt.func_150296_c())
{
tag = nbt.getTag(name);
data = getEntryData();
data.putField(TYPE, tag.getId());
data.putField(KEY, name);
if (tag instanceof NBTTagCompound)
{
data.putField(COMPOUND, tag);
}
else if (tag instanceof NBTTagIntArray)
{
data.putField(I_ARRAY, ((NBTTagIntArray) tag).func_150302_c());
}
else if (tag instanceof NBTTagByteArray)
{
data.putField(B_ARRAY, ((NBTTagByteArray) tag).func_150292_c());
}
else if (tag instanceof NBTTagList)
{
data.putField(TAG_LIST, tag);
}
else if (tag instanceof NBTBase.NBTPrimitive)
{
String val = tag.toString();
if (tag.getId() != new NBTTagInt(0).getId())
{
val = val.substring(0, val.length() - 1);
}
data.putField(PRIMITIVE, val);