Example #1
0
  @Override
  @Method(modid = "ImmibisMicroblocks")
  public void onMicroblocksChanged() {
    Set<ForgeDirection> needUpdates = EnumSet.allOf(ForgeDirection.class);
    needUpdates.remove(ForgeDirection.UNKNOWN);
    for (Part p : getCoverSystem().getAllParts()) {
      if (p.type.getPartClass() == EnumPartClass.Panel) {
        ForgeDirection dir = MicroblocksUtil.posToDir(p.pos);
        updateConnections(dir, true);
        needUpdates.remove(dir);
      }
    }
    for (ForgeDirection dir : needUpdates) {
      updateConnections(dir, false);
    }

    worldObj.notifyBlocksOfNeighborChange(xCoord, yCoord, zCoord, getBlockType());
    updateBlock();
  }
Example #2
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);
    }
  }
Example #3
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);
    }
  }
Example #4
0
 private void initMicroblocks() {
   if (MicroblocksUtil.supportMicroblocks()) {
     createCovers();
   }
 }