コード例 #1
0
  @Override
  public void readFromNBT(NBTTagCompound filedata) {
    for (Object obj : filedata.func_150296_c()) {
      if (obj instanceof NBTTagList) {
        NBTTagList entry = (NBTTagList) obj;
        String name = entry.toString(); // TODO See if this is equivilent to 1.6's getName function
        ItemStack[] saveinv = new ItemStack[6];
        if (entry.tagCount() > 0) {
          for (int j = 0; j < entry.tagCount(); j++) {
            NBTTagCompound obj1 = entry.getCompoundTagAt(j);

            if (obj1 instanceof NBTTagCompound) {
              NBTTagCompound dat = (NBTTagCompound) obj1;
              int i = (dat.getByte("Slot")) & 7;
              if (i >= 6) {
                System.out.println("GCInv error retrieving savefile: slot was outside range 0-5");
                return;
              }
              saveinv[i] = ItemStack.loadItemStackFromNBT(dat);
            }
          }
        }
        CommandGCInv.savedata.put(name.toLowerCase(), saveinv);
      }
    }
  }
コード例 #2
0
  public void setData(TileEntity te, boolean force, NBTTagCompound NBT) {
    if (dispatch) {
      if (DragonOptions.LOGSYNCCME.getState()) {
        DragonAPICore.log("The sync packet for " + te + " would have just CME'd, as the");
        DragonAPICore.log(
            "Server-Thread data-writing code has overlapped with the Network-Thread byte[] dispatch.");
        DragonAPICore.log("Seeing this message frequently could indicate a serious issue.\n");
      }
      return;
    }

    field_148863_a = te.xCoord;
    field_148861_b = te.yCoord;
    field_148862_c = te.zCoord;

    changes.clear();
    Collection c = NBT.func_150296_c();
    Iterator<String> it = c.iterator();
    while (it.hasNext()) {
      String name = it.next();
      if (name == null) {
        DragonAPICore.logError(
            "An NBT tag with a null key is being sent to the sync packet from " + te);
      } else {
        NBTBase tag = NBT.getTag(name);
        this.addData(name, tag, force);
      }
    }
  }
コード例 #3
0
ファイル: ReikaNBTHelper.java プロジェクト: TehporP/DragonAPI
 public static void combineNBT(NBTTagCompound tag1, NBTTagCompound tag2) {
   if (tag2 == null || tag2.hasNoTags()) return;
   for (Object o : tag2.func_150296_c()) {
     String s = (String) o;
     NBTBase key = tag2.getTag(s);
     tag1.setTag(s, key.copy());
   }
 }
コード例 #4
0
 public static DataCompound create(final NBTTagCompound nbt) {
   final DataCompound compound = new DataCompound();
   for (final Object key : nbt.func_150296_c())
     try {
       compound.set((String) key, create(nbt.getTag((String) key)));
     } catch (final Exception e) {
     }
   return compound;
 }
コード例 #5
0
 private void populateFromStream(NBTTagCompound received) {
   Collection c = received.func_150296_c();
   Iterator<String> it = c.iterator();
   while (it.hasNext()) {
     String name = it.next();
     NBTBase tag = received.getTag(name);
     data.put(name, tag);
   }
 }
コード例 #6
0
  public Entity func_98265_a(Entity p_98265_1_) {
    if (this.getRandomMinecart() != null) {
      NBTTagCompound var2 = new NBTTagCompound();
      p_98265_1_.writeToNBTOptional(var2);
      Iterator var3 = this.getRandomMinecart().field_98222_b.func_150296_c().iterator();

      while (var3.hasNext()) {
        String var4 = (String) var3.next();
        NBTBase var5 = this.getRandomMinecart().field_98222_b.getTag(var4);
        var2.setTag(var4, var5.copy());
      }

      p_98265_1_.readFromNBT(var2);

      if (p_98265_1_.worldObj != null) {
        p_98265_1_.worldObj.spawnEntityInWorld(p_98265_1_);
      }

      NBTTagCompound var11;

      for (Entity var10 = p_98265_1_; var2.func_150297_b("Riding", 10); var2 = var11) {
        var11 = var2.getCompoundTag("Riding");
        Entity var12 = EntityList.createEntityByName(var11.getString("id"), p_98265_1_.worldObj);

        if (var12 != null) {
          NBTTagCompound var6 = new NBTTagCompound();
          var12.writeToNBTOptional(var6);
          Iterator var7 = var11.func_150296_c().iterator();

          while (var7.hasNext()) {
            String var8 = (String) var7.next();
            NBTBase var9 = var11.getTag(var8);
            var6.setTag(var8, var9.copy());
          }

          var12.readFromNBT(var6);
          var12.setLocationAndAngles(
              var10.posX, var10.posY, var10.posZ, var10.rotationYaw, var10.rotationPitch);

          if (p_98265_1_.worldObj != null) {
            p_98265_1_.worldObj.spawnEntityInWorld(var12);
          }

          var10.mountEntity(var12);
        }

        var10 = var12;
      }
    } else if (p_98265_1_ instanceof EntityLivingBase && p_98265_1_.worldObj != null) {
      ((EntityLiving) p_98265_1_).onSpawnWithEgg((IEntityLivingData) null);
      this.getSpawnerWorld().spawnEntityInWorld(p_98265_1_);
    }

    return p_98265_1_;
  }
