volcanoes!
@ -122,6 +122,16 @@ public class ModBlocks {
|
||||
|
||||
public static Block depth_brick;
|
||||
public static Block depth_tiles;
|
||||
public static Block depth_nether_brick;
|
||||
public static Block depth_nether_tiles;
|
||||
|
||||
public static Block basalt;
|
||||
public static Block basalt_sulfur;
|
||||
public static Block basalt_asbestos;
|
||||
public static Block basalt_smooth;
|
||||
public static Block basalt_brick;
|
||||
public static Block basalt_polished;
|
||||
public static Block basalt_tiles;
|
||||
|
||||
public static Block cluster_iron;
|
||||
public static Block cluster_titanium;
|
||||
@ -1032,6 +1042,12 @@ public class ModBlocks {
|
||||
public static Fluid corium_fluid;
|
||||
public static final Material fluidcorium = (new MaterialLiquid(MapColor.brownColor));
|
||||
|
||||
public static Block volcanic_lava_block;
|
||||
public static Fluid volcanic_lava_fluid;
|
||||
public static final Material fluidvolcanic = (new MaterialLiquid(MapColor.redColor));
|
||||
|
||||
public static Block volcano_core;
|
||||
|
||||
public static Block dummy_block_igenerator;
|
||||
public static Block dummy_port_igenerator;
|
||||
public static Block dummy_block_centrifuge;
|
||||
@ -1184,11 +1200,21 @@ public class ModBlocks {
|
||||
cluster_depth_titanium = new BlockOre(Material.rock).setBlockName("cluster_depth_titanium").setCreativeTab(MainRegistry.blockTab).setBlockUnbreakable().setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":cluster_depth_titanium");
|
||||
cluster_depth_tungsten = new BlockOre(Material.rock).setBlockName("cluster_depth_tungsten").setCreativeTab(MainRegistry.blockTab).setBlockUnbreakable().setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":cluster_depth_tungsten");
|
||||
|
||||
depth_brick = new BlockGeneric(Material.rock).setBlockName("depth_brick").setCreativeTab(MainRegistry.blockTab).setBlockUnbreakable().setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":depth_brick");
|
||||
depth_tiles = new BlockGeneric(Material.rock).setBlockName("depth_tiles").setCreativeTab(MainRegistry.blockTab).setBlockUnbreakable().setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":depth_tiles");
|
||||
depth_brick = new BlockDepth().setBlockName("depth_brick").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":depth_brick");
|
||||
depth_tiles = new BlockDepth().setBlockName("depth_tiles").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":depth_tiles");
|
||||
depth_nether_brick = new BlockDepth().setBlockName("depth_nether_brick").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":depth_nether_brick");
|
||||
depth_nether_tiles = new BlockDepth().setBlockName("depth_nether_tiles").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":depth_nether_tiles");
|
||||
|
||||
stone_depth_nether = new BlockDepth().setBlockName("stone_depth_nether").setCreativeTab(MainRegistry.blockTab).setBlockUnbreakable().setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":stone_depth_nether");
|
||||
ore_depth_nether_neodymium = new BlockOre(Material.rock).setBlockName("ore_depth_nether_neodymium").setCreativeTab(MainRegistry.blockTab).setBlockUnbreakable().setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_depth_nether_neodymium");
|
||||
|
||||
basalt = new BlockGeneric(Material.rock).setBlockName("basalt").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":basalt");
|
||||
basalt_sulfur = new BlockOre(Material.rock).setBlockName("basalt_sulfur").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":basalt_sulfur");
|
||||
basalt_asbestos = new BlockOutgas(Material.rock, true, 5, true).setBlockName("basalt_asbestos").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":basalt_asbestos");
|
||||
basalt_smooth = new BlockGeneric(Material.rock).setBlockName("basalt_smooth").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":basalt_smooth");
|
||||
basalt_brick = new BlockGeneric(Material.rock).setBlockName("basalt_brick").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":basalt_brick");
|
||||
basalt_polished = new BlockGeneric(Material.rock).setBlockName("basalt_polished").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":basalt_polished");
|
||||
basalt_tiles = new BlockGeneric(Material.rock).setBlockName("basalt_tiles").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":basalt_tiles");
|
||||
|
||||
ore_australium = new BlockGeneric(Material.rock).setBlockName("ore_australium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_australium");
|
||||
ore_weidanium = new BlockGeneric(Material.rock).setBlockName("ore_weidanium").setCreativeTab(null).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_weidanium");
|
||||
@ -1910,6 +1936,8 @@ public class ModBlocks {
|
||||
absorber_green = new BlockAbsorber(Material.iron, 100F).setBlockName("absorber_green").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":absorber_green");
|
||||
absorber_pink = new BlockAbsorber(Material.iron, 10000F).setBlockName("absorber_pink").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":absorber_pink");
|
||||
decon = new BlockDecon(Material.iron).setBlockName("decon").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":decon_side");
|
||||
|
||||
volcano_core = new BlockVolcano().setBlockName("volcano_core").setHardness(15.0F).setResistance(10000.0F).setCreativeTab(MainRegistry.nukeTab).setBlockTextureName(RefStrings.MODID + ":volcano_core");
|
||||
|
||||
statue_elb = new DecoBlockAlt(Material.iron).setBlockName("#null").setHardness(Float.POSITIVE_INFINITY).setResistance(Float.POSITIVE_INFINITY);
|
||||
statue_elb_g = new DecoBlockAlt(Material.iron).setBlockName("#void").setHardness(Float.POSITIVE_INFINITY).setResistance(Float.POSITIVE_INFINITY);
|
||||
@ -1936,6 +1964,10 @@ public class ModBlocks {
|
||||
FluidRegistry.registerFluid(corium_fluid);
|
||||
corium_block = new CoriumBlock(corium_fluid, fluidcorium).setBlockName("corium_block").setResistance(500F);
|
||||
|
||||
volcanic_lava_fluid = new VolcanicFluid().setLuminosity(15).setDensity(3000).setViscosity(3000).setTemperature(1300).setUnlocalizedName("volcanic_lava_fluid");
|
||||
FluidRegistry.registerFluid(volcanic_lava_fluid);
|
||||
volcanic_lava_block = new VolcanicBlock(volcanic_lava_fluid, Material.lava).setBlockName("volcanic_lava_block").setResistance(500F);
|
||||
|
||||
dummy_block_igenerator = new DummyBlockIGenerator(Material.iron).setBlockName("dummy_block_igenerator").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
dummy_port_igenerator = new DummyBlockIGenerator(Material.iron).setBlockName("dummy_port_igenerator").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
dummy_block_centrifuge = new DummyBlockCentrifuge(Material.iron).setBlockName("dummy_block_centrifuge").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
@ -2095,6 +2127,10 @@ public class ModBlocks {
|
||||
//Nether depth ores
|
||||
GameRegistry.registerBlock(ore_depth_nether_neodymium, ItemBlockDepth.class, ore_depth_nether_neodymium.getUnlocalizedName());
|
||||
|
||||
//Basalt ores
|
||||
GameRegistry.registerBlock(basalt_sulfur, basalt_sulfur.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(basalt_asbestos, basalt_asbestos.getUnlocalizedName());
|
||||
|
||||
//End Ores
|
||||
GameRegistry.registerBlock(ore_tikite, ore_tikite.getUnlocalizedName());
|
||||
|
||||
@ -2113,6 +2149,13 @@ public class ModBlocks {
|
||||
GameRegistry.registerBlock(depth_brick, ItemBlockDepth.class, depth_brick.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(depth_tiles, ItemBlockDepth.class, depth_tiles.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(stone_depth_nether, ItemBlockDepth.class, stone_depth_nether.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(depth_nether_brick, ItemBlockDepth.class, depth_nether_brick.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(depth_nether_tiles, ItemBlockDepth.class, depth_nether_tiles.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(basalt, basalt.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(basalt_smooth, basalt_smooth.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(basalt_brick, basalt_brick.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(basalt_polished, basalt_polished.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(basalt_tiles, basalt_tiles.getUnlocalizedName());
|
||||
|
||||
//Blocks
|
||||
GameRegistry.registerBlock(block_uranium, ItemBlockHazard.class, block_uranium.getUnlocalizedName());
|
||||
@ -2750,6 +2793,7 @@ public class ModBlocks {
|
||||
GameRegistry.registerBlock(balefire, balefire.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(fire_digamma, fire_digamma.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(digamma_matter, digamma_matter.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(volcano_core, volcano_core.getUnlocalizedName());
|
||||
|
||||
//AMS
|
||||
GameRegistry.registerBlock(ams_base, ams_base.getUnlocalizedName());
|
||||
@ -2810,6 +2854,7 @@ public class ModBlocks {
|
||||
GameRegistry.registerBlock(toxic_block, toxic_block.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(schrabidic_block, schrabidic_block.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(corium_block, corium_block.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(volcanic_lava_block, volcanic_lava_block.getUnlocalizedName());
|
||||
|
||||
//Multiblock Dummy Blocks
|
||||
GameRegistry.registerBlock(dummy_block_igenerator, dummy_block_igenerator.getUnlocalizedName());
|
||||
|
||||
78
src/main/java/com/hbm/blocks/bomb/BlockVolcano.java
Normal file
@ -0,0 +1,78 @@
|
||||
package com.hbm.blocks.bomb;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.entity.projectile.EntityShrapnel;
|
||||
import com.hbm.explosion.ExplosionNT;
|
||||
import com.hbm.explosion.ExplosionNT.ExAttrib;
|
||||
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.block.material.Material;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockVolcano extends Block {
|
||||
|
||||
public BlockVolcano() {
|
||||
super(Material.iron);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int tickRate(World world) {
|
||||
return 5;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBlockAdded(World world, int x, int y, int z) {
|
||||
|
||||
if(!world.isRemote)
|
||||
world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateTick(World world, int x, int y, int z, Random rand) {
|
||||
|
||||
if(!world.isRemote) {
|
||||
List<ExAttrib> attribs = Arrays.asList(new ExAttrib[] {ExAttrib.NODROP, ExAttrib.LAVA_V, ExAttrib.NOSOUND, ExAttrib.ALLMOD, ExAttrib.NOHURT});
|
||||
|
||||
ExplosionNT explosion = new ExplosionNT(world, null, x + 0.5, y + rand.nextInt(15) + 1.5, z + 0.5, 7);
|
||||
explosion.addAllAttrib(attribs);
|
||||
explosion.explode();
|
||||
|
||||
ExplosionNT explosion2 = new ExplosionNT(world, null, x + 0.5 + rand.nextGaussian() * 3, rand.nextInt(y), z + 0.5 + rand.nextGaussian() * 3, 10);
|
||||
explosion2.addAllAttrib(attribs);
|
||||
explosion2.explode();
|
||||
|
||||
world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world));
|
||||
|
||||
int rX = x - 10 + rand.nextInt(21);
|
||||
int rY = y + rand.nextInt(11);
|
||||
int rZ = z - 10 + rand.nextInt(21);
|
||||
|
||||
if(world.getBlock(rX, rY, rZ) == Blocks.air && world.getBlock(rX, rY - 1, rZ) == ModBlocks.volcanic_lava_block)
|
||||
world.setBlock(rX, rY, rZ, ModBlocks.volcanic_lava_block);
|
||||
|
||||
for(int i = 0; i < 3; i++) {
|
||||
EntityShrapnel frag = new EntityShrapnel(world);
|
||||
frag.setLocationAndAngles(x + 0.5, y + 1.5, z + 0.5, 0.0F, 0.0F);
|
||||
frag.motionY = 1D + rand.nextDouble();
|
||||
frag.motionX = rand.nextGaussian() * 0.2D;
|
||||
frag.motionZ = rand.nextGaussian() * 0.2D;
|
||||
frag.setVolcano(true);
|
||||
world.spawnEntityInWorld(frag);
|
||||
}
|
||||
|
||||
NBTTagCompound dPart = new NBTTagCompound();
|
||||
dPart.setString("type", "vanillaExt");
|
||||
dPart.setString("mode", "volcano");
|
||||
PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(dPart, x + 0.5, y + 10, z + 0.5), new TargetPoint(world.provider.dimensionId, x + 0.5, y + 10, z + 0.5, 250));
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -6,31 +6,7 @@ import org.apache.logging.log4j.Level;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.config.GeneralConfig;
|
||||
import com.hbm.entity.missile.EntityCarrier;
|
||||
import com.hbm.entity.missile.EntityMissileAntiBallistic;
|
||||
import com.hbm.entity.missile.EntityMissileBHole;
|
||||
import com.hbm.entity.missile.EntityMissileBunkerBuster;
|
||||
import com.hbm.entity.missile.EntityMissileBurst;
|
||||
import com.hbm.entity.missile.EntityMissileBusterStrong;
|
||||
import com.hbm.entity.missile.EntityMissileCluster;
|
||||
import com.hbm.entity.missile.EntityMissileClusterStrong;
|
||||
import com.hbm.entity.missile.EntityMissileDoomsday;
|
||||
import com.hbm.entity.missile.EntityMissileDrill;
|
||||
import com.hbm.entity.missile.EntityMissileEMP;
|
||||
import com.hbm.entity.missile.EntityMissileEMPStrong;
|
||||
import com.hbm.entity.missile.EntityMissileEndo;
|
||||
import com.hbm.entity.missile.EntityMissileExo;
|
||||
import com.hbm.entity.missile.EntityMissileGeneric;
|
||||
import com.hbm.entity.missile.EntityMissileIncendiary;
|
||||
import com.hbm.entity.missile.EntityMissileIncendiaryStrong;
|
||||
import com.hbm.entity.missile.EntityMissileInferno;
|
||||
import com.hbm.entity.missile.EntityMissileMicro;
|
||||
import com.hbm.entity.missile.EntityMissileMirv;
|
||||
import com.hbm.entity.missile.EntityMissileNuclear;
|
||||
import com.hbm.entity.missile.EntityMissileRain;
|
||||
import com.hbm.entity.missile.EntityMissileSchrabidium;
|
||||
import com.hbm.entity.missile.EntityMissileStrong;
|
||||
import com.hbm.entity.missile.EntityMissileTaint;
|
||||
import com.hbm.entity.missile.*;
|
||||
import com.hbm.interfaces.IBomb;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.main.MainRegistry;
|
||||
@ -279,6 +255,9 @@ public class LaunchPad extends BlockContainer implements IBomb {
|
||||
if(entity.slots[0].getItem() == ModItems.missile_emp_strong) {
|
||||
missile = new EntityMissileEMPStrong(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
|
||||
}
|
||||
if(entity.slots[0].getItem() == ModItems.missile_volcano) {
|
||||
missile = new EntityMissileVolcano(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
|
||||
}
|
||||
|
||||
world.spawnEntityInWorld(missile);
|
||||
world.playSoundEffect(x, y, z, "hbm:weapon.missileTakeOff", 2.0F, 1.0F);
|
||||
|
||||
@ -84,7 +84,7 @@ public class CoriumBlock extends BlockFluidClassic {
|
||||
ContaminationUtil.contaminate((EntityLivingBase)entity, HazardType.RADIATION, ContaminationType.CREATIVE, 1F);
|
||||
}
|
||||
|
||||
//TODO: slow down solidification, prevent displacement
|
||||
//TODO: prevent displacement
|
||||
|
||||
@Override
|
||||
public void updateTick(World world, int x, int y, int z, Random rand) {
|
||||
|
||||
127
src/main/java/com/hbm/blocks/fluid/VolcanicBlock.java
Normal file
@ -0,0 +1,127 @@
|
||||
package com.hbm.blocks.fluid;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.lib.RefStrings;
|
||||
|
||||
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.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
import net.minecraftforge.fluids.BlockFluidClassic;
|
||||
import net.minecraftforge.fluids.Fluid;
|
||||
|
||||
public class VolcanicBlock extends BlockFluidClassic {
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public static IIcon stillIcon;
|
||||
@SideOnly(Side.CLIENT)
|
||||
public static IIcon flowingIcon;
|
||||
|
||||
public VolcanicBlock(Fluid fluid, Material material) {
|
||||
super(fluid, material);
|
||||
this.setTickRandomly(true);
|
||||
this.setQuantaPerBlock(4);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public IIcon getIcon(int side, int meta) {
|
||||
return (side == 0 || side == 1) ? stillIcon : flowingIcon;
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void registerBlockIcons(IIconRegister register) {
|
||||
stillIcon = register.registerIcon(RefStrings.MODID + ":volcanic_lava_still");
|
||||
flowingIcon = register.registerIcon(RefStrings.MODID + ":volcanic_lava_flowing");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNeighborBlockChange(World world, int x, int y, int z, Block block) {
|
||||
super.onNeighborBlockChange(world, x, y, z, block);
|
||||
|
||||
for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) {
|
||||
Block b = getReaction(world, x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ);
|
||||
|
||||
if(b != null)
|
||||
world.setBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, b);
|
||||
}
|
||||
}
|
||||
|
||||
public Block getReaction(World world, int x, int y, int z) {
|
||||
|
||||
Block b = world.getBlock(x, y, z);
|
||||
if(b.getMaterial() == Material.water) {
|
||||
return Blocks.stone;
|
||||
}
|
||||
if(b == Blocks.log || b == Blocks.log2) {
|
||||
return ModBlocks.waste_log;
|
||||
}
|
||||
if(b == Blocks.planks) {
|
||||
return ModBlocks.waste_planks;
|
||||
}
|
||||
if(b == Blocks.leaves || b == Blocks.leaves2) {
|
||||
return Blocks.fire;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateTick(World world, int x, int y, int z, Random rand) {
|
||||
|
||||
super.updateTick(world, x, y, z, rand);
|
||||
|
||||
int count = 0;
|
||||
|
||||
for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) {
|
||||
Block b = world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ);
|
||||
|
||||
if(b == this)
|
||||
count++;
|
||||
}
|
||||
|
||||
if(!world.isRemote && ((!this.isSourceBlock(world, x, y, z) && count < 2) || (rand.nextInt(5) == 0) && count < 5) && world.getBlock(x, y - 1, z).isNormalCube()) {
|
||||
|
||||
int r = rand.nextInt(200);
|
||||
|
||||
if(r < 2)
|
||||
world.setBlock(x, y, z, ModBlocks.basalt_sulfur);
|
||||
else if(r == 2)
|
||||
world.setBlock(x, y, z, ModBlocks.basalt_asbestos);
|
||||
else
|
||||
world.setBlock(x, y, z, ModBlocks.basalt);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canDisplace(IBlockAccess world, int x, int y, int z) {
|
||||
Block b = world.getBlock(x, y, z);
|
||||
|
||||
if(Blocks.fire.getFlammability(b) > 0)
|
||||
return true;
|
||||
|
||||
if(b.isReplaceable(world, x, y, z))
|
||||
return true;
|
||||
|
||||
return super.canDisplace(world, x, y, z);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean displaceIfPossible(World world, int x, int y, int z) {
|
||||
return super.displaceIfPossible(world, x, y, z) || canDisplace(world, x, y, z);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public int getRenderBlockPass() {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
31
src/main/java/com/hbm/blocks/fluid/VolcanicFluid.java
Normal file
@ -0,0 +1,31 @@
|
||||
package com.hbm.blocks.fluid;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraftforge.fluids.Fluid;
|
||||
|
||||
public class VolcanicFluid extends Fluid {
|
||||
|
||||
public VolcanicFluid() {
|
||||
super("volcanic_lava_fluid");
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public IIcon getIcon() {
|
||||
return getStillIcon();
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public IIcon getStillIcon() {
|
||||
return VolcanicBlock.stillIcon;
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public IIcon getFlowingIcon() {
|
||||
return VolcanicBlock.flowingIcon;
|
||||
}
|
||||
}
|
||||
@ -49,7 +49,7 @@ public class BlockOre extends Block {
|
||||
if(this == ModBlocks.ore_niter) {
|
||||
return ModItems.niter;
|
||||
}
|
||||
if(this == ModBlocks.ore_sulfur || this == ModBlocks.ore_nether_sulfur || this == ModBlocks.ore_meteor_sulfur) {
|
||||
if(this == ModBlocks.ore_sulfur || this == ModBlocks.ore_nether_sulfur || this == ModBlocks.ore_meteor_sulfur || this == ModBlocks.basalt_sulfur) {
|
||||
return ModItems.sulfur;
|
||||
}
|
||||
if(this == ModBlocks.waste_trinitite || this == ModBlocks.waste_trinitite_red) {
|
||||
@ -192,7 +192,7 @@ public class BlockOre extends Block {
|
||||
if(this == ModBlocks.deco_asbestos) {
|
||||
return ModItems.ingot_asbestos;
|
||||
}
|
||||
if(this == ModBlocks.ore_asbestos || this == ModBlocks.ore_gneiss_asbestos) {
|
||||
if(this == ModBlocks.ore_asbestos || this == ModBlocks.ore_gneiss_asbestos || this == ModBlocks.basalt_asbestos) {
|
||||
return ModItems.ingot_asbestos;
|
||||
}
|
||||
if(this == ModBlocks.ore_lignite) {
|
||||
@ -234,7 +234,7 @@ public class BlockOre extends Block {
|
||||
if(this == ModBlocks.ore_niter) {
|
||||
return 2 + rand.nextInt(3);
|
||||
}
|
||||
if(this == ModBlocks.ore_sulfur || this == ModBlocks.ore_nether_sulfur || this == ModBlocks.ore_meteor_sulfur) {
|
||||
if(this == ModBlocks.ore_sulfur || this == ModBlocks.ore_nether_sulfur || this == ModBlocks.ore_meteor_sulfur || this == ModBlocks.basalt_sulfur) {
|
||||
return 2 + rand.nextInt(3);
|
||||
}
|
||||
if(this == ModBlocks.ore_rare || this == ModBlocks.ore_gneiss_rare) {
|
||||
|
||||
@ -65,7 +65,8 @@ public class BlockOutgas extends BlockOre implements IItemHazard {
|
||||
if(this == ModBlocks.ore_asbestos || this == ModBlocks.ore_gneiss_asbestos ||
|
||||
this == ModBlocks.block_asbestos || this == ModBlocks.deco_asbestos ||
|
||||
this == ModBlocks.brick_asbestos || this == ModBlocks.tile_lab ||
|
||||
this == ModBlocks.tile_lab_cracked || this == ModBlocks.tile_lab_broken) {
|
||||
this == ModBlocks.tile_lab_cracked || this == ModBlocks.tile_lab_broken ||
|
||||
this == ModBlocks.basalt_asbestos) {
|
||||
return ModBlocks.gas_asbestos;
|
||||
}
|
||||
|
||||
|
||||
@ -160,6 +160,8 @@ public class RodRecipes {
|
||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.rbmk_fuel_empty, 1), new Object[] { "ZRZ", "Z Z", "ZRZ", 'Z', "ingotZirconium", 'R', ModItems.rod_quad_empty }));
|
||||
RecipesCommon.addRBMKRod(ModItems.billet_uranium, ModItems.rbmk_fuel_ueu);
|
||||
RecipesCommon.addRBMKRod(ModItems.billet_uranium_fuel, ModItems.rbmk_fuel_meu);
|
||||
RecipesCommon.addRBMKRod(ModItems.billet_u233, ModItems.rbmk_fuel_heu233);
|
||||
RecipesCommon.addRBMKRod(ModItems.billet_u235, ModItems.rbmk_fuel_heu235);
|
||||
RecipesCommon.addRBMKRod(ModItems.billet_thorium_fuel, ModItems.rbmk_fuel_thmeu);
|
||||
RecipesCommon.addRBMKRod(ModItems.billet_mox_fuel, ModItems.rbmk_fuel_mox);
|
||||
RecipesCommon.addRBMKRod(ModItems.billet_plutonium_fuel, ModItems.rbmk_fuel_lep);
|
||||
@ -168,8 +170,10 @@ public class RodRecipes {
|
||||
RecipesCommon.addRBMKRod(ModItems.billet_pu241, ModItems.rbmk_fuel_hep241);
|
||||
RecipesCommon.addRBMKRod(ModItems.billet_americium_fuel, ModItems.rbmk_fuel_lea);
|
||||
RecipesCommon.addRBMKRod(ModItems.billet_am_mix, ModItems.rbmk_fuel_mea);
|
||||
RecipesCommon.addRBMKRod(ModItems.billet_am241, ModItems.rbmk_fuel_hea241);
|
||||
RecipesCommon.addRBMKRod(ModItems.billet_am242, ModItems.rbmk_fuel_hea242);
|
||||
RecipesCommon.addRBMKRod(ModItems.billet_neptunium_fuel, ModItems.rbmk_fuel_men);
|
||||
RecipesCommon.addRBMKRod(ModItems.billet_neptunium, ModItems.rbmk_fuel_hen);
|
||||
RecipesCommon.addRBMKRod(ModItems.billet_po210be, ModItems.rbmk_fuel_po210be);
|
||||
RecipesCommon.addRBMKRod(ModItems.billet_ra226be, ModItems.rbmk_fuel_ra226be);
|
||||
RecipesCommon.addRBMKRod(ModItems.billet_pu238be, ModItems.rbmk_fuel_pu238be);
|
||||
|
||||
@ -0,0 +1,61 @@
|
||||
package com.hbm.entity.missile;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.explosion.ExplosionLarge;
|
||||
import com.hbm.items.ModItems;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class EntityMissileVolcano extends EntityMissileBaseAdvanced {
|
||||
|
||||
public EntityMissileVolcano(World p_i1582_1_) {
|
||||
super(p_i1582_1_);
|
||||
}
|
||||
|
||||
public EntityMissileVolcano(World world, float x, float y, float z, int a, int b) {
|
||||
super(world, x, y, z, a, b);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onImpact() {
|
||||
|
||||
ExplosionLarge.explode(worldObj, posX, posY, posZ, 10.0F, true, true, true);
|
||||
|
||||
for(int x = -1; x <= 1; x++) {
|
||||
for(int y = -1; y <= 1; y++) {
|
||||
for(int z = -1; z <= 1; z++) {
|
||||
worldObj.setBlock((int)Math.floor(posX + x), (int)Math.floor(posY + y), (int)Math.floor(posZ + z), ModBlocks.volcanic_lava_block);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
worldObj.setBlock((int)Math.floor(posX), (int)Math.floor(posY), (int)Math.floor(posZ), ModBlocks.volcano_core);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ItemStack> getDebris() {
|
||||
List<ItemStack> list = new ArrayList<ItemStack>();
|
||||
|
||||
list.add(new ItemStack(ModItems.plate_titanium, 16));
|
||||
list.add(new ItemStack(ModItems.plate_steel, 20));
|
||||
list.add(new ItemStack(ModItems.plate_aluminium, 12));
|
||||
list.add(new ItemStack(ModItems.thruster_large, 1));
|
||||
list.add(new ItemStack(ModItems.circuit_targeting_tier4, 1));
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack getDebrisRareDrop() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public RadarTargetType getTargetType() {
|
||||
return RadarTargetType.MISSILE_TIER4;
|
||||
}
|
||||
}
|
||||
@ -1,63 +1,98 @@
|
||||
package com.hbm.entity.projectile;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.explosion.ExplosionNT;
|
||||
import com.hbm.explosion.ExplosionNT.ExAttrib;
|
||||
import com.hbm.lib.ModDamageSource;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.projectile.EntityThrowable;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.util.MovingObjectPosition;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class EntityShrapnel extends EntityThrowable {
|
||||
|
||||
public EntityShrapnel(World p_i1773_1_)
|
||||
{
|
||||
super(p_i1773_1_);
|
||||
this.isImmuneToFire = true;
|
||||
}
|
||||
public EntityShrapnel(World p_i1773_1_) {
|
||||
super(p_i1773_1_);
|
||||
this.isImmuneToFire = true;
|
||||
}
|
||||
|
||||
public EntityShrapnel(World p_i1774_1_, EntityLivingBase p_i1774_2_)
|
||||
{
|
||||
super(p_i1774_1_, p_i1774_2_);
|
||||
}
|
||||
public EntityShrapnel(World p_i1774_1_, EntityLivingBase p_i1774_2_) {
|
||||
super(p_i1774_1_, p_i1774_2_);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Override
|
||||
public void entityInit() {
|
||||
this.dataWatcher.addObject(16, Byte.valueOf((byte)0));
|
||||
}
|
||||
this.dataWatcher.addObject(16, Byte.valueOf((byte) 0));
|
||||
}
|
||||
|
||||
public EntityShrapnel(World p_i1775_1_, double p_i1775_2_, double p_i1775_4_, double p_i1775_6_)
|
||||
{
|
||||
super(p_i1775_1_, p_i1775_2_, p_i1775_4_, p_i1775_6_);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUpdate() {
|
||||
super.onUpdate();
|
||||
|
||||
if(worldObj.isRemote && this.dataWatcher.getWatchableObjectByte(16) == 1)
|
||||
worldObj.spawnParticle("flame", posX, posY, posZ, 0.0, 0.0, 0.0);
|
||||
}
|
||||
public EntityShrapnel(World p_i1775_1_, double p_i1775_2_, double p_i1775_4_, double p_i1775_6_) {
|
||||
super(p_i1775_1_, p_i1775_2_, p_i1775_4_, p_i1775_6_);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onImpact(MovingObjectPosition p_70184_1_)
|
||||
{
|
||||
if (p_70184_1_.entityHit != null)
|
||||
{
|
||||
byte b0 = 15;
|
||||
@Override
|
||||
public void onUpdate() {
|
||||
super.onUpdate();
|
||||
|
||||
p_70184_1_.entityHit.attackEntityFrom(ModDamageSource.shrapnel, b0);
|
||||
}
|
||||
if(worldObj.isRemote && this.dataWatcher.getWatchableObjectByte(16) == 1)
|
||||
worldObj.spawnParticle("flame", posX, posY, posZ, 0.0, 0.0, 0.0);
|
||||
}
|
||||
|
||||
if(this.ticksExisted > 5) {
|
||||
this.setDead();
|
||||
|
||||
for(int i = 0; i < 5; i++)
|
||||
worldObj.spawnParticle("lava", posX, posY, posZ, 0.0, 0.0, 0.0);
|
||||
|
||||
worldObj.playSoundEffect(posX, posY, posZ, "random.fizz", 1.0F, 1.0F);
|
||||
}
|
||||
}
|
||||
|
||||
public void setTrail(boolean b) {
|
||||
this.dataWatcher.updateObject(16, (byte)(b ? 1 : 0));
|
||||
}
|
||||
@Override
|
||||
protected void onImpact(MovingObjectPosition mop) {
|
||||
if(mop.entityHit != null) {
|
||||
byte b0 = 15;
|
||||
|
||||
mop.entityHit.attackEntityFrom(ModDamageSource.shrapnel, b0);
|
||||
}
|
||||
|
||||
if(this.ticksExisted > 5) {
|
||||
|
||||
if(!worldObj.isRemote)
|
||||
this.setDead();
|
||||
|
||||
if(this.dataWatcher.getWatchableObjectByte(16) == 2) {
|
||||
|
||||
if(!worldObj.isRemote) {
|
||||
if(motionY < -0.2D) {
|
||||
worldObj.setBlock(mop.blockX, mop.blockY + 1, mop.blockZ, ModBlocks.volcanic_lava_block);
|
||||
|
||||
for(int x = mop.blockX - 1; x <= mop.blockX + 1; x++) {
|
||||
for(int y = mop.blockY; y <= mop.blockY + 2; y++) {
|
||||
for(int z = mop.blockZ - 1; z <= mop.blockZ + 1; z++) {
|
||||
if(worldObj.getBlock(x, y, z) == Blocks.air)
|
||||
worldObj.setBlock(x, y, z, ModBlocks.gas_monoxide);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(motionY > 0) {
|
||||
ExplosionNT explosion = new ExplosionNT(worldObj, null, mop.blockX + 0.5, mop.blockY + 0.5, mop.blockZ + 0.5, 7);
|
||||
explosion.addAttrib(ExAttrib.NODROP);
|
||||
explosion.addAttrib(ExAttrib.LAVA_V);
|
||||
explosion.addAttrib(ExAttrib.NOSOUND);
|
||||
explosion.addAttrib(ExAttrib.ALLMOD);
|
||||
explosion.addAttrib(ExAttrib.NOHURT);
|
||||
explosion.explode();
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
for(int i = 0; i < 5; i++)
|
||||
worldObj.spawnParticle("lava", posX, posY, posZ, 0.0, 0.0, 0.0);
|
||||
}
|
||||
|
||||
worldObj.playSoundEffect(posX, posY, posZ, "random.fizz", 1.0F, 1.0F);
|
||||
}
|
||||
}
|
||||
|
||||
public void setTrail(boolean b) {
|
||||
this.dataWatcher.updateObject(16, (byte) (b ? 1 : 0));
|
||||
}
|
||||
|
||||
public void setVolcano(boolean b) {
|
||||
this.dataWatcher.updateObject(16, (byte) (b ? 2 : 0));
|
||||
}
|
||||
}
|
||||
|
||||
@ -100,7 +100,7 @@ public class ExplosionNT extends Explosion {
|
||||
f1 -= (f3 + 0.3F) * f2;
|
||||
}
|
||||
|
||||
if(f1 > 0.0F && (this.exploder == null || this.exploder.func_145774_a(this, this.worldObj, j1, k1, l1, block, f1))) {
|
||||
if(block != Blocks.air && f1 > 0.0F && (this.exploder == null || this.exploder.func_145774_a(this, this.worldObj, j1, k1, l1, block, f1))) {
|
||||
hashset.add(new ChunkPosition(j1, k1, l1));
|
||||
}
|
||||
|
||||
@ -249,7 +249,7 @@ public class ExplosionNT extends Explosion {
|
||||
}
|
||||
}
|
||||
|
||||
if(has(ExAttrib.FIRE) || has(ExAttrib.BALEFIRE) || has(ExAttrib.LAVA)) {
|
||||
if(has(ExAttrib.FIRE) || has(ExAttrib.BALEFIRE) || has(ExAttrib.LAVA) || has(ExAttrib.LAVA_V)) {
|
||||
iterator = this.affectedBlockPositions.iterator();
|
||||
|
||||
while(iterator.hasNext()) {
|
||||
@ -272,6 +272,8 @@ public class ExplosionNT extends Explosion {
|
||||
this.worldObj.setBlock(i, j, k, ModBlocks.balefire);
|
||||
else if(has(ExAttrib.LAVA))
|
||||
this.worldObj.setBlock(i, j, k, Blocks.flowing_lava);
|
||||
else if(has(ExAttrib.LAVA_V))
|
||||
this.worldObj.setBlock(i, j, k, ModBlocks.volcanic_lava_block);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -297,6 +299,7 @@ public class ExplosionNT extends Explosion {
|
||||
DIGAMMA,
|
||||
DIGAMMA_CIRCUIT,
|
||||
LAVA, //again the same thing but lava
|
||||
LAVA_V, //again the same thing but volcaniclava
|
||||
ALLMOD, //block placer attributes like fire are applied for all destroyed blocks
|
||||
ALLDROP, //miner TNT!
|
||||
NODROP, //the opposite
|
||||
|
||||
@ -121,6 +121,11 @@ public class ExplosionThermo {
|
||||
public static void freezeDest(World world, int x, int y, int z) {
|
||||
Block block = world.getBlock(x, y, z);
|
||||
|
||||
if(block == ModBlocks.volcanic_lava_block)
|
||||
{
|
||||
world.setBlock(x, y, z, Blocks.cobblestone);
|
||||
}
|
||||
|
||||
if(block == Blocks.grass)
|
||||
{
|
||||
world.setBlock(x, y, z, ModBlocks.frozen_grass);
|
||||
|
||||
@ -220,7 +220,7 @@ public class Mark5Ausf2 implements IExplosionLogic {
|
||||
private void repopulate() {
|
||||
|
||||
boolean didYouDoLiterallyAnything = false;
|
||||
this.length += 5;
|
||||
this.length *= 2;
|
||||
|
||||
double bow = length * Math.PI;
|
||||
int bowCount = (int) Math.ceil(bow * getResolutionMult());
|
||||
|
||||
@ -310,6 +310,7 @@ public class Gun50BMGFactory {
|
||||
bullet.spread *= inaccuracy;
|
||||
bullet.dmgMin = 20;
|
||||
bullet.dmgMax = 25;
|
||||
bullet.style = bullet.STYLE_FLECHETTE;
|
||||
|
||||
return bullet;
|
||||
}
|
||||
@ -322,6 +323,7 @@ public class Gun50BMGFactory {
|
||||
bullet.spread *= inaccuracy;
|
||||
bullet.dmgMin = 50;
|
||||
bullet.dmgMax = 65;
|
||||
bullet.style = bullet.STYLE_FLECHETTE;
|
||||
|
||||
bullet.bHit = new IBulletHitBehavior() {
|
||||
|
||||
@ -348,6 +350,7 @@ public class Gun50BMGFactory {
|
||||
bullet.spread *= inaccuracy;
|
||||
bullet.dmgMin = 30;
|
||||
bullet.dmgMax = 40;
|
||||
bullet.style = bullet.STYLE_FLECHETTE;
|
||||
|
||||
bullet.bHit = new IBulletHitBehavior() {
|
||||
|
||||
|
||||
@ -378,6 +378,16 @@ public class GunEnergyFactory {
|
||||
data.setDouble("mY", bullet.motionY - 0.2 + bullet.worldObj.rand.nextGaussian() * 0.05);
|
||||
data.setDouble("mZ", bullet.motionZ + bullet.worldObj.rand.nextGaussian() * 0.05);
|
||||
MainRegistry.proxy.effectNT(data);
|
||||
} else {
|
||||
|
||||
int x = (int)Math.floor(bullet.posX);
|
||||
int y = (int)Math.floor(bullet.posY);
|
||||
int z = (int)Math.floor(bullet.posZ);
|
||||
|
||||
if(bullet.worldObj.getBlock(x, y, z) == ModBlocks.volcanic_lava_block && bullet.worldObj.getBlockMetadata(x, y, z) == 0) {
|
||||
bullet.worldObj.setBlock(x, y, z, Blocks.obsidian);
|
||||
bullet.setDead();
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@ -122,7 +122,8 @@ public class SmithingRecipeHandler extends TemplateRecipeHandler {
|
||||
|
||||
transferRects.add(new RecipeTransferRect(new Rectangle(56, 24, 18, 18), "ntmSmithing"));
|
||||
transferRects.add(new RecipeTransferRect(new Rectangle(92, 24, 18, 18), "ntmSmithing"));
|
||||
transferRectsGui.add(new RecipeTransferRect(new Rectangle(39, 60, 60, 50), "ntmSmithing"));
|
||||
transferRectsGui.add(new RecipeTransferRect(new Rectangle(56 + 9, 24 - 9, 18, 18), "ntmSmithing"));
|
||||
transferRectsGui.add(new RecipeTransferRect(new Rectangle(56 + 9 - 18 * 2, 24 - 9, 18, 18), "ntmSmithing"));
|
||||
guiGui.add(GUIAnvil.class);
|
||||
RecipeTransferRectHandler.registerRectsToGuis(getRecipeTransferRectGuis(), transferRects);
|
||||
RecipeTransferRectHandler.registerRectsToGuis(guiGui, transferRectsGui);
|
||||
@ -130,6 +131,7 @@ public class SmithingRecipeHandler extends TemplateRecipeHandler {
|
||||
|
||||
@Override
|
||||
public void drawExtras(int recipe) {
|
||||
loadTransferRects();
|
||||
|
||||
RecipeSet rec = (RecipeSet) this.arecipes.get(recipe);
|
||||
|
||||
|
||||
@ -242,6 +242,9 @@ public class OreDictManager {
|
||||
OreDictionary.registerOre("oreStarmetal", ModBlocks.ore_meteor_starmetal);
|
||||
OreDictionary.registerOre("oreAsbestos", ModBlocks.ore_asbestos);
|
||||
|
||||
OreDictionary.registerOre("oreSulfur", ModBlocks.basalt_sulfur);
|
||||
OreDictionary.registerOre("oreAsbestos", ModBlocks.basalt_asbestos);
|
||||
|
||||
OreDictionary.registerOre("blockThorium", ModBlocks.block_thorium);
|
||||
OreDictionary.registerOre("blockUranium", ModBlocks.block_uranium);
|
||||
OreDictionary.registerOre("blockTitanium", ModBlocks.block_titanium);
|
||||
|
||||
@ -94,13 +94,37 @@ public class SILEXRecipes {
|
||||
|
||||
// MEU //
|
||||
recipes.put(new ComparableStack(ModItems.rbmk_pellet_meu, 1, i), new SILEXRecipe(600, 100)
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_uranium_fuel), 90 - i * 20))
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 4 + 8 * i))
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 6 + 12 * i)) );
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_uranium_fuel), 90 - i * 12))
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 4 + 5 * i))
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 6 + 7 * i)) );
|
||||
|
||||
recipes.put(new ComparableStack(ModItems.rbmk_pellet_meu, 1, i + 5), new SILEXRecipe(600, 100)
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1))
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_uranium_fuel), 89 - i * 20))
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_uranium_fuel), 89 - i * 12))
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 4 + 5 * i))
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 6 + 7 * i)) );
|
||||
|
||||
// HEU233 //
|
||||
recipes.put(new ComparableStack(ModItems.rbmk_pellet_heu233, 1, i), new SILEXRecipe(600, 100)
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u233), 90 - i * 20))
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM233.ordinal()), 4 + 8 * i))
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM233.ordinal()), 6 + 12 * i)) );
|
||||
|
||||
recipes.put(new ComparableStack(ModItems.rbmk_pellet_heu233, 1, i + 5), new SILEXRecipe(600, 100)
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1))
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u233), 89 - i * 20))
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM233.ordinal()), 4 + 8 * i))
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM233.ordinal()), 6 + 12 * i)) );
|
||||
|
||||
// MEU //
|
||||
recipes.put(new ComparableStack(ModItems.rbmk_pellet_heu235, 1, i), new SILEXRecipe(600, 100)
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u235), 90 - i * 20))
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 4 + 8 * i))
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 6 + 12 * i)) );
|
||||
|
||||
recipes.put(new ComparableStack(ModItems.rbmk_pellet_heu235, 1, i + 5), new SILEXRecipe(600, 100)
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1))
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u235), 89 - i * 20))
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 4 + 8 * i))
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 6 + 12 * i)) );
|
||||
|
||||
@ -209,14 +233,14 @@ public class SILEXRecipes {
|
||||
.addOut(new WeightedRandomObject(new ItemStack(Items.gold_nugget), 5 + 10 * i)) );
|
||||
|
||||
// BALEFIRE //
|
||||
recipes.put(new ComparableStack(ModItems.rbmk_pellet_leaus, 1, i), new SILEXRecipe(400, 100)
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_australium_greater), 90 - i * 20))
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_mercury), 10 + 20 * i)) );
|
||||
recipes.put(new ComparableStack(ModItems.rbmk_pellet_balefire, 1, i), new SILEXRecipe(400, 100)
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_balefire), 90 - i * 20))
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 10 + 20 * i)) );
|
||||
|
||||
recipes.put(new ComparableStack(ModItems.rbmk_pellet_leaus, 1, i + 5), new SILEXRecipe(400, 100)
|
||||
recipes.put(new ComparableStack(ModItems.rbmk_pellet_balefire, 1, i + 5), new SILEXRecipe(400, 100)
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1))
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_australium_greater), 89 - i * 20))
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_mercury), 10 + 20 * i)) );
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_balefire), 89 - i * 20))
|
||||
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 10 + 20 * i)) );
|
||||
|
||||
// FLASHGOLD //
|
||||
recipes.put(new ComparableStack(ModItems.rbmk_pellet_balefire_gold, 1, i), new SILEXRecipe(600, 100)
|
||||
|
||||
@ -979,8 +979,10 @@ public class ModItems {
|
||||
public static ItemRBMKRod rbmk_fuel_hep241;
|
||||
public static ItemRBMKRod rbmk_fuel_lea;
|
||||
public static ItemRBMKRod rbmk_fuel_mea;
|
||||
public static ItemRBMKRod rbmk_fuel_hea241;
|
||||
public static ItemRBMKRod rbmk_fuel_hea242;
|
||||
public static ItemRBMKRod rbmk_fuel_men;
|
||||
public static ItemRBMKRod rbmk_fuel_hen;
|
||||
public static ItemRBMKRod rbmk_fuel_mox;
|
||||
public static ItemRBMKRod rbmk_fuel_les;
|
||||
public static ItemRBMKRod rbmk_fuel_mes;
|
||||
@ -1004,8 +1006,10 @@ public class ModItems {
|
||||
public static ItemRBMKPellet rbmk_pellet_hep241;
|
||||
public static ItemRBMKPellet rbmk_pellet_lea;
|
||||
public static ItemRBMKPellet rbmk_pellet_mea;
|
||||
public static ItemRBMKPellet rbmk_pellet_hea241;
|
||||
public static ItemRBMKPellet rbmk_pellet_hea242;
|
||||
public static ItemRBMKPellet rbmk_pellet_men;
|
||||
public static ItemRBMKPellet rbmk_pellet_hen;
|
||||
public static ItemRBMKPellet rbmk_pellet_mox;
|
||||
public static ItemRBMKPellet rbmk_pellet_les;
|
||||
public static ItemRBMKPellet rbmk_pellet_mes;
|
||||
@ -1159,6 +1163,7 @@ public class ModItems {
|
||||
public static Item missile_drill;
|
||||
public static Item missile_nuclear;
|
||||
public static Item missile_nuclear_cluster;
|
||||
public static Item missile_volcano;
|
||||
public static Item missile_endo;
|
||||
public static Item missile_exo;
|
||||
public static Item missile_doomsday;
|
||||
@ -3340,13 +3345,15 @@ public class ModItems {
|
||||
rbmk_pellet_heu235 = (ItemRBMKPellet) new ItemRBMKPellet("Highly Enriched Uranium-235").addRadiation(ItemHazard.uf * ItemHazard.billet).toItem().setUnlocalizedName("rbmk_pellet_heu235").setTextureName(RefStrings.MODID + ":rbmk_pellet_heu235");
|
||||
rbmk_pellet_thmeu = (ItemRBMKPellet) new ItemRBMKPellet("Thorium with MEU Driver Fuel").addRadiation(ItemHazard.thf * ItemHazard.billet).toItem().setUnlocalizedName("rbmk_pellet_thmeu").setTextureName(RefStrings.MODID + ":rbmk_pellet_thmeu");
|
||||
rbmk_pellet_lep = (ItemRBMKPellet) new ItemRBMKPellet("Low Enriched Plutonium-239").addRadiation(ItemHazard.puf * ItemHazard.billet).toItem().setUnlocalizedName("rbmk_pellet_lep").setTextureName(RefStrings.MODID + ":rbmk_pellet_lep");
|
||||
rbmk_pellet_mep = (ItemRBMKPellet) new ItemRBMKPellet("Medium Enriched Plutonium-239").addRadiation(ItemHazard.purg * ItemHazard.billet).toItem().setUnlocalizedName("rbmk_pellet_mep").setTextureName(RefStrings.MODID + ":rbmk_pellet_mep");
|
||||
rbmk_pellet_mep = (ItemRBMKPellet) new ItemRBMKPellet("Medium Enriched Plutonium-239").addRadiation(ItemHazard.npf * ItemHazard.billet).toItem().setUnlocalizedName("rbmk_pellet_mep").setTextureName(RefStrings.MODID + ":rbmk_pellet_mep");
|
||||
rbmk_pellet_hep239 = (ItemRBMKPellet) new ItemRBMKPellet("Highly Enriched Plutonium-239").addRadiation(ItemHazard.pu239 * ItemHazard.billet).toItem().setUnlocalizedName("rbmk_pellet_hep239").setTextureName(RefStrings.MODID + ":rbmk_pellet_hep239");
|
||||
rbmk_pellet_hep241 = (ItemRBMKPellet) new ItemRBMKPellet("Highly Enriched Plutonium-241").addRadiation(ItemHazard.pu241 * ItemHazard.billet).toItem().setUnlocalizedName("rbmk_pellet_hep241").setTextureName(RefStrings.MODID + ":rbmk_pellet_hep241");
|
||||
rbmk_pellet_lea = (ItemRBMKPellet) new ItemRBMKPellet("Low Enriched Americium-242").addRadiation(ItemHazard.amf * ItemHazard.billet).toItem().setUnlocalizedName("rbmk_pellet_lea").setTextureName(RefStrings.MODID + ":rbmk_pellet_lea");
|
||||
rbmk_pellet_mea = (ItemRBMKPellet) new ItemRBMKPellet("Medium Enriched Americium-242").addRadiation(ItemHazard.amrg * ItemHazard.billet).toItem().setUnlocalizedName("rbmk_pellet_mea").setTextureName(RefStrings.MODID + ":rbmk_pellet_mea");
|
||||
rbmk_pellet_hea241 = (ItemRBMKPellet) new ItemRBMKPellet("Highly Enriched Americium-241").addRadiation(ItemHazard.am241 * ItemHazard.billet).toItem().setUnlocalizedName("rbmk_pellet_hea241").setTextureName(RefStrings.MODID + ":rbmk_pellet_hea241");
|
||||
rbmk_pellet_hea242 = (ItemRBMKPellet) new ItemRBMKPellet("Highly Enriched Americium-242").addRadiation(ItemHazard.am242 * ItemHazard.billet).toItem().setUnlocalizedName("rbmk_pellet_hea242").setTextureName(RefStrings.MODID + ":rbmk_pellet_hea242");
|
||||
rbmk_pellet_men = (ItemRBMKPellet) new ItemRBMKPellet("Medium Enriched Neptunium-237").addRadiation(ItemHazard.npf * ItemHazard.billet).toItem().setUnlocalizedName("rbmk_pellet_men").setTextureName(RefStrings.MODID + ":rbmk_pellet_men");
|
||||
rbmk_pellet_hen = (ItemRBMKPellet) new ItemRBMKPellet("Highly Enriched Neptunium-237").addRadiation(ItemHazard.np237 * ItemHazard.billet).toItem().setUnlocalizedName("rbmk_pellet_hen").setTextureName(RefStrings.MODID + ":rbmk_pellet_hen");
|
||||
rbmk_pellet_mox = (ItemRBMKPellet) new ItemRBMKPellet("Mixed LEU & LEP Oxide").addRadiation(ItemHazard.mox * ItemHazard.billet).toItem().setUnlocalizedName("rbmk_pellet_mox").setTextureName(RefStrings.MODID + ":rbmk_pellet_mox");
|
||||
rbmk_pellet_les = (ItemRBMKPellet) new ItemRBMKPellet("Low Enriched Schrabidium-326").addRadiation(ItemHazard.saf * ItemHazard.billet).toItem().setUnlocalizedName("rbmk_pellet_les").setTextureName(RefStrings.MODID + ":rbmk_pellet_les");
|
||||
rbmk_pellet_mes = (ItemRBMKPellet) new ItemRBMKPellet("Medium Enriched Schrabidium-326").addRadiation(ItemHazard.saf * ItemHazard.billet).toItem().setUnlocalizedName("rbmk_pellet_mes").setTextureName(RefStrings.MODID + ":rbmk_pellet_mes");
|
||||
@ -3392,7 +3399,7 @@ public class ModItems {
|
||||
.setUnlocalizedName("rbmk_fuel_heu235").setTextureName(RefStrings.MODID + ":rbmk_fuel_heu235");
|
||||
rbmk_fuel_thmeu = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_thmeu)
|
||||
.setYield(100000000D)
|
||||
.setStats(10)
|
||||
.setStats(12)
|
||||
.setFunction(EnumBurnFunc.PLATEU)
|
||||
.setMeltingPoint(3350)
|
||||
.addRadiation(ItemHazard.thf * ItemHazard.rod_rbmk).toItem()
|
||||
@ -3444,6 +3451,15 @@ public class ModItems {
|
||||
.setMeltingPoint(2386)
|
||||
.addRadiation(ItemHazard.amrg * ItemHazard.rod_rbmk).toItem()
|
||||
.setUnlocalizedName("rbmk_fuel_mea").setTextureName(RefStrings.MODID + ":rbmk_fuel_mea");
|
||||
rbmk_fuel_hea241 = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_hea241)
|
||||
.setYield(100000000D)
|
||||
.setStats(65, 15)
|
||||
.setFunction(EnumBurnFunc.SQUARE_ROOT)
|
||||
.setHeat(1.75D)
|
||||
.setMeltingPoint(2386)
|
||||
.setNeutronTypes(NType.FAST, NType.FAST)
|
||||
.addRadiation(ItemHazard.am241 * ItemHazard.rod_rbmk).toItem()
|
||||
.setUnlocalizedName("rbmk_fuel_hea241").setTextureName(RefStrings.MODID + ":rbmk_fuel_hea241");
|
||||
rbmk_fuel_hea242 = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_hea242)
|
||||
.setYield(100000000D)
|
||||
.setStats(45)
|
||||
@ -3460,6 +3476,14 @@ public class ModItems {
|
||||
.setNeutronTypes(NType.FAST, NType.FAST)
|
||||
.addRadiation(ItemHazard.npf * ItemHazard.rod_rbmk).toItem()
|
||||
.setUnlocalizedName("rbmk_fuel_men").setTextureName(RefStrings.MODID + ":rbmk_fuel_men");
|
||||
rbmk_fuel_hen = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_hen)
|
||||
.setYield(100000000D)
|
||||
.setStats(40)
|
||||
.setFunction(EnumBurnFunc.SQUARE_ROOT)
|
||||
.setMeltingPoint(2800)
|
||||
.setNeutronTypes(NType.FAST, NType.FAST)
|
||||
.addRadiation(ItemHazard.np237 * ItemHazard.rod_rbmk).toItem()
|
||||
.setUnlocalizedName("rbmk_fuel_hen").setTextureName(RefStrings.MODID + ":rbmk_fuel_hen");
|
||||
rbmk_fuel_mox = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_mox)
|
||||
.setYield(100000000D)
|
||||
.setStats(40)
|
||||
@ -3517,7 +3541,7 @@ public class ModItems {
|
||||
.setYield(100000000D)
|
||||
.setStats(0D, 20)
|
||||
.setFunction(EnumBurnFunc.PASSIVE)
|
||||
.setHeat(0.05D)
|
||||
.setHeat(0.035D)
|
||||
.setDiffusion(0.5D)
|
||||
.setMeltingPoint(700)
|
||||
.addRadiation(ItemHazard.rabe * ItemHazard.rod_rbmk).toItem()
|
||||
@ -3647,6 +3671,7 @@ public class ModItems {
|
||||
missile_drill = new Item().setUnlocalizedName("missile_drill").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_drill");
|
||||
missile_nuclear = new Item().setUnlocalizedName("missile_nuclear").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_nuclear");
|
||||
missile_nuclear_cluster = new Item().setUnlocalizedName("missile_nuclear_cluster").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_nuclear_cluster");
|
||||
missile_volcano = new Item().setUnlocalizedName("missile_volcano").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_volcano");
|
||||
missile_endo = new Item().setUnlocalizedName("missile_endo").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_endo");
|
||||
missile_exo = new Item().setUnlocalizedName("missile_exo").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_exo");
|
||||
missile_doomsday = new Item().setUnlocalizedName("missile_doomsday").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_doomsday");
|
||||
@ -6303,8 +6328,10 @@ public class ModItems {
|
||||
GameRegistry.registerItem(rbmk_fuel_hep241, rbmk_fuel_hep241.getUnlocalizedName());
|
||||
GameRegistry.registerItem(rbmk_fuel_lea, rbmk_fuel_lea.getUnlocalizedName());
|
||||
GameRegistry.registerItem(rbmk_fuel_mea, rbmk_fuel_mea.getUnlocalizedName());
|
||||
GameRegistry.registerItem(rbmk_fuel_hea241, rbmk_fuel_hea241.getUnlocalizedName());
|
||||
GameRegistry.registerItem(rbmk_fuel_hea242, rbmk_fuel_hea242.getUnlocalizedName());
|
||||
GameRegistry.registerItem(rbmk_fuel_men, rbmk_fuel_men.getUnlocalizedName());
|
||||
GameRegistry.registerItem(rbmk_fuel_hen, rbmk_fuel_hen.getUnlocalizedName());
|
||||
GameRegistry.registerItem(rbmk_fuel_mox, rbmk_fuel_mox.getUnlocalizedName());
|
||||
GameRegistry.registerItem(rbmk_fuel_les, rbmk_fuel_les.getUnlocalizedName());
|
||||
GameRegistry.registerItem(rbmk_fuel_mes, rbmk_fuel_mes.getUnlocalizedName());
|
||||
@ -6329,8 +6356,10 @@ public class ModItems {
|
||||
GameRegistry.registerItem(rbmk_pellet_hep241, rbmk_pellet_hep241.getUnlocalizedName());
|
||||
GameRegistry.registerItem(rbmk_pellet_lea, rbmk_pellet_lea.getUnlocalizedName());
|
||||
GameRegistry.registerItem(rbmk_pellet_mea, rbmk_pellet_mea.getUnlocalizedName());
|
||||
GameRegistry.registerItem(rbmk_pellet_hea241, rbmk_pellet_hea241.getUnlocalizedName());
|
||||
GameRegistry.registerItem(rbmk_pellet_hea242, rbmk_pellet_hea242.getUnlocalizedName());
|
||||
GameRegistry.registerItem(rbmk_pellet_men, rbmk_pellet_men.getUnlocalizedName());
|
||||
GameRegistry.registerItem(rbmk_pellet_hen, rbmk_pellet_hen.getUnlocalizedName());
|
||||
GameRegistry.registerItem(rbmk_pellet_mox, rbmk_pellet_mox.getUnlocalizedName());
|
||||
GameRegistry.registerItem(rbmk_pellet_les, rbmk_pellet_les.getUnlocalizedName());
|
||||
GameRegistry.registerItem(rbmk_pellet_mes, rbmk_pellet_mes.getUnlocalizedName());
|
||||
@ -6424,6 +6453,7 @@ public class ModItems {
|
||||
GameRegistry.registerItem(missile_drill, missile_drill.getUnlocalizedName());
|
||||
GameRegistry.registerItem(missile_nuclear, missile_nuclear.getUnlocalizedName());
|
||||
GameRegistry.registerItem(missile_nuclear_cluster, missile_nuclear_cluster.getUnlocalizedName());
|
||||
GameRegistry.registerItem(missile_volcano, missile_volcano.getUnlocalizedName());
|
||||
GameRegistry.registerItem(missile_endo, missile_endo.getUnlocalizedName());
|
||||
GameRegistry.registerItem(missile_exo, missile_exo.getUnlocalizedName());
|
||||
GameRegistry.registerItem(missile_doomsday, missile_doomsday.getUnlocalizedName());
|
||||
|
||||
@ -236,7 +236,7 @@ public class ItemRBMKRod extends Item implements IItemHazard {
|
||||
case PASSIVE: return selfRate * enrichment;
|
||||
case LOG_TEN: return Math.log10(flux + 1) * 0.5D * reactivity;
|
||||
case PLATEU: return (1 - Math.pow(Math.E, -flux / 25D)) * reactivity;
|
||||
case ARCH: return Math.max(flux - (flux * flux / 100000D) * reactivity, 0D);
|
||||
case ARCH: return Math.max(flux - (flux * flux / 100000D) / 100D * reactivity, 0D);
|
||||
case SIGMOID: return reactivity / (1 + Math.pow(Math.E, -(flux - 50D) / 10D));
|
||||
case SQUARE_ROOT: return Math.sqrt(flux) * reactivity / 10D;
|
||||
case LINEAR: return flux / 100D * reactivity;
|
||||
@ -257,7 +257,7 @@ public class ItemRBMKRod extends Item implements IItemHazard {
|
||||
case PASSIVE: return EnumChatFormatting.RED + "" + selfRate;
|
||||
case LOG_TEN: return "log10(x + 1" + (selfRate > 0 ? (EnumChatFormatting.RED + " + " + selfRate) : "") + EnumChatFormatting.WHITE + ") * 0.5 * " + reactivity;
|
||||
case PLATEU: return "(1 - e^-" + x + " / 25)) * " + reactivity;
|
||||
case ARCH: return "(" + x + " - " + x + "² / 100000) * " + reactivity + " [0;∞]";
|
||||
case ARCH: return "(" + x + " - " + x + "² / 100000) / 100 * " + reactivity + " [0;∞]";
|
||||
case SIGMOID: return reactivity + " / (1 + e^(-(" + x + " - 50) / 10)";
|
||||
case SQUARE_ROOT: return "sqrt(" + x + ") * " + reactivity + " / 10";
|
||||
case LINEAR: return x + " / 100 * " + reactivity;
|
||||
|
||||
@ -473,6 +473,7 @@ public class ClientProxy extends ServerProxy {
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntityMissileDrill.class, new RenderMissileHuge());
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntityMissileNuclear.class, new RenderMissileNuclear());
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntityMissileMirv.class, new RenderMissileMirv());
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntityMissileVolcano.class, new RenderMissileNuclear());
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntityMIRV.class, new RenderMirv());
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntityMissileDoomsday.class, new RenderMissileDoomsday());
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntityCarrier.class, new RenderCarrierMissile());
|
||||
@ -916,6 +917,17 @@ public class ClientProxy extends ServerProxy {
|
||||
fx = new net.minecraft.client.particle.EntitySmokeFX(world, x, y, z, mX, mY, mZ);
|
||||
}
|
||||
|
||||
if("volcano".equals(data.getString("mode"))) {
|
||||
fx = new net.minecraft.client.particle.EntitySmokeFX(world, x, y, z, mX, mY, mZ);
|
||||
float scale = 100;
|
||||
ReflectionHelper.setPrivateValue(net.minecraft.client.particle.EntitySmokeFX.class, (net.minecraft.client.particle.EntitySmokeFX)fx, scale, "smokeParticleScale", "field_70587_a");
|
||||
ReflectionHelper.setPrivateValue(EntityFX.class, fx, 200 + rand.nextInt(50), "particleMaxAge", "field_70547_e");
|
||||
fx.noClip = true;
|
||||
fx.motionY = 2.5 + rand.nextDouble();
|
||||
fx.motionX = rand.nextGaussian() * 0.2;
|
||||
fx.motionZ = rand.nextGaussian() * 0.2;
|
||||
}
|
||||
|
||||
if("cloud".equals(data.getString("mode"))) {
|
||||
fx = new net.minecraft.client.particle.EntityCloudFX(world, x, y, z, mX, mY, mZ);
|
||||
|
||||
|
||||
@ -650,6 +650,7 @@ public class MainRegistry {
|
||||
EntityRegistry.registerModEntity(EntityNukeExplosionNT.class, "entity_ntm_explosion_nt", 156, this, 1000, 1, true);
|
||||
EntityRegistry.registerModEntity(EntityQuasar.class, "entity_digamma_quasar", 157, this, 250, 1, true);
|
||||
EntityRegistry.registerModEntity(EntitySpear.class, "entity_digamma_spear", 158, this, 1000, 1, true);
|
||||
EntityRegistry.registerModEntity(EntityMissileVolcano.class, "entity_missile_volcano", 159, this, 1000, 1, true);
|
||||
|
||||
EntityRegistry.registerGlobalEntityID(EntityNuclearCreeper.class, "entity_mob_nuclear_creeper", EntityRegistry.findGlobalUniqueEntityId(), 0x204131, 0x75CE00);
|
||||
EntityRegistry.registerGlobalEntityID(EntityTaintedCreeper.class, "entity_mob_tainted_creeper", EntityRegistry.findGlobalUniqueEntityId(), 0x813b9b, 0xd71fdd);
|
||||
|
||||
@ -824,6 +824,7 @@ public class ResourceManager {
|
||||
public static final ResourceLocation missileHuge_BU_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileHuge_BU.png");
|
||||
public static final ResourceLocation missileNuclear_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileNeon.png");
|
||||
public static final ResourceLocation missileMIRV_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileNeonH.png");
|
||||
public static final ResourceLocation missileVolcano_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileNeonV.png");
|
||||
public static final ResourceLocation missileEndo_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileEndo.png");
|
||||
public static final ResourceLocation missileExo_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileExo.png");
|
||||
public static final ResourceLocation missileDoomsday_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileDoomsday.png");
|
||||
|
||||
@ -80,6 +80,8 @@ public class TEMissilePacket implements IMessage {
|
||||
type = 24;
|
||||
if(stack.getItem() == ModItems.missile_emp_strong)
|
||||
type = 25;
|
||||
if(stack.getItem() == ModItems.missile_volcano)
|
||||
type = 26;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -18,16 +18,20 @@ public class RenderShrapnel extends Render {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void doRender(Entity rocket, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_,
|
||||
float p_76986_9_) {
|
||||
public void doRender(Entity rocket, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) {
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_);
|
||||
GL11.glScalef(1.0F, 1.0F, 1.0F);
|
||||
GL11.glRotatef(180, 1, 0, 0);
|
||||
GL11.glRotatef((rocket.ticksExisted % 360) * 10, 1, 1, 1);
|
||||
GL11.glRotatef((rocket.ticksExisted % 360) * 10 + p_76986_9_, 1, 1, 1);
|
||||
|
||||
bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/entity/shrapnel.png"));
|
||||
|
||||
boolean scale = rocket.getDataWatcher().getWatchableObjectByte(16) == 2;
|
||||
|
||||
if(scale)
|
||||
GL11.glScaled(3, 3, 3);
|
||||
|
||||
mine.renderAll(0.0625F);
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
@ -2,6 +2,7 @@ package com.hbm.render.entity.rocket;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.entity.missile.EntityMissileVolcano;
|
||||
import com.hbm.main.ResourceManager;
|
||||
|
||||
import net.minecraft.client.renderer.entity.Render;
|
||||
@ -13,15 +14,19 @@ public class RenderMissileNuclear extends Render {
|
||||
public RenderMissileNuclear() { }
|
||||
|
||||
@Override
|
||||
public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) {
|
||||
public void doRender(Entity missile, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) {
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_);
|
||||
GL11.glRotatef(p_76986_1_.prevRotationYaw + (p_76986_1_.rotationYaw - p_76986_1_.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F);
|
||||
GL11.glRotatef(p_76986_1_.prevRotationPitch + (p_76986_1_.rotationPitch - p_76986_1_.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F);
|
||||
|
||||
bindTexture(ResourceManager.missileNuclear_tex);
|
||||
ResourceManager.missileNuclear.renderAll();
|
||||
GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_);
|
||||
GL11.glRotatef(missile.prevRotationYaw + (missile.rotationYaw - missile.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F);
|
||||
GL11.glRotatef(missile.prevRotationPitch + (missile.rotationPitch - missile.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F);
|
||||
|
||||
if(missile instanceof EntityMissileVolcano)
|
||||
bindTexture(ResourceManager.missileVolcano_tex);
|
||||
else
|
||||
bindTexture(ResourceManager.missileNuclear_tex);
|
||||
|
||||
ResourceManager.missileNuclear.renderAll();
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
|
||||
@ -191,6 +191,12 @@ public class RenderLaunchPadTier1 extends TileEntitySpecialRenderer {
|
||||
bindTexture(ResourceManager.missileStrong_EMP_tex);
|
||||
ResourceManager.missileStrong.renderAll();
|
||||
}
|
||||
if(state == 26)
|
||||
{
|
||||
GL11.glScalef(1.5F, 1.5F, 1.5F);
|
||||
bindTexture(ResourceManager.missileVolcano_tex);
|
||||
ResourceManager.missileNuclear.renderAll();
|
||||
}
|
||||
|
||||
GL11.glEnable(GL11.GL_CULL_FACE);
|
||||
|
||||
|
||||
@ -2562,6 +2562,13 @@ tile.barrel_plastic.name=Sicheres Fass™
|
||||
tile.barrel_steel.name=Stahlfass
|
||||
tile.barrel_tcalloy.name=Technetiumstahlfass
|
||||
tile.barricade.name=Sandsäcke
|
||||
tile.basalt.name=Basalt
|
||||
tile.basalt_asbestos.name=Asbestreicher Basalt
|
||||
tile.basalt_brick.name=Basaltziegel
|
||||
tile.basalt_polished.name=Polierter Basalt
|
||||
tile.basalt_smooth.name=Glatter Basalt
|
||||
tile.basalt_sulfur.name=Schwefelreicher Basalt
|
||||
tile.basalt_tiles.name=Basaltfliesen
|
||||
tile.blast_door.name=Abschluss-Sprengtür
|
||||
tile.block_actinium.name=Actiniumblock
|
||||
tile.block_advanced_alloy.name=Fortgeschrittener Legierungsblock
|
||||
|
||||
@ -2630,6 +2630,13 @@ tile.barrel_plastic.name=Safe Barrel™
|
||||
tile.barrel_steel.name=Steel Barrel
|
||||
tile.barrel_tcalloy.name=Technetium Steel Barrel
|
||||
tile.barricade.name=Sand Bags
|
||||
tile.basalt.name=Basalt
|
||||
tile.basalt_asbestos.name=Asbestos-Rich Basalt
|
||||
tile.basalt_brick.name=Basalt Bricks
|
||||
tile.basalt_polished.name=Polished Basalt
|
||||
tile.basalt_smooth.name=Smooth Basalt
|
||||
tile.basalt_sulfur.name=Sulfur-Rich Basalt
|
||||
tile.basalt_tiles.name=Basalt Tiles
|
||||
tile.blast_door.name=Sliding Blast Door
|
||||
tile.block_actinium.name=Block of Actinium
|
||||
tile.block_advanced_alloy.name=Block of Advanced Alloy
|
||||
|
||||
BIN
src/main/resources/assets/hbm/textures/blocks/basalt.png
Normal file
|
After Width: | Height: | Size: 893 B |
|
After Width: | Height: | Size: 929 B |
BIN
src/main/resources/assets/hbm/textures/blocks/basalt_brick.png
Normal file
|
After Width: | Height: | Size: 556 B |
BIN
src/main/resources/assets/hbm/textures/blocks/basalt_overlay.png
Normal file
|
After Width: | Height: | Size: 947 B |
|
After Width: | Height: | Size: 730 B |
BIN
src/main/resources/assets/hbm/textures/blocks/basalt_smooth.png
Normal file
|
After Width: | Height: | Size: 362 B |
BIN
src/main/resources/assets/hbm/textures/blocks/basalt_sulfur.png
Normal file
|
After Width: | Height: | Size: 924 B |
BIN
src/main/resources/assets/hbm/textures/blocks/basalt_tiles.png
Normal file
|
After Width: | Height: | Size: 298 B |
|
After Width: | Height: | Size: 809 B |
|
After Width: | Height: | Size: 780 B |
|
After Width: | Height: | Size: 445 B |
BIN
src/main/resources/assets/hbm/textures/blocks/volcanic_lava_flowing.png
Executable file
|
After Width: | Height: | Size: 9.9 KiB |
@ -0,0 +1,5 @@
|
||||
{
|
||||
"animation": {
|
||||
"frametime": 3
|
||||
}
|
||||
}
|
||||
BIN
src/main/resources/assets/hbm/textures/blocks/volcanic_lava_still.png
Executable file
|
After Width: | Height: | Size: 10 KiB |
45
src/main/resources/assets/hbm/textures/blocks/volcanic_lava_still.png.mcmeta
Executable file
@ -0,0 +1,45 @@
|
||||
{
|
||||
"animation": {
|
||||
"frametime": 2,
|
||||
"frames": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4,
|
||||
5,
|
||||
6,
|
||||
7,
|
||||
8,
|
||||
9,
|
||||
10,
|
||||
11,
|
||||
12,
|
||||
13,
|
||||
14,
|
||||
15,
|
||||
16,
|
||||
17,
|
||||
18,
|
||||
19,
|
||||
18,
|
||||
17,
|
||||
16,
|
||||
15,
|
||||
14,
|
||||
13,
|
||||
12,
|
||||
11,
|
||||
10,
|
||||
9,
|
||||
8,
|
||||
7,
|
||||
6,
|
||||
5,
|
||||
4,
|
||||
3,
|
||||
2,
|
||||
1
|
||||
]
|
||||
}
|
||||
}
|
||||
BIN
src/main/resources/assets/hbm/textures/blocks/volcano_core.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
@ -0,0 +1,5 @@
|
||||
{
|
||||
"animation": {
|
||||
"frametime": 4
|
||||
}
|
||||
}
|
||||
BIN
src/main/resources/assets/hbm/textures/items/missile_volcano.png
Normal file
|
After Width: | Height: | Size: 295 B |
|
After Width: | Height: | Size: 585 B |
BIN
src/main/resources/assets/hbm/textures/items/rbmk_fuel_hen.png
Normal file
|
After Width: | Height: | Size: 531 B |
|
After Width: | Height: | Size: 318 B |
BIN
src/main/resources/assets/hbm/textures/items/rbmk_pellet_hen.png
Normal file
|
After Width: | Height: | Size: 279 B |
|
Before Width: | Height: | Size: 264 B After Width: | Height: | Size: 267 B |
BIN
src/main/resources/assets/hbm/textures/items/warhead_volcano.png
Normal file
|
After Width: | Height: | Size: 299 B |
BIN
src/main/resources/assets/hbm/textures/models/missileNeonV.png
Normal file
|
After Width: | Height: | Size: 9.0 KiB |