Beispiel #1
0
  @Override
  public void writeCustomNBT(NBTTagCompound nbtRoot) {
    NBTTagList conduitTags = new NBTTagList();
    for (IConduit conduit : conduits) {
      NBTTagCompound conduitRoot = new NBTTagCompound();
      ConduitUtil.writeToNBT(conduit, conduitRoot);
      conduitTags.appendTag(conduitRoot);
    }
    nbtRoot.setTag("conduits", conduitTags);
    if (facadeId != null) {
      nbtRoot.setString("facadeId", Block.blockRegistry.getNameForObject(facadeId));
      nbtRoot.setString("facadeType", facadeType.name());
    } else {
      nbtRoot.setString("facadeId", "null");
    }
    nbtRoot.setInteger("facadeMeta", facadeMeta);
    nbtRoot.setShort("nbtVersion", NBT_VERSION);

    if (MicroblocksUtil.supportMicroblocks()) {
      writeMicroblocksToNBT(nbtRoot);
    }
  }
Beispiel #2
0
  @Override
  public void readCustomNBT(NBTTagCompound nbtRoot) {
    short nbtVersion = nbtRoot.getShort("nbtVersion");

    conduits.clear();
    cachedCollidables.clear();
    NBTTagList conduitTags = (NBTTagList) nbtRoot.getTag("conduits");
    if (conduitTags != null) {
      for (int i = 0; i < conduitTags.tagCount(); i++) {
        NBTTagCompound conduitTag = conduitTags.getCompoundTagAt(i);
        IConduit conduit = ConduitUtil.readConduitFromNBT(conduitTag, nbtVersion);
        if (conduit != null) {
          conduit.setBundle(this);
          conduits.add(conduit);
        }
      }
    }
    String fs = nbtRoot.getString("facadeId");
    if (fs == null || "null".equals(fs)) {
      facadeId = null;
      facadeType = FacadeType.BASIC;
    } else {
      facadeId = Block.getBlockFromName(fs);
      if (nbtRoot.hasKey("facadeType")) { // backwards compat, never true in freshly placed bundles
        facadeType = FacadeType.valueOf(nbtRoot.getString("facadeType"));
      }
    }
    facadeMeta = nbtRoot.getInteger("facadeMeta");

    if (worldObj != null && worldObj.isRemote) {
      clientUpdated = true;
    }

    if (MicroblocksUtil.supportMicroblocks()) {
      readMicroblocksFromNBT(nbtRoot);
    }
  }