public virtual void func_353_b() { int i = 127; for (int j = 0; j < 16; j++) { for (int l = 0; l < 16; l++) { int j1 = 127; int k1; for (k1 = j << 11 | l << 7; j1 > 0 && Block.lightOpacity[blocks[(k1 + j1) - 1]] == 0; j1--) { } heightMap[l << 4 | j] = (byte)j1; if (j1 < i) { i = j1; } if (worldObj.worldProvider.field_4306_c) { continue; } int l1 = 15; int i2 = 127; do { l1 -= Block.lightOpacity[blocks[k1 + i2]]; if (l1 > 0) { skylightMap.setNibble(j, i2, l, l1); } } while (--i2 > 0 && l1 > 0); } } field_686_i = i; for (int k = 0; k < 16; k++) { for (int i1 = 0; i1 < 16; i1++) { func_333_c(k, i1); } } isModified = true; }
public virtual bool setBlockIDWithMetadata(int i, int j, int k, int l, int i1) { var byte0 = (byte)l; int j1 = heightMap[k << 4 | i] & 0xff; int k1 = blocks[i << 11 | k << 7 | j] & 0xff; if (k1 == l && data.getNibble(i, j, k) == i1) { return(false); } int l1 = xPosition * 16 + i; int i2 = zPosition * 16 + k; blocks[i << 11 | k << 7 | j] = byte0; if (k1 != 0 && !worldObj.singleplayerWorld) { Block.blocksList[k1].onBlockRemoval(worldObj, l1, j, i2); } data.setNibble(i, j, k, i1); if (!worldObj.worldProvider.field_4306_c) { if (Block.lightOpacity[byte0] != 0) { if (j >= j1) { func_339_g(i, j + 1, k); } } else if (j == j1 - 1) { func_339_g(i, j, k); } worldObj.func_483_a(EnumSkyBlock.Sky, l1, j, i2, l1, j, i2); } worldObj.func_483_a(EnumSkyBlock.Block, l1, j, i2, l1, j, i2); func_333_c(i, k); data.setNibble(i, j, k, i1); if (l != 0) { Block.blocksList[l].onBlockAdded(worldObj, l1, j, i2); } isModified = true; return(true); }
public virtual void setLightValue(EnumSkyBlock enumskyblock, int i, int j, int k, int l) { isModified = true; if (enumskyblock == EnumSkyBlock.Sky) { skylightMap.setNibble(i, j, k, l); } else if (enumskyblock == EnumSkyBlock.Block) { blocklightMap.setNibble(i, j, k, l); } else { return; } }