コード例 #7
0
ファイル: ReikaNBTHelper.java プロジェクト: TehporP/DragonAPI
  public static ArrayList<String> parseNBTAsLines(NBTTagCompound nbt) {
    ArrayList<String> li = new ArrayList();
    Iterator<NBTBase> it = nbt.func_150296_c().iterator();
    for (Object o : nbt.func_150296_c()) {
      String key = (String) o;
      NBTBase b = nbt.getTag(key); /*
			if (b instanceof NBTTagByteArray) {
				li.add(b.getName()+": "+Arrays.toString(((NBTTagByteArray)b).byteArray));
			}
			else if (b instanceof NBTTagIntArray) {
				li.add(b.getName()+": "+Arrays.toString(((NBTTagIntArray)b).intArray));
			}
			else if (b instanceof NBTTagCompound) {
				li.add(EnumChatFormatting.GOLD+b.getName()+": "+b.toString());
			}
			else {
				li.add(b.getName()+": "+b.toString());
			}*/
      li.add(key + ": " + b.toString());
    }
    return li;
  }
コード例 #8
0
ファイル: HeatIndex.java プロジェクト: raymondbh/TFCraft
 public ItemStack getOutput(ItemStack in, Random R) {
   ItemStack is = getOutput(R);
   if (is != null && this.keepNBT) {
     if (is.hasTagCompound()) {
       NBTTagCompound nbt = is.getTagCompound();
       for (Object o : in.getTagCompound().func_150296_c()) {
         NBTBase n = (NBTBase) o;
         if (nbt.hasKey(n.toString())) nbt.removeTag(n.toString());
         nbt.func_150296_c().add(o);
       }
     } else {
       is.setTagCompound(in.stackTagCompound);
       if (TFC_ItemHeat.HasTemp(is)) TFC_ItemHeat.SetTemp(is, TFC_ItemHeat.GetTemp(is) * 0.9f);
     }
   }
   return is;
 }
コード例 #9
0
ファイル: BlockDataGrid.java プロジェクト: Corosauce/CoroUtil
  public void readFromFile() {
    try {

      String saveFolder =
          CoroUtilFile.getWorldSaveFolderPath()
              + CoroUtilFile.getWorldFolderName()
              + "epoch"
              + File.separator;

      if ((new File(saveFolder + "EpochBlockDataDim_" + world.provider.dimensionId + ".dat"))
          .exists()) {
        NBTTagCompound data =
            CompressedStreamTools.readCompressed(
                new FileInputStream(
                    saveFolder + "EpochBlockDataDim_" + world.provider.dimensionId + ".dat"));

        // Collection playerDataCl = data.getTags();
        Iterator it = data.func_150296_c().iterator(); // playerDataCl.iterator();

        while (it.hasNext()) {
          String keyName = (String) it.next();
          NBTTagCompound nbt = data.getCompoundTag(keyName);

          BlockDataPoint bdp =
              this.getBlockDataFromNBT(
                  nbt.getInteger("xCoord"),
                  nbt.getInteger("yCoord"),
                  nbt.getInteger("zCoord"),
                  nbt);
          if (bdp != null) {
            bdp.readFromNBT(nbt);
          } else {
            // must have been set to air at some point...
          }
        }
      }

    } catch (Exception ex) {
      ex.printStackTrace();
    }
  }
コード例 #10
0
ファイル: ReikaNBTHelper.java プロジェクト: TehporP/DragonAPI
 public static void clearTagCompound(NBTTagCompound dat) {
   Collection<String> tags = new ArrayList(dat.func_150296_c());
   for (String tag : tags) {
     dat.removeTag(tag);
   }
 }