Exemplo n.º 1
0
  /// 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;
 }