public ChunkCache(net.minecraft.src.World world, int i, int j, int k, int l, int i1, int j1) { // Referenced classes of package net.minecraft.src: // IBlockAccess, World, Chunk, Material, // Block, TileEntity worldObj = world; chunkX = i >> 4; chunkZ = k >> 4; int k1 = l >> 4; int l1 = j1 >> 4; chunkArray = new Chunk[(k1 - chunkX) + 1][]; for (int iv = 0; iv < chunkArray.Length; iv++) { chunkArray[iv] = new Chunk[(l1 - chunkZ) + 1]; } for (int i2 = chunkX; i2 <= k1; i2++) { for (int j2 = chunkZ; j2 <= l1; j2++) { chunkArray[i2 - chunkX][j2 - chunkZ] = world.GetChunkFromChunkCoords(i2, j2); } } }
public Packet52MultiBlockChange(int x, int z, short[] aword0, int arraySize, net.minecraft.src.World world) { isChunkDataPacket = true; xPosition = x; zPosition = z; size = arraySize; coordinateArray = new short[arraySize]; typeArray = new byte[arraySize]; metadataArray = new byte[arraySize]; net.minecraft.src.Chunk chunk = world.GetChunkFromChunkCoords(x, z); for (int l = 0; l < arraySize; l++) { int i1 = aword0[l] >> 12 & 0xf; int j1 = aword0[l] >> 8 & 0xf; int k1 = aword0[l] & 0xff; coordinateArray[l] = aword0[l]; typeArray[l] = unchecked ((byte)chunk.GetBlockID(i1, k1, j1)); metadataArray[l] = unchecked ((byte)chunk.GetBlockMetadata(i1, k1, j1)); } }
public virtual void Func_4107_a(net.minecraft.src.World world) { int i = (field_960_e - field_956_b) + 1; int j = (field_959_f - field_962_c) + 1; int k = (field_958_g - field_961_d) + 1; int l = i * j * k; if (l > 32768) { System.Console.Out.WriteLine("Light too large, skipping!"); return; } int i1 = 0; int j1 = 0; bool flag = false; bool flag1 = false; for (int k1 = field_956_b; k1 <= field_960_e; k1++) { for (int l1 = field_961_d; l1 <= field_958_g; l1++) { int i2 = k1 >> 4; int j2 = l1 >> 4; bool flag2 = false; if (flag && i2 == i1 && j2 == j1) { flag2 = flag1; } else { flag2 = world.DoChunksNearChunkExist(k1, 0, l1, 1); if (flag2) { net.minecraft.src.Chunk chunk = world.GetChunkFromChunkCoords(k1 >> 4, l1 >> 4); if (chunk.Func_21101_g()) { flag2 = false; } } flag1 = flag2; i1 = i2; j1 = j2; } if (!flag2) { continue; } if (field_962_c < 0) { field_962_c = 0; } if (field_959_f >= 128) { field_959_f = 127; } for (int k2 = field_962_c; k2 <= field_959_f; k2++) { int l2 = world.GetSavedLightValue(field_957_a, k1, k2, l1); int i3 = 0; int j3 = world.GetBlockId(k1, k2, l1); int k3 = net.minecraft.src.Block.lightOpacity[j3]; if (k3 == 0) { k3 = 1; } int l3 = 0; if (field_957_a == net.minecraft.src.EnumSkyBlock.Sky) { if (world.CanExistingBlockSeeTheSky(k1, k2, l1)) { l3 = 15; } } else { if (field_957_a == net.minecraft.src.EnumSkyBlock.Block) { l3 = net.minecraft.src.Block.lightValue[j3]; } } if (k3 >= 15 && l3 == 0) { i3 = 0; } else { int i4 = world.GetSavedLightValue(field_957_a, k1 - 1, k2, l1); int k4 = world.GetSavedLightValue(field_957_a, k1 + 1, k2, l1); int l4 = world.GetSavedLightValue(field_957_a, k1, k2 - 1, l1); int i5 = world.GetSavedLightValue(field_957_a, k1, k2 + 1, l1); int j5 = world.GetSavedLightValue(field_957_a, k1, k2, l1 - 1); int k5 = world.GetSavedLightValue(field_957_a, k1, k2, l1 + 1); i3 = i4; if (k4 > i3) { i3 = k4; } if (l4 > i3) { i3 = l4; } if (i5 > i3) { i3 = i5; } if (j5 > i3) { i3 = j5; } if (k5 > i3) { i3 = k5; } i3 -= k3; if (i3 < 0) { i3 = 0; } if (l3 > i3) { i3 = l3; } } if (l2 == i3) { continue; } world.SetLightValue(field_957_a, k1, k2, l1, i3); int j4 = i3 - 1; if (j4 < 0) { j4 = 0; } world.NeighborLightPropagationChanged(field_957_a, k1 - 1, k2, l1, j4); world.NeighborLightPropagationChanged(field_957_a, k1, k2 - 1, l1, j4); world.NeighborLightPropagationChanged(field_957_a, k1, k2, l1 - 1, j4); if (k1 + 1 >= field_960_e) { world.NeighborLightPropagationChanged(field_957_a, k1 + 1, k2, l1, j4); } if (k2 + 1 >= field_959_f) { world.NeighborLightPropagationChanged(field_957_a, k1, k2 + 1, l1, j4); } if (l1 + 1 >= field_958_g) { world.NeighborLightPropagationChanged(field_957_a, k1, k2, l1 + 1, j4); } } } } }