@Override public void updateContainingBlockInfo() { // Allow data being sync on game loading worldObj.markBlockForUpdate( xCoord, yCoord, zCoord); // Makes the server call getDescriptionPacket for a full data sync markDirty(); super.updateContainingBlockInfo(); }
public boolean myChunkSBIDWMT(Chunk c, int x, int y, int z, int blockId, int blockMeta) { int j1 = z << 4 | x; if (y >= c.precipitationHeightMap[j1] - 1) { c.precipitationHeightMap[j1] = -999; } // int k1 = c.heightMap[j1]; int l1 = c.getBlockID(x, y, z); int i2 = c.getBlockMetadata(x, y, z); if (l1 == blockId && i2 == blockMeta) { return false; } else { ExtendedBlockStorage[] storageArrays = c.getBlockStorageArray(); ExtendedBlockStorage extendedblockstorage = storageArrays[y >> 4]; if (extendedblockstorage == null) { if (blockId == 0) { return false; } extendedblockstorage = storageArrays[y >> 4] = new ExtendedBlockStorage(y >> 4 << 4, !c.worldObj.provider.hasNoSky); } int j2 = c.xPosition * 16 + x; int k2 = c.zPosition * 16 + z; extendedblockstorage.setExtBlockID(x, y & 15, z, blockId); if (l1 != 0) { if (!c.worldObj.isRemote) { Block.blocksList[l1].breakBlock(c.worldObj, j2, y, k2, l1, i2); } else if (Block.blocksList[l1] != null && Block.blocksList[l1].hasTileEntity(i2)) { TileEntity te = worldObj.getBlockTileEntity(j2, y, k2); if (te != null && te.shouldRefresh(l1, blockId, i2, blockMeta, worldObj, j2, y, k2)) { c.worldObj.removeBlockTileEntity(j2, y, k2); } } } if (extendedblockstorage.getExtBlockID(x, y & 15, z) != blockId) { return false; } else { extendedblockstorage.setExtBlockMetadata(x, y & 15, z, blockMeta); // Removed light recalculations /*if (flag) { c.generateSkylightMap(); } else { if (c.getBlockLightOpacity(par1, par2, par3) > 0) { if (par2 >= k1) { c.relightBlock(par1, par2 + 1, par3); } } else if (par2 == k1 - 1) { c.relightBlock(par1, par2, par3); } c.propagateSkylightOcclusion(par1, par3); }*/ TileEntity tileentity; if (blockId != 0) { if (Block.blocksList[blockId] != null && Block.blocksList[blockId].hasTileEntity(blockMeta)) { tileentity = c.getChunkBlockTileEntity(x, y, z); if (tileentity == null) { tileentity = Block.blocksList[blockId].createTileEntity(c.worldObj, blockMeta); c.worldObj.setBlockTileEntity(j2, y, k2, tileentity); } if (tileentity != null) { tileentity.updateContainingBlockInfo(); tileentity.blockMetadata = blockMeta; } } } c.isModified = true; return true; } } }
/** * Causes the TileEntity to reset all it's cached values for it's container block, blockID, * metaData and in the case of chests, the adjcacent chest check */ public void updateContainingBlockInfo() { super.updateContainingBlockInfo(); this.adjacentChestChecked = true; }
@Override public void updateContainingBlockInfo() { super.updateContainingBlockInfo(); haveBlockBounds = false; }