slapped new explosion particles onto every small explosion

This commit is contained in:
Bob 2021-01-10 18:03:42 +01:00
parent b41fca36ff
commit 692deefdec
54 changed files with 13756 additions and 16761 deletions

View File

@ -505,6 +505,7 @@ item.ammo_mirv.name=Mini-MIRV
item.ammo_mirv_high.name=Mini-MIRV (Stark)
item.ammo_mirv_low.name=Mini-MIRV (Schwach)
item.ammo_mirv_safe.name=Mini-MIRV (Sicher)
item.ammo_mirv_special.name=Mini-MILV
item.ammo_nuke.name=Miniatombombe
item.ammo_nuke_high.name=Miniatombombe (Stark)
item.ammo_nuke_low.name=Miniatombombe (Schwach)
@ -1252,6 +1253,7 @@ item.ingot_semtex.name=Semtextafel
item.ingot_solinium.name=Soliniumbarren
item.ingot_starmetal.name=§9Sternenmetallbarren§r
item.ingot_steel.name=Stahlbarren
item.ingot_steel_dusted.name=Bestäubter Stahlbarren
item.ingot_th232.name=Th232-Barren
item.ingot_thorium_fuel.name=Thoriumkernbrennstoffbarren
item.ingot_titanium.name=Titanbarren

View File

@ -505,6 +505,7 @@ item.ammo_mirv.name=Mini MIRV
item.ammo_mirv_high.name=Mini MIRV (High Yield)
item.ammo_mirv_low.name=Mini MIRV (Low Yield)
item.ammo_mirv_safe.name=Mini MIRV (Safe)
item.ammo_mirv_special.name=Mini MILV
item.ammo_nuke.name=Mini Nuke
item.ammo_nuke_high.name=Mini Nuke (High Yield)
item.ammo_nuke_low.name=Mini Nuke (Low Yield)
@ -1252,6 +1253,7 @@ item.ingot_semtex.name=Bar of Semtex
item.ingot_solinium.name=Solinium Ingot
item.ingot_starmetal.name=§9Starmetal Ingot§r
item.ingot_steel.name=Steel Ingot
item.ingot_steel_dusted.name=Dusted Steel Ingot
item.ingot_th232.name=Th232 Ingot
item.ingot_thorium_fuel.name=Ingot of Thorium Fuel
item.ingot_titanium.name=Titanium Ingot

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 322 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 677 B

After

Width:  |  Height:  |  Size: 312 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 KiB

View File

@ -28,139 +28,137 @@ public abstract class BlockDummyable extends BlockContainer {
super(mat);
this.setTickRandomly(true);
}
/// BLOCK METADATA ///
//0-5 dummy rotation (for dummy neighbor checks)
//6-11 extra (6 rotations with flag, for pipe connectors and the like)
//12-15 block rotation (for rendering the TE)
//meta offset from dummy to TE rotation
// 0-5 dummy rotation (for dummy neighbor checks)
// 6-11 extra (6 rotations with flag, for pipe connectors and the like)
// 12-15 block rotation (for rendering the TE)
// meta offset from dummy to TE rotation
public static final int offset = 10;
//meta offset from dummy to extra rotation
// meta offset from dummy to extra rotation
public static final int extra = 6;
public static boolean safeRem = false;
public void onNeighborBlockChange(World world, int x, int y, int z, Block block) {
super.onNeighborBlockChange(world, x, y, z, block);
if(world.isRemote || safeRem)
return;
int metadata = world.getBlockMetadata(x, y, z);
//if it's an extra, remove the extra-ness
if(metadata >= extra)
metadata -= extra;
ForgeDirection dir = ForgeDirection.getOrientation(metadata).getOpposite();
Block b = world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ);
if(b != this) {
world.setBlockToAir(x, y, z);
//world.setBlock(x, y, z, ModBlocks.dfc_injector, dir.ordinal(), 3);
}
}
public void updateTick(World world, int x, int y, int z, Random rand) {
super.updateTick(world, x, y, z, rand);
if(world.isRemote)
return;
int metadata = world.getBlockMetadata(x, y, z);
//if it's an extra, remove the extra-ness
if(metadata >= extra)
metadata -= extra;
ForgeDirection dir = ForgeDirection.getOrientation(metadata).getOpposite();
Block b = world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ);
if(b != this) {
world.setBlockToAir(x, y, z);
}
}
public int[] findCore(World world, int x, int y, int z) {
positions.clear();
return findCoreRec(world, x, y, z);
}
List<ThreeInts> positions = new ArrayList();
public int[] findCoreRec(World world, int x, int y, int z) {
ThreeInts pos = new ThreeInts(x, y, z);
int metadata = world.getBlockMetadata(x, y, z);
//if it's an extra, remove the extra-ness
if(metadata >= extra)
metadata -= extra;
//if the block matches and the orientation is "UNKNOWN", it's the core
if(world.getBlock(x, y, z) == this && ForgeDirection.getOrientation(metadata) == ForgeDirection.UNKNOWN)
return new int[] { x, y, z };
if(positions.contains(pos))
return null;
ForgeDirection dir = ForgeDirection.getOrientation(metadata).getOpposite();
Block b = world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ);
if(b != this) {
return null;
}
positions.add(pos);
return findCoreRec(world, x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ);
}
public static boolean safeRem = false;
public void onNeighborBlockChange(World world, int x, int y, int z, Block block) {
super.onNeighborBlockChange(world, x, y, z, block);
if(world.isRemote || safeRem)
return;
int metadata = world.getBlockMetadata(x, y, z);
// if it's an extra, remove the extra-ness
if(metadata >= extra)
metadata -= extra;
ForgeDirection dir = ForgeDirection.getOrientation(metadata).getOpposite();
Block b = world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ);
if(b != this) {
world.setBlockToAir(x, y, z);
// world.setBlock(x, y, z, ModBlocks.dfc_injector, dir.ordinal(),
// 3);
}
}
public void updateTick(World world, int x, int y, int z, Random rand) {
super.updateTick(world, x, y, z, rand);
if(world.isRemote)
return;
int metadata = world.getBlockMetadata(x, y, z);
// if it's an extra, remove the extra-ness
if(metadata >= extra)
metadata -= extra;
ForgeDirection dir = ForgeDirection.getOrientation(metadata).getOpposite();
Block b = world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ);
if(b != this) {
world.setBlockToAir(x, y, z);
}
}
public int[] findCore(World world, int x, int y, int z) {
positions.clear();
return findCoreRec(world, x, y, z);
}
List<ThreeInts> positions = new ArrayList();
public int[] findCoreRec(World world, int x, int y, int z) {
ThreeInts pos = new ThreeInts(x, y, z);
int metadata = world.getBlockMetadata(x, y, z);
// if it's an extra, remove the extra-ness
if(metadata >= extra)
metadata -= extra;
// if the block matches and the orientation is "UNKNOWN", it's the core
if(world.getBlock(x, y, z) == this && ForgeDirection.getOrientation(metadata) == ForgeDirection.UNKNOWN)
return new int[] { x, y, z };
if(positions.contains(pos))
return null;
ForgeDirection dir = ForgeDirection.getOrientation(metadata).getOpposite();
Block b = world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ);
if(b != this) {
return null;
}
positions.add(pos);
return findCoreRec(world, x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ);
}
@Override
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) {
if(!(player instanceof EntityPlayer))
return;
world.setBlockToAir(x, y, z);
EntityPlayer pl = (EntityPlayer) player;
int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3;
int o = -getOffset();
y += getHeightOffset();
ForgeDirection dir = ForgeDirection.NORTH;
if(i == 0)
{
if(i == 0) {
dir = ForgeDirection.getOrientation(2);
}
if(i == 1)
{
if(i == 1) {
dir = ForgeDirection.getOrientation(5);
}
if(i == 2)
{
if(i == 2) {
dir = ForgeDirection.getOrientation(3);
}
if(i == 3)
{
if(i == 3) {
dir = ForgeDirection.getOrientation(4);
}
if(!checkRequirement(world, x, y, z, dir, o)) {
if(!pl.capabilities.isCreativeMode) {
ItemStack stack = pl.inventory.mainInventory[pl.inventory.currentItem];
Item item = Item.getItemFromBlock(this);
if(stack == null) {
pl.inventory.mainInventory[pl.inventory.currentItem] = new ItemStack(this);
} else {
@ -171,12 +169,12 @@ public abstract class BlockDummyable extends BlockContainer {
}
}
}
return;
}
if(!world.isRemote) {
world.setBlock(x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, this, dir.ordinal() + offset, 3);
world.setBlock(x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, this, dir.ordinal() + offset, 3);
fillSpace(world, x, y, z, dir, o);
}
y -= getHeightOffset();
@ -185,130 +183,125 @@ public abstract class BlockDummyable extends BlockContainer {
super.onBlockPlacedBy(world, x, y, z, player, itemStack);
}
protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) {
return MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, getDimensions(), x, y, z, dir);
return MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, getDimensions(), x, y, z, dir);
}
protected void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) {
MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, getDimensions(), this, dir);
MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, getDimensions(), this, dir);
}
//"upgrades" regular dummy blocks to ones with the extra flag
// "upgrades" regular dummy blocks to ones with the extra flag
public void makeExtra(World world, int x, int y, int z) {
if(world.getBlock(x, y, z) != this)
return;
int meta = world.getBlockMetadata(x, y, z);
if(meta > 5)
return;
//world.setBlockMetadataWithNotify(x, y, z, meta + extra, 3);
// world.setBlockMetadataWithNotify(x, y, z, meta + extra, 3);
this.safeRem = true;
world.setBlock(x, y, z, this, meta + extra, 3);
this.safeRem = false;
}
//checks if the dummy metadata is within the extra range
// checks if the dummy metadata is within the extra range
public boolean hasExtra(int meta) {
return meta > 5 && meta < 12;
}
@Override
public void breakBlock(World world, int x, int y, int z, Block b, int i)
{
public void breakBlock(World world, int x, int y, int z, Block b, int i) {
if(i >= 12) {
//ForgeDirection d = ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z) - offset);
//MultiblockHandler.emptySpace(world, x, y, z, getDimensions(), this, d);
// ForgeDirection d = ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z) - offset);
// MultiblockHandler.emptySpace(world, x, y, z, getDimensions(), this, d);
} else if(!safeRem) {
if(i >= extra)
i -= extra;
ForgeDirection dir = ForgeDirection.getOrientation(i).getOpposite();
int[] pos = findCore(world, x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ);
if(pos != null) {
if(i >= extra)
i -= extra;
//ForgeDirection d = ForgeDirection.getOrientation(world.getBlockMetadata(pos[0], pos[1], pos[2]) - offset);
world.setBlockToAir(pos[0], pos[1], pos[2]);
// ForgeDirection dir = ForgeDirection.getOrientation(i).getOpposite();
// int[] pos = findCore(world, x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ);
// if(pos != null) {
// TODO: run extensive tests on whether this change doesn't break anything
ForgeDirection d = ForgeDirection.getOrientation(i);
world.setBlockToAir(x - d.offsetX, y - d.offsetY, z - d.offsetZ);
// }
}
TileEntity te = world.getTileEntity(x, y, z);
if(te instanceof ISidedInventory) {
ISidedInventory sidedinv = (ISidedInventory) te;
if(sidedinv != null) {
for(int i1 = 0; i1 < sidedinv.getSizeInventory(); ++i1) {
ItemStack itemstack = sidedinv.getStackInSlot(i1);
if(itemstack != null) {
float f = world.rand.nextFloat() * 0.8F + 0.1F;
float f1 = world.rand.nextFloat() * 0.8F + 0.1F;
float f2 = world.rand.nextFloat() * 0.8F + 0.1F;
while(itemstack.stackSize > 0) {
int j1 = world.rand.nextInt(21) + 10;
if(j1 > itemstack.stackSize) {
j1 = itemstack.stackSize;
}
itemstack.stackSize -= j1;
EntityItem entityitem = new EntityItem(world, x + f, y + f1, z + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage()));
if(itemstack.hasTagCompound()) {
entityitem.getEntityItem().setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy());
}
float f3 = 0.05F;
entityitem.motionX = (float) world.rand.nextGaussian() * f3;
entityitem.motionY = (float) world.rand.nextGaussian() * f3 + 0.2F;
entityitem.motionZ = (float) world.rand.nextGaussian() * f3;
world.spawnEntityInWorld(entityitem);
}
}
}
world.func_147453_f(x, y, z, b);
}
}
TileEntity te = world.getTileEntity(x, y, z);
if(te instanceof ISidedInventory) {
ISidedInventory sidedinv = (ISidedInventory)te;
if (sidedinv != null)
{
for (int i1 = 0; i1 < sidedinv.getSizeInventory(); ++i1)
{
ItemStack itemstack = sidedinv.getStackInSlot(i1);
if (itemstack != null)
{
float f = world.rand.nextFloat() * 0.8F + 0.1F;
float f1 = world.rand.nextFloat() * 0.8F + 0.1F;
float f2 = world.rand.nextFloat() * 0.8F + 0.1F;
while (itemstack.stackSize > 0)
{
int j1 = world.rand.nextInt(21) + 10;
if (j1 > itemstack.stackSize)
{
j1 = itemstack.stackSize;
}
itemstack.stackSize -= j1;
EntityItem entityitem = new EntityItem(world, x + f, y + f1, z + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage()));
if (itemstack.hasTagCompound())
{
entityitem.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy());
}
float f3 = 0.05F;
entityitem.motionX = (float)world.rand.nextGaussian() * f3;
entityitem.motionY = (float)world.rand.nextGaussian() * f3 + 0.2F;
entityitem.motionZ = (float)world.rand.nextGaussian() * f3;
world.spawnEntityInWorld(entityitem);
}
}
}
world.func_147453_f(x, y, z, b);
}
}
super.breakBlock(world, x, y, z, b, i);
}
}
@Override
public int getRenderType(){
public int getRenderType() {
return -1;
}
@Override
public boolean isOpaqueCube() {
return false;
}
@Override
public boolean renderAsNormalBlock() {
return false;
}
public abstract int[] getDimensions();
public abstract int getOffset();
public int getHeightOffset() {
return 0;
}

View File

@ -5,12 +5,14 @@ import java.util.Random;
import com.hbm.blocks.ModBlocks;
import com.hbm.config.BombConfig;
import com.hbm.entity.logic.EntityBalefire;
import com.hbm.explosion.ExplosionParticleB;
import com.hbm.interfaces.IBomb;
import com.hbm.items.ModItems;
import com.hbm.main.MainRegistry;
import com.hbm.packet.AuxParticlePacketNT;
import com.hbm.packet.PacketDispatcher;
import com.hbm.tileentity.bomb.TileEntityCrashedBomb;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.entity.EntityLivingBase;
@ -18,6 +20,7 @@ import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
@ -97,16 +100,22 @@ public class BlockCrashedBomb extends BlockContainer implements IBomb {
@Override
public void explode(World world, int x, int y, int z) {
if (!world.isRemote) {
world.setBlockToAir(x, y, z);
EntityBalefire bf = new EntityBalefire(world);
EntityBalefire bf = new EntityBalefire(world).mute();
bf.posX = x;
bf.posY = y;
bf.posZ = z;
bf.destructionRange = (int) (BombConfig.fatmanRadius * 1.25);
world.spawnEntityInWorld(bf);
ExplosionParticleB.spawnMush(world, x, y, z);
NBTTagCompound data = new NBTTagCompound();
data.setString("type", "muke");
data.setBoolean("balefire", true);
PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, x + 0.5, y + 0.5, z + 0.5), new TargetPoint(world.provider.dimensionId, x + 0.5, y + 0.5, z + 0.5, 250));
world.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, "hbm:weapon.mukeExplosion", 15.0F, 1.0F);
}
}
}

View File

@ -3,14 +3,10 @@ package com.hbm.blocks.bomb;
import java.util.Random;
import com.hbm.blocks.ModBlocks;
import com.hbm.config.BombConfig;
import com.hbm.entity.logic.EntityNukeExplosionMK4;
import com.hbm.explosion.ExplosionLarge;
import com.hbm.explosion.ExplosionParticle;
import com.hbm.explosion.ExplosionParticleB;
import com.hbm.explosion.ExplosionNukeSmall;
import com.hbm.interfaces.IBomb;
import com.hbm.items.ModItems;
import com.hbm.main.MainRegistry;
import com.hbm.tileentity.bomb.TileEntityLandmine;
import net.minecraft.block.Block;
@ -175,19 +171,9 @@ public class Landmine extends BlockContainer implements IBomb {
ExplosionLarge.spawnShrapnels(world, x + 0.5, y + 0.5, z + 0.5, 5);
}
if (this == ModBlocks.mine_fat) {
world.spawnEntityInWorld(EntityNukeExplosionMK4.statFac(world, BombConfig.fatmanRadius, x + 0.5, y + 0.5, z + 0.5));
if(MainRegistry.polaroidID == 11) {
ExplosionParticleB.spawnMush(world, x + 0.5, y - 3, z + 0.5);
} else {
if(rand.nextInt(100) == 0)
{
ExplosionParticleB.spawnMush(world, x + 0.5, y - 3, z + 0.5);
} else {
ExplosionParticle.spawnMush(world, x + 0.5, y - 3, z + 0.5);
}
}
ExplosionNukeSmall.explode(world, x + 0.5, y + 0.5, z + 0.5, ExplosionNukeSmall.medium);
}
}
}

View File

@ -58,8 +58,7 @@ public class BlockChain extends Block {
@SideOnly(Side.CLIENT)
public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) {
if(world.isSideSolid(x, y - 1, z, ForgeDirection.UP, false) ||
(world.getBlock(x, y - 1, z) == this && world.getBlockMetadata(x, y, z) == world.getBlockMetadata(x, y - 1, z)))
if(world.isSideSolid(x, y - 1, z, ForgeDirection.UP, false) || (world.getBlock(x, y - 1, z) == this && world.getBlockMetadata(x, y, z) == world.getBlockMetadata(x, y - 1, z)))
return this.blockIcon;
return this.iconEnd;
@ -72,7 +71,7 @@ public class BlockChain extends Block {
public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) {
func_149797_b(world.getBlockMetadata(x, y, z));
if(!world.isSideSolid(x, y - 1, z, ForgeDirection.UP, false))
if(!(world.isSideSolid(x, y - 1, z, ForgeDirection.UP, false) || (world.getBlock(x, y - 1, z) == this && world.getBlockMetadata(x, y, z) == world.getBlockMetadata(x, y - 1, z))))
this.minY = 0.25;
}

View File

@ -318,11 +318,19 @@ public class WeaponRecipes {
GameRegistry.addRecipe(new ItemStack(ModItems.ammo_nuke_safe, 1), new Object[] { "G", "N", 'G', Items.glowstone_dust, 'N', ModItems.ammo_nuke_low });
GameRegistry.addRecipe(new ItemStack(ModItems.ammo_nuke_pumpkin, 1), new Object[] { " T ", "TST", " T ", 'T', Blocks.tnt, 'S', ModItems.assembly_nuke });
//MIRV recycling
GameRegistry.addShapelessRecipe(new ItemStack(ModItems.ammo_nuke, 6), new Object[] { ModItems.ammo_mirv });
GameRegistry.addShapelessRecipe(new ItemStack(ModItems.ammo_nuke_low, 6), new Object[] { ModItems.ammo_mirv_low });
GameRegistry.addShapelessRecipe(new ItemStack(ModItems.ammo_nuke_high, 6), new Object[] { ModItems.ammo_mirv_high });
GameRegistry.addShapelessRecipe(new ItemStack(ModItems.ammo_nuke_safe, 6), new Object[] { ModItems.ammo_mirv_safe });
//MIRV
GameRegistry.addRecipe(new ItemStack(ModItems.ammo_mirv, 1), new Object[] { "NNN", "CDS", "NNN", 'N', ModItems.ammo_nuke, 'C', ModItems.cap_aluminium, 'D', ModBlocks.det_cord, 'S', ModItems.hull_small_steel });
GameRegistry.addRecipe(new ItemStack(ModItems.ammo_mirv_low, 1), new Object[] { "NNN", "CDS", "NNN", 'N', ModItems.ammo_nuke_low, 'C', ModItems.cap_aluminium, 'D', ModBlocks.det_cord, 'S', ModItems.hull_small_steel });
GameRegistry.addRecipe(new ItemStack(ModItems.ammo_mirv_high, 1), new Object[] { "NNN", "CDS", "NNN", 'N', ModItems.ammo_nuke_high, 'C', ModItems.cap_aluminium, 'D', ModBlocks.det_cord, 'S', ModItems.hull_small_steel });
GameRegistry.addRecipe(new ItemStack(ModItems.ammo_mirv_safe, 1), new Object[] { "NNN", "CDS", "NNN", 'N', ModItems.ammo_nuke_safe, 'C', ModItems.cap_aluminium, 'D', ModBlocks.det_cord, 'S', ModItems.hull_small_steel });
//since the milk part of the recipe isn't realy present in the MIRV's effect, it might as well be replaced with something more sensible, i.e. duct tape
GameRegistry.addRecipe(new ItemStack(ModItems.ammo_mirv_special, 1), new Object[] { "CBC", "MCM", "CBC", 'C', ModItems.canned_jizz, 'B', ModItems.gun_bf_ammo, 'M', ModItems.ammo_mirv });
//Flamer fuel
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.ammo_fuel, 1), new Object[] { " P ", "BDB", " P ", 'P', "plateSteel", 'B', ModItems.bolt_tungsten, 'D', ModItems.canister_fuel }));

View File

@ -1,9 +1,6 @@
package com.hbm.entity.grenade;
import com.hbm.config.BombConfig;
import com.hbm.entity.logic.EntityNukeExplosionMK4;
import com.hbm.explosion.ExplosionParticle;
import com.hbm.explosion.ExplosionParticleB;
import com.hbm.explosion.ExplosionNukeSmall;
import com.hbm.items.ModItems;
import com.hbm.items.weapon.ItemGrenade;
@ -29,13 +26,8 @@ public class EntityGrenadeNuclear extends EntityGrenadeBouncyBase {
if(!this.worldObj.isRemote) {
this.setDead();
this.worldObj.spawnEntityInWorld(EntityNukeExplosionMK4.statFac(worldObj, BombConfig.nukaRadius, posX, posY, posZ));
if(rand.nextInt(100) == 0) {
ExplosionParticleB.spawnMush(this.worldObj, (int) this.posX, (int) this.posY, (int) this.posZ);
} else {
ExplosionParticle.spawnMush(this.worldObj, (int) this.posX, (int) this.posY, (int) this.posZ);
}
ExplosionNukeSmall.explode(worldObj, posX, posY + 0.5, posZ, ExplosionNukeSmall.tots);
}
}

View File

@ -18,6 +18,7 @@ public class EntityBalefire extends Entity {
public ExplosionBalefire exp;
public int speed = 1;
public boolean did = false;
public boolean mute = false;
@Override
protected void readEntityFromNBT(NBTTagCompound nbt) {
@ -25,6 +26,7 @@ public class EntityBalefire extends Entity {
destructionRange = nbt.getInteger("destructionRange");
speed = nbt.getInteger("speed");
did = nbt.getBoolean("did");
mute = nbt.getBoolean("mute");
exp = new ExplosionBalefire((int)this.posX, (int)this.posY, (int)this.posZ, this.worldObj, this.destructionRange);
@ -40,6 +42,7 @@ public class EntityBalefire extends Entity {
nbt.setInteger("destructionRange", destructionRange);
nbt.setInteger("speed", speed);
nbt.setBoolean("did", did);
nbt.setBoolean("mute", mute);
if(exp != null)
exp.saveToNbt(nbt, "exp_");
@ -76,12 +79,14 @@ public class EntityBalefire extends Entity {
}
}
if(rand.nextInt(5) == 0)
if(!mute && rand.nextInt(5) == 0)
this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "random.explode", 10000.0F, 0.8F + this.rand.nextFloat() * 0.2F);
if(!flag)
{
this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "ambient.weather.thunder", 10000.0F, 0.8F + this.rand.nextFloat() * 0.2F);
if(!flag) {
if(!mute)
this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "ambient.weather.thunder", 10000.0F, 0.8F + this.rand.nextFloat() * 0.2F);
ExplosionNukeGeneric.dealDamage(this.worldObj, this.posX, this.posY, this.posZ, this.destructionRange * 2);
}
@ -90,4 +95,9 @@ public class EntityBalefire extends Entity {
@Override
protected void entityInit() { }
public EntityBalefire mute() {
this.mute = true;
return this;
}
}

View File

@ -3,12 +3,8 @@ package com.hbm.entity.missile;
import java.util.ArrayList;
import java.util.List;
import com.hbm.config.BombConfig;
import com.hbm.entity.logic.EntityNukeExplosionMK4;
import com.hbm.explosion.ExplosionParticle;
import com.hbm.explosion.ExplosionParticleB;
import com.hbm.explosion.ExplosionNukeSmall;
import com.hbm.items.ModItems;
import com.hbm.main.MainRegistry;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
@ -27,19 +23,7 @@ public class EntityMissileMicro extends EntityMissileBaseAdvanced {
public void onImpact() {
if(!this.worldObj.isRemote) {
this.worldObj.spawnEntityInWorld(EntityNukeExplosionMK4.statFac(worldObj, BombConfig.fatmanRadius, posX, posY, posZ));
if(MainRegistry.polaroidID == 11)
if(rand.nextInt(100) >= 0) {
ExplosionParticleB.spawnMush(this.worldObj, (int) this.posX, (int) this.posY - 3, (int) this.posZ);
} else {
ExplosionParticle.spawnMush(this.worldObj, (int) this.posX, (int) this.posY - 3, (int) this.posZ);
}
else if(rand.nextInt(100) == 0) {
ExplosionParticleB.spawnMush(this.worldObj, (int) this.posX, (int) this.posY - 3, (int) this.posZ);
} else {
ExplosionParticle.spawnMush(this.worldObj, (int) this.posX, (int) this.posY - 3, (int) this.posZ);
}
ExplosionNukeSmall.explode(worldObj, posX, posY + 0.5, posZ, ExplosionNukeSmall.high);
}
}

View File

@ -2,16 +2,18 @@ package com.hbm.entity.mob;
import java.util.List;
import com.hbm.entity.effect.EntityNukeCloudSmall;
import com.hbm.entity.logic.EntityNukeExplosionMK4;
import com.hbm.entity.mob.ai.EntityAINuclearCreeperSwell;
import com.hbm.explosion.ExplosionParticle;
import com.hbm.explosion.ExplosionParticleB;
import com.hbm.explosion.ExplosionNukeGeneric;
import com.hbm.explosion.ExplosionNukeSmall;
import com.hbm.items.ModItems;
import com.hbm.lib.ModDamageSource;
import com.hbm.main.MainRegistry;
import com.hbm.packet.AuxParticlePacketNT;
import com.hbm.packet.PacketDispatcher;
import com.hbm.util.ContaminationUtil;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.entity.Entity;
@ -43,7 +45,6 @@ public class EntityNuclearCreeper extends EntityMob {
private int lastActiveTime;
private int timeSinceIgnited;
private int fuseTime = 75;
private int explosionRadius = 20;
public EntityNuclearCreeper(World p_i1733_1_)
{
@ -122,7 +123,6 @@ public class EntityNuclearCreeper extends EntityMob {
}
p_70014_1_.setShort("Fuse", (short)this.fuseTime);
p_70014_1_.setByte("ExplosionRadius", (byte)this.explosionRadius);
p_70014_1_.setBoolean("ignited", this.func_146078_ca());
}
@ -137,11 +137,6 @@ public class EntityNuclearCreeper extends EntityMob {
this.fuseTime = p_70037_1_.getShort("Fuse");
}
if (p_70037_1_.hasKey("ExplosionRadius", 99))
{
this.explosionRadius = p_70037_1_.getByte("ExplosionRadius");
}
if (p_70037_1_.getBoolean("ignited"))
{
this.func_146079_cb();
@ -341,30 +336,21 @@ public class EntityNuclearCreeper extends EntityMob {
{
boolean flag = this.worldObj.getGameRules().getGameRuleBooleanValue("mobGriefing");
if (this.getPowered())
{
this.explosionRadius *= 3;
}
if (this.getPowered()) {
NBTTagCompound data = new NBTTagCompound();
data.setString("type", "muke");
PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY + 0.5, posZ), new TargetPoint(dimension, posX, posY, posZ, 250));
worldObj.playSoundEffect(posX, posY + 0.5, posZ, "hbm:weapon.mukeExplosion", 15.0F, 1.0F);
if(flag)
worldObj.spawnEntityInWorld(EntityNukeExplosionMK4.statFac(worldObj, explosionRadius, posX, posY, posZ));
else
worldObj.createExplosion(this, posX, posY, posZ, explosionRadius, false);
if(this.getPowered())
{
EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(this.worldObj, 1000, explosionRadius * 0.005F);
entity2.posX = this.posX;
entity2.posY = this.posY;
entity2.posZ = this.posZ;
this.worldObj.spawnEntityInWorld(entity2);
} else {
if(rand.nextInt(100) == 0)
{
ExplosionParticleB.spawnMush(this.worldObj, (int)this.posX, (int)this.posY - 3, (int)this.posZ);
if(flag) {
worldObj.spawnEntityInWorld(EntityNukeExplosionMK4.statFac(worldObj, 50, posX, posY, posZ).mute());
} else {
ExplosionParticle.spawnMush(this.worldObj, (int)this.posX, (int)this.posY - 3, (int)this.posZ);
ExplosionNukeGeneric.dealDamage(worldObj, posX, posY + 0.5, posZ, 100);
}
} else {
ExplosionNukeSmall.explode(worldObj, posX, posY + 0.5, posZ, ExplosionNukeSmall.medium);
}
this.setDead();

View File

@ -1,579 +0,0 @@
package com.hbm.entity.projectile;
import java.util.List;
import com.hbm.config.BombConfig;
import com.hbm.entity.logic.EntityBalefire;
import com.hbm.entity.particle.EntitySSmokeFX;
import com.hbm.explosion.ExplosionParticleB;
import com.hbm.main.MainRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.enchantment.EnchantmentHelper;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.IProjectile;
import net.minecraft.entity.monster.EntityEnderman;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.play.server.S2BPacketChangeGameState;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.DamageSource;
import net.minecraft.util.MathHelper;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.util.Vec3;
import net.minecraft.world.World;
public class EntityBaleflare extends Entity implements IProjectile {
private int field_145791_d = -1;
private int field_145792_e = -1;
private int field_145789_f = -1;
public double gravity = 0.0D;
private Block field_145790_g;
private int inData;
private boolean inGround;
/** 1 if the player can pick up the arrow */
public int canBePickedUp;
/** Seems to be some sort of timer for animating an arrow. */
public int arrowShake;
/** The owner of this arrow. */
public Entity shootingEntity;
private int ticksInGround;
private int ticksInAir;
private double damage = 2.0D;
/** The amount of knockback an arrow applies when it hits a mob. */
private int knockbackStrength;
public EntityBaleflare(World p_i1753_1_)
{
super(p_i1753_1_);
this.renderDistanceWeight = 10.0D;
this.setSize(0.5F, 0.5F);
}
public EntityBaleflare(World p_i1754_1_, double p_i1754_2_, double p_i1754_4_, double p_i1754_6_)
{
super(p_i1754_1_);
this.renderDistanceWeight = 10.0D;
this.setSize(0.5F, 0.5F);
this.setPosition(p_i1754_2_, p_i1754_4_, p_i1754_6_);
this.yOffset = 0.0F;
}
public EntityBaleflare(World p_i1755_1_, EntityLivingBase p_i1755_2_, EntityLivingBase p_i1755_3_, float p_i1755_4_, float p_i1755_5_)
{
super(p_i1755_1_);
this.renderDistanceWeight = 10.0D;
this.shootingEntity = p_i1755_2_;
if (p_i1755_2_ instanceof EntityPlayer)
{
this.canBePickedUp = 1;
}
this.posY = p_i1755_2_.posY + p_i1755_2_.getEyeHeight() - 0.10000000149011612D;
double d0 = p_i1755_3_.posX - p_i1755_2_.posX;
double d1 = p_i1755_3_.boundingBox.minY + p_i1755_3_.height / 3.0F - this.posY;
double d2 = p_i1755_3_.posZ - p_i1755_2_.posZ;
double d3 = MathHelper.sqrt_double(d0 * d0 + d2 * d2);
if (d3 >= 1.0E-7D)
{
float f2 = (float)(Math.atan2(d2, d0) * 180.0D / Math.PI) - 90.0F;
float f3 = (float)(-(Math.atan2(d1, d3) * 180.0D / Math.PI));
double d4 = d0 / d3;
double d5 = d2 / d3;
this.setLocationAndAngles(p_i1755_2_.posX + d4, this.posY, p_i1755_2_.posZ + d5, f2, f3);
this.yOffset = 0.0F;
float f4 = (float)d3 * 0.2F;
this.setThrowableHeading(d0, d1 + f4, d2, p_i1755_4_, p_i1755_5_);
}
}
public EntityBaleflare(World p_i1756_1_, EntityLivingBase p_i1756_2_, float p_i1756_3_)
{
super(p_i1756_1_);
this.renderDistanceWeight = 10.0D;
this.shootingEntity = p_i1756_2_;
if (p_i1756_2_ instanceof EntityPlayer)
{
this.canBePickedUp = 1;
}
this.setSize(0.5F, 0.5F);
this.setLocationAndAngles(p_i1756_2_.posX, p_i1756_2_.posY + p_i1756_2_.getEyeHeight(), p_i1756_2_.posZ, p_i1756_2_.rotationYaw, p_i1756_2_.rotationPitch);
this.posX -= MathHelper.cos(this.rotationYaw / 180.0F * (float)Math.PI) * 0.16F;
this.posY -= 0.10000000149011612D;
this.posZ -= MathHelper.sin(this.rotationYaw / 180.0F * (float)Math.PI) * 0.16F;
this.setPosition(this.posX, this.posY, this.posZ);
this.yOffset = 0.0F;
this.motionX = -MathHelper.sin(this.rotationYaw / 180.0F * (float)Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float)Math.PI);
this.motionZ = MathHelper.cos(this.rotationYaw / 180.0F * (float)Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float)Math.PI);
this.motionY = (-MathHelper.sin(this.rotationPitch / 180.0F * (float)Math.PI));
this.setThrowableHeading(this.motionX, this.motionY, this.motionZ, p_i1756_3_ * 1.5F, 1.0F);
}
public EntityBaleflare(World world, int x, int y, int z, double mx, double my, double mz, double grav) {
super(world);
this.posX = x + 0.5F;
this.posY = y + 0.5F;
this.posZ = z + 0.5F;
this.motionX = mx;
this.motionY = my;
this.motionZ = mz;
this.gravity = grav;
}
@Override
protected void entityInit() {
this.dataWatcher.addObject(16, Byte.valueOf((byte) 0));
}
/**
* Similar to setArrowHeading, it's point the throwable entity to a x, y, z
* direction.
*/
@Override
public void setThrowableHeading(double p_70186_1_, double p_70186_3_, double p_70186_5_, float p_70186_7_,
float p_70186_8_) {
float f2 = MathHelper.sqrt_double(p_70186_1_ * p_70186_1_ + p_70186_3_ * p_70186_3_ + p_70186_5_ * p_70186_5_);
p_70186_1_ /= f2;
p_70186_3_ /= f2;
p_70186_5_ /= f2;
p_70186_1_ += this.rand.nextGaussian() * (this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D
* p_70186_8_;
p_70186_3_ += this.rand.nextGaussian() * (this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D
* p_70186_8_;
p_70186_5_ += this.rand.nextGaussian() * (this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D
* p_70186_8_;
p_70186_1_ *= p_70186_7_;
p_70186_3_ *= p_70186_7_;
p_70186_5_ *= p_70186_7_;
this.motionX = p_70186_1_;
this.motionY = p_70186_3_;
this.motionZ = p_70186_5_;
float f3 = MathHelper.sqrt_double(p_70186_1_ * p_70186_1_ + p_70186_5_ * p_70186_5_);
this.prevRotationYaw = this.rotationYaw = (float) (Math.atan2(p_70186_1_, p_70186_5_) * 180.0D / Math.PI);
this.prevRotationPitch = this.rotationPitch = (float) (Math.atan2(p_70186_3_, f3) * 180.0D / Math.PI);
this.ticksInGround = 0;
}
/**
* Sets the position and rotation. Only difference from the other one is no
* bounding on the rotation. Args: posX, posY, posZ, yaw, pitch
*/
@Override
@SideOnly(Side.CLIENT)
public void setPositionAndRotation2(double p_70056_1_, double p_70056_3_, double p_70056_5_, float p_70056_7_,
float p_70056_8_, int p_70056_9_) {
this.setPosition(p_70056_1_, p_70056_3_, p_70056_5_);
this.setRotation(p_70056_7_, p_70056_8_);
}
/**
* Sets the velocity to the args. Args: x, y, z
*/
@Override
@SideOnly(Side.CLIENT)
public void setVelocity(double p_70016_1_, double p_70016_3_, double p_70016_5_) {
this.motionX = p_70016_1_;
this.motionY = p_70016_3_;
this.motionZ = p_70016_5_;
if (this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F) {
float f = MathHelper.sqrt_double(p_70016_1_ * p_70016_1_ + p_70016_5_ * p_70016_5_);
this.prevRotationYaw = this.rotationYaw = (float) (Math.atan2(p_70016_1_, p_70016_5_) * 180.0D / Math.PI);
this.prevRotationPitch = this.rotationPitch = (float) (Math.atan2(p_70016_3_, f) * 180.0D / Math.PI);
this.prevRotationPitch = this.rotationPitch;
this.prevRotationYaw = this.rotationYaw;
this.setLocationAndAngles(this.posX, this.posY, this.posZ, this.rotationYaw, this.rotationPitch);
this.ticksInGround = 0;
}
}
/**
* Called to update the entity's position/logic.
*/
@Override
public void onUpdate()
{
super.onUpdate();
if (this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F)
{
float f = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ);
this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI);
this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(this.motionY, f) * 180.0D / Math.PI);
}
Block block = this.worldObj.getBlock(this.field_145791_d, this.field_145792_e, this.field_145789_f);
if (block.getMaterial() != Material.air)
{
block.setBlockBoundsBasedOnState(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f);
AxisAlignedBB axisalignedbb = block.getCollisionBoundingBoxFromPool(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f);
if (axisalignedbb != null && axisalignedbb.isVecInside(Vec3.createVectorHelper(this.posX, this.posY, this.posZ)))
{
this.inGround = true;
}
}
if (this.arrowShake > 0)
{
--this.arrowShake;
}
if (this.inGround)
{
int j = this.worldObj.getBlockMetadata(this.field_145791_d, this.field_145792_e, this.field_145789_f);
if (block == this.field_145790_g && j == this.inData)
{
++this.ticksInGround;
if (this.ticksInGround == 300)
{
if (!this.worldObj.isRemote)
{
EntityBalefire bf = new EntityBalefire(worldObj);
bf.posX = this.posX;
bf.posY = this.posY;
bf.posZ = this.posZ;
bf.destructionRange = BombConfig.fatmanRadius;
worldObj.spawnEntityInWorld(bf);
ExplosionParticleB.spawnMush(this.worldObj, (int)this.posX, (int)this.posY - 3, (int)this.posZ);
}
this.setDead();
}
}
else
{
this.inGround = false;
this.motionX *= this.rand.nextFloat() * 0.2F;
this.motionY *= this.rand.nextFloat() * 0.2F;
this.motionZ *= this.rand.nextFloat() * 0.2F;
this.ticksInGround = 0;
this.ticksInAir = 0;
}
}
else
{
++this.ticksInAir;
Vec3 vec31 = Vec3.createVectorHelper(this.posX, this.posY, this.posZ);
Vec3 vec3 = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ);
MovingObjectPosition movingobjectposition = this.worldObj.func_147447_a(vec31, vec3, false, true, false);
vec31 = Vec3.createVectorHelper(this.posX, this.posY, this.posZ);
vec3 = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ);
if (movingobjectposition != null)
{
vec3 = Vec3.createVectorHelper(movingobjectposition.hitVec.xCoord, movingobjectposition.hitVec.yCoord, movingobjectposition.hitVec.zCoord);
}
Entity entity = null;
List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.addCoord(this.motionX, this.motionY, this.motionZ).expand(1.0D, 1.0D, 1.0D));
double d0 = 0.0D;
int i;
float f1;
for (i = 0; i < list.size(); ++i)
{
Entity entity1 = (Entity)list.get(i);
if (entity1.canBeCollidedWith() && (entity1 != this.shootingEntity || this.ticksInAir >= 5))
{
f1 = 0.3F;
AxisAlignedBB axisalignedbb1 = entity1.boundingBox.expand(f1, f1, f1);
MovingObjectPosition movingobjectposition1 = axisalignedbb1.calculateIntercept(vec31, vec3);
if (movingobjectposition1 != null)
{
double d1 = vec31.distanceTo(movingobjectposition1.hitVec);
if (d1 < d0 || d0 == 0.0D)
{
entity = entity1;
d0 = d1;
}
}
}
}
if (entity != null)
{
movingobjectposition = new MovingObjectPosition(entity);
}
if (movingobjectposition != null && movingobjectposition.entityHit != null && movingobjectposition.entityHit instanceof EntityPlayer)
{
EntityPlayer entityplayer = (EntityPlayer)movingobjectposition.entityHit;
if (entityplayer.capabilities.disableDamage || this.shootingEntity instanceof EntityPlayer && !((EntityPlayer)this.shootingEntity).canAttackPlayer(entityplayer))
{
movingobjectposition = null;
}
}
float f2;
float f4;
if (movingobjectposition != null)
{
if (movingobjectposition.entityHit != null)
{
f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ);
int k = MathHelper.ceiling_double_int(f2 * this.damage);
if (this.getIsCritical())
{
k += this.rand.nextInt(k / 2 + 2);
}
DamageSource damagesource = null;
if (this.shootingEntity == null)
{
damagesource = DamageSource.generic;
}
else
{
damagesource = DamageSource.generic;
}
if (this.isBurning() && !(movingobjectposition.entityHit instanceof EntityEnderman))
{
movingobjectposition.entityHit.setFire(5);
}
if (movingobjectposition.entityHit.attackEntityFrom(damagesource, k))
{
if (movingobjectposition.entityHit instanceof EntityLivingBase)
{
EntityLivingBase entitylivingbase = (EntityLivingBase)movingobjectposition.entityHit;
if (this.knockbackStrength > 0)
{
f4 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ);
if (f4 > 0.0F)
{
movingobjectposition.entityHit.addVelocity(this.motionX * this.knockbackStrength * 0.6000000238418579D / f4, 0.1D, this.motionZ * this.knockbackStrength * 0.6000000238418579D / f4);
}
}
if (this.shootingEntity != null && this.shootingEntity instanceof EntityLivingBase)
{
EnchantmentHelper.func_151384_a(entitylivingbase, this.shootingEntity);
EnchantmentHelper.func_151385_b((EntityLivingBase)this.shootingEntity, entitylivingbase);
}
if (this.shootingEntity != null && movingobjectposition.entityHit != this.shootingEntity && movingobjectposition.entityHit instanceof EntityPlayer && this.shootingEntity instanceof EntityPlayerMP)
{
((EntityPlayerMP)this.shootingEntity).playerNetServerHandler.sendPacket(new S2BPacketChangeGameState(6, 0.0F));
}
}
}
}
else
{
this.field_145791_d = movingobjectposition.blockX;
this.field_145792_e = movingobjectposition.blockY;
this.field_145789_f = movingobjectposition.blockZ;
this.field_145790_g = this.worldObj.getBlock(this.field_145791_d, this.field_145792_e, this.field_145789_f);
this.inData = this.worldObj.getBlockMetadata(this.field_145791_d, this.field_145792_e, this.field_145789_f);
this.motionX = ((float)(movingobjectposition.hitVec.xCoord - this.posX));
this.motionY = ((float)(movingobjectposition.hitVec.yCoord - this.posY));
this.motionZ = ((float)(movingobjectposition.hitVec.zCoord - this.posZ));
f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ);
this.posX -= this.motionX / f2 * 0.05000000074505806D;
this.posY -= this.motionY / f2 * 0.05000000074505806D;
this.posZ -= this.motionZ / f2 * 0.05000000074505806D;
this.playSound("random.bowhit", 1.0F, 1.2F / (this.rand.nextFloat() * 0.2F + 0.9F));
this.inGround = true;
this.arrowShake = 7;
this.setIsCritical(false);
if (this.field_145790_g.getMaterial() != Material.air)
{
this.field_145790_g.onEntityCollidedWithBlock(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f, this);
}
}
}
this.posX += this.motionX;
this.posY += this.motionY;
this.posZ += this.motionZ;
f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ);
this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI);
for (this.rotationPitch = (float)(Math.atan2(this.motionY, f2) * 180.0D / Math.PI); this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F)
{
;
}
while (this.rotationPitch - this.prevRotationPitch >= 180.0F)
{
this.prevRotationPitch += 360.0F;
}
while (this.rotationYaw - this.prevRotationYaw < -180.0F)
{
this.prevRotationYaw -= 360.0F;
}
while (this.rotationYaw - this.prevRotationYaw >= 180.0F)
{
this.prevRotationYaw += 360.0F;
}
this.rotationPitch = this.prevRotationPitch + (this.rotationPitch - this.prevRotationPitch) * 0.2F;
this.rotationYaw = this.prevRotationYaw + (this.rotationYaw - this.prevRotationYaw) * 0.2F;
float f3 = 0.99F;
f1 = 0.05F;
if (this.isInWater())
{
for (int l = 0; l < 4; ++l)
{
f4 = 0.25F;
this.worldObj.spawnParticle("bubble", this.posX - this.motionX * f4, this.posY - this.motionY * f4, this.posZ - this.motionZ * f4, this.motionX, this.motionY, this.motionZ);
}
f3 = 0.8F;
}
if (this.isWet())
{
this.extinguish();
}
//
f1 *= 0.25F;
//
this.motionX *= f3;
this.motionY *= f3;
this.motionZ *= f3;
this.motionY -= f1;
this.setPosition(this.posX, this.posY, this.posZ);
this.func_145775_I();
}
if(!this.inGround)
if(!worldObj.isRemote) {
worldObj.spawnEntityInWorld(new EntitySSmokeFX(worldObj, this.posX, this.posY - 0.5, this.posZ, 0.0, 0.0, 0.0));
worldObj.spawnEntityInWorld(new EntitySSmokeFX(worldObj, this.posX - this.motionX, this.posY - 0.5 - this.motionY, this.posZ - this.motionZ, 0.0, 0.0, 0.0));
}
}
/**
* (abstract) Protected helper method to write subclass entity data to NBT.
*/
@Override
public void writeEntityToNBT(NBTTagCompound p_70014_1_) {
p_70014_1_.setShort("xTile", (short) this.field_145791_d);
p_70014_1_.setShort("yTile", (short) this.field_145792_e);
p_70014_1_.setShort("zTile", (short) this.field_145789_f);
p_70014_1_.setShort("life", (short) this.ticksInGround);
p_70014_1_.setByte("inTile", (byte) Block.getIdFromBlock(this.field_145790_g));
p_70014_1_.setByte("inData", (byte) this.inData);
p_70014_1_.setByte("shake", (byte) this.arrowShake);
p_70014_1_.setByte("inGround", (byte) (this.inGround ? 1 : 0));
p_70014_1_.setByte("pickup", (byte) this.canBePickedUp);
p_70014_1_.setDouble("damage", this.damage);
}
/**
* (abstract) Protected helper method to read subclass entity data from NBT.
*/
@Override
public void readEntityFromNBT(NBTTagCompound p_70037_1_) {
this.field_145791_d = p_70037_1_.getShort("xTile");
this.field_145792_e = p_70037_1_.getShort("yTile");
this.field_145789_f = p_70037_1_.getShort("zTile");
this.ticksInGround = p_70037_1_.getShort("life");
this.field_145790_g = Block.getBlockById(p_70037_1_.getByte("inTile") & 255);
this.inData = p_70037_1_.getByte("inData") & 255;
this.arrowShake = p_70037_1_.getByte("shake") & 255;
this.inGround = p_70037_1_.getByte("inGround") == 1;
if (p_70037_1_.hasKey("damage", 99)) {
this.damage = p_70037_1_.getDouble("damage");
}
if (p_70037_1_.hasKey("pickup", 99)) {
this.canBePickedUp = p_70037_1_.getByte("pickup");
} else if (p_70037_1_.hasKey("player", 99)) {
this.canBePickedUp = p_70037_1_.getBoolean("player") ? 1 : 0;
}
}
/**
* returns if this entity triggers Block.onEntityWalking on the blocks they
* walk on. used for spiders and wolves to prevent them from trampling crops
*/
@Override
protected boolean canTriggerWalking() {
return false;
}
@Override
@SideOnly(Side.CLIENT)
public float getShadowSize() {
return 0.0F;
}
public void setDamage(double p_70239_1_) {
this.damage = p_70239_1_;
}
public double getDamage() {
return this.damage;
}
/**
* Sets the amount of knockback the arrow applies when it hits a mob.
*/
public void setKnockbackStrength(int p_70240_1_) {
this.knockbackStrength = p_70240_1_;
}
/**
* If returns false, the item will not inflict any damage against entities.
*/
@Override
public boolean canAttackWithItem() {
return false;
}
/**
* Whether the arrow has a stream of critical hit particles flying behind
* it.
*/
public void setIsCritical(boolean p_70243_1_) {
byte b0 = this.dataWatcher.getWatchableObjectByte(16);
if (p_70243_1_) {
this.dataWatcher.updateObject(16, Byte.valueOf((byte) (b0 | 1)));
} else {
this.dataWatcher.updateObject(16, Byte.valueOf((byte) (b0 & -2)));
}
}
/**
* Whether the arrow has a stream of critical hit particles flying behind
* it.
*/
public boolean getIsCritical() {
byte b0 = this.dataWatcher.getWatchableObjectByte(16);
return (b0 & 1) != 0;
}
}

View File

@ -4,14 +4,15 @@ import com.hbm.config.BombConfig;
import com.hbm.entity.logic.EntityNukeExplosionMK4;
import com.hbm.explosion.ExplosionChaos;
import com.hbm.explosion.ExplosionLarge;
import com.hbm.explosion.ExplosionParticle;
import com.hbm.explosion.ExplosionParticleB;
import com.hbm.main.MainRegistry;
import com.hbm.packet.AuxParticlePacketNT;
import com.hbm.packet.PacketDispatcher;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.entity.projectile.EntityThrowable;
import net.minecraft.init.Blocks;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.MathHelper;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.world.World;
@ -34,14 +35,6 @@ public class EntityBombletZeta extends EntityThrowable {
this.lastTickPosZ = this.prevPosZ = posZ;
this.setPosition(posX + this.motionX, posY + this.motionY, posZ + this.motionZ);
/*this.prevPosX = this.posX;
this.prevPosY = this.posY;
this.prevPosZ = this.posZ;
this.posX += this.motionX;
this.posY += this.motionY;
this.posZ += this.motionZ;*/
this.motionX *= 0.99;
this.motionZ *= 0.99;
this.motionY -= 0.05D;
@ -70,14 +63,13 @@ public class EntityBombletZeta extends EntityThrowable {
ExplosionChaos.spawnChlorine(worldObj, this.posX + 0.5F - motionX, this.posY + 0.5F - motionY, this.posZ + 0.5F - motionZ, 75, 2, 0);
}
if(type == 4) {
worldObj.spawnEntityInWorld(EntityNukeExplosionMK4.statFac(worldObj, (int) (BombConfig.fatmanRadius * 1.5), posX, posY, posZ));
worldObj.spawnEntityInWorld(EntityNukeExplosionMK4.statFac(worldObj, (int) (BombConfig.fatmanRadius * 1.5), posX, posY, posZ).mute());
if(rand.nextInt(100) == 0)
{
ExplosionParticleB.spawnMush(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ);
} else {
ExplosionParticle.spawnMush(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ);
}
NBTTagCompound data = new NBTTagCompound();
data.setString("type", "muke");
if(rand.nextInt(100) == 0) data.setBoolean("balefire", true);
PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY + 0.5, posZ), new TargetPoint(dimension, posX, posY, posZ, 250));
worldObj.playSoundEffect(posX, posY, posZ, "hbm:weapon.mukeExplosion", 15.0F, 1.0F);
}
}
this.setDead();

View File

@ -13,16 +13,17 @@ import com.hbm.entity.particle.EntityTSmokeFX;
import com.hbm.explosion.ExplosionChaos;
import com.hbm.explosion.ExplosionLarge;
import com.hbm.explosion.ExplosionNukeGeneric;
import com.hbm.explosion.ExplosionParticle;
import com.hbm.explosion.ExplosionParticleB;
import com.hbm.handler.BulletConfigSyncingUtil;
import com.hbm.handler.BulletConfiguration;
import com.hbm.lib.ModDamageSource;
import com.hbm.main.MainRegistry;
import com.hbm.packet.AuxParticlePacketNT;
import com.hbm.packet.PacketDispatcher;
import com.hbm.potion.HbmPotion;
import com.hbm.util.ArmorUtil;
import com.hbm.util.BobMathUtil;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import cpw.mods.fml.relauncher.ReflectionHelper;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@ -493,21 +494,12 @@ public class EntityBulletBase extends Entity implements IProjectile {
}
if(config.nuke > 0 && !worldObj.isRemote) {
worldObj.spawnEntityInWorld(EntityNukeExplosionMK4.statFac(worldObj, config.nuke, posX, posY, posZ));
if(MainRegistry.polaroidID == 11) {
if(rand.nextInt(100) >= 0) {
ExplosionParticleB.spawnMush(this.worldObj, (int)this.posX, (int)this.posY - 3, (int)this.posZ);
} else {
ExplosionParticle.spawnMush(this.worldObj, (int)this.posX, (int)this.posY - 3, (int)this.posZ);
}
} else {
if(rand.nextInt(100) == 0) {
ExplosionParticleB.spawnMush(this.worldObj, (int)this.posX, (int)this.posY - 3, (int)this.posZ);
} else {
ExplosionParticle.spawnMush(this.worldObj, (int)this.posX, (int)this.posY - 3, (int)this.posZ);
}
}
worldObj.spawnEntityInWorld(EntityNukeExplosionMK4.statFac(worldObj, config.nuke, posX, posY, posZ).mute());
NBTTagCompound data = new NBTTagCompound();
data.setString("type", "muke");
if(MainRegistry.polaroidID == 11 || rand.nextInt(100) == 0) data.setBoolean("balefire", true);
PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY + 0.5, posZ), new TargetPoint(dimension, posX, posY, posZ, 250));
worldObj.playSoundEffect(posX, posY, posZ, "hbm:weapon.mukeExplosion", 15.0F, 1.0F);
}
if(config.destroysBlocks && !worldObj.isRemote) {

View File

@ -1,536 +0,0 @@
package com.hbm.entity.projectile;
import java.util.List;
import com.hbm.config.BombConfig;
import com.hbm.entity.logic.EntityNukeExplosionMK4;
import com.hbm.explosion.ExplosionChaos;
import com.hbm.explosion.ExplosionParticle;
import com.hbm.explosion.ExplosionParticleB;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.enchantment.EnchantmentHelper;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.IProjectile;
import net.minecraft.entity.monster.EntityEnderman;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.play.server.S2BPacketChangeGameState;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.DamageSource;
import net.minecraft.util.MathHelper;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.util.Vec3;
import net.minecraft.world.World;
public class EntityMiniMIRV extends Entity implements IProjectile {
private int field_145791_d = -1;
private int field_145792_e = -1;
private int field_145789_f = -1;
public double gravity = 0.0D;
public double startVel = -20.0D;
private Block field_145790_g;
private int inData;
private boolean inGround;
/** 1 if the player can pick up the arrow */
public int canBePickedUp;
/** Seems to be some sort of timer for animating an arrow. */
public int arrowShake;
/** The owner of this arrow. */
public Entity shootingEntity;
private int ticksInGround;
private int ticksInAir;
private double damage = 2.0D;
/** The amount of knockback an arrow applies when it hits a mob. */
private int knockbackStrength;
public EntityMiniMIRV(World p_i1753_1_) {
super(p_i1753_1_);
this.renderDistanceWeight = 10.0D;
this.setSize(0.5F, 0.5F);
}
public EntityMiniMIRV(World p_i1754_1_, double p_i1754_2_, double p_i1754_4_, double p_i1754_6_) {
super(p_i1754_1_);
this.renderDistanceWeight = 10.0D;
this.setSize(0.5F, 0.5F);
this.setPosition(p_i1754_2_, p_i1754_4_, p_i1754_6_);
this.yOffset = 0.0F;
}
public EntityMiniMIRV(World p_i1755_1_, EntityLivingBase p_i1755_2_, EntityLivingBase p_i1755_3_, float p_i1755_4_, float p_i1755_5_) {
super(p_i1755_1_);
this.renderDistanceWeight = 10.0D;
this.shootingEntity = p_i1755_2_;
if(p_i1755_2_ instanceof EntityPlayer) {
this.canBePickedUp = 1;
}
this.posY = p_i1755_2_.posY + p_i1755_2_.getEyeHeight() - 0.10000000149011612D;
double d0 = p_i1755_3_.posX - p_i1755_2_.posX;
double d1 = p_i1755_3_.boundingBox.minY + p_i1755_3_.height / 3.0F - this.posY;
double d2 = p_i1755_3_.posZ - p_i1755_2_.posZ;
double d3 = MathHelper.sqrt_double(d0 * d0 + d2 * d2);
if(d3 >= 1.0E-7D) {
float f2 = (float) (Math.atan2(d2, d0) * 180.0D / Math.PI) - 90.0F;
float f3 = (float) (-(Math.atan2(d1, d3) * 180.0D / Math.PI));
double d4 = d0 / d3;
double d5 = d2 / d3;
this.setLocationAndAngles(p_i1755_2_.posX + d4, this.posY, p_i1755_2_.posZ + d5, f2, f3);
this.yOffset = 0.0F;
float f4 = (float) d3 * 0.2F;
this.setThrowableHeading(d0, d1 + f4, d2, p_i1755_4_, p_i1755_5_);
}
}
public EntityMiniMIRV(World p_i1756_1_, EntityLivingBase p_i1756_2_, float p_i1756_3_) {
super(p_i1756_1_);
this.renderDistanceWeight = 10.0D;
this.shootingEntity = p_i1756_2_;
if(p_i1756_2_ instanceof EntityPlayer) {
this.canBePickedUp = 1;
}
this.setSize(0.5F, 0.5F);
this.setLocationAndAngles(p_i1756_2_.posX, p_i1756_2_.posY + p_i1756_2_.getEyeHeight(), p_i1756_2_.posZ, p_i1756_2_.rotationYaw, p_i1756_2_.rotationPitch);
this.posX -= MathHelper.cos(this.rotationYaw / 180.0F * (float) Math.PI) * 0.16F;
this.posY -= 0.10000000149011612D;
this.posZ -= MathHelper.sin(this.rotationYaw / 180.0F * (float) Math.PI) * 0.16F;
this.setPosition(this.posX, this.posY, this.posZ);
this.yOffset = 0.0F;
this.motionX = -MathHelper.sin(this.rotationYaw / 180.0F * (float) Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float) Math.PI);
this.motionZ = MathHelper.cos(this.rotationYaw / 180.0F * (float) Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float) Math.PI);
this.motionY = (-MathHelper.sin(this.rotationPitch / 180.0F * (float) Math.PI));
this.setThrowableHeading(this.motionX, this.motionY, this.motionZ, p_i1756_3_ * 1.5F, 1.0F);
}
public EntityMiniMIRV(World world, int x, int y, int z, double mx, double my, double mz, double grav) {
super(world);
this.posX = x + 0.5F;
this.posY = y + 0.5F;
this.posZ = z + 0.5F;
this.motionX = mx;
this.motionY = my;
this.motionZ = mz;
this.gravity = grav;
}
@Override
protected void entityInit() {
this.dataWatcher.addObject(16, Byte.valueOf((byte) 0));
}
/**
* Similar to setArrowHeading, it's point the throwable entity to a x, y, z
* direction.
*/
@Override
public void setThrowableHeading(double p_70186_1_, double p_70186_3_, double p_70186_5_, float p_70186_7_, float p_70186_8_) {
float f2 = MathHelper.sqrt_double(p_70186_1_ * p_70186_1_ + p_70186_3_ * p_70186_3_ + p_70186_5_ * p_70186_5_);
p_70186_1_ /= f2;
p_70186_3_ /= f2;
p_70186_5_ /= f2;
p_70186_1_ += this.rand.nextGaussian() * (this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * p_70186_8_;
p_70186_3_ += this.rand.nextGaussian() * (this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * p_70186_8_;
p_70186_5_ += this.rand.nextGaussian() * (this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * p_70186_8_;
p_70186_1_ *= p_70186_7_;
p_70186_3_ *= p_70186_7_;
p_70186_5_ *= p_70186_7_;
this.motionX = p_70186_1_;
this.motionY = p_70186_3_;
this.motionZ = p_70186_5_;
float f3 = MathHelper.sqrt_double(p_70186_1_ * p_70186_1_ + p_70186_5_ * p_70186_5_);
this.prevRotationYaw = this.rotationYaw = (float) (Math.atan2(p_70186_1_, p_70186_5_) * 180.0D / Math.PI);
this.prevRotationPitch = this.rotationPitch = (float) (Math.atan2(p_70186_3_, f3) * 180.0D / Math.PI);
this.ticksInGround = 0;
}
/**
* Sets the position and rotation. Only difference from the other one is no
* bounding on the rotation. Args: posX, posY, posZ, yaw, pitch
*/
@Override
@SideOnly(Side.CLIENT)
public void setPositionAndRotation2(double p_70056_1_, double p_70056_3_, double p_70056_5_, float p_70056_7_, float p_70056_8_, int p_70056_9_) {
this.setPosition(p_70056_1_, p_70056_3_, p_70056_5_);
this.setRotation(p_70056_7_, p_70056_8_);
}
/**
* Sets the velocity to the args. Args: x, y, z
*/
@Override
@SideOnly(Side.CLIENT)
public void setVelocity(double p_70016_1_, double p_70016_3_, double p_70016_5_) {
this.motionX = p_70016_1_;
this.motionY = p_70016_3_;
this.motionZ = p_70016_5_;
if(this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F) {
float f = MathHelper.sqrt_double(p_70016_1_ * p_70016_1_ + p_70016_5_ * p_70016_5_);
this.prevRotationYaw = this.rotationYaw = (float) (Math.atan2(p_70016_1_, p_70016_5_) * 180.0D / Math.PI);
this.prevRotationPitch = this.rotationPitch = (float) (Math.atan2(p_70016_3_, f) * 180.0D / Math.PI);
this.prevRotationPitch = this.rotationPitch;
this.prevRotationYaw = this.rotationYaw;
this.setLocationAndAngles(this.posX, this.posY, this.posZ, this.rotationYaw, this.rotationPitch);
this.ticksInGround = 0;
}
}
/**
* Called to update the entity's position/logic.
*/
// @Override
@Override
public void onUpdate() {
super.onUpdate();
if(this.ticksExisted == 10) {
startVel = this.motionY;
}
if(this.motionY <= startVel - 1) {
if(!this.worldObj.isRemote)
ExplosionChaos.miniMirv(this.worldObj, this.posX, this.posY, this.posZ);
this.motionY = this.startVel;
this.setDead();
}
if(this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F) {
float f = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ);
this.prevRotationYaw = this.rotationYaw = (float) (Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI);
this.prevRotationPitch = this.rotationPitch = (float) (Math.atan2(this.motionY, f) * 180.0D / Math.PI);
}
Block block = this.worldObj.getBlock(this.field_145791_d, this.field_145792_e, this.field_145789_f);
if(block.getMaterial() != Material.air) {
block.setBlockBoundsBasedOnState(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f);
AxisAlignedBB axisalignedbb = block.getCollisionBoundingBoxFromPool(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f);
if(axisalignedbb != null && axisalignedbb.isVecInside(Vec3.createVectorHelper(this.posX, this.posY, this.posZ))) {
this.inGround = true;
}
}
if(this.arrowShake > 0) {
--this.arrowShake;
}
if(this.inGround) {
if(!this.worldObj.isRemote) {
worldObj.spawnEntityInWorld(EntityNukeExplosionMK4.statFac(worldObj, BombConfig.fatmanRadius, posX, posY, posZ));
if(rand.nextInt(100) == 0) {
ExplosionParticleB.spawnMush(this.worldObj, (int) this.posX, (int) this.posY - 3, (int) this.posZ);
} else {
ExplosionParticle.spawnMush(this.worldObj, (int) this.posX, (int) this.posY - 3, (int) this.posZ);
}
}
this.setDead();
} else {
++this.ticksInAir;
Vec3 vec31 = Vec3.createVectorHelper(this.posX, this.posY, this.posZ);
Vec3 vec3 = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ);
MovingObjectPosition movingobjectposition = this.worldObj.func_147447_a(vec31, vec3, false, true, false);
vec31 = Vec3.createVectorHelper(this.posX, this.posY, this.posZ);
vec3 = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ);
if(movingobjectposition != null) {
vec3 = Vec3.createVectorHelper(movingobjectposition.hitVec.xCoord, movingobjectposition.hitVec.yCoord, movingobjectposition.hitVec.zCoord);
}
Entity entity = null;
List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.addCoord(this.motionX, this.motionY, this.motionZ).expand(1.0D, 1.0D, 1.0D));
double d0 = 0.0D;
int i;
float f1;
for(i = 0; i < list.size(); ++i) {
Entity entity1 = (Entity) list.get(i);
if(entity1.canBeCollidedWith() && (entity1 != this.shootingEntity || this.ticksInAir >= 5)) {
f1 = 0.3F;
AxisAlignedBB axisalignedbb1 = entity1.boundingBox.expand(f1, f1, f1);
MovingObjectPosition movingobjectposition1 = axisalignedbb1.calculateIntercept(vec31, vec3);
if(movingobjectposition1 != null) {
double d1 = vec31.distanceTo(movingobjectposition1.hitVec);
if(d1 < d0 || d0 == 0.0D) {
entity = entity1;
d0 = d1;
}
}
}
}
if(entity != null) {
movingobjectposition = new MovingObjectPosition(entity);
}
if(movingobjectposition != null && movingobjectposition.entityHit != null && movingobjectposition.entityHit instanceof EntityPlayer) {
EntityPlayer entityplayer = (EntityPlayer) movingobjectposition.entityHit;
if(entityplayer.capabilities.disableDamage || this.shootingEntity instanceof EntityPlayer && !((EntityPlayer) this.shootingEntity).canAttackPlayer(entityplayer)) {
movingobjectposition = null;
}
}
float f2;
float f4;
if(movingobjectposition != null) {
if(movingobjectposition.entityHit != null) {
f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ);
int k = MathHelper.ceiling_double_int(f2 * this.damage);
if(this.getIsCritical()) {
k += this.rand.nextInt(k / 2 + 2);
}
DamageSource damagesource = null;
if(this.shootingEntity == null) {
damagesource = DamageSource.causeIndirectMagicDamage(this, this);
} else {
damagesource = DamageSource.causeIndirectMagicDamage(this, this);
}
if(this.isBurning() && !(movingobjectposition.entityHit instanceof EntityEnderman)) {
movingobjectposition.entityHit.setFire(5);
}
if(movingobjectposition.entityHit.attackEntityFrom(damagesource, k)) {
if(movingobjectposition.entityHit instanceof EntityLivingBase) {
EntityLivingBase entitylivingbase = (EntityLivingBase) movingobjectposition.entityHit;
if(this.knockbackStrength > 0) {
f4 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ);
if(f4 > 0.0F) {
movingobjectposition.entityHit.addVelocity(this.motionX * this.knockbackStrength * 0.6000000238418579D / f4, 0.1D, this.motionZ * this.knockbackStrength * 0.6000000238418579D / f4);
}
}
if(this.shootingEntity != null && this.shootingEntity instanceof EntityLivingBase) {
EnchantmentHelper.func_151384_a(entitylivingbase, this.shootingEntity);
EnchantmentHelper.func_151385_b((EntityLivingBase) this.shootingEntity, entitylivingbase);
}
if(this.shootingEntity != null && movingobjectposition.entityHit != this.shootingEntity && movingobjectposition.entityHit instanceof EntityPlayer && this.shootingEntity instanceof EntityPlayerMP) {
((EntityPlayerMP) this.shootingEntity).playerNetServerHandler.sendPacket(new S2BPacketChangeGameState(6, 0.0F));
}
}
if(!(movingobjectposition.entityHit instanceof EntityEnderman)) {
if(!this.worldObj.isRemote) {
worldObj.spawnEntityInWorld(EntityNukeExplosionMK4.statFac(worldObj, BombConfig.fatmanRadius, posX, posY, posZ));
if(rand.nextInt(100) == 0) {
ExplosionParticleB.spawnMush(this.worldObj, (int) this.posX, (int) this.posY - 3, (int) this.posZ);
} else {
ExplosionParticle.spawnMush(this.worldObj, (int) this.posX, (int) this.posY - 3, (int) this.posZ);
}
}
this.setDead();
}
} else {
this.motionX *= -0.10000000149011612D;
this.motionY *= -0.10000000149011612D;
this.motionZ *= -0.10000000149011612D;
this.rotationYaw += 180.0F;
this.prevRotationYaw += 180.0F;
this.ticksInAir = 0;
}
} else {
this.field_145791_d = movingobjectposition.blockX;
this.field_145792_e = movingobjectposition.blockY;
this.field_145789_f = movingobjectposition.blockZ;
this.field_145790_g = this.worldObj.getBlock(this.field_145791_d, this.field_145792_e, this.field_145789_f);
this.inData = this.worldObj.getBlockMetadata(this.field_145791_d, this.field_145792_e, this.field_145789_f);
this.motionX = ((float) (movingobjectposition.hitVec.xCoord - this.posX));
this.motionY = ((float) (movingobjectposition.hitVec.yCoord - this.posY));
this.motionZ = ((float) (movingobjectposition.hitVec.zCoord - this.posZ));
f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ);
this.posX -= this.motionX / f2 * 0.05000000074505806D;
this.posY -= this.motionY / f2 * 0.05000000074505806D;
this.posZ -= this.motionZ / f2 * 0.05000000074505806D;
this.inGround = true;
this.arrowShake = 7;
this.setIsCritical(false);
if(this.field_145790_g.getMaterial() != Material.air) {
this.field_145790_g.onEntityCollidedWithBlock(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f, this);
}
}
}
this.posX += this.motionX;
this.posY += this.motionY;
this.posZ += this.motionZ;
f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ);
this.rotationYaw = (float) (Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI);
for(this.rotationPitch = (float) (Math.atan2(this.motionY, f2) * 180.0D / Math.PI); this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F) {
;
}
while(this.rotationPitch - this.prevRotationPitch >= 180.0F) {
this.prevRotationPitch += 360.0F;
}
while(this.rotationYaw - this.prevRotationYaw < -180.0F) {
this.prevRotationYaw -= 360.0F;
}
while(this.rotationYaw - this.prevRotationYaw >= 180.0F) {
this.prevRotationYaw += 360.0F;
}
this.rotationPitch = this.prevRotationPitch + (this.rotationPitch - this.prevRotationPitch) * 0.2F;
this.rotationYaw = this.prevRotationYaw + (this.rotationYaw - this.prevRotationYaw) * 0.2F;
float f3 = 0.99F;
f1 = 0.05F;
if(this.isInWater()) {
for(int l = 0; l < 4; ++l) {
f4 = 0.25F;
this.worldObj.spawnParticle("bubble", this.posX - this.motionX * f4, this.posY - this.motionY * f4, this.posZ - this.motionZ * f4, this.motionX, this.motionY, this.motionZ);
}
f3 = 0.8F;
}
if(this.isWet()) {
this.extinguish();
}
this.motionX *= f3;
this.motionY *= f3;
this.motionZ *= f3;
this.motionY -= 0.15D;
this.setPosition(this.posX, this.posY, this.posZ);
this.func_145775_I();
}
}
/**
* (abstract) Protected helper method to write subclass entity data to NBT.
*/
@Override
public void writeEntityToNBT(NBTTagCompound p_70014_1_) {
p_70014_1_.setShort("xTile", (short) this.field_145791_d);
p_70014_1_.setShort("yTile", (short) this.field_145792_e);
p_70014_1_.setShort("zTile", (short) this.field_145789_f);
p_70014_1_.setShort("life", (short) this.ticksInGround);
p_70014_1_.setByte("inTile", (byte) Block.getIdFromBlock(this.field_145790_g));
p_70014_1_.setByte("inData", (byte) this.inData);
p_70014_1_.setByte("shake", (byte) this.arrowShake);
p_70014_1_.setByte("inGround", (byte) (this.inGround ? 1 : 0));
p_70014_1_.setByte("pickup", (byte) this.canBePickedUp);
p_70014_1_.setDouble("damage", this.damage);
p_70014_1_.setDouble("startVel", this.startVel);
}
/**
* (abstract) Protected helper method to read subclass entity data from NBT.
*/
@Override
public void readEntityFromNBT(NBTTagCompound p_70037_1_) {
this.field_145791_d = p_70037_1_.getShort("xTile");
this.field_145792_e = p_70037_1_.getShort("yTile");
this.field_145789_f = p_70037_1_.getShort("zTile");
this.ticksInGround = p_70037_1_.getShort("life");
this.field_145790_g = Block.getBlockById(p_70037_1_.getByte("inTile") & 255);
this.inData = p_70037_1_.getByte("inData") & 255;
this.arrowShake = p_70037_1_.getByte("shake") & 255;
this.inGround = p_70037_1_.getByte("inGround") == 1;
if(p_70037_1_.hasKey("damage", 99)) {
this.damage = p_70037_1_.getDouble("damage");
}
if(p_70037_1_.hasKey("startVel", 99)) {
this.startVel = p_70037_1_.getDouble("startVel");
}
if(p_70037_1_.hasKey("pickup", 99)) {
this.canBePickedUp = p_70037_1_.getByte("pickup");
} else if(p_70037_1_.hasKey("player", 99)) {
this.canBePickedUp = p_70037_1_.getBoolean("player") ? 1 : 0;
}
}
/**
* returns if this entity triggers Block.onEntityWalking on the blocks they
* walk on. used for spiders and wolves to prevent them from trampling crops
*/
@Override
protected boolean canTriggerWalking() {
return false;
}
@Override
@SideOnly(Side.CLIENT)
public float getShadowSize() {
return 0.0F;
}
public void setDamage(double p_70239_1_) {
this.damage = p_70239_1_;
}
public double getDamage() {
return this.damage;
}
/**
* Sets the amount of knockback the arrow applies when it hits a mob.
*/
public void setKnockbackStrength(int p_70240_1_) {
this.knockbackStrength = p_70240_1_;
}
/**
* If returns false, the item will not inflict any damage against entities.
*/
@Override
public boolean canAttackWithItem() {
return false;
}
/**
* Whether the arrow has a stream of critical hit particles flying behind
* it.
*/
public void setIsCritical(boolean p_70243_1_) {
byte b0 = this.dataWatcher.getWatchableObjectByte(16);
if(p_70243_1_) {
this.dataWatcher.updateObject(16, Byte.valueOf((byte) (b0 | 1)));
} else {
this.dataWatcher.updateObject(16, Byte.valueOf((byte) (b0 & -2)));
}
}
/**
* Whether the arrow has a stream of critical hit particles flying behind
* it.
*/
public boolean getIsCritical() {
byte b0 = this.dataWatcher.getWatchableObjectByte(16);
return (b0 & 1) != 0;
}
}

View File

@ -1,601 +0,0 @@
package com.hbm.entity.projectile;
import java.util.List;
import com.hbm.config.BombConfig;
import com.hbm.entity.logic.EntityNukeExplosionMK4;
import com.hbm.explosion.ExplosionParticle;
import com.hbm.explosion.ExplosionParticleB;
import com.hbm.main.MainRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.enchantment.EnchantmentHelper;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.IProjectile;
import net.minecraft.entity.monster.EntityEnderman;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.play.server.S2BPacketChangeGameState;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.DamageSource;
import net.minecraft.util.MathHelper;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.util.Vec3;
import net.minecraft.world.World;
public class EntityMiniNuke extends Entity implements IProjectile
{
private int field_145791_d = -1;
private int field_145792_e = -1;
private int field_145789_f = -1;
public double gravity = 0.0D;
private Block field_145790_g;
private int inData;
private boolean inGround;
/** 1 if the player can pick up the arrow */
public int canBePickedUp;
/** Seems to be some sort of timer for animating an arrow. */
public int arrowShake;
/** The owner of this arrow. */
public Entity shootingEntity;
private int ticksInGround;
private int ticksInAir;
private double damage = 2.0D;
/** The amount of knockback an arrow applies when it hits a mob. */
private int knockbackStrength;
public EntityMiniNuke(World p_i1753_1_)
{
super(p_i1753_1_);
this.renderDistanceWeight = 10.0D;
this.setSize(0.5F, 0.5F);
}
public EntityMiniNuke(World p_i1754_1_, double p_i1754_2_, double p_i1754_4_, double p_i1754_6_)
{
super(p_i1754_1_);
this.renderDistanceWeight = 10.0D;
this.setSize(0.5F, 0.5F);
this.setPosition(p_i1754_2_, p_i1754_4_, p_i1754_6_);
this.yOffset = 0.0F;
}
public EntityMiniNuke(World p_i1755_1_, EntityLivingBase p_i1755_2_, EntityLivingBase p_i1755_3_, float p_i1755_4_, float p_i1755_5_)
{
super(p_i1755_1_);
this.renderDistanceWeight = 10.0D;
this.shootingEntity = p_i1755_2_;
if (p_i1755_2_ instanceof EntityPlayer)
{
this.canBePickedUp = 1;
}
this.posY = p_i1755_2_.posY + p_i1755_2_.getEyeHeight() - 0.10000000149011612D;
double d0 = p_i1755_3_.posX - p_i1755_2_.posX;
double d1 = p_i1755_3_.boundingBox.minY + p_i1755_3_.height / 3.0F - this.posY;
double d2 = p_i1755_3_.posZ - p_i1755_2_.posZ;
double d3 = MathHelper.sqrt_double(d0 * d0 + d2 * d2);
if (d3 >= 1.0E-7D)
{
float f2 = (float)(Math.atan2(d2, d0) * 180.0D / Math.PI) - 90.0F;
float f3 = (float)(-(Math.atan2(d1, d3) * 180.0D / Math.PI));
double d4 = d0 / d3;
double d5 = d2 / d3;
this.setLocationAndAngles(p_i1755_2_.posX + d4, this.posY, p_i1755_2_.posZ + d5, f2, f3);
this.yOffset = 0.0F;
float f4 = (float)d3 * 0.2F;
this.setThrowableHeading(d0, d1 + f4, d2, p_i1755_4_, p_i1755_5_);
}
}
public EntityMiniNuke(World p_i1756_1_, EntityLivingBase p_i1756_2_, float p_i1756_3_)
{
super(p_i1756_1_);
this.renderDistanceWeight = 10.0D;
this.shootingEntity = p_i1756_2_;
if (p_i1756_2_ instanceof EntityPlayer)
{
this.canBePickedUp = 1;
}
this.setSize(0.5F, 0.5F);
this.setLocationAndAngles(p_i1756_2_.posX, p_i1756_2_.posY + p_i1756_2_.getEyeHeight(), p_i1756_2_.posZ, p_i1756_2_.rotationYaw, p_i1756_2_.rotationPitch);
this.posX -= MathHelper.cos(this.rotationYaw / 180.0F * (float)Math.PI) * 0.16F;
this.posY -= 0.10000000149011612D;
this.posZ -= MathHelper.sin(this.rotationYaw / 180.0F * (float)Math.PI) * 0.16F;
this.setPosition(this.posX, this.posY, this.posZ);
this.yOffset = 0.0F;
this.motionX = -MathHelper.sin(this.rotationYaw / 180.0F * (float)Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float)Math.PI);
this.motionZ = MathHelper.cos(this.rotationYaw / 180.0F * (float)Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float)Math.PI);
this.motionY = (-MathHelper.sin(this.rotationPitch / 180.0F * (float)Math.PI));
this.setThrowableHeading(this.motionX, this.motionY, this.motionZ, p_i1756_3_ * 1.5F, 1.0F);
}
public EntityMiniNuke(World world, int x, int y, int z, double mx, double my, double mz, double grav) {
super(world);
this.posX = x + 0.5F;
this.posY = y + 0.5F;
this.posZ = z + 0.5F;
this.motionX = mx;
this.motionY = my;
this.motionZ = mz;
this.gravity = grav;
}
@Override
protected void entityInit()
{
this.dataWatcher.addObject(16, Byte.valueOf((byte)0));
}
/**
* Similar to setArrowHeading, it's point the throwable entity to a x, y, z direction.
*/
@Override
public void setThrowableHeading(double p_70186_1_, double p_70186_3_, double p_70186_5_, float p_70186_7_, float p_70186_8_)
{
float f2 = MathHelper.sqrt_double(p_70186_1_ * p_70186_1_ + p_70186_3_ * p_70186_3_ + p_70186_5_ * p_70186_5_);
p_70186_1_ /= f2;
p_70186_3_ /= f2;
p_70186_5_ /= f2;
p_70186_1_ += this.rand.nextGaussian() * (this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * p_70186_8_;
p_70186_3_ += this.rand.nextGaussian() * (this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * p_70186_8_;
p_70186_5_ += this.rand.nextGaussian() * (this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * p_70186_8_;
p_70186_1_ *= p_70186_7_;
p_70186_3_ *= p_70186_7_;
p_70186_5_ *= p_70186_7_;
this.motionX = p_70186_1_;
this.motionY = p_70186_3_;
this.motionZ = p_70186_5_;
float f3 = MathHelper.sqrt_double(p_70186_1_ * p_70186_1_ + p_70186_5_ * p_70186_5_);
this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(p_70186_1_, p_70186_5_) * 180.0D / Math.PI);
this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(p_70186_3_, f3) * 180.0D / Math.PI);
this.ticksInGround = 0;
}
/**
* Sets the position and rotation. Only difference from the other one is no bounding on the rotation. Args: posX,
* posY, posZ, yaw, pitch
*/
@Override
@SideOnly(Side.CLIENT)
public void setPositionAndRotation2(double p_70056_1_, double p_70056_3_, double p_70056_5_, float p_70056_7_, float p_70056_8_, int p_70056_9_)
{
this.setPosition(p_70056_1_, p_70056_3_, p_70056_5_);
this.setRotation(p_70056_7_, p_70056_8_);
}
/**
* Sets the velocity to the args. Args: x, y, z
*/
@Override
@SideOnly(Side.CLIENT)
public void setVelocity(double p_70016_1_, double p_70016_3_, double p_70016_5_)
{
this.motionX = p_70016_1_;
this.motionY = p_70016_3_;
this.motionZ = p_70016_5_;
if (this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F)
{
float f = MathHelper.sqrt_double(p_70016_1_ * p_70016_1_ + p_70016_5_ * p_70016_5_);
this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(p_70016_1_, p_70016_5_) * 180.0D / Math.PI);
this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(p_70016_3_, f) * 180.0D / Math.PI);
this.prevRotationPitch = this.rotationPitch;
this.prevRotationYaw = this.rotationYaw;
this.setLocationAndAngles(this.posX, this.posY, this.posZ, this.rotationYaw, this.rotationPitch);
this.ticksInGround = 0;
}
}
/**
* Called to update the entity's position/logic.
*/
//@Override
@Override
public void onUpdate()
{
super.onUpdate();
if (this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F)
{
float f = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ);
this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI);
this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(this.motionY, f) * 180.0D / Math.PI);
}
Block block = this.worldObj.getBlock(this.field_145791_d, this.field_145792_e, this.field_145789_f);
if (block.getMaterial() != Material.air)
{
block.setBlockBoundsBasedOnState(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f);
AxisAlignedBB axisalignedbb = block.getCollisionBoundingBoxFromPool(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f);
if (axisalignedbb != null && axisalignedbb.isVecInside(Vec3.createVectorHelper(this.posX, this.posY, this.posZ)))
{
this.inGround = true;
}
}
if (this.arrowShake > 0)
{
--this.arrowShake;
}
if (this.inGround)
{
if (!this.worldObj.isRemote)
{
worldObj.spawnEntityInWorld(EntityNukeExplosionMK4.statFac(worldObj, BombConfig.fatmanRadius, posX, posY, posZ));
//Perma-baleflare mode if the polaroid's glitched
if(MainRegistry.polaroidID == 11)
if(rand.nextInt(100) >= 0) //edited
{
ExplosionParticleB.spawnMush(this.worldObj, (int)this.posX, (int)this.posY - 3, (int)this.posZ);
} else {
ExplosionParticle.spawnMush(this.worldObj, (int)this.posX, (int)this.posY - 3, (int)this.posZ);
}
else
if(rand.nextInt(100) == 0) //original
{
ExplosionParticleB.spawnMush(this.worldObj, (int)this.posX, (int)this.posY - 3, (int)this.posZ);
} else {
ExplosionParticle.spawnMush(this.worldObj, (int)this.posX, (int)this.posY - 3, (int)this.posZ);
}
}
this.setDead();
}
else
{
++this.ticksInAir;
Vec3 vec31 = Vec3.createVectorHelper(this.posX, this.posY, this.posZ);
Vec3 vec3 = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ);
MovingObjectPosition movingobjectposition = this.worldObj.func_147447_a(vec31, vec3, false, true, false);
vec31 = Vec3.createVectorHelper(this.posX, this.posY, this.posZ);
vec3 = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ);
if (movingobjectposition != null)
{
vec3 = Vec3.createVectorHelper(movingobjectposition.hitVec.xCoord, movingobjectposition.hitVec.yCoord, movingobjectposition.hitVec.zCoord);
}
Entity entity = null;
List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.addCoord(this.motionX, this.motionY, this.motionZ).expand(1.0D, 1.0D, 1.0D));
double d0 = 0.0D;
int i;
float f1;
for (i = 0; i < list.size(); ++i)
{
Entity entity1 = (Entity)list.get(i);
if (entity1.canBeCollidedWith() && (entity1 != this.shootingEntity || this.ticksInAir >= 5))
{
f1 = 0.3F;
AxisAlignedBB axisalignedbb1 = entity1.boundingBox.expand(f1, f1, f1);
MovingObjectPosition movingobjectposition1 = axisalignedbb1.calculateIntercept(vec31, vec3);
if (movingobjectposition1 != null)
{
double d1 = vec31.distanceTo(movingobjectposition1.hitVec);
if (d1 < d0 || d0 == 0.0D)
{
entity = entity1;
d0 = d1;
}
}
}
}
if (entity != null)
{
movingobjectposition = new MovingObjectPosition(entity);
}
if (movingobjectposition != null && movingobjectposition.entityHit != null && movingobjectposition.entityHit instanceof EntityPlayer)
{
EntityPlayer entityplayer = (EntityPlayer)movingobjectposition.entityHit;
if (entityplayer.capabilities.disableDamage || this.shootingEntity instanceof EntityPlayer && !((EntityPlayer)this.shootingEntity).canAttackPlayer(entityplayer))
{
movingobjectposition = null;
}
}
float f2;
float f4;
if (movingobjectposition != null)
{
if (movingobjectposition.entityHit != null)
{
f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ);
int k = MathHelper.ceiling_double_int(f2 * this.damage);
if (this.getIsCritical())
{
k += this.rand.nextInt(k / 2 + 2);
}
DamageSource damagesource = null;
if (this.shootingEntity == null)
{
damagesource = DamageSource.causeIndirectMagicDamage(this, this);
}
else
{
damagesource = DamageSource.causeIndirectMagicDamage(this, this);
}
if (this.isBurning() && !(movingobjectposition.entityHit instanceof EntityEnderman))
{
movingobjectposition.entityHit.setFire(5);
}
if (movingobjectposition.entityHit.attackEntityFrom(damagesource, k))
{
if (movingobjectposition.entityHit instanceof EntityLivingBase)
{
EntityLivingBase entitylivingbase = (EntityLivingBase)movingobjectposition.entityHit;
if (this.knockbackStrength > 0)
{
f4 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ);
if (f4 > 0.0F)
{
movingobjectposition.entityHit.addVelocity(this.motionX * this.knockbackStrength * 0.6000000238418579D / f4, 0.1D, this.motionZ * this.knockbackStrength * 0.6000000238418579D / f4);
}
}
if (this.shootingEntity != null && this.shootingEntity instanceof EntityLivingBase)
{
EnchantmentHelper.func_151384_a(entitylivingbase, this.shootingEntity);
EnchantmentHelper.func_151385_b((EntityLivingBase)this.shootingEntity, entitylivingbase);
}
if (this.shootingEntity != null && movingobjectposition.entityHit != this.shootingEntity && movingobjectposition.entityHit instanceof EntityPlayer && this.shootingEntity instanceof EntityPlayerMP)
{
((EntityPlayerMP)this.shootingEntity).playerNetServerHandler.sendPacket(new S2BPacketChangeGameState(6, 0.0F));
}
}
if (!(movingobjectposition.entityHit instanceof EntityEnderman))
{
if (!this.worldObj.isRemote)
{
worldObj.spawnEntityInWorld(EntityNukeExplosionMK4.statFac(worldObj, BombConfig.fatmanRadius, posX, posY, posZ));
if(rand.nextInt(100) == 0)
{
ExplosionParticleB.spawnMush(this.worldObj, (int)this.posX, (int)this.posY - 3, (int)this.posZ);
} else {
ExplosionParticle.spawnMush(this.worldObj, (int)this.posX, (int)this.posY - 3, (int)this.posZ);
}
}
this.setDead();
}
}
else
{
this.motionX *= -0.10000000149011612D;
this.motionY *= -0.10000000149011612D;
this.motionZ *= -0.10000000149011612D;
this.rotationYaw += 180.0F;
this.prevRotationYaw += 180.0F;
this.ticksInAir = 0;
}
}
else
{
this.field_145791_d = movingobjectposition.blockX;
this.field_145792_e = movingobjectposition.blockY;
this.field_145789_f = movingobjectposition.blockZ;
this.field_145790_g = this.worldObj.getBlock(this.field_145791_d, this.field_145792_e, this.field_145789_f);
this.inData = this.worldObj.getBlockMetadata(this.field_145791_d, this.field_145792_e, this.field_145789_f);
this.motionX = ((float)(movingobjectposition.hitVec.xCoord - this.posX));
this.motionY = ((float)(movingobjectposition.hitVec.yCoord - this.posY));
this.motionZ = ((float)(movingobjectposition.hitVec.zCoord - this.posZ));
f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ);
this.posX -= this.motionX / f2 * 0.05000000074505806D;
this.posY -= this.motionY / f2 * 0.05000000074505806D;
this.posZ -= this.motionZ / f2 * 0.05000000074505806D;
this.inGround = true;
this.arrowShake = 7;
this.setIsCritical(false);
if (this.field_145790_g.getMaterial() != Material.air)
{
this.field_145790_g.onEntityCollidedWithBlock(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f, this);
}
}
}
this.posX += this.motionX;
this.posY += this.motionY;
this.posZ += this.motionZ;
f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ);
this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI);
for (this.rotationPitch = (float)(Math.atan2(this.motionY, f2) * 180.0D / Math.PI); this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F)
{
;
}
while (this.rotationPitch - this.prevRotationPitch >= 180.0F)
{
this.prevRotationPitch += 360.0F;
}
while (this.rotationYaw - this.prevRotationYaw < -180.0F)
{
this.prevRotationYaw -= 360.0F;
}
while (this.rotationYaw - this.prevRotationYaw >= 180.0F)
{
this.prevRotationYaw += 360.0F;
}
this.rotationPitch = this.prevRotationPitch + (this.rotationPitch - this.prevRotationPitch) * 0.2F;
this.rotationYaw = this.prevRotationYaw + (this.rotationYaw - this.prevRotationYaw) * 0.2F;
float f3 = 0.99F;
f1 = 0.05F;
if (this.isInWater())
{
for (int l = 0; l < 4; ++l)
{
f4 = 0.25F;
this.worldObj.spawnParticle("bubble", this.posX - this.motionX * f4, this.posY - this.motionY * f4, this.posZ - this.motionZ * f4, this.motionX, this.motionY, this.motionZ);
}
f3 = 0.8F;
}
if (this.isWet())
{
this.extinguish();
}
this.motionX *= f3;
this.motionY *= f3;
this.motionZ *= f3;
this.motionY -= 0.15D;
this.setPosition(this.posX, this.posY, this.posZ);
this.func_145775_I();
}
}
/**
* (abstract) Protected helper method to write subclass entity data to NBT.
*/
@Override
public void writeEntityToNBT(NBTTagCompound p_70014_1_)
{
p_70014_1_.setShort("xTile", (short)this.field_145791_d);
p_70014_1_.setShort("yTile", (short)this.field_145792_e);
p_70014_1_.setShort("zTile", (short)this.field_145789_f);
p_70014_1_.setShort("life", (short)this.ticksInGround);
p_70014_1_.setByte("inTile", (byte)Block.getIdFromBlock(this.field_145790_g));
p_70014_1_.setByte("inData", (byte)this.inData);
p_70014_1_.setByte("shake", (byte)this.arrowShake);
p_70014_1_.setByte("inGround", (byte)(this.inGround ? 1 : 0));
p_70014_1_.setByte("pickup", (byte)this.canBePickedUp);
p_70014_1_.setDouble("damage", this.damage);
}
/**
* (abstract) Protected helper method to read subclass entity data from NBT.
*/
@Override
public void readEntityFromNBT(NBTTagCompound p_70037_1_)
{
this.field_145791_d = p_70037_1_.getShort("xTile");
this.field_145792_e = p_70037_1_.getShort("yTile");
this.field_145789_f = p_70037_1_.getShort("zTile");
this.ticksInGround = p_70037_1_.getShort("life");
this.field_145790_g = Block.getBlockById(p_70037_1_.getByte("inTile") & 255);
this.inData = p_70037_1_.getByte("inData") & 255;
this.arrowShake = p_70037_1_.getByte("shake") & 255;
this.inGround = p_70037_1_.getByte("inGround") == 1;
if (p_70037_1_.hasKey("damage", 99))
{
this.damage = p_70037_1_.getDouble("damage");
}
if (p_70037_1_.hasKey("pickup", 99))
{
this.canBePickedUp = p_70037_1_.getByte("pickup");
}
else if (p_70037_1_.hasKey("player", 99))
{
this.canBePickedUp = p_70037_1_.getBoolean("player") ? 1 : 0;
}
}
/**
* returns if this entity triggers Block.onEntityWalking on the blocks they walk on. used for spiders and wolves to
* prevent them from trampling crops
*/
@Override
protected boolean canTriggerWalking()
{
return false;
}
@Override
@SideOnly(Side.CLIENT)
public float getShadowSize()
{
return 0.0F;
}
public void setDamage(double p_70239_1_)
{
this.damage = p_70239_1_;
}
public double getDamage()
{
return this.damage;
}
/**
* Sets the amount of knockback the arrow applies when it hits a mob.
*/
public void setKnockbackStrength(int p_70240_1_)
{
this.knockbackStrength = p_70240_1_;
}
/**
* If returns false, the item will not inflict any damage against entities.
*/
@Override
public boolean canAttackWithItem()
{
return false;
}
/**
* Whether the arrow has a stream of critical hit particles flying behind it.
*/
public void setIsCritical(boolean p_70243_1_)
{
byte b0 = this.dataWatcher.getWatchableObjectByte(16);
if (p_70243_1_)
{
this.dataWatcher.updateObject(16, Byte.valueOf((byte)(b0 | 1)));
}
else
{
this.dataWatcher.updateObject(16, Byte.valueOf((byte)(b0 & -2)));
}
}
/**
* Whether the arrow has a stream of critical hit particles flying behind it.
*/
public boolean getIsCritical()
{
byte b0 = this.dataWatcher.getWatchableObjectByte(16);
return (b0 & 1) != 0;
}
}

View File

@ -15,7 +15,6 @@ import com.hbm.entity.particle.EntityModFX;
import com.hbm.entity.particle.EntityOrangeFX;
import com.hbm.entity.particle.EntityPinkCloudFX;
import com.hbm.entity.projectile.EntityBullet;
import com.hbm.entity.projectile.EntityMiniNuke;
import com.hbm.entity.projectile.EntityRainbow;
import com.hbm.entity.projectile.EntityRocket;
import com.hbm.entity.projectile.EntityRubble;
@ -1020,95 +1019,6 @@ public class ExplosionChaos {
world.spawnEntityInWorld(mirv8);
}
public static void miniMirv(World world, double x, double y, double z) {
double modifier = 1.25;
double zeta = Math.sqrt(2) / 2;
EntityMiniNuke mirv1 = new EntityMiniNuke(world);
EntityMiniNuke mirv2 = new EntityMiniNuke(world);
EntityMiniNuke mirv3 = new EntityMiniNuke(world);
EntityMiniNuke mirv4 = new EntityMiniNuke(world);
double vx1 = 1;
double vy1 = rand.nextDouble() * -1;
double vz1 = 0;
mirv1.posX = x;
mirv1.posY = y;
mirv1.posZ = z;
mirv1.motionY = vy1;
mirv2.posX = x;
mirv2.posY = y;
mirv2.posZ = z;
mirv2.motionY = vy1;
mirv3.posX = x;
mirv3.posY = y;
mirv3.posZ = z;
mirv3.motionY = vy1;
mirv4.posX = x;
mirv4.posY = y;
mirv4.posZ = z;
mirv4.motionY = vy1;
mirv1.motionX = vx1 * modifier;
mirv1.motionZ = vz1 * modifier;
world.spawnEntityInWorld(mirv1);
mirv2.motionX = -vz1 * modifier;
mirv2.motionZ = vx1 * modifier;
world.spawnEntityInWorld(mirv2);
mirv3.motionX = -vx1 * modifier;
mirv3.motionZ = -vz1 * modifier;
world.spawnEntityInWorld(mirv3);
mirv4.motionX = vz1 * modifier;
mirv4.motionZ = -vx1 * modifier;
world.spawnEntityInWorld(mirv4);
EntityMiniNuke mirv5 = new EntityMiniNuke(world);
EntityMiniNuke mirv6 = new EntityMiniNuke(world);
EntityMiniNuke mirv7 = new EntityMiniNuke(world);
EntityMiniNuke mirv8 = new EntityMiniNuke(world);
// double vx2 = vx1 < theta ? vx1 + theta : vx1 - theta;
// double vy2 = vy1;
// double vz2 = Math.sqrt(Math.pow(1, 2) - Math.pow(vx2, 2));
double vx2 = zeta;
double vy2 = vy1;
double vz2 = zeta;
mirv5.posX = x;
mirv5.posY = y;
mirv5.posZ = z;
mirv5.motionY = vy2;
mirv6.posX = x;
mirv6.posY = y;
mirv6.posZ = z;
mirv6.motionY = vy2;
mirv7.posX = x;
mirv7.posY = y;
mirv7.posZ = z;
mirv7.motionY = vy2;
mirv8.posX = x;
mirv8.posY = y;
mirv8.posZ = z;
mirv8.motionY = vy2;
mirv5.motionX = vx2 * modifier;
mirv5.motionZ = vz2 * modifier;
world.spawnEntityInWorld(mirv5);
mirv6.motionX = -vz2 * modifier;
mirv6.motionZ = vx2 * modifier;
world.spawnEntityInWorld(mirv6);
mirv7.motionX = -vx2 * modifier;
mirv7.motionZ = -vz2 * modifier;
world.spawnEntityInWorld(mirv7);
mirv8.motionX = vz2 * modifier;
mirv8.motionZ = -vx2 * modifier;
world.spawnEntityInWorld(mirv8);
}
public static void plasma(World world, int x, int y, int z, int radius) {
int r = radius;
int r2 = r * r;

View File

@ -1,5 +1,6 @@
package com.hbm.explosion;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
@ -34,6 +35,8 @@ public class ExplosionNT extends Explosion {
private World worldObj;
protected int field_77289_h = 16;
protected Map affectedEntities = new HashMap();
public static final List<ExAttrib> nukeAttribs = Arrays.asList(new ExAttrib[] {ExAttrib.FIRE, ExAttrib.NOPARTICLE, ExAttrib.NOSOUND, ExAttrib.NODROP, ExAttrib.NOHURT});
public ExplosionNT(World world, Entity exploder, double x, double y, double z, float strength) {
super(world, exploder, x, y, z, strength);

View File

@ -31,8 +31,6 @@ import com.hbm.entity.grenade.EntityGrenadeNuclear;
import com.hbm.entity.missile.EntityMIRV;
import com.hbm.entity.projectile.EntityBulletBase;
import com.hbm.entity.projectile.EntityExplosiveBeam;
import com.hbm.entity.projectile.EntityMiniMIRV;
import com.hbm.entity.projectile.EntityMiniNuke;
import com.hbm.interfaces.IConsumer;
import com.hbm.interfaces.ISource;
import com.hbm.interfaces.Spaghetti;
@ -161,8 +159,6 @@ public class ExplosionNukeGeneric {
if (e instanceof EntityOcelot ||
e instanceof EntityNukeCloudSmall ||
e instanceof EntityMIRV ||
e instanceof EntityMiniNuke ||
e instanceof EntityMiniMIRV ||
e instanceof EntityGrenadeASchrab ||
e instanceof EntityGrenadeNuclear ||
e instanceof EntityExplosiveBeam ||

View File

@ -0,0 +1,76 @@
package com.hbm.explosion;
import com.hbm.config.BombConfig;
import com.hbm.entity.logic.EntityNukeExplosionMK4;
import com.hbm.main.MainRegistry;
import com.hbm.packet.AuxParticlePacketNT;
import com.hbm.packet.PacketDispatcher;
import com.hbm.saveddata.RadiationSavedData;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World;
public class ExplosionNukeSmall {
public static final int safe = 0;
public static final int tots = 1;
public static final int low = 2;
public static final int medium = 3;
public static final int high = 4;
public static void explode(World world, double posX, double posY, double posZ, int size) {
//all sizes have the same animation except tiny tots
NBTTagCompound data = new NBTTagCompound();
if(size == tots)
data.setString("type", "tinytot");
else
data.setString("type", "muke");
if(MainRegistry.polaroidID == 11 || world.rand.nextInt(100) == 0)
data.setBoolean("balefire", true);
PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY + 0.5, posZ), new TargetPoint(world.provider.dimensionId, posX, posY, posZ, 250));
world.playSoundEffect(posX, posY, posZ, "hbm:weapon.mukeExplosion", 15.0F, 1.0F);
//no shrapnels for large mukes and tinty tots
if(size != high && size != tots)
ExplosionLarge.spawnShrapnels(world, posX, posY, posZ, 25);
if(size == safe) {
ExplosionNukeGeneric.dealDamage(world, posX, posY, posZ, 45);
} else if(size > safe && size < high) {
switch(size) {
case 1: new ExplosionNT(world, null, posX, posY, posZ, 10F).addAllAttrib(ExplosionNT.nukeAttribs).explode();
ExplosionNukeGeneric.dealDamage(world, posX, posY, posZ, 30); break;
case 2: new ExplosionNT(world, null, posX, posY, posZ, 15F).addAllAttrib(ExplosionNT.nukeAttribs).explode();
ExplosionNukeGeneric.dealDamage(world, posX, posY, posZ, 45); break;
case 3: new ExplosionNT(world, null, posX, posY, posZ, 15F).addAllAttrib(ExplosionNT.nukeAttribs).explode();
new ExplosionNT(world, null, posX + 7, posY, posZ, 10F).addAllAttrib(ExplosionNT.nukeAttribs).explode();
new ExplosionNT(world, null, posX - 7, posY, posZ, 10F).addAllAttrib(ExplosionNT.nukeAttribs).explode();
new ExplosionNT(world, null, posX, posY, posZ + 7, 10F).addAllAttrib(ExplosionNT.nukeAttribs).explode();
new ExplosionNT(world, null, posX, posY, posZ - 7, 10F).addAllAttrib(ExplosionNT.nukeAttribs).explode();
ExplosionNukeGeneric.dealDamage(world, posX, posY, posZ, 55); break;
}
} else if(size == high) {
world.spawnEntityInWorld(EntityNukeExplosionMK4.statFac(world, BombConfig.fatmanRadius, posX, posY, posZ).mute());
}
//radiation is 50 RAD/s in the epicenter, times the radMod
float radMod = size * 0.33F;
//radMod for safe nukes is the same as for low yield
if(size == safe)
radMod = 0.66F;
for(int i = -2; i <= 2; i++)
for(int j = -2; j <= 2; j++)
if(i + j < 4)
RadiationSavedData.incrementRad(world, (int)posX + i * 16, (int)posZ + j * 16, 50 / (Math.abs(i) + Math.abs(j) + 1) * radMod, 1000);
}
}

View File

@ -1,675 +0,0 @@
package com.hbm.explosion;
import com.hbm.entity.particle.EntitySmokeFX;
import net.minecraft.world.World;
public class ExplosionParticle {
public static void spawnMush(World world, double x, double y, double z)
{
x -= 6;
z -= 6;
/*world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 0, (double) z + 0, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 4, (double) y + 0, (double) z + 1, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 0, (double) z + 1, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 0, (double) z + 1, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 10, (double) y + 0, (double) z + 1, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 3, (double) y + 0, (double) z + 2, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 5, (double) y + 0, (double) z + 2, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 0, (double) z + 2, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 9, (double) y + 0, (double) z + 2, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 11, (double) y + 0, (double) z + 2, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 2, (double) y + 0, (double) z + 3, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 4, (double) y + 0, (double) z + 3, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 0, (double) z + 3, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 0, (double) z + 3, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 10, (double) y + 0, (double) z + 3, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 12, (double) y + 0, (double) z + 3, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 1, (double) y + 0, (double) z + 4, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 3, (double) y + 0, (double) z + 4, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 5, (double) y + 0, (double) z + 4, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 0, (double) z + 4, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 9, (double) y + 0, (double) z + 4, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 11, (double) y + 0, (double) z + 4, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 13, (double) y + 0, (double) z + 4, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 2, (double) y + 0, (double) z + 5, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 4, (double) y + 0, (double) z + 5, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 0, (double) z + 5, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 0, (double) z + 5, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 10, (double) y + 0, (double) z + 5, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 12, (double) y + 0, (double) z + 5, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 1, (double) y + 0, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 3, (double) y + 0, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 5, (double) y + 0, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 0, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 9, (double) y + 0, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 11, (double) y + 0, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 13, (double) y + 0, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 0, (double) y + 0, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 2, (double) y + 0, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 4, (double) y + 0, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 0, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 0, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 10, (double) y + 0, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 12, (double) y + 0, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 14, (double) y + 0, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 1, (double) y + 0, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 3, (double) y + 0, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 5, (double) y + 0, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 0, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 9, (double) y + 0, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 11, (double) y + 0, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 13, (double) y + 0, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 2, (double) y + 0, (double) z + 9, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 4, (double) y + 0, (double) z + 9, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 0, (double) z + 9, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 0, (double) z + 9, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 10, (double) y + 0, (double) z + 9, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 12, (double) y + 0, (double) z + 9, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 1, (double) y + 0, (double) z + 10, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 3, (double) y + 0, (double) z + 10, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 5, (double) y + 0, (double) z + 10, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 0, (double) z + 10, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 9, (double) y + 0, (double) z + 10, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 11, (double) y + 0, (double) z + 10, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 13, (double) y + 0, (double) z + 10, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 2, (double) y + 0, (double) z + 11, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 4, (double) y + 0, (double) z + 11, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 0, (double) z + 11, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 0, (double) z + 11, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 10, (double) y + 0, (double) z + 11, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 12, (double) y + 0, (double) z + 11, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 3, (double) y + 0, (double) z + 12, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 5, (double) y + 0, (double) z + 12, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 0, (double) z + 12, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 9, (double) y + 0, (double) z + 12, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 11, (double) y + 0, (double) z + 12, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 4, (double) y + 0, (double) z + 13, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 0, (double) z + 13, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 0, (double) z + 13, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 10, (double) y + 0, (double) z + 13, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 0, (double) z + 14, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 5, (double) y + 1, (double) z + 3, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 1, (double) z + 3, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 9, (double) y + 1, (double) z + 3, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 4, (double) y + 1, (double) z + 4, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 1, (double) z + 4, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 1, (double) z + 4, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 10, (double) y + 1, (double) z + 4, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 3, (double) y + 1, (double) z + 5, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 5, (double) y + 1, (double) z + 5, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 1, (double) z + 5, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 9, (double) y + 1, (double) z + 5, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 11, (double) y + 1, (double) z + 5, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 4, (double) y + 1, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 1, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 1, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 10, (double) y + 1, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 3, (double) y + 1, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 5, (double) y + 1, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 1, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 9, (double) y + 1, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 11, (double) y + 1, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 4, (double) y + 1, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 1, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 1, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 10, (double) y + 1, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 3, (double) y + 1, (double) z + 9, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 5, (double) y + 1, (double) z + 9, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 1, (double) z + 9, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 9, (double) y + 1, (double) z + 9, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 11, (double) y + 1, (double) z + 9, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 4, (double) y + 1, (double) z + 10, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 1, (double) z + 10, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 1, (double) z + 10, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 10, (double) y + 1, (double) z + 10, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 5, (double) y + 1, (double) z + 11, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 1, (double) z + 11, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 9, (double) y + 1, (double) z + 11, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 2, (double) z + 5, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 2, (double) z + 5, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 5, (double) y + 2, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 2, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 9, (double) y + 2, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 2, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 2, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 5, (double) y + 2, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 2, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 9, (double) y + 2, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 2, (double) z + 9, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 2, (double) z + 9, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 3, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 3, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 3, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 3, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 3, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 4, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 4, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 4, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 4, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 5, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 5, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 5, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 5, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 5, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 5, (double) y + 6, (double) z + 4, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 6, (double) z + 4, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 9, (double) y + 6, (double) z + 4, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 4, (double) y + 6, (double) z + 5, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 6, (double) z + 5, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 6, (double) z + 5, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 10, (double) y + 6, (double) z + 5, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 5, (double) y + 6, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 6, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 9, (double) y + 6, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 4, (double) y + 6, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 6, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 6, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 10, (double) y + 6, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 5, (double) y + 6, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 6, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 9, (double) y + 6, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 4, (double) y + 6, (double) z + 9, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 6, (double) z + 9, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 6, (double) z + 9, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 10, (double) y + 6, (double) z + 9, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 5, (double) y + 6, (double) z + 10, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 6, (double) z + 10, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 9, (double) y + 6, (double) z + 10, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 7, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 7, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 7, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 7, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 7, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 8, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 8, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 8, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 8, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 9, (double) z + 3, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 4, (double) y + 9, (double) z + 4, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 9, (double) z + 4, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 9, (double) z + 4, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 10, (double) y + 9, (double) z + 4, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 5, (double) y + 9, (double) z + 5, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 9, (double) z + 5, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 9, (double) y + 9, (double) z + 5, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 4, (double) y + 9, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 9, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 9, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 10, (double) y + 9, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 3, (double) y + 9, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 5, (double) y + 9, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 9, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 9, (double) y + 9, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 11, (double) y + 9, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 4, (double) y + 9, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 9, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 9, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 10, (double) y + 9, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 5, (double) y + 9, (double) z + 9, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 9, (double) z + 9, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 9, (double) y + 9, (double) z + 9, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 4, (double) y + 9, (double) z + 10, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 9, (double) z + 10, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 9, (double) z + 10, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 10, (double) y + 9, (double) z + 10, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 9, (double) z + 11, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 10, (double) z + 2, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 4, (double) y + 10, (double) z + 3, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 10, (double) z + 3, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 10, (double) y + 10, (double) z + 3, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 3, (double) y + 10, (double) z + 4, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 5, (double) y + 10, (double) z + 4, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 10, (double) z + 4, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 9, (double) y + 10, (double) z + 4, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 11, (double) y + 10, (double) z + 4, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 4, (double) y + 10, (double) z + 5, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 10, (double) z + 5, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 10, (double) z + 5, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 10, (double) y + 10, (double) z + 5, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 3, (double) y + 10, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 5, (double) y + 10, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 10, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 9, (double) y + 10, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 11, (double) y + 10, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 2, (double) y + 10, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 4, (double) y + 10, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 10, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 10, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 10, (double) y + 10, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 12, (double) y + 10, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 3, (double) y + 10, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 5, (double) y + 10, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 10, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 9, (double) y + 10, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 11, (double) y + 10, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 4, (double) y + 10, (double) z + 9, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 10, (double) z + 9, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 10, (double) z + 9, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 10, (double) y + 10, (double) z + 9, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 3, (double) y + 10, (double) z + 10, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 5, (double) y + 10, (double) z + 10, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 10, (double) z + 10, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 9, (double) y + 10, (double) z + 10, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 11, (double) y + 10, (double) z + 10, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 4, (double) y + 10, (double) z + 11, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 10, (double) z + 11, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 10, (double) z + 11, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 10, (double) y + 10, (double) z + 11, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 10, (double) z + 12, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 11, (double) z + 1, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 11, (double) z + 2, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 11, (double) z + 2, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 5, (double) y + 11, (double) z + 3, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 11, (double) z + 3, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 9, (double) y + 11, (double) z + 3, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 4, (double) y + 11, (double) z + 4, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 11, (double) z + 4, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 11, (double) z + 4, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 10, (double) y + 11, (double) z + 4, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 3, (double) y + 11, (double) z + 5, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 5, (double) y + 11, (double) z + 5, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 11, (double) z + 5, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 9, (double) y + 11, (double) z + 5, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 11, (double) y + 11, (double) z + 5, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 2, (double) y + 11, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 4, (double) y + 11, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 11, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 11, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 10, (double) y + 11, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 12, (double) y + 11, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 1, (double) y + 11, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 3, (double) y + 11, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 5, (double) y + 11, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 11, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 9, (double) y + 11, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 11, (double) y + 11, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 13, (double) y + 11, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 2, (double) y + 11, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 4, (double) y + 11, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 11, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 11, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 10, (double) y + 11, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 12, (double) y + 11, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 3, (double) y + 11, (double) z + 9, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 5, (double) y + 11, (double) z + 9, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 11, (double) z + 9, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 9, (double) y + 11, (double) z + 9, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 11, (double) y + 11, (double) z + 9, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 4, (double) y + 11, (double) z + 10, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 11, (double) z + 10, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 11, (double) z + 10, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 10, (double) y + 11, (double) z + 10, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 5, (double) y + 11, (double) z + 11, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 11, (double) z + 11, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 9, (double) y + 11, (double) z + 11, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 11, (double) z + 12, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 11, (double) z + 12, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 11, (double) z + 13, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 12, (double) z + 2, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 4, (double) y + 12, (double) z + 3, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 12, (double) z + 3, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 12, (double) z + 3, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 10, (double) y + 12, (double) z + 3, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 3, (double) y + 12, (double) z + 4, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 5, (double) y + 12, (double) z + 4, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 12, (double) z + 4, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 9, (double) y + 12, (double) z + 4, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 11, (double) y + 12, (double) z + 4, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 4, (double) y + 12, (double) z + 5, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 12, (double) z + 5, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 12, (double) z + 5, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 10, (double) y + 12, (double) z + 5, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 3, (double) y + 12, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 5, (double) y + 12, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 12, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 9, (double) y + 12, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 11, (double) y + 12, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 2, (double) y + 12, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 4, (double) y + 12, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 12, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 12, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 10, (double) y + 12, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 12, (double) y + 12, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 3, (double) y + 12, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 5, (double) y + 12, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 12, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 9, (double) y + 12, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 11, (double) y + 12, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 4, (double) y + 12, (double) z + 9, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 12, (double) z + 9, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 12, (double) z + 9, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 10, (double) y + 12, (double) z + 9, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 3, (double) y + 12, (double) z + 10, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 5, (double) y + 12, (double) z + 10, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 12, (double) z + 10, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 9, (double) y + 12, (double) z + 10, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 11, (double) y + 12, (double) z + 10, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 4, (double) y + 12, (double) z + 11, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 12, (double) z + 11, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 12, (double) z + 11, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 10, (double) y + 12, (double) z + 11, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 12, (double) z + 12, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 13, (double) z + 1, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 13, (double) z + 2, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 13, (double) z + 2, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 5, (double) y + 13, (double) z + 3, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 13, (double) z + 3, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 9, (double) y + 13, (double) z + 3, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 4, (double) y + 13, (double) z + 4, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 13, (double) z + 4, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 13, (double) z + 4, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 10, (double) y + 13, (double) z + 4, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 3, (double) y + 13, (double) z + 5, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 5, (double) y + 13, (double) z + 5, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 13, (double) z + 5, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 9, (double) y + 13, (double) z + 5, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 11, (double) y + 13, (double) z + 5, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 2, (double) y + 13, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 4, (double) y + 13, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 13, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 13, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 10, (double) y + 13, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 12, (double) y + 13, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 1, (double) y + 13, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 3, (double) y + 13, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 5, (double) y + 13, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 13, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 9, (double) y + 13, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 11, (double) y + 13, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 13, (double) y + 13, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 2, (double) y + 13, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 4, (double) y + 13, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 13, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 13, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 10, (double) y + 13, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 12, (double) y + 13, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 3, (double) y + 13, (double) z + 9, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 5, (double) y + 13, (double) z + 9, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 13, (double) z + 9, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 9, (double) y + 13, (double) z + 9, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 11, (double) y + 13, (double) z + 9, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 4, (double) y + 13, (double) z + 10, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 13, (double) z + 10, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 13, (double) z + 10, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 10, (double) y + 13, (double) z + 10, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 5, (double) y + 13, (double) z + 11, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 13, (double) z + 11, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 9, (double) y + 13, (double) z + 11, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 13, (double) z + 12, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 13, (double) z + 12, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 13, (double) z + 13, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 14, (double) z + 2, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 4, (double) y + 14, (double) z + 3, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 14, (double) z + 3, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 14, (double) z + 3, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 10, (double) y + 14, (double) z + 3, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 3, (double) y + 14, (double) z + 4, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 5, (double) y + 14, (double) z + 4, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 14, (double) z + 4, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 9, (double) y + 14, (double) z + 4, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 11, (double) y + 14, (double) z + 4, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 4, (double) y + 14, (double) z + 5, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 14, (double) z + 5, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 14, (double) z + 5, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 10, (double) y + 14, (double) z + 5, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 3, (double) y + 14, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 5, (double) y + 14, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 14, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 9, (double) y + 14, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 11, (double) y + 14, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 2, (double) y + 14, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 4, (double) y + 14, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 14, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 14, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 10, (double) y + 14, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 12, (double) y + 14, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 3, (double) y + 14, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 5, (double) y + 14, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 14, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 9, (double) y + 14, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 11, (double) y + 14, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 4, (double) y + 14, (double) z + 9, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 14, (double) z + 9, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 14, (double) z + 9, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 10, (double) y + 14, (double) z + 9, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 3, (double) y + 14, (double) z + 10, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 5, (double) y + 14, (double) z + 10, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 14, (double) z + 10, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 9, (double) y + 14, (double) z + 10, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 11, (double) y + 14, (double) z + 10, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 4, (double) y + 14, (double) z + 11, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 14, (double) z + 11, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 14, (double) z + 11, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 10, (double) y + 14, (double) z + 11, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 14, (double) z + 12, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 15, (double) z + 3, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 15, (double) z + 4, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 15, (double) z + 4, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 5, (double) y + 15, (double) z + 5, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 15, (double) z + 5, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 9, (double) y + 15, (double) z + 5, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 4, (double) y + 15, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 15, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 15, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 10, (double) y + 15, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 3, (double) y + 15, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 5, (double) y + 15, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 15, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 9, (double) y + 15, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 11, (double) y + 15, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 4, (double) y + 15, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 15, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 15, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 10, (double) y + 15, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 5, (double) y + 15, (double) z + 9, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 15, (double) z + 9, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 9, (double) y + 15, (double) z + 9, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 15, (double) z + 10, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 15, (double) z + 10, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 15, (double) z + 11, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 16, (double) z + 4, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 16, (double) z + 5, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 16, (double) z + 5, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 5, (double) y + 16, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 16, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 9, (double) y + 16, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 4, (double) y + 16, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 16, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 16, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 10, (double) y + 16, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 5, (double) y + 16, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 16, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 9, (double) y + 16, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 16, (double) z + 9, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 16, (double) z + 9, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 16, (double) z + 10, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 17, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 17, (double) z + 6, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 7, (double) y + 17, (double) z + 7, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 6, (double) y + 17, (double) z + 8, 0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, (double)x + 8, (double) y + 17, (double) z + 8, 0.0, 0.0, 0.0));*/
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 3, y + 0, z + 0,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 5, y + 0, z + 0,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 7, y + 0, z + 0,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 9, y + 0, z + 0,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 0, y + 0, z + 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 12, y + 0, z + 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 5, y + 0, z + 4,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 7, y + 0, z + 4,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 0, y + 0, z + 5,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 4, y + 0, z + 5,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 8, y + 0, z + 5,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 12, y + 0, z + 5,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 0, y + 0, z + 7,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 4, y + 0, z + 7,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 8, y + 0, z + 7,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 12, y + 0, z + 7,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 5, y + 0, z + 8,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 7, y + 0, z + 8,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 0, y + 0, z + 9,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 12, y + 0, z + 9,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 3, y + 0, z + 12,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 5, y + 0, z + 12,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 7, y + 0, z + 12,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 9, y + 0, z + 12,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 4, y + 1, z + 2,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 6, y + 1, z + 2,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 8, y + 1, z + 2,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 9, y + 1, z + 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 2, y + 1, z + 4,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 10, y + 1, z + 4,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 2, y + 1, z + 6,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 10, y + 1, z + 6,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 2, y + 1, z + 8,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 10, y + 1, z + 8,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 4, y + 1, z + 10,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 6, y + 1, z + 10,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 8, y + 1, z + 10,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 5, y + 2, z + 4,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 7, y + 2, z + 4,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 4, y + 2, z + 5,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 8, y + 2, z + 5,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 4, y + 2, z + 7,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 8, y + 2, z + 7,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 5, y + 2, z + 8,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 7, y + 2, z + 8,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 6, y + 4, z + 5,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 5, y + 4, z + 6,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 7, y + 4, z + 6,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 6, y + 4, z + 7,0.0, 0.0, 0.0));
y += 2;
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 6, y + 4, z + 5,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 5, y + 4, z + 6,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 7, y + 4, z + 6,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 6, y + 4, z + 7,0.0, 0.0, 0.0));
/*world.spawnEntityInWorld(new EntitySmokeFX(world, x + 4, y + 6, z + 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 8, y + 6, z + 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 3, y + 6, z + 4,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 9, y + 6, z + 4,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 3, y + 6, z + 8,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 9, y + 6, z + 8,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 4, y + 6, z + 9,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 8, y + 6, z + 9,0.0, 0.0, 0.0));*/
y--;
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 5, y + 7, z + 5,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 7, y + 7, z + 5,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 5, y + 7, z + 7,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 7, y + 7, z + 7,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 6, y + 8, z + 6,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 6, y + 9, z + 2,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 4, y + 9, z + 4,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 8, y + 9, z + 4,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 2, y + 9, z + 6,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 8, y + 9, z + 6,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 10, y + 9, z + 6,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 4, y + 9, z + 8,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 8, y + 9, z + 8,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 6, y + 9, z + 10,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 3, y + 10, z + 2,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 9, y + 10, z + 2,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 2, y + 10, z + 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 6, y + 10, z + 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 10, y + 10, z + 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 2, y + 10, z + 9,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 10, y + 10, z + 9,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 3, y + 10, z + 10,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 9, y + 10, z + 10,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 6, y + 11, z + 0,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 5, y + 11, z + 5,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 7, y + 11, z + 5,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 0, y + 11, z + 6,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 12, y + 11, z + 6,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 5, y + 11, z + 7,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 7, y + 11, z + 7,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 6, y + 11, z + 12,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 3, y + 12, z + 2,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 5, y + 12, z + 2,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 7, y + 12, z + 2,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 9, y + 12, z + 2,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 2, y + 12, z + 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 10, y + 12, z + 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 2, y + 12, z + 5,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 10, y + 12, z + 5,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 2, y + 12, z + 7,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 10, y + 12, z + 7,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 2, y + 12, z + 9,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 10, y + 12, z + 9,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 3, y + 12, z + 10,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 5, y + 12, z + 10,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 7, y + 12, z + 10,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 9, y + 12, z + 10,0.0, 0.0, 0.0));
//
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 3, y + 12, z + 2 - 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 5, y + 12, z + 2 - 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 7, y + 12, z + 2 - 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 9, y + 12, z + 2 - 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 2 - 3, y + 12, z + 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 10 + 3, y + 12, z + 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 2 - 3, y + 12, z + 5,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 10 + 3, y + 12, z + 5,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 2 - 3, y + 12, z + 7,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 10 + 3, y + 12, z + 7,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 2 - 3, y + 12, z + 9,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 10 + 3, y + 12, z + 9,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 3, y + 12, z + 10 + 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 5, y + 12, z + 10 + 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 7, y + 12, z + 10 + 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 9, y + 12, z + 10 + 3,0.0, 0.0, 0.0));
//
y -= 2;
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 3, y + 12, z + 2 - 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 5, y + 12, z + 2 - 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 7, y + 12, z + 2 - 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 9, y + 12, z + 2 - 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 2 - 3, y + 12, z + 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 10 + 3, y + 12, z + 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 2 - 3, y + 12, z + 5,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 10 + 3, y + 12, z + 5,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 2 - 3, y + 12, z + 7,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 10 + 3, y + 12, z + 7,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 2 - 3, y + 12, z + 9,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 10 + 3, y + 12, z + 9,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 3, y + 12, z + 10 + 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 5, y + 12, z + 10 + 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 7, y + 12, z + 10 + 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 9, y + 12, z + 10 + 3,0.0, 0.0, 0.0));
y += 2;
//
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 6, y + 13, z + 0,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 0, y + 13, z + 6,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 12, y + 13, z + 6,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 6, y + 13, z + 12,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 3, y + 14, z + 2,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 9, y + 14, z + 2,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 2, y + 14, z + 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 10, y + 14, z + 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 6, y + 14, z + 5,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 5, y + 14, z + 6,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 7, y + 14, z + 6,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 6, y + 14, z + 7,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 2, y + 14, z + 9,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 10, y + 14, z + 9,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 3, y + 14, z + 10,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 9, y + 14, z + 10,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 6, y + 15, z + 2,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 4, y + 15, z + 4,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 8, y + 15, z + 4,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 2, y + 15, z + 6,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 10, y + 15, z + 6,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 4, y + 15, z + 8,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 8, y + 15, z + 8,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 6, y + 15, z + 10,0.0, 0.0, 0.0));
/*world.spawnEntityInWorld(new EntitySmokeFX(world, x + 5, y + 17, z + 5,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 7, y + 17, z + 5,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 5, y + 17, z + 7,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntitySmokeFX(world, x + 7, y + 17, z + 7,0.0, 0.0, 0.0));*/
}
}

View File

@ -1,182 +0,0 @@
package com.hbm.explosion;
import com.hbm.entity.particle.EntityBSmokeFX;
import net.minecraft.world.World;
public class ExplosionParticleB {
public static void spawnMush(World world, double x, double y, double z)
{
x -= 6;
z -= 6;
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 3, y + 0, z + 0,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 5, y + 0, z + 0,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 7, y + 0, z + 0,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 9, y + 0, z + 0,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 0, y + 0, z + 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 12, y + 0, z + 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 5, y + 0, z + 4,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 7, y + 0, z + 4,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 0, y + 0, z + 5,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 4, y + 0, z + 5,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 8, y + 0, z + 5,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 12, y + 0, z + 5,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 0, y + 0, z + 7,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 4, y + 0, z + 7,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 8, y + 0, z + 7,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 12, y + 0, z + 7,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 5, y + 0, z + 8,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 7, y + 0, z + 8,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 0, y + 0, z + 9,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 12, y + 0, z + 9,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 3, y + 0, z + 12,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 5, y + 0, z + 12,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 7, y + 0, z + 12,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 9, y + 0, z + 12,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 4, y + 1, z + 2,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 6, y + 1, z + 2,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 8, y + 1, z + 2,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 9, y + 1, z + 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 2, y + 1, z + 4,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 10, y + 1, z + 4,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 2, y + 1, z + 6,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 10, y + 1, z + 6,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 2, y + 1, z + 8,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 10, y + 1, z + 8,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 4, y + 1, z + 10,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 6, y + 1, z + 10,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 8, y + 1, z + 10,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 5, y + 2, z + 4,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 7, y + 2, z + 4,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 4, y + 2, z + 5,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 8, y + 2, z + 5,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 4, y + 2, z + 7,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 8, y + 2, z + 7,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 5, y + 2, z + 8,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 7, y + 2, z + 8,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 6, y + 4, z + 5,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 5, y + 4, z + 6,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 7, y + 4, z + 6,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 6, y + 4, z + 7,0.0, 0.0, 0.0));
y += 2;
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 6, y + 4, z + 5,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 5, y + 4, z + 6,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 7, y + 4, z + 6,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 6, y + 4, z + 7,0.0, 0.0, 0.0));
y--;
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 5, y + 7, z + 5,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 7, y + 7, z + 5,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 5, y + 7, z + 7,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 7, y + 7, z + 7,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 6, y + 8, z + 6,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 6, y + 9, z + 2,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 4, y + 9, z + 4,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 8, y + 9, z + 4,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 2, y + 9, z + 6,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 8, y + 9, z + 6,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 10, y + 9, z + 6,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 4, y + 9, z + 8,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 8, y + 9, z + 8,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 6, y + 9, z + 10,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 3, y + 10, z + 2,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 9, y + 10, z + 2,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 2, y + 10, z + 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 6, y + 10, z + 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 10, y + 10, z + 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 2, y + 10, z + 9,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 10, y + 10, z + 9,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 3, y + 10, z + 10,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 9, y + 10, z + 10,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 6, y + 11, z + 0,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 5, y + 11, z + 5,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 7, y + 11, z + 5,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 0, y + 11, z + 6,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 12, y + 11, z + 6,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 5, y + 11, z + 7,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 7, y + 11, z + 7,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 6, y + 11, z + 12,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 3, y + 12, z + 2,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 5, y + 12, z + 2,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 7, y + 12, z + 2,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 9, y + 12, z + 2,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 2, y + 12, z + 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 10, y + 12, z + 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 2, y + 12, z + 5,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 10, y + 12, z + 5,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 2, y + 12, z + 7,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 10, y + 12, z + 7,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 2, y + 12, z + 9,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 10, y + 12, z + 9,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 3, y + 12, z + 10,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 5, y + 12, z + 10,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 7, y + 12, z + 10,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 9, y + 12, z + 10,0.0, 0.0, 0.0));
//
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 3, y + 12, z + 2 - 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 5, y + 12, z + 2 - 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 7, y + 12, z + 2 - 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 9, y + 12, z + 2 - 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 2 - 3, y + 12, z + 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 10 + 3, y + 12, z + 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 2 - 3, y + 12, z + 5,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 10 + 3, y + 12, z + 5,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 2 - 3, y + 12, z + 7,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 10 + 3, y + 12, z + 7,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 2 - 3, y + 12, z + 9,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 10 + 3, y + 12, z + 9,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 3, y + 12, z + 10 + 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 5, y + 12, z + 10 + 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 7, y + 12, z + 10 + 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 9, y + 12, z + 10 + 3,0.0, 0.0, 0.0));
//
y -= 2;
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 3, y + 12, z + 2 - 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 5, y + 12, z + 2 - 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 7, y + 12, z + 2 - 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 9, y + 12, z + 2 - 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 2 - 3, y + 12, z + 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 10 + 3, y + 12, z + 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 2 - 3, y + 12, z + 5,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 10 + 3, y + 12, z + 5,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 2 - 3, y + 12, z + 7,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 10 + 3, y + 12, z + 7,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 2 - 3, y + 12, z + 9,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 10 + 3, y + 12, z + 9,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 3, y + 12, z + 10 + 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 5, y + 12, z + 10 + 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 7, y + 12, z + 10 + 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 9, y + 12, z + 10 + 3,0.0, 0.0, 0.0));
y += 2;
//
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 6, y + 13, z + 0,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 0, y + 13, z + 6,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 12, y + 13, z + 6,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 6, y + 13, z + 12,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 3, y + 14, z + 2,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 9, y + 14, z + 2,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 2, y + 14, z + 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 10, y + 14, z + 3,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 6, y + 14, z + 5,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 5, y + 14, z + 6,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 7, y + 14, z + 6,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 6, y + 14, z + 7,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 2, y + 14, z + 9,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 10, y + 14, z + 9,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 3, y + 14, z + 10,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 9, y + 14, z + 10,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 6, y + 15, z + 2,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 4, y + 15, z + 4,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 8, y + 15, z + 4,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 2, y + 15, z + 6,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 10, y + 15, z + 6,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 4, y + 15, z + 8,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 8, y + 15, z + 8,0.0, 0.0, 0.0));
world.spawnEntityInWorld(new EntityBSmokeFX(world, x + 6, y + 15, z + 10,0.0, 0.0, 0.0));
}
}

View File

@ -195,6 +195,7 @@ public class BulletConfigSyncingUtil {
public static int NUKE_MIRV_LOW = i++;
public static int NUKE_MIRV_HIGH = i++;
public static int NUKE_MIRV_SAFE = i++;
public static int NUKE_MIRV_SPECIAL = i++;
public static int NUKE_AMAT = i++;
@ -406,6 +407,7 @@ public class BulletConfigSyncingUtil {
configSet.put(NUKE_MIRV_LOW, GunFatmanFactory.getMirvLowConfig());
configSet.put(NUKE_MIRV_HIGH, GunFatmanFactory.getMirvHighConfig());
configSet.put(NUKE_MIRV_SAFE, GunFatmanFactory.getMirvSafeConfig());
configSet.put(NUKE_MIRV_SPECIAL, GunFatmanFactory.getMirvSpecialConfig());
configSet.put(NUKE_AMAT, GunFatmanFactory.getBalefireConfig());

View File

@ -1,17 +1,11 @@
package com.hbm.handler.guncfg;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import com.hbm.config.BombConfig;
import com.hbm.entity.logic.EntityNukeExplosionMK4;
import com.hbm.entity.particle.EntityBSmokeFX;
import com.hbm.entity.projectile.EntityBulletBase;
import com.hbm.explosion.ExplosionLarge;
import com.hbm.explosion.ExplosionNT;
import com.hbm.explosion.ExplosionNukeGeneric;
import com.hbm.explosion.ExplosionNT.ExAttrib;
import com.hbm.explosion.ExplosionNukeSmall;
import com.hbm.handler.BulletConfigSyncingUtil;
import com.hbm.handler.BulletConfiguration;
import com.hbm.interfaces.IBulletImpactBehavior;
@ -21,7 +15,6 @@ import com.hbm.lib.Library;
import com.hbm.packet.AuxParticlePacketNT;
import com.hbm.packet.PacketDispatcher;
import com.hbm.potion.HbmPotion;
import com.hbm.saveddata.RadiationSavedData;
import com.hbm.util.ArmorUtil;
import com.hbm.util.BobMathUtil;
@ -261,7 +254,7 @@ public class BulletConfigFactory {
* 3 - medium
* 4 - big
*/
public static void nuclearExplosion(EntityBulletBase bullet, int x, int y, int z, boolean small, int size) {
public static void nuclearExplosion(EntityBulletBase bullet, int x, int y, int z, int size) {
if(!bullet.worldObj.isRemote) {
@ -275,65 +268,7 @@ public class BulletConfigFactory {
posZ = z + 0.5;
}
//all sizes have the same animation except tiny tots
if(size != 1) {
NBTTagCompound data = new NBTTagCompound();
data.setString("type", "muke");
PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY + 0.5, posZ), new TargetPoint(bullet.dimension, bullet.posX, bullet.posY, bullet.posZ, 250));
bullet.worldObj.playSoundEffect(x, y, z, "hbm:weapon.mukeExplosion", 15.0F, 1.0F);
} else {
NBTTagCompound data = new NBTTagCompound();
data.setString("type", "tinytot");
PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY + 0.5, posZ), new TargetPoint(bullet.dimension, bullet.posX, bullet.posY, bullet.posZ, 250));
bullet.worldObj.playSoundEffect(x, y, z, "hbm:weapon.mukeExplosion", 15.0F, 1.0F);
}
//no shrapnels for large mukes and tinty tots
if(size != 4 && size != 1)
ExplosionLarge.spawnShrapnels(bullet.worldObj, posX, posY, posZ, 25);
if(size == 0) {
ExplosionNukeGeneric.dealDamage(bullet.worldObj, posX, posY, posZ, 45);
} else if(size > 0 && size < 4) {
List<ExAttrib> attribs = new ArrayList();
attribs.add(ExAttrib.FIRE);
attribs.add(ExAttrib.NOPARTICLE);
attribs.add(ExAttrib.NOSOUND);
attribs.add(ExAttrib.NODROP);
attribs.add(ExAttrib.NOHURT);
switch(size) {
case 1: new ExplosionNT(bullet.worldObj, null, posX, posY, posZ, 10F).addAllAttrib(attribs).explode();
ExplosionNukeGeneric.dealDamage(bullet.worldObj, posX, posY, posZ, 30); break;
case 2: new ExplosionNT(bullet.worldObj, null, posX, posY, posZ, 15F).addAllAttrib(attribs).explode();
ExplosionNukeGeneric.dealDamage(bullet.worldObj, posX, posY, posZ, 45); break;
case 3: new ExplosionNT(bullet.worldObj, null, posX, posY, posZ, 15F).addAllAttrib(attribs).explode();
new ExplosionNT(bullet.worldObj, null, posX + 7, posY, posZ, 10F).addAllAttrib(attribs).explode();
new ExplosionNT(bullet.worldObj, null, posX - 7, posY, posZ, 10F).addAllAttrib(attribs).explode();
new ExplosionNT(bullet.worldObj, null, posX, posY, posZ + 7, 10F).addAllAttrib(attribs).explode();
new ExplosionNT(bullet.worldObj, null, posX, posY, posZ - 7, 10F).addAllAttrib(attribs).explode();
ExplosionNukeGeneric.dealDamage(bullet.worldObj, posX, posY, posZ, 55); break;
}
} else if(size == 4) {
bullet.worldObj.spawnEntityInWorld(EntityNukeExplosionMK4.statFac(bullet.worldObj, BombConfig.fatmanRadius, posX, posY, posZ).mute());
}
//radiation is 50 RAD/s in the epicenter, times the radMod
float radMod = size * 0.33F;
//radMod for safe nukes is the same as for low yield
if(size == 0)
radMod = 0.66F;
for(int i = -2; i <= 2; i++)
for(int j = -2; j <= 2; j++)
if(i + j < 4)
RadiationSavedData.incrementRad(bullet.worldObj, (int)posX + i * 16, (int)posZ + j * 16, 50 / (Math.abs(i) + Math.abs(j) + 1) * radMod, 1000);
ExplosionNukeSmall.explode(bullet.worldObj, posX, posY, posZ, size);
}
}

View File

@ -391,11 +391,14 @@ public class Gun4GaugeFactory {
if(hit instanceof EntityLivingBase) {
EntityLivingBase living = (EntityLivingBase) hit;
float f = living.getHealth();
f = Math.max(0, f - 2);
living.setHealth(f);
if(f == 0)
living.onDeath(ModDamageSource.lead);
if(f > 0) {
f = Math.max(0, f - 2);
living.setHealth(f);
if(f == 0)
living.onDeath(ModDamageSource.causeBulletDamage(bullet, hit));
}
}
}
};
@ -428,8 +431,11 @@ public class Gun4GaugeFactory {
IExtendedEntityProperties prop = player.getExtendedProperties("WitcheryExtendedPlayer");
NBTTagCompound blank = new NBTTagCompound();
blank.setTag("WitcheryExtendedPlayer", new NBTTagCompound());
if(prop != null) {
prop.loadNBTData(new NBTTagCompound());
prop.loadNBTData(blank);
}
}
}

View File

@ -2,14 +2,10 @@ package com.hbm.handler.guncfg;
import java.util.ArrayList;
import com.hbm.config.BombConfig;
import com.hbm.entity.logic.EntityBalefire;
import com.hbm.entity.projectile.EntityBulletBase;
import com.hbm.explosion.ExplosionLarge;
import com.hbm.explosion.ExplosionNT;
import com.hbm.explosion.ExplosionNT.ExAttrib;
import com.hbm.explosion.ExplosionNukeGeneric;
import com.hbm.explosion.ExplosionParticleB;
import com.hbm.handler.BulletConfigSyncingUtil;
import com.hbm.handler.BulletConfiguration;
import com.hbm.handler.GunConfiguration;
@ -19,7 +15,6 @@ import com.hbm.items.ModItems;
import com.hbm.packet.AuxParticlePacketNT;
import com.hbm.packet.PacketDispatcher;
import com.hbm.render.util.RenderScreenOverlay.Crosshair;
import com.hbm.saveddata.RadiationSavedData;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import net.minecraft.nbt.NBTTagCompound;
@ -71,6 +66,7 @@ public class GunFatmanFactory {
config.config.add(BulletConfigSyncingUtil.NUKE_MIRV_LOW);
config.config.add(BulletConfigSyncingUtil.NUKE_MIRV_HIGH);
config.config.add(BulletConfigSyncingUtil.NUKE_MIRV_SAFE);
config.config.add(BulletConfigSyncingUtil.NUKE_MIRV_SPECIAL);
config.durability = 1000;
return config;
@ -131,7 +127,7 @@ public class GunFatmanFactory {
@Override
public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) {
BulletConfigFactory.nuclearExplosion(bullet, x, y, z, false, 3);
BulletConfigFactory.nuclearExplosion(bullet, x, y, z, 3);
}
};
@ -147,7 +143,7 @@ public class GunFatmanFactory {
@Override
public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) {
BulletConfigFactory.nuclearExplosion(bullet, x, y, z, false, 2);
BulletConfigFactory.nuclearExplosion(bullet, x, y, z, 2);
}
};
@ -163,7 +159,7 @@ public class GunFatmanFactory {
@Override
public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) {
BulletConfigFactory.nuclearExplosion(bullet, x, y, z, false, 4);
BulletConfigFactory.nuclearExplosion(bullet, x, y, z, 4);
}
};
@ -183,7 +179,7 @@ public class GunFatmanFactory {
@Override
public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) {
BulletConfigFactory.nuclearExplosion(bullet, x, y, z, false, 1);
BulletConfigFactory.nuclearExplosion(bullet, x, y, z, 1);
}
};
@ -199,7 +195,7 @@ public class GunFatmanFactory {
@Override
public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) {
BulletConfigFactory.nuclearExplosion(bullet, x, y, z, false, 0);
BulletConfigFactory.nuclearExplosion(bullet, x, y, z, 0);
}
};
@ -276,7 +272,7 @@ public class GunFatmanFactory {
public static BulletConfiguration getMirvLowConfig() {
BulletConfiguration bullet = getNukeConfig();
BulletConfiguration bullet = getNukeLowConfig();
bullet.ammo = ModItems.ammo_mirv_low;
bullet.style = BulletConfiguration.STYLE_MIRV;
@ -313,7 +309,7 @@ public class GunFatmanFactory {
public static BulletConfiguration getMirvHighConfig() {
BulletConfiguration bullet = getNukeConfig();
BulletConfiguration bullet = getNukeHighConfig();
bullet.ammo = ModItems.ammo_mirv_high;
bullet.style = BulletConfiguration.STYLE_MIRV;
@ -350,7 +346,7 @@ public class GunFatmanFactory {
public static BulletConfiguration getMirvSafeConfig() {
BulletConfiguration bullet = getNukeConfig();
BulletConfiguration bullet = getNukeSafeConfig();
bullet.ammo = ModItems.ammo_mirv_safe;
bullet.style = BulletConfiguration.STYLE_MIRV;
@ -385,6 +381,54 @@ public class GunFatmanFactory {
return bullet;
}
public static BulletConfiguration getMirvSpecialConfig() {
BulletConfiguration bullet = getNukeConfig();
bullet.ammo = ModItems.ammo_mirv_special;
bullet.style = BulletConfiguration.STYLE_MIRV;
bullet.velocity *= 3;
bullet.bUpdate = new IBulletUpdateBehavior() {
@Override
public void behaveUpdate(EntityBulletBase bullet) {
if(bullet.worldObj.isRemote)
return;
if(bullet.ticksExisted == 15) {
bullet.setDead();
for(int i = 0; i < 24; i++) {
EntityBulletBase nuke = null;
if(i < 6)
nuke = new EntityBulletBase(bullet.worldObj, BulletConfigSyncingUtil.NUKE_LOW);
else if(i < 12)
nuke = new EntityBulletBase(bullet.worldObj, BulletConfigSyncingUtil.NUKE_TOTS);
else if(i < 18)
nuke = new EntityBulletBase(bullet.worldObj, BulletConfigSyncingUtil.NUKE_NORMAL);
else
nuke = new EntityBulletBase(bullet.worldObj, BulletConfigSyncingUtil.NUKE_AMAT);
nuke.setPosition(bullet.posX, bullet.posY, bullet.posZ);
double mod = 0.25D;
nuke.motionX = bullet.worldObj.rand.nextGaussian() * mod;
nuke.motionY = -0.1D;
nuke.motionZ = bullet.worldObj.rand.nextGaussian() * mod;
bullet.worldObj.spawnEntityInWorld(nuke);
}
}
}
};
return bullet;
}
public static BulletConfiguration getBalefireConfig() {
BulletConfiguration bullet = BulletConfigFactory.standardNukeConfig();

View File

@ -2,9 +2,11 @@ package com.hbm.handler.guncfg;
import java.util.ArrayList;
import com.hbm.entity.projectile.EntityBulletBase;
import com.hbm.handler.BulletConfigSyncingUtil;
import com.hbm.handler.BulletConfiguration;
import com.hbm.handler.GunConfiguration;
import com.hbm.interfaces.IBulletImpactBehavior;
import com.hbm.items.ModItems;
import com.hbm.render.util.RenderScreenOverlay.Crosshair;
@ -176,7 +178,14 @@ public class GunGrenadeFactory {
bullet.ammo = ModItems.ammo_grenade_nuclear;
bullet.velocity = 4;
bullet.explosive = 0.0F;
bullet.nuke = 15;
bullet.bImpact = new IBulletImpactBehavior() {
@Override
public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) {
BulletConfigFactory.nuclearExplosion(bullet, x, y, z, 1);
}
};
return bullet;
}

View File

@ -6,6 +6,7 @@ import com.hbm.entity.projectile.EntityBulletBase;
import com.hbm.handler.BulletConfigSyncingUtil;
import com.hbm.handler.BulletConfiguration;
import com.hbm.handler.GunConfiguration;
import com.hbm.interfaces.IBulletImpactBehavior;
import com.hbm.interfaces.IBulletRicochetBehavior;
import com.hbm.interfaces.IBulletUpdateBehavior;
import com.hbm.items.ModItems;
@ -279,7 +280,14 @@ public class GunRocketFactory {
bullet.explosive = 0;
bullet.incendiary = 0;
bullet.trail = 7;
bullet.nuke = 25;
bullet.bImpact = new IBulletImpactBehavior() {
@Override
public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) {
BulletConfigFactory.nuclearExplosion(bullet, x, y, z, 2);
}
};
return bullet;
}

View File

@ -447,7 +447,6 @@ public class AssemblerRecipes {
makeRecipe(new ComparableStack(ModItems.mp_warhead_15_balefire, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack("plateDenseLead", 16), new ComparableStack(ModItems.powder_magic, 6), new ComparableStack(ModItems.egg_balefire_shard, 4), new ComparableStack(ModItems.ingot_semtex, 8), new ComparableStack(ModItems.circuit_targeting_tier4, 1), }, 60);
makeRecipe(new ComparableStack(ModItems.missile_soyuz, 1), new AStack[] {new ComparableStack(ModItems.rocket_fuel, 40), new ComparableStack(ModBlocks.det_cord, 20), new ComparableStack(ModItems.thruster_medium, 12), new ComparableStack(ModItems.thruster_small, 12), new ComparableStack(ModItems.tank_steel, 10), new ComparableStack(ModItems.circuit_targeting_tier4, 4), new ComparableStack(ModItems.circuit_targeting_tier3, 8), new ComparableStack(ModItems.plate_polymer, 64), new ComparableStack(ModItems.fins_small_steel, 4), new ComparableStack(ModItems.hull_big_titanium, 40), new ComparableStack(ModItems.hull_big_steel, 24), new ComparableStack(ModItems.ingot_fiberglass, 64), },600);
makeRecipe(new ComparableStack(ModItems.missile_soyuz_lander, 1), new AStack[] {new ComparableStack(ModItems.rocket_fuel, 10), new ComparableStack(ModItems.thruster_small, 3), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModItems.circuit_targeting_tier3, 4), new ComparableStack(ModItems.plate_polymer, 32), new ComparableStack(ModItems.hull_big_aluminium, 2), new ComparableStack(ModItems.sphere_steel, 1), new ComparableStack(ModItems.ingot_fiberglass, 12), },600);
makeRecipe(new ComparableStack(ModItems.sat_gerald, 1), new AStack[] {new ComparableStack(ModItems.cap_star, 1), new ComparableStack(ModItems.chlorine_pinwheel, 1), new ComparableStack(ModItems.burnt_bark, 1), new ComparableStack(ModItems.combine_scrap, 1), new ComparableStack(ModBlocks.block_euphemium_cluster, 1), new ComparableStack(ModItems.crystal_horn, 1), new ComparableStack(ModItems.crystal_charred, 1), new ComparableStack(ModBlocks.pink_log, 1), new ComparableStack(ModItems.mp_warhead_15_balefire, 1), new ComparableStack(ModBlocks.crate_red, 1), new ComparableStack(ModBlocks.det_nuke, 16), new ComparableStack(ModItems.ingot_starmetal, 32), },1200);
makeRecipe(new ComparableStack(ModItems.fusion_shield_tungsten, 1), new AStack[] {new OreDictStack("blockTungsten", 32), new OreDictStack("plateDenseLead", 96)}, 600);
makeRecipe(new ComparableStack(ModItems.fusion_shield_desh, 1), new AStack[] {new OreDictStack("blockDesh", 16), new OreDictStack("blockCobalt", 16), new ComparableStack(ModItems.plate_saturnite, 96)}, 600);
makeRecipe(new ComparableStack(ModItems.fusion_shield_chlorophyte, 1), new AStack[] {new OreDictStack("blockTungsten", 16), new ComparableStack(ModBlocks.block_dura_steel, 16), new OreDictStack("plateDenseLead", 48), new ComparableStack(ModItems.powder_chlorophyte, 48)}, 600);
@ -578,6 +577,21 @@ public class AssemblerRecipes {
new ComparableStack(ModItems.coin_worm, 1)
}, 1200);
makeRecipe(new ComparableStack(ModItems.sat_gerald, 1), new AStack[] {
new ComparableStack(ModItems.burnt_bark, 1),
new ComparableStack(ModItems.combine_scrap, 1),
new ComparableStack(ModItems.crystal_horn, 1),
new ComparableStack(ModItems.crystal_charred, 1),
new ComparableStack(ModBlocks.pink_log, 1),
new ComparableStack(ModItems.mp_warhead_15_balefire, 1),
new ComparableStack(ModBlocks.det_nuke, 16),
new ComparableStack(ModItems.ingot_starmetal, 32),
new ComparableStack(ModItems.coin_creeper, 1),
new ComparableStack(ModItems.coin_radiation, 1),
new ComparableStack(ModItems.coin_maskman, 1),
new ComparableStack(ModItems.coin_worm, 1),
}, 1200);
makeRecipe(new ComparableStack(ModBlocks.block_cap_nuka, 1), new AStack[] { new ComparableStack(ModItems.cap_nuka, 128) }, 10);
makeRecipe(new ComparableStack(ModBlocks.block_cap_quantum, 1), new AStack[] { new ComparableStack(ModItems.cap_quantum, 128) }, 10);
makeRecipe(new ComparableStack(ModBlocks.block_cap_sparkle, 1), new AStack[] { new ComparableStack(ModItems.cap_sparkle, 128) }, 10);

View File

@ -3,6 +3,7 @@ package com.hbm.inventory;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import com.hbm.blocks.ModBlocks;
@ -12,8 +13,12 @@ import com.hbm.interfaces.Spaghetti;
import com.hbm.items.ModItems;
import com.hbm.items.machine.ItemChemistryTemplate;
import com.hbm.items.machine.ItemFluidIcon;
import com.hbm.items.weapon.ItemGunBase;
import com.hbm.main.MainRegistry;
import com.hbm.util.EnchantmentUtil;
import net.minecraft.enchantment.Enchantment;
import net.minecraft.enchantment.EnchantmentHelper;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
@ -125,6 +130,26 @@ public class MachineRecipes {
|| mODE(item, new String[] {"ingotCobalt", "dustCobalt"}) && item2.getItem() == ModItems.meteorite_sword_hardened) {
return new ItemStack(ModItems.meteorite_sword_alloyed, 1);
}
if(item.getItem() instanceof ItemGunBase && item2.getItem() == Items.enchanted_book) {
ItemStack result = item.copy();
Map mapright = EnchantmentHelper.getEnchantments(item2);
Iterator itr = mapright.keySet().iterator();
while (itr.hasNext()) {
int i = ((Integer)itr.next()).intValue();
int j = ((Integer)mapright.get(Integer.valueOf(i))).intValue();
Enchantment e = Enchantment.enchantmentsList[i];
EnchantmentUtil.removeEnchantment(result, e);
EnchantmentUtil.addEnchantment(result, e, j);
}
return result;
}
return null;
}

View File

@ -199,6 +199,7 @@ public class ModItems {
public static Item ingot_meteorite;
public static Item ingot_meteorite_forged;
public static Item blade_meteorite;
public static Item ingot_steel_dusted;
public static Item plate_armor_titanium;
public static Item plate_armor_ajr;
@ -1255,6 +1256,7 @@ public class ModItems {
public static Item ammo_mirv_low;
public static Item ammo_mirv_high;
public static Item ammo_mirv_safe;
public static Item ammo_mirv_special;
public static Item ammo_fuel;
public static Item ammo_fuel_napalm;
public static Item ammo_fuel_phosphorus;
@ -2178,6 +2180,7 @@ public class ModItems {
ingot_meteorite = new ItemHot(200).setUnlocalizedName("ingot_meteorite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_meteorite");
ingot_meteorite_forged = new ItemHot(200).setUnlocalizedName("ingot_meteorite_forged").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_meteorite_forged");
blade_meteorite = new ItemHot(200).setUnlocalizedName("blade_meteorite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":blade_meteorite");
ingot_steel_dusted = new ItemHotDusted(200).setUnlocalizedName("ingot_steel_dusted").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_steel_dusted");
plate_armor_titanium = new Item().setUnlocalizedName("plate_armor_titanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_armor_titanium");
plate_armor_ajr = new Item().setUnlocalizedName("plate_armor_ajr").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_armor_ajr");
@ -3212,6 +3215,7 @@ public class ModItems {
ammo_mirv_low = new ItemAmmo().setUnlocalizedName("ammo_mirv_low").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_mirv_low");
ammo_mirv_high = new ItemAmmo().setUnlocalizedName("ammo_mirv_high").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_mirv_high");
ammo_mirv_safe = new ItemAmmo().setUnlocalizedName("ammo_mirv_safe").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_mirv_safe");
ammo_mirv_special = new ItemAmmo().setUnlocalizedName("ammo_mirv_special").setCreativeTab(null).setTextureName(RefStrings.MODID + ":ammo_mirv_special");
ammo_fuel = new ItemAmmo().setUnlocalizedName("ammo_fuel").setCreativeTab(MainRegistry.weaponTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ammo_fuel");
ammo_fuel_napalm = new ItemAmmo().setUnlocalizedName("ammo_fuel_napalm").setCreativeTab(MainRegistry.weaponTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ammo_fuel_napalm");
ammo_fuel_phosphorus = new ItemAmmo().setUnlocalizedName("ammo_fuel_phosphorus").setCreativeTab(MainRegistry.weaponTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ammo_fuel_phosphorus");
@ -3726,9 +3730,10 @@ public class ModItems {
alloy_plate = new ArmorFSB(MainRegistry.aMatAlloy, 7, 1, RefStrings.MODID + ":textures/armor/alloy_1.png").cloneStats((ArmorFSB) alloy_helmet).setUnlocalizedName("alloy_plate").setTextureName(RefStrings.MODID + ":alloy_plate");
alloy_legs = new ArmorFSB(MainRegistry.aMatAlloy, 7, 2, RefStrings.MODID + ":textures/armor/alloy_2.png").cloneStats((ArmorFSB) alloy_helmet).setUnlocalizedName("alloy_legs").setTextureName(RefStrings.MODID + ":alloy_legs");
alloy_boots = new ArmorFSB(MainRegistry.aMatAlloy, 7, 3, RefStrings.MODID + ":textures/armor/alloy_1.png").cloneStats((ArmorFSB) alloy_helmet).setUnlocalizedName("alloy_boots").setTextureName(RefStrings.MODID + ":alloy_boots");
cmb_helmet = new ArmorFSB(MainRegistry.aMatCMB, 7, 0, RefStrings.MODID + ":textures/armor/cmb_1.png").setCap(10F).setMod(0.5F)
cmb_helmet = new ArmorFSB(MainRegistry.aMatCMB, 7, 0, RefStrings.MODID + ":textures/armor/cmb_1.png").setCap(2F).setThreshold(2F).setMod(0.05F)
.addEffect(new PotionEffect(Potion.moveSpeed.id, 20, 2))
.addEffect(new PotionEffect(Potion.digSpeed.id, 20, 0))
.addEffect(new PotionEffect(Potion.digSpeed.id, 20, 2))
.addEffect(new PotionEffect(Potion.damageBoost.id, 20, 4))
.setFireproof(true).setUnlocalizedName("cmb_helmet").setTextureName(RefStrings.MODID + ":cmb_helmet");
cmb_plate = new ArmorFSB(MainRegistry.aMatCMB, 7, 1, RefStrings.MODID + ":textures/armor/cmb_1.png").cloneStats((ArmorFSB) cmb_helmet).setUnlocalizedName("cmb_plate").setTextureName(RefStrings.MODID + ":cmb_plate");
cmb_legs = new ArmorFSB(MainRegistry.aMatCMB, 7, 2, RefStrings.MODID + ":textures/armor/cmb_2.png").cloneStats((ArmorFSB) cmb_helmet).setUnlocalizedName("cmb_legs").setTextureName(RefStrings.MODID + ":cmb_legs");
@ -4367,6 +4372,7 @@ public class ModItems {
GameRegistry.registerItem(ingot_electronium, ingot_electronium.getUnlocalizedName());
//Meteorite Ingots
//GameRegistry.registerItem(ingot_steel_dusted, ingot_steel_dusted.getUnlocalizedName());
GameRegistry.registerItem(ingot_meteorite, ingot_meteorite.getUnlocalizedName());
GameRegistry.registerItem(ingot_meteorite_forged, ingot_meteorite_forged.getUnlocalizedName());
GameRegistry.registerItem(blade_meteorite, blade_meteorite.getUnlocalizedName());
@ -5702,6 +5708,7 @@ public class ModItems {
GameRegistry.registerItem(ammo_mirv_low, ammo_mirv_low.getUnlocalizedName());
GameRegistry.registerItem(ammo_mirv_high, ammo_mirv_high.getUnlocalizedName());
GameRegistry.registerItem(ammo_mirv_safe, ammo_mirv_safe.getUnlocalizedName());
GameRegistry.registerItem(ammo_mirv_special, ammo_mirv_special.getUnlocalizedName());
GameRegistry.registerItem(ammo_folly, ammo_folly.getUnlocalizedName());
GameRegistry.registerItem(ammo_folly_nuclear, ammo_folly_nuclear.getUnlocalizedName());
GameRegistry.registerItem(ammo_folly_du, ammo_folly_du.getUnlocalizedName());

View File

@ -13,8 +13,10 @@ import com.hbm.packet.PacketDispatcher;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.Minecraft;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.Vec3;

View File

@ -1,9 +1,6 @@
package com.hbm.items.food;
import com.hbm.config.BombConfig;
import com.hbm.entity.logic.EntityNukeExplosionMK4;
import com.hbm.explosion.ExplosionParticle;
import com.hbm.main.MainRegistry;
import com.hbm.explosion.ExplosionNukeSmall;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemFood;
@ -17,11 +14,10 @@ public class ItemWaffle extends ItemFood {
}
@Override
public void onFoodEaten(ItemStack stack, World world, EntityPlayer player)
{
world.spawnEntityInWorld(EntityNukeExplosionMK4.statFac(world, (int)(BombConfig.fatmanRadius * 1.5), player.posX, player.posY, player.posZ));
ExplosionParticle.spawnMush(world, (int)player.posX, (int)player.posY - 3, (int)player.posZ);
public void onFoodEaten(ItemStack stack, World world, EntityPlayer player) {
if(!world.isRemote)
ExplosionNukeSmall.explode(world, player.posX, player.posY + 0.5, player.posZ, ExplosionNukeSmall.medium);
}
}

View File

@ -14,7 +14,7 @@ public class ItemHot extends Item {
@SideOnly(Side.CLIENT)
public IIcon hotIcon;
public static int heat;
protected static int heat;
public ItemHot(int heat) {
@ -29,7 +29,7 @@ public class ItemHot extends Item {
@SideOnly(Side.CLIENT)
public IIcon getIconFromDamage(int meta) {
return meta == 1 ? this.hotIcon : this.itemIcon;
return this.itemIcon;
}
public void onUpdate(ItemStack stack, World world, Entity entity, int i, boolean bool) {
@ -54,7 +54,7 @@ public class ItemHot extends Item {
if(!stack.hasTagCompound())
stack.stackTagCompound = new NBTTagCompound();
stack.stackTagCompound.setInteger("heat", heat);
stack.stackTagCompound.setInteger("heat", getMaxHeat(stack));
return stack;
}
@ -66,7 +66,7 @@ public class ItemHot extends Item {
if(!stack.hasTagCompound())
stack.stackTagCompound = new NBTTagCompound();
stack.stackTagCompound.setInteger("heat", (int)(d * heat));
stack.stackTagCompound.setInteger("heat", (int)(d * getMaxHeat(stack)));
return stack;
}
@ -82,4 +82,8 @@ public class ItemHot extends Item {
return (double)h / (double)heat;
}
public static int getMaxHeat(ItemStack stack) {
return heat;
}
}

View File

@ -0,0 +1,22 @@
package com.hbm.items.special;
import java.util.List;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
public class ItemHotDusted extends ItemHot {
public ItemHotDusted(int heat) {
super(heat);
}
@Override
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
list.add("Forged " + stack.getItemDamage() + " times");
}
public static int getMaxHeat(ItemStack stack) {
return heat - stack.getItemDamage() * 10;
}
}

View File

@ -1,150 +0,0 @@
package com.hbm.items.weapon;
import java.util.List;
import com.google.common.collect.Multimap;
import com.hbm.entity.projectile.EntityBaleflare;
import com.hbm.items.ModItems;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.enchantment.Enchantment;
import net.minecraft.enchantment.EnchantmentHelper;
import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.entity.ai.attributes.AttributeModifier;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.EnumAction;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraft.world.World;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.entity.player.ArrowLooseEvent;
import net.minecraftforge.event.entity.player.ArrowNockEvent;
public class GunBaleFlare extends Item {
public static final String[] bowPullIconNameArray = new String[] { "pulling_0", "pulling_1", "pulling_2" };
@SideOnly(Side.CLIENT)
private IIcon[] iconArray;
private static final String __OBFID = "CL_00001777";
public GunBaleFlare() {
this.maxStackSize = 1;
this.setMaxDamage(2500);
}
/**
* called when the player releases the use item button. Args: itemstack,
* world, entityplayer, itemInUseCount
*/
@Override
public void onPlayerStoppedUsing(ItemStack p_77615_1_, World p_77615_2_, EntityPlayer p_77615_3_, int p_77615_4_) {
int j = this.getMaxItemUseDuration(p_77615_1_) - p_77615_4_;
ArrowLooseEvent event = new ArrowLooseEvent(p_77615_3_, p_77615_1_, j);
MinecraftForge.EVENT_BUS.post(event);
j = event.charge;
boolean flag = p_77615_3_.capabilities.isCreativeMode
|| EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, p_77615_1_) > 0;
if (flag || p_77615_3_.inventory.hasItem(ModItems.gun_bf_ammo)) {
float f = j / 20.0F;
f = (f * f + f * 2.0F) / 3.0F;
if (j < 25.0D) {
return;
}
if (j > 25.0F) {
f = 25.0F;
}
EntityBaleflare entityarrow = new EntityBaleflare(p_77615_2_, p_77615_3_, 3.0F * 0.25F);
entityarrow.setIsCritical(true);
entityarrow.gravity = 0.3;
entityarrow.setDamage(1000);
p_77615_1_.damageItem(1, p_77615_3_);
// p_77615_2_.playSoundAtEntity(p_77615_3_, "tile.piston.out", 1.0F,
// 0.5F);
p_77615_2_.playSoundAtEntity(p_77615_3_, "hbm:weapon.fatmanShoot", 1.0F, 1F);
if (!flag) {
p_77615_3_.inventory.consumeInventoryItem(ModItems.gun_bf_ammo);
}
if (!p_77615_2_.isRemote) {
p_77615_2_.spawnEntityInWorld(entityarrow);
}
}
}
@Override
public ItemStack onEaten(ItemStack p_77654_1_, World p_77654_2_, EntityPlayer p_77654_3_) {
return p_77654_1_;
}
/**
* How long it takes to use or consume an item
*/
@Override
public int getMaxItemUseDuration(ItemStack p_77626_1_) {
return 72000;
}
/**
* returns the action that specifies what animation to play when the items
* is being used
*/
@Override
public EnumAction getItemUseAction(ItemStack p_77661_1_) {
return EnumAction.bow;
}
/**
* Called whenever this item is equipped and the right mouse button is
* pressed. Args: itemStack, world, entityPlayer
*/
@Override
public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) {
new ArrowNockEvent(p_77659_3_, p_77659_1_);
p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_));
return p_77659_1_;
}
/**
* Return the enchantability factor of the item, most of the time is based
* on material.
*/
@Override
public int getItemEnchantability() {
return 0;
}
@Override
public Multimap getItemAttributeModifiers() {
Multimap multimap = super.getItemAttributeModifiers();
multimap.put(SharedMonsterAttributes.movementSpeed.getAttributeUnlocalizedName(),
new AttributeModifier(field_111210_e, "Weapon modifier", -0.3, 1));
multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(),
new AttributeModifier(field_111210_e, "Weapon modifier", 4, 0));
return multimap;
}
@Override
public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) {
list.add("These bombs were meant for artillery, but");
list.add("this makeshift launcher works just fine!");
list.add("");
list.add("Ammo: Mk.V AMAT Shell");
list.add("Damage: 1000");
list.add("Creates small nuclear explosion.");
list.add("");
list.add("[LEGENDARY WEAPON]");
}
}

View File

@ -1,147 +0,0 @@
package com.hbm.items.weapon;
import java.util.List;
import com.google.common.collect.Multimap;
import com.hbm.entity.projectile.EntityMiniMIRV;
import com.hbm.items.ModItems;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.enchantment.Enchantment;
import net.minecraft.enchantment.EnchantmentHelper;
import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.entity.ai.attributes.AttributeModifier;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.EnumAction;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraft.world.World;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.entity.player.ArrowLooseEvent;
import net.minecraftforge.event.entity.player.ArrowNockEvent;
public class GunMIRV extends Item {
public static final String[] bowPullIconNameArray = new String[] { "pulling_0", "pulling_1", "pulling_2" };
@SideOnly(Side.CLIENT)
private IIcon[] iconArray;
private static final String __OBFID = "CL_00001777";
public GunMIRV()
{
this.maxStackSize = 1;
this.setMaxDamage(2500);
}
/**
* called when the player releases the use item button. Args: itemstack,
* world, entityplayer, itemInUseCount
*/
@Override
public void onPlayerStoppedUsing(ItemStack p_77615_1_, World p_77615_2_, EntityPlayer p_77615_3_, int p_77615_4_) {
int j = this.getMaxItemUseDuration(p_77615_1_) - p_77615_4_;
ArrowLooseEvent event = new ArrowLooseEvent(p_77615_3_, p_77615_1_, j);
MinecraftForge.EVENT_BUS.post(event);
j = event.charge;
boolean flag = p_77615_3_.capabilities.isCreativeMode
|| EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, p_77615_1_) > 0;
if (flag || p_77615_3_.inventory.hasItem(ModItems.gun_mirv_ammo)) {
float f = j / 20.0F;
f = (f * f + f * 2.0F) / 3.0F;
if (j < 25.0D) {
return;
}
if (j > 25.0F) {
f = 25.0F;
}
EntityMiniMIRV entityarrow = new EntityMiniMIRV(p_77615_2_, p_77615_3_, 3.0F);
entityarrow.setIsCritical(true);
entityarrow.gravity = 0.3;
entityarrow.setDamage(1000);
p_77615_1_.damageItem(1, p_77615_3_);
p_77615_2_.playSoundAtEntity(p_77615_3_, "hbm:weapon.fatmanShoot", 1.0F, 1F);
if (!flag) {
p_77615_3_.inventory.consumeInventoryItem(ModItems.gun_mirv_ammo);
}
if (!p_77615_2_.isRemote) {
p_77615_2_.spawnEntityInWorld(entityarrow);
}
}
}
@Override
public ItemStack onEaten(ItemStack p_77654_1_, World p_77654_2_, EntityPlayer p_77654_3_) {
return p_77654_1_;
}
/**
* How long it takes to use or consume an item
*/
@Override
public int getMaxItemUseDuration(ItemStack p_77626_1_) {
return 72000;
}
/**
* returns the action that specifies what animation to play when the items
* is being used
*/
@Override
public EnumAction getItemUseAction(ItemStack p_77661_1_) {
return EnumAction.bow;
}
/**
* Called whenever this item is equipped and the right mouse button is
* pressed. Args: itemStack, world, entityPlayer
*/
@Override
public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) {
ArrowNockEvent event = new ArrowNockEvent(p_77659_3_, p_77659_1_);
MinecraftForge.EVENT_BUS.post(event);
p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_));
return p_77659_1_;
}
/**
* Return the enchantability factor of the item, most of the time is based
* on material.
*/
@Override
public int getItemEnchantability() {
return 0;
}
@Override
public Multimap getItemAttributeModifiers() {
Multimap multimap = super.getItemAttributeModifiers();
multimap.put(SharedMonsterAttributes.movementSpeed.getAttributeUnlocalizedName(),
new AttributeModifier(field_111210_e, "Weapon modifier", -0.3, 1));
multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(),
new AttributeModifier(field_111210_e, "Weapon modifier", 4, 0));
return multimap;
}
@Override
public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) {
list.add("Ummm...are you sure you want to use that?");
list.add("");
list.add("Ammo: Mini MIRV");
list.add("Damage: 1000");
list.add("Splits into eight mini nukes.");
}
}

View File

@ -565,6 +565,13 @@ public class ItemAmmo extends Item {
list.add(EnumChatFormatting.RED + "- Decreased blast radius");
list.add(EnumChatFormatting.RED + "- No block damage");
}
if(this== ModItems.ammo_mirv_special) {
list.add(EnumChatFormatting.BLUE + "+ 6 Low-yield mini nukes");
list.add(EnumChatFormatting.BLUE + "+ 6 Mini nukes");
list.add(EnumChatFormatting.BLUE + "+ 6 Tiny tots");
list.add(EnumChatFormatting.BLUE + "+ 6 Balefire shells");
list.add(EnumChatFormatting.WHITE + "* Sticky!");
}
//FOLLY
if(this == ModItems.ammo_folly) {

View File

@ -156,7 +156,7 @@ public class ItemClip extends Item {
if(this == ModItems.clip_mirv)
{
if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_mirv_ammo, 3)))
if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_mirv, 3)))
{
//player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_mp40_ammo, 32), false);
}

View File

@ -104,7 +104,7 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD {
if(mainConfig.reloadType != mainConfig.RELOAD_NONE || (altConfig != null && altConfig.reloadType != 0)) {
if(Keyboard.isKeyDown(Keyboard.KEY_R) && getMag(stack) < mainConfig.ammoCap) {
if(Keyboard.isKeyDown(Keyboard.KEY_R) && (getMag(stack) < mainConfig.ammoCap || (mainConfig.allowsInfinity && EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, stack) > 0))) {
PacketDispatcher.wrapper.sendToServer(new GunButtonPacket(true, (byte) 2));
setIsReloading(stack, true);
resetReloadCycle(stack);
@ -130,7 +130,6 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD {
fire(stack, world, player);
setDelay(stack, mainConfig.rateOfFire);
useUpAmmo(player, stack, true);
}
if(getIsReloading(stack) && isCurrentItem) {
@ -142,28 +141,27 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD {
protected boolean tryShoot(ItemStack stack, World world, EntityPlayer player, boolean main) {
if(main && getDelay(stack) == 0 && !getIsReloading(stack) && getItemWear(stack) < mainConfig.durability) {
if(mainConfig.reloadType == mainConfig.RELOAD_NONE) {
return getBeltSize(player, getBeltType(player, stack, main)) > 0;
} else {
return getMag(stack) > 0;
}
return hasAmmo(stack, player, main);
}
if(!main && altConfig != null && getDelay(stack) == 0 && !getIsReloading(stack) && getItemWear(stack) < mainConfig.durability) {
if(altConfig.reloadType == mainConfig.RELOAD_NONE) {
return getBeltSize(player, getBeltType(player, stack, main)) > 0;
} else {
return getMag(stack) > 0;
}
return hasAmmo(stack, player, false);
}
return false;
}
public boolean hasAmmo(ItemStack stack, EntityPlayer player, boolean main) {
if(mainConfig.reloadType == mainConfig.RELOAD_NONE || !main) {
return getBeltSize(player, getBeltType(player, stack, main)) > 0;
} else {
return getMag(stack) > 0;
}
}
//called every time the gun shoots successfully, calls spawnProjectile(), sets item wear
protected void fire(ItemStack stack, World world, EntityPlayer player) {
@ -178,6 +176,10 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD {
int bullets = config.bulletsMin;
for(int k = 0; k < mainConfig.roundsPerCycle; k++) {
if(!hasAmmo(stack, player, true))
break;
if(config.bulletsMax > config.bulletsMin)
bullets += world.rand.nextInt(config.bulletsMax - config.bulletsMin);
@ -185,9 +187,13 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD {
spawnProjectile(world, player, stack, BulletConfigSyncingUtil.getKey(config));
}
useUpAmmo(player, stack, true);
player.inventoryContainer.detectAndSendChanges();
int wear = (int) Math.ceil(config.wear / (1F + EnchantmentHelper.getEnchantmentLevel(Enchantment.unbreaking.effectId, stack)));
setItemWear(stack, getItemWear(stack) + wear);
}
world.playSoundAtEntity(player, mainConfig.firingSound, 1.0F, mainConfig.firingPitch);
if(player.getDisplayName().equals("Vic4Games")) {
@ -209,6 +215,7 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD {
int bullets = config.bulletsMin;
for(int k = 0; k < altConfig.roundsPerCycle; k++) {
if(config.bulletsMax > config.bulletsMin)
bullets += world.rand.nextInt(config.bulletsMax - config.bulletsMin);
@ -240,13 +247,15 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD {
fire(stack, world, player);
setDelay(stack, mainConfig.rateOfFire);
//setMag(stack, getMag(stack) - 1);
useUpAmmo(player, stack, main);
//useUpAmmo(player, stack, main);
//player.inventoryContainer.detectAndSendChanges();
}
if(!main && altConfig != null && tryShoot(stack, world, player, main)) {
altFire(stack, world, player);
setDelay(stack, altConfig.rateOfFire);
useUpAmmo(player, stack, main);
//useUpAmmo(player, stack, main);
//player.inventoryContainer.detectAndSendChanges();
}
}
@ -426,6 +435,20 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD {
//initiates a reload
public void startReloadAction(ItemStack stack, World world, EntityPlayer player) {
if(player.isSneaking() && mainConfig.allowsInfinity && EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, stack) > 0) {
if(this.getMag(stack) == mainConfig.ammoCap) {
this.setMag(stack, 0);
this.resetAmmoType(stack, world, player);
player.playSound("block.pistonOut", 1.0F, 1.0F);
}
return;
}
if(this.getMag(stack) == mainConfig.ammoCap)
return;
if(getIsReloading(stack))
return;
@ -588,13 +611,10 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD {
if(config.allowsInfinity && EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, stack) > 0)
return;
for(int k = 0; k < config.roundsPerCycle; k++) {
if(config.reloadType != mainConfig.RELOAD_NONE) {
setMag(stack, getMag(stack) - 1);
} else {
player.inventory.consumeInventoryItem(getBeltType(player, stack, main));
player.inventoryContainer.detectAndSendChanges();
}
if(config.reloadType != mainConfig.RELOAD_NONE) {
setMag(stack, getMag(stack) - 1);
} else {
player.inventory.consumeInventoryItem(getBeltType(player, stack, main));
}
}

View File

@ -3,7 +3,7 @@ package com.hbm.lib;
public class RefStrings {
public static final String MODID = "hbm";
public static final String NAME = "Hbm's Nuclear Tech Mod";
public static final String VERSION = "1.0.27 BETA (3738)";
public static final String VERSION = "1.0.27 BETA (3745)";
//HBM's Beta Naming Convention:
//V T (X)
//V -> next release version

View File

@ -11,8 +11,6 @@ import net.minecraft.client.particle.EntityFlameFX;
import net.minecraft.client.particle.EntityReddustFX;
import net.minecraft.client.renderer.entity.RenderSnowball;
import net.minecraft.client.renderer.texture.TextureManager;
import net.minecraft.client.settings.GameSettings;
import net.minecraft.client.settings.KeyBinding;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
@ -25,7 +23,6 @@ import net.minecraft.world.World;
import net.minecraftforge.client.MinecraftForgeClient;
import net.minecraftforge.client.model.AdvancedModelLoader;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.common.util.ForgeDirection;
import java.util.Iterator;
import java.util.Map;
@ -48,7 +45,6 @@ import com.hbm.entity.particle.*;
import com.hbm.entity.projectile.*;
import com.hbm.handler.HbmKeybinds.EnumKeybind;
import com.hbm.items.ModItems;
import com.hbm.lib.Library;
import com.hbm.particle.*;
import com.hbm.render.block.*;
import com.hbm.render.entity.*;
@ -218,6 +214,7 @@ public class ClientProxy extends ServerProxy {
MinecraftForgeClient.registerItemRenderer(ModItems.assembly_template, new ItemRenderTemplate());
MinecraftForgeClient.registerItemRenderer(ModItems.chemistry_template, new ItemRenderTemplate());
//hot stuff
MinecraftForgeClient.registerItemRenderer(ModItems.ingot_steel_dusted, new ItemRendererHot());
MinecraftForgeClient.registerItemRenderer(ModItems.ingot_meteorite, new ItemRendererHot());
MinecraftForgeClient.registerItemRenderer(ModItems.ingot_meteorite_forged, new ItemRendererHot());
MinecraftForgeClient.registerItemRenderer(ModItems.blade_meteorite, new ItemRendererHot());
@ -341,9 +338,6 @@ public class ClientProxy extends ServerProxy {
RenderingRegistry.registerEntityRenderingHandler(EntitySchrab.class, new RenderFlare());
RenderingRegistry.registerEntityRenderingHandler(EntityBullet.class, new RenderRocket());
RenderingRegistry.registerEntityRenderingHandler(EntityBulletBase.class, new RenderBullet());
RenderingRegistry.registerEntityRenderingHandler(EntityMiniNuke.class, new RenderMiniNuke());
RenderingRegistry.registerEntityRenderingHandler(EntityMiniMIRV.class, new RenderMiniMIRV());
RenderingRegistry.registerEntityRenderingHandler(EntityBaleflare.class, new RenderBaleflare());
RenderingRegistry.registerEntityRenderingHandler(EntityRainbow.class, new RenderRainbow());
RenderingRegistry.registerEntityRenderingHandler(EntityNightmareBlast.class, new RenderOminousBullet());
RenderingRegistry.registerEntityRenderingHandler(EntityFire.class, new RenderFireball(ModItems.energy_ball));
@ -983,8 +977,8 @@ public class ClientProxy extends ServerProxy {
}
}
EntityReddustFX dust1 = new EntityReddustFX(world, ix + ox, iy, iz + oz, 0.0F, 0.0F, 0.0F);
EntityReddustFX dust2 = new EntityReddustFX(world, ix - ox, iy, iz - oz, 0.0F, 0.0F, 0.0F);
EntityReddustFX dust1 = new EntityReddustFX(world, ix + ox, iy, iz + oz, 0.8F, 0.5F, 1.0F);
EntityReddustFX dust2 = new EntityReddustFX(world, ix - ox, iy, iz - oz, 0.8F, 0.5F, 1.0F);
dust1.setVelocity(p.motionX, p.motionY, p.motionZ);
dust2.setVelocity(p.motionX, p.motionY, p.motionZ);
Minecraft.getMinecraft().effectRenderer.addEffect(dust1);

View File

@ -899,5 +899,8 @@ public class CraftingManager {
GameRegistry.addSmelting(ModItems.ingot_meteorite_forged, ItemHot.heatUp(new ItemStack(ModItems.ingot_meteorite_forged)), 1.0F);
GameRegistry.addSmelting(ModItems.blade_meteorite, ItemHot.heatUp(new ItemStack(ModItems.blade_meteorite)), 1.0F);
GameRegistry.addSmelting(ModItems.meteorite_sword, ItemHot.heatUp(new ItemStack(ModItems.meteorite_sword_seared)), 1.0F);
//for(int i = 0; i < 10; i++)
// GameRegistry.addSmelting(new ItemStack(ModItems.ingot_steel_dusted, 1, i), ItemHot.heatUp(new ItemStack(ModItems.ingot_steel_dusted, 1, i)), 1.0F);
}
}

View File

@ -470,7 +470,6 @@ public class MainRegistry {
EntityRegistry.registerModEntity(EntityMissileExo.class, "entity_missile_exo", 33, this, 1000, 1, true);
EntityRegistry.registerModEntity(EntityMissileMirv.class, "entity_missile_mirv", 34, this, 1000, 1, true);
EntityRegistry.registerModEntity(EntityMIRV.class, "entity_mirvlet", 35, this, 1000, 1, true);
EntityRegistry.registerModEntity(EntityMiniNuke.class, "entity_mini_nuke", 36, this, 1000, 1, true);
EntityRegistry.registerModEntity(EntitySmokeFX.class, "entity_smoke_fx", 37, this, 1000, 1, true);
EntityRegistry.registerModEntity(EntityNukeCloudBig.class, "entity_nuke_cloud_big", 38, this, 1000, 1, true);
EntityRegistry.registerModEntity(EntityGrenadeNuclear.class, "entity_grenade_nuclear", 39, this, 1000, 1, true);
@ -489,8 +488,6 @@ public class MainRegistry {
EntityRegistry.registerModEntity(EntityFalloutRain.class, "entity_fallout", 52, this, 1000, 1, true);
EntityRegistry.registerModEntity(EntityDischarge.class, "entity_emp_discharge", 53, this, 500, 1, true);
EntityRegistry.registerModEntity(EntityEMPBlast.class, "entity_emp_blast", 54, this, 1000, 1, true);
EntityRegistry.registerModEntity(EntityMiniMIRV.class, "entity_mini_mirv", 55, this, 1000, 1, true);
EntityRegistry.registerModEntity(EntityBaleflare.class, "entity_bf_projectile", 56, this, 1000, 1, true);
EntityRegistry.registerModEntity(EntityFire.class, "entity_fire", 57, this, 1000, 1, true);
EntityRegistry.registerModEntity(EntityPlasmaBeam.class, "entity_immolator_beam", 58, this, 1000, 1, true);
EntityRegistry.registerModEntity(EntityLN2.class, "entity_LN2", 59, this, 1000, 1, true);

View File

@ -839,5 +839,25 @@ public class ModEventHandler
event.cost = 50;
}
}
if(event.left.getItem() == ModItems.ingot_steel_dusted && event.right.getItem() == ModItems.ingot_steel_dusted &&
event.left.stackSize == 1 && event.right.stackSize == 1) {
double h1 = ItemHot.getHeat(event.left);
double h2 = ItemHot.getHeat(event.right);
if(h2 >= 0.5) {
int i1 = event.left.getItemDamage();
int i2 = event.right.getItemDamage();
int i3 = Math.min(i1, i2) + 1;
ItemStack out = new ItemStack(ModItems.ingot_steel_dusted, 1, i3);
ItemHot.heatUp(out, (h1 + h2) / 2D);
event.output = out;
event.cost = 1;
}
}
}
}

View File

@ -520,6 +520,7 @@ public class ResourceManager {
public static final ResourceLocation hk69_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/hk69.png");
public static final ResourceLocation deagle_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/deagle.png");
public static final ResourceLocation ks23_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/ks23.png");
public static final ResourceLocation shotty_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/shotty.png");
public static final ResourceLocation flamer_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/flamer.png");
public static final ResourceLocation flechette_body = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/flechette_body.png");
public static final ResourceLocation flechette_barrel = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/flechette_barrel.png");

View File

@ -2,6 +2,7 @@ package com.hbm.render.item.weapon;
import org.lwjgl.opengl.GL11;
import com.hbm.items.weapon.ItemGunBase;
import com.hbm.main.ResourceManager;
import com.hbm.render.anim.HbmAnimations;
@ -37,10 +38,14 @@ public class ItemRenderWeaponShotty implements IItemRenderer {
public void renderItem(ItemRenderType type, ItemStack item, Object... data) {
GL11.glPushMatrix();
GL11.glEnable(GL11.GL_CULL_FACE);
GL11.glDisable(GL11.GL_CULL_FACE);
GL11.glShadeModel(GL11.GL_SMOOTH);
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.universal);
String barrel = "Body_Cube.008";
String handle = "handle_Cylinder.005";
String shells = "boolets_Cylinder.008";
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.shotty_tex);
EntityPlayer player = Minecraft.getMinecraft().thePlayer;
@ -59,7 +64,7 @@ public class ItemRenderWeaponShotty implements IItemRenderer {
GL11.glTranslatef(1.75F, -0.2F, -0.3F);
if(player.isSneaking()) {
GL11.glTranslatef(0F, 1.0F, -1.8F);
GL11.glTranslatef(0F, 1.0F, -2.05F);
GL11.glRotatef(3.5F, 0.0F, 1.0F, 0.0F);
} else {
@ -71,22 +76,24 @@ public class ItemRenderWeaponShotty implements IItemRenderer {
GL11.glPushMatrix();
GL11.glRotated(-eject[2] * 0.8, 0, 0, 1);
ResourceManager.shotty.renderPart("Barrel");
ResourceManager.shotty.renderPart(barrel);
GL11.glPushMatrix();
GL11.glRotated(ejectShell[0] * 90, 0, 0, 1);
GL11.glTranslated(-ejectShell[0] * 10, 0, 0);
ResourceManager.shotty.renderPart("Shells");
ResourceManager.shotty.renderPart(shells);
GL11.glPopMatrix();
GL11.glPushMatrix();
GL11.glTranslated(-insertShell[0], insertShell[2] * -2, insertShell[2] * -1);
ResourceManager.shotty.renderPart("Shells");
GL11.glPopMatrix();
if(ItemGunBase.getBeltSize(player, ItemGunBase.getBeltType(player, item, true)) > 0) {
GL11.glPushMatrix();
GL11.glTranslated(-insertShell[0], insertShell[2] * -2, insertShell[2] * -1);
ResourceManager.shotty.renderPart(shells);
GL11.glPopMatrix();
}
GL11.glPopMatrix();
ResourceManager.shotty.renderPart("Handle");
ResourceManager.shotty.renderPart(handle);
break;
@ -98,8 +105,8 @@ public class ItemRenderWeaponShotty implements IItemRenderer {
GL11.glRotatef(5F, 0.0F, 1.0F, 0.0F);
GL11.glTranslatef(0.5F, 0.0F, -0.4F);
GL11.glScaled(0.35, 0.35, 0.35);
ResourceManager.shotty.renderPart("Handle");
ResourceManager.shotty.renderPart("Barrel");
ResourceManager.shotty.renderPart(handle);
ResourceManager.shotty.renderPart(barrel);
break;
@ -107,8 +114,8 @@ public class ItemRenderWeaponShotty implements IItemRenderer {
GL11.glScaled(0.5, 0.5, 0.5);
GL11.glTranslatef(-1.0F, 0.2F, 0.0F);
ResourceManager.shotty.renderPart("Handle");
ResourceManager.shotty.renderPart("Barrel");
ResourceManager.shotty.renderPart(handle);
ResourceManager.shotty.renderPart(barrel);
break;
default: break;

View File

@ -9,8 +9,6 @@ import com.hbm.entity.effect.EntityBlackHole;
import com.hbm.entity.logic.EntityBalefire;
import com.hbm.entity.logic.EntityNukeExplosionMK4;
import com.hbm.explosion.ExplosionLarge;
import com.hbm.explosion.ExplosionParticle;
import com.hbm.explosion.ExplosionParticleB;
import com.hbm.explosion.ExplosionThermo;
import com.hbm.handler.FluidTypeHandler.FluidType;
import com.hbm.interfaces.IConsumer;
@ -21,8 +19,11 @@ import com.hbm.inventory.FluidTank;
import com.hbm.items.ModItems;
import com.hbm.items.machine.ItemMachineUpgrade;
import com.hbm.lib.Library;
import com.hbm.packet.AuxParticlePacketNT;
import com.hbm.packet.PacketDispatcher;
import com.hbm.tileentity.TileEntityMachineBase;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.item.Item;
@ -170,17 +171,31 @@ public class TileEntityMachineCyclotron extends TileEntityMachineBase implements
int rand = worldObj.rand.nextInt(10);
if(rand < 2) {
worldObj.spawnEntityInWorld(EntityNukeExplosionMK4.statFac(worldObj, (int)(BombConfig.fatmanRadius * 1.5), xCoord + 0.5, yCoord + 1.5, zCoord + 0.5));
ExplosionParticle.spawnMush(worldObj, xCoord + 0.5, yCoord - 3, zCoord + 0.5);
worldObj.spawnEntityInWorld(EntityNukeExplosionMK4.statFac(worldObj, (int)(BombConfig.fatmanRadius * 1.5), xCoord + 0.5, yCoord + 1.5, zCoord + 0.5).mute());
NBTTagCompound data = new NBTTagCompound();
data.setString("type", "muke");
PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5), new TargetPoint(worldObj.provider.dimensionId, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, 250));
worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "hbm:weapon.mukeExplosion", 15.0F, 1.0F);
} else if(rand < 4) {
EntityBalefire bf = new EntityBalefire(worldObj);
EntityBalefire bf = new EntityBalefire(worldObj).mute();
bf.posX = xCoord + 0.5;
bf.posY = yCoord + 1.5;
bf.posZ = zCoord + 0.5;
bf.destructionRange = (int)(BombConfig.fatmanRadius * 1.5);
worldObj.spawnEntityInWorld(bf);
ExplosionParticleB.spawnMush(worldObj, xCoord + 0.5, yCoord - 3, zCoord + 0.5);
NBTTagCompound data = new NBTTagCompound();
data.setString("type", "muke");
data.setBoolean("balefire", true);
PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5), new TargetPoint(worldObj.provider.dimensionId, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, 250));
worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "hbm:weapon.mukeExplosion", 15.0F, 1.0F);
} else if(rand < 5) {
EntityBlackHole bl = new EntityBlackHole(worldObj, 1.5F + worldObj.rand.nextFloat());
bl.posX = xCoord + 0.5F;
bl.posY = yCoord + 1.5F;

View File

@ -6,7 +6,6 @@ import java.util.Random;
import com.hbm.blocks.ModBlocks;
import com.hbm.entity.logic.EntityNukeExplosionMK4;
import com.hbm.explosion.ExplosionParticle;
import com.hbm.handler.FluidTypeHandler.FluidType;
import com.hbm.interfaces.IConsumer;
import com.hbm.interfaces.IFluidAcceptor;
@ -636,8 +635,6 @@ public class TileEntityReactorMultiblock extends TileEntity implements ISidedInv
}
worldObj.spawnEntityInWorld(EntityNukeExplosionMK4.statFac(worldObj, 50, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5));
ExplosionParticle.spawnMush(this.worldObj, this.xCoord, this.yCoord - 3, this.zCoord);
RadiationSavedData data = RadiationSavedData.getData(worldObj);
data.incrementRad(worldObj, xCoord, zCoord, 1000F, 2000F);

View File

@ -5,45 +5,48 @@ import java.util.List;
import java.util.Random;
import com.hbm.blocks.ModBlocks;
import com.hbm.config.BombConfig;
import com.hbm.config.GeneralConfig;
import com.hbm.entity.logic.EntityNukeExplosionMK3;
import com.hbm.explosion.ExplosionLarge;
import com.hbm.explosion.ExplosionParticle;
import com.hbm.explosion.ExplosionParticleB;
import com.hbm.explosion.ExplosionNT;
import com.hbm.explosion.ExplosionNukeGeneric;
import com.hbm.explosion.ExplosionNukeSmall;
import com.hbm.explosion.ExplosionNT.ExAttrib;
import com.hbm.items.ModItems;
import com.hbm.lib.ModDamageSource;
import com.hbm.main.MainRegistry;
import com.hbm.packet.AuxParticlePacketNT;
import com.hbm.packet.PacketDispatcher;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import net.minecraft.block.Block;
import net.minecraft.entity.Entity;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World;
public class Meteorite {
public void generate(World world, Random rand, int x, int y, int z) {
List<Entity> list = (List<Entity>)world.getEntitiesWithinAABBExcludingEntity(null,
AxisAlignedBB.getBoundingBox(x - 7.5, y - 7.5, z - 7.5, x + 7.5, y + 7.5, z + 7.5));
List<Entity> list = (List<Entity>) world.getEntitiesWithinAABBExcludingEntity(null, AxisAlignedBB.getBoundingBox(x - 7.5, y - 7.5, z - 7.5, x + 7.5, y + 7.5, z + 7.5));
for(Entity e : list) {
e.attackEntityFrom(ModDamageSource.meteorite, 1000);
}
if(GeneralConfig.enableSpecialMeteors)
switch(rand.nextInt(300)) {
case 0:
//Meteor-only tiny meteorite
// Meteor-only tiny meteorite
List<ItemStack> list0 = new ArrayList<ItemStack>();
list0.add(new ItemStack(ModBlocks.block_meteor));
generateBox(world, rand, x, y, z, list0);
return;
case 1:
//Large ore-only meteorite
// Large ore-only meteorite
List<ItemStack> list1 = new ArrayList<ItemStack>();
list1.addAll(this.getRandomOre(rand));
int i = list1.size();
@ -52,7 +55,7 @@ public class Meteorite {
generateSphere7x7(world, rand, x, y, z, list1);
return;
case 2:
//Medium ore-only meteorite
// Medium ore-only meteorite
List<ItemStack> list2 = new ArrayList<ItemStack>();
list2.addAll(this.getRandomOre(rand));
int k = list2.size() / 2;
@ -61,25 +64,25 @@ public class Meteorite {
generateSphere5x5(world, rand, x, y, z, list2);
return;
case 3:
//Small pure ore meteorite
// Small pure ore meteorite
List<ItemStack> list3 = new ArrayList<ItemStack>();
list3.addAll(this.getRandomOre(rand));
generateBox(world, rand, x, y, z, list3);
return;
case 4:
//Bamboozle
// Bamboozle
world.createExplosion(null, x + 0.5, y + 0.5, z + 0.5, 15F, true);
ExplosionLarge.spawnRubble(world, x, y, z, 25);
return;
case 5:
//Large treasure-only meteorite
// Large treasure-only meteorite
List<ItemStack> list4 = new ArrayList<ItemStack>();
list4.add(new ItemStack(ModBlocks.block_meteor_treasure));
list4.add(new ItemStack(ModBlocks.block_meteor_broken));
generateSphere7x7(world, rand, x, y, z, list4);
return;
case 6:
//Medium treasure-only meteorite
// Medium treasure-only meteorite
List<ItemStack> list5 = new ArrayList<ItemStack>();
list5.add(new ItemStack(ModBlocks.block_meteor_treasure));
list5.add(new ItemStack(ModBlocks.block_meteor_treasure));
@ -87,13 +90,13 @@ public class Meteorite {
generateSphere5x5(world, rand, x, y, z, list5);
return;
case 7:
//Small pure treasure meteorite
// Small pure treasure meteorite
List<ItemStack> list6 = new ArrayList<ItemStack>();
list6.add(new ItemStack(ModBlocks.block_meteor_treasure));
generateBox(world, rand, x, y, z, list6);
return;
case 8:
//Large nuclear meteorite
// Large nuclear meteorite
List<ItemStack> list7 = new ArrayList<ItemStack>();
list7.add(new ItemStack(ModBlocks.block_meteor_treasure));
List<ItemStack> list8 = new ArrayList<ItemStack>();
@ -102,47 +105,26 @@ public class Meteorite {
generateSphere5x5(world, rand, x, y, z, list8);
return;
case 9:
//Giant ore meteorite
// Giant ore meteorite
List<ItemStack> list9 = new ArrayList<ItemStack>();
list9.add(new ItemStack(ModBlocks.block_meteor_broken));
generateSphere9x9(world, rand, x, y, z, list9);
generateSphere7x7(world, rand, x, y, z, this.getRandomOre(rand));
return;
case 10:
//Tainted Meteorite
// Tainted Meteorite
List<ItemStack> list10 = new ArrayList<ItemStack>();
list10.add(new ItemStack(ModBlocks.block_meteor_broken));
generateSphere5x5(world, rand, x, y, z, list10);
world.setBlock(x, y, z, ModBlocks.taint, 9, 2);
return;
case 11:
//Atomic meteorite
EntityNukeExplosionMK3 entity0 = new EntityNukeExplosionMK3(world);
entity0.posX = x + 0.5D;
entity0.posY = y + 0.5D;
entity0.posZ = z + 0.5D;
entity0.destructionRange = BombConfig.fatmanRadius;
entity0.speed = BombConfig.blastSpeed;
entity0.coefficient = 10.0F;
world.spawnEntityInWorld(entity0);
if(MainRegistry.polaroidID == 11)
if(rand.nextInt(100) >= 0)
{
ExplosionParticleB.spawnMush(world, x, y - 3, z);
} else {
ExplosionParticle.spawnMush(world, x, y - 3, z);
}
else
if(rand.nextInt(100) == 0)
{
ExplosionParticleB.spawnMush(world, x, y - 3, z);
} else {
ExplosionParticle.spawnMush(world, x, y - 3, z);
}
// Atomic meteorite
ExplosionNukeSmall.explode(world, x + 0.5, y + 0.5, z + 0.5, ExplosionNukeSmall.medium);
return;
case 12:
//Star Blaster
// Star Blaster
world.createExplosion(null, x + 0.5, y + 0.5, z + 0.5, 10F, true);
ItemStack stack = new ItemStack(ModItems.gun_b92);
stack.setStackDisplayName("§9Star Blaster§r");
@ -150,7 +132,7 @@ public class Meteorite {
world.spawnEntityInWorld(blaster);
return;
}
switch(rand.nextInt(3)) {
case 0:
generateLarge(world, rand, x, y, z);
@ -163,36 +145,36 @@ public class Meteorite {
break;
}
}
public void generateLarge(World world, Random rand, int x, int y, int z) {
//0 - Molten
//1 - Cobble
//2 - Broken
//3 - Mix
// 0 - Molten
// 1 - Cobble
// 2 - Broken
// 3 - Mix
int hull = rand.nextInt(4);
//0 - Cobble
//1 - Broken
//2 - Mix
// 0 - Cobble
// 1 - Broken
// 2 - Mix
int outerPadding = 0;
if(hull == 2)
outerPadding = 1 + rand.nextInt(2);
else if(hull == 3)
outerPadding = 2;
//0 - Broken
//1 - Stone
//2 - Netherrack
// 0 - Broken
// 1 - Stone
// 2 - Netherrack
int innerPadding = rand.nextInt(hull == 0 ? 3 : 2);
//0 - Meteor
//1 - Treasure
//2 - Ore
// 0 - Meteor
// 1 - Treasure
// 2 - Ore
int core = rand.nextInt(2);
if(innerPadding > 0)
core = 2;
List<ItemStack> hullL = new ArrayList<ItemStack>();
switch(hull) {
case 0:
@ -211,7 +193,7 @@ public class Meteorite {
hullL.add(new ItemStack(ModBlocks.block_meteor_broken));
break;
}
List<ItemStack> opL = new ArrayList<ItemStack>();
switch(outerPadding) {
case 0:
@ -227,7 +209,7 @@ public class Meteorite {
opL.add(new ItemStack(ModBlocks.block_meteor_broken));
break;
}
List<ItemStack> ipL = new ArrayList<ItemStack>();
switch(innerPadding) {
case 0:
@ -242,7 +224,7 @@ public class Meteorite {
ipL.add(new ItemStack(ModBlocks.block_meteor_cobble));
break;
}
List<ItemStack> coreL = new ArrayList<ItemStack>();
switch(core) {
case 0:
@ -255,7 +237,7 @@ public class Meteorite {
coreL.addAll(this.getRandomOre(rand));
break;
}
switch(rand.nextInt(5)) {
case 0:
genL1(world, rand, x, y, z, hullL, opL, ipL, coreL);
@ -274,36 +256,36 @@ public class Meteorite {
break;
}
}
public void generateMedium(World world, Random rand, int x, int y, int z) {
//0 - Molten
//1 - Cobble
//2 - Broken
//3 - Mix
// 0 - Molten
// 1 - Cobble
// 2 - Broken
// 3 - Mix
int hull = rand.nextInt(4);
//0 - Cobble
//1 - Broken
//2 - Mix
// 0 - Cobble
// 1 - Broken
// 2 - Mix
int outerPadding = 0;
if(hull == 2)
outerPadding = 1 + rand.nextInt(2);
else if(hull == 3)
outerPadding = 2;
//0 - Broken
//1 - Stone
//2 - Netherrack
// 0 - Broken
// 1 - Stone
// 2 - Netherrack
int innerPadding = rand.nextInt(hull == 0 ? 3 : 2);
//0 - Meteor
//1 - Treasure
//2 - Ore
// 0 - Meteor
// 1 - Treasure
// 2 - Ore
int core = rand.nextInt(2);
if(innerPadding > 0)
core = 2;
List<ItemStack> hullL = new ArrayList<ItemStack>();
switch(hull) {
case 0:
@ -322,7 +304,7 @@ public class Meteorite {
hullL.add(new ItemStack(ModBlocks.block_meteor_broken));
break;
}
List<ItemStack> opL = new ArrayList<ItemStack>();
switch(outerPadding) {
case 0:
@ -338,7 +320,7 @@ public class Meteorite {
opL.add(new ItemStack(ModBlocks.block_meteor_broken));
break;
}
List<ItemStack> ipL = new ArrayList<ItemStack>();
switch(innerPadding) {
case 0:
@ -353,7 +335,7 @@ public class Meteorite {
ipL.add(new ItemStack(ModBlocks.block_meteor_cobble));
break;
}
List<ItemStack> coreL = new ArrayList<ItemStack>();
switch(core) {
case 0:
@ -366,7 +348,7 @@ public class Meteorite {
coreL.addAll(this.getRandomOre(rand));
break;
}
List<ItemStack> sCore = new ArrayList<ItemStack>();
switch(core) {
case 0:
@ -380,7 +362,7 @@ public class Meteorite {
sCore.add(new ItemStack(ModBlocks.block_meteor));
break;
}
switch(rand.nextInt(6)) {
case 0:
genM1(world, rand, x, y, z, hullL, opL, ipL, sCore);
@ -402,19 +384,19 @@ public class Meteorite {
break;
}
}
public void generateSmall(World world, Random rand, int x, int y, int z) {
//0 - Molten
//1 - Cobble
//2 - Broken
//3 - Mix
// 0 - Molten
// 1 - Cobble
// 2 - Broken
// 3 - Mix
int hull = rand.nextInt(4);
//0 - Meteor
//1 - Treasure
//2 - Ore
// 0 - Meteor
// 1 - Treasure
// 2 - Ore
int core = rand.nextInt(3);
List<ItemStack> hullL = new ArrayList<ItemStack>();
switch(hull) {
case 0:
@ -433,7 +415,7 @@ public class Meteorite {
hullL.add(new ItemStack(ModBlocks.block_meteor_broken));
break;
}
List<ItemStack> sCore = new ArrayList<ItemStack>();
switch(core) {
case 0:
@ -447,7 +429,7 @@ public class Meteorite {
sCore.add(new ItemStack(ModBlocks.block_meteor));
break;
}
generateBox(world, rand, x, y, z, hullL);
ItemStack stack = sCore.get(rand.nextInt(sCore.size()));
world.setBlock(x, y, z, Block.getBlockFromItem(stack.getItem()), stack.getItemDamage(), 2);
@ -500,21 +482,21 @@ public class Meteorite {
ItemStack stack = core.get(rand.nextInt(core.size()));
world.setBlock(x, y, z, Block.getBlockFromItem(stack.getItem()), stack.getItemDamage(), 2);
}
public void genM2(World world, Random rand, int x, int y, int z, List<ItemStack> hull, List<ItemStack> op, List<ItemStack> ip, List<ItemStack> core) {
generateSphere5x5(world, rand, x, y, z, hull);
generateStar3x3(world, rand, x, y, z, op);
ItemStack stack = core.get(rand.nextInt(core.size()));
world.setBlock(x, y, z, Block.getBlockFromItem(stack.getItem()), stack.getItemDamage(), 2);
}
public void genM3(World world, Random rand, int x, int y, int z, List<ItemStack> hull, List<ItemStack> op, List<ItemStack> ip, List<ItemStack> core) {
generateSphere5x5(world, rand, x, y, z, hull);
generateBox(world, rand, x, y, z, op);
ItemStack stack = core.get(rand.nextInt(core.size()));
world.setBlock(x, y, z, Block.getBlockFromItem(stack.getItem()), stack.getItemDamage(), 2);
}
public void genM4(World world, Random rand, int x, int y, int z, List<ItemStack> hull, List<ItemStack> op, List<ItemStack> ip, List<ItemStack> core) {
generateSphere5x5(world, rand, x, y, z, hull);
generateBox(world, rand, x, y, z, op);
@ -522,14 +504,14 @@ public class Meteorite {
ItemStack stack = core.get(rand.nextInt(core.size()));
world.setBlock(x, y, z, Block.getBlockFromItem(stack.getItem()), stack.getItemDamage(), 2);
}
public void genM5(World world, Random rand, int x, int y, int z, List<ItemStack> hull, List<ItemStack> op, List<ItemStack> ip, List<ItemStack> core) {
generateSphere5x5(world, rand, x, y, z, hull);
generateBox(world, rand, x, y, z, ip);
ItemStack stack = core.get(rand.nextInt(core.size()));
world.setBlock(x, y, z, Block.getBlockFromItem(stack.getItem()), stack.getItemDamage(), 2);
}
public void genM6(World world, Random rand, int x, int y, int z, List<ItemStack> hull, List<ItemStack> op, List<ItemStack> ip, List<ItemStack> core) {
generateSphere5x5(world, rand, x, y, z, hull);
generateBox(world, rand, x, y, z, ip);
@ -537,7 +519,7 @@ public class Meteorite {
ItemStack stack = core.get(rand.nextInt(core.size()));
world.setBlock(x, y, z, Block.getBlockFromItem(stack.getItem()), stack.getItemDamage(), 2);
}
public void generateSphere7x7(World world, Random rand, int x, int y, int z, List<ItemStack> set) {
for(int a = -3; a < 4; a++)
for(int b = -1; b < 2; b++)
@ -557,7 +539,7 @@ public class Meteorite {
ItemStack stack = set.get(rand.nextInt(set.size()));
world.setBlock(x + a, y + b, z + c, Block.getBlockFromItem(stack.getItem()), stack.getItemDamage(), 2);
}
for(int a = -2; a < 3; a++)
for(int b = -2; b < 3; b++)
for(int c = -1; c < 2; c++) {
@ -577,7 +559,7 @@ public class Meteorite {
world.setBlock(x + a, y + b, z + c, Block.getBlockFromItem(stack.getItem()), stack.getItemDamage(), 2);
}
}
public void generateSphere5x5(World world, Random rand, int x, int y, int z, List<ItemStack> set) {
for(int a = -2; a < 3; a++)
for(int b = -1; b < 2; b++)
@ -598,7 +580,7 @@ public class Meteorite {
world.setBlock(x + a, y + b, z + c, Block.getBlockFromItem(stack.getItem()), stack.getItemDamage(), 2);
}
}
public void generateSphere9x9(World world, Random rand, int x, int y, int z, List<ItemStack> set) {
for(int a = -4; a < 5; a++)
for(int b = -1; b < 2; b++)
@ -618,7 +600,7 @@ public class Meteorite {
ItemStack stack = set.get(rand.nextInt(set.size()));
world.setBlock(x + a, y + b, z + c, Block.getBlockFromItem(stack.getItem()), stack.getItemDamage(), 2);
}
for(int a = -1; a < 2; a++)
for(int b = -3; b < 4; b++)
for(int c = -3; c < 4; c++) {
@ -666,7 +648,7 @@ public class Meteorite {
world.setBlock(x + a, y + b, z + c, Block.getBlockFromItem(stack.getItem()), stack.getItemDamage(), 2);
}
}
public void generateStar5x5(World world, Random rand, int x, int y, int z, List<ItemStack> set) {
for(int a = -1; a < 2; a++)
for(int b = -1; b < 2; b++)
@ -688,7 +670,7 @@ public class Meteorite {
stack = set.get(rand.nextInt(set.size()));
world.setBlock(x, y, z - 2, Block.getBlockFromItem(stack.getItem()), stack.getItemDamage(), 2);
}
public void generateStar3x3(World world, Random rand, int x, int y, int z, List<ItemStack> set) {
ItemStack stack = set.get(rand.nextInt(set.size()));
@ -706,9 +688,9 @@ public class Meteorite {
stack = set.get(rand.nextInt(set.size()));
world.setBlock(x, y, z - 1, Block.getBlockFromItem(stack.getItem()), stack.getItemDamage(), 2);
}
public List<ItemStack> getRandomOre(Random rand) {
List<ItemStack> ores = new ArrayList<ItemStack>();
for(int i = 0; i < 3; i++)
@ -731,7 +713,7 @@ public class Meteorite {
ores.add(new ItemStack(ModBlocks.ore_meteor_lithium));
for(int i = 0; i < 1; i++)
ores.add(new ItemStack(ModBlocks.ore_meteor_starmetal));
return ores;
}