MCPcopy Index your code
hub / github.com/GregTech6/gregtech6 / doExplosionB

Method doExplosionB

src/main/java/gregapi/random/ExplosionGT.java:145–191  ·  view source on GitHub ↗
(boolean aEffects)

Source from the content-addressed store, hash-verified

143 }
144
145 @Override
146 public void doExplosionB(boolean aEffects) {
147 mWorld.playSoundEffect(explosionX, explosionY, explosionZ, SFX.MC_EXPLODE, 4, (1 + (mWorld.rand.nextFloat() - mWorld.rand.nextFloat()) * 0.2F) * 0.7F);
148 mWorld.spawnParticle(explosionSize >= 2 && isSmoking ? "hugeexplosion" : "largeexplode", explosionX, explosionY, explosionZ, 1, 0, 0);
149 if (isSmoking) {
150 @SuppressWarnings("rawtypes")
151 Iterator tIterator = affectedBlockPositions.iterator();
152 while (tIterator.hasNext()) {
153 final ChunkPosition tPos = (ChunkPosition)tIterator.next();
154 final Block tBlock = mWorld.getBlock(tPos.chunkPosX, tPos.chunkPosY, tPos.chunkPosZ);
155 if (aEffects) {
156 double d0 = (tPos.chunkPosX + mWorld.rand.nextFloat());
157 double d1 = (tPos.chunkPosY + mWorld.rand.nextFloat());
158 double d2 = (tPos.chunkPosZ + mWorld.rand.nextFloat());
159 double d3 = d0 - explosionX;
160 double d4 = d1 - explosionY;
161 double d5 = d2 - explosionZ;
162 double d6 = MathHelper.sqrt_double(d3 * d3 + d4 * d4 + d5 * d5);
163 d3 /= d6;
164 d4 /= d6;
165 d5 /= d6;
166 double d7 = 0.5D / (d6 / explosionSize + 0.1D);
167 d7 *= (mWorld.rand.nextFloat() * mWorld.rand.nextFloat() + 0.3F);
168 d3 *= d7;
169 d4 *= d7;
170 d5 *= d7;
171 mWorld.spawnParticle("explode", (d0 + explosionX) / 2, (d1 + explosionY) / 2, (d2 + explosionZ) / 2, d3, d4, d5);
172 mWorld.spawnParticle("smoke", d0, d1, d2, d3, d4, d5);
173 }
174 if (tBlock.getMaterial() != Material.air) {
175 if (tBlock.canDropFromExplosion(this)) tBlock.dropBlockAsItemWithChance(mWorld, tPos.chunkPosX, tPos.chunkPosY, tPos.chunkPosZ, mWorld.getBlockMetadata(tPos.chunkPosX, tPos.chunkPosY, tPos.chunkPosZ), 1 / explosionSize, 0);
176 tBlock.onBlockExploded(mWorld, tPos.chunkPosX, tPos.chunkPosY, tPos.chunkPosZ, this);
177 }
178 }
179 }
180 if (isFlaming) {
181 @SuppressWarnings("rawtypes")
182 Iterator tIterator = affectedBlockPositions.iterator();
183 while (tIterator.hasNext()) {
184 final ChunkPosition tPos = (ChunkPosition)tIterator.next();
185 final Block tBlock = mWorld.getBlock(tPos.chunkPosX, tPos.chunkPosY, tPos.chunkPosZ), tAbove = mWorld.getBlock(tPos.chunkPosX, tPos.chunkPosY - 1, tPos.chunkPosZ);
186 if (tBlock.getMaterial() == Material.air && tAbove.func_149730_j() && RNGSUS.nextInt(3) == 0) {
187 mWorld.setBlock(tPos.chunkPosX, tPos.chunkPosY, tPos.chunkPosZ, Blocks.fire);
188 }
189 }
190 }
191 }
192
193 @SuppressWarnings("rawtypes")
194 @Override public Map func_77277_b() {return field_77288_k;}

Callers 1

explodeMethod · 0.95

Calls 10

getBlockMetadataMethod · 0.80
nextIntMethod · 0.80
getBlockMethod · 0.65
getMaterialMethod · 0.65
iteratorMethod · 0.45
nextMethod · 0.45
onBlockExplodedMethod · 0.45
func_149730_jMethod · 0.45
setBlockMethod · 0.45

Tested by

no test coverage detected