volcanoes!

This commit is contained in:
Bob 2021-07-29 20:38:46 +02:00
parent 41b980a26a
commit c626f58582
55 changed files with 647 additions and 106 deletions

View File

@ -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());

View 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));
}
}
}

View File

@ -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);

View File

@ -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) {

View 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;
}
}

View 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;
}
}

View File

@ -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) {

View File

@ -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;
}

View File

@ -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);

View File

@ -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;
}
}

View File

@ -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));
}
}

View File

@ -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

View File

@ -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);

View File

@ -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());

View File

@ -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() {

View File

@ -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();
}
}
}
};

View File

@ -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);

View File

@ -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);

View File

@ -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)

View File

@ -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());

View File

@ -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;

View File

@ -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);

View File

@ -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);

View File

@ -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");

View File

@ -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;
}
}

View File

@ -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();
}

View File

@ -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();
}

View File

@ -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);

View File

@ -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

View File

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 893 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 929 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 556 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 947 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 730 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 362 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 924 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 298 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 809 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 780 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 445 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

View File

@ -0,0 +1,5 @@
{
"animation": {
"frametime": 3
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

View 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
]
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -0,0 +1,5 @@
{
"animation": {
"frametime": 4
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 295 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 585 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 531 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 318 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 279 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 264 B

After

Width:  |  Height:  |  Size: 267 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 299 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB