From 4a3b6e602652ff17dceddb293c108e5c86bf4f8c Mon Sep 17 00:00:00 2001 From: Bob Date: Thu, 25 Mar 2021 22:49:04 +0100 Subject: [PATCH] custom missile turbines, more ItemHazard improvements, updated to JDK1.8 --- build.gradle | 6 + src/main/java/com/hbm/blocks/ModBlocks.java | 135 +-- .../com/hbm/blocks/bomb/NukeBalefire.java | 12 +- .../com/hbm/blocks/generic/BlockHazard.java | 66 ++ .../blocks/generic/BlockHazardFalling.java | 66 ++ .../hbm/blocks/generic/BlockRadioactive.java | 29 - .../blocks/generic/BlockRotatablePillar.java | 16 +- .../entity/missile/EntityMissileCustom.java | 350 ++++--- .../hbm/handler/BulletConfigSyncingUtil.java | 4 + .../com/hbm/handler/BulletConfiguration.java | 1 + .../hbm/handler/guncfg/GunEnergyFactory.java | 17 + .../java/com/hbm/interfaces/IItemHazard.java | 1 - src/main/java/com/hbm/items/ModItems.java | 37 +- .../com/hbm/items/block/ItemBlockLore.java | 14 +- .../hbm/items/block/ItemBlockSchrabidium.java | 17 + .../com/hbm/items/special/ItemCustomLore.java | 8 + .../com/hbm/items/special/ItemDemonCore.java | 4 - .../com/hbm/items/special/ItemDigamma.java | 2 + .../com/hbm/items/special/ItemHazard.java | 15 +- .../com/hbm/items/weapon/ItemMissile.java | 5 +- src/main/java/com/hbm/main/ClientProxy.java | 9 +- .../java/com/hbm/main/ResourceManager.java | 2 + .../com/hbm/modules/ItemHazardModule.java | 5 +- .../entity/projectile/RenderBullet.java | 34 +- .../java/com/hbm/render/util/MissilePart.java | 1 + .../com/hbm/render/util/RenderItemStack.java | 16 - .../TileEntityMachinePlasmaHeater.java | 4 +- .../machine/TileEntityRadiobox.java | 7 +- .../java/com/hbm/util/ContaminationUtil.java | 4 +- src/main/resources/assets/hbm/lang/de_DE.lang | 1 + src/main/resources/assets/hbm/lang/en_US.lang | 1 + .../models/missile_parts/mp_w_15_turbine.obj | 927 ++++++++++++++++++ .../hbm/textures/items/bolt_dura_steel.png | Bin 220 -> 228 bytes .../hbm/textures/items/bolt_tungsten.png | Bin 197 -> 188 bytes .../warheads/mp_w_15_turbine.png | Bin 0 -> 655 bytes 35 files changed, 1466 insertions(+), 350 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/generic/BlockHazard.java create mode 100644 src/main/java/com/hbm/blocks/generic/BlockHazardFalling.java delete mode 100644 src/main/java/com/hbm/blocks/generic/BlockRadioactive.java create mode 100644 src/main/java/com/hbm/items/block/ItemBlockSchrabidium.java create mode 100644 src/main/resources/assets/hbm/models/missile_parts/mp_w_15_turbine.obj create mode 100644 src/main/resources/assets/hbm/textures/models/missile_parts/warheads/mp_w_15_turbine.png diff --git a/build.gradle b/build.gradle index d96474736..aa7b2dd0c 100644 --- a/build.gradle +++ b/build.gradle @@ -54,3 +54,9 @@ processResources exclude 'mcmod.info' } } + +apply plugin: 'java' +compileJava { + sourceCompatibility = '1.8' + targetCompatibility = '1.8' +} diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index c5bc3e9c0..a83dd389d 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -9,6 +9,7 @@ import com.hbm.blocks.test.*; import com.hbm.blocks.turret.*; import com.hbm.items.block.*; import com.hbm.items.bomb.*; +import com.hbm.items.special.ItemHazard; import com.hbm.items.special.ItemOreBlock; import com.hbm.lib.ModDamageSource; import com.hbm.lib.RefStrings; @@ -1013,22 +1014,22 @@ public class ModBlocks { ore_tikite = new BlockGeneric(Material.rock).setBlockName("ore_tikite").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_tikite_alt"); - block_uranium = new BlockOre(Material.iron, 0.1F, 1.5F).setBlockName("block_uranium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_uranium"); - block_u233 = new BlockOre(Material.iron, 10F, 100F).setBlockName("block_u233").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_u233"); - block_u235 = new BlockOre(Material.iron, 10F, 100F).setBlockName("block_u235").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_u235"); - block_u238 = new BlockOre(Material.iron, 0.1F, 1.5F).setBlockName("block_u238").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_u238"); - block_uranium_fuel = new BlockOre(Material.iron, 2.5F, 50F).setBlockName("block_uranium_fuel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_uranium_fuel"); - block_thorium = new BlockGeneric(Material.iron).setBlockName("block_thorium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_thorium"); - block_thorium_fuel = new BlockGeneric(Material.iron).setBlockName("block_thorium_fuel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_thorium_fuel"); - block_neptunium = new BlockOre(Material.iron, 10F, 100F).setBlockName("block_neptunium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_neptunium"); - block_polonium = new BlockOre(Material.iron, 30F, 300F).setBlockName("block_polonium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_polonium"); - block_mox_fuel = new BlockOre(Material.iron, 15F, 150F).setBlockName("block_mox_fuel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_mox_fuel"); - block_plutonium = new BlockOre(Material.iron, 15F, 150F).setBlockName("block_plutonium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_plutonium"); - block_pu238 = new BlockOre(Material.iron, 0.1F, 1.5F).setBlockName("block_pu238").setCreativeTab(MainRegistry.blockTab).setLightLevel(5F/15F).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_pu238"); - block_pu239 = new BlockOre(Material.iron, 15F, 150F).setBlockName("block_pu239").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_pu239"); - block_pu240 = new BlockOre(Material.iron, 10F, 100F).setBlockName("block_pu240").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_pu240"); - block_pu_mix = new BlockOre(Material.iron, 10F, 100F).setBlockName("block_pu_mix").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_pu_mix"); - block_plutonium_fuel = new BlockOre(Material.iron, 5F, 50F).setBlockName("block_plutonium_fuel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_plutonium_fuel"); + block_uranium = new BlockHazard().addRadiation(ItemHazard.u * ItemHazard.block).toBlock().setBlockName("block_uranium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_uranium"); + block_u233 = new BlockHazard().addRadiation(ItemHazard.u233 * ItemHazard.block).toBlock().setBlockName("block_u233").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_u233"); + block_u235 = new BlockHazard().addRadiation(ItemHazard.u235 * ItemHazard.block).toBlock().setBlockName("block_u235").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_u235"); + block_u238 = new BlockHazard().addRadiation(ItemHazard.u238 * ItemHazard.block).toBlock().setBlockName("block_u238").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_u238"); + block_uranium_fuel = new BlockHazard().addRadiation(ItemHazard.uf * ItemHazard.block).toBlock().setBlockName("block_uranium_fuel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_uranium_fuel"); + block_thorium = new BlockHazard().addRadiation(ItemHazard.th232 * ItemHazard.block).toBlock().setBlockName("block_thorium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_thorium"); + block_thorium_fuel = new BlockHazard().addRadiation(ItemHazard.thf * ItemHazard.block).toBlock().setBlockName("block_thorium_fuel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_thorium_fuel"); + block_neptunium = new BlockHazard().addRadiation(ItemHazard.np237 * ItemHazard.block).toBlock().setBlockName("block_neptunium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_neptunium"); + block_polonium = new BlockHazard().addRadiation(ItemHazard.po210 * ItemHazard.block).toBlock().setBlockName("block_polonium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_polonium"); + block_mox_fuel = new BlockHazard().addRadiation(ItemHazard.mox * ItemHazard.block).toBlock().setBlockName("block_mox_fuel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_mox_fuel"); + block_plutonium = new BlockHazard().addRadiation(ItemHazard.pu * ItemHazard.block).toBlock().setBlockName("block_plutonium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_plutonium"); + block_pu238 = new BlockHazard().addRadiation(ItemHazard.pu238 * ItemHazard.block).toBlock().setBlockName("block_pu238").setCreativeTab(MainRegistry.blockTab).setLightLevel(5F/15F).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_pu238"); + block_pu239 = new BlockHazard().addRadiation(ItemHazard.pu239 * ItemHazard.block).toBlock().setBlockName("block_pu239").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_pu239"); + block_pu240 = new BlockHazard().addRadiation(ItemHazard.pu240 * ItemHazard.block).toBlock().setBlockName("block_pu240").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_pu240"); + block_pu_mix = new BlockHazard().addRadiation(ItemHazard.purg * ItemHazard.block).toBlock().setBlockName("block_pu_mix").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_pu_mix"); + block_plutonium_fuel = new BlockHazard().addRadiation(ItemHazard.puf * ItemHazard.block).toBlock().setBlockName("block_plutonium_fuel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_plutonium_fuel"); block_titanium = new BlockGeneric(Material.iron).setBlockName("block_titanium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_titanium"); block_sulfur = new BlockGeneric(Material.iron).setBlockName("block_sulfur").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_sulfur"); block_niter = new BlockGeneric(Material.iron).setBlockName("block_niter").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_niter"); @@ -1039,18 +1040,18 @@ public class ModBlocks { block_fluorite = new BlockGeneric(Material.iron).setBlockName("block_fluorite").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_fluorite"); block_steel = new BlockGeneric(Material.iron).setBlockName("block_steel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); block_lead = new BlockGeneric(Material.iron).setBlockName("block_lead").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_lead"); - block_trinitite = new BlockOre(Material.iron, 3F, 35F).setBlockName("block_trinitite").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_trinitite"); + block_trinitite = new BlockHazard().addRadiation(ItemHazard.trn * ItemHazard.block).toBlock().setBlockName("block_trinitite").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_trinitite"); block_waste = new BlockNuclearWaste(Material.iron, 5F, 60F).setBlockName("block_waste").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_waste"); block_waste_painted = new BlockNuclearWaste(Material.iron, 5F, 60F).setBlockName("block_waste_painted").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_waste_painted"); - ancient_scrap = new BlockOutgas(Material.iron, true, 1, true, true).setBlockName("ancient_scrap").setCreativeTab(MainRegistry.blockTab).setHardness(100.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":ancient_scrap"); + ancient_scrap = new BlockOutgas(Material.iron, true, 1, true, true).addRadiation(150F).toBlock().setBlockName("ancient_scrap").setCreativeTab(MainRegistry.blockTab).setHardness(100.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":ancient_scrap"); block_scrap = new BlockFalling(Material.sand).setBlockName("block_scrap").setCreativeTab(MainRegistry.blockTab).setHardness(2.5F).setResistance(5.0F).setStepSound(Block.soundTypeGravel).setBlockTextureName(RefStrings.MODID + ":block_scrap"); block_electrical_scrap = new BlockFalling(Material.iron).setBlockName("block_electrical_scrap").setCreativeTab(MainRegistry.blockTab).setHardness(2.5F).setResistance(5.0F).setStepSound(Block.soundTypeMetal).setBlockTextureName(RefStrings.MODID + ":electrical_scrap_alt2"); block_beryllium = new BlockGeneric(Material.iron).setBlockName("block_beryllium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_beryllium"); - block_schraranium = new BlockOre(Material.iron, 5F, 50F).setBlockName("block_schraranium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_schraranium"); - block_schrabidium = new BlockOre(Material.iron, 20F, 250F).setBlockName("block_schrabidium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_schrabidium"); - block_schrabidate = new BlockOre(Material.iron, 5F, 50F).setBlockName("block_schrabidate").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_schrabidate"); - block_solinium = new BlockGeneric(Material.iron).setBlockName("block_solinium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_solinium"); - block_schrabidium_fuel = new BlockOre(Material.iron, 20F, 250F).setBlockName("block_schrabidium_fuel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_schrabidium_fuel"); + block_schraranium = new BlockHazard().addRadiation(ItemHazard.sr * ItemHazard.block).toBlock().setBlockName("block_schraranium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_schraranium"); + block_schrabidium = new BlockHazard().addRadiation(ItemHazard.sa326 * ItemHazard.block).toBlock().setBlockName("block_schrabidium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_schrabidium"); + block_schrabidate = new BlockHazard().addRadiation(ItemHazard.sa326 * ItemHazard.block).toBlock().setBlockName("block_schrabidate").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_schrabidate"); + block_solinium = new BlockHazard().addRadiation(ItemHazard.sa327 * ItemHazard.block).toBlock().setBlockName("block_solinium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_solinium"); + block_schrabidium_fuel = new BlockHazard().addRadiation(ItemHazard.saf * ItemHazard.block).toBlock().setBlockName("block_schrabidium_fuel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_schrabidium_fuel"); block_euphemium = new BlockGeneric(Material.iron).setBlockName("block_euphemium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(60000.0F).setBlockTextureName(RefStrings.MODID + ":block_euphemium"); block_dineutronium = new BlockGeneric(Material.iron).setBlockName("block_dineutronium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(60000.0F).setBlockTextureName(RefStrings.MODID + ":block_dineutronium"); block_schrabidium_cluster = new BlockRotatablePillar(Material.rock, RefStrings.MODID + ":block_schrabidium_cluster_top").setBlockName("block_schrabidium_cluster").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(60000.0F).setBlockTextureName(RefStrings.MODID + ":block_schrabidium_cluster_side"); @@ -1061,15 +1062,15 @@ public class ModBlocks { block_desh = new BlockGeneric(Material.iron).setBlockName("block_desh").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_desh"); block_dura_steel = new BlockGeneric(Material.iron).setBlockName("block_dura_steel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_dura_steel"); block_starmetal = new BlockGeneric(Material.iron).setBlockName("block_starmetal").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_starmetal"); - block_yellowcake = new BlockFallingRad(Material.sand, 0.5F, 3F).setBlockName("block_yellowcake").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeSand).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_yellowcake"); + block_yellowcake = new BlockHazardFalling().addRadiation(ItemHazard.yc + ItemHazard.block).toBlock().setBlockName("block_yellowcake").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeSand).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_yellowcake"); block_insulator = new BlockRotatablePillar(Material.cloth, RefStrings.MODID + ":block_insulator_top").setBlockName("block_insulator").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeCloth).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_insulator_side"); block_fiberglass = new BlockRotatablePillar(Material.cloth, RefStrings.MODID + ":block_fiberglass_top").setBlockName("block_fiberglass").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeCloth).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_fiberglass_side"); block_asbestos = new BlockOutgas(Material.cloth, true, 5, true).addAsbestos().toBlock().setBlockName("block_asbestos").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeCloth).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_asbestos"); block_cobalt = new BlockGeneric(Material.iron).setBlockName("block_cobalt").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_cobalt"); block_lithium = new BlockLithium(Material.iron).setBlockName("block_lithium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_lithium"); - block_white_phosphorus = new BlockGeneric(Material.rock).setBlockName("block_white_phosphorus").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_white_phosphorus"); - block_red_phosphorus = new BlockFalling(Material.sand).setStepSound(Block.soundTypeSand).setBlockName("block_red_phosphorus").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_red_phosphorus"); - block_fallout = new BlockFalling(Material.ground).setStepSound(Block.soundTypeGravel).setBlockName("block_fallout").setCreativeTab(MainRegistry.blockTab).setHardness(0.2F).setBlockTextureName(RefStrings.MODID + ":ash"); + block_white_phosphorus = new BlockHazard(Material.rock).addFire(15).toBlock().setBlockName("block_white_phosphorus").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_white_phosphorus"); + block_red_phosphorus = new BlockHazardFalling().addFire(15).toBlock().setStepSound(Block.soundTypeSand).setBlockName("block_red_phosphorus").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_red_phosphorus"); + block_fallout = new BlockHazardFalling().addRadiation(ItemHazard.fo * ItemHazard.block).toBlock().setStepSound(Block.soundTypeGravel).setBlockName("block_fallout").setCreativeTab(MainRegistry.blockTab).setHardness(0.2F).setBlockTextureName(RefStrings.MODID + ":ash"); block_australium = new BlockGeneric(Material.iron).setBlockName("block_australium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_australium"); block_weidanium = new BlockGeneric(Material.iron).setBlockName("block_weidanium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_weidanium"); @@ -1224,7 +1225,7 @@ public class ModBlocks { nuke_solinium = new NukeSolinium(Material.iron).setBlockName("nuke_solinium").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":nuke_solinium"); nuke_n2 = new NukeN2(Material.iron).setBlockName("nuke_n2").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":nuke_n2"); nuke_n45 = new NukeN45(Material.iron).setBlockName("nuke_n45").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":code"); - nuke_fstbmb = new NukeBalefire(Material.iron, guiID_nuke_fstbmb).setBlockName("nuke_fstbmb").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":nuke_fstbmb"); + nuke_fstbmb = new NukeBalefire(Material.iron, guiID_nuke_fstbmb).addDigamma(0.1F).toBlock().setBlockName("nuke_fstbmb").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":nuke_fstbmb"); cel_prime = new CelPrime(Material.iron).setBlockName("cel_prime").setCreativeTab(null).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":code"); cel_prime_terminal = new CelPrimePart(Material.iron).setBlockName("cel_prime_terminal").setCreativeTab(null).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":code"); @@ -1772,22 +1773,22 @@ public class ModBlocks { GameRegistry.registerBlock(stone_gneiss, stone_gneiss.getUnlocalizedName()); //Blocks - GameRegistry.registerBlock(block_uranium, block_uranium.getUnlocalizedName()); - GameRegistry.registerBlock(block_u233, block_u233.getUnlocalizedName()); - GameRegistry.registerBlock(block_u235, block_u235.getUnlocalizedName()); - GameRegistry.registerBlock(block_u238, block_u238.getUnlocalizedName()); - GameRegistry.registerBlock(block_uranium_fuel, block_uranium_fuel.getUnlocalizedName()); - GameRegistry.registerBlock(block_neptunium, block_neptunium.getUnlocalizedName()); - GameRegistry.registerBlock(block_polonium, block_polonium.getUnlocalizedName()); - GameRegistry.registerBlock(block_mox_fuel, block_mox_fuel.getUnlocalizedName()); - GameRegistry.registerBlock(block_plutonium, block_plutonium.getUnlocalizedName()); - GameRegistry.registerBlock(block_pu238, block_pu238.getUnlocalizedName()); - GameRegistry.registerBlock(block_pu239, block_pu239.getUnlocalizedName()); - GameRegistry.registerBlock(block_pu240, block_pu240.getUnlocalizedName()); - GameRegistry.registerBlock(block_pu_mix, block_pu_mix.getUnlocalizedName()); - GameRegistry.registerBlock(block_plutonium_fuel, block_plutonium_fuel.getUnlocalizedName()); - GameRegistry.registerBlock(block_thorium, block_thorium.getUnlocalizedName()); - GameRegistry.registerBlock(block_thorium_fuel, block_thorium_fuel.getUnlocalizedName()); + GameRegistry.registerBlock(block_uranium, ItemBlockHazard.class, block_uranium.getUnlocalizedName()); + GameRegistry.registerBlock(block_u233, ItemBlockHazard.class, block_u233.getUnlocalizedName()); + GameRegistry.registerBlock(block_u235, ItemBlockHazard.class, block_u235.getUnlocalizedName()); + GameRegistry.registerBlock(block_u238, ItemBlockHazard.class, block_u238.getUnlocalizedName()); + GameRegistry.registerBlock(block_uranium_fuel, ItemBlockHazard.class, block_uranium_fuel.getUnlocalizedName()); + GameRegistry.registerBlock(block_neptunium, ItemBlockHazard.class, block_neptunium.getUnlocalizedName()); + GameRegistry.registerBlock(block_polonium, ItemBlockHazard.class, block_polonium.getUnlocalizedName()); + GameRegistry.registerBlock(block_mox_fuel, ItemBlockHazard.class, block_mox_fuel.getUnlocalizedName()); + GameRegistry.registerBlock(block_plutonium, ItemBlockHazard.class, block_plutonium.getUnlocalizedName()); + GameRegistry.registerBlock(block_pu238, ItemBlockHazard.class, block_pu238.getUnlocalizedName()); + GameRegistry.registerBlock(block_pu239, ItemBlockHazard.class, block_pu239.getUnlocalizedName()); + GameRegistry.registerBlock(block_pu240, ItemBlockHazard.class, block_pu240.getUnlocalizedName()); + GameRegistry.registerBlock(block_pu_mix, ItemBlockHazard.class, block_pu_mix.getUnlocalizedName()); + GameRegistry.registerBlock(block_plutonium_fuel, ItemBlockHazard.class, block_plutonium_fuel.getUnlocalizedName()); + GameRegistry.registerBlock(block_thorium, ItemBlockHazard.class, block_thorium.getUnlocalizedName()); + GameRegistry.registerBlock(block_thorium_fuel, ItemBlockHazard.class, block_thorium_fuel.getUnlocalizedName()); GameRegistry.registerBlock(block_titanium, block_titanium.getUnlocalizedName()); GameRegistry.registerBlock(block_sulfur, block_sulfur.getUnlocalizedName()); GameRegistry.registerBlock(block_niter, block_niter.getUnlocalizedName()); @@ -1802,26 +1803,26 @@ public class ModBlocks { GameRegistry.registerBlock(block_steel, block_steel.getUnlocalizedName()); GameRegistry.registerBlock(block_lead, block_lead.getUnlocalizedName()); GameRegistry.registerBlock(block_lithium, ItemBlockLore.class, block_lithium.getUnlocalizedName()); - GameRegistry.registerBlock(block_white_phosphorus, block_white_phosphorus.getUnlocalizedName()); - GameRegistry.registerBlock(block_red_phosphorus, block_red_phosphorus.getUnlocalizedName()); - GameRegistry.registerBlock(block_yellowcake, block_yellowcake.getUnlocalizedName()); + GameRegistry.registerBlock(block_white_phosphorus, ItemBlockHazard.class, block_white_phosphorus.getUnlocalizedName()); + GameRegistry.registerBlock(block_red_phosphorus, ItemBlockHazard.class, block_red_phosphorus.getUnlocalizedName()); + GameRegistry.registerBlock(block_yellowcake, ItemBlockHazard.class, block_yellowcake.getUnlocalizedName()); GameRegistry.registerBlock(block_scrap, block_scrap.getUnlocalizedName()); GameRegistry.registerBlock(block_electrical_scrap, block_electrical_scrap.getUnlocalizedName()); - GameRegistry.registerBlock(block_fallout, block_fallout.getUnlocalizedName()); + GameRegistry.registerBlock(block_fallout, ItemBlockHazard.class, block_fallout.getUnlocalizedName()); GameRegistry.registerBlock(block_insulator, block_insulator.getUnlocalizedName()); GameRegistry.registerBlock(block_fiberglass, block_fiberglass.getUnlocalizedName()); - GameRegistry.registerBlock(block_asbestos, block_asbestos.getUnlocalizedName()); - GameRegistry.registerBlock(block_trinitite, block_trinitite.getUnlocalizedName()); - GameRegistry.registerBlock(block_waste, block_waste.getUnlocalizedName()); - GameRegistry.registerBlock(block_waste_painted, block_waste_painted.getUnlocalizedName()); - GameRegistry.registerBlock(ancient_scrap, ancient_scrap.getUnlocalizedName()); - GameRegistry.registerBlock(block_schraranium, ItemBlockLore.class, block_schraranium.getUnlocalizedName()); - GameRegistry.registerBlock(block_schrabidium, ItemBlockLore.class, block_schrabidium.getUnlocalizedName()); - GameRegistry.registerBlock(block_schrabidate, ItemBlockLore.class, block_schrabidate.getUnlocalizedName()); - GameRegistry.registerBlock(block_solinium, ItemBlockLore.class, block_solinium.getUnlocalizedName()); - GameRegistry.registerBlock(block_schrabidium_fuel, ItemBlockLore.class, block_schrabidium_fuel.getUnlocalizedName()); + GameRegistry.registerBlock(block_asbestos, ItemBlockHazard.class, block_asbestos.getUnlocalizedName()); + GameRegistry.registerBlock(block_trinitite, ItemBlockHazard.class, block_trinitite.getUnlocalizedName()); + GameRegistry.registerBlock(block_waste, ItemBlockHazard.class, block_waste.getUnlocalizedName()); + GameRegistry.registerBlock(block_waste_painted, ItemBlockHazard.class, block_waste_painted.getUnlocalizedName()); + GameRegistry.registerBlock(ancient_scrap, ItemBlockHazard.class, ancient_scrap.getUnlocalizedName()); + GameRegistry.registerBlock(block_schraranium, ItemBlockSchrabidium.class, block_schraranium.getUnlocalizedName()); + GameRegistry.registerBlock(block_schrabidium, ItemBlockSchrabidium.class, block_schrabidium.getUnlocalizedName()); + GameRegistry.registerBlock(block_schrabidate, ItemBlockSchrabidium.class, block_schrabidate.getUnlocalizedName()); + GameRegistry.registerBlock(block_solinium, ItemBlockSchrabidium.class, block_solinium.getUnlocalizedName()); + GameRegistry.registerBlock(block_schrabidium_fuel, ItemBlockSchrabidium.class, block_schrabidium_fuel.getUnlocalizedName()); GameRegistry.registerBlock(block_euphemium, ItemBlockLore.class, block_euphemium.getUnlocalizedName()); - GameRegistry.registerBlock(block_schrabidium_cluster, ItemBlockLore.class, block_schrabidium_cluster.getUnlocalizedName()); + GameRegistry.registerBlock(block_schrabidium_cluster, ItemBlockSchrabidium.class, block_schrabidium_cluster.getUnlocalizedName()); GameRegistry.registerBlock(block_euphemium_cluster, ItemBlockLore.class, block_euphemium_cluster.getUnlocalizedName()); GameRegistry.registerBlock(block_dineutronium, block_dineutronium.getUnlocalizedName()); GameRegistry.registerBlock(block_magnetized_tungsten, block_magnetized_tungsten.getUnlocalizedName()); @@ -1961,16 +1962,16 @@ public class ModBlocks { GameRegistry.registerBlock(frozen_dirt, frozen_dirt.getUnlocalizedName()); GameRegistry.registerBlock(frozen_log, frozen_log.getUnlocalizedName()); GameRegistry.registerBlock(frozen_planks, frozen_planks.getUnlocalizedName()); - GameRegistry.registerBlock(fallout, fallout.getUnlocalizedName()); + GameRegistry.registerBlock(fallout, ItemBlockHazard.class, fallout.getUnlocalizedName()); //RAD GameRegistry.registerBlock(sellafield_slaked, sellafield_slaked.getUnlocalizedName()); - GameRegistry.registerBlock(sellafield_0, sellafield_0.getUnlocalizedName()); - GameRegistry.registerBlock(sellafield_1, sellafield_1.getUnlocalizedName()); - GameRegistry.registerBlock(sellafield_2, sellafield_2.getUnlocalizedName()); - GameRegistry.registerBlock(sellafield_3, sellafield_3.getUnlocalizedName()); - GameRegistry.registerBlock(sellafield_4, sellafield_4.getUnlocalizedName()); - GameRegistry.registerBlock(sellafield_core, sellafield_core.getUnlocalizedName()); + GameRegistry.registerBlock(sellafield_0, ItemBlockHazard.class, sellafield_0.getUnlocalizedName()); + GameRegistry.registerBlock(sellafield_1, ItemBlockHazard.class, sellafield_1.getUnlocalizedName()); + GameRegistry.registerBlock(sellafield_2, ItemBlockHazard.class, sellafield_2.getUnlocalizedName()); + GameRegistry.registerBlock(sellafield_3, ItemBlockHazard.class, sellafield_3.getUnlocalizedName()); + GameRegistry.registerBlock(sellafield_4, ItemBlockHazard.class, sellafield_4.getUnlocalizedName()); + GameRegistry.registerBlock(sellafield_core, ItemBlockHazard.class, sellafield_core.getUnlocalizedName()); //Geysirs GameRegistry.registerBlock(geysir_water, geysir_water.getUnlocalizedName()); @@ -1989,7 +1990,7 @@ public class ModBlocks { GameRegistry.registerBlock(nuke_solinium, nuke_solinium.getUnlocalizedName()); GameRegistry.registerBlock(nuke_n2, nuke_n2.getUnlocalizedName()); GameRegistry.registerBlock(nuke_n45, nuke_n45.getUnlocalizedName()); - GameRegistry.registerBlock(nuke_fstbmb, nuke_fstbmb.getUnlocalizedName()); + GameRegistry.registerBlock(nuke_fstbmb, ItemBlockHazard.class, nuke_fstbmb.getUnlocalizedName()); GameRegistry.registerBlock(nuke_custom, nuke_custom.getUnlocalizedName()); //Generic Bombs diff --git a/src/main/java/com/hbm/blocks/bomb/NukeBalefire.java b/src/main/java/com/hbm/blocks/bomb/NukeBalefire.java index ddff048a0..b8e6554f4 100644 --- a/src/main/java/com/hbm/blocks/bomb/NukeBalefire.java +++ b/src/main/java/com/hbm/blocks/bomb/NukeBalefire.java @@ -2,6 +2,8 @@ package com.hbm.blocks.bomb; import com.hbm.blocks.machine.BlockMachineBase; import com.hbm.interfaces.IBomb; +import com.hbm.interfaces.IItemHazard; +import com.hbm.modules.ItemHazardModule; import com.hbm.tileentity.bomb.TileEntityNukeBalefire; import net.minecraft.block.Block; @@ -9,11 +11,19 @@ import net.minecraft.block.material.Material; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; -public class NukeBalefire extends BlockMachineBase implements IBomb { +public class NukeBalefire extends BlockMachineBase implements IBomb, IItemHazard { + + ItemHazardModule module; public NukeBalefire(Material mat, int guiID) { super(mat, guiID); rotatable = true; + this.module = new ItemHazardModule(); + } + + @Override + public ItemHazardModule getModule() { + return module; } @Override diff --git a/src/main/java/com/hbm/blocks/generic/BlockHazard.java b/src/main/java/com/hbm/blocks/generic/BlockHazard.java new file mode 100644 index 000000000..c2f8d7fd6 --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockHazard.java @@ -0,0 +1,66 @@ +package com.hbm.blocks.generic; + +import java.util.Random; + +import com.hbm.interfaces.IItemHazard; +import com.hbm.modules.ItemHazardModule; +import com.hbm.saveddata.RadiationSavedData; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.world.World; + +public class BlockHazard extends Block implements IItemHazard { + + ItemHazardModule module; + + private float radIn = 0.0F; + private float radMax = 0.0F; + + public BlockHazard() { + this(Material.iron); + } + + public BlockHazard(Material mat) { + super(mat); + this.module = new ItemHazardModule(); + } + + @Override + public ItemHazardModule getModule() { + return module; + } + + @Override + public IItemHazard addRadiation(float radiation) { + this.getModule().addRadiation(radiation); + this.radIn = radiation; + this.radMax = radiation * 10; + return this; + } + + @Override + public void updateTick(World world, int x, int y, int z, Random rand) { + + if(this.radIn > 0) { + RadiationSavedData.incrementRad(world, x, z, radIn, radMax); + world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world)); + } + } + + @Override + public int tickRate(World world) { + + if(this.radIn > 0) + return 20; + + return super.tickRate(world); + } + + public void onBlockAdded(World world, int x, int y, int z) { + super.onBlockAdded(world, x, y, z); + + if(this.radIn > 0) + world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world)); + } +} diff --git a/src/main/java/com/hbm/blocks/generic/BlockHazardFalling.java b/src/main/java/com/hbm/blocks/generic/BlockHazardFalling.java new file mode 100644 index 000000000..dc0f0f1f2 --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockHazardFalling.java @@ -0,0 +1,66 @@ +package com.hbm.blocks.generic; + +import java.util.Random; + +import com.hbm.interfaces.IItemHazard; +import com.hbm.modules.ItemHazardModule; +import com.hbm.saveddata.RadiationSavedData; + +import net.minecraft.block.BlockFalling; +import net.minecraft.block.material.Material; +import net.minecraft.world.World; + +public class BlockHazardFalling extends BlockFalling implements IItemHazard { + + ItemHazardModule module; + + private float radIn = 0.0F; + private float radMax = 0.0F; + + public BlockHazardFalling() { + this(Material.sand); + } + + public BlockHazardFalling(Material mat) { + super(mat); + this.module = new ItemHazardModule(); + } + + @Override + public ItemHazardModule getModule() { + return module; + } + + @Override + public IItemHazard addRadiation(float radiation) { + this.getModule().addRadiation(radiation); + this.radIn = radiation; + this.radMax = radiation * 10; + return this; + } + + @Override + public void updateTick(World world, int x, int y, int z, Random rand) { + + if(this.radIn > 0) { + RadiationSavedData.incrementRad(world, x, z, radIn, radMax); + world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world)); + } + } + + @Override + public int tickRate(World world) { + + if(this.radIn > 0) + return 20; + + return super.tickRate(world); + } + + public void onBlockAdded(World world, int x, int y, int z) { + super.onBlockAdded(world, x, y, z); + + if(this.radIn > 0) + world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world)); + } +} diff --git a/src/main/java/com/hbm/blocks/generic/BlockRadioactive.java b/src/main/java/com/hbm/blocks/generic/BlockRadioactive.java deleted file mode 100644 index 1edcebf69..000000000 --- a/src/main/java/com/hbm/blocks/generic/BlockRadioactive.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.hbm.blocks.generic; - -import com.hbm.interfaces.IItemHazard; -import com.hbm.modules.ItemHazardModule; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; - -public class BlockRadioactive extends Block implements IItemHazard { - - ItemHazardModule module; - - private float radIn = 0.0F; - private float radMax = 0.0F; - - public BlockRadioactive(Material mat, float rad, float max) { - super(mat); - this.module = new ItemHazardModule(); - this.setTickRandomly(true); - radIn = rad; - radMax = max; - } - - @Override - public ItemHazardModule getModule() { - return module; - } - -} diff --git a/src/main/java/com/hbm/blocks/generic/BlockRotatablePillar.java b/src/main/java/com/hbm/blocks/generic/BlockRotatablePillar.java index 8d31b49c8..649ccf137 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockRotatablePillar.java +++ b/src/main/java/com/hbm/blocks/generic/BlockRotatablePillar.java @@ -9,22 +9,22 @@ import net.minecraft.util.IIcon; public class BlockRotatablePillar extends BlockRotatedPillar { - @SideOnly(Side.CLIENT) - protected IIcon iconSide; - + @SideOnly(Side.CLIENT) + protected IIcon iconSide; + private String textureTop; - + public BlockRotatablePillar(Material mat, String top) { super(mat); textureTop = top; } - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister reg) { - + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister reg) { + this.field_150164_N = reg.registerIcon(textureTop); this.iconSide = reg.registerIcon(this.getTextureName()); - } + } @Override protected IIcon getSideIcon(int p_150163_1_) { diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java b/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java index 12cdf38b2..a70b1ead5 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java @@ -9,8 +9,10 @@ import com.hbm.entity.effect.EntityNukeCloudSmall; import com.hbm.entity.logic.EntityBalefire; import com.hbm.entity.logic.EntityNukeExplosionMK4; import com.hbm.entity.logic.IChunkLoader; +import com.hbm.entity.projectile.EntityBulletBase; import com.hbm.explosion.ExplosionChaos; import com.hbm.explosion.ExplosionLarge; +import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.MissileStruct; import com.hbm.items.weapon.ItemMissile; import com.hbm.items.weapon.ItemMissile.FuelType; @@ -35,7 +37,7 @@ import net.minecraftforge.common.ForgeChunkManager.Ticket; import net.minecraftforge.common.ForgeChunkManager.Type; public class EntityMissileCustom extends Entity implements IChunkLoader, IRadarDetectable { - + int startX; int startZ; int targetX; @@ -45,9 +47,9 @@ public class EntityMissileCustom extends Entity implements IChunkLoader, IRadarD double accelXZ; float fuel; float consumption; - private Ticket loaderTicket; - public int health = 50; - MissileStruct template; + private Ticket loaderTicket; + public int health = 50; + MissileStruct template; public EntityMissileCustom(World p_i1582_1_) { super(p_i1582_1_); @@ -57,99 +59,92 @@ public class EntityMissileCustom extends Entity implements IChunkLoader, IRadarD targetX = (int) posX; targetZ = (int) posZ; } - - public boolean canBeCollidedWith() - { - return true; - } - - public boolean attackEntityFrom(DamageSource p_70097_1_, float p_70097_2_) - { - if (this.isEntityInvulnerable()) - { - return false; - } - else - { - if (!this.isDead && !this.worldObj.isRemote) - { - health -= p_70097_2_; - - if (this.health <= 0) - { - this.setDead(); - this.killMissile(); - } - } - return true; - } - } - - private void killMissile() { - ExplosionLarge.explode(worldObj, posX, posY, posZ, 5, true, false, true); - ExplosionLarge.spawnShrapnelShower(worldObj, posX, posY, posZ, motionX, motionY, motionZ, 15, 0.075); - } + public boolean canBeCollidedWith() { + return true; + } + + public boolean attackEntityFrom(DamageSource p_70097_1_, float p_70097_2_) { + if(this.isEntityInvulnerable()) { + return false; + } else { + if(!this.isDead && !this.worldObj.isRemote) { + health -= p_70097_2_; + + if(this.health <= 0) { + this.setDead(); + this.killMissile(); + } + } + + return true; + } + } + + private void killMissile() { + ExplosionLarge.explode(worldObj, posX, posY, posZ, 5, true, false, true); + ExplosionLarge.spawnShrapnelShower(worldObj, posX, posY, posZ, motionX, motionY, motionZ, 15, 0.075); + } public EntityMissileCustom(World world, float x, float y, float z, int a, int b, MissileStruct template) { super(world); this.ignoreFrustumCheck = true; - /*this.posX = x; - this.posY = y; - this.posZ = z;*/ + /* + * this.posX = x; this.posY = y; this.posZ = z; + */ this.setLocationAndAngles(x, y, z, 0, 0); startX = (int) x; startZ = (int) z; targetX = a; targetZ = b; this.motionY = 2; - + this.template = template; - + this.dataWatcher.updateObject(9, Item.getIdFromItem(template.warhead)); this.dataWatcher.updateObject(10, Item.getIdFromItem(template.fuselage)); if(template.fins != null) this.dataWatcher.updateObject(11, Item.getIdFromItem(template.fins)); - else - this.dataWatcher.updateObject(11, Integer.valueOf(0)); + else + this.dataWatcher.updateObject(11, Integer.valueOf(0)); this.dataWatcher.updateObject(12, Item.getIdFromItem(template.thruster)); - - Vec3 vector = Vec3.createVectorHelper(targetX - startX, 0, targetZ - startZ); - accelXZ = decelY = 1/vector.lengthVector(); + + Vec3 vector = Vec3.createVectorHelper(targetX - startX, 0, targetZ - startZ); + accelXZ = decelY = 1 / vector.lengthVector(); decelY *= 2; - + velocity = 0.0; ItemMissile fuselage = (ItemMissile) template.fuselage; ItemMissile thruster = (ItemMissile) template.thruster; - this.fuel = (Float)fuselage.attributes[1]; - this.consumption = (Float)thruster.attributes[1]; + this.fuel = (Float) fuselage.attributes[1]; + this.consumption = (Float) thruster.attributes[1]; - this.setSize(1.5F, 1.5F); + this.setSize(1.5F, 1.5F); } @Override protected void entityInit() { init(ForgeChunkManager.requestTicket(MainRegistry.instance, worldObj, Type.ENTITY)); - this.dataWatcher.addObject(8, Integer.valueOf(this.health)); + this.dataWatcher.addObject(8, Integer.valueOf(this.health)); - if(template != null) { - this.dataWatcher.addObject(9, Integer.valueOf(Item.getIdFromItem(template.warhead))); - this.dataWatcher.addObject(10, Integer.valueOf(Item.getIdFromItem(template.fuselage))); - - if(template.fins != null) - this.dataWatcher.addObject(11, Integer.valueOf(Item.getIdFromItem(template.fins))); - else - this.dataWatcher.addObject(11, Integer.valueOf(0)); - - this.dataWatcher.addObject(12, Integer.valueOf(Item.getIdFromItem(template.thruster))); - } else { - this.dataWatcher.addObject(9, Integer.valueOf(0)); - this.dataWatcher.addObject(10, Integer.valueOf(0)); - this.dataWatcher.addObject(11, Integer.valueOf(0)); - this.dataWatcher.addObject(12, Integer.valueOf(0)); - } + if(template != null) { + this.dataWatcher.addObject(9, Integer.valueOf(Item.getIdFromItem(template.warhead))); + this.dataWatcher.addObject(10, Integer.valueOf(Item.getIdFromItem(template.fuselage))); + + if(template.fins != null) + this.dataWatcher.addObject(11, Integer.valueOf(Item.getIdFromItem(template.fins))); + else + this.dataWatcher.addObject(11, Integer.valueOf(0)); + + this.dataWatcher.addObject(12, Integer.valueOf(Item.getIdFromItem(template.thruster))); + } else { + this.dataWatcher.addObject(9, Integer.valueOf(0)); + this.dataWatcher.addObject(10, Integer.valueOf(0)); + this.dataWatcher.addObject(11, Integer.valueOf(0)); + this.dataWatcher.addObject(12, Integer.valueOf(0)); + } } @Override @@ -197,94 +192,87 @@ public class EntityMissileCustom extends Entity implements IChunkLoader, IRadarD nbt.setInteger("fins", this.dataWatcher.getWatchableObjectInt(11)); nbt.setInteger("thruster", this.dataWatcher.getWatchableObjectInt(12)); } - + protected void rotation() { - float f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); + float f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); + this.rotationYaw = (float) (Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - for (this.rotationPitch = (float)(Math.atan2(this.motionY, f2) * 180.0D / Math.PI) - 90; this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F) - { - ; - } + for(this.rotationPitch = (float) (Math.atan2(this.motionY, f2) * 180.0D / Math.PI) - 90; this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F) { + ; + } - while (this.rotationPitch - this.prevRotationPitch >= 180.0F) - { - this.prevRotationPitch += 360.0F; - } + while(this.rotationPitch - this.prevRotationPitch >= 180.0F) { + this.prevRotationPitch += 360.0F; + } - while (this.rotationYaw - this.prevRotationYaw < -180.0F) - { - this.prevRotationYaw -= 360.0F; - } + while(this.rotationYaw - this.prevRotationYaw < -180.0F) { + this.prevRotationYaw -= 360.0F; + } - while (this.rotationYaw - this.prevRotationYaw >= 180.0F) - { - this.prevRotationYaw += 360.0F; - } + while(this.rotationYaw - this.prevRotationYaw >= 180.0F) { + this.prevRotationYaw += 360.0F; + } } - + @Override - public void onUpdate() - { - this.dataWatcher.updateObject(8, Integer.valueOf(this.health)); - + public void onUpdate() { + this.dataWatcher.updateObject(8, Integer.valueOf(this.health)); + this.setLocationAndAngles(posX + this.motionX * velocity, posY + this.motionY * velocity, posZ + this.motionZ * velocity, 0, 0); this.rotation(); - + if(fuel > 0 || worldObj.isRemote) { - + fuel -= consumption; - + this.motionY -= decelY * velocity; - + Vec3 vector = Vec3.createVectorHelper(targetX - startX, 0, targetZ - startZ); vector = vector.normalize(); vector.xCoord *= accelXZ * velocity; vector.zCoord *= accelXZ * velocity; - - if (motionY > 0) { + + if(motionY > 0) { motionX += vector.xCoord; motionZ += vector.zCoord; } - - if (motionY < 0) { + + if(motionY < 0) { motionX -= vector.xCoord; motionZ -= vector.zCoord; } - + if(velocity < 5) velocity += 0.01; } else { motionX *= 0.99; motionZ *= 0.99; - + if(motionY > -1.5) motionY -= 0.05; } - if (this.worldObj.getBlock((int) this.posX, (int) this.posY, (int) this.posZ) != Blocks.air - && this.worldObj.getBlock((int) this.posX, (int) this.posY, (int) this.posZ) != Blocks.water - && this.worldObj.getBlock((int) this.posX, (int) this.posY, (int) this.posZ) != Blocks.flowing_water) { + if(this.worldObj.getBlock((int) this.posX, (int) this.posY, (int) this.posZ) != Blocks.air && this.worldObj.getBlock((int) this.posX, (int) this.posY, (int) this.posZ) != Blocks.water && this.worldObj.getBlock((int) this.posX, (int) this.posY, (int) this.posZ) != Blocks.flowing_water) { - if (!this.worldObj.isRemote) { + if(!this.worldObj.isRemote) { onImpact(); } this.setDead(); return; } - if (this.worldObj.isRemote) { - + if(this.worldObj.isRemote) { + Vec3 v = Vec3.createVectorHelper(motionX, motionY, motionZ); v = v.normalize(); - + String smoke = ""; - + ItemMissile part = (ItemMissile) Item.getItemById(this.dataWatcher.getWatchableObjectInt(10)); - FuelType type = (FuelType)part.attributes[0]; - + FuelType type = (FuelType) part.attributes[0]; + switch(type) { case BALEFIRE: smoke = "exBalefire"; @@ -301,28 +289,27 @@ public class EntityMissileCustom extends Entity implements IChunkLoader, IRadarD case XENON: break; } - + for(int i = 0; i < velocity; i++) MainRegistry.proxy.spawnParticle(posX - v.xCoord * i, posY - v.yCoord * i, posZ - v.zCoord * i, smoke, null); } - loadNeighboringChunks((int)(posX / 16), (int)(posZ / 16)); - } - - @Override + loadNeighboringChunks((int) (posX / 16), (int) (posZ / 16)); + } + + @Override @SideOnly(Side.CLIENT) - public boolean isInRangeToRenderDist(double distance) - { - return distance < 2500000; - } + public boolean isInRangeToRenderDist(double distance) { + return distance < 2500000; + } public void onImpact() { - + ItemMissile part = (ItemMissile) Item.getItemById(this.dataWatcher.getWatchableObjectInt(9)); - WarheadType type = (WarheadType)part.attributes[0]; - float strength = (Float)part.attributes[1]; - + WarheadType type = (WarheadType) part.attributes[0]; + float strength = (Float) part.attributes[1]; + switch(type) { case HE: ExplosionLarge.explode(worldObj, posX, posY, posZ, strength, true, false, true); @@ -339,7 +326,7 @@ public class EntityMissileCustom extends Entity implements IChunkLoader, IRadarD break; case NUCLEAR: case TX: - worldObj.spawnEntityInWorld(EntityNukeExplosionMK4.statFac(worldObj, (int) strength, posX, posY, posZ)); + worldObj.spawnEntityInWorld(EntityNukeExplosionMK4.statFac(worldObj, (int) strength, posX, posY, posZ)); EntityNukeCloudSmall nuke = new EntityNukeCloudSmall(worldObj, 1000, strength * 0.005F); nuke.posX = posX; nuke.posY = posY; @@ -356,7 +343,7 @@ public class EntityMissileCustom extends Entity implements IChunkLoader, IRadarD worldObj.spawnEntityInWorld(EntityNukeCloudSmall.statFacBale(worldObj, posX, posY + 5, posZ, strength * 1.5F, 1000)); break; case N2: - worldObj.spawnEntityInWorld(EntityNukeExplosionMK4.statFacNoRad(worldObj, (int) strength, posX, posY, posZ)); + worldObj.spawnEntityInWorld(EntityNukeExplosionMK4.statFacNoRad(worldObj, (int) strength, posX, posY, posZ)); EntityNukeCloudSmall n2 = new EntityNukeCloudSmall(worldObj, 1000, strength * 0.005F); n2.posX = posX; n2.posY = posY; @@ -364,75 +351,86 @@ public class EntityMissileCustom extends Entity implements IChunkLoader, IRadarD worldObj.spawnEntityInWorld(n2); break; case TAINT: - int r = (int) strength; - for(int i = 0; i < r * 10; i++) { - int a = rand.nextInt(r) + (int)posX - (r / 2 - 1); - int b = rand.nextInt(r) + (int)posY - (r / 2 - 1); - int c = rand.nextInt(r) + (int)posZ - (r / 2 - 1); - if(worldObj.getBlock(a, b, c).isReplaceable(worldObj, a, b, c) && BlockTaint.hasPosNeightbour(worldObj, a, b, c)) { - worldObj.setBlock(a, b, c, ModBlocks.taint, rand.nextInt(3) + 4, 2); - } - } + int r = (int) strength; + for(int i = 0; i < r * 10; i++) { + int a = rand.nextInt(r) + (int) posX - (r / 2 - 1); + int b = rand.nextInt(r) + (int) posY - (r / 2 - 1); + int c = rand.nextInt(r) + (int) posZ - (r / 2 - 1); + if(worldObj.getBlock(a, b, c).isReplaceable(worldObj, a, b, c) && BlockTaint.hasPosNeightbour(worldObj, a, b, c)) { + worldObj.setBlock(a, b, c, ModBlocks.taint, rand.nextInt(3) + 4, 2); + } + } break; case CLOUD: - this.worldObj.playAuxSFX(2002, (int)Math.round(this.posX), (int)Math.round(this.posY), (int)Math.round(this.posZ), 0); + this.worldObj.playAuxSFX(2002, (int) Math.round(this.posX), (int) Math.round(this.posY), (int) Math.round(this.posZ), 0); ExplosionChaos.spawnChlorine(worldObj, posX - motionX, posY - motionY, posZ - motionZ, 750, 2.5, 2); + break; + case TURBINE: + ExplosionLarge.explode(worldObj, posX, posY, posZ, 10, true, false, true); + int count = (int) strength; + Vec3 vec = Vec3.createVectorHelper(0.5, 0, 0); + + for(int i = 0; i < count; i++) { + EntityBulletBase blade = new EntityBulletBase(worldObj, BulletConfigSyncingUtil.TURBINE); + blade.setPositionAndRotation(this.posX - this.motionX, this.posY - this.motionY + rand.nextGaussian(), this.posZ - this.motionZ, 0, 0); + blade.motionX = vec.xCoord; + blade.motionZ = vec.zCoord; + worldObj.spawnEntityInWorld(blade); + vec.rotateAroundY((float) (Math.PI * 2F / (float) count)); + } + break; default: break; - + } } - + public void init(Ticket ticket) { if(!worldObj.isRemote) { - - if(ticket != null) { - - if(loaderTicket == null) { - - loaderTicket = ticket; - loaderTicket.bindEntity(this); - loaderTicket.getModData(); - } - ForgeChunkManager.forceChunk(loaderTicket, new ChunkCoordIntPair(chunkCoordX, chunkCoordZ)); - } - } + if(ticket != null) { + + if(loaderTicket == null) { + + loaderTicket = ticket; + loaderTicket.bindEntity(this); + loaderTicket.getModData(); + } + + ForgeChunkManager.forceChunk(loaderTicket, new ChunkCoordIntPair(chunkCoordX, chunkCoordZ)); + } + } } List loadedChunks = new ArrayList(); - public void loadNeighboringChunks(int newChunkX, int newChunkZ) - { - if(!worldObj.isRemote && loaderTicket != null) - { - for(ChunkCoordIntPair chunk : loadedChunks) - { - ForgeChunkManager.unforceChunk(loaderTicket, chunk); - } + public void loadNeighboringChunks(int newChunkX, int newChunkZ) { + if(!worldObj.isRemote && loaderTicket != null) { + for(ChunkCoordIntPair chunk : loadedChunks) { + ForgeChunkManager.unforceChunk(loaderTicket, chunk); + } - loadedChunks.clear(); - loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX + 1, newChunkZ + 1)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX - 1, newChunkZ - 1)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX + 1, newChunkZ - 1)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX - 1, newChunkZ + 1)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX + 1, newChunkZ)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ + 1)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX - 1, newChunkZ)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ - 1)); + loadedChunks.clear(); + loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ)); + loadedChunks.add(new ChunkCoordIntPair(newChunkX + 1, newChunkZ + 1)); + loadedChunks.add(new ChunkCoordIntPair(newChunkX - 1, newChunkZ - 1)); + loadedChunks.add(new ChunkCoordIntPair(newChunkX + 1, newChunkZ - 1)); + loadedChunks.add(new ChunkCoordIntPair(newChunkX - 1, newChunkZ + 1)); + loadedChunks.add(new ChunkCoordIntPair(newChunkX + 1, newChunkZ)); + loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ + 1)); + loadedChunks.add(new ChunkCoordIntPair(newChunkX - 1, newChunkZ)); + loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ - 1)); - for(ChunkCoordIntPair chunk : loadedChunks) - { - ForgeChunkManager.forceChunk(loaderTicket, chunk); - } - } - } + for(ChunkCoordIntPair chunk : loadedChunks) { + ForgeChunkManager.forceChunk(loaderTicket, chunk); + } + } + } @Override public RadarTargetType getTargetType() { - + ItemMissile part = (ItemMissile) Item.getItemById(this.dataWatcher.getWatchableObjectInt(10)); PartSize top = part.top; @@ -448,7 +446,7 @@ public class EntityMissileCustom extends Entity implements IChunkLoader, IRadarD return RadarTargetType.MISSILE_15_20; if(top == PartSize.SIZE_20 && bottom == PartSize.SIZE_20) return RadarTargetType.MISSILE_20; - + return RadarTargetType.PLAYER; } } diff --git a/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java b/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java index 006f779a8..f0851822c 100644 --- a/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java +++ b/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java @@ -209,6 +209,8 @@ public class BulletConfigSyncingUtil { public static int ZOMG_BOLT = i++; + public static int TURBINE = i++; + public static int CHL_LR22 = i++; public static int CHL_LR22_FIRE = i++; public static int CHL_M44 = i++; @@ -429,6 +431,8 @@ public class BulletConfigSyncingUtil { configSet.put(ZOMG_BOLT, GunEnergyFactory.getZOMGBoltConfig()); + configSet.put(TURBINE, GunEnergyFactory.getTurbineConfig()); + configSet.put(CHL_LR22, Gun22LRFactory.get22LRConfig().setToHoming(ModItems.ammo_22lr_chlorophyte)); configSet.put(CHL_LR22_FIRE, Gun22LRFactory.get22LRConfig().setToFire(3).setToHoming(ModItems.ammo_22lr_chlorophyte)); configSet.put(CHL_M44, Gun44MagnumFactory.getNoPipConfig().setToHoming(ModItems.ammo_44_chlorophyte)); diff --git a/src/main/java/com/hbm/handler/BulletConfiguration.java b/src/main/java/com/hbm/handler/BulletConfiguration.java index fee5d14cf..ae4625c07 100644 --- a/src/main/java/com/hbm/handler/BulletConfiguration.java +++ b/src/main/java/com/hbm/handler/BulletConfiguration.java @@ -102,6 +102,7 @@ public class BulletConfiguration { public static final int STYLE_ORB = 12; public static final int STYLE_METEOR = 13; public static final int STYLE_APDS = 14; + public static final int STYLE_BLADE = 15; public static final int PLINK_NONE = 0; public static final int PLINK_BULLET = 1; diff --git a/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java b/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java index 4ccb55d61..908e1d97a 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java @@ -308,4 +308,21 @@ public class GunEnergyFactory { return bullet; } + + public static BulletConfiguration getTurbineConfig() { + + BulletConfiguration bullet = new BulletConfiguration(); + + bullet.ammo = ModItems.nothing; + bullet.dmgMin = 100; + bullet.dmgMax = 150; + bullet.velocity = 1F; + bullet.gravity = 0.0; + bullet.maxAge = 200; + bullet.style = bullet.STYLE_BLADE; + bullet.destroysBlocks = true; + bullet.doesRicochet = false; + + return bullet; + } } diff --git a/src/main/java/com/hbm/interfaces/IItemHazard.java b/src/main/java/com/hbm/interfaces/IItemHazard.java index 0d34c1f88..776244709 100644 --- a/src/main/java/com/hbm/interfaces/IItemHazard.java +++ b/src/main/java/com/hbm/interfaces/IItemHazard.java @@ -1,6 +1,5 @@ package com.hbm.interfaces; -import com.hbm.items.special.ItemHazard; import com.hbm.modules.ItemHazardModule; import net.minecraft.block.Block; diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 9b24266c5..f0ecc1b29 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1146,6 +1146,7 @@ public class ModItems { public static Item mp_warhead_15_boxcar; public static Item mp_warhead_15_n2; public static Item mp_warhead_15_balefire; + public static Item mp_warhead_15_turbine; public static Item mp_warhead_20_he; public static Item mp_chip_1; @@ -2253,7 +2254,7 @@ public class ModItems { plate_iron = new Item().setUnlocalizedName("plate_iron").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_iron"); ingot_lead = new Item().setUnlocalizedName("ingot_lead").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_lead"); plate_lead = new Item().setUnlocalizedName("plate_lead").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_lead"); - ingot_schraranium = new ItemSchraranium(ItemHazard.sa326 * ItemHazard.nugget, false, true).setUnlocalizedName("ingot_schraranium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_schraranium"); + ingot_schraranium = new ItemSchraranium(ItemHazard.sr * ItemHazard.ingot, false, true).setUnlocalizedName("ingot_schraranium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_schraranium"); ingot_schrabidium = new ItemHazard(ItemHazard.sa326 * ItemHazard.ingot, false, true).setUnlocalizedName("ingot_schrabidium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_schrabidium"); ingot_schrabidate = new ItemHazard(ItemHazard.sa326 * ItemHazard.ingot, false, true).setUnlocalizedName("ingot_schrabidate").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_schrabidate"); plate_schrabidium = new ItemHazard(ItemHazard.sa326 * ItemHazard.ingot, false, true).setUnlocalizedName("plate_schrabidium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_schrabidium"); @@ -2397,9 +2398,9 @@ public class ModItems { crystal_gold = new Item().setUnlocalizedName("crystal_gold").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_gold"); crystal_redstone = new Item().setUnlocalizedName("crystal_redstone").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_redstone"); crystal_diamond = new Item().setUnlocalizedName("crystal_diamond").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_diamond"); - crystal_uranium = new ItemHazard(ItemHazard.u * ItemHazard.block).setUnlocalizedName("crystal_uranium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_uranium"); - crystal_thorium = new ItemHazard(ItemHazard.th232 * ItemHazard.block).setUnlocalizedName("crystal_thorium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_thorium"); - crystal_plutonium = new ItemHazard(ItemHazard.pu * ItemHazard.block).setUnlocalizedName("crystal_plutonium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_plutonium"); + crystal_uranium = new ItemHazard(ItemHazard.u * ItemHazard.crystal).setUnlocalizedName("crystal_uranium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_uranium"); + crystal_thorium = new ItemHazard(ItemHazard.th232 * ItemHazard.crystal).setUnlocalizedName("crystal_thorium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_thorium"); + crystal_plutonium = new ItemHazard(ItemHazard.pu * ItemHazard.crystal).setUnlocalizedName("crystal_plutonium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_plutonium"); crystal_titanium = new Item().setUnlocalizedName("crystal_titanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_titanium"); crystal_sulfur = new Item().setUnlocalizedName("crystal_sulfur").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_sulfur"); crystal_niter = new Item().setUnlocalizedName("crystal_niter").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_niter"); @@ -2409,13 +2410,13 @@ public class ModItems { crystal_fluorite = new Item().setUnlocalizedName("crystal_fluorite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_fluorite"); crystal_beryllium = new Item().setUnlocalizedName("crystal_beryllium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_beryllium"); crystal_lead = new Item().setUnlocalizedName("crystal_lead").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_lead"); - crystal_schraranium = new ItemHazard(ItemHazard.sa326 * ItemHazard.ingot, false, true).setUnlocalizedName("crystal_schraranium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_schraranium"); - crystal_schrabidium = new ItemHazard(ItemHazard.sa326 * ItemHazard.block, false, true).setUnlocalizedName("crystal_schrabidium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_schrabidium"); + crystal_schraranium = new ItemHazard(ItemHazard.sr * ItemHazard.crystal, false, true).setUnlocalizedName("crystal_schraranium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_schraranium"); + crystal_schrabidium = new ItemHazard(ItemHazard.sa326 * ItemHazard.crystal, false, true).setUnlocalizedName("crystal_schrabidium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_schrabidium"); crystal_rare = new Item().setUnlocalizedName("crystal_rare").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_rare"); - crystal_phosphorus = new ItemHazard(0.0F, true).setUnlocalizedName("crystal_phosphorus").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_phosphorus"); + crystal_phosphorus = new ItemHazard().addFire(15).toItem().setUnlocalizedName("crystal_phosphorus").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_phosphorus"); crystal_lithium = new ItemHazard().addHydroReactivity().toItem().setUnlocalizedName("crystal_lithium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_lithium"); crystal_starmetal = new Item().setUnlocalizedName("crystal_starmetal").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_starmetal"); - crystal_trixite = new ItemHazard(10.0F).setUnlocalizedName("crystal_trixite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_trixite"); + crystal_trixite = new ItemHazard().addRadiation(ItemHazard.trx * ItemHazard.crystal).toItem().setUnlocalizedName("crystal_trixite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_trixite"); powder_lead = new Item().setUnlocalizedName("powder_lead").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_lead"); powder_neptunium = new ItemHazard(ItemHazard.np237 * ItemHazard.ingot, true).setUnlocalizedName("powder_neptunium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_neptunium"); @@ -2429,10 +2430,10 @@ public class ModItems { powder_iron = new Item().setUnlocalizedName("powder_iron").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_iron"); powder_titanium = new Item().setUnlocalizedName("powder_titanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_titanium"); powder_tungsten = new Item().setUnlocalizedName("powder_tungsten").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_tungsten"); - powder_uranium = new ItemHazard(ItemHazard.u * ItemHazard.ingot, true).setUnlocalizedName("powder_uranium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_uranium"); - powder_plutonium = new ItemHazard(ItemHazard.pu * ItemHazard.ingot, true).setUnlocalizedName("powder_plutonium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_plutonium"); + powder_uranium = new ItemHazard().addRadiation(ItemHazard.u * ItemHazard.ingot).addFire(5).toItem().setUnlocalizedName("powder_uranium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_uranium"); + powder_plutonium = new ItemHazard().addRadiation(ItemHazard.pu * ItemHazard.ingot).addFire(5).toItem().setUnlocalizedName("powder_plutonium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_plutonium"); dust = new ItemCustomLore().setUnlocalizedName("dust").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":dust"); - fallout = new ItemHazard(10.0F).setUnlocalizedName("fallout").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fallout"); + fallout = new ItemHazard().addRadiation(ItemHazard.fo * ItemHazard.ingot).toItem().setUnlocalizedName("fallout").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fallout"); powder_advanced_alloy = new Item().setUnlocalizedName("powder_advanced_alloy").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_advanced_alloy"); powder_coal = new Item().setUnlocalizedName("powder_coal").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_coal"); powder_combine_steel = new Item().setUnlocalizedName("powder_combine_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_combine_steel"); @@ -2662,10 +2663,10 @@ public class ModItems { wiring_red_copper = new ItemWiring().setUnlocalizedName("wiring_red_copper").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":wiring_red_copper"); - pellet_rtg = new ItemRTGPellet(ItemHazard.pu238 * ItemHazard.billet * 3, true).setUnlocalizedName("pellet_rtg").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":pellet_rtg"); - pellet_rtg_weak = new ItemHazard(ItemHazard.pu238 * ItemHazard.billet).setUnlocalizedName("pellet_rtg_weak").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":pellet_rtg_weak"); - pellet_rtg_polonium = new ItemHazard(ItemHazard.po210 * ItemHazard.billet * 3, true).setUnlocalizedName("pellet_rtg_polonium").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":pellet_rtg_polonium"); - pellet_rtg_gold = new ItemHazard().addRadiation(ItemHazard.au198 * ItemHazard.billet * 3).addFire(15).toItem().setUnlocalizedName("pellet_rtg_gold").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":pellet_rtg_gold"); + pellet_rtg = new ItemRTGPellet(ItemHazard.pu238 * ItemHazard.rtg, true).setUnlocalizedName("pellet_rtg").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":pellet_rtg"); + pellet_rtg_weak = new ItemHazard(ItemHazard.u238 * ItemHazard.billet * 2 + ItemHazard.pu238 * ItemHazard.billet).setUnlocalizedName("pellet_rtg_weak").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":pellet_rtg_weak"); + pellet_rtg_polonium = new ItemHazard(ItemHazard.po210 * ItemHazard.rtg, true).setUnlocalizedName("pellet_rtg_polonium").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":pellet_rtg_polonium"); + pellet_rtg_gold = new ItemHazard().addRadiation(ItemHazard.au198 * ItemHazard.rtg).addFire(15).toItem().setUnlocalizedName("pellet_rtg_gold").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":pellet_rtg_gold"); tritium_deuterium_cake = new ItemCustomLore().setUnlocalizedName("tritium_deuterium_cake").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":tritium_deuterium_cake"); piston_selenium = new Item().setUnlocalizedName("piston_selenium").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":piston_selenium"); @@ -2706,8 +2707,8 @@ public class ModItems { cell_sas3 = new ItemHazard(ItemHazard.sa326 * ItemHazard.ingot, false, true).setUnlocalizedName("cell_sas3").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_sas3"); cell_anti_schrabidium = new ItemDrop().setUnlocalizedName("cell_anti_schrabidium").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_anti_schrabidium"); - demon_core_open = new ItemDemonCore().setUnlocalizedName("demon_core_open").setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":demon_core_open"); - demon_core_closed = new ItemHazard(100000F).setUnlocalizedName("demon_core_closed").setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":demon_core_closed"); + demon_core_open = new ItemDemonCore().addRadiation(5.0F).toItem().setUnlocalizedName("demon_core_open").setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":demon_core_open"); + demon_core_closed = new ItemHazard().addRadiation(100000F).addFire(25).toItem().setUnlocalizedName("demon_core_closed").setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":demon_core_closed"); particle_empty = new Item().setUnlocalizedName("particle_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":particle_empty"); particle_hydrogen = new Item().setUnlocalizedName("particle_hydrogen").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.particle_empty).setTextureName(RefStrings.MODID + ":particle_hydrogen"); @@ -3288,6 +3289,7 @@ public class ModItems { mp_warhead_15_boxcar = new ItemMissile().makeWarhead(WarheadType.TX, 250F, 7.5F, PartSize.SIZE_15).setWittyText("?!?!").setHealth(35F).setRarity(Rarity.LEGENDARY).setUnlocalizedName("mp_warhead_15_boxcar").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); mp_warhead_15_n2 = new ItemMissile().makeWarhead(WarheadType.N2, 100F, 5F, PartSize.SIZE_15).setWittyText("[screams geometrically]").setHealth(20F).setRarity(Rarity.RARE).setUnlocalizedName("mp_warhead_15_n2").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); mp_warhead_15_balefire = new ItemMissile().makeWarhead(WarheadType.BALEFIRE, 100F, 7.5F, PartSize.SIZE_15).setRarity(Rarity.LEGENDARY).setAuthor("VT-6/24").setHealth(15F).setWittyText("Hightower, never forgetti.").setUnlocalizedName("mp_warhead_15_balefire").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); + mp_warhead_15_turbine = new ItemMissile().makeWarhead(WarheadType.TURBINE, 200F, 5F, PartSize.SIZE_15).setRarity(Rarity.SEWS_CLOTHES_AND_SUCKS_HORSE_COCK).setHealth(250F).setUnlocalizedName("mp_warhead_15_turbine").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); mp_warhead_20_he = new ItemMissile().makeWarhead(WarheadType.HE, 15F, 1F, PartSize.SIZE_20) .setUnlocalizedName("mp_w_20").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); mp_chip_1 = new ItemMissile().makeChip(0.1F) .setUnlocalizedName("mp_c_1").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_c_1"); @@ -5821,6 +5823,7 @@ public class ModItems { GameRegistry.registerItem(mp_warhead_15_boxcar, mp_warhead_15_boxcar.getUnlocalizedName()); GameRegistry.registerItem(mp_warhead_15_n2, mp_warhead_15_n2.getUnlocalizedName()); GameRegistry.registerItem(mp_warhead_15_balefire, mp_warhead_15_balefire.getUnlocalizedName()); + GameRegistry.registerItem(mp_warhead_15_turbine, mp_warhead_15_turbine.getUnlocalizedName()); GameRegistry.registerItem(mp_warhead_20_he, mp_warhead_20_he.getUnlocalizedName()); GameRegistry.registerItem(mp_chip_1, mp_chip_1.getUnlocalizedName()); GameRegistry.registerItem(mp_chip_2, mp_chip_2.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/block/ItemBlockLore.java b/src/main/java/com/hbm/items/block/ItemBlockLore.java index 1e107129b..20f734dd0 100644 --- a/src/main/java/com/hbm/items/block/ItemBlockLore.java +++ b/src/main/java/com/hbm/items/block/ItemBlockLore.java @@ -107,21 +107,17 @@ public class ItemBlockLore extends ItemBlock { } } - @Override + @Override public EnumRarity getRarity(ItemStack stack) { - if(this.field_150939_a == ModBlocks.ore_schrabidium || this.field_150939_a == ModBlocks.ore_nether_schrabidium || - this.field_150939_a == ModBlocks.block_schrabidium || this.field_150939_a == ModBlocks.block_schrabidium_cluster || - this.field_150939_a == ModBlocks.block_schrabidium_fuel || this.field_150939_a == ModBlocks.block_solinium || - this.field_150939_a == ModBlocks.gravel_diamond || this.field_150939_a == ModBlocks.ore_gneiss_schrabidium || - this.field_150939_a == ModBlocks.block_schraranium || this.field_150939_a == ModBlocks.block_schrabidate) + if(this.field_150939_a == ModBlocks.gravel_diamond) return EnumRarity.rare; if(this.field_150939_a == ModBlocks.block_euphemium || this.field_150939_a == ModBlocks.block_euphemium_cluster || this.field_150939_a == ModBlocks.plasma || this.field_150939_a == ModBlocks.fwatz_plasma) return EnumRarity.epic; - - return EnumRarity.common; - } + + return EnumRarity.common; + } } diff --git a/src/main/java/com/hbm/items/block/ItemBlockSchrabidium.java b/src/main/java/com/hbm/items/block/ItemBlockSchrabidium.java new file mode 100644 index 000000000..159369f0f --- /dev/null +++ b/src/main/java/com/hbm/items/block/ItemBlockSchrabidium.java @@ -0,0 +1,17 @@ +package com.hbm.items.block; + +import net.minecraft.block.Block; +import net.minecraft.item.EnumRarity; +import net.minecraft.item.ItemStack; + +public class ItemBlockSchrabidium extends ItemBlockHazard { + + public ItemBlockSchrabidium(Block block) { + super(block); + } + + @Override + public EnumRarity getRarity(ItemStack stack) { + return EnumRarity.rare; + } +} diff --git a/src/main/java/com/hbm/items/special/ItemCustomLore.java b/src/main/java/com/hbm/items/special/ItemCustomLore.java index b416a394c..91a7e196d 100644 --- a/src/main/java/com/hbm/items/special/ItemCustomLore.java +++ b/src/main/java/com/hbm/items/special/ItemCustomLore.java @@ -85,6 +85,14 @@ public class ItemCustomLore extends Item { list.add("More powderful RTG pellet, made from finest polonium!"); } + if(this == ModItems.pellet_rtg_gold) + { + if(MainRegistry.polaroidID == 11) + list.add("it's that spicy gold"); + else + list.add("Made from a rare, highly unstable gold isotope."); + } + if(this == ModItems.pellet_cluster) { list.add("Used in multi purpose bombs:"); diff --git a/src/main/java/com/hbm/items/special/ItemDemonCore.java b/src/main/java/com/hbm/items/special/ItemDemonCore.java index 822f151e4..a03b32af6 100644 --- a/src/main/java/com/hbm/items/special/ItemDemonCore.java +++ b/src/main/java/com/hbm/items/special/ItemDemonCore.java @@ -12,10 +12,6 @@ import net.minecraft.util.EnumChatFormatting; public class ItemDemonCore extends ItemHazard { - public ItemDemonCore() { - super(5.0F); - } - @Override public boolean onEntityItemUpdate(EntityItem entityItem) { diff --git a/src/main/java/com/hbm/items/special/ItemDigamma.java b/src/main/java/com/hbm/items/special/ItemDigamma.java index 21e691fc6..a0079243b 100644 --- a/src/main/java/com/hbm/items/special/ItemDigamma.java +++ b/src/main/java/com/hbm/items/special/ItemDigamma.java @@ -20,6 +20,8 @@ public class ItemDigamma extends ItemHazard { public ItemDigamma(float radiation, int digamma) { super(radiation); + + //obacht! the particle's digamma value is "ticks until half life" while the superclass' interpretation is "simply add flat value" this.digamma = digamma; } diff --git a/src/main/java/com/hbm/items/special/ItemHazard.java b/src/main/java/com/hbm/items/special/ItemHazard.java index f4270fc3a..bf4118397 100644 --- a/src/main/java/com/hbm/items/special/ItemHazard.java +++ b/src/main/java/com/hbm/items/special/ItemHazard.java @@ -52,13 +52,22 @@ public class ItemHazard extends ItemCustomLore implements IItemHazard { public static final float sa327 = 17.5F; public static final float saf = 5.85F; + public static final float sr = sa326 * 0.1F; + public static final float trx = 25.0F; + public static final float trn = 0.1F; + public static final float yc = u; + public static final float fo = 10F; + public static final float nugget = 0.1F; public static final float ingot = 1.0F; + public static final float powder = ingot; public static final float block = 10.0F; + public static final float crystal = block; public static final float billet = 0.5F; + public static final float rtg = billet * 3; public static final float rod = 0.5F; - public static final float rod_dual = 1.0F; - public static final float rod_quad = 2.0F; + public static final float rod_dual = rod * 2; + public static final float rod_quad = rod * 4; ItemHazardModule module; @@ -105,7 +114,7 @@ public class ItemHazard extends ItemCustomLore implements IItemHazard { public ItemHazard(float radiation, boolean fire, boolean blinding) { this(); this.module.addRadiation(radiation); - this.module.addBlinding(); + if(blinding) this.module.addBlinding(); if(fire) this.module.addFire(5); } } diff --git a/src/main/java/com/hbm/items/weapon/ItemMissile.java b/src/main/java/com/hbm/items/weapon/ItemMissile.java index cfe4e4835..8252739b4 100644 --- a/src/main/java/com/hbm/items/weapon/ItemMissile.java +++ b/src/main/java/com/hbm/items/weapon/ItemMissile.java @@ -85,7 +85,8 @@ public class ItemMissile extends Item { BALEFIRE, SCHRAB, TAINT, - CLOUD + CLOUD, + TURBINE } public enum FuelType { @@ -268,6 +269,8 @@ public class ItemMissile extends Item { return EnumChatFormatting.DARK_PURPLE + "Taint"; case CLOUD: return EnumChatFormatting.LIGHT_PURPLE + "Cloud"; + case TURBINE: + return (System.currentTimeMillis() % 1000 < 500 ? EnumChatFormatting.RED : EnumChatFormatting.LIGHT_PURPLE) + "Turbine"; default: return EnumChatFormatting.BOLD + "N/A"; } diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 32fdeb302..134aeebc9 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -561,12 +561,11 @@ public class ClientProxy extends ServerProxy { Iterator it = MissilePart.parts.entrySet().iterator(); - while (it.hasNext()) { - Map.Entry pair = (Map.Entry)it.next(); - //System.out.println(pair.getKey() + " = " + pair.getValue()); - MissilePart part = (MissilePart)pair.getValue(); + while(it.hasNext()) { + Map.Entry pair = (Map.Entry) it.next(); + MissilePart part = (MissilePart) pair.getValue(); MinecraftForgeClient.registerItemRenderer(part.part, new ItemRenderMissilePart(part)); - } + } MinecraftForgeClient.registerItemRenderer(ModItems.missile_custom, new ItemRenderMissile()); } diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 971aa3e84..b9674305c 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -712,6 +712,7 @@ public class ResourceManager { public static final IModelCustom mp_w_15_boxcar = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_parts/mp_w_15_boxcar.obj")); public static final IModelCustom mp_w_15_n2 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_parts/mp_w_15_n2.obj")); public static final IModelCustom mp_w_15_balefire = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_parts/mp_w_15_balefire.obj")); + public static final IModelCustom mp_w_15_turbine = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_parts/mp_w_15_turbine.obj")); public static final IModelCustom mp_w_20 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_parts/mp_w_20.obj")); ////Texture Entities @@ -971,6 +972,7 @@ public class ResourceManager { public static final ResourceLocation mp_w_15_nuclear_shark_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/warheads/mp_w_15_nuclear_shark.png"); public static final ResourceLocation mp_w_15_n2_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/warheads/mp_w_15_n2.png"); public static final ResourceLocation mp_w_15_balefire_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/warheads/mp_w_15_balefire.png"); + public static final ResourceLocation mp_w_15_turbine_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/warheads/mp_w_15_turbine.png"); //ISBRHs public static final IModelCustom scaffold = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/scaffold.obj")); diff --git a/src/main/java/com/hbm/modules/ItemHazardModule.java b/src/main/java/com/hbm/modules/ItemHazardModule.java index df04efa36..63bab0e17 100644 --- a/src/main/java/com/hbm/modules/ItemHazardModule.java +++ b/src/main/java/com/hbm/modules/ItemHazardModule.java @@ -3,7 +3,6 @@ package com.hbm.modules; import java.util.List; import com.hbm.inventory.BreederRecipes; -import com.hbm.items.special.ItemHazard; import com.hbm.util.ArmorUtil; import com.hbm.util.ContaminationUtil; import com.hbm.util.I18nUtil; @@ -62,7 +61,7 @@ public class ItemHazardModule { ContaminationUtil.applyRadData(entity, this.radiation * mod / 20F); if(this.digamma > 0) - ContaminationUtil.applyDigammaData(entity, 1F / ((float) digamma)); + ContaminationUtil.applyDigammaData(entity, this.digamma * mod / 20F); if(this.fire > 0) entity.setFire(this.fire); @@ -113,7 +112,7 @@ public class ItemHazardModule { } if(this.digamma > 0) { - float d = ((int) ((1000F / digamma) * 10F)) / 10F; + float d = ((int) (digamma * 10000F)) / 10F; list.add(EnumChatFormatting.RED + "[" + I18nUtil.resolveKey("trait.digamma") + "]"); list.add(EnumChatFormatting.DARK_RED + "" + d + "mDRX/s"); } diff --git a/src/main/java/com/hbm/render/entity/projectile/RenderBullet.java b/src/main/java/com/hbm/render/entity/projectile/RenderBullet.java index 591a3babb..11ea0b503 100644 --- a/src/main/java/com/hbm/render/entity/projectile/RenderBullet.java +++ b/src/main/java/com/hbm/render/entity/projectile/RenderBullet.java @@ -5,15 +5,21 @@ import java.util.Random; import org.lwjgl.opengl.GL11; import com.hbm.handler.BulletConfiguration; +import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import com.hbm.main.ResourceManager; import com.hbm.render.model.ModelBaleflare; import com.hbm.render.model.ModelBullet; import com.hbm.render.util.RenderSparks; +import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.entity.Render; +import net.minecraft.client.renderer.entity.RenderItem; +import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.entity.Entity; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; public class RenderBullet extends Render { @@ -36,12 +42,13 @@ public class RenderBullet extends Render { GL11.glRotatef(bullet.prevRotationPitch + (bullet.rotationPitch - bullet.prevRotationPitch) * f1 + 180, 0.0F, 0.0F, 1.0F); GL11.glScalef(1.5F, 1.5F, 1.5F); - - GL11.glRotatef(new Random(bullet.getEntityId()).nextInt(90) - 45, 1.0F, 0.0F, 0.0F); int style = bullet.getDataWatcher().getWatchableObjectByte(16); int trail = bullet.getDataWatcher().getWatchableObjectByte(17); + if(style != BulletConfiguration.STYLE_BLADE) + GL11.glRotatef(new Random(bullet.getEntityId()).nextInt(90) - 45, 1.0F, 0.0F, 0.0F); + GL11.glEnable(GL11.GL_CULL_FACE); switch(style) { @@ -60,13 +67,14 @@ public class RenderBullet extends Render { case BulletConfiguration.STYLE_ORB: renderOrb(trail); break; case BulletConfiguration.STYLE_METEOR: renderMeteor(trail); break; case BulletConfiguration.STYLE_APDS: renderAPDS(); break; + case BulletConfiguration.STYLE_BLADE: renderBlade(); break; default: renderBullet(trail); break; } GL11.glPopMatrix(); } - + private void renderBullet(int type) { if (type == 2) { @@ -440,6 +448,26 @@ public class RenderBullet extends Render { GL11.glPopMatrix(); } + + private void renderBlade() { + GL11.glPushMatrix(); + + EntityItem dummy = new EntityItem(Minecraft.getMinecraft().theWorld, 0, 0, 0, new ItemStack(ModItems.blade_titanium)); + dummy.getEntityItem().stackSize = 1; + dummy.hoverStart = 0.0F; + + GL11.glRotated(90, 0, 0, 1); + GL11.glTranslated(0, 0.5, 0); + GL11.glRotated(System.currentTimeMillis() % 360, 1, 0, 0); + GL11.glTranslated(0, -0.5, 0); + GL11.glRotated(90, 0, 1, 0); + GL11.glScaled(1, 2, 1); + RenderItem.renderInFrame = true; + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); + RenderItem.renderInFrame = false; + + GL11.glPopMatrix(); + } @Override protected ResourceLocation getEntityTexture(Entity p_110775_1_) { diff --git a/src/main/java/com/hbm/render/util/MissilePart.java b/src/main/java/com/hbm/render/util/MissilePart.java index cafb35ddb..8471f6be4 100644 --- a/src/main/java/com/hbm/render/util/MissilePart.java +++ b/src/main/java/com/hbm/render/util/MissilePart.java @@ -168,6 +168,7 @@ public class MissilePart { MissilePart.registerPart(ModItems.mp_warhead_15_boxcar, PartType.WARHEAD, 2.25, 7.5, ResourceManager.mp_w_15_boxcar, ResourceManager.boxcar_tex); MissilePart.registerPart(ModItems.mp_warhead_15_n2, PartType.WARHEAD, 3, 2, ResourceManager.mp_w_15_n2, ResourceManager.mp_w_15_n2_tex); MissilePart.registerPart(ModItems.mp_warhead_15_balefire, PartType.WARHEAD, 2.75, 2, ResourceManager.mp_w_15_balefire, ResourceManager.mp_w_15_balefire_tex); + MissilePart.registerPart(ModItems.mp_warhead_15_turbine, PartType.WARHEAD, 2.25, 2, ResourceManager.mp_w_15_turbine, ResourceManager.mp_w_15_turbine_tex); // MissilePart.registerPart(ModItems.mp_warhead_20_he, PartType.WARHEAD, 3, 2.25, ResourceManager.mp_w_20, ResourceManager.universal); diff --git a/src/main/java/com/hbm/render/util/RenderItemStack.java b/src/main/java/com/hbm/render/util/RenderItemStack.java index e64645de2..52a84521a 100644 --- a/src/main/java/com/hbm/render/util/RenderItemStack.java +++ b/src/main/java/com/hbm/render/util/RenderItemStack.java @@ -1,26 +1,10 @@ package com.hbm.render.util; -import java.util.concurrent.Callable; - import org.lwjgl.opengl.GL11; -import net.minecraft.block.Block; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.renderer.OpenGlHelper; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.entity.RenderItem; -import net.minecraft.client.renderer.texture.TextureManager; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.crash.CrashReport; -import net.minecraft.crash.CrashReportCategory; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; -import net.minecraft.util.ReportedException; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.ForgeHooksClient; public class RenderItemStack { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePlasmaHeater.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePlasmaHeater.java index a96cf53a6..b19007ad7 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePlasmaHeater.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePlasmaHeater.java @@ -57,12 +57,12 @@ public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase impleme int powerReq = 10000; int convert = Math.min(tanks[0].getFill(), tanks[1].getFill()); - convert = Math.min(convert, (plasma.getMaxFill() - plasma.getFill()) * 2); + convert = Math.min(convert, (plasma.getMaxFill() - plasma.getFill())); convert = Math.min(convert, maxConv); convert = (int) Math.min(convert, power / powerReq); convert = Math.max(0, convert); - if(convert > 0) { + if(convert > 0 && plasma.getTankType() != FluidType.NONE) { tanks[0].setFill(tanks[0].getFill() - convert); tanks[1].setFill(tanks[1].getFill() - convert); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityRadiobox.java b/src/main/java/com/hbm/tileentity/machine/TileEntityRadiobox.java index f2c2fdb8d..246f0ec1e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityRadiobox.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityRadiobox.java @@ -9,6 +9,7 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.Entity; import net.minecraft.entity.monster.EntityMob; +import net.minecraft.entity.monster.IMob; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; @@ -31,9 +32,9 @@ public class TileEntityRadiobox extends TileEntity implements IConsumer { int range = 15; - List entities = worldObj.getEntitiesWithinAABB(EntityMob.class, AxisAlignedBB.getBoundingBox(xCoord - range, yCoord - range, zCoord - range, xCoord + range, yCoord + range, zCoord + range)); - for(Entity entity : entities) - entity.attackEntityFrom(ModDamageSource.enervation, 20.0F); + List entities = worldObj.getEntitiesWithinAABB(IMob.class, AxisAlignedBB.getBoundingBox(xCoord - range, yCoord - range, zCoord - range, xCoord + range, yCoord + range, zCoord + range)); + for(IMob entity : entities) + ((Entity)entity).attackEntityFrom(ModDamageSource.enervation, 20.0F); } } diff --git a/src/main/java/com/hbm/util/ContaminationUtil.java b/src/main/java/com/hbm/util/ContaminationUtil.java index 69ddb0b23..6111542ff 100644 --- a/src/main/java/com/hbm/util/ContaminationUtil.java +++ b/src/main/java/com/hbm/util/ContaminationUtil.java @@ -217,9 +217,9 @@ public class ContaminationUtil { double digamma = ((int)(HbmLivingProps.getDigamma(player) * 100)) / 100D; double halflife = ((int)((1D - Math.pow(0.5, digamma)) * 100)) / 100D; - player.addChatMessage(new ChatComponentText("===== Ϝ ").appendSibling(new ChatComponentTranslation("digamma.title")).appendSibling(new ChatComponentText(" Ϝ =====")).setChatStyle(new ChatStyle().setColor(EnumChatFormatting.LIGHT_PURPLE))); + player.addChatMessage(new ChatComponentText("===== Ϝ ").appendSibling(new ChatComponentTranslation("digamma.title")).appendSibling(new ChatComponentText(" Ϝ =====")).setChatStyle(new ChatStyle().setColor(EnumChatFormatting.DARK_PURPLE))); player.addChatMessage(new ChatComponentTranslation("digamma.playerDigamma").appendSibling(new ChatComponentText(EnumChatFormatting.RED + " " + digamma + " DRX")).setChatStyle(new ChatStyle().setColor(EnumChatFormatting.LIGHT_PURPLE))); player.addChatMessage(new ChatComponentTranslation("digamma.playerHealth").appendSibling(new ChatComponentText(EnumChatFormatting.RED + " " + halflife + "%")).setChatStyle(new ChatStyle().setColor(EnumChatFormatting.LIGHT_PURPLE))); - player.addChatMessage(new ChatComponentTranslation("digamma.playerRes").appendSibling(new ChatComponentText(EnumChatFormatting.DARK_BLUE + " " + "N/A")).setChatStyle(new ChatStyle().setColor(EnumChatFormatting.LIGHT_PURPLE))); + player.addChatMessage(new ChatComponentTranslation("digamma.playerRes").appendSibling(new ChatComponentText(EnumChatFormatting.BLUE + " " + "N/A")).setChatStyle(new ChatStyle().setColor(EnumChatFormatting.LIGHT_PURPLE))); } } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 1053da211..30c1db122 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -1611,6 +1611,7 @@ item.mp_warhead_15_incendiary.name=Größe 15 Brandsprengkopf item.mp_warhead_15_n2.name=Größe 15 N²-Mine item.mp_warhead_15_nuclear.name=Größe 15 Atomsprengkopf "Tantchen Bertha" item.mp_warhead_15_nuclear_shark.name=Größe 15 Atomsprengkopf "Billigsdorfer Kugelwilli" +item.mp_warhead_15_turbine.name=Größe 15 Düsentriebwerk item.multi_kit.name=Mehrzweckbomben Kit item.multitool_beam.name=Power Fist (Zapper) item.multitool_decon.name=Power Fist (Dekontaminator) diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index d72b9ffbb..76dd84807 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1613,6 +1613,7 @@ item.mp_warhead_15_incendiary.name=Size 15 Incendiary Warhead item.mp_warhead_15_n2.name=Size 15 N² Mine item.mp_warhead_15_nuclear.name=Size 15 Nuclear Warhead item.mp_warhead_15_nuclear_shark.name=Size 15 Nuclear Warhead +item.mp_warhead_15_turbine.name=Size 15 Jet Engine item.multi_kit.name=Multi Purpose Bomb Kit item.multitool_beam.name=Power Fist (Zapper) item.multitool_decon.name=Power Fist (Decontaminator) diff --git a/src/main/resources/assets/hbm/models/missile_parts/mp_w_15_turbine.obj b/src/main/resources/assets/hbm/models/missile_parts/mp_w_15_turbine.obj new file mode 100644 index 000000000..a4d2da425 --- /dev/null +++ b/src/main/resources/assets/hbm/models/missile_parts/mp_w_15_turbine.obj @@ -0,0 +1,927 @@ +# Blender v2.79 (sub 0) OBJ File: 'mp_w_15_turbine.blend' +# www.blender.org +o Circle +v 0.000000 0.000000 -0.750000 +v -0.375000 0.000000 -0.649519 +v -0.649519 0.000000 -0.375000 +v -0.750000 0.000000 0.000000 +v -0.649519 0.000000 0.375000 +v -0.375000 0.000000 0.649519 +v -0.000000 0.000000 0.750000 +v 0.375000 0.000000 0.649519 +v 0.649519 0.000000 0.375000 +v 0.750000 0.000000 0.000000 +v 0.649519 0.000000 -0.375000 +v 0.375000 0.000000 -0.649519 +v 0.000000 0.000000 -0.625000 +v -0.312500 0.000000 -0.541266 +v -0.541266 0.000000 -0.312500 +v -0.625000 0.000000 0.000000 +v -0.541266 0.000000 0.312500 +v -0.312500 0.000000 0.541266 +v -0.000000 0.000000 0.625000 +v 0.312500 0.000000 0.541266 +v 0.541266 0.000000 0.312500 +v 0.625000 0.000000 0.000000 +v 0.541266 0.000000 -0.312500 +v 0.312500 0.000000 -0.541266 +v 0.000000 2.000000 -0.750000 +v -0.375000 2.000000 -0.649519 +v -0.649519 2.000000 -0.375000 +v -0.750000 2.000000 0.000000 +v -0.649519 2.000000 0.375000 +v -0.375000 2.000000 0.649519 +v -0.000000 2.000000 0.750000 +v 0.375000 2.000000 0.649519 +v 0.649519 2.000000 0.375000 +v 0.750000 2.000000 0.000000 +v 0.649519 2.000000 -0.375000 +v 0.375000 2.000000 -0.649519 +v 0.000000 2.250000 -0.625000 +v -0.312500 2.250000 -0.541266 +v -0.541266 2.250000 -0.312500 +v -0.625000 2.250000 0.000000 +v -0.541266 2.250000 0.312500 +v -0.312500 2.250000 0.541266 +v -0.000000 2.250000 0.625000 +v 0.312500 2.250000 0.541266 +v 0.541266 2.250000 0.312500 +v 0.625000 2.250000 0.000000 +v 0.541266 2.250000 -0.312500 +v 0.312500 2.250000 -0.541266 +v 0.000000 2.250000 -0.062500 +v 0.044194 2.250000 -0.044194 +v 0.000000 0.000000 -0.125000 +v 0.000000 2.125000 -0.125000 +v 0.088388 0.000000 -0.088388 +v 0.088388 2.125000 -0.088388 +v 0.125000 0.000000 0.000000 +v 0.125000 2.125000 0.000000 +v 0.088388 0.000000 0.088388 +v 0.088388 2.125000 0.088388 +v -0.000000 0.000000 0.125000 +v -0.000000 2.125000 0.125000 +v -0.088388 0.000000 0.088388 +v -0.088388 2.125000 0.088388 +v -0.125000 0.000000 -0.000000 +v -0.125000 2.125000 -0.000000 +v -0.088388 0.000000 -0.088388 +v -0.088388 2.125000 -0.088388 +v 0.062500 2.250000 0.000000 +v 0.044194 2.250000 0.044194 +v 0.000000 2.250000 0.062500 +v -0.044194 2.250000 0.044194 +v -0.062500 2.250000 -0.000000 +v -0.044194 2.250000 -0.044194 +v 0.062500 1.968750 0.054127 +v 0.562500 1.968750 0.054127 +v 0.062500 2.031250 -0.054127 +v 0.562500 2.031250 -0.054127 +v -0.062500 1.968750 -0.054127 +v -0.562500 1.968750 -0.054127 +v -0.062500 2.031250 0.054127 +v -0.562500 2.031250 0.054127 +v 0.054127 1.968750 -0.062500 +v 0.054127 1.968750 -0.562500 +v -0.054127 2.031250 -0.062500 +v -0.054127 2.031250 -0.562500 +v -0.054127 1.968750 0.062500 +v -0.054127 1.968750 0.562500 +v 0.054127 2.031250 0.062500 +v 0.054127 2.031250 0.562500 +v 0.082467 1.968750 -0.005921 +v 0.436021 1.968750 -0.359474 +v 0.005921 2.031250 -0.082467 +v 0.359474 2.031250 -0.436021 +v -0.082467 1.968750 0.005921 +v -0.436021 1.968750 0.359474 +v -0.005921 2.031250 0.082467 +v -0.359474 2.031250 0.436021 +v -0.005921 1.968750 -0.082467 +v -0.359474 1.968750 -0.436021 +v -0.082467 2.031250 -0.005921 +v -0.436021 2.031250 -0.359474 +v 0.005921 1.968750 0.082467 +v 0.359474 1.968750 0.436021 +v 0.082467 2.031250 0.005921 +v 0.436021 2.031250 0.359474 +v 0.081190 1.968750 0.015625 +v 0.514203 1.968750 -0.234375 +v 0.027063 2.031250 -0.078125 +v 0.460076 2.031250 -0.328125 +v -0.081190 1.968750 -0.015625 +v -0.514203 1.968750 0.234375 +v -0.027063 2.031250 0.078125 +v -0.460076 2.031250 0.328125 +v 0.015625 1.968750 -0.081190 +v -0.234375 1.968750 -0.514203 +v -0.078125 2.031250 -0.027063 +v -0.328125 2.031250 -0.460076 +v -0.015625 1.968750 0.081190 +v 0.234375 1.968750 0.514203 +v 0.078125 2.031250 0.027063 +v 0.328125 2.031250 0.460076 +v 0.068458 1.968750 -0.046361 +v 0.197868 1.968750 -0.529324 +v -0.036106 2.031250 -0.074379 +v 0.093303 2.031250 -0.557342 +v -0.068458 1.968750 0.046361 +v -0.197868 1.968750 0.529324 +v 0.036106 2.031250 0.074379 +v -0.093303 2.031250 0.557342 +v -0.046361 1.968750 -0.068458 +v -0.529324 1.968750 -0.197868 +v -0.074379 2.031250 0.036106 +v -0.557342 2.031250 -0.093303 +v 0.046361 1.968750 0.068458 +v 0.529324 1.968750 0.197868 +v 0.074379 2.031250 -0.036106 +v 0.557342 2.031250 0.093303 +v 0.078125 1.968750 -0.027063 +v 0.328125 1.968750 -0.460076 +v -0.015625 2.031250 -0.081190 +v 0.234375 2.031250 -0.514203 +v -0.078125 1.968750 0.027063 +v -0.328125 1.968750 0.460076 +v 0.015625 2.031250 0.081190 +v -0.234375 2.031250 0.514203 +v -0.027063 1.968750 -0.078125 +v -0.460076 1.968750 -0.328125 +v -0.081190 2.031250 0.015625 +v -0.514203 2.031250 -0.234375 +v 0.027063 1.968750 0.078125 +v 0.460076 1.968750 0.328125 +v 0.081190 2.031250 -0.015625 +v 0.514203 2.031250 0.234375 +v 0.036106 1.968750 -0.074379 +v -0.093303 1.968750 -0.557342 +v -0.068458 2.031250 -0.046361 +v -0.197868 2.031250 -0.529324 +v -0.036106 1.968750 0.074379 +v 0.093304 1.968750 0.557342 +v 0.068458 2.031250 0.046361 +v 0.197868 2.031250 0.529324 +v -0.074379 1.968750 -0.036106 +v -0.557342 1.968750 0.093304 +v -0.046361 2.031250 0.068458 +v -0.529324 2.031250 0.197868 +v 0.074379 1.968750 0.036106 +v 0.557342 1.968750 -0.093304 +v 0.046361 2.031250 -0.068458 +v 0.529324 2.031250 -0.197868 +v 0.062500 1.968750 0.054127 +v 0.562500 1.968750 0.054127 +v 0.062500 2.031250 -0.054127 +v 0.562500 2.031250 -0.054127 +v -0.062500 1.968750 -0.054127 +v -0.562500 1.968750 -0.054127 +v -0.062500 2.031250 0.054127 +v -0.562500 2.031250 0.054127 +v 0.054127 1.968750 -0.062500 +v 0.054127 1.968750 -0.562500 +v -0.054127 2.031250 -0.062500 +v -0.054127 2.031250 -0.562500 +v -0.054127 1.968750 0.062500 +v -0.054127 1.968750 0.562500 +v 0.054127 2.031250 0.062500 +v 0.054127 2.031250 0.562500 +v 0.082467 1.968750 -0.005921 +v 0.436021 1.968750 -0.359474 +v 0.005921 2.031250 -0.082467 +v 0.359474 2.031250 -0.436021 +v -0.082467 1.968750 0.005921 +v -0.436021 1.968750 0.359474 +v -0.005921 2.031250 0.082467 +v -0.359474 2.031250 0.436021 +v -0.005921 1.968750 -0.082467 +v -0.359474 1.968750 -0.436021 +v -0.082467 2.031250 -0.005921 +v -0.436021 2.031250 -0.359474 +v 0.005921 1.968750 0.082467 +v 0.359474 1.968750 0.436021 +v 0.082467 2.031250 0.005921 +v 0.436021 2.031250 0.359474 +v 0.081190 1.968750 0.015625 +v 0.514203 1.968750 -0.234375 +v 0.027063 2.031250 -0.078125 +v 0.460076 2.031250 -0.328125 +v -0.081190 1.968750 -0.015625 +v -0.514203 1.968750 0.234375 +v -0.027063 2.031250 0.078125 +v -0.460076 2.031250 0.328125 +v 0.015625 1.968750 -0.081190 +v -0.234375 1.968750 -0.514203 +v -0.078125 2.031250 -0.027063 +v -0.328125 2.031250 -0.460076 +v -0.015625 1.968750 0.081190 +v 0.234375 1.968750 0.514203 +v 0.078125 2.031250 0.027063 +v 0.328125 2.031250 0.460076 +v 0.068458 1.968750 -0.046361 +v 0.197868 1.968750 -0.529324 +v -0.036106 2.031250 -0.074379 +v 0.093303 2.031250 -0.557342 +v -0.068458 1.968750 0.046361 +v -0.197868 1.968750 0.529324 +v 0.036106 2.031250 0.074379 +v -0.093303 2.031250 0.557342 +v -0.046361 1.968750 -0.068458 +v -0.529324 1.968750 -0.197868 +v -0.074379 2.031250 0.036106 +v -0.557342 2.031250 -0.093303 +v 0.046361 1.968750 0.068458 +v 0.529324 1.968750 0.197868 +v 0.074379 2.031250 -0.036106 +v 0.557342 2.031250 0.093303 +v 0.078125 1.968750 -0.027063 +v 0.328125 1.968750 -0.460076 +v -0.015625 2.031250 -0.081190 +v 0.234375 2.031250 -0.514203 +v -0.078125 1.968750 0.027063 +v -0.328125 1.968750 0.460076 +v 0.015625 2.031250 0.081190 +v -0.234375 2.031250 0.514203 +v -0.027063 1.968750 -0.078125 +v -0.460076 1.968750 -0.328125 +v -0.081190 2.031250 0.015625 +v -0.514203 2.031250 -0.234375 +v 0.027063 1.968750 0.078125 +v 0.460076 1.968750 0.328125 +v 0.081190 2.031250 -0.015625 +v 0.514203 2.031250 0.234375 +v 0.036106 1.968750 -0.074379 +v -0.093303 1.968750 -0.557342 +v -0.068458 2.031250 -0.046361 +v -0.197868 2.031250 -0.529324 +v -0.036106 1.968750 0.074379 +v 0.093304 1.968750 0.557342 +v 0.068458 2.031250 0.046361 +v 0.197868 2.031250 0.529324 +v -0.074379 1.968750 -0.036106 +v -0.557342 1.968750 0.093304 +v -0.046361 2.031250 0.068458 +v -0.529324 2.031250 0.197868 +v 0.074379 1.968750 0.036106 +v 0.557342 1.968750 -0.093304 +v 0.046361 2.031250 -0.068458 +v 0.529324 2.031250 -0.197868 +vt 0.225000 0.027027 +vt 0.150000 0.459459 +vt 0.150000 0.027027 +vt 0.900000 0.027027 +vt 0.825000 0.459459 +vt 0.825000 0.027027 +vt 0.525000 0.027027 +vt 0.450000 0.459459 +vt 0.450000 0.027027 +vt 0.300000 0.027027 +vt 0.225000 0.459459 +vt 0.075000 0.027027 +vt 0.000000 0.459459 +vt 0.000000 0.027027 +vt 0.600000 0.027027 +vt 0.525000 0.459459 +vt 0.750000 0.027027 +vt 0.675000 0.459459 +vt 0.675000 0.027027 +vt 0.375000 0.027027 +vt 0.300000 0.459459 +vt 0.075000 0.459459 +vt 0.600000 0.459459 +vt 0.750000 0.459459 +vt 0.375000 0.459459 +vt 0.012500 0.513514 +vt 0.075000 1.000000 +vt 0.012500 1.000000 +vt 0.537500 0.513514 +vt 0.600000 1.000000 +vt 0.537500 1.000000 +vt 0.687500 0.513514 +vt 0.750000 1.000000 +vt 0.687500 1.000000 +vt 0.312500 0.513514 +vt 0.375000 1.000000 +vt 0.312500 1.000000 +vt 0.087500 0.513514 +vt 0.150000 1.000000 +vt 0.087500 1.000000 +vt 0.612500 0.513514 +vt 0.675000 1.000000 +vt 0.612500 1.000000 +vt 0.762500 0.513514 +vt 0.825000 1.000000 +vt 0.762500 1.000000 +vt 0.387500 0.513514 +vt 0.450000 1.000000 +vt 0.387500 1.000000 +vt 0.162500 0.513514 +vt 0.225000 1.000000 +vt 0.162500 1.000000 +vt 0.837500 0.513514 +vt 0.900000 1.000000 +vt 0.837500 1.000000 +vt 0.462500 0.513514 +vt 0.525000 1.000000 +vt 0.462500 1.000000 +vt 0.237500 0.513514 +vt 0.300000 1.000000 +vt 0.237500 1.000000 +vt 0.600000 0.513514 +vt 0.825000 0.513514 +vt 0.900000 0.459459 +vt 0.612500 0.000000 +vt 0.975000 0.486486 +vt 0.962500 0.513514 +vt 0.962500 0.486486 +vt 0.962500 0.027027 +vt 0.975000 0.027027 +vt 0.687500 0.000000 +vt 0.912500 0.486486 +vt 0.900000 0.513514 +vt 0.900000 0.486486 +vt 0.950000 0.027027 +vt 0.462500 0.000000 +vt 0.950000 0.513514 +vt 0.950000 0.486486 +vt 0.937500 0.027027 +vt 0.450000 0.000000 +vt 0.925000 0.486486 +vt 0.912500 0.513514 +vt 0.937500 0.486486 +vt 0.925000 0.027027 +vt 0.312500 0.000000 +vt 0.987500 0.513514 +vt 0.975000 0.513514 +vt 0.912500 0.027027 +vt 0.237500 0.000000 +vt 0.937500 0.513514 +vt 0.925000 0.513514 +vt 0.900000 0.027027 +vt 1.000000 0.486486 +vt 0.987500 0.486486 +vt 0.900365 0.533587 +vt 0.906432 0.513908 +vt 0.924635 0.520468 +vt 0.987500 0.027027 +vt 1.000000 0.027027 +vt 0.537500 0.000000 +vt 0.923469 0.019443 +vt 0.907016 0.025372 +vt 0.901531 0.007585 +vt 0.825000 0.000000 +vt 0.837500 0.000000 +vt 0.012500 0.000000 +vt 0.087500 0.000000 +vt 0.162500 0.000000 +vt 0.925000 0.648649 +vt 0.900000 0.540541 +vt 0.925000 0.540541 +vt 0.925000 0.648649 +vt 0.900000 0.540541 +vt 0.925000 0.540541 +vt 0.925000 0.648649 +vt 0.900000 0.540541 +vt 0.925000 0.540541 +vt 0.925000 0.648649 +vt 0.900000 0.540541 +vt 0.925000 0.540541 +vt 0.925000 0.648649 +vt 0.900000 0.540541 +vt 0.925000 0.540541 +vt 0.925000 0.648649 +vt 0.900000 0.540541 +vt 0.925000 0.540541 +vt 0.925000 0.648649 +vt 0.900000 0.540541 +vt 0.925000 0.540541 +vt 0.925000 0.648649 +vt 0.900000 0.540541 +vt 0.925000 0.540541 +vt 0.925000 0.648649 +vt 0.900000 0.540541 +vt 0.925000 0.540541 +vt 0.925000 0.648649 +vt 0.900000 0.540541 +vt 0.925000 0.540541 +vt 0.925000 0.540541 +vt 0.900000 0.648649 +vt 0.900000 0.540541 +vt 0.925000 0.648649 +vt 0.900000 0.540541 +vt 0.925000 0.540541 +vt 0.925000 0.648649 +vt 0.900000 0.540541 +vt 0.925000 0.540541 +vt 0.925000 0.648649 +vt 0.900000 0.540541 +vt 0.925000 0.540541 +vt 0.925000 0.648649 +vt 0.900000 0.540541 +vt 0.925000 0.540541 +vt 0.925000 0.648649 +vt 0.900000 0.540541 +vt 0.925000 0.540541 +vt 0.925000 0.648649 +vt 0.900000 0.540541 +vt 0.925000 0.540541 +vt 0.925000 0.648649 +vt 0.900000 0.540541 +vt 0.925000 0.540541 +vt 0.925000 0.540541 +vt 0.900000 0.648649 +vt 0.900000 0.540541 +vt 0.925000 0.648649 +vt 0.900000 0.540541 +vt 0.925000 0.540541 +vt 0.925000 0.648649 +vt 0.900000 0.540541 +vt 0.925000 0.540541 +vt 0.925000 0.648649 +vt 0.900000 0.540541 +vt 0.925000 0.540541 +vt 0.925000 0.648649 +vt 0.900000 0.540541 +vt 0.925000 0.540541 +vt 0.925000 0.540541 +vt 0.900000 0.648649 +vt 0.900000 0.540541 +vt 0.900000 0.540541 +vt 0.925000 0.648649 +vt 0.925000 0.540541 +vt 0.900000 0.540541 +vt 0.925000 0.648649 +vt 0.925000 0.540541 +vt 0.900000 0.540541 +vt 0.925000 0.648649 +vt 0.925000 0.540541 +vt 0.900000 0.540541 +vt 0.925000 0.648649 +vt 0.925000 0.540541 +vt 0.900000 0.540541 +vt 0.925000 0.648649 +vt 0.925000 0.540541 +vt 0.900000 0.540541 +vt 0.925000 0.648649 +vt 0.925000 0.540541 +vt 0.900000 0.540541 +vt 0.925000 0.648649 +vt 0.925000 0.540541 +vt 0.900000 0.540541 +vt 0.925000 0.648649 +vt 0.925000 0.540541 +vt 0.900000 0.540541 +vt 0.925000 0.648649 +vt 0.925000 0.540541 +vt 0.900000 0.540541 +vt 0.925000 0.648649 +vt 0.925000 0.540541 +vt 0.925000 0.540541 +vt 0.900000 0.648649 +vt 0.925000 0.648649 +vt 0.900000 0.540541 +vt 0.925000 0.648649 +vt 0.925000 0.540541 +vt 0.900000 0.540541 +vt 0.925000 0.648649 +vt 0.925000 0.540541 +vt 0.900000 0.540541 +vt 0.925000 0.648649 +vt 0.925000 0.540541 +vt 0.900000 0.540541 +vt 0.925000 0.648649 +vt 0.925000 0.540541 +vt 0.900000 0.540541 +vt 0.925000 0.648649 +vt 0.925000 0.540541 +vt 0.900000 0.540541 +vt 0.925000 0.648649 +vt 0.925000 0.540541 +vt 0.900000 0.540541 +vt 0.925000 0.648649 +vt 0.925000 0.540541 +vt 0.925000 0.540541 +vt 0.900000 0.648649 +vt 0.925000 0.648649 +vt 0.900000 0.540541 +vt 0.925000 0.648649 +vt 0.925000 0.540541 +vt 0.900000 0.540541 +vt 0.925000 0.648649 +vt 0.925000 0.540541 +vt 0.900000 0.540541 +vt 0.925000 0.648649 +vt 0.925000 0.540541 +vt 0.900000 0.540541 +vt 0.925000 0.648649 +vt 0.925000 0.540541 +vt 0.925000 0.540541 +vt 0.900000 0.648649 +vt 0.925000 0.648649 +vt 0.075000 0.513514 +vt 0.750000 0.513514 +vt 0.375000 0.513514 +vt 0.150000 0.513514 +vt 0.675000 0.513514 +vt 0.450000 0.513514 +vt 0.225000 0.513514 +vt 0.900000 0.513514 +vt 0.525000 0.513514 +vt 0.300000 0.513514 +vt 0.675000 0.000000 +vt 0.750000 0.000000 +vt 0.525000 0.000000 +vt 0.387500 0.000000 +vt 0.375000 0.000000 +vt 0.300000 0.000000 +vt 1.000000 0.513514 +vt 0.924635 0.533587 +vt 0.918567 0.540146 +vt 0.906432 0.540146 +vt 0.900365 0.520468 +vt 0.918567 0.513908 +vt 0.600000 0.000000 +vt 0.907016 0.001655 +vt 0.917984 0.001655 +vt 0.923469 0.007585 +vt 0.917984 0.025372 +vt 0.901531 0.019443 +vt 0.762500 0.000000 +vt 0.900000 0.000000 +vt 0.075000 0.000000 +vt 0.150000 0.000000 +vt 0.225000 0.000000 +vt 0.900000 0.648649 +vt 0.900000 0.648649 +vt 0.900000 0.648649 +vt 0.900000 0.648649 +vt 0.900000 0.648649 +vt 0.900000 0.648649 +vt 0.900000 0.648649 +vt 0.900000 0.648649 +vt 0.900000 0.648649 +vt 0.900000 0.648649 +vt 0.925000 0.648649 +vt 0.900000 0.648649 +vt 0.900000 0.648649 +vt 0.900000 0.648649 +vt 0.900000 0.648649 +vt 0.900000 0.648649 +vt 0.900000 0.648649 +vt 0.900000 0.648649 +vt 0.925000 0.648649 +vt 0.900000 0.648649 +vt 0.900000 0.648649 +vt 0.900000 0.648649 +vt 0.900000 0.648649 +vt 0.925000 0.648649 +vt 0.900000 0.648649 +vt 0.900000 0.648649 +vt 0.900000 0.648649 +vt 0.900000 0.648649 +vt 0.900000 0.648649 +vt 0.900000 0.648649 +vt 0.900000 0.648649 +vt 0.900000 0.648649 +vt 0.900000 0.648649 +vt 0.900000 0.648649 +vt 0.900000 0.540541 +vt 0.900000 0.648649 +vt 0.900000 0.648649 +vt 0.900000 0.648649 +vt 0.900000 0.648649 +vt 0.900000 0.648649 +vt 0.900000 0.648649 +vt 0.900000 0.648649 +vt 0.900000 0.540541 +vt 0.900000 0.648649 +vt 0.900000 0.648649 +vt 0.900000 0.648649 +vt 0.900000 0.648649 +vt 0.900000 0.540541 +vn -0.2588 0.0000 0.9659 +vn -0.9659 0.0000 -0.2588 +vn 0.9659 0.0000 -0.2588 +vn 0.2588 0.0000 0.9659 +vn -0.9659 0.0000 0.2588 +vn 0.7071 0.0000 -0.7071 +vn -0.2588 0.0000 -0.9659 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 0.7071 +vn 0.2588 0.0000 -0.9659 +vn -0.7071 0.0000 -0.7071 +vn 0.9659 0.0000 0.2588 +vn -0.2331 0.4349 0.8698 +vn 0.2331 0.4349 0.8698 +vn 0.6367 0.4349 0.6367 +vn 0.8698 0.4349 0.2331 +vn 0.8698 0.4349 -0.2331 +vn 0.6367 0.4349 -0.6367 +vn 0.2331 0.4349 -0.8698 +vn -0.2331 0.4349 -0.8698 +vn -0.6367 0.4349 -0.6367 +vn -0.8698 0.4349 -0.2331 +vn -0.8698 0.4349 0.2331 +vn -0.6367 0.4349 0.6367 +vn 0.0000 -1.0000 0.0000 +vn 0.3474 0.4194 -0.8387 +vn 0.3827 0.0000 -0.9239 +vn -0.8387 0.4194 0.3474 +vn 0.9239 0.0000 -0.3827 +vn 0.8387 0.4194 -0.3474 +vn 0.9239 0.0000 0.3827 +vn -0.3474 0.4194 0.8387 +vn 0.3827 0.0000 0.9239 +vn -0.3474 0.4194 -0.8387 +vn -0.3827 0.0000 0.9239 +vn 0.3474 0.4194 0.8387 +vn -0.9239 0.0000 0.3827 +vn -0.8387 0.4194 -0.3474 +vn 0.0000 1.0000 0.0000 +vn -0.9239 0.0000 -0.3827 +vn 0.8387 0.4194 0.3474 +vn -0.3827 0.0000 -0.9239 +vn 0.0000 0.8660 0.5000 +vn -0.0000 0.8660 -0.5000 +vn 0.5000 0.8660 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.3536 0.8660 0.3536 +vn -0.3536 0.8660 -0.3536 +vn 0.3536 0.8660 -0.3536 +vn -0.3536 0.8660 0.3536 +vn 0.2500 0.8660 0.4330 +vn -0.2500 0.8660 -0.4330 +vn 0.4330 0.8660 -0.2500 +vn -0.4330 0.8660 0.2500 +vn 0.4830 0.8660 0.1294 +vn -0.4830 0.8660 -0.1294 +vn 0.1294 0.8660 -0.4830 +vn -0.1294 0.8660 0.4830 +vn 0.4330 0.8660 0.2500 +vn -0.4330 0.8660 -0.2500 +vn 0.2500 0.8660 -0.4330 +vn -0.2500 0.8660 0.4330 +vn 0.4830 0.8660 -0.1294 +vn -0.4830 0.8660 0.1294 +vn -0.1294 0.8660 -0.4830 +vn 0.1294 0.8660 0.4830 +vn 0.0000 -0.8660 -0.5000 +vn 0.0000 -0.8660 0.5000 +vn -0.5000 -0.8660 0.0000 +vn 0.5000 -0.8660 -0.0000 +vn -0.3536 -0.8660 -0.3536 +vn 0.3536 -0.8660 0.3536 +vn -0.3536 -0.8660 0.3536 +vn 0.3536 -0.8660 -0.3536 +vn -0.2500 -0.8660 -0.4330 +vn 0.2500 -0.8660 0.4330 +vn -0.4330 -0.8660 0.2500 +vn 0.4330 -0.8660 -0.2500 +vn -0.4830 -0.8660 -0.1294 +vn 0.4830 -0.8660 0.1294 +vn -0.1294 -0.8660 0.4830 +vn 0.1294 -0.8660 -0.4830 +vn -0.4330 -0.8660 -0.2500 +vn 0.4330 -0.8660 0.2500 +vn -0.2500 -0.8660 0.4330 +vn 0.2500 -0.8660 -0.4330 +vn -0.4830 -0.8660 0.1294 +vn 0.4830 -0.8660 -0.1294 +vn 0.1294 -0.8660 0.4830 +vn -0.1294 -0.8660 -0.4830 +s off +f 7/1/1 30/2/1 6/3/1 +f 4/4/2 27/5/2 3/6/2 +f 11/7/3 34/8/3 10/9/3 +f 8/10/4 31/11/4 7/1/4 +f 5/12/5 28/13/5 4/14/5 +f 12/15/6 35/16/6 11/7/6 +f 2/17/7 25/18/7 1/19/7 +f 9/20/8 32/21/8 8/10/8 +f 6/3/9 29/22/9 5/12/9 +f 1/19/10 36/23/10 12/15/10 +f 3/6/11 26/24/11 2/17/11 +f 10/9/12 33/25/12 9/20/12 +f 40/26/3 17/27/3 16/28/3 +f 47/29/9 24/30/9 23/31/9 +f 37/32/4 14/33/4 13/34/4 +f 44/35/11 21/36/11 20/37/11 +f 41/38/6 18/39/6 17/40/6 +f 48/41/1 13/42/1 24/43/1 +f 38/44/8 15/45/8 14/46/8 +f 45/47/2 22/48/2 21/49/2 +f 42/50/10 19/51/10 18/52/10 +f 39/53/12 16/54/12 15/55/12 +f 46/56/5 23/57/5 22/58/5 +f 43/59/7 20/60/7 19/61/7 +f 31/11/13 42/50/13 30/2/13 +f 32/21/14 43/59/14 31/11/14 +f 33/25/15 44/35/15 32/21/15 +f 34/8/16 45/47/16 33/25/16 +f 35/16/17 46/56/17 34/8/17 +f 35/16/18 48/62/18 47/29/18 +f 25/18/19 48/41/19 36/23/19 +f 26/24/20 37/32/20 25/18/20 +f 26/24/21 39/63/21 38/44/21 +f 28/64/22 39/53/22 27/5/22 +f 29/22/23 40/26/23 28/13/23 +f 30/2/24 41/38/24 29/22/24 +f 24/65/25 1/19/25 12/15/25 +f 52/66/26 50/67/26 54/68/26 +f 52/66/27 53/69/27 51/70/27 +f 13/71/25 2/17/25 1/19/25 +f 62/72/28 71/73/28 64/74/28 +f 54/68/29 55/75/29 53/69/29 +f 22/76/25 11/7/25 10/9/25 +f 54/68/30 67/77/30 56/78/30 +f 56/78/31 57/79/31 55/75/31 +f 9/20/25 22/80/25 10/9/25 +f 60/81/32 70/82/32 62/72/32 +f 58/83/33 59/84/33 57/79/33 +f 20/85/25 9/20/25 8/10/25 +f 52/66/34 72/86/34 49/87/34 +f 60/81/35 61/88/35 59/84/35 +f 19/89/25 8/10/25 7/1/25 +f 60/81/36 68/90/36 69/91/36 +f 62/72/37 63/92/37 61/88/37 +f 64/93/38 72/86/38 66/94/38 +f 71/95/39 69/96/39 67/97/39 +f 64/93/40 65/98/40 63/99/40 +f 23/100/25 12/15/25 11/7/25 +f 56/78/41 68/90/41 58/83/41 +f 66/94/42 51/70/42 65/98/42 +f 57/101/25 61/102/25 65/103/25 +f 2/17/25 15/104/25 3/6/25 +f 15/105/25 4/4/25 3/6/25 +f 16/106/25 5/12/25 4/14/25 +f 17/107/25 6/3/25 5/12/25 +f 18/108/25 7/1/25 6/3/25 +f 74/109/43 75/110/43 73/111/43 +f 78/112/44 79/113/44 77/114/44 +f 82/115/45 83/116/45 81/117/45 +f 86/118/46 87/119/46 85/120/46 +f 90/121/47 91/122/47 89/123/47 +f 94/124/48 95/125/48 93/126/48 +f 98/127/49 99/128/49 97/129/49 +f 102/130/50 103/131/50 101/132/50 +f 106/133/51 107/134/51 105/135/51 +f 110/136/52 111/137/52 109/138/52 +f 113/139/53 116/140/53 115/141/53 +f 118/142/54 119/143/54 117/144/54 +f 122/145/55 123/146/55 121/147/55 +f 126/148/56 127/149/56 125/150/56 +f 130/151/57 131/152/57 129/153/57 +f 134/154/58 135/155/58 133/156/58 +f 138/157/59 139/158/59 137/159/59 +f 142/160/60 143/161/60 141/162/60 +f 145/163/61 148/164/61 147/165/61 +f 150/166/62 151/167/62 149/168/62 +f 154/169/63 155/170/63 153/171/63 +f 158/172/64 159/173/64 157/174/64 +f 162/175/65 163/176/65 161/177/65 +f 165/178/66 168/179/66 167/180/66 +f 171/181/67 170/182/67 169/183/67 +f 175/184/68 174/185/68 173/186/68 +f 179/187/69 178/188/69 177/189/69 +f 183/190/70 182/191/70 181/192/70 +f 187/193/71 186/194/71 185/195/71 +f 191/196/72 190/197/72 189/198/72 +f 195/199/73 194/200/73 193/201/73 +f 199/202/74 198/203/74 197/204/74 +f 203/205/75 202/206/75 201/207/75 +f 207/208/76 206/209/76 205/210/76 +f 209/211/77 212/212/77 210/213/77 +f 215/214/78 214/215/78 213/216/78 +f 219/217/79 218/218/79 217/219/79 +f 223/220/80 222/221/80 221/222/80 +f 227/223/81 226/224/81 225/225/81 +f 231/226/82 230/227/82 229/228/82 +f 235/229/83 234/230/83 233/231/83 +f 239/232/84 238/233/84 237/234/84 +f 241/235/85 244/236/85 242/237/85 +f 247/238/86 246/239/86 245/240/86 +f 251/241/87 250/242/87 249/243/87 +f 255/244/88 254/245/88 253/246/88 +f 259/247/89 258/248/89 257/249/89 +f 261/250/90 264/251/90 262/252/90 +f 7/1/1 31/11/1 30/2/1 +f 4/4/2 28/64/2 27/5/2 +f 11/7/3 35/16/3 34/8/3 +f 8/10/4 32/21/4 31/11/4 +f 5/12/5 29/22/5 28/13/5 +f 12/15/6 36/23/6 35/16/6 +f 2/17/7 26/24/7 25/18/7 +f 9/20/8 33/25/8 32/21/8 +f 6/3/9 30/2/9 29/22/9 +f 1/19/10 25/18/10 36/23/10 +f 3/6/11 27/5/11 26/24/11 +f 10/9/12 34/8/12 33/25/12 +f 40/26/3 41/253/3 17/27/3 +f 47/29/9 48/62/9 24/30/9 +f 37/32/4 38/254/4 14/33/4 +f 44/35/11 45/255/11 21/36/11 +f 41/38/6 42/256/6 18/39/6 +f 48/41/1 37/257/1 13/42/1 +f 38/44/8 39/63/8 15/45/8 +f 45/47/2 46/258/2 22/48/2 +f 42/50/10 43/259/10 19/51/10 +f 39/53/12 40/260/12 16/54/12 +f 46/56/5 47/261/5 23/57/5 +f 43/59/7 44/262/7 20/60/7 +f 31/11/13 43/259/13 42/50/13 +f 32/21/14 44/262/14 43/59/14 +f 33/25/15 45/255/15 44/35/15 +f 34/8/16 46/258/16 45/47/16 +f 35/16/17 47/261/17 46/56/17 +f 35/16/18 36/23/18 48/62/18 +f 25/18/19 37/257/19 48/41/19 +f 26/24/20 38/254/20 37/32/20 +f 26/24/21 27/5/21 39/63/21 +f 28/64/22 40/260/22 39/53/22 +f 29/22/23 41/253/23 40/26/23 +f 30/2/24 42/256/24 41/38/24 +f 24/65/25 13/263/25 1/19/25 +f 52/66/26 49/87/26 50/67/26 +f 52/66/27 54/68/27 53/69/27 +f 13/71/25 14/264/25 2/17/25 +f 62/72/28 70/82/28 71/73/28 +f 54/68/29 56/78/29 55/75/29 +f 22/76/25 23/265/25 11/7/25 +f 54/68/30 50/67/30 67/77/30 +f 56/78/31 58/83/31 57/79/31 +f 9/20/25 21/266/25 22/80/25 +f 60/81/32 69/91/32 70/82/32 +f 58/83/33 60/81/33 59/84/33 +f 20/85/25 21/267/25 9/20/25 +f 52/66/34 66/94/34 72/86/34 +f 60/81/35 62/72/35 61/88/35 +f 19/89/25 20/268/25 8/10/25 +f 60/81/36 58/83/36 68/90/36 +f 62/72/37 64/74/37 63/92/37 +f 64/93/38 71/269/38 72/86/38 +f 67/97/39 50/270/39 49/271/39 +f 49/271/39 72/272/39 71/95/39 +f 71/95/39 70/273/39 69/96/39 +f 69/96/39 68/274/39 67/97/39 +f 67/97/39 49/271/39 71/95/39 +f 64/93/40 66/94/40 65/98/40 +f 23/100/25 24/275/25 12/15/25 +f 56/78/41 67/77/41 68/90/41 +f 66/94/42 52/66/42 51/70/42 +f 65/103/25 51/276/25 53/277/25 +f 53/277/25 55/278/25 57/101/25 +f 57/101/25 59/279/25 61/102/25 +f 61/102/25 63/280/25 65/103/25 +f 65/103/25 53/277/25 57/101/25 +f 2/17/25 14/281/25 15/104/25 +f 15/105/25 16/282/25 4/4/25 +f 16/106/25 17/283/25 5/12/25 +f 17/107/25 18/284/25 6/3/25 +f 18/108/25 19/285/25 7/1/25 +f 74/109/43 76/286/43 75/110/43 +f 78/112/44 80/287/44 79/113/44 +f 82/115/45 84/288/45 83/116/45 +f 86/118/46 88/289/46 87/119/46 +f 90/121/47 92/290/47 91/122/47 +f 94/124/48 96/291/48 95/125/48 +f 98/127/49 100/292/49 99/128/49 +f 102/130/50 104/293/50 103/131/50 +f 106/133/51 108/294/51 107/134/51 +f 110/136/52 112/295/52 111/137/52 +f 113/139/53 114/296/53 116/140/53 +f 118/142/54 120/297/54 119/143/54 +f 122/145/55 124/298/55 123/146/55 +f 126/148/56 128/299/56 127/149/56 +f 130/151/57 132/300/57 131/152/57 +f 134/154/58 136/301/58 135/155/58 +f 138/157/59 140/302/59 139/158/59 +f 142/160/60 144/303/60 143/161/60 +f 145/163/61 146/304/61 148/164/61 +f 150/166/62 152/305/62 151/167/62 +f 154/169/63 156/306/63 155/170/63 +f 158/172/64 160/307/64 159/173/64 +f 162/175/65 164/308/65 163/176/65 +f 165/178/66 166/309/66 168/179/66 +f 171/181/67 172/310/67 170/182/67 +f 175/184/68 176/311/68 174/185/68 +f 179/187/69 180/312/69 178/188/69 +f 183/190/70 184/313/70 182/191/70 +f 187/193/71 188/314/71 186/194/71 +f 191/196/72 192/315/72 190/197/72 +f 195/199/73 196/316/73 194/200/73 +f 199/202/74 200/317/74 198/203/74 +f 203/205/75 204/318/75 202/206/75 +f 207/208/76 208/319/76 206/209/76 +f 209/211/77 211/320/77 212/212/77 +f 215/214/78 216/321/78 214/215/78 +f 219/217/79 220/322/79 218/218/79 +f 223/220/80 224/323/80 222/221/80 +f 227/223/81 228/324/81 226/224/81 +f 231/226/82 232/325/82 230/227/82 +f 235/229/83 236/326/83 234/230/83 +f 239/232/84 240/327/84 238/233/84 +f 241/235/85 243/328/85 244/236/85 +f 247/238/86 248/329/86 246/239/86 +f 251/241/87 252/330/87 250/242/87 +f 255/244/88 256/331/88 254/245/88 +f 259/247/89 260/332/89 258/248/89 +f 261/250/90 263/333/90 264/251/90 diff --git a/src/main/resources/assets/hbm/textures/items/bolt_dura_steel.png b/src/main/resources/assets/hbm/textures/items/bolt_dura_steel.png index 4a0620bf538c47fed38f95c97feea42b2fd8f1d6..de6eb68e604afc807eeba2e927a7cd39f632d1d6 100644 GIT binary patch delta 184 zcmV;p07w7a0ptOYG=G~(L_t(Ijm49(3WYEXMQ_zX=-}$oe{l8x2UkDC$w7!buo9<= z*7QZ6!@E!#DCZ;@3IM2^mg74dC@E48L*E$<27oLSaW`oKX`)?l>^StDi6^L=mWf7` z&YdLU3Q}jH5zA+WpC;ti@=9a?K;1Kj*?R<76=?8R!5ug$xG@Whf+z4r@Dx4?et|D3 mo#UdaIJZ{)1IfIC|B?-rf}vo@>5!5D0000K_$gt_e zO!FK&5aHzePVonRRsAs9uveA9N^NMRd`MUVf=_+G>^thNa}rSsTVrr3<+x8l4*nEy z;G}>HM+GJDOHc{}-Z!RT3Xi|j0)U1D>pY28O3RtN&XYTP1Sv@`i-^Htg#8<2D||xO eZ(Eakt zG3V`^{dtEB1lsilI5jy#)e}}pR5Y&pATU>=lHu4pS&3cW6(uV9elg_S4Ol*Hibb1SoJEsv)cNDBylt=cR4)^M&L^O5Tx|K2cD6b#&a^NN|$ zIp#*OLScanLGwV(Kf(#@93o7OP6`1WEL@EaiUJxeOsx(J1c(qkVIad7-hA-EgCk8! zHqR4ko;>_F^WMGv88+9pJ1ZQ196bG!iRvQp+-eV({o*oB7XBVCQ&MMc6D*WVQ4sc@ zmQvt8bgo=u=}hJ9B-ggMx7X2B zm*wtmy;Bm*YqL(@=<{C!_Z8nOhuc?|7hX2lCjK(rDC_-^UyCbOKGtm7HsRT~#KLy4Cmhwd8_W968ZRH zL6Uw>72B>p;nf?2o=vuB6=n)$dnG1ty)cRE_l!y|b(TkxKiGe$P3SOd-I8yi zc)`7pD}C99^%fhaZq`iRFf}=8j?4OOMU$+Ha_pBqPmp}Pku_e+@PYSIVP)z4*}Q$iB}0fQ4) literal 0 HcmV?d00001