/// Initializes the entity's stats. @Override public void init(MobStatsInfo mobStats) { NBTTagCompound tag = new NBTTagCompound(); mobStats.theEntity.writeToNBT(tag); NBTTagList tagList = tag.getTagList("Pos", Constants.NBT.TAG_DOUBLE); double x = tagList.func_150309_d(0); double y = tagList.func_150309_d(1); double z = tagList.func_150309_d(2); tagList.func_150304_a(0, new NBTTagDouble(0.0)); tagList.func_150304_a(1, new NBTTagDouble(0.0)); tagList.func_150304_a(2, new NBTTagDouble(0.0)); tagList = tag.getTagList("Rotation", Constants.NBT.TAG_FLOAT); float yaw = tagList.func_150308_e(0); tagList.func_150304_a(0, new NBTTagFloat(0.0F)); this.nbtStats.generate(mobStats.theEntity, tag, mobStats); tagList = tag.getTagList("Pos", Constants.NBT.TAG_DOUBLE); tagList.func_150304_a(0, new NBTTagDouble(tagList.func_150309_d(0) + x)); tagList.func_150304_a(1, new NBTTagDouble(tagList.func_150309_d(1) + y)); tagList.func_150304_a(2, new NBTTagDouble(tagList.func_150309_d(2) + z)); tagList = tag.getTagList("Rotation", Constants.NBT.TAG_FLOAT); tagList.func_150304_a(0, new NBTTagFloat(tagList.func_150308_e(0) + yaw)); mobStats.theEntity.readFromNBT(tag); }
public static DataArray create(final NBTTagList nbt) { final DataArray list = new DataArray(); final int count = nbt.tagCount(); switch (nbt.func_150303_d()) { case 6: for (int i = 0; i < count; i++) list.add(new DataDouble(nbt.func_150309_d(i))); break; case 5: for (int i = 0; i < count; i++) list.add(new DataFloat(nbt.func_150308_e(i))); break; case 8: for (int i = 0; i < count; i++) list.add(new DataString(nbt.getStringTagAt(i))); break; case 10: for (int i = 0; i < count; i++) list.add(create(nbt.getCompoundTagAt(i))); break; case 11: for (int i = 0; i < count; i++) list.add(new DataIntegerArray(nbt.func_150306_c(i))); break; } return list; }