mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
slapped new explosion particles onto every small explosion
This commit is contained in:
parent
b41fca36ff
commit
692deefdec
@ -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
|
||||
|
||||
@ -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
BIN
src/main/java/assets/hbm/textures/items/ammo_mirv_special.png
Normal file
BIN
src/main/java/assets/hbm/textures/items/ammo_mirv_special.png
Normal file
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 |
BIN
src/main/java/assets/hbm/textures/models/weapons/shotty.png
Normal file
BIN
src/main/java/assets/hbm/textures/models/weapons/shotty.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 126 KiB |
@ -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;
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
@ -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 }));
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
@ -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();
|
||||
|
||||
@ -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) {
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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 ||
|
||||
|
||||
76
src/main/java/com/hbm/explosion/ExplosionNukeSmall.java
Normal file
76
src/main/java/com/hbm/explosion/ExplosionNukeSmall.java
Normal 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);
|
||||
}
|
||||
}
|
||||
@ -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));*/
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@ -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));
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@ -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());
|
||||
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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());
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
22
src/main/java/com/hbm/items/special/ItemHotDusted.java
Normal file
22
src/main/java/com/hbm/items/special/ItemHotDusted.java
Normal 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;
|
||||
}
|
||||
}
|
||||
@ -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]");
|
||||
}
|
||||
}
|
||||
@ -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.");
|
||||
}
|
||||
}
|
||||
@ -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) {
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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");
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user