Hbm-s-Nuclear-Tech-GIT/com/hbm/explosion/NukeEnvironmentalEffect.java

112 lines
2.5 KiB
Java

package com.hbm.explosion;
import java.util.Random;
import com.hbm.blocks.ModBlocks;
import net.minecraft.block.Block;
import net.minecraft.init.Blocks;
import net.minecraft.world.World;
public class NukeEnvironmentalEffect {
static Random rand = new Random();
/**
* Area of effect radiation effect. j > 0 for jagged edges of the spherical area. Args: world, x, y, z, radius, outer radius with random chance.
*/
public static void applyStandardAOE(World world, int x, int y, int z, int r, int j) {
int r2 = r * r;
int r22 = r2 / 2;
for (int xx = -r; xx < r; xx++) {
int X = xx + x;
int XX = xx * xx;
for (int yy = -r; yy < r; yy++) {
int Y = yy + y;
int YY = XX + yy * yy;
for (int zz = -r; zz < r; zz++) {
int Z = zz + z;
int ZZ = YY + zz * zz;
if (ZZ < r22 + rand.nextInt(j)) {
applyStandardEffect(world, X, Y, Z);
}
}
}
}
}
public static void applyStandardEffect(World world, int x, int y, int z) {
int chance = 100;
Block b = null;
int meta = 0;
Block in = world.getBlock(x, y, z);
int inMeta = world.getBlockMetadata(x, y, z);
if(in == Blocks.air)
return;
//Task done by fallout effect entity.
/*if(in == Blocks.grass) {
b = ModBlocks.waste_earth;
} else */
if(in == Blocks.sand) {
if(inMeta == 1)
b = ModBlocks.waste_trinitite_red;
else
b = ModBlocks.waste_trinitite;
chance = 20;
} else if(in == Blocks.mycelium) {
b = ModBlocks.waste_mycelium;
} else if(in == Blocks.log || in == Blocks.log2) {
b = ModBlocks.waste_log;
} else if(in == Blocks.planks) {
b = ModBlocks.waste_planks;
} else if(in == Blocks.mossy_cobblestone) {
b = ModBlocks.ore_oil;
chance = 50;
} else if(in == Blocks.coal_ore) {
b = Blocks.diamond_ore;
chance = 10;
} else if(in == ModBlocks.ore_uranium) {
b = ModBlocks.ore_schrabidium;
chance = 10;
} else if(in == ModBlocks.ore_nether_uranium) {
b = ModBlocks.ore_nether_schrabidium;
chance = 10;
} else if(in == ModBlocks.ore_nether_plutonium) {
b = ModBlocks.ore_nether_schrabidium;
chance = 25;
} else if(in == Blocks.brown_mushroom_block && inMeta == 10) {
b = ModBlocks.waste_planks;
} else if(in == Blocks.red_mushroom_block && inMeta == 10) {
b = ModBlocks.waste_planks;
} else if(in == Blocks.end_stone) {
b = ModBlocks.ore_tikite;
chance = 1;
} else if(in == Blocks.clay) {
b = Blocks.hardened_clay;
}
if(b != null && rand.nextInt(1000) < chance)
world.setBlock(x, y, z, b, meta, 2);
}
}