diff --git a/CraftTweakerWIKI.md b/CraftTweakerWIKI.md index f7f2de1d25..11f30328e9 100644 --- a/CraftTweakerWIKI.md +++ b/CraftTweakerWIKI.md @@ -12,6 +12,9 @@ Removing of oreDict recipes is currently not supported. mods.ntm.Assembler.addRecipe(IItemStack output, IItemStack[] inputs, int duration);
``mods.ntm.Assembler.addRecipe(, [*4, *6], 30);`` +mods.ntm.Assembler.replaceRecipe(IItemStack output, IItemStack[] inputs, int duration);
+``mods.ntm.Assembler.replaceRecipe(, [, ], 50);`` + mods.ntm.Assembler.removeRecipe(IItemStack output);
``mods.ntm.Assembler.removeRecipe();`` diff --git a/build.gradle b/build.gradle index 474197bf63..3e90084cff 100644 --- a/build.gradle +++ b/build.gradle @@ -24,7 +24,7 @@ apply plugin: 'net.minecraftforge.gradle' apply plugin: 'eclipse' apply plugin: 'maven-publish' -version = '1.9.7' +version = '1.9.8' group = 'com.hbm' // http://maven.apache.org/guides/mini/guide-naming-conventions.html archivesBaseName = 'NTM-Extended-1.12.2' diff --git a/gradle.properties b/gradle.properties index aa4f984357..2a394ac3f2 100644 --- a/gradle.properties +++ b/gradle.properties @@ -5,6 +5,6 @@ org.gradle.daemon=true org.gradle.configureondemand=true org.gradle.parallel=true version_mc=1.12.2 -version=1.9.7 +version=1.9.8 version_jei=4.16.1.302 version_crafttweaker=4.1.14.521 diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index c17a9377d0..4353c66342 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -75,6 +75,7 @@ import com.hbm.blocks.generic.BlockGoldSand; import com.hbm.blocks.generic.BlockGrate; import com.hbm.blocks.generic.BlockHazard; +import com.hbm.blocks.generic.BlockHazardFuel; import com.hbm.blocks.generic.BlockHazard.ExtDisplayEffect; import com.hbm.blocks.generic.BlockHazardFalling; import com.hbm.blocks.generic.BlockJungleCrate; @@ -104,6 +105,7 @@ import com.hbm.blocks.generic.BlockRadResistantHazard; import com.hbm.blocks.generic.BlockRailing; import com.hbm.blocks.generic.BlockRotatablePillar; +import com.hbm.blocks.generic.BlockRotatablePillarHazard; import com.hbm.blocks.generic.BlockSmolder; import com.hbm.blocks.generic.BlockStorageCrate; import com.hbm.blocks.generic.BlockStorageCrateRadResistant; @@ -243,10 +245,8 @@ public SoundEvent getBreakSound() { //Generic blocks public static final Block asphalt = new BlockBase(Material.ROCK, "asphalt").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(100.0F); - public static final Block reinforced_brick = new BlockRadResistant(Material.ROCK, "reinforced_brick").setCreativeTab(MainRegistry.blockTab).setLightOpacity(15).setHardness(15.0F).setResistance(8000.0F); public static final Block reinforced_glass = new BlockNTMGlass(Material.GLASS, BlockRenderLayer.CUTOUT, false, true, "reinforced_glass").setCreativeTab(MainRegistry.blockTab).setLightOpacity(0).setHardness(15.0F).setResistance(200.0F); public static final Block reinforced_light = new BlockRadResistant(Material.ROCK, "reinforced_light").setCreativeTab(MainRegistry.blockTab).setLightOpacity(15).setLightLevel(1.0F).setHardness(15.0F).setResistance(300.0F); - public static final Block reinforced_sand = new BlockBase(Material.ROCK, "reinforced_sand").setCreativeTab(MainRegistry.blockTab).setLightOpacity(15).setHardness(15.0F).setResistance(400.0F); public static final Block reinforced_lamp_off = new ReinforcedLamp(Material.ROCK, false, "reinforced_lamp_off").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(300.0F); public static final Block reinforced_lamp_on = new ReinforcedLamp(Material.ROCK, true, "reinforced_lamp_on").setCreativeTab(null).setHardness(15.0F).setResistance(300.0F); public static final Block reinforced_stone = new BlockBase(Material.ROCK, "reinforced_stone").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(3000.0F); @@ -255,9 +255,11 @@ public SoundEvent getBreakSound() { public static final Block brick_concrete_cracked = new BlockBase(Material.ROCK, "brick_concrete_cracked").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(2000.0F); public static final Block brick_concrete_broken = new BlockBase(Material.ROCK, "brick_concrete_broken").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(1500.0F); public static final Block brick_concrete_marked = new BlockWriting(Material.ROCK, "brick_concrete_marked").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(1500.0F); - public static final Block brick_light = new BlockBase(Material.ROCK, "brick_light").setCreativeTab(MainRegistry.blockTab).setLightOpacity(15).setHardness(15.0F).setResistance(1000.0F); + public static final Block reinforced_brick = new BlockRadResistant(Material.ROCK, "reinforced_brick").setCreativeTab(MainRegistry.blockTab).setLightOpacity(15).setHardness(15.0F).setResistance(8000.0F); public static final Block brick_compound = new BlockRadResistant(Material.ROCK, "brick_compound").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(10000.0F); + public static final Block brick_light = new BlockBase(Material.ROCK, "brick_light").setCreativeTab(MainRegistry.blockTab).setLightOpacity(15).setHardness(15.0F).setResistance(1000.0F); public static final Block brick_asbestos = new BlockOutgas(Material.ROCK, true, 20, true, "brick_asbestos").addAsbestos(8).toBlock().setHardness(15.0F).setCreativeTab(MainRegistry.blockTab).setResistance(1000.0F); + public static final Block reinforced_sand = new BlockBase(Material.ROCK, "reinforced_sand").setCreativeTab(MainRegistry.blockTab).setLightOpacity(15).setHardness(15.0F).setResistance(400.0F); public static final Block brick_obsidian = new BlockBase(Material.ROCK, "brick_obsidian").setCreativeTab(MainRegistry.blockTab).setLightOpacity(15).setHardness(15.0F).setResistance(8000.0F); public static final Block cmb_brick = new BlockBase(Material.ROCK, "cmb_brick").setCreativeTab(MainRegistry.blockTab).setHardness(25.0F).setResistance(6000.0F); public static final Block cmb_brick_reinforced = new BlockRadResistant(Material.ROCK, "cmb_brick_reinforced").setCreativeTab(MainRegistry.blockTab).setHardness(25.0F).setResistance(60000.0F); @@ -293,15 +295,15 @@ public SoundEvent getBreakSound() { public static final Block tile_lab_broken = new BlockOutgas(Material.ROCK, true, 40, true, "tile_lab_broken").addAsbestos(6).toBlock().setCreativeTab(MainRegistry.blockTab).setHardness(1.0F).setResistance(20.0F); //stairs - public static final Block reinforced_brick_stairs = new BlockGenericStairs(reinforced_brick.getDefaultState(), "reinforced_brick_stairs").setCreativeTab(MainRegistry.blockTab).setLightOpacity(15).setHardness(15.0F).setResistance(6000.0F); - public static final Block reinforced_sand_stairs = new BlockGenericStairs(reinforced_sand.getDefaultState(), "reinforced_sand_stairs").setCreativeTab(MainRegistry.blockTab).setLightOpacity(15).setHardness(15.0F).setResistance(300.0F); public static final Block reinforced_stone_stairs = new BlockGenericStairs(reinforced_stone.getDefaultState(), "reinforced_stone_stairs").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(2250.0F); public static final Block brick_concrete_stairs = new BlockGenericStairs(brick_concrete.getDefaultState(), "brick_concrete_stairs").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4500.0F); public static final Block brick_concrete_mossy_stairs = new BlockGenericStairs(brick_concrete_mossy.getDefaultState(), "brick_concrete_mossy_stairs").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4500.0F); public static final Block brick_concrete_cracked_stairs = new BlockGenericStairs(brick_concrete_cracked.getDefaultState(), "brick_concrete_cracked_stairs").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(1500.0F); public static final Block brick_concrete_broken_stairs = new BlockGenericStairs(brick_concrete_broken.getDefaultState(), "brick_concrete_broken_stairs").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(1125.0F); + public static final Block reinforced_brick_stairs = new BlockGenericStairs(reinforced_brick.getDefaultState(), "reinforced_brick_stairs").setCreativeTab(MainRegistry.blockTab).setLightOpacity(15).setHardness(15.0F).setResistance(6000.0F); public static final Block brick_compound_stairs = new BlockGenericStairs(brick_compound.getDefaultState(), "brick_compound_stairs").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(7500.0F); public static final Block brick_asbestos_stairs = new BlockGenericStairs(brick_asbestos.getDefaultState(), "brick_asbestos_stairs").setCreativeTab(MainRegistry.blockTab).setResistance(750.0F); + public static final Block reinforced_sand_stairs = new BlockGenericStairs(reinforced_sand.getDefaultState(), "reinforced_sand_stairs").setCreativeTab(MainRegistry.blockTab).setLightOpacity(15).setHardness(15.0F).setResistance(300.0F); public static final Block brick_obsidian_stairs = new BlockGenericStairs(brick_obsidian.getDefaultState(), "brick_obsidian_stairs").setCreativeTab(MainRegistry.blockTab).setLightOpacity(15).setHardness(15.0F).setResistance(6000.0F); public static final Block cmb_brick_reinforced_stairs = new BlockGenericStairs(cmb_brick_reinforced.getDefaultState(), "cmb_brick_reinforced_stairs").setCreativeTab(MainRegistry.blockTab).setHardness(25.0F).setResistance(45000.0F); public static final Block concrete_stairs = new BlockGenericStairs(concrete.getDefaultState(), "concrete_stairs").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(3000.0F); @@ -332,15 +334,15 @@ public SoundEvent getBreakSound() { public static final Block tile_lab_broken_stairs = new BlockGenericStairs(tile_lab_broken.getDefaultState(), "tile_lab_broken_stairs").setSoundType(SoundType.GLASS).setCreativeTab(MainRegistry.blockTab).setHardness(1.0F).setResistance(15.0F); //slabs - public static final Block reinforced_brick_slab = new BlockGenericSlab(Material.ROCK, false, "reinforced_brick_slab").setCreativeTab(MainRegistry.blockTab).setLightOpacity(15).setHardness(15.0F).setResistance(4000.0F); - public static final Block reinforced_sand_slab = new BlockGenericSlab(Material.ROCK, false, "reinforced_sand_slab").setCreativeTab(MainRegistry.blockTab).setLightOpacity(15).setHardness(15.0F).setResistance(200.0F); public static final Block reinforced_stone_slab = new BlockGenericSlab(Material.ROCK, false, "reinforced_stone_slab").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(1500.0F); public static final Block brick_concrete_slab = new BlockGenericSlab(Material.ROCK, false, "brick_concrete_slab").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(3000.0F); public static final Block brick_concrete_mossy_slab = new BlockGenericSlab(Material.ROCK, false, "brick_concrete_mossy_slab").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(3000.0F); public static final Block brick_concrete_cracked_slab = new BlockGenericSlab(Material.ROCK, false, "brick_concrete_cracked_slab").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(1000.0F); public static final Block brick_concrete_broken_slab = new BlockGenericSlab(Material.ROCK, false, "brick_concrete_broken_slab").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(750.0F); + public static final Block reinforced_brick_slab = new BlockGenericSlab(Material.ROCK, false, "reinforced_brick_slab").setCreativeTab(MainRegistry.blockTab).setLightOpacity(15).setHardness(15.0F).setResistance(4000.0F); public static final Block brick_compound_slab = new BlockGenericSlab(Material.ROCK, false, "brick_compound_slab").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(5000.0F); public static final Block brick_asbestos_slab = new BlockGenericSlab(Material.ROCK, false, "brick_asbestos_slab").setCreativeTab(MainRegistry.blockTab).setResistance(500.0F); + public static final Block reinforced_sand_slab = new BlockGenericSlab(Material.ROCK, false, "reinforced_sand_slab").setCreativeTab(MainRegistry.blockTab).setLightOpacity(15).setHardness(15.0F).setResistance(200.0F); public static final Block brick_obsidian_slab = new BlockGenericSlab(Material.ROCK, false, "brick_obsidian_slab").setCreativeTab(MainRegistry.blockTab).setLightOpacity(15).setHardness(15.0F).setResistance(4000.0F); public static final Block cmb_brick_reinforced_slab = new BlockGenericSlab(Material.ROCK, false, "cmb_brick_reinforced_slab").setCreativeTab(MainRegistry.blockTab).setHardness(25.0F).setResistance(30000.0F); public static final Block concrete_slab = new BlockGenericSlab(Material.ROCK, false, "concrete_slab").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(2000.0F); @@ -377,9 +379,9 @@ public SoundEvent getBreakSound() { public static final Block block_electrical_scrap = new BlockFallingBase(Material.IRON, "block_electrical_scrap", SoundType.METAL).setCreativeTab(MainRegistry.blockTab).setHardness(2.5F).setResistance(5.0F); //Ores - public static final Block ore_uranium = new BlockOre(Material.ROCK, "ore_uranium", 2).addRadiation(ItemHazard.ore * ItemHazard.u).toBlock().setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.resourceTab); - public static final Block ore_uranium_scorched = new BlockOre(Material.ROCK, "ore_uranium_scorched", 2).addRadiation(0.5F).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); - public static final Block ore_schrabidium = new BlockOre(Material.ROCK, "ore_schrabidium", 3).addRadiation(ItemHazard.ore * ItemHazard.sa326).addBlinding().toBlock().setHardness(15.0F).setResistance(600.0F).setCreativeTab(MainRegistry.resourceTab); + public static final Block ore_uranium = new BlockOutgas(Material.ROCK, true, 20, true, "ore_uranium").addRadiation(ItemHazard.ore * ItemHazard.u).toBlock().setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.resourceTab); + public static final Block ore_uranium_scorched = new BlockOutgas(Material.ROCK, true, 15, true, "ore_uranium_scorched").addRadiation(0.5F).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); + public static final Block ore_schrabidium = new BlockOre(Material.ROCK, "ore_schrabidium", 3, 300).addRadiation(ItemHazard.ore * ItemHazard.sa326).addBlinding().toBlock().setHardness(15.0F).setResistance(600.0F).setCreativeTab(MainRegistry.resourceTab); public static final Block ore_thorium = new BlockOre(Material.ROCK, "ore_thorium", 2).addRadiation(ItemHazard.ore * ItemHazard.th232).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); @@ -393,25 +395,26 @@ public SoundEvent getBreakSound() { public static final Block ore_lead = new BlockOre(Material.ROCK, "ore_lead", 2).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); public static final Block ore_beryllium = new BlockOre(Material.ROCK, "ore_beryllium", 2).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(15.0F); public static final Block ore_lignite = new BlockOre(Material.ROCK, "ore_lignite", 0).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(15.0F); - public static final Block ore_asbestos = new BlockOre(Material.ROCK, "ore_asbestos", 1).addAsbestos(5).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(15.0F); - public static final Block ore_rare = new BlockOre(Material.ROCK, "ore_rare", 3).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); + public static final Block ore_asbestos = new BlockOre(Material.ROCK, "ore_asbestos", 1, 6).addAsbestos(5).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(15.0F); + public static final Block ore_rare = new BlockOre(Material.ROCK, "ore_rare", 2, 12).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); public static final Block ore_coal_oil = new BlockCoalOil(Material.ROCK, "ore_coal_oil").setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(15.0F); public static final Block ore_coal_oil_burning = new BlockCoalBurning(Material.ROCK, "ore_coal_oil_burning").setCreativeTab(MainRegistry.resourceTab).setLightLevel(10F/15F).setHardness(5.0F).setResistance(15.0F); public static final Block cluster_iron = new BlockCluster(Material.ROCK, "cluster_iron").setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(35.0F); public static final Block cluster_titanium = new BlockCluster(Material.ROCK, "cluster_titanium").setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(35.0F); public static final Block cluster_aluminium = new BlockCluster(Material.ROCK, "cluster_aluminium").setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(35.0F); - - public static final Block ore_cobalt = new BlockOre(Material.ROCK, "ore_cobalt", 3).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); + public static final Block cluster_copper = new BlockCluster(Material.ROCK, "cluster_copper").setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(35.0F); + + public static final Block ore_cobalt = new BlockOre(Material.ROCK, "ore_cobalt", 3, 15).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); public static final Block ore_cinnebar = new BlockOre(Material.ROCK, "ore_cinnebar", 1).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); - public static final Block ore_coltan = new BlockOre(Material.ROCK, "ore_coltan", 3).setCreativeTab(MainRegistry.resourceTab).setHardness(15.0F).setResistance(10.0F); + public static final Block ore_coltan = new BlockOre(Material.ROCK, "ore_coltan", 3, 20).setCreativeTab(MainRegistry.resourceTab).setHardness(15.0F).setResistance(10.0F); - public static final Block ore_reiium = new BlockOre(Material.ROCK, "ore_reiium", 4).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); - public static final Block ore_weidanium = new BlockOre(Material.ROCK, "ore_weidanium", 4).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); - public static final Block ore_australium = new BlockOre(Material.ROCK, "ore_australium", 4).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); - public static final Block ore_verticium = new BlockOre(Material.ROCK, "ore_verticium", 4).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); - public static final Block ore_unobtainium = new BlockOre(Material.ROCK, "ore_unobtainium", 4).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); - public static final Block ore_daffergon = new BlockOre(Material.ROCK, "ore_daffergon", 4).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); + public static final Block ore_reiium = new BlockOre(Material.ROCK, "ore_reiium", 4, 100).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); + public static final Block ore_weidanium = new BlockOre(Material.ROCK, "ore_weidanium", 4, 100).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); + public static final Block ore_australium = new BlockOre(Material.ROCK, "ore_australium", 4, 100).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); + public static final Block ore_verticium = new BlockOre(Material.ROCK, "ore_verticium", 4, 100).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); + public static final Block ore_unobtainium = new BlockOre(Material.ROCK, "ore_unobtainium", 4, 100).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); + public static final Block ore_daffergon = new BlockOre(Material.ROCK, "ore_daffergon", 4, 100).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); public static final Block stone_depth = new BlockDepth("stone_depth").setCreativeTab(MainRegistry.resourceTab); public static final Block ore_depth_cinnebar = new BlockDepthOre("ore_depth_cinnebar").setCreativeTab(MainRegistry.resourceTab); public static final Block ore_depth_zirconium = new BlockDepthOre("ore_depth_zirconium").setCreativeTab(MainRegistry.resourceTab); @@ -431,8 +434,8 @@ public SoundEvent getBreakSound() { public static final Block stone_gneiss = new BlockBase(Material.ROCK, "stone_gneiss").setCreativeTab(MainRegistry.resourceTab).setHardness(1.5F).setResistance(10.0F); public static final Block ore_gneiss_iron = new BlockOre(Material.ROCK, "ore_gneiss_iron", 1).setCreativeTab(MainRegistry.resourceTab).setHardness(1.5F).setResistance(10.0F); public static final Block ore_gneiss_gold = new BlockOre(Material.ROCK, "ore_gneiss_gold", 2).setCreativeTab(MainRegistry.resourceTab).setHardness(1.5F).setResistance(10.0F); - public static final Block ore_gneiss_uranium = new BlockOre(Material.ROCK, "ore_gneiss_uranium", 2).addRadiation(ItemHazard.ore * ItemHazard.u).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(1.5F).setResistance(10.0F); - public static final Block ore_gneiss_uranium_scorched = new BlockOre(Material.ROCK, "ore_gneiss_uranium_scorched", 2).addRadiation(1.0F).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(1.5F).setResistance(10.0F); + public static final Block ore_gneiss_uranium = new BlockOutgas(Material.ROCK, true, 20, true, "ore_gneiss_uranium").addRadiation(ItemHazard.ore * ItemHazard.u).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(1.5F).setResistance(10.0F); + public static final Block ore_gneiss_uranium_scorched = new BlockOutgas(Material.ROCK, true, 20, true, "ore_gneiss_uranium_scorched").addRadiation(1.0F).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(1.5F).setResistance(10.0F); public static final Block ore_gneiss_copper = new BlockOre(Material.ROCK, "ore_gneiss_copper", 1).setCreativeTab(MainRegistry.resourceTab).setHardness(1.5F).setResistance(10.0F); public static final Block ore_gneiss_asbestos = new BlockOre(Material.ROCK, "ore_gneiss_asbestos", 2).addAsbestos(5).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(1.5F).setResistance(10.0F); public static final Block ore_gneiss_lithium = new BlockOre(Material.ROCK, "ore_gneiss_lithium", 0).addHydroReactivity().toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(1.5F).setResistance(10.0F); @@ -448,8 +451,8 @@ public SoundEvent getBreakSound() { public static final Block ore_nether_tungsten = new BlockOre(Material.ROCK, "ore_nether_tungsten", 2).setCreativeTab(MainRegistry.resourceTab).setHardness(0.4F).setResistance(10.0F); public static final Block ore_nether_sulfur = new BlockOre(Material.ROCK, "ore_nether_sulfur", 1).setCreativeTab(MainRegistry.resourceTab).setHardness(0.4F).setResistance(10.0F); public static final Block ore_nether_fire = new BlockOre(Material.ROCK, "ore_nether_fire", 1).addFire(5).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(0.4F).setResistance(10.0F); - public static final Block ore_nether_uranium = new BlockOre(Material.ROCK, "ore_nether_uranium", 2).addRadiation(ItemHazard.ore * ItemHazard.u).toBlock().setHardness(0.4F).setResistance(10.0F).setCreativeTab(MainRegistry.resourceTab); - public static final Block ore_nether_uranium_scorched = new BlockOre(Material.ROCK, "ore_nether_uranium_scorched", 2).addRadiation(2.0F).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(0.4F).setResistance(10.0F); + public static final Block ore_nether_uranium = new BlockOutgas(Material.ROCK, true, 20, true, "ore_nether_uranium").addRadiation(ItemHazard.ore * ItemHazard.u).toBlock().setHardness(0.4F).setResistance(10.0F).setCreativeTab(MainRegistry.resourceTab); + public static final Block ore_nether_uranium_scorched = new BlockOutgas(Material.ROCK, true, 20, true, "ore_nether_uranium_scorched").addRadiation(2.0F).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(0.4F).setResistance(10.0F); public static final Block ore_nether_plutonium = new BlockOre(Material.ROCK, "ore_nether_plutonium", 3).addRadiation(ItemHazard.pu).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(0.4F).setResistance(10.0F); public static final Block ore_nether_schrabidium = new BlockOre(Material.ROCK, "ore_nether_schrabidium", 3).addRadiation(ItemHazard.ore * ItemHazard.sa326).addBlinding().toBlock().setHardness(15.0F).setResistance(600.0F).setCreativeTab(MainRegistry.resourceTab); public static final Block stone_depth_nether = new BlockDepth("stone_depth_nether").setCreativeTab(MainRegistry.resourceTab); @@ -461,16 +464,16 @@ public SoundEvent getBreakSound() { public static final Block block_meteor_broken = new BlockOre(Material.ROCK, "block_meteor_broken", 1).setCreativeTab(MainRegistry.resourceTab).setHardness(15.0F).setResistance(900.0F); public static final Block block_meteor_molten = new BlockHazard(Material.ROCK, "block_meteor_molten").addFire(3).toBlock().setTickRandomly(true).setLightLevel(0.75F).setCreativeTab(MainRegistry.resourceTab).setHardness(15.0F).setResistance(900.0F); public static final Block block_meteor_treasure = new BlockOre(Material.ROCK, "block_meteor_treasure", 3).setCreativeTab(MainRegistry.resourceTab).setHardness(15.0F).setResistance(900.0F); - public static final Block ore_meteor_uranium = new BlockOre(Material.ROCK, "ore_meteor_uranium", 2).addRadiation(0.25F).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); - public static final Block ore_meteor_thorium = new BlockOre(Material.ROCK, "ore_meteor_thorium", 2).addRadiation(ItemHazard.th232).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); - public static final Block ore_meteor_titanium = new BlockOre(Material.ROCK, "ore_meteor_titanium", 1).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); - public static final Block ore_meteor_sulfur = new BlockOre(Material.ROCK, "ore_meteor_sulfur", 1).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); - public static final Block ore_meteor_copper = new BlockOre(Material.ROCK, "ore_meteor_copper", 1).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); - public static final Block ore_meteor_tungsten = new BlockOre(Material.ROCK, "ore_meteor_tungsten", 2).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); - public static final Block ore_meteor_aluminium = new BlockOre(Material.ROCK, "ore_meteor_aluminium", 1).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); - public static final Block ore_meteor_lead = new BlockOre(Material.ROCK, "ore_meteor_lead", 2).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); - public static final Block ore_meteor_lithium = new BlockOre(Material.ROCK, "ore_meteor_lithium", 0).addHydroReactivity().toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); - public static final Block ore_meteor_starmetal = new BlockOre(Material.ROCK, "ore_meteor_starmetal", 3).setCreativeTab(MainRegistry.resourceTab).setHardness(10.0F).setResistance(100.0F); + public static final Block ore_meteor_uranium = new BlockOre(Material.ROCK, "ore_meteor_uranium", 2, 30).addRadiation(0.25F).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); + public static final Block ore_meteor_thorium = new BlockOre(Material.ROCK, "ore_meteor_thorium", 2, 30).addRadiation(ItemHazard.th232).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); + public static final Block ore_meteor_titanium = new BlockOre(Material.ROCK, "ore_meteor_titanium", 1, 30).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); + public static final Block ore_meteor_sulfur = new BlockOre(Material.ROCK, "ore_meteor_sulfur", 1, 30).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); + public static final Block ore_meteor_copper = new BlockOre(Material.ROCK, "ore_meteor_copper", 1, 30).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); + public static final Block ore_meteor_tungsten = new BlockOre(Material.ROCK, "ore_meteor_tungsten", 2, 30).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); + public static final Block ore_meteor_aluminium = new BlockOre(Material.ROCK, "ore_meteor_aluminium", 1, 30).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); + public static final Block ore_meteor_lead = new BlockOre(Material.ROCK, "ore_meteor_lead", 2, 30).setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); + public static final Block ore_meteor_lithium = new BlockOre(Material.ROCK, "ore_meteor_lithium", 0, 30).addHydroReactivity().toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(5.0F).setResistance(10.0F); + public static final Block ore_meteor_starmetal = new BlockOre(Material.ROCK, "ore_meteor_starmetal", 3, 60).setCreativeTab(MainRegistry.resourceTab).setHardness(10.0F).setResistance(100.0F); public static final Block meteor_polished = new BlockBase(Material.ROCK, "meteor_polished").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F); public static final Block meteor_brick = new BlockBase(Material.ROCK, "meteor_brick").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F); @@ -539,8 +542,8 @@ public SoundEvent getBreakSound() { public static final Block block_au198 = new BlockHazard(Material.IRON, SoundType.METAL, "block_au198").addRadiation(ItemHazard.au198 * ItemHazard.block).addFire(5).toBlock().setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(600.0F); public static final Block block_euphemium = new BlockBase(Material.IRON, "block_euphemium").setSoundType(SoundType.METAL).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(60000.0F); public static final Block block_dineutronium = new BlockBase(Material.IRON, "block_dineutronium").setSoundType(SoundType.METAL).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(60000.0F); - public static final Block block_schrabidium_cluster = new BlockRotatablePillar(Material.ROCK, "block_schrabidium_cluster").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(60000.0F); - public static final Block block_euphemium_cluster = new BlockRotatablePillar(Material.ROCK, "block_euphemium_cluster").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(60000.0F); + public static final Block block_schrabidium_cluster = new BlockRotatablePillarHazard(Material.ROCK, "block_schrabidium_cluster").addRadiation(70F).toBlock().setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(60000.0F); + public static final Block block_euphemium_cluster = new BlockRotatablePillarHazard(Material.ROCK, "block_euphemium_cluster").addRadiation(50F).toBlock().setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(60000.0F); public static final Block block_combine_steel = new BlockBase(Material.IRON, "block_combine_steel").setSoundType(SoundType.METAL).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(600.0F); public static final Block block_magnetized_tungsten = new BlockHazard(Material.IRON, SoundType.METAL, "block_magnetized_tungsten").addRadiation(ItemHazard.magt * ItemHazard.block).toBlock().setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(35.0F); public static final Block block_desh = new BlockBase(Material.IRON, "block_desh").setSoundType(SoundType.METAL).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(600.0F); @@ -620,8 +623,8 @@ public SoundEvent getBreakSound() { public static final Block waste_trinitite = new WasteSand(Material.SAND, SoundType.SAND, "waste_trinitite").addRadiation(ItemHazard.trx).toBlock().setHardness(0.5F).setResistance(2.5F).setCreativeTab(MainRegistry.resourceTab); public static final Block waste_sand_red = new WasteSand(Material.SAND, SoundType.SAND, "waste_sand_red").addRadiation(ItemHazard.trx*ItemHazard.nugget).toBlock().setHardness(0.5F).setResistance(1.0F).setCreativeTab(MainRegistry.resourceTab); public static final Block waste_trinitite_red = new WasteSand(Material.SAND, SoundType.SAND, "waste_trinitite_red").addRadiation(ItemHazard.trx).toBlock().setHardness(0.5F).setResistance(2.5F).setCreativeTab(MainRegistry.resourceTab); - public static final Block waste_log = new WasteLog(Material.WOOD, SoundType.WOOD, "waste_log").addRadiation(1F).toBlock().setHardness(5.0F).setResistance(2.5F).setCreativeTab(MainRegistry.resourceTab); - public static final Block waste_planks = new BlockOre(Material.WOOD, SoundType.WOOD, "waste_planks", 0).addRadiation(0.5F).toBlock().setHardness(0.5F).setResistance(2.5F).setCreativeTab(MainRegistry.resourceTab); + public static final Block waste_log = new WasteLog(Material.WOOD, SoundType.WOOD, "waste_log").addCoal(2).toBlock().setHardness(5.0F).setResistance(2.5F).setCreativeTab(MainRegistry.resourceTab); + public static final Block waste_planks = new BlockOre(Material.WOOD, SoundType.WOOD, "waste_planks", 0).addCoal(1).toBlock().setHardness(0.5F).setResistance(2.5F).setCreativeTab(MainRegistry.resourceTab); public static final Block waste_leaves = new WasteLeaves("waste_leaves").addRadiation(0.15F).toBlock().setHardness(0.3F).setResistance(0.3F).setCreativeTab(MainRegistry.resourceTab); public static final Block waste_grass_tall = new WasteGrassTall(Material.PLANTS, "waste_grass_tall").setCreativeTab(MainRegistry.resourceTab); @@ -647,11 +650,12 @@ public SoundEvent getBreakSound() { public static final Block fallout = new BlockFallout(Material.SNOW, SoundType.GROUND, "fallout").addRadiation(ItemHazard.fo * 2).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(0.1F).setLightOpacity(0); public static final Block block_fallout = new BlockHazardFalling(SoundType.GROUND, "block_fallout").addRadiation(ItemHazard.fo * ItemHazard.block).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(0.2F); - public static final Block block_boron = new BlockBeaconable(Material.IRON, "block_boron").setSoundType(SoundType.METAL).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F); + public static final Block block_boron = new BlockRadResistant(Material.IRON, "block_boron").setSoundType(SoundType.METAL).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F); public static final Block block_lanthanium = new BlockBeaconable(Material.IRON, "block_lanthanium").setSoundType(SoundType.METAL).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F); public static final Block block_ra226 = new BlockHazard(Material.IRON, "block_ra226").makeBeaconable().addRadiation(ItemHazard.ra226 * ItemHazard.block).addHydroReactivity().toBlock().setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F); + public static final Block block_radspice = new BlockHazard(Material.IRON, "block_radspice").makeBeaconable().addRadiation(ItemHazard.radspice * ItemHazard.block).addFire(15).addBlinding().addHydroReactivity().toBlock().setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F); public static final Block block_actinium = new BlockBeaconable(Material.IRON, "block_actinium").setSoundType(SoundType.METAL).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F); - public static final Block block_tritium = new BlockRotatablePillar(Material.GLASS, "block_tritium").setSoundType(SoundType.GLASS).setCreativeTab(MainRegistry.blockTab).setHardness(3.0F).setResistance(2.0F); + public static final Block block_tritium = new BlockRotatablePillarHazard(Material.GLASS, SoundType.GLASS, "block_tritium").addRadiation(4.5F).toBlock().setCreativeTab(MainRegistry.blockTab).setHardness(3.0F).setResistance(2.0F); public static final Block block_smore = new BlockBase(Material.ROCK, "block_smore").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F); public static final Block sellafield_slaked = new BlockHazard(Material.ROCK, SoundType.STONE, "sellafield_slaked").addRadiation(2.5F).toBlock().setHardness(5.0F).setResistance(6F).setCreativeTab(MainRegistry.resourceTab); @@ -689,7 +693,13 @@ public SoundEvent getBreakSound() { public static final Block block_white_phosphorus = new BlockHazard(Material.ROCK, "block_white_phosphorus").addFire(10).toBlock().setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F); public static final Block block_red_phosphorus = new BlockFallingBase(Material.SAND, "block_red_phosphorus", SoundType.SAND).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F); public static final Block block_foam = new BlockBase(Material.CRAFTED_SNOW, "block_foam").setSoundType(SoundType.SNOW).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(0.0F); - public static final Block block_graphite = new BlockGraphite(Material.IRON, 30, 5, "block_graphite").setSoundType(SoundType.METAL).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F); + public static final Block block_lignite = new BlockHazardFuel(Material.ROCK, "block_lignite", 10, 10, 12000).addCoal(4).toBlock().setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F); + public static final Block block_coke = new BlockHazardFuel(Material.ROCK, "block_coke", 10, 10, 32000).addCoal(10).toBlock().setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F); + public static final Block block_coal_infernal = new BlockHazardFuel(Material.ROCK, "block_coal_infernal", 1, 1, 84000).addFire(4).addCoal(20).toBlock().setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F); + public static final Block block_solid_fuel = new BlockHazardFuel(Material.ROCK, "block_solid_fuel", 10, 10, 32000).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F); + public static final Block block_solid_fuel_presto = new BlockHazardFuel(Material.ROCK, "block_solid_fuel_presto", 6, 6, 64000).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F); + public static final Block block_solid_fuel_presto_triplet = new BlockHazardFuel(Material.ROCK, "block_solid_fuel_presto_triplet", 2, 2, 192000).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F); + public static final Block block_graphite = new BlockGraphite(Material.IRON, "block_graphite", 30, 5, 16000).setSoundType(SoundType.METAL).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F); public static final Block block_graphite_drilled = new BlockGraphiteDrilled("block_graphite_drilled"); public static final Block block_graphite_fuel = new BlockGraphiteFuel("block_graphite_fuel"); public static final Block block_graphite_plutonium = new BlockGraphiteSource("block_graphite_plutonium"); @@ -911,10 +921,11 @@ public SoundEvent getBreakSound() { public static final Block sliding_blast_door_2 = new BlockSlidingBlastDoor(Material.IRON, "sliding_blast_door_2").setHardness(150.0F).setResistance(7500.0F).setCreativeTab(MainRegistry.machineTab); public static final Block sliding_blast_door_keypad = new BlockSlidingBlastDoor(Material.IRON, "sliding_blast_door_keypad").setHardness(150.0F).setResistance(7500.0F).setCreativeTab(null); - public static final Block small_hatch = new BlockDoorGeneric(Material.IRON, DoorDecl.HATCH, false, "small_hatch").setHardness(100.0F).setResistance(1000.0F).setCreativeTab(MainRegistry.machineTab); - public static final Block sliding_seal_door = new BlockDoorGeneric(Material.IRON, DoorDecl.SLIDING_SEAL_DOOR, false, "sliding_seal_door").setHardness(10.0F).setResistance(10000.0F).setCreativeTab(MainRegistry.machineTab); + public static final Block small_hatch = new BlockDoorGeneric(Material.IRON, DoorDecl.HATCH, true, "small_hatch").setHardness(100.0F).setResistance(1000.0F).setCreativeTab(MainRegistry.machineTab); + public static final Block sliding_seal_door = new BlockDoorGeneric(Material.IRON, DoorDecl.SLIDING_SEAL_DOOR, false, "sliding_seal_door").setHardness(10.0F).setResistance(1000.0F).setCreativeTab(MainRegistry.machineTab); + public static final Block sliding_gate_door = new BlockDoorGeneric(Material.IRON, DoorDecl.SLIDING_GATE_DOOR, true, "sliding_gate_door").setHardness(100.0F).setResistance(10000.0F).setCreativeTab(MainRegistry.machineTab); public static final Block qe_containment = new BlockDoorGeneric(Material.IRON, DoorDecl.QE_CONTAINMENT, true, "qe_containment").setHardness(100.0F).setResistance(10000.0F).setCreativeTab(MainRegistry.machineTab); - public static final Block qe_sliding_door = new BlockDoorGeneric(Material.IRON, DoorDecl.QE_SLIDING, false, "qe_sliding").setHardness(100.0F).setResistance(10000.0F).setCreativeTab(MainRegistry.machineTab); + public static final Block qe_sliding_door = new BlockDoorGeneric(Material.IRON, DoorDecl.QE_SLIDING, false, "qe_sliding").setHardness(100.0F).setResistance(1000.0F).setCreativeTab(MainRegistry.machineTab); public static final Block fire_door = new BlockDoorGeneric(Material.IRON, DoorDecl.FIRE_DOOR, true, "fire_door").setHardness(100.0F).setResistance(10000.0F).setCreativeTab(MainRegistry.machineTab); public static final Block water_door = new BlockDoorGeneric(Material.IRON, DoorDecl.WATER_DOOR, false, "water_door").setHardness(50.0F).setResistance(500.0F).setCreativeTab(MainRegistry.machineTab); public static final Block large_vehicle_door = new BlockDoorGeneric(Material.IRON, DoorDecl.LARGE_VEHICLE_DOOR, true, "large_vehicle_door").setHardness(100.0F).setResistance(10000.0F).setCreativeTab(MainRegistry.machineTab); @@ -1000,16 +1011,13 @@ public SoundEvent getBreakSound() { public static final Block machine_fensu = new MachineFENSU(Material.IRON, "machine_fensu").setHardness(5.0F).setResistance(10000000.0F).setCreativeTab(MainRegistry.machineTab); public static final int guiID_machine_battery = 21; - @Spaghetti("What is the point of you") - public static final Block machine_transformer = new MachineTransformer(Material.IRON, 10000L, 1, "machine_transformer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - public static final Block machine_transformer_20 = new MachineTransformer(Material.IRON, 10000L, 20, "machine_transformer_20").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - public static final Block machine_transformer_dnt = new MachineTransformer(Material.IRON, 1000000000000000L, 1, "machine_transformer_dnt").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - public static final Block machine_transformer_dnt_20 = new MachineTransformer(Material.IRON, 1000000000000000L, 20, "machine_transformer_dnt_20").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + public static final Block machine_transformer = new MachineCharger(Material.IRON, "machine_transformer", 1000000L, true).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + public static final Block machine_transformer_20 = new MachineCharger(Material.IRON, "machine_transformer_20", 1000000L, false).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + public static final Block machine_transformer_dnt = new MachineCharger(Material.IRON, "machine_transformer_dnt", Long.MAX_VALUE, true).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + public static final Block machine_transformer_dnt_20 = new MachineCharger(Material.IRON, "machine_transformer_dnt_20", Long.MAX_VALUE, false).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); public static final Block machine_converter_he_rf = new BlockConverterHeRf(Material.IRON, "machine_converter_he_rf").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - public static final int guiID_converter_he_rf = 28; public static final Block machine_converter_rf_he = new BlockConverterRfHe(Material.IRON, "machine_converter_rf_he").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - public static final int guiID_converter_rf_he = 29; public static final Block machine_press = new MachinePress(Material.IRON, "machine_press").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); public static final int guiID_machine_press = 53; @@ -1086,8 +1094,8 @@ public SoundEvent getBreakSound() { public static final Block pribris_radiating = new RBMKDebrisRadiating("pribris_radiating").addRadiation(5000F).addFire(30).toBlock().setCreativeTab(MainRegistry.machineTab).setHardness(50.0F).setResistance(2000.0F); public static final Block pribris_digamma = new RBMKDebrisDigamma("pribris_digamma").addDigamma(0.05F).addFire(300).toBlock().setCreativeTab(MainRegistry.machineTab).setHardness(50.0F).setResistance(6000.0F); - public static final Block block_corium = new BlockHazard(Material.IRON, "block_corium").makeBeaconable().addRad3d(1500000).addRadiation(100000F).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(100.0F).setResistance(9000.0F); - public static final Block block_corium_cobble = new BlockOutgas(Material.IRON, true, 1, true, true, "block_corium_cobble").addRadiation(10000F).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(100.0F).setResistance(6000.0F); + public static final Block block_corium = new BlockHazard(Material.IRON, "block_corium").makeBeaconable().addRad3d(150000).addRadiation(10000F).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(100.0F).setResistance(9000.0F); + public static final Block block_corium_cobble = new BlockOutgas(Material.IRON, true, 1, true, true, "block_corium_cobble").addRadiation(1000F).toBlock().setCreativeTab(MainRegistry.resourceTab).setHardness(100.0F).setResistance(6000.0F); public static final Block machine_assembler = new MachineAssembler(Material.IRON, "machine_assembler").setCreativeTab(MainRegistry.machineTab).setHardness(5.0F).setResistance(100.0F); public static final int guiID_machine_assembler = 48; @@ -1275,11 +1283,11 @@ public SoundEvent getBreakSound() { public static final int guiID_factory_titanium = 24; public static final Block factory_titanium_hull = new BlockBase(Material.IRON, "factory_titanium_hull").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); public static final Block factory_titanium_furnace = new FactoryHatch(Material.IRON, "factory_titanium_furnace").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - public static final Block factory_titanium_conductor = new BlockReactor(Material.IRON, "factory_titanium_conductor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + public static final Block factory_titanium_conductor = new BlockCableConnect(Material.IRON, "factory_titanium_conductor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); public static final Block factory_titanium_core = new FactoryCoreTitanium(Material.IRON, "factory_titanium_core").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); public static final Block factory_advanced_hull = new BlockBase(Material.IRON, "factory_advanced_hull").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); public static final Block factory_advanced_furnace = new FactoryHatch(Material.IRON, "factory_advanced_furnace").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - public static final Block factory_advanced_conductor = new BlockReactor(Material.IRON, "factory_advanced_conductor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + public static final Block factory_advanced_conductor = new BlockCableConnect(Material.IRON, "factory_advanced_conductor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); public static final Block factory_advanced_core = new FactoryCoreAdvanced(Material.IRON, "factory_advanced_core").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); public static final int guiID_factory_advanced = 25; diff --git a/src/main/java/com/hbm/blocks/bomb/NukeCustom.java b/src/main/java/com/hbm/blocks/bomb/NukeCustom.java index a7ac306d4b..bd0c1e77d3 100644 --- a/src/main/java/com/hbm/blocks/bomb/NukeCustom.java +++ b/src/main/java/com/hbm/blocks/bomb/NukeCustom.java @@ -4,6 +4,7 @@ import com.hbm.blocks.ModBlocks; import com.hbm.config.BombConfig; +import com.hbm.entity.effect.EntityCloudSolinium; import com.hbm.entity.effect.EntityCloudFleija; import com.hbm.entity.effect.EntityNukeCloudSmall; import com.hbm.entity.grenade.EntityGrenadeZOMG; @@ -93,82 +94,96 @@ public void neighborChanged(IBlockState state, World world, BlockPos pos, Block this.explode(world, pos); } } - - public static final int maxTnt = 150; - public static final int maxNuke = 200; - public static final int maxHydro = 350; - public static final int maxAmat = 350; - public static final int maxSchrab = 250; - public static void explodeCustom(World worldObj, double xCoord, double yCoord, double zCoord, float tnt, float nuke, float hydro, float amat, float dirty, float schrab, float euph) { + public static void explodeCustom(World world, double xCoord, double yCoord, double zCoord, float tnt, float nuke, float hydro, float bale, float dirty, float schrab, float sol, float euph) { - dirty = Math.min(dirty, 100); + dirty = Math.min(dirty, BombConfig.maxCustomDirtyRadius); /// EUPHEMIUM /// if(euph > 0) { - EntityGrenadeZOMG zomg = new EntityGrenadeZOMG(worldObj, xCoord, yCoord, zCoord); - ExplosionChaos.zomg(worldObj, xCoord, yCoord, zCoord, 1000, null, zomg); + euph = Math.min(euph, BombConfig.maxCustomEuphLvl); + EntityGrenadeZOMG zomg = new EntityGrenadeZOMG(world, xCoord, yCoord, zCoord); + ExplosionChaos.zomg(world, xCoord, yCoord, zCoord, (int)(100 * euph), null, zomg); + + // SOLINIUM /// + } else if(sol > 0) { + + sol += schrab / 2 + bale / 4 + hydro / 8 + nuke / 16 + tnt / 32; + sol = Math.min(sol, BombConfig.maxCustomSolRadius); + + EntityNukeExplosionMK3 entity = new EntityNukeExplosionMK3(world); + entity.setPosition(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5); + entity.destructionRange = (int) sol; + entity.speed = BombConfig.blastSpeed; + entity.coefficient = 1.0F; + entity.waste = false; + entity.extType = 1; + world.spawnEntity(entity); + + EntityCloudSolinium cloud = new EntityCloudSolinium(world, (int)sol); + cloud.setPosition(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5); + world.spawnEntity(cloud); // SCHRABIDIUM /// } else if(schrab > 0) { - schrab += amat / 2 + hydro / 4 + nuke / 8 + tnt / 16; - schrab = Math.min(schrab, maxSchrab); + schrab += bale / 2 + hydro / 4 + nuke / 8 + tnt / 16; + schrab = Math.min(schrab, BombConfig.maxCustomSchrabRadius); - EntityNukeExplosionMK3 entity = new EntityNukeExplosionMK3(worldObj); + EntityNukeExplosionMK3 entity = new EntityNukeExplosionMK3(world); entity.setPosition(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5); entity.destructionRange = (int) schrab; entity.speed = BombConfig.blastSpeed; entity.coefficient = 1.0F; entity.waste = false; - worldObj.spawnEntity(entity); + world.spawnEntity(entity); - EntityCloudFleija cloud = new EntityCloudFleija(worldObj, (int)schrab); + EntityCloudFleija cloud = new EntityCloudFleija(world, (int)schrab); cloud.setPosition(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5); - worldObj.spawnEntity(cloud); + world.spawnEntity(cloud); /// ANTIMATTER /// - } else if(amat > 0) { + } else if(bale > 0) { - amat += hydro / 2 + nuke / 4 + tnt / 8; - amat = Math.min(amat, maxAmat); + bale += hydro / 2 + nuke / 4 + tnt / 8; + bale = Math.min(bale, BombConfig.maxCustomBaleRadius); - EntityBalefire bf = new EntityBalefire(worldObj); + EntityBalefire bf = new EntityBalefire(world); bf.setPosition(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5); - bf.destructionRange = (int) amat; - worldObj.spawnEntity(bf); - worldObj.spawnEntity(EntityNukeCloudSmall.statFacBale(worldObj, xCoord + 0.5, yCoord + 5, zCoord + 0.5, amat)); + bf.destructionRange = (int) bale; + world.spawnEntity(bf); + world.spawnEntity(EntityNukeCloudSmall.statFacBale(world, xCoord + 0.5, yCoord + 5, zCoord + 0.5, bale)); /// HYDROGEN /// } else if(hydro > 0) { hydro += nuke / 2 + tnt / 4; - hydro = Math.min(hydro, maxHydro); + hydro = Math.min(hydro, BombConfig.maxCustomHydroRadius); dirty *= 0.25F; - worldObj.spawnEntity(EntityNukeExplosionMK4.statFac(worldObj, (int)hydro, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5).moreFallout((int)dirty)); - worldObj.spawnEntity(EntityNukeCloudSmall.statFac(worldObj, xCoord + 0.5, yCoord + 5, zCoord + 0.5, hydro)); + world.spawnEntity(EntityNukeExplosionMK4.statFac(world, (int)hydro, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5).moreFallout((int)dirty)); + world.spawnEntity(EntityNukeCloudSmall.statFac(world, xCoord + 0.5, yCoord + 5, zCoord + 0.5, hydro)); /// NUCLEAR /// } else if(nuke > 0) { nuke += tnt / 2; - nuke = Math.min(nuke, maxNuke); + nuke = Math.min(nuke, BombConfig.maxCustomNukeRadius); - worldObj.spawnEntity(EntityNukeExplosionMK4.statFac(worldObj, (int)nuke, xCoord + 0.5, yCoord + 5, zCoord + 0.5).moreFallout((int)dirty)); - worldObj.spawnEntity(EntityNukeCloudSmall.statFac(worldObj, xCoord + 0.5, yCoord + 5, zCoord + 0.5, nuke)); + world.spawnEntity(EntityNukeExplosionMK4.statFac(world, (int)nuke, xCoord + 0.5, yCoord + 5, zCoord + 0.5).moreFallout((int)dirty)); + world.spawnEntity(EntityNukeCloudSmall.statFac(world, xCoord + 0.5, yCoord + 5, zCoord + 0.5, nuke)); /// NON-NUCLEAR /// } else if(tnt >= 75) { - tnt = Math.min(tnt, maxTnt); + tnt = Math.min(tnt, BombConfig.maxCustomTNTRadius); - worldObj.spawnEntity(EntityNukeExplosionMK4.statFacNoRad(worldObj, (int)tnt, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5)); - worldObj.spawnEntity(EntityNukeCloudSmall.statFac(worldObj, xCoord + 0.5, yCoord + 5, zCoord + 0.5, tnt)); + world.spawnEntity(EntityNukeExplosionMK4.statFacNoRad(world, (int)tnt, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5)); + world.spawnEntity(EntityNukeCloudSmall.statFac(world, xCoord + 0.5, yCoord + 5, zCoord + 0.5, tnt)); } else if(tnt > 0) { - ExplosionLarge.explode(worldObj, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, tnt, true, true, true); + ExplosionLarge.explode(world, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, tnt, true, true, true); } } @@ -180,11 +195,11 @@ public void explode(World world, BlockPos pos) { entity.clearSlots(); world.destroyBlock(pos, false); - NukeCustom.explodeCustom(world, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, entity.tnt, entity.nuke, entity.hydro, entity.amat, entity.dirty, entity.schrab, entity.euph); + NukeCustom.explodeCustom(world, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, entity.tnt, entity.nuke, entity.hydro, entity.bale, entity.dirty, entity.schrab, entity.sol, entity.euph); } else { - EntityFallingNuke bomb = new EntityFallingNuke(world, entity.tnt, entity.nuke, entity.hydro, entity.amat, entity.dirty, entity.schrab, entity.euph); + EntityFallingNuke bomb = new EntityFallingNuke(world, entity.tnt, entity.nuke, entity.hydro, entity.bale, entity.dirty, entity.schrab, entity.sol, entity.euph); bomb.getDataManager().set(EntityFallingNuke.FACING, world.getBlockState(pos).getValue(FACING)); bomb.setPositionAndRotation(pos.getX() + 0.5, pos.getY(), pos.getZ() + 0.5, 0, 0); entity.clearSlots(); diff --git a/src/main/java/com/hbm/blocks/gas/BlockGasAsbestos.java b/src/main/java/com/hbm/blocks/gas/BlockGasAsbestos.java index f9e84d814e..f3bf736fbd 100644 --- a/src/main/java/com/hbm/blocks/gas/BlockGasAsbestos.java +++ b/src/main/java/com/hbm/blocks/gas/BlockGasAsbestos.java @@ -52,7 +52,7 @@ public ForgeDirection getSecondDirection(World world, int x, int y, int z) { @Override public void updateTick(World world, BlockPos pos, IBlockState state, Random rand) { - if(!world.isRemote && (!GeneralConfig.enableAsbestos || rand.nextInt(50) == 0)) { + if(!world.isRemote && (!GeneralConfig.enableAsbestos || rand.nextInt(10) == 0)) { world.setBlockToAir(pos); return; } diff --git a/src/main/java/com/hbm/blocks/gas/BlockGasBase.java b/src/main/java/com/hbm/blocks/gas/BlockGasBase.java index eb915ed2db..983346743c 100644 --- a/src/main/java/com/hbm/blocks/gas/BlockGasBase.java +++ b/src/main/java/com/hbm/blocks/gas/BlockGasBase.java @@ -94,7 +94,7 @@ public boolean isReplaceable(IBlockAccess worldIn, BlockPos pos){ @Override public void updateTick(World world, BlockPos pos, IBlockState state, Random rand){ if(!world.isRemote) { - if(world.rand.nextInt(4)==0){ + if(world.rand.nextInt(2)==0){ if(!tryMove(world, pos.getX(), pos.getY(), pos.getZ(), getFirstDirection(world, pos.getX(), pos.getY(), pos.getZ()))) tryMove(world, pos.getX(), pos.getY(), pos.getZ(), getSecondDirection(world, pos.getX(), pos.getY(), pos.getZ())); } @@ -147,5 +147,4 @@ public void randomDisplayTick(IBlockState stateIn, World worldIn, BlockPos pos, MainRegistry.proxy.effectNT(data); } } - } \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/gas/BlockGasCoal.java b/src/main/java/com/hbm/blocks/gas/BlockGasCoal.java index e6aa896422..8e7167a77a 100644 --- a/src/main/java/com/hbm/blocks/gas/BlockGasCoal.java +++ b/src/main/java/com/hbm/blocks/gas/BlockGasCoal.java @@ -50,7 +50,7 @@ public ForgeDirection getSecondDirection(World world, int x, int y, int z) { @Override public void updateTick(World world, BlockPos pos, IBlockState state, Random rand) { - if(!world.isRemote && (!GeneralConfig.enableCoal || rand.nextInt(12) == 0)) { + if(!world.isRemote && (!GeneralConfig.enableCoal || rand.nextInt(4) == 0)) { world.setBlockToAir(pos); return; } diff --git a/src/main/java/com/hbm/blocks/gas/BlockGasRadon.java b/src/main/java/com/hbm/blocks/gas/BlockGasRadon.java index a4609ea237..74f76d0e35 100644 --- a/src/main/java/com/hbm/blocks/gas/BlockGasRadon.java +++ b/src/main/java/com/hbm/blocks/gas/BlockGasRadon.java @@ -54,7 +54,7 @@ public ForgeDirection getSecondDirection(World world, int x, int y, int z) { @Override public void updateTick(World world, BlockPos pos, IBlockState state, Random rand){ - if(!world.isRemote && rand.nextInt(50) == 0) { + if(!world.isRemote && rand.nextInt(20) == 0) { world.setBlockToAir(pos); return; } diff --git a/src/main/java/com/hbm/blocks/gas/BlockGasRadonDense.java b/src/main/java/com/hbm/blocks/gas/BlockGasRadonDense.java index 61eeac87f5..fff6a5b960 100644 --- a/src/main/java/com/hbm/blocks/gas/BlockGasRadonDense.java +++ b/src/main/java/com/hbm/blocks/gas/BlockGasRadonDense.java @@ -71,12 +71,12 @@ public ForgeDirection getSecondDirection(World world, int x, int y, int z) { public void updateTick(World world, BlockPos pos, IBlockState state, Random rand){ if(!world.isRemote) { - if(rand.nextInt(20) == 0) { + if(rand.nextInt(10) == 0) { if(world.getBlockState(pos.down()).getBlock() == Blocks.GRASS) world.setBlockState(pos.down(), ModBlocks.waste_earth.getDefaultState()); } - if(rand.nextInt(30) == 0) { + if(rand.nextInt(20) == 0) { world.setBlockToAir(pos); if(ModBlocks.fallout.canPlaceBlockAt(world, pos)) { diff --git a/src/main/java/com/hbm/blocks/generic/BarbedWire.java b/src/main/java/com/hbm/blocks/generic/BarbedWire.java index 95ae5e9a98..b91158b281 100644 --- a/src/main/java/com/hbm/blocks/generic/BarbedWire.java +++ b/src/main/java/com/hbm/blocks/generic/BarbedWire.java @@ -73,7 +73,7 @@ public void onEntityCollidedWithBlock(World worldIn, BlockPos pos, IBlockState s } if(this == ModBlocks.barbed_wire_wither) { - ent.attackEntityFrom(DamageSource.CACTUS, 2.0F); + ent.attackEntityFrom(DamageSource.CACTUS, 3.0F); if(ent instanceof EntityLivingBase) ((EntityLivingBase)ent).addPotionEffect(new PotionEffect(MobEffects.WITHER, 5 * 20, 4)); diff --git a/src/main/java/com/hbm/blocks/generic/BlockCluster.java b/src/main/java/com/hbm/blocks/generic/BlockCluster.java index ca7ebf50e7..07b065c2a2 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockCluster.java +++ b/src/main/java/com/hbm/blocks/generic/BlockCluster.java @@ -26,7 +26,7 @@ public BlockCluster(Material mat, String s) { super(mat); this.setUnlocalizedName(s); this.setRegistryName(s); - this.setHarvestLevel("pickaxe", 3); + this.setHarvestLevel("pickaxe", 1); ModBlocks.ALL_BLOCKS.add(this); } @@ -68,6 +68,8 @@ private Item getDrop() { return ModItems.crystal_titanium; if(this == ModBlocks.cluster_aluminium) return ModItems.crystal_aluminium; + if(this == ModBlocks.cluster_copper) + return ModItems.crystal_copper; if(this == ModBlocks.basalt_gem) return ModItems.gem_volcanic; diff --git a/src/main/java/com/hbm/blocks/generic/BlockGoldSand.java b/src/main/java/com/hbm/blocks/generic/BlockGoldSand.java index f42230cf02..5369d582f5 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockGoldSand.java +++ b/src/main/java/com/hbm/blocks/generic/BlockGoldSand.java @@ -9,6 +9,8 @@ import net.minecraft.block.SoundType; import net.minecraft.block.material.Material; +import net.minecraft.block.state.IBlockState; +import net.minecraft.util.EnumHand; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.util.DamageSource; @@ -25,14 +27,15 @@ public BlockGoldSand(Material m, String s, SoundType type){ } @Override - public void onEntityWalk(World worldIn, BlockPos pos, Entity entityIn){ - if(entityIn instanceof EntityLivingBase) { - entityIn.attackEntityFrom(DamageSource.IN_FIRE, 2F); - - if(this == ModBlocks.sand_gold198) { - HbmLivingProps.addCont((EntityLivingBase)entityIn, new ContaminationEffect(5F, 300, false)); - } - } + public void onEntityWalk(World worldIn, BlockPos pos, Entity entity) { + if(entity instanceof EntityLivingBase) + this.module.applyEffects((EntityLivingBase)entity, 0.5F, 0, false, EnumHand.MAIN_HAND); + } + + @Override + public void onEntityCollidedWithBlock(World worldIn, BlockPos pos, IBlockState state, Entity entity){ + if(entity instanceof EntityLivingBase) + this.module.applyEffects((EntityLivingBase)entity, 0.5F, 0, false, EnumHand.MAIN_HAND); } @Override diff --git a/src/main/java/com/hbm/blocks/generic/BlockHazard.java b/src/main/java/com/hbm/blocks/generic/BlockHazard.java index 5921dfae34..5c9d573592 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockHazard.java +++ b/src/main/java/com/hbm/blocks/generic/BlockHazard.java @@ -19,6 +19,7 @@ import net.minecraft.block.state.IBlockState; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.EnumHand; import net.minecraft.init.MobEffects; import net.minecraft.item.Item; import net.minecraft.init.Items; @@ -74,6 +75,11 @@ public BlockHazard setDisplayEffect(ExtDisplayEffect extEffect) { return this; } + @Override + public Block setSoundType(SoundType sound) { + return super.setSoundType(sound); + } + @Override @SideOnly(Side.CLIENT) public void randomDisplayTick(IBlockState stateIn, World worldIn, BlockPos pos, Random rand){ @@ -221,103 +227,30 @@ public static enum ExtDisplayEffect { LAVAPOP } - @Override + @Override public void onEntityWalk(World worldIn, BlockPos pos, Entity entity) { - if (entity instanceof EntityLivingBase && this == ModBlocks.frozen_dirt) - { - ((EntityLivingBase) entity).addPotionEffect(new PotionEffect(MobEffects.SLOWNESS, 2 * 60 * 20, 2)); - return; - } - if (entity instanceof EntityLivingBase && this == ModBlocks.block_trinitite) - { - ((EntityLivingBase) entity).addPotionEffect(new PotionEffect(HbmPotion.radiation, 30 * 20, 2)); - return; - } + if(entity instanceof EntityLivingBase) + this.module.applyEffects((EntityLivingBase)entity, 0.5F, 0, false, EnumHand.MAIN_HAND); - if (entity instanceof EntityLivingBase && this == ModBlocks.sellafield_0) - { - ((EntityLivingBase) entity).addPotionEffect(new PotionEffect(HbmPotion.radiation, 30 * 20, 0)); - return; - } - if (entity instanceof EntityLivingBase && this == ModBlocks.sellafield_1) - { - ((EntityLivingBase) entity).addPotionEffect(new PotionEffect(HbmPotion.radiation, 25 * 20, 1)); - return; - } - if (entity instanceof EntityLivingBase && this == ModBlocks.sellafield_2) - { - ((EntityLivingBase) entity).addPotionEffect(new PotionEffect(HbmPotion.radiation, 20 * 20, 3)); - return; - } - if (entity instanceof EntityLivingBase && this == ModBlocks.sellafield_3) - { - ((EntityLivingBase) entity).addPotionEffect(new PotionEffect(HbmPotion.radiation, 15 * 20, 7)); - return; - } - if (entity instanceof EntityLivingBase && this == ModBlocks.sellafield_4) - { - ((EntityLivingBase) entity).addPotionEffect(new PotionEffect(HbmPotion.radiation, 10 * 20, 15)); - return; - } - if (entity instanceof EntityLivingBase && this == ModBlocks.sellafield_core) + + if (entity instanceof EntityLivingBase && this == ModBlocks.brick_jungle_mystic) { - ((EntityLivingBase) entity).addPotionEffect(new PotionEffect(HbmPotion.radiation, 5 * 20, 79)); + ((EntityLivingBase) entity).addPotionEffect(new PotionEffect(HbmPotion.taint, 15 * 20, 2)); return; } + } - if (entity instanceof EntityLivingBase && this == ModBlocks.baleonitite_0) - { - ((EntityLivingBase) entity).addPotionEffect(new PotionEffect(HbmPotion.radiation, 30 * 20, 1)); - return; - } - if (entity instanceof EntityLivingBase && this == ModBlocks.baleonitite_1) - { - ((EntityLivingBase) entity).addPotionEffect(new PotionEffect(HbmPotion.radiation, 25 * 20, 2)); - return; - } - if (entity instanceof EntityLivingBase && this == ModBlocks.baleonitite_2) - { - ((EntityLivingBase) entity).addPotionEffect(new PotionEffect(HbmPotion.radiation, 20 * 20, 7)); - return; - } - if (entity instanceof EntityLivingBase && this == ModBlocks.baleonitite_3) - { - ((EntityLivingBase) entity).addPotionEffect(new PotionEffect(HbmPotion.radiation, 15 * 20, 15)); - return; - } - if (entity instanceof EntityLivingBase && this == ModBlocks.baleonitite_4) - { - ((EntityLivingBase) entity).addPotionEffect(new PotionEffect(HbmPotion.radiation, 10 * 20, 31)); - return; - } - if (entity instanceof EntityLivingBase && this == ModBlocks.baleonitite_core) - { - ((EntityLivingBase) entity).addPotionEffect(new PotionEffect(HbmPotion.radiation, 5 * 20, 159)); - return; - } + @Override + public void onEntityCollidedWithBlock(World worldIn, BlockPos pos, IBlockState state, Entity entity){ + if(entity instanceof EntityLivingBase) + this.module.applyEffects((EntityLivingBase)entity, 0.5F, 0, false, EnumHand.MAIN_HAND); - if (entity instanceof EntityLivingBase && this == ModBlocks.block_waste) - { - ((EntityLivingBase) entity).addPotionEffect(new PotionEffect(HbmPotion.radiation, 30 * 20, 49)); - return; - } - if (entity instanceof EntityLivingBase && this == ModBlocks.brick_jungle_ooze) - { - ((EntityLivingBase) entity).addPotionEffect(new PotionEffect(HbmPotion.radiation, 15 * 20, 9)); - return; - } + if (entity instanceof EntityLivingBase && this == ModBlocks.brick_jungle_mystic) { ((EntityLivingBase) entity).addPotionEffect(new PotionEffect(HbmPotion.taint, 15 * 20, 2)); return; } - if(this == ModBlocks.block_meteor_molten || this == ModBlocks.block_au198){ - entity.setFire(5); - return; - } - if(this == ModBlocks.brick_jungle_lava){ - entity.setFire(10); - } } @Override diff --git a/src/main/java/com/hbm/blocks/generic/BlockFlammable.java b/src/main/java/com/hbm/blocks/generic/BlockHazardFuel.java similarity index 54% rename from src/main/java/com/hbm/blocks/generic/BlockFlammable.java rename to src/main/java/com/hbm/blocks/generic/BlockHazardFuel.java index 48455b95ae..da04018c0a 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockFlammable.java +++ b/src/main/java/com/hbm/blocks/generic/BlockHazardFuel.java @@ -1,21 +1,26 @@ package com.hbm.blocks.generic; -import com.hbm.blocks.BlockBase; - import net.minecraft.block.material.Material; import net.minecraft.util.EnumFacing; import net.minecraft.util.math.BlockPos; import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; -public class BlockFlammable extends BlockBase { +public class BlockHazardFuel extends BlockHazard { + private int burntime; public int encouragement; public int flammability; - public BlockFlammable(Material m, int en, int flam, String s){ + public BlockHazardFuel(Material m, String s, int en, int flam, int burntime){ super(m, s); this.encouragement = en; this.flammability = flam; + this.burntime = burntime; + } + + public int getBurnTime(){ + return burntime; } @Override @@ -28,4 +33,13 @@ public int getFireSpreadSpeed(IBlockAccess world, BlockPos pos, EnumFacing face) return encouragement; } + @Override + public boolean isFlammable(IBlockAccess world, BlockPos pos, EnumFacing face){ + return true; + } + + @Override + public boolean isFireSource(World world, BlockPos pos, EnumFacing side){ + return true; + } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockMarker.java b/src/main/java/com/hbm/blocks/generic/BlockMarker.java index b245f0326e..b56d223cf9 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockMarker.java +++ b/src/main/java/com/hbm/blocks/generic/BlockMarker.java @@ -52,17 +52,17 @@ public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, En if(world.isRemote) { int i = ((TileEntityStructureMarker)world.getTileEntity(pos)).type + 1; - if(i > 6) - i -= 7; + if(i > 4) + i = 0; if(i == 0) player.sendMessage(new TextComponentTranslation("[Structure Marker] Set template: Factory")); if(i == 1) player.sendMessage(new TextComponentTranslation("[Structure Marker] Set template: Nuclear Reactor")); if(i == 2) player.sendMessage(new TextComponentTranslation("[Structure Marker] Set template: Nuclear Reactor with Concrete Casing")); - if(i == 5) + if(i == 3) player.sendMessage(new TextComponentTranslation("[Structure Marker] Set template: Watz Power Plant")); - if(i == 6) + if(i == 4) player.sendMessage(new TextComponentTranslation("[Structure Marker] Set template: Singularity-Anti-Fusion-Experiment")); return true; } else if(!player.isSneaking()) diff --git a/src/main/java/com/hbm/blocks/generic/BlockOre.java b/src/main/java/com/hbm/blocks/generic/BlockOre.java index eebe7da730..f951a8ee6f 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockOre.java +++ b/src/main/java/com/hbm/blocks/generic/BlockOre.java @@ -20,6 +20,7 @@ import net.minecraft.entity.EntityLivingBase; import net.minecraft.init.Blocks; import net.minecraft.init.Items; +import net.minecraft.util.EnumHand; import net.minecraft.init.MobEffects; import net.minecraft.init.SoundEvents; import net.minecraft.item.Item; @@ -29,15 +30,18 @@ import net.minecraft.util.SoundCategory; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; +import net.minecraft.world.IBlockAccess; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; public class BlockOre extends Block implements IItemHazard { ItemHazardModule module; + public static int xp; - public BlockOre(Material materialIn, String name, int harvestLvl) { + public BlockOre(Material materialIn, String name, int harvestLvl, int xp) { super(materialIn); + this.xp = xp; this.setUnlocalizedName(name); this.setRegistryName(name); this.setCreativeTab(MainRegistry.controlTab); @@ -46,6 +50,10 @@ public BlockOre(Material materialIn, String name, int harvestLvl) { this.module = new ItemHazardModule(); ModBlocks.ALL_BLOCKS.add(this); } + + public BlockOre(Material materialIn, String name, int harvestLvl) { + this(materialIn, name, harvestLvl, 2); + } public BlockOre(Material mat, SoundType sound, String name, int harvestLvl){ this(mat, name, harvestLvl); @@ -56,6 +64,11 @@ public BlockOre(Material mat, SoundType sound, String name, int harvestLvl){ public ItemHazardModule getModule() { return module; } + + @Override + public int getExpDrop(IBlockState state, IBlockAccess world, BlockPos pos, int fortune){ + return xp; + } @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { @@ -107,7 +120,7 @@ public Item getItemDropped(IBlockState state, Random rand, int fortune) { } if(this == ModBlocks.block_meteor_treasure) { - switch(rand.nextInt(37)) { + switch(rand.nextInt(35)) { case 0: return ModItems.coil_advanced_alloy; case 1: return ModItems.plate_advanced_alloy; case 2: return ModItems.powder_desh_mix; @@ -143,8 +156,6 @@ public Item getItemDropped(IBlockState state, Random rand, int fortune) { case 32: return ModItems.gun_mirv_ammo; case 33: return ModItems.gun_defabricator_ammo; case 34: return ModItems.gun_osipr_ammo2; - case 35: return ModItems.glitch; - case 36: return ModItems.nugget_radspice; } } if(this == ModBlocks.deco_aluminium) @@ -253,6 +264,18 @@ public void addInformation(ItemStack stack, World player, List tooltip, } } + @Override + public void onEntityWalk(World worldIn, BlockPos pos, Entity entity) { + if(entity instanceof EntityLivingBase) + this.module.applyEffects((EntityLivingBase)entity, 0.5F, 0, false, EnumHand.MAIN_HAND); + } + + @Override + public void onEntityCollidedWithBlock(World worldIn, BlockPos pos, IBlockState state, Entity entity){ + if(entity instanceof EntityLivingBase) + this.module.applyEffects((EntityLivingBase)entity, 0.5F, 0, false, EnumHand.MAIN_HAND); + } + @Override public Block setSoundType(SoundType sound) { return super.setSoundType(sound); diff --git a/src/main/java/com/hbm/blocks/generic/BlockOutgas.java b/src/main/java/com/hbm/blocks/generic/BlockOutgas.java index 19913cbf20..cb10c4ad2e 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockOutgas.java +++ b/src/main/java/com/hbm/blocks/generic/BlockOutgas.java @@ -6,6 +6,7 @@ import com.hbm.interfaces.IItemHazard; import com.hbm.lib.ForgeDirection; import com.hbm.config.GeneralConfig; +import com.hbm.saveddata.RadiationSavedData; import com.hbm.modules.ItemHazardModule; import net.minecraft.block.Block; @@ -27,7 +28,7 @@ public class BlockOutgas extends BlockOre implements IItemHazard { ItemHazardModule module; public BlockOutgas(Material mat, boolean randomTick, int rate, boolean onBreak, String s) { - super(mat, s, -1); + super(mat, s, 1); this.module = new ItemHazardModule(); this.setTickRandomly(randomTick); this.randomTick = randomTick; @@ -99,6 +100,9 @@ public void onEntityWalk(World world, BlockPos pos, Entity entity){ @Override public void updateTick(World world, BlockPos pos, IBlockState state, Random rand){ + if(this == ModBlocks.block_corium_cobble) RadiationSavedData.incrementRad(world, pos, 1000F, 10000F); + if(this == ModBlocks.ancient_scrap) RadiationSavedData.incrementRad(world, pos, 150F, 1500F); + ForgeDirection dir = ForgeDirection.getOrientation(rand.nextInt(6)); if(world.getBlockState(new BlockPos(pos.getX() + dir.offsetX, pos.getY() + dir.offsetY, pos.getZ() + dir.offsetZ)).getBlock() == Blocks.AIR) { diff --git a/src/main/java/com/hbm/blocks/generic/BlockRotatablePillarHazard.java b/src/main/java/com/hbm/blocks/generic/BlockRotatablePillarHazard.java new file mode 100644 index 0000000000..b983196bc1 --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockRotatablePillarHazard.java @@ -0,0 +1,27 @@ +package com.hbm.blocks.generic; + +import com.hbm.interfaces.IItemHazard; +import com.hbm.modules.ItemHazardModule; + +import net.minecraft.block.SoundType; +import net.minecraft.block.material.Material; + +public class BlockRotatablePillarHazard extends BlockRotatablePillar implements IItemHazard { + + ItemHazardModule module; + + public BlockRotatablePillarHazard(Material materialIn, String s) { + super(materialIn, s); + this.module = new ItemHazardModule(); + } + + public BlockRotatablePillarHazard(Material mat, SoundType type, String s) { + this(mat, s); + this.setSoundType(type); + } + + @Override + public ItemHazardModule getModule() { + return module; + } +} diff --git a/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java b/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java index 56b619b9ed..0ebd94be97 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java +++ b/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java @@ -9,6 +9,7 @@ import com.hbm.lib.InventoryHelper; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; +import com.hbm.config.MachineConfig; import com.hbm.tileentity.machine.TileEntityLockableBase; import com.hbm.tileentity.machine.TileEntityCrateIron; import com.hbm.tileentity.machine.TileEntityCrateSteel; @@ -140,8 +141,8 @@ public boolean removedByPlayer(IBlockState state, World world, BlockPos pos, Ent if(!nbt.hasNoTags()) { drop.setTagCompound(nbt); - if(nbt.toString().length() > 6000) { - player.sendMessage(new TextComponentString("§cWarning: Container NBT exceeds 6kB, contents will be ejected!")); + if(nbt.toString().length() > MachineConfig.crateByteSize * 1000) { + player.sendMessage(new TextComponentString("§cWarning: Container NBT exceeds "+MachineConfig.crateByteSize+"kB, contents will be ejected!")); InventoryHelper.dropInventoryItems(world, pos, world.getTileEntity(pos)); InventoryHelper.spawnItemStack(world, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, new ItemStack(Item.getItemFromBlock(this))); return world.setBlockToAir(pos); diff --git a/src/main/java/com/hbm/blocks/items/ItemBlockHazard.java b/src/main/java/com/hbm/blocks/items/ItemBlockHazard.java index 1e61420c29..e652d486ff 100644 --- a/src/main/java/com/hbm/blocks/items/ItemBlockHazard.java +++ b/src/main/java/com/hbm/blocks/items/ItemBlockHazard.java @@ -4,6 +4,7 @@ import com.hbm.interfaces.IItemHazard; import com.hbm.modules.ItemHazardModule; +import com.hbm.blocks.generic.BlockHazardFuel; import net.minecraft.block.Block; import net.minecraft.client.util.ITooltipFlag; @@ -17,6 +18,7 @@ public class ItemBlockHazard extends ItemBlock { + private int burntime = 0; public ItemHazardModule module; public ItemBlockHazard(Block block) { @@ -25,11 +27,20 @@ public ItemBlockHazard(Block block) { if(block instanceof IItemHazard) { this.module = ((IItemHazard)block).getModule(); } + + if(block instanceof BlockHazardFuel) { + this.burntime = ((BlockHazardFuel)block).getBurnTime(); + } } public ItemHazardModule getModule() { return module; } + + @Override + public int getItemBurnTime(ItemStack itemStack) { + return burntime; + } @Override public void onUpdate(ItemStack stack, World worldIn, Entity entity, int itemSlot, boolean isSelected){ diff --git a/src/main/java/com/hbm/blocks/machine/BlockDeconRad.java b/src/main/java/com/hbm/blocks/machine/BlockDeconRad.java index 53d460be75..b278f89fd1 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockDeconRad.java +++ b/src/main/java/com/hbm/blocks/machine/BlockDeconRad.java @@ -75,5 +75,4 @@ public void onUpdate() { public EnumBlockRenderType getRenderType(IBlockState state) { return EnumBlockRenderType.MODEL; } - } diff --git a/src/main/java/com/hbm/blocks/machine/FactoryCoreAdvanced.java b/src/main/java/com/hbm/blocks/machine/FactoryCoreAdvanced.java index 011464f866..7ad3773e09 100644 --- a/src/main/java/com/hbm/blocks/machine/FactoryCoreAdvanced.java +++ b/src/main/java/com/hbm/blocks/machine/FactoryCoreAdvanced.java @@ -1,7 +1,6 @@ package com.hbm.blocks.machine; import com.hbm.blocks.ModBlocks; -import com.hbm.lib.InventoryHelper; import com.hbm.tileentity.machine.TileEntityCoreAdvanced; import net.minecraft.block.BlockContainer; @@ -27,12 +26,6 @@ public TileEntity createNewTileEntity(World worldIn, int meta) { return new TileEntityCoreAdvanced(); } - @Override - public void breakBlock(World worldIn, BlockPos pos, IBlockState state) { - InventoryHelper.dropInventoryItems(worldIn, pos, ((TileEntityCoreAdvanced)worldIn.getTileEntity(pos)).dropProvider); - super.breakBlock(worldIn, pos, state); - } - @Override public EnumBlockRenderType getRenderType(IBlockState state) { return EnumBlockRenderType.MODEL; diff --git a/src/main/java/com/hbm/blocks/machine/FactoryCoreTitanium.java b/src/main/java/com/hbm/blocks/machine/FactoryCoreTitanium.java index 275e40f0c0..173ed749fb 100644 --- a/src/main/java/com/hbm/blocks/machine/FactoryCoreTitanium.java +++ b/src/main/java/com/hbm/blocks/machine/FactoryCoreTitanium.java @@ -1,7 +1,6 @@ package com.hbm.blocks.machine; import com.hbm.blocks.ModBlocks; -import com.hbm.lib.InventoryHelper; import com.hbm.tileentity.machine.TileEntityCoreTitanium; import net.minecraft.block.BlockContainer; @@ -27,12 +26,6 @@ public TileEntity createNewTileEntity(World worldIn, int meta) { return new TileEntityCoreTitanium(); } - @Override - public void breakBlock(World worldIn, BlockPos pos, IBlockState state) { - InventoryHelper.dropInventoryItems(worldIn, pos, ((TileEntityCoreTitanium)worldIn.getTileEntity(pos)).dropProvider); - super.breakBlock(worldIn, pos, state); - } - @Override public EnumBlockRenderType getRenderType(IBlockState state) { return EnumBlockRenderType.MODEL; diff --git a/src/main/java/com/hbm/blocks/machine/FactoryHatch.java b/src/main/java/com/hbm/blocks/machine/FactoryHatch.java index 64a57acbf6..7c5e8007a1 100644 --- a/src/main/java/com/hbm/blocks/machine/FactoryHatch.java +++ b/src/main/java/com/hbm/blocks/machine/FactoryHatch.java @@ -2,10 +2,12 @@ import com.hbm.blocks.ModBlocks; import com.hbm.main.MainRegistry; +import com.hbm.tileentity.machine.TileEntityFactoryHatch; import com.hbm.tileentity.machine.TileEntityCoreAdvanced; import com.hbm.tileentity.machine.TileEntityCoreTitanium; import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; import net.minecraft.block.BlockHorizontal; import net.minecraft.block.material.Material; import net.minecraft.block.properties.IProperty; @@ -15,6 +17,8 @@ import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumBlockRenderType; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; import net.minecraft.util.Mirror; @@ -23,7 +27,7 @@ import net.minecraft.util.text.TextComponentTranslation; import net.minecraft.world.World; -public class FactoryHatch extends Block { +public class FactoryHatch extends BlockContainer { public static final PropertyDirection FACING = BlockHorizontal.FACING; @@ -39,6 +43,11 @@ public FactoryHatch(Material materialIn, String s) { public void onBlockPlacedBy(World worldIn, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack) { worldIn.setBlockState(pos, state.withProperty(FACING, placer.getHorizontalFacing().getOpposite()), 2); } + + @Override + public TileEntity createNewTileEntity(World worldIn, int meta) { + return new TileEntityFactoryHatch(); + } @Override public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) { @@ -178,6 +187,11 @@ public IBlockState getStateForPlacement(World world, BlockPos pos, EnumFacing fa return this.getDefaultState().withProperty(FACING, placer.getHorizontalFacing().getOpposite()); } + @Override + public EnumBlockRenderType getRenderType(IBlockState state) { + return EnumBlockRenderType.MODEL; + } + @Override protected BlockStateContainer createBlockState() { return new BlockStateContainer(this, new IProperty[] { FACING }); diff --git a/src/main/java/com/hbm/blocks/machine/MachineCharger.java b/src/main/java/com/hbm/blocks/machine/MachineCharger.java new file mode 100644 index 0000000000..3b02d954e6 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineCharger.java @@ -0,0 +1,78 @@ +package com.hbm.blocks.machine; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.lib.Library; +import com.hbm.blocks.ILookOverlay; +import com.hbm.blocks.ITooltipProvider; +import com.hbm.blocks.ModBlocks; +import com.hbm.tileentity.machine.TileEntityCharger; + +import net.minecraft.block.BlockContainer; +import net.minecraft.block.state.IBlockState; +import net.minecraft.block.material.Material; +import net.minecraft.client.util.ITooltipFlag; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.AxisAlignedBB; +import net.minecraft.util.EnumBlockRenderType; +import net.minecraft.world.World; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; + +public class MachineCharger extends BlockContainer implements ITooltipProvider, ILookOverlay { + + public final long maxThroughput; + public final boolean pointingUp; + + public MachineCharger(Material mat, String s, long max, boolean pointingUp) { + super(mat); + this.maxThroughput = max / 20L; + this.pointingUp = pointingUp; + this.setUnlocalizedName(s); + this.setRegistryName(s); + ModBlocks.ALL_BLOCKS.add(this); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityCharger(); + } + + @Override + public EnumBlockRenderType getRenderType(IBlockState state) { + return EnumBlockRenderType.MODEL; + } + + @Override + @SideOnly(Side.CLIENT) + public void addInformation(ItemStack stack, World player, List tooltip, ITooltipFlag advanced) { + tooltip.add("§aMax Chargerate: "+Library.getShortNumber(20 * maxThroughput)+"HE/s"); + this.addStandardInfo(tooltip); + super.addInformation(stack, player, tooltip, advanced); + } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + TileEntity te = world.getTileEntity(new BlockPos(x, y, z)); + + if(!(te instanceof TileEntityCharger)) + return; + + TileEntityCharger charger = (TileEntityCharger) te; + + List text = new ArrayList(); + + if(charger.totalCapacity > 0){ + text.add(Library.getShortNumber(charger.totalEnergy) + "/" + Library.getShortNumber(charger.totalCapacity) + " HE"); + text.add("§a-> §r" + Library.getShortNumber(20 * charger.actualCharge) + "/" + Library.getShortNumber(20 * charger.charge) + "HE/s"); + text.add("&["+Library.getColorProgress((double)charger.totalEnergy/(double)charger.totalCapacity)+"&] "+Library.getPercentage((double)charger.totalEnergy/(double)charger.totalCapacity)+"%"); + } else { + text.add("Nothing to charge"); + } + ILookOverlay.printGeneric(event, getLocalizedName(), 0xffff00, 0x404000, text); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachineChungus.java b/src/main/java/com/hbm/blocks/machine/MachineChungus.java index 3bacd371a1..13f0e9c045 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineChungus.java +++ b/src/main/java/com/hbm/blocks/machine/MachineChungus.java @@ -154,11 +154,11 @@ public void printHook(Pre event, World world, int x, int y, int z) { List text = new ArrayList(); text.add(Library.getShortNumber(chungus.power) + "/" + Library.getShortNumber(chungus.maxPower) + " HE"); + text.add("§a-> §r" + Library.getShortNumber(20 * chungus.powerProduction) + "HE/s"); if(chungus.types[0] != null) text.add("§a-> §r" + chungus.types[0].getLocalizedName(new FluidStack(chungus.types[0], 1)) + ": " + chungus.tanks[0].getFluidAmount() + "/" + chungus.tanks[0].getCapacity() + "mB"); if(chungus.types[1] != null) text.add("§c<- §r" + chungus.types[1].getLocalizedName(new FluidStack(chungus.types[1], 1)) + ": " + chungus.tanks[1].getFluidAmount() + "/" + chungus.tanks[1].getCapacity() + "mB"); - ILookOverlay.printGeneric(event, getLocalizedName(), 0xffff00, 0x404000, text); } } \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/machine/MachineDiFurnace.java b/src/main/java/com/hbm/blocks/machine/MachineDiFurnace.java index e64c81f8b8..cd7fc7f301 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineDiFurnace.java +++ b/src/main/java/com/hbm/blocks/machine/MachineDiFurnace.java @@ -211,38 +211,41 @@ public void randomDisplayTick(IBlockState stateIn, World worldIn, BlockPos pos, if (this.isActive) { EnumFacing enumfacing = (EnumFacing)stateIn.getValue(FACING); - double d0 = (double)pos.getX() + 0.5D; - double d1 = (double)pos.getY() + rand.nextDouble() * 6.0D / 16.0D; - double d2 = (double)pos.getZ() + 0.5D; - double d4 = rand.nextDouble() * 0.6D - 0.3D; + double x0 = (double)pos.getX() + 0.5D; + double y0 = (double)pos.getY() + rand.nextDouble() * 6.0D / 16.0D + 0.2D; + double z0 = (double)pos.getZ() + 0.5D; + double sideOff = 0.52F; + double sideRand = rand.nextFloat() * 0.5 - 0.25; + double xOff = rand.nextFloat() * 0.375 - 0.1875; + double zOff = rand.nextFloat() * 0.375 - 0.1875; + double smokeY = pos.getY() + 1; if (worldIn.getBlockState(pos.offset(EnumFacing.UP, 1)).getBlock() == ModBlocks.machine_difurnace_ext) { - d1 += 1; + smokeY += 1; } - if (rand.nextDouble() < 0.1D) - { + if (rand.nextDouble() < 0.1D) { worldIn.playSound((double)pos.getX() + 0.5D, (double)pos.getY(), (double)pos.getZ() + 0.5D, SoundEvents.BLOCK_FURNACE_FIRE_CRACKLE, SoundCategory.BLOCKS, 1.0F, 1.0F, false); } switch (enumfacing) { case WEST: - worldIn.spawnParticle(EnumParticleTypes.SMOKE_NORMAL, d0 - 0.52D, d1, d2 + d4, 0.0D, 0.0D, 0.0D); - worldIn.spawnParticle(EnumParticleTypes.FLAME, d0 - 0.52D, d1, d2 + d4, 0.0D, 0.0D, 0.0D); + worldIn.spawnParticle(EnumParticleTypes.FLAME, x0 - sideOff, y0, z0 + sideRand, 0.0D, 0.0D, 0.0D); + worldIn.spawnParticle(EnumParticleTypes.SMOKE_NORMAL, x0 + xOff, smokeY, z0 + zOff, 0.0D, 0.0D, 0.0D); break; case EAST: - worldIn.spawnParticle(EnumParticleTypes.SMOKE_NORMAL, d0 + 0.52D, d1, d2 + d4, 0.0D, 0.0D, 0.0D); - worldIn.spawnParticle(EnumParticleTypes.FLAME, d0 + 0.52D, d1, d2 + d4, 0.0D, 0.0D, 0.0D); + worldIn.spawnParticle(EnumParticleTypes.FLAME, x0 + sideOff, y0, z0 + sideRand, 0.0D, 0.0D, 0.0D); + worldIn.spawnParticle(EnumParticleTypes.SMOKE_NORMAL, x0 + xOff, smokeY, z0 + zOff, 0.0D, 0.0D, 0.0D); break; case NORTH: - worldIn.spawnParticle(EnumParticleTypes.SMOKE_NORMAL, d0 + d4, d1, d2 - 0.52D, 0.0D, 0.0D, 0.0D); - worldIn.spawnParticle(EnumParticleTypes.FLAME, d0 + d4, d1, d2 - 0.52D, 0.0D, 0.0D, 0.0D); + worldIn.spawnParticle(EnumParticleTypes.FLAME, x0 + sideRand, y0, z0 - sideOff, 0.0D, 0.0D, 0.0D); + worldIn.spawnParticle(EnumParticleTypes.SMOKE_NORMAL, x0 + xOff, smokeY, z0 + zOff, 0.0D, 0.0D, 0.0D); break; case SOUTH: - worldIn.spawnParticle(EnumParticleTypes.SMOKE_NORMAL, d0 + d4, d1, d2 + 0.52D, 0.0D, 0.0D, 0.0D); - worldIn.spawnParticle(EnumParticleTypes.FLAME, d0 + d4, d1, d2 + 0.52D, 0.0D, 0.0D, 0.0D); - default: + worldIn.spawnParticle(EnumParticleTypes.FLAME, x0 + sideRand, y0, z0 + sideOff, 0.0D, 0.0D, 0.0D); + worldIn.spawnParticle(EnumParticleTypes.SMOKE_NORMAL, x0 + xOff, smokeY, z0 + zOff, 0.0D, 0.0D, 0.0D); + default: break; } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineTransformer.java b/src/main/java/com/hbm/blocks/machine/MachineTransformer.java deleted file mode 100644 index b72282bdca..0000000000 --- a/src/main/java/com/hbm/blocks/machine/MachineTransformer.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.hbm.blocks.machine; - -import com.hbm.blocks.ModBlocks; -import com.hbm.main.MainRegistry; -import com.hbm.tileentity.machine.TileEntityMachineTransformer; - -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumBlockRenderType; -import net.minecraft.world.World; - -public class MachineTransformer extends BlockContainer { - - public MachineTransformer(Material materialIn, long b, int d, String s) { - super(materialIn); - this.setUnlocalizedName(s); - this.setRegistryName(s); - this.setCreativeTab(MainRegistry.machineTab); - - ModBlocks.ALL_BLOCKS.add(this); - } - - @Override - public TileEntity createNewTileEntity(World worldIn, int meta) { - return new TileEntityMachineTransformer(); - } - - @Override - public EnumBlockRenderType getRenderType(IBlockState state) { - return EnumBlockRenderType.MODEL; - } - -} diff --git a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphite.java b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphite.java index 83d00de493..d2b920830a 100644 --- a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphite.java +++ b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphite.java @@ -1,7 +1,7 @@ package com.hbm.blocks.machine.pile; import com.hbm.blocks.ModBlocks; -import com.hbm.blocks.generic.BlockFlammable; +import com.hbm.blocks.generic.BlockHazardFuel; import com.hbm.items.ModItems; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.ParticleBurstPacket; @@ -21,12 +21,12 @@ import net.minecraft.world.World; import net.minecraftforge.fml.common.network.NetworkRegistry.TargetPoint; -public class BlockGraphite extends BlockFlammable implements IToolable { +public class BlockGraphite extends BlockHazardFuel implements IToolable { - public BlockGraphite(Material mat, int en, int flam, String s) { - super(mat, en, flam, s); + public BlockGraphite(Material mat, String s, int en, int flam, int burntime) { + super(mat, s, en, flam, burntime); } @Override diff --git a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilledBase.java b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilledBase.java index 24d368027e..8781b042d8 100644 --- a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilledBase.java +++ b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilledBase.java @@ -3,7 +3,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; -import com.hbm.blocks.generic.BlockFlammable; +import com.hbm.blocks.generic.BlockHazardFuel; import com.hbm.items.ModItems; import net.minecraft.block.SoundType; @@ -20,12 +20,12 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -public class BlockGraphiteDrilledBase extends BlockFlammable { +public class BlockGraphiteDrilledBase extends BlockHazardFuel { public static final PropertyEnum AXIS = PropertyEnum.create("axis", EnumFacing.Axis.class); public BlockGraphiteDrilledBase(String s) { - super(ModBlocks.block_graphite.getDefaultState().getMaterial(), ((BlockFlammable) ModBlocks.block_graphite).encouragement, ((BlockFlammable) ModBlocks.block_graphite).flammability, s); + super(ModBlocks.block_graphite.getDefaultState().getMaterial(), s, ((BlockHazardFuel) ModBlocks.block_graphite).encouragement, ((BlockHazardFuel) ModBlocks.block_graphite).flammability, 16000); this.setCreativeTab(null); this.setSoundType(SoundType.METAL); this.setHardness(5.0F); @@ -65,5 +65,4 @@ public IBlockState getStateFromMeta(int meta){ protected BlockStateContainer createBlockState(){ return new BlockStateContainer(this, AXIS); } - } diff --git a/src/main/java/com/hbm/blocks/network/BlockFluidPipeMk2.java b/src/main/java/com/hbm/blocks/network/BlockFluidPipeMk2.java index abe23cd178..00cef75283 100644 --- a/src/main/java/com/hbm/blocks/network/BlockFluidPipeMk2.java +++ b/src/main/java/com/hbm/blocks/network/BlockFluidPipeMk2.java @@ -143,6 +143,11 @@ public EnumBlockRenderType getRenderType(IBlockState state) { return EnumBlockRenderType.ENTITYBLOCK_ANIMATED; } + @Override + public boolean isFullBlock(IBlockState state) { + return false; + } + @Override public boolean isFullCube(IBlockState state) { return false; diff --git a/src/main/java/com/hbm/config/BombConfig.java b/src/main/java/com/hbm/config/BombConfig.java index a260a54956..d9a4e1af40 100644 --- a/src/main/java/com/hbm/config/BombConfig.java +++ b/src/main/java/com/hbm/config/BombConfig.java @@ -19,6 +19,17 @@ public class BombConfig { public static int fatmanRadius = 35; public static int nukaRadius = 25; public static int aSchrabRadius = 20; + public static int riggedStarRange = 50; + public static int riggedStarTicks = 60 * 20; + + public static int maxCustomTNTRadius = 150; + public static int maxCustomNukeRadius = 250; + public static int maxCustomHydroRadius = 400; + public static int maxCustomDirtyRadius = 200; + public static int maxCustomBaleRadius = 750; + public static int maxCustomSchrabRadius = 500; + public static int maxCustomSolRadius = 1000; + public static int maxCustomEuphLvl = 20; public static int mk4 = 1024; public static int blastSpeed = 1024; @@ -74,6 +85,46 @@ public static void loadFromConfig(Configuration config) { Property propN2 = config.get(CATEGORY_NUKES, "3.13_n2Radius", 200); propN2.setComment("Radius of the N2 mine"); n2Radius = propN2.getInt(); + + Property propRS1 = config.get(CATEGORY_NUKES, "3.14_riggedStarRadius", 50); + propRS1.setComment("Radius of the Rigged Star Blaster Energy Cell"); + riggedStarRange = propRS1.getInt(); + Property propRS2 = config.get(CATEGORY_NUKES, "3.15_riggedStarFuse", 1200); + propRS2.setComment("Time in ticks before the Rigged Star Blaster Energy Cell explodes after being dropped - default 60s"); + riggedStarTicks = propRS2.getInt(); + + Property propTNT = config.get(CATEGORY_NUKES, "4.00_maxCustomTNTRadius", 150); + propTNT.setComment("Maximum TNT radius of custom nukes - default 150m"); + maxCustomTNTRadius = propTNT.getInt(); + + Property propNuke = config.get(CATEGORY_NUKES, "4.01_maxCustomNukeRadius", 250); + propNuke.setComment("Maximum Nuke radius of custom nukes - default 250m"); + maxCustomNukeRadius = propNuke.getInt(); + + Property propHydro = config.get(CATEGORY_NUKES, "4.02_maxCustomHydroRadius", 400); + propHydro.setComment("Maximum Thermonuclear radius of custom nukes - default 400m"); + maxCustomHydroRadius = propHydro.getInt(); + + Property propDirty = config.get(CATEGORY_NUKES, "4.04_maxCustomDirtyRadius", 200); + propDirty.setComment("Maximum fallout additional radius that can be added to custom nukes - default 200m"); + maxCustomDirtyRadius = propDirty.getInt(); + + Property propBale = config.get(CATEGORY_NUKES, "4.03_maxCustomBaleRadius", 750); + propBale.setComment("Maximum balefire radius of custom nukes - default 750m"); + maxCustomBaleRadius = propBale.getInt(); + + Property propSchrab = config.get(CATEGORY_NUKES, "4.05_maxCustomSchrabRadius", 500); + propSchrab.setComment("Maximum Antischrabidium radius of custom nukes - default 500m"); + maxCustomSchrabRadius = propSchrab.getInt(); + + Property propSol = config.get(CATEGORY_NUKES, "4.06_maxCustomSolRadius", 1000); + propSol.setComment("Maximum Solinium radius of custom nukes - default 1000m"); + maxCustomSolRadius = propSol.getInt(); + + Property propEuph = config.get(CATEGORY_NUKES, "4.07_maxCustomEuphLvl", 20); + propEuph.setComment("Maximum Euphemium Lvl of custom nukes (1Lvl = 100 Rays) - default 20"); + maxCustomEuphLvl = propEuph.getInt(); + final String CATEGORY_NUKE = "06_explosions"; Property propLimitExplosionLifespan = config.get(CATEGORY_NUKE, "6.00_limitExplosionLifespan", 0); diff --git a/src/main/java/com/hbm/config/CompatibilityConfig.java b/src/main/java/com/hbm/config/CompatibilityConfig.java index 4d2d4d49f6..d948a545ac 100644 --- a/src/main/java/com/hbm/config/CompatibilityConfig.java +++ b/src/main/java/com/hbm/config/CompatibilityConfig.java @@ -35,6 +35,7 @@ public class CompatibilityConfig { public static HashMap ironClusterSpawn; public static HashMap titaniumClusterSpawn; public static HashMap aluminiumClusterSpawn; + public static HashMap copperClusterSpawn; public static HashMap reiiumSpawn; public static HashMap weidaniumSpawn; @@ -141,6 +142,7 @@ public static void loadFromConfig(Configuration config) { ironClusterSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.22_ironClusterSpawn", "Amount of iron cluster veins per chunk - (Int:Int)", "Int", "Int", new String[]{ "0:4" }, ":"); titaniumClusterSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.23_titaniumClusterSpawn", "Amount of titanium cluster veins per chunk - (Int:Int)", "Int", "Int", new String[]{ "0:2" }, ":"); aluminiumClusterSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.24_aluminiumClusterSpawn", "Amount of aluminium cluster veins per chunk - (Int:Int)", "Int", "Int", new String[]{ "0:3" }, ":"); + copperClusterSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.24_copperClusterSpawn", "Amount of copper cluster veins per chunk - (Int:Int)", "Int", "Int", new String[]{ "0:3" }, ":"); reiiumSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.25_reiiumSpawnRate", "Amount of reiium ore veins per chunk - (Int:Int)", "Int", "Int", new String[]{ "-29:1" }, ":"); weidaniumSpawn = CommonConfig.createConfigHashMap(config, CATEGORY_DIMORE, "01.26_weidaniumSpawnRate", "Amount of weidanium ore veins per chunk - (Int:Int)", "Int", "Int", new String[]{ "-31:1" }, ":"); diff --git a/src/main/java/com/hbm/config/GeneralConfig.java b/src/main/java/com/hbm/config/GeneralConfig.java index 2ac4212337..1b32665118 100644 --- a/src/main/java/com/hbm/config/GeneralConfig.java +++ b/src/main/java/com/hbm/config/GeneralConfig.java @@ -67,7 +67,7 @@ public class GeneralConfig { public static boolean bulletHoleNormalMapping = true; public static int flowingDecalAmountMax = 20; public static boolean bloodFX = true; - public static int crucibleMaxCharges = 3; + public static int crucibleMaxCharges = 16; public static boolean enableReEval = true; public static boolean enable528 = false; @@ -177,10 +177,10 @@ public static void loadFromConfig(Configuration config){ flashlightVolumetric = false; } - crucibleMaxCharges = CommonConfig.createConfigInt(config, CATEGORY_GENERAL, "1.33_crucible_max_charges", "How many times you can use the crucible before recharge", 3); + crucibleMaxCharges = CommonConfig.createConfigInt(config, CATEGORY_GENERAL, "1.33_crucible_max_charges", "How many times you can use the crucible before recharge", 16); if(crucibleMaxCharges <= 0){ - crucibleMaxCharges = 3; + crucibleMaxCharges = 16; } enableWelcomeMessage = CommonConfig.createConfigBool(config, CATEGORY_GENERAL, "1.34_enableWelcomeMessage", "Enables the welcome message which appears in the chat when you load into the game", true); diff --git a/src/main/java/com/hbm/config/MachineConfig.java b/src/main/java/com/hbm/config/MachineConfig.java index dbe887e04f..e6f2d43644 100644 --- a/src/main/java/com/hbm/config/MachineConfig.java +++ b/src/main/java/com/hbm/config/MachineConfig.java @@ -43,6 +43,8 @@ public class MachineConfig { public static boolean uuMixerFluidListIsWhitelist = false; public static HashSet blacklistedMixerFluids; + public static int crateByteSize = 8; + public static boolean isFluidAllowed(Fluid f){ boolean isInList = blacklistedMixerFluids.contains(f.getName()); if(uuMixerFluidListIsWhitelist) return isInList; @@ -93,5 +95,7 @@ public static void loadFromConfig(Configuration config) { uuMixerFluidRatio = CommonConfig.createConfigInt(config, CATEGORY_MACHINE, generateConfigName(24, "uuMixerFluidRatio"), "How much mB of UU-Matter is used per mB of output fluid", 100); uuMixerFluidListIsWhitelist = CommonConfig.createConfigBool(config, CATEGORY_MACHINE, generateConfigName(25, "uuMixerFluidListIsWhitelist"), "If true then the follwing list of fluids is a whitelist. Otherwise it is a Blacklist", false); blacklistedMixerFluids = CommonConfig.createConfigHashSet(config, CATEGORY_MACHINE, generateConfigName(26, "blacklistedUUMixerFluids"), "List of fluids that can not be made by UU Mixer. - (String)", "String", new String[]{ "liquid_osmiridium" }); + + crateByteSize = CommonConfig.createConfigInt(config, CATEGORY_MACHINE, generateConfigName(27, "crateMaxByteSize"), "Controls how big the maximum storage size of mined crates can be. Warning going beond 32kb can cause freezing/crashes. - (int)", 8); } } diff --git a/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java b/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java index aa3105001f..2422812e53 100644 --- a/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java +++ b/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java @@ -329,7 +329,7 @@ else if(dist <= s6) continue; } - if(bblock == Blocks.BEDROCK){ + if(bblock == Blocks.BEDROCK || bblock == ModBlocks.ore_bedrock_oil || bblock == ModBlocks.ore_bedrock_block){ world.setBlockState(pos.add(0, 1, 0), ModBlocks.toxic_block.getDefaultState()); break; } diff --git a/src/main/java/com/hbm/entity/effect/EntityFalloutUnderGround.java b/src/main/java/com/hbm/entity/effect/EntityFalloutUnderGround.java index 637fd5afa5..4fcae82e8f 100644 --- a/src/main/java/com/hbm/entity/effect/EntityFalloutUnderGround.java +++ b/src/main/java/com/hbm/entity/effect/EntityFalloutUnderGround.java @@ -204,7 +204,7 @@ else if(l <= s6) world.setBlockState(pos, ModBlocks.sellafield_core.getDefaultState()); return; - } else if(bblock == Blocks.BEDROCK){ + } else if(bblock == Blocks.BEDROCK || bblock == ModBlocks.ore_bedrock_oil || bblock == ModBlocks.ore_bedrock_block){ world.setBlockState(pos.add(0, 1, 0), ModBlocks.toxic_block.getDefaultState()); return; diff --git a/src/main/java/com/hbm/entity/grenade/EntityGrenadeIFToxic.java b/src/main/java/com/hbm/entity/grenade/EntityGrenadeIFToxic.java index 8ca19fa478..80ffad8fb1 100644 --- a/src/main/java/com/hbm/entity/grenade/EntityGrenadeIFToxic.java +++ b/src/main/java/com/hbm/entity/grenade/EntityGrenadeIFToxic.java @@ -2,7 +2,6 @@ import com.hbm.explosion.ExplosionChaos; import com.hbm.explosion.ExplosionLarge; -import com.hbm.explosion.ExplosionNukeGeneric; import com.hbm.items.ModItems; import com.hbm.items.weapon.ItemGrenade; @@ -37,7 +36,6 @@ public void explode() { ExplosionLarge.jolt(world, posX, posY, posZ, 3, 200, 0.25); ExplosionLarge.explode(world, posX, posY, posZ, 2, true, true, true); ExplosionChaos.poison(world, (int)posX, (int)posY, (int)posZ, 12); - ExplosionNukeGeneric.waste(world, (int)posX, (int)posY, (int)posZ, 12); ExplosionChaos.spawnChlorine(world, posX, posY, posZ, 50, 1.5, 0); } } diff --git a/src/main/java/com/hbm/entity/grenade/EntityGrenadePoison.java b/src/main/java/com/hbm/entity/grenade/EntityGrenadePoison.java index 365470d417..2989d7f41f 100644 --- a/src/main/java/com/hbm/entity/grenade/EntityGrenadePoison.java +++ b/src/main/java/com/hbm/entity/grenade/EntityGrenadePoison.java @@ -1,6 +1,6 @@ package com.hbm.entity.grenade; -import com.hbm.explosion.ExplosionNukeGeneric; +import com.hbm.explosion.ExplosionChaos; import com.hbm.items.ModItems; import com.hbm.items.weapon.ItemGrenade; @@ -34,8 +34,8 @@ public void explode() { if (!this.world.isRemote) { this.setDead(); - this.world.createExplosion(this, this.posX, this.posY, this.posZ, 2.0F, true); - ExplosionNukeGeneric.wasteNoSchrab(this.world, new BlockPos((int)this.posX, (int)this.posY, (int)this.posZ), 10); + ExplosionChaos.poison(world, (int)posX, (int)posY, (int)posZ, 15); + ExplosionChaos.spawnChlorine(world, posX, posY, posZ, 50, 1.5, 0); } } diff --git a/src/main/java/com/hbm/entity/projectile/EntityFallingNuke.java b/src/main/java/com/hbm/entity/projectile/EntityFallingNuke.java index a061a769e4..08064238a8 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityFallingNuke.java +++ b/src/main/java/com/hbm/entity/projectile/EntityFallingNuke.java @@ -21,9 +21,10 @@ public class EntityFallingNuke extends EntityThrowable { float tnt; float nuke; float hydro; - float amat; + float bale; float dirty; float schrab; + float sol; float euph; public EntityFallingNuke(World worldIn) { @@ -31,16 +32,17 @@ public EntityFallingNuke(World worldIn) { this.ignoreFrustumCheck = true; } - public EntityFallingNuke(World p_i1582_1_, float tnt, float nuke, float hydro, float amat, float dirty, float schrab, float euph) { + public EntityFallingNuke(World p_i1582_1_, float tnt, float nuke, float hydro, float bale, float dirty, float schrab, float sol, float euph) { super(p_i1582_1_); this.ignoreFrustumCheck = true; this.tnt = tnt; this.nuke = nuke; this.hydro = hydro; - this.amat = amat; + this.bale = bale; this.dirty = dirty; this.schrab = schrab; + this.sol = sol; this.euph = euph; this.prevRotationYaw = this.rotationYaw = 90; this.prevRotationPitch = this.rotationPitch = 90; @@ -79,7 +81,7 @@ public void onUpdate() { { if(!this.world.isRemote) { - NukeCustom.explodeCustom(world, posX, posY, posZ, tnt, nuke, hydro, amat, dirty, schrab, euph); + NukeCustom.explodeCustom(world, posX, posY, posZ, tnt, nuke, hydro, bale, dirty, schrab, sol, euph); this.setDead(); } } diff --git a/src/main/java/com/hbm/handler/ArmorUtil.java b/src/main/java/com/hbm/handler/ArmorUtil.java index 0a125a1a48..73801e62dd 100644 --- a/src/main/java/com/hbm/handler/ArmorUtil.java +++ b/src/main/java/com/hbm/handler/ArmorUtil.java @@ -177,14 +177,14 @@ public static boolean checkForHaz2(EntityPlayer player) { if(checkArmor(player, ModItems.hazmat_paa_helmet, ModItems.hazmat_paa_plate, ModItems.hazmat_paa_legs, ModItems.hazmat_paa_boots) || checkArmor(player, ModItems.paa_helmet, ModItems.paa_plate, ModItems.paa_legs, ModItems.paa_boots) || - checkArmor(player, ModItems.liquidator_helmet, ModItems.liquidator_plate, ModItems.liquidator_legs, ModItems.liquidator_boots) || - checkArmor(player, ModItems.euphemium_helmet, ModItems.euphemium_plate, ModItems.euphemium_legs, ModItems.euphemium_boots) || - checkArmor(player, ModItems.hev_helmet, ModItems.hev_plate, ModItems.hev_legs, ModItems.hev_boots) || - checkArmor(player, ModItems.ajr_helmet, ModItems.ajr_plate, ModItems.ajr_legs, ModItems.ajr_boots) || - checkArmor(player, ModItems.ajro_helmet, ModItems.ajro_plate, ModItems.ajro_legs, ModItems.ajro_boots) || - checkArmor(player, ModItems.rpa_helmet, ModItems.rpa_plate, ModItems.rpa_legs, ModItems.rpa_boots) || - checkArmor(player, ModItems.fau_helmet, ModItems.fau_plate, ModItems.fau_legs, ModItems.fau_boots) || - checkArmor(player, ModItems.dns_helmet, ModItems.dns_plate, ModItems.dns_legs, ModItems.dns_boots)) { + checkArmor(player, ModItems.liquidator_helmet, ModItems.liquidator_plate, ModItems.liquidator_legs, ModItems.liquidator_boots) || + checkArmor(player, ModItems.euphemium_helmet, ModItems.euphemium_plate, ModItems.euphemium_legs, ModItems.euphemium_boots) || + checkArmor(player, ModItems.hev_helmet, ModItems.hev_plate, ModItems.hev_legs, ModItems.hev_boots) || + checkArmor(player, ModItems.ajr_helmet, ModItems.ajr_plate, ModItems.ajr_legs, ModItems.ajr_boots) || + checkArmor(player, ModItems.ajro_helmet, ModItems.ajro_plate, ModItems.ajro_legs, ModItems.ajro_boots) || + checkArmor(player, ModItems.rpa_helmet, ModItems.rpa_plate, ModItems.rpa_legs, ModItems.rpa_boots) || + checkArmor(player, ModItems.fau_helmet, ModItems.fau_plate, ModItems.fau_legs, ModItems.fau_boots) || + checkArmor(player, ModItems.dns_helmet, ModItems.dns_plate, ModItems.dns_legs, ModItems.dns_boots)) { return true; } diff --git a/src/main/java/com/hbm/handler/GuiHandler.java b/src/main/java/com/hbm/handler/GuiHandler.java index f97b1652ca..4df34bc5ee 100644 --- a/src/main/java/com/hbm/handler/GuiHandler.java +++ b/src/main/java/com/hbm/handler/GuiHandler.java @@ -411,12 +411,12 @@ public Object getServerGuiElement(int ID, EntityPlayer player, World world, int return null; case ModBlocks.guiID_factory_titanium: if(entity instanceof TileEntityCoreTitanium) { - return new ContainerCoreTitanium(player, (TileEntityCoreTitanium) entity); + return new ContainerCoreTitanium(player.inventory, (TileEntityCoreTitanium) entity); } return null; case ModBlocks.guiID_factory_advanced: if(entity instanceof TileEntityCoreAdvanced) { - return new ContainerCoreAdvanced(player, (TileEntityCoreAdvanced) entity); + return new ContainerCoreAdvanced(player.inventory, (TileEntityCoreAdvanced) entity); } return null; case ModBlocks.guiID_reactor_multiblock: @@ -1030,12 +1030,12 @@ public Object getClientGuiElement(int ID, EntityPlayer player, World world, int return null; case ModBlocks.guiID_factory_titanium: if(entity instanceof TileEntityCoreTitanium) { - return new GUICoreTitanium(player, (TileEntityCoreTitanium) entity); + return new GUICoreTitanium(player.inventory, (TileEntityCoreTitanium) entity); } return null; case ModBlocks.guiID_factory_advanced: if(entity instanceof TileEntityCoreAdvanced) { - return new GUICoreAdvanced(player, (TileEntityCoreAdvanced) entity); + return new GUICoreAdvanced(player.inventory, (TileEntityCoreAdvanced) entity); } return null; case ModBlocks.guiID_reactor_multiblock: diff --git a/src/main/java/com/hbm/handler/RadiationSystemNT.java b/src/main/java/com/hbm/handler/RadiationSystemNT.java index fe6beceaa1..116fbe8f04 100644 --- a/src/main/java/com/hbm/handler/RadiationSystemNT.java +++ b/src/main/java/com/hbm/handler/RadiationSystemNT.java @@ -1113,18 +1113,33 @@ public SubChunkRadiationStorage(ChunkRadiationStorage parent, int yLevel, RadPoc * @return the pocket at the specified position, or the first pocket if it doesn't exist */ public RadPocket getPocket(BlockPos pos){ - if(pocketsByBlock == null){ - //If pocketsByBlock is null, there's only one pocket anyway - return pockets[0]; - } else { - int x = pos.getX()&15; - int y = pos.getY()&15; - int z = pos.getZ()&15; - RadPocket p = pocketsByBlock[x*16*16+y*16+z]; - //If for whatever reason there isn't a pocket there, return the first pocket as a fallback - return p == null ? pockets[0] : p; - } - } + if(pocketsByBlock == null){ + //If pocketsByBlock is null, there's only one pocket anyway + return pockets[0]; + } else { + int x = pos.getX()&15; + int y = pos.getY()&15; + int z = pos.getZ()&15; + RadPocket p = pocketsByBlock[x*16*16+y*16+z]; + if (p == null) { + if (pockets != null && pockets.length > 0 && pockets[0] != null) { + // If for whatever reason there isn't a pocket there, return the first pocket as a fallback if present + return pockets[0]; + } else { + // If first pocket isn't present either, create one and warn + p = new RadPocket(this, 0); + p.radiation = 0; + if (pockets == null || pockets.length == 0) { + pockets = new RadPocket[1]; + } + pockets[0] = p; + return p; + } + } else { + return p; + } + } + } /** * Attempts to distribute radiation from another sub chunk into this one's pockets. diff --git a/src/main/java/com/hbm/handler/ToolAbility.java b/src/main/java/com/hbm/handler/ToolAbility.java index 30cf6a0cd3..b571fb935b 100644 --- a/src/main/java/com/hbm/handler/ToolAbility.java +++ b/src/main/java/com/hbm/handler/ToolAbility.java @@ -12,6 +12,9 @@ import com.hbm.inventory.CentrifugeRecipes; import com.hbm.inventory.CrystallizerRecipes; import com.hbm.inventory.ShredderRecipes; +import com.hbm.blocks.generic.BlockStorageCrate; +import com.hbm.blocks.machine.MachineBattery; +import com.hbm.blocks.machine.MachineFENSU; import com.hbm.items.ModItems; import com.hbm.items.tool.IItemAbility; import com.hbm.render.amlfrom1710.Vec3; @@ -198,6 +201,7 @@ public static class SmelterAbility extends ToolAbility { @Override public void onDig(World world, int x, int y, int z, EntityPlayer player, IBlockState block, IItemAbility tool, EnumHand hand) { + if(isNBTThing(block.getBlock())) return; //a band-aid on a gaping wound if(block.getBlock() == Blocks.LIT_REDSTONE_ORE) block = Blocks.REDSTONE_ORE.getDefaultState(); @@ -205,7 +209,7 @@ public void onDig(World world, int x, int y, int z, EntityPlayer player, IBlockS ItemStack stack = new ItemStack(block.getBlock(), 1, block.getBlock().getMetaFromState(block)); ItemStack result = FurnaceRecipes.instance().getSmeltingResult(stack); - if(result != null) { + if(result != null && !result.isEmpty()) { world.setBlockToAir(new BlockPos(x, y, z)); world.spawnEntity(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, result.copy())); } @@ -325,6 +329,8 @@ public void onDig(World world, int x, int y, int z, EntityPlayer player, IBlockS if(EnchantmentHelper.getEnchantmentLevel(Enchantments.SILK_TOUCH, player.getHeldItem(hand)) > 0 || player.getHeldItem(hand).isEmpty()) return; + if(isNBTThing(block.getBlock())) return; + //add enchantment ItemStack stack = player.getHeldItem(hand); @@ -372,6 +378,8 @@ public void onDig(World world, int x, int y, int z, EntityPlayer player, IBlockS if(EnchantmentHelper.getEnchantmentLevel(Enchantments.FORTUNE, player.getHeldItem(hand)) > 0 || player.getHeldItem(hand) == null) return; + if(isNBTThing(block.getBlock())) return; + //add enchantment ItemStack stack = player.getHeldItem(hand); @@ -527,4 +535,8 @@ public String getFullName() { return I18n.format(getName()) + getExtension(); } } + + public boolean isNBTThing(Block b){ + return b instanceof BlockStorageCrate || b instanceof MachineBattery || b instanceof MachineFENSU; + } } \ No newline at end of file diff --git a/src/main/java/com/hbm/handler/WeightedRandomChestContentFrom1710.java b/src/main/java/com/hbm/handler/WeightedRandomChestContentFrom1710.java index b7884c266e..b17b65a1c4 100644 --- a/src/main/java/com/hbm/handler/WeightedRandomChestContentFrom1710.java +++ b/src/main/java/com/hbm/handler/WeightedRandomChestContentFrom1710.java @@ -20,20 +20,20 @@ public class WeightedRandomChestContentFrom1710 extends WeightedRandom.Item /** The maximum chance of item generating. */ public int theMaximumChanceToGenerateItem; - public WeightedRandomChestContentFrom1710(Item p_i45311_1_, int p_i45311_2_, int p_i45311_3_, int p_i45311_4_, int p_i45311_5_) + public WeightedRandomChestContentFrom1710(Item item, int meta, int minChance, int maxChance, int weight) { - super(p_i45311_5_); - this.theItemId = new ItemStack(p_i45311_1_, 1, p_i45311_2_); - this.theMinimumChanceToGenerateItem = p_i45311_3_; - this.theMaximumChanceToGenerateItem = p_i45311_4_; + super(weight); + this.theItemId = new ItemStack(item, 1, meta); + this.theMinimumChanceToGenerateItem = minChance; + this.theMaximumChanceToGenerateItem = maxChance; } - public WeightedRandomChestContentFrom1710(ItemStack p_i1558_1_, int p_i1558_2_, int p_i1558_3_, int p_i1558_4_) + public WeightedRandomChestContentFrom1710(ItemStack stack, int minChance, int maxChance, int weight) { - super(p_i1558_4_); - this.theItemId = p_i1558_1_; - this.theMinimumChanceToGenerateItem = p_i1558_2_; - this.theMaximumChanceToGenerateItem = p_i1558_3_; + super(weight); + this.theItemId = stack; + this.theMinimumChanceToGenerateItem = minChance; + this.theMaximumChanceToGenerateItem = maxChance; } public static void generateChestContents(Random p_76293_0_, WeightedRandomChestContentFrom1710[] p_76293_1_, ICapabilityProvider p_76293_2_, int p_76293_3_){ diff --git a/src/main/java/com/hbm/handler/crt/Assembler.java b/src/main/java/com/hbm/handler/crt/Assembler.java index 8654b918f8..e2f34bde40 100644 --- a/src/main/java/com/hbm/handler/crt/Assembler.java +++ b/src/main/java/com/hbm/handler/crt/Assembler.java @@ -68,6 +68,12 @@ public String describe(){ @ZenMethod public static void addRecipe(IItemStack output, IItemStack[] inputs, int duration){ + CraftTweakerAPI.apply(new ActionAddRecipe(output, inputs, duration)); + } + + @ZenMethod + public static void replaceRecipe(IItemStack output, IItemStack[] inputs, int duration){ + NTMCraftTweaker.postInitActions.add(new ActionRemoveRecipe(output)); NTMCraftTweaker.postInitActions.add(new ActionAddRecipe(output, inputs, duration)); } diff --git a/src/main/java/com/hbm/handler/guncfg/Gun556mmFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun556mmFactory.java index cbf1856e4e..969e2e329a 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun556mmFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun556mmFactory.java @@ -52,8 +52,8 @@ public static GunConfiguration getEuphieConfig() { config.comment.add("Why is this gun so sticky?"); config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.R556_NORMAL); config.config.add(BulletConfigSyncingUtil.R556_GOLD); + config.config.add(BulletConfigSyncingUtil.R556_NORMAL); config.config.add(BulletConfigSyncingUtil.R556_TRACER); config.config.add(BulletConfigSyncingUtil.R556_PHOSPHORUS); config.config.add(BulletConfigSyncingUtil.R556_AP); @@ -77,7 +77,7 @@ public static GunConfiguration getSPIWConfig() { config.hasSights = true; config.reloadDuration = 25; config.firingDuration = 0; - config.ammoCap = 20; + config.ammoCap = 30; config.reloadType = GunConfiguration.RELOAD_FULL; config.allowsInfinity = true; config.crosshair = Crosshair.L_BOX; diff --git a/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java b/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java index 8680a97435..bb2469c5b9 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java @@ -161,7 +161,7 @@ public static GunConfiguration getVortexConfig() { config.hasSights = false; config.reloadDuration = 20; config.firingDuration = 0; - config.ammoCap = 40; + config.ammoCap = 10; config.reloadType = GunConfiguration.RELOAD_FULL; config.allowsInfinity = true; config.crosshair = Crosshair.NONE; @@ -182,16 +182,7 @@ public static GunConfiguration getVortexConfig() { )); config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.R556_NORMAL); - config.config.add(BulletConfigSyncingUtil.R556_GOLD); - config.config.add(BulletConfigSyncingUtil.R556_TRACER); - config.config.add(BulletConfigSyncingUtil.R556_PHOSPHORUS); - config.config.add(BulletConfigSyncingUtil.R556_AP); - config.config.add(BulletConfigSyncingUtil.R556_DU); config.config.add(BulletConfigSyncingUtil.R556_STAR); - config.config.add(BulletConfigSyncingUtil.CHL_R556); - config.config.add(BulletConfigSyncingUtil.R556_SLEEK); - config.config.add(BulletConfigSyncingUtil.R556_K); return config; diff --git a/src/main/java/com/hbm/handler/jei/JEIConfig.java b/src/main/java/com/hbm/handler/jei/JEIConfig.java index b72550c301..229fe9e01d 100644 --- a/src/main/java/com/hbm/handler/jei/JEIConfig.java +++ b/src/main/java/com/hbm/handler/jei/JEIConfig.java @@ -103,6 +103,7 @@ public void register(IModRegistry registry) { registry.addRecipeCatalyst(new ItemStack(ModBlocks.machine_cyclotron), CYCLOTRON); registry.addRecipeCatalyst(new ItemStack(ModBlocks.machine_schrabidium_transmutator), TRANSMUTATION); registry.addRecipeCatalyst(new ItemStack(ModBlocks.machine_press), PRESS); + registry.addRecipeCatalyst(new ItemStack(ModBlocks.machine_epress), PRESS); registry.addRecipeCatalyst(new ItemStack(ModBlocks.machine_difurnace_off), ALLOY); registry.addRecipeCatalyst(new ItemStack(ModBlocks.machine_difurnace_rtg_off), ALLOY); registry.addRecipeCatalyst(new ItemStack(ModBlocks.machine_boiler_off), BOILER); diff --git a/src/main/java/com/hbm/handler/jei/JeiRecipes.java b/src/main/java/com/hbm/handler/jei/JeiRecipes.java index 29734b1eda..9f7f5f994b 100644 --- a/src/main/java/com/hbm/handler/jei/JeiRecipes.java +++ b/src/main/java/com/hbm/handler/jei/JeiRecipes.java @@ -29,6 +29,7 @@ import com.hbm.inventory.FusionRecipes; import com.hbm.inventory.DiFurnaceRecipes; import com.hbm.inventory.HeatRecipes; +import com.hbm.inventory.PressRecipes; import com.hbm.inventory.MachineRecipes; import com.hbm.inventory.MachineRecipes.GasCentOutput; import com.hbm.inventory.MagicRecipes; @@ -172,10 +173,10 @@ public void getIngredients(IIngredients ingredients) { public static class PressRecipe implements IRecipeWrapper { private final List stamps; - private final ItemStack input; + private final List input; private final ItemStack output; - public PressRecipe(List stamps, ItemStack input, ItemStack output) { + public PressRecipe(List stamps, List input, ItemStack output) { this.stamps = stamps; this.input = input; this.output = output; @@ -187,7 +188,7 @@ public List getStamps() { @Override public void getIngredients(IIngredients ingredients) { - ingredients.setInput(VanillaTypes.ITEM, input); + ingredients.setInputs(VanillaTypes.ITEM, input); ingredients.setOutput(VanillaTypes.ITEM, output); } @@ -747,107 +748,17 @@ public static List getCyclotronRecipes() { public static List getPressRecipes() { if(pressRecipes != null) return pressRecipes; - pressRecipes = new ArrayList(); - Map recipes = new HashMap(); - - List i_stamps_flat = new ArrayList(); - for(Item i : MachineRecipes.stamps_flat) - i_stamps_flat.add(new ItemStack(i)); - List i_stamps_plate = new ArrayList(); - for(Item i : MachineRecipes.stamps_plate) - i_stamps_plate.add(new ItemStack(i)); - List i_stamps_wire = new ArrayList(); - for(Item i : MachineRecipes.stamps_wire) - i_stamps_wire.add(new ItemStack(i)); - List i_stamps_circuit = new ArrayList(); - for(Item i : MachineRecipes.stamps_circuit) - i_stamps_circuit.add(new ItemStack(i)); - - List i_stamps_357 = new ArrayList(); - i_stamps_357.add(new ItemStack(ModItems.stamp_357)); - i_stamps_357.add(new ItemStack(ModItems.stamp_desh_357)); - List i_stamps_44 = new ArrayList(); - i_stamps_44.add(new ItemStack(ModItems.stamp_44)); - i_stamps_44.add(new ItemStack(ModItems.stamp_desh_44)); - List i_stamps_9 = new ArrayList(); - i_stamps_9.add(new ItemStack(ModItems.stamp_9)); - i_stamps_9.add(new ItemStack(ModItems.stamp_desh_9)); - List i_stamps_50 = new ArrayList(); - i_stamps_50.add(new ItemStack(ModItems.stamp_50)); - i_stamps_50.add(new ItemStack(ModItems.stamp_desh_50)); - - recipes.put(new Object[] { i_stamps_flat, new ItemStack(ModItems.powder_coal) }, getPressResultNN(MachineRecipes.stamps_flat.get(0), ModItems.powder_coal)); - recipes.put(new Object[] { i_stamps_flat, new ItemStack(ModItems.powder_quartz) }, getPressResultNN(MachineRecipes.stamps_flat.get(0), ModItems.powder_quartz)); - recipes.put(new Object[] { i_stamps_flat, new ItemStack(ModItems.powder_lapis) }, getPressResultNN(MachineRecipes.stamps_flat.get(0), ModItems.powder_lapis)); - recipes.put(new Object[] { i_stamps_flat, new ItemStack(ModItems.powder_diamond) }, getPressResultNN(MachineRecipes.stamps_flat.get(0), ModItems.powder_diamond)); - recipes.put(new Object[] { i_stamps_flat, new ItemStack(ModItems.powder_emerald) }, getPressResultNN(MachineRecipes.stamps_flat.get(0), ModItems.powder_emerald)); - recipes.put(new Object[] { i_stamps_flat, new ItemStack(ModItems.pellet_coal) }, getPressResultNN(MachineRecipes.stamps_flat.get(0), ModItems.pellet_coal)); - recipes.put(new Object[] { i_stamps_flat, new ItemStack(ModItems.biomass) }, getPressResultNN(MachineRecipes.stamps_flat.get(0), ModItems.biomass)); - recipes.put(new Object[] { i_stamps_flat, new ItemStack(ModItems.powder_lignite) }, getPressResultNN(MachineRecipes.stamps_flat.get(0), ModItems.powder_lignite)); - recipes.put(new Object[] { i_stamps_flat, new ItemStack(ModItems.coke) }, getPressResultNN(MachineRecipes.stamps_flat.get(0), ModItems.coke)); - - - recipes.put(new Object[] { i_stamps_plate, new ItemStack(Items.IRON_INGOT) }, getPressResultNN(MachineRecipes.stamps_plate.get(0), Items.IRON_INGOT)); - recipes.put(new Object[] { i_stamps_plate, new ItemStack(Items.GOLD_INGOT) }, getPressResultNN(MachineRecipes.stamps_plate.get(0), Items.GOLD_INGOT)); - recipes.put(new Object[] { i_stamps_plate, new ItemStack(ModItems.ingot_titanium) }, getPressResultNN(MachineRecipes.stamps_plate.get(0), ModItems.ingot_titanium)); - recipes.put(new Object[] { i_stamps_plate, new ItemStack(ModItems.ingot_aluminium) }, getPressResultNN(MachineRecipes.stamps_plate.get(0), ModItems.ingot_aluminium)); - recipes.put(new Object[] { i_stamps_plate, new ItemStack(ModItems.ingot_steel) }, getPressResultNN(MachineRecipes.stamps_plate.get(0), ModItems.ingot_steel)); - recipes.put(new Object[] { i_stamps_plate, new ItemStack(ModItems.ingot_lead) }, getPressResultNN(MachineRecipes.stamps_plate.get(0), ModItems.ingot_lead)); - recipes.put(new Object[] { i_stamps_plate, new ItemStack(ModItems.ingot_copper) }, getPressResultNN(MachineRecipes.stamps_plate.get(0), ModItems.ingot_copper)); - recipes.put(new Object[] { i_stamps_plate, new ItemStack(ModItems.ingot_advanced_alloy) }, getPressResultNN(MachineRecipes.stamps_plate.get(0), ModItems.ingot_advanced_alloy)); - recipes.put(new Object[] { i_stamps_plate, new ItemStack(ModItems.ingot_schrabidium) }, getPressResultNN(MachineRecipes.stamps_plate.get(0), ModItems.ingot_schrabidium)); - recipes.put(new Object[] { i_stamps_plate, new ItemStack(ModItems.ingot_combine_steel) }, getPressResultNN(MachineRecipes.stamps_plate.get(0), ModItems.ingot_combine_steel)); - recipes.put(new Object[] { i_stamps_plate, new ItemStack(ModItems.ingot_saturnite) }, getPressResultNN(MachineRecipes.stamps_plate.get(0), ModItems.ingot_saturnite)); - - recipes.put(new Object[] { i_stamps_wire, new ItemStack(ModItems.ingot_aluminium) }, getPressResultNN(MachineRecipes.stamps_wire.get(0), ModItems.ingot_aluminium)); - recipes.put(new Object[] { i_stamps_wire, new ItemStack(ModItems.ingot_copper) }, getPressResultNN(MachineRecipes.stamps_wire.get(0), ModItems.ingot_copper)); - recipes.put(new Object[] { i_stamps_wire, new ItemStack(ModItems.ingot_tungsten) }, getPressResultNN(MachineRecipes.stamps_wire.get(0), ModItems.ingot_tungsten)); - recipes.put(new Object[] { i_stamps_wire, new ItemStack(ModItems.ingot_red_copper) }, getPressResultNN(MachineRecipes.stamps_wire.get(0), ModItems.ingot_red_copper)); - recipes.put(new Object[] { i_stamps_wire, new ItemStack(Items.GOLD_INGOT) }, getPressResultNN(MachineRecipes.stamps_wire.get(0), Items.GOLD_INGOT)); - recipes.put(new Object[] { i_stamps_wire, new ItemStack(ModItems.ingot_schrabidium) }, getPressResultNN(MachineRecipes.stamps_wire.get(0), ModItems.ingot_schrabidium)); - recipes.put(new Object[] { i_stamps_wire, new ItemStack(ModItems.ingot_advanced_alloy) }, getPressResultNN(MachineRecipes.stamps_wire.get(0), ModItems.ingot_advanced_alloy)); - recipes.put(new Object[] { i_stamps_wire, new ItemStack(ModItems.ingot_magnetized_tungsten) }, getPressResultNN(MachineRecipes.stamps_wire.get(0), ModItems.ingot_magnetized_tungsten)); - - recipes.put(new Object[] { i_stamps_circuit, new ItemStack(ModItems.circuit_raw) }, getPressResultNN(MachineRecipes.stamps_circuit.get(0), ModItems.circuit_raw)); - recipes.put(new Object[] { i_stamps_circuit, new ItemStack(ModItems.circuit_bismuth_raw) }, getPressResultNN(MachineRecipes.stamps_circuit.get(0), ModItems.circuit_bismuth_raw)); - recipes.put(new Object[] { i_stamps_circuit, new ItemStack(ModItems.circuit_arsenic_raw) }, getPressResultNN(MachineRecipes.stamps_circuit.get(0), ModItems.circuit_arsenic_raw)); - recipes.put(new Object[] { i_stamps_circuit, new ItemStack(ModItems.circuit_tantalium_raw) }, getPressResultNN(MachineRecipes.stamps_circuit.get(0), ModItems.circuit_tantalium_raw)); - - recipes.put(new Object[] { i_stamps_357, new ItemStack(ModItems.assembly_iron) }, getPressResultNN(i_stamps_357.get(0).getItem(), ModItems.assembly_iron)); - recipes.put(new Object[] { i_stamps_357, new ItemStack(ModItems.assembly_steel) }, getPressResultNN(i_stamps_357.get(0).getItem(), ModItems.assembly_steel)); - recipes.put(new Object[] { i_stamps_357, new ItemStack(ModItems.assembly_lead) }, getPressResultNN(i_stamps_357.get(0).getItem(), ModItems.assembly_lead)); - recipes.put(new Object[] { i_stamps_357, new ItemStack(ModItems.assembly_gold) }, getPressResultNN(i_stamps_357.get(0).getItem(), ModItems.assembly_gold)); - recipes.put(new Object[] { i_stamps_357, new ItemStack(ModItems.assembly_schrabidium) }, getPressResultNN(i_stamps_357.get(0).getItem(), ModItems.assembly_schrabidium)); - recipes.put(new Object[] { i_stamps_357, new ItemStack(ModItems.ingot_steel) }, getPressResultNN(i_stamps_357.get(0).getItem(), ModItems.ingot_steel)); - recipes.put(new Object[] { i_stamps_357, new ItemStack(ModItems.assembly_nightmare) }, getPressResultNN(i_stamps_357.get(0).getItem(), ModItems.assembly_nightmare)); - recipes.put(new Object[] { i_stamps_357, new ItemStack(ModItems.assembly_desh) }, getPressResultNN(i_stamps_357.get(0).getItem(), ModItems.assembly_desh)); - recipes.put(new Object[] { i_stamps_44, new ItemStack(ModItems.assembly_nopip) }, getPressResultNN(i_stamps_44.get(0).getItem(), ModItems.assembly_nopip)); - //recipes.put(new Object[] { i_stamps_44, new ItemStack(ModItems.assembly_pip) }, getPressResultNN(i_stamps_44.get(0).getItem(), ModItems.assembly_pip)); - - recipes.put(new Object[] { i_stamps_9, new ItemStack(ModItems.assembly_smg) }, getPressResultNN(i_stamps_9.get(0).getItem(), ModItems.assembly_smg)); - recipes.put(new Object[] { i_stamps_9, new ItemStack(ModItems.assembly_uzi) }, getPressResultNN(i_stamps_9.get(0).getItem(), ModItems.assembly_uzi)); - recipes.put(new Object[] { i_stamps_9, new ItemStack(ModItems.assembly_lacunae) }, getPressResultNN(i_stamps_9.get(0).getItem(), ModItems.assembly_lacunae)); - recipes.put(new Object[] { i_stamps_9, new ItemStack(Items.GOLD_INGOT) }, getPressResultNN(i_stamps_9.get(0).getItem(), Items.GOLD_INGOT)); - recipes.put(new Object[] { i_stamps_9, new ItemStack(ModItems.assembly_556) }, getPressResultNN(i_stamps_9.get(0).getItem(), ModItems.assembly_556)); - - recipes.put(new Object[] { i_stamps_50, new ItemStack(ModItems.assembly_actionexpress) }, getPressResultNN(i_stamps_50.get(0).getItem(), ModItems.assembly_actionexpress)); - recipes.put(new Object[] { i_stamps_50, new ItemStack(ModItems.assembly_calamity) }, getPressResultNN(i_stamps_50.get(0).getItem(), ModItems.assembly_calamity)); + pressRecipes = new ArrayList(); - for(Map.Entry entry : recipes.entrySet()){ - pressRecipes.add(new PressRecipe((List) entry.getKey()[0], (ItemStack) entry.getKey()[1], entry.getValue())); + for(Map.Entry, ItemStack> entry : PressRecipes.pressRecipes.entrySet()){ + + pressRecipes.add(new PressRecipe(PressRecipes.getStampList(entry.getKey().getKey()), entry.getKey().getValue().getStackList(), entry.getValue())); } return pressRecipes; } - public static ItemStack getPressResultNN(ItemStack stamp, ItemStack input) { - return MachineRecipes.getPressResult(input, stamp) == null ? new ItemStack(ModItems.nothing) : MachineRecipes.getPressResult(input, stamp); - } - - public static ItemStack getPressResultNN(Item stamp, Item input) { - return MachineRecipes.getPressResult(new ItemStack(input), new ItemStack(stamp)) == null ? new ItemStack(ModItems.nothing) : MachineRecipes.getPressResult(new ItemStack(input), new ItemStack(stamp)); - } public static List getAlloyRecipes() { if(alloyFurnaceRecipes != null) diff --git a/src/main/java/com/hbm/interfaces/IFactory.java b/src/main/java/com/hbm/interfaces/IFactory.java deleted file mode 100644 index 7b5705ab7c..0000000000 --- a/src/main/java/com/hbm/interfaces/IFactory.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.hbm.interfaces; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public interface IFactory { - - boolean isStructureValid(World world); - - public long getPowerScaled(long i); - - public int getProgressScaled(int i); - - public boolean isProcessable(ItemStack item); -} \ No newline at end of file diff --git a/src/main/java/com/hbm/inventory/AnvilRecipes.java b/src/main/java/com/hbm/inventory/AnvilRecipes.java index cdbcba041f..68660912d6 100644 --- a/src/main/java/com/hbm/inventory/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/AnvilRecipes.java @@ -115,13 +115,21 @@ public static void registerConstruction() { public static void registerConstructionRecipes() { - constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(AL.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_aluminium))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); - constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(BE.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_beryllium))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); - constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(PB.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_lead))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); - constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(MINGRADE.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_red_copper))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); - constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(STEEL.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_steel))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); - constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(TI.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_titanium))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); - constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(W.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_tungsten))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); + constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(AL.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_aluminium))).setTier(3).setOverlay(OverlayType.CONSTRUCTION)); + constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(BE.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_beryllium))).setTier(3).setOverlay(OverlayType.CONSTRUCTION)); + constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(PB.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_lead))).setTier(3).setOverlay(OverlayType.CONSTRUCTION)); + constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(MINGRADE.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_red_copper))).setTier(3).setOverlay(OverlayType.CONSTRUCTION)); + constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(STEEL.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_steel))).setTier(3).setOverlay(OverlayType.CONSTRUCTION)); + constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(TI.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_titanium))).setTier(3).setOverlay(OverlayType.CONSTRUCTION)); + constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(W.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_tungsten))).setTier(3).setOverlay(OverlayType.CONSTRUCTION)); + + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_aluminium, 1), new AnvilOutput(new ItemStack(ModItems.ingot_aluminium))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_beryllium, 1), new AnvilOutput(new ItemStack(ModItems.ingot_beryllium))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_lead, 1), new AnvilOutput(new ItemStack(ModItems.ingot_lead))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_red_copper, 1), new AnvilOutput(new ItemStack(ModItems.ingot_red_copper))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_steel, 1), new AnvilOutput(new ItemStack(ModItems.ingot_steel))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_titanium, 1), new AnvilOutput(new ItemStack(ModItems.ingot_titanium))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_tungsten, 1), new AnvilOutput(new ItemStack(ModItems.ingot_tungsten))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] {new OreDictStack(DNT.ingot(), 4), new ComparableStack(ModBlocks.depth_brick)}, @@ -144,7 +152,7 @@ public static void registerConstructionRecipes() { new AStack[] {new OreDictStack(IRON.plate(), 2), new ComparableStack(ModItems.coil_copper), new ComparableStack(ModItems.coil_copper_torus)}, new AnvilOutput(new ItemStack(ModItems.motor, 2))).setTier(1)); constructionRecipes.add(new AnvilConstructionRecipe( - new AStack[] {new ComparableStack(ModItems.motor), new OreDictStack(POLYMER.ingot(), 2), new OreDictStack(DESH.ingot(), 2), new ComparableStack(ModItems.coil_gold_torus)}, + new AStack[] {new ComparableStack(ModItems.motor), new OreDictStack(ANY_PLASTIC.ingot(), 2), new OreDictStack(DESH.ingot(), 2), new ComparableStack(ModItems.coil_gold_torus)}, new AnvilOutput(new ItemStack(ModItems.motor_desh, 1))).setTier(3)); constructionRecipes.add(new AnvilConstructionRecipe( @@ -288,10 +296,10 @@ public static void registerConstructionRecipes() { }, new AnvilOutput(new ItemStack(ModBlocks.machine_deuterium_tower))).setTier(4)); constructionRecipes.add(new AnvilConstructionRecipe( - new AStack[] {new OreDictStack(DESH.ingot(), 4), new OreDictStack(POLYMER.dust(), 2), new OreDictStack(DURA.ingot(), 1)}, + new AStack[] {new OreDictStack(DESH.ingot(), 4), new OreDictStack(ANY_PLASTIC.dust(), 2), new OreDictStack(DURA.ingot(), 1)}, new AnvilOutput(new ItemStack(ModItems.plate_desh, 4))).setTier(3)); constructionRecipes.add(new AnvilConstructionRecipe( - new AStack[] {new OreDictStack(EUPH.ingot(), 4), new OreDictStack(AT.dust(), 3), new OreDictStack(ANY_BISMOID.dust(), 1), new OreDictStack(VOLCANIC.gem(), 1), new ComparableStack(ModItems.ingot_osmiridium)}, + new AStack[] {new OreDictStack(EUPH.ingot(), 4), new OreDictStack(AT.ingot(), 3), new OreDictStack(ANY_BISMOID.dust(), 1), new OreDictStack(VOLCANIC.gem(), 1), new ComparableStack(ModItems.ingot_osmiridium)}, new AnvilOutput(new ItemStack(ModItems.plate_euphemium, 4))).setTier(6)); constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] {new OreDictStack(DNT.ingot(), 4), new ComparableStack(ModItems.powder_spark_mix, 2), new OreDictStack(DESH.ingot(), 1)}, diff --git a/src/main/java/com/hbm/inventory/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/AssemblerRecipes.java index e72058bd95..4ab297b74a 100644 --- a/src/main/java/com/hbm/inventory/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/AssemblerRecipes.java @@ -443,10 +443,10 @@ private static void registerDefaults() { makeRecipe(new ComparableStack(ModBlocks.machine_teleporter, 1), new AStack[] { new OreDictStack(TI.ingot(), 6), new OreDictStack(ALLOY.plate(), 12), new OreDictStack(CMB.plate(), 4), new ComparableStack(ModItems.telepad, 1), new ComparableStack(ModItems.entanglement_kit, 1), new ComparableStack(ModBlocks.machine_battery, 2), new ComparableStack(ModItems.coil_magnetized_tungsten, 4), }, 300); makeRecipe(new ComparableStack(ModBlocks.machine_schrabidium_transmutator, 1), new AStack[] { new OreDictStack(MAGTUNG.ingot(), 1), new OreDictStack(TI.ingot(), 24), new OreDictStack(ALLOY.plate(), 18), new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModItems.plate_desh, 6), new OreDictStack(RUBBER.ingot(), 8), new ComparableStack(ModBlocks.machine_battery, 5), new ComparableStack(ModItems.circuit_gold, 5), }, 500); makeRecipe(new ComparableStack(ModBlocks.machine_combine_factory, 1), new AStack[] { new OreDictStack(STEEL.ingot(), 8), new OreDictStack(ANY_PLASTIC.ingot(), 6), new OreDictStack(TI.plate(), 4), new OreDictStack(CU.plate(), 6), new ComparableStack(ModItems.circuit_gold, 6), new ComparableStack(ModItems.coil_advanced_alloy, 8), new ComparableStack(ModItems.coil_tungsten, 4), new OreDictStack(MAGTUNG.ingot(), 12), }, 150); - makeRecipe(new ComparableStack(ModBlocks.factory_advanced_hull, 1), new AStack[] { new OreDictStack(ALLOY.ingot(), 4), new OreDictStack(ALLOY.plate(), 4), new ComparableStack(ModItems.wire_advanced_alloy, 6), }, 50); - makeRecipe(new ComparableStack(ModBlocks.factory_advanced_furnace, 1), new AStack[] { new OreDictStack(ALLOY.ingot(), 4), new OreDictStack(ALLOY.plate(), 4), new OreDictStack(STEEL.plate(), 8), new ComparableStack(ModItems.coil_advanced_alloy, 2), }, 100); - makeRecipe(new ComparableStack(ModBlocks.factory_advanced_core, 1), new AStack[] { new OreDictStack(ALLOY.ingot(), 6), new OreDictStack(ALLOY.plate(), 6), new OreDictStack(STEEL.plate(), 8), new ComparableStack(ModItems.coil_advanced_alloy, 2), new ComparableStack(ModItems.motor, 16), new ComparableStack(Blocks.PISTON, 6), }, 100); - makeRecipe(new ComparableStack(ModBlocks.factory_advanced_conductor, 1), new AStack[] { new OreDictStack(ALLOY.ingot(), 8), new OreDictStack(ALLOY.plate(), 6), new ComparableStack(ModItems.wire_advanced_alloy, 4), new ComparableStack(ModItems.fuse, 6), }, 50); + makeRecipe(new ComparableStack(ModBlocks.factory_advanced_hull, 1), new AStack[] { new OreDictStack(ALLOY.ingot(), 4), new OreDictStack(ALLOY.plate(), 4), new OreDictStack(POLYMER.ingot(), 2), new ComparableStack(ModItems.wire_advanced_alloy, 6), }, 50); + makeRecipe(new ComparableStack(ModBlocks.factory_advanced_furnace, 1), new AStack[] { new OreDictStack(ALLOY.ingot(), 4), new OreDictStack(ALLOY.plate(), 4), new OreDictStack(STEEL.plate(), 8), new OreDictStack(POLYMER.ingot(), 4), new ComparableStack(ModItems.coil_advanced_alloy, 2), }, 100); + makeRecipe(new ComparableStack(ModBlocks.factory_advanced_core, 1), new AStack[] { new OreDictStack(ALLOY.ingot(), 6), new OreDictStack(ALLOY.plate(), 6), new OreDictStack(STEEL.plate(), 8), new ComparableStack(ModItems.coil_advanced_alloy, 2), new ComparableStack(ModItems.motor, 16), new ComparableStack(Blocks.PISTON, 6), new OreDictStack(POLYMER.block(), 4) }, 100); + makeRecipe(new ComparableStack(ModBlocks.factory_advanced_conductor, 1), new AStack[] { new OreDictStack(ALLOY.ingot(), 8), new OreDictStack(ALLOY.plate(), 6), new OreDictStack(POLYMER.ingot(), 4), new ComparableStack(ModItems.wire_advanced_alloy, 4), new ComparableStack(ModItems.fuse, 6), }, 50); makeRecipe(new ComparableStack(ModBlocks.reactor_element, 1), new AStack[] { new OreDictStack(STEEL.ingot(), 2), new OreDictStack(OreDictManager.getReflector(), 4), new OreDictStack(PB.plate(), 2), new ComparableStack(ModItems.rod_empty, 8), }, 150); makeRecipe(new ComparableStack(ModBlocks.reactor_control, 1), new AStack[] { new OreDictStack(STEEL.ingot(), 4), new OreDictStack(PB.ingot(), 6), new ComparableStack(ModItems.bolt_tungsten, 6), new ComparableStack(ModItems.motor, 1), }, 100); makeRecipe(new ComparableStack(ModBlocks.reactor_hatch, 1), new AStack[] { new ComparableStack(ModBlocks.brick_concrete, 1), new OreDictStack(STEEL.plate(), 6), }, 150); @@ -508,11 +508,46 @@ private static void registerDefaults() { makeRecipe(new ComparableStack(ModItems.missile_volcano, 1), new AStack[]{new ComparableStack(ModItems.warhead_volcano, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 20), new OreDictStack(STEEL.plate(), 24), new OreDictStack(AL.plate(), 16), new ComparableStack(ModItems.circuit_targeting_tier5, 1)}, 600); makeRecipe(new ComparableStack(ModItems.missile_endo, 1), new AStack[] { new ComparableStack(ModItems.warhead_thermo_endo, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 14), new OreDictStack(STEEL.plate(), 20), new OreDictStack(AL.plate(), 12), new ComparableStack(ModItems.circuit_targeting_tier4, 1), }, 350); makeRecipe(new ComparableStack(ModItems.missile_exo, 1), new AStack[] { new ComparableStack(ModItems.warhead_thermo_exo, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 14), new OreDictStack(STEEL.plate(), 20), new OreDictStack(AL.plate(), 12), new ComparableStack(ModItems.circuit_targeting_tier4, 1), }, 350); + makeRecipe(new ComparableStack(ModItems.gun_defabricator, 1), new AStack[] { new OreDictStack(STEEL.ingot(), 2), new OreDictStack(ANY_PLASTIC.ingot(), 8), new OreDictStack(IRON.plate(), 5), new ComparableStack(ModItems.mechanism_special, 3), new ComparableStack(Items.DIAMOND, 1), new ComparableStack(ModItems.plate_dalekanium, 3), }, 200); makeRecipe(new ComparableStack(ModItems.gun_fatman_ammo, 1), new AStack[] { new OreDictStack(STEEL.plate(), 3), new OreDictStack(IRON.plate(), 1), new OreDictStack(PU239.nugget(), 3), }, 40); makeRecipe(new ComparableStack(ModItems.gun_mirv_ammo, 1), new AStack[] { new OreDictStack(STEEL.plate(), 20), new OreDictStack(IRON.plate(), 10), new OreDictStack(PU239.nugget(), 24), }, 100); makeRecipe(new ComparableStack(ModItems.gun_osipr_ammo, 24), new AStack[] { new OreDictStack(STEEL.plate(), 2), new ComparableStack(Items.REDSTONE, 1), new ComparableStack(Items.GLOWSTONE_DUST, 1), }, 50); makeRecipe(new ComparableStack(ModItems.gun_osipr_ammo2, 1), new AStack[] { new OreDictStack(CMB.plate(), 4), new ComparableStack(Items.REDSTONE, 7), new ComparableStack(ModItems.powder_power, 3), }, 200); + + //AMMO CLIP CRAFTING + makeRecipe(new ComparableStack(ModItems.clip_revolver_iron), new AStack[] { new ComparableStack(ModItems.plate_polymer), new ComparableStack(ModItems.gun_revolver_iron_ammo, 24) }, 40); + makeRecipe(new ComparableStack(ModItems.clip_revolver), new AStack[] { new ComparableStack(ModItems.plate_polymer), new ComparableStack(ModItems.gun_revolver_ammo, 12) }, 40); + makeRecipe(new ComparableStack(ModItems.clip_revolver_gold), new AStack[] { new ComparableStack(ModItems.plate_polymer), new ComparableStack(ModItems.gun_revolver_gold_ammo, 12) }, 40); + makeRecipe(new ComparableStack(ModItems.clip_revolver_lead), new AStack[] { new ComparableStack(ModItems.plate_polymer), new ComparableStack(ModItems.gun_revolver_lead_ammo, 12) }, 40); + makeRecipe(new ComparableStack(ModItems.clip_revolver_schrabidium), new AStack[] { new ComparableStack(ModItems.plate_polymer), new ComparableStack(ModItems.gun_revolver_schrabidium_ammo, 12) }, 40); + makeRecipe(new ComparableStack(ModItems.clip_revolver_cursed), new AStack[] { new ComparableStack(ModItems.plate_polymer), new ComparableStack(ModItems.gun_revolver_cursed_ammo, 17) }, 40); + makeRecipe(new ComparableStack(ModItems.clip_revolver_nightmare), new AStack[] { new ComparableStack(ModItems.plate_polymer), new ComparableStack(ModItems.gun_revolver_nightmare_ammo, 6) }, 40); + makeRecipe(new ComparableStack(ModItems.clip_revolver_nightmare2), new AStack[] { new ComparableStack(ModItems.plate_polymer), new ComparableStack(ModItems.gun_revolver_nightmare2_ammo, 6) }, 40); + makeRecipe(new ComparableStack(ModItems.clip_revolver_pip), new AStack[] { new ComparableStack(ModItems.plate_polymer), new ComparableStack(ModItems.ammo_44_pip, 6) }, 40); + makeRecipe(new ComparableStack(ModItems.clip_revolver_nopip), new AStack[] { new ComparableStack(ModItems.plate_polymer), new ComparableStack(ModItems.ammo_44, 12) }, 40); + makeRecipe(new ComparableStack(ModItems.clip_rpg), new AStack[] { new ComparableStack(ModItems.plate_polymer), new ComparableStack(ModItems.ammo_rocket, 6) }, 40); + makeRecipe(new ComparableStack(ModItems.clip_stinger), new AStack[] { new ComparableStack(ModItems.plate_polymer), new ComparableStack(ModItems.gun_stinger_ammo, 6) }, 40); + makeRecipe(new ComparableStack(ModItems.clip_fatman), new AStack[] { new ComparableStack(ModItems.plate_polymer), new ComparableStack(ModItems.ammo_nuke, 6) }, 40); + makeRecipe(new ComparableStack(ModItems.clip_mirv), new AStack[] { new ComparableStack(ModItems.plate_polymer), new ComparableStack(ModItems.ammo_mirv, 3) }, 40); + makeRecipe(new ComparableStack(ModItems.clip_bf), new AStack[] { new ComparableStack(ModItems.plate_polymer), new ComparableStack(ModItems.gun_bf_ammo, 2) }, 40); + makeRecipe(new ComparableStack(ModItems.clip_mp40), new AStack[] { new ComparableStack(ModItems.plate_polymer), new ComparableStack(ModItems.ammo_9mm, 32) }, 40); + makeRecipe(new ComparableStack(ModItems.clip_uzi), new AStack[] { new ComparableStack(ModItems.plate_polymer), new ComparableStack(ModItems.ammo_22lr, 32) }, 40); + makeRecipe(new ComparableStack(ModItems.clip_uboinik), new AStack[] { new ComparableStack(ModItems.plate_polymer), new ComparableStack(ModItems.ammo_12gauge, 24) }, 40); + makeRecipe(new ComparableStack(ModItems.clip_lever_action), new AStack[] { new ComparableStack(ModItems.plate_polymer), new ComparableStack(ModItems.ammo_20gauge, 24) }, 40); + makeRecipe(new ComparableStack(ModItems.clip_bolt_action), new AStack[] { new ComparableStack(ModItems.plate_polymer), new ComparableStack(ModItems.ammo_20gauge_slug, 24) }, 40); + makeRecipe(new ComparableStack(ModItems.clip_osipr), new AStack[] { new ComparableStack(ModItems.plate_polymer), new ComparableStack(ModItems.gun_osipr_ammo, 30) }, 40); + makeRecipe(new ComparableStack(ModItems.clip_immolator), new AStack[] { new ComparableStack(ModItems.plate_polymer), new ComparableStack(ModItems.gun_immolator_ammo, 64) }, 40); + makeRecipe(new ComparableStack(ModItems.clip_cryolator), new AStack[] { new ComparableStack(ModItems.plate_polymer), new ComparableStack(ModItems.gun_cryolator_ammo, 64) }, 40); + makeRecipe(new ComparableStack(ModItems.clip_mp), new AStack[] { new ComparableStack(ModItems.plate_polymer), new ComparableStack(ModItems.ammo_566_gold, 40) }, 40); + makeRecipe(new ComparableStack(ModItems.clip_xvl1456), new AStack[] { new ComparableStack(ModItems.plate_polymer), new ComparableStack(ModItems.gun_xvl1456_ammo, 64) }, 40); + makeRecipe(new ComparableStack(ModItems.clip_emp), new AStack[] { new ComparableStack(ModItems.plate_polymer), new ComparableStack(ModItems.gun_emp_ammo, 6) }, 40); + makeRecipe(new ComparableStack(ModItems.clip_jack), new AStack[] { new ComparableStack(ModItems.plate_polymer), new ComparableStack(ModItems.gun_jack_ammo, 12) }, 40); + makeRecipe(new ComparableStack(ModItems.clip_spark), new AStack[] { new ComparableStack(ModItems.plate_polymer), new ComparableStack(ModItems.gun_spark_ammo, 4) }, 40); + makeRecipe(new ComparableStack(ModItems.clip_hp), new AStack[] { new ComparableStack(ModItems.plate_polymer), new ComparableStack(ModItems.gun_hp_ammo, 12) }, 40); + makeRecipe(new ComparableStack(ModItems.clip_euthanasia), new AStack[] { new ComparableStack(ModItems.plate_polymer), new ComparableStack(ModItems.gun_euthanasia_ammo, 16) }, 40); + makeRecipe(new ComparableStack(ModItems.clip_defabricator), new AStack[] { new ComparableStack(ModItems.plate_polymer), new ComparableStack(ModItems.gun_defabricator_ammo, 16) }, 40); + makeRecipe(new ComparableStack(ModItems.grenade_fire, 1), new AStack[] { new ComparableStack(ModItems.grenade_frag, 1), new OreDictStack(P_RED.dust(), 1), new OreDictStack(CU.plate(), 2), }, 150); makeRecipe(new ComparableStack(ModItems.grenade_shrapnel, 1), new AStack[] { new ComparableStack(ModItems.grenade_frag, 1), new ComparableStack(ModItems.pellet_buckshot, 1), new OreDictStack(STEEL.plate(), 2), }, 150); makeRecipe(new ComparableStack(ModItems.grenade_cluster, 1), new AStack[] { new ComparableStack(ModItems.grenade_frag, 1), new ComparableStack(ModItems.pellet_cluster, 1), new OreDictStack(STEEL.plate(), 2), }, 200); @@ -976,15 +1011,16 @@ private static void registerDefaults() { makeRecipe(new ComparableStack(ModBlocks.machine_bat9000, 1), new AStack[] {new OreDictStack(STEEL.plate(), 16), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 16), new ComparableStack(ModBlocks.steel_scaffold, 16), new ComparableStack(ModItems.oil_tar, 16), },150); makeRecipe(new ComparableStack(ModBlocks.machine_orbus, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 12), new OreDictStack(BIGMT.plate(), 12), new ComparableStack(ModItems.coil_advanced_alloy, 12), new ComparableStack(ModItems.battery_sc_polonium, 1) }, 200); - makeRecipe(new ComparableStack(ModBlocks.large_vehicle_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 36), new OreDictStack(ALLOY.plate(), 4), new ComparableStack(ModItems.plate_polymer, 2), new OreDictStack(STEEL.block(), 4), new ComparableStack(ModItems.motor, 4), new ComparableStack(ModItems.bolt_dura_steel, 12), new OreDictStack(KEY_GREEN, 4)}, 500); + makeRecipe(new ComparableStack(ModBlocks.large_vehicle_door, 1), new AStack[]{new OreDictStack(PB.plate(), 24), new OreDictStack(STEEL.plate(), 36), new OreDictStack(ALLOY.plate(), 4), new ComparableStack(ModItems.plate_polymer, 2), new OreDictStack(STEEL.block(), 4), new ComparableStack(ModItems.motor, 4), new ComparableStack(ModItems.bolt_dura_steel, 12), new OreDictStack(KEY_GREEN, 4)}, 500); makeRecipe(new ComparableStack(ModBlocks.water_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 12), new OreDictStack(ALLOY.plate(), 2), new ComparableStack(ModItems.bolt_dura_steel, 2), new OreDictStack(KEY_RED, 1)}, 500); - makeRecipe(new ComparableStack(ModBlocks.qe_containment, 1), new AStack[]{new OreDictStack(STEEL.plate(), 24), new OreDictStack(ALLOY.plate(), 8), new ComparableStack(ModItems.plate_polymer, 8), new OreDictStack(STEEL.block(), 2), new ComparableStack(ModItems.motor, 4), new ComparableStack(ModItems.bolt_dura_steel, 16), new OreDictStack(KEY_BLACK, 4)}, 500); + makeRecipe(new ComparableStack(ModBlocks.qe_containment, 1), new AStack[]{new OreDictStack(PB.plate(), 12), new OreDictStack(STEEL.plate(), 24), new OreDictStack(ALLOY.plate(), 8), new ComparableStack(ModItems.plate_polymer, 8), new OreDictStack(STEEL.block(), 2), new ComparableStack(ModItems.motor, 4), new ComparableStack(ModItems.bolt_dura_steel, 16), new OreDictStack(KEY_BLACK, 4)}, 500); makeRecipe(new ComparableStack(ModBlocks.qe_sliding_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModItems.plate_polymer, 2), new OreDictStack(STEEL.block(), 1), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.bolt_dura_steel, 2), new OreDictStack(KEY_WHITE, 4), new ComparableStack(Blocks.GLASS, 4)}, 200); - makeRecipe(new ComparableStack(ModBlocks.fire_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 36), new OreDictStack(ASBESTOS.ingot(), 12), new ComparableStack(ModItems.plate_polymer, 6), new OreDictStack(STEEL.block(), 4), new ComparableStack(ModItems.motor, 4), new ComparableStack(ModItems.bolt_dura_steel, 6), new OreDictStack(KEY_RED, 8)}, 500); - makeRecipe(new ComparableStack(ModBlocks.small_hatch, 1), new AStack[]{new OreDictStack(STEEL.plate(), 8), new OreDictStack(ALLOY.plate(), 2), new ComparableStack(ModItems.bolt_dura_steel, 1), new ComparableStack(ModBlocks.brick_concrete, 1), new ComparableStack(ModBlocks.ladder_red, 1)}, 200); - makeRecipe(new ComparableStack(ModBlocks.round_airlock_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 32), new OreDictStack(ALLOY.plate(), 12), new ComparableStack(ModItems.plate_polymer, 12), new OreDictStack(STEEL.block(), 6), new ComparableStack(ModItems.motor, 6), new ComparableStack(ModItems.bolt_dura_steel, 12), new OreDictStack(KEY_GRAY, 4)}, 500); - makeRecipe(new ComparableStack(ModBlocks.secure_access_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 48), new OreDictStack(ALLOY.plate(), 16), new ComparableStack(ModItems.plate_polymer, 2), new OreDictStack(STEEL.block(), 6), new ComparableStack(ModItems.motor, 4), new ComparableStack(ModItems.bolt_dura_steel, 24), new OreDictStack(KEY_CYAN, 8)}, 1000); - makeRecipe(new ComparableStack(ModBlocks.sliding_seal_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 12), new OreDictStack(ALLOY.plate(), 4), new ComparableStack(ModItems.plate_polymer, 2), new OreDictStack(STEEL.block(), 1), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.bolt_dura_steel, 2), new OreDictStack(KEY_WHITE, 2)}, 500); + makeRecipe(new ComparableStack(ModBlocks.fire_door, 1), new AStack[]{new OreDictStack(PB.plate(), 12), new OreDictStack(STEEL.plate(), 36), new OreDictStack(ASBESTOS.ingot(), 12), new ComparableStack(ModItems.plate_polymer, 6), new OreDictStack(STEEL.block(), 4), new ComparableStack(ModItems.motor, 4), new ComparableStack(ModItems.bolt_dura_steel, 6), new OreDictStack(KEY_RED, 8)}, 500); + makeRecipe(new ComparableStack(ModBlocks.small_hatch, 1), new AStack[]{new OreDictStack(PB.plate(), 4), new OreDictStack(STEEL.plate(), 8), new OreDictStack(ALLOY.plate(), 2), new ComparableStack(ModItems.bolt_dura_steel, 1), new ComparableStack(ModBlocks.brick_concrete, 1), new ComparableStack(ModBlocks.ladder_red, 1)}, 200); + makeRecipe(new ComparableStack(ModBlocks.round_airlock_door, 1), new AStack[]{new OreDictStack(PB.plate(), 16), new OreDictStack(STEEL.plate(), 32), new OreDictStack(ALLOY.plate(), 12), new ComparableStack(ModItems.plate_polymer, 12), new OreDictStack(STEEL.block(), 6), new ComparableStack(ModItems.motor, 6), new ComparableStack(ModItems.bolt_dura_steel, 12), new OreDictStack(KEY_GRAY, 4)}, 500); + makeRecipe(new ComparableStack(ModBlocks.secure_access_door, 1), new AStack[]{new OreDictStack(PB.plate(), 32), new OreDictStack(STEEL.plate(), 48), new OreDictStack(ALLOY.plate(), 16), new ComparableStack(ModItems.plate_polymer, 2), new OreDictStack(STEEL.block(), 6), new ComparableStack(ModItems.motor, 4), new ComparableStack(ModItems.bolt_dura_steel, 24), new OreDictStack(KEY_CYAN, 8)}, 1000); + makeRecipe(new ComparableStack(ModBlocks.sliding_seal_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 6), new OreDictStack(ALLOY.plate(), 2), new ComparableStack(ModItems.plate_polymer, 1), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.bolt_dura_steel, 1), new OreDictStack(KEY_LIGHTGRAY, 1)}, 300); + makeRecipe(new ComparableStack(ModBlocks.sliding_gate_door, 1), new AStack[]{new OreDictStack(PB.plate(), 4), new OreDictStack(STEEL.plate(), 12), new OreDictStack(ALLOY.plate(), 4), new ComparableStack(ModItems.plate_polymer, 2), new OreDictStack(STEEL.block(), 1), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.bolt_dura_steel, 2), new OreDictStack(KEY_WHITE, 2)}, 500); makeRecipe(new ComparableStack(ModBlocks.transition_seal, 1), new AStack[]{new ComparableStack(ModBlocks.cmb_brick_reinforced, 16), new OreDictStack(STEEL.plate(), 64), new OreDictStack(ALLOY.plate(), 40), new ComparableStack(ModItems.plate_polymer, 36), new OreDictStack(STEEL.block(), 24), new ComparableStack(ModItems.motor_desh, 16), new ComparableStack(ModItems.bolt_dura_steel, 12), new OreDictStack(KEY_YELLOW, 4)}, 5000); makeRecipe(new ComparableStack(ModBlocks.control0, 1), new AStack[]{new ComparableStack(ModItems.circuit_targeting_tier5), new OreDictStack(STEEL.block(), 1), new ComparableStack(ModItems.wire_copper, 24), new ComparableStack(ModBlocks.pole_top)}, 100); diff --git a/src/main/java/com/hbm/inventory/BedrockOreRegistry.java b/src/main/java/com/hbm/inventory/BedrockOreRegistry.java index 272ac2e893..f2c586ca84 100644 --- a/src/main/java/com/hbm/inventory/BedrockOreRegistry.java +++ b/src/main/java/com/hbm/inventory/BedrockOreRegistry.java @@ -92,13 +92,13 @@ public static int getOreTier(String ore){ public static FluidStack getFluidRequirement(int tier){ if(tier == 1) return new FluidStack(ModForgeFluids.acid, 8000); - if(tier == 2) return new FluidStack(ModForgeFluids.sulfuric_acid, 5000); - if(tier == 3) return new FluidStack(ModForgeFluids.nitric_acid, 5000); - if(tier == 4) return new FluidStack(ModForgeFluids.radiosolvent, 4000); - if(tier == 5) return new FluidStack(ModForgeFluids.schrabidic, 2000); - if(tier == 6) return new FluidStack(ModForgeFluids.uu_matter, 1500); - if(tier > 6) return new FluidStack(ModForgeFluids.liquid_osmiridium, 1000); - return new FluidStack(ModForgeFluids.solvent, 1500); + if(tier == 2) return new FluidStack(ModForgeFluids.sulfuric_acid, 500); + if(tier == 3) return new FluidStack(ModForgeFluids.nitric_acid, 500); + if(tier == 4) return new FluidStack(ModForgeFluids.radiosolvent, 200); + if(tier == 5) return new FluidStack(ModForgeFluids.schrabidic, 200); + if(tier == 6) return new FluidStack(ModForgeFluids.uu_matter, 200); + if(tier > 6) return new FluidStack(ModForgeFluids.liquid_osmiridium, 100); + return new FluidStack(ModForgeFluids.solvent, 300); } public static int getTierWeight(int tier){ diff --git a/src/main/java/com/hbm/inventory/BreederRecipes.java b/src/main/java/com/hbm/inventory/BreederRecipes.java index 10cd539039..db2fe58dc2 100644 --- a/src/main/java/com/hbm/inventory/BreederRecipes.java +++ b/src/main/java/com/hbm/inventory/BreederRecipes.java @@ -188,7 +188,7 @@ public static BreederRecipe getOutput(ItemStack stack) { if(stack == null) return null; - ComparableStack sta = new ComparableStack(stack); + ComparableStack sta = new ComparableStack(stack.getItem(), 1, stack.getItemDamage()); return BreederRecipes.recipes.get(sta); } @@ -202,7 +202,7 @@ public static int[] getFuelValue(ItemStack stack) { if(stack == null) return null; - ComparableStack sta = new ComparableStack(stack); + ComparableStack sta = new ComparableStack(stack.getItem(), 1, stack.getItemDamage()); int[] ret = BreederRecipes.fuels.get(sta); return ret; diff --git a/src/main/java/com/hbm/inventory/CentrifugeRecipes.java b/src/main/java/com/hbm/inventory/CentrifugeRecipes.java index 8f5bae0b58..13a3edd300 100644 --- a/src/main/java/com/hbm/inventory/CentrifugeRecipes.java +++ b/src/main/java/com/hbm/inventory/CentrifugeRecipes.java @@ -148,11 +148,17 @@ public static void register() { new ItemStack(ModItems.nugget_solinium, 1), new ItemStack(Blocks.GRAVEL, 1) }); - recipes.put("oreRareEarth", new ItemStack[] { + recipes.put(RAREEARTH.ore(), new ItemStack[] { new ItemStack(ModItems.powder_desh_mix, 1), new ItemStack(ModItems.nugget_zirconium, 1), new ItemStack(ModItems.nugget_zirconium, 1), new ItemStack(Blocks.GRAVEL, 1) }); + + recipes.put(CINNABAR.ore(), new ItemStack[] { + new ItemStack(ModItems.cinnebar, 2), + new ItemStack(ModItems.cinnebar, 2), + new ItemStack(Items.REDSTONE, 1), + new ItemStack(Blocks.GRAVEL, 1) }); recipes.put(PU.ore(), new ItemStack[] { new ItemStack(ModItems.powder_plutonium, 1), @@ -214,7 +220,7 @@ public static void register() { new ItemStack(ModItems.ingot_starmetal, 2), new ItemStack(ModItems.nugget_solinium, 2) }); - recipes.put(new ComparableStack(ModBlocks.ore_nether_fire), new ItemStack[] { + recipes.put(P_RED.ore(), new ItemStack[] { new ItemStack(Items.BLAZE_POWDER, 2), new ItemStack(ModItems.powder_fire, 2), new ItemStack(ModItems.ingot_phosphorus), @@ -244,8 +250,9 @@ public static void register() { recipes.put(PB.crystal(), new ItemStack[] { new ItemStack(ModItems.powder_lead, 2), new ItemStack(ModItems.powder_lead, 2), new ItemStack(ModItems.powder_gold, 1), new ItemStack(ModItems.powder_lithium_tiny, 1) }); recipes.put(SRN.crystal(), new ItemStack[] { new ItemStack(ModItems.nugget_schrabidium, 2), new ItemStack(ModItems.nugget_schrabidium, 2), new ItemStack(ModItems.nugget_uranium, 2), new ItemStack(ModItems.nugget_plutonium, 2) }); recipes.put(SA326.crystal(), new ItemStack[] { new ItemStack(ModItems.powder_schrabidium, 2), new ItemStack(ModItems.powder_schrabidium, 2), new ItemStack(ModItems.powder_plutonium, 1), new ItemStack(ModItems.powder_lithium_tiny, 1) }); - recipes.put(new ComparableStack(ModItems.crystal_rare), new ItemStack[] { new ItemStack(ModItems.powder_desh_mix, 1), new ItemStack(ModItems.powder_desh_mix, 1), new ItemStack(ModItems.nugget_zirconium, 2), new ItemStack(ModItems.nugget_zirconium, 2) }); - recipes.put(new ComparableStack(ModItems.crystal_phosphorus), new ItemStack[] { new ItemStack(ModItems.powder_fire, 3), new ItemStack(ModItems.powder_fire, 3), new ItemStack(ModItems.ingot_phosphorus, 2), new ItemStack(Items.BLAZE_POWDER, 2) }); + recipes.put(RAREEARTH.crystal(), new ItemStack[] { new ItemStack(ModItems.powder_desh_mix, 1), new ItemStack(ModItems.powder_desh_mix, 1), new ItemStack(ModItems.nugget_zirconium, 2), new ItemStack(ModItems.nugget_zirconium, 2) }); + recipes.put(CINNABAR.crystal(), new ItemStack[] { new ItemStack(ModItems.cinnebar, 3), new ItemStack(ModItems.cinnebar, 3), new ItemStack(Items.REDSTONE, 2), new ItemStack(ModItems.powder_lithium_tiny, 1) }); + recipes.put(P_RED.crystal(), new ItemStack[] { new ItemStack(ModItems.powder_fire, 3), new ItemStack(ModItems.powder_fire, 3), new ItemStack(ModItems.ingot_phosphorus, 2), new ItemStack(Items.BLAZE_POWDER, 2) }); recipes.put(new ComparableStack(ModItems.crystal_trixite), new ItemStack[] { new ItemStack(ModItems.powder_plutonium, 3), new ItemStack(ModItems.powder_cobalt, 3), new ItemStack(ModItems.powder_spark_mix, 1), new ItemStack(ModItems.powder_nitan_mix, 2) }); recipes.put(LI.crystal(), new ItemStack[] { new ItemStack(ModItems.powder_lithium, 2), new ItemStack(ModItems.powder_lithium, 2), new ItemStack(ModItems.powder_quartz, 1), new ItemStack(ModItems.fluorite, 1) }); recipes.put(STAR.crystal(), new ItemStack[] { new ItemStack(ModItems.powder_dura_steel, 3), new ItemStack(ModItems.powder_cobalt, 3), new ItemStack(ModItems.powder_astatine, 2), new ItemStack(ModItems.nugget_mercury, 5) }); diff --git a/src/main/java/com/hbm/inventory/ChemplantRecipes.java b/src/main/java/com/hbm/inventory/ChemplantRecipes.java index 7a1d947241..5e3301d75d 100644 --- a/src/main/java/com/hbm/inventory/ChemplantRecipes.java +++ b/src/main/java/com/hbm/inventory/ChemplantRecipes.java @@ -129,7 +129,7 @@ public static void registerRecipes() { makeRecipe(EnumChemistryTemplate.NITRIC_ACID, new AStack[] { new OreDictStack(KNO.dust()) }, new FluidStack[]{ new FluidStack(ModForgeFluids.sulfuric_acid, 500) }, null, new FluidStack[]{ new FluidStack(ModForgeFluids.nitric_acid, 500) }, 50); - makeRecipe(EnumChemistryTemplate.SOLVENT, null, new FluidStack[]{ new FluidStack(ModForgeFluids.naphtha, 500), new FluidStack(ModForgeFluids.aromatics, 500) }, null, new FluidStack[]{ new FluidStack(ModForgeFluids.solvent, 1000) }, 50); + makeRecipe(EnumChemistryTemplate.SOLVENT, null, new FluidStack[]{ new FluidStack(ModForgeFluids.naphtha, 800), new FluidStack(ModForgeFluids.aromatics, 300) }, null, new FluidStack[]{ new FluidStack(ModForgeFluids.solvent, 1000) }, 50); makeRecipe(EnumChemistryTemplate.RADIOSOLVENT, null, new FluidStack[]{ new FluidStack(ModForgeFluids.solvent, 500), new FluidStack(ModForgeFluids.watz, 500) }, null, new FluidStack[]{ new FluidStack(ModForgeFluids.radiosolvent, 1000) }, 50); diff --git a/src/main/java/com/hbm/inventory/CrystallizerRecipes.java b/src/main/java/com/hbm/inventory/CrystallizerRecipes.java index 1940f1c809..862f408fec 100644 --- a/src/main/java/com/hbm/inventory/CrystallizerRecipes.java +++ b/src/main/java/com/hbm/inventory/CrystallizerRecipes.java @@ -91,16 +91,15 @@ public static void register() { addRecipe(new ComparableStack(Items.SNOWBALL), new FluidStack(FluidRegistry.WATER, 8000), new ItemStack(Blocks.ICE, 1)); addRecipe(new ComparableStack(Blocks.ICE), new FluidStack(ModForgeFluids.coolant, 500), new ItemStack(Blocks.PACKED_ICE, 1)); - addRecipe(new ComparableStack(Blocks.DIRT, 1, 1), new FluidStack(ModForgeFluids.sulfuric_acid, 500), new ItemStack(Blocks.CLAY, 1)); addRecipe(KEY_GRAVEL, new FluidStack(FluidRegistry.LAVA, 1000), new ItemStack(ModBlocks.gravel_obsidian, 1)); addRecipe(new ComparableStack(Items.ROTTEN_FLESH), new FluidStack(ModForgeFluids.acid, 500), new ItemStack(Items.LEATHER)); addRecipe(new ComparableStack(Items.BONE), new FluidStack(ModForgeFluids.sulfuric_acid, 1000), new ItemStack(Items.SLIME_BALL, 16)); addRecipe(new ComparableStack(Items.DYE, 1, 15), new FluidStack(ModForgeFluids.sulfuric_acid, 250), new ItemStack(Items.SLIME_BALL, 4)); addRecipe(new ComparableStack(ModItems.powder_lithium, 1), new FluidStack(ModForgeFluids.heatingoil, 4000), new ItemStack(ModItems.crystal_redstone, 1)); addRecipe(new ComparableStack(ModItems.coal_infernal), new FluidStack(ModForgeFluids.sulfuric_acid, 500), new ItemStack(ModItems.solid_fuel)); - addRecipe(new ComparableStack(ModItems.fallout), new FluidStack(ModForgeFluids.corium_fluid, 500), new ItemStack(ModItems.powder_balefire)); + addRecipe(new ComparableStack(ModItems.fallout), new FluidStack(ModForgeFluids.corium_fluid, 8000), new ItemStack(ModItems.powder_balefire)); - addRecipe(KEY_SAND, new FluidStack(ModForgeFluids.colloid, 1000), new ItemStack(Blocks.CLAY)); + addRecipe(new ComparableStack(Blocks.DIRT), new FluidStack(ModForgeFluids.colloid, 1000), new ItemStack(Blocks.CLAY)); addRecipe(new ComparableStack(ModBlocks.sand_quartz), new FluidStack(ModForgeFluids.nitroglycerin, 1000), new ItemStack(ModItems.ball_dynamite, 16)); addRecipe(NETHERQUARTZ.dust(), new FluidStack(ModForgeFluids.nitroglycerin, 250), new ItemStack(ModItems.ball_dynamite, 4)); @@ -114,10 +113,10 @@ public static void register() { for(Integer oreMeta : BedrockOreRegistry.oreIndexes.keySet()) { addRecipe(new ComparableStack(ModItems.ore_bedrock_centrifuged, 1, oreMeta), new FluidStack(ModForgeFluids.acid, 8000), new ItemStack(ModItems.ore_bedrock_cleaned, 1, oreMeta)); - addRecipe(new ComparableStack(ModItems.ore_bedrock_separated, 1, oreMeta), new FluidStack(ModForgeFluids.sulfuric_acid, 4000), new ItemStack(ModItems.ore_bedrock_deepcleaned, 1, oreMeta)); - addRecipe(new ComparableStack(ModItems.ore_bedrock_purified, 1, oreMeta), new FluidStack(ModForgeFluids.nitric_acid, 2000), new ItemStack(ModItems.ore_bedrock_nitrated, 1, oreMeta)); - addRecipe(new ComparableStack(ModItems.ore_bedrock_nitrocrystalline, 1, oreMeta), new FluidStack(ModForgeFluids.solvent, 1000), new ItemStack(ModItems.ore_bedrock_seared, 1, oreMeta)); - addRecipe(new ComparableStack(ModItems.ore_bedrock_exquisite, 1, oreMeta), new FluidStack(ModForgeFluids.radiosolvent, 500), new ItemStack(ModItems.ore_bedrock_perfect, 1, oreMeta)); + addRecipe(new ComparableStack(ModItems.ore_bedrock_separated, 1, oreMeta), new FluidStack(ModForgeFluids.sulfuric_acid, 500), new ItemStack(ModItems.ore_bedrock_deepcleaned, 1, oreMeta)); + addRecipe(new ComparableStack(ModItems.ore_bedrock_purified, 1, oreMeta), new FluidStack(ModForgeFluids.nitric_acid, 250), new ItemStack(ModItems.ore_bedrock_nitrated, 1, oreMeta)); + addRecipe(new ComparableStack(ModItems.ore_bedrock_nitrocrystalline, 1, oreMeta), new FluidStack(ModForgeFluids.solvent, 100), new ItemStack(ModItems.ore_bedrock_seared, 1, oreMeta)); + addRecipe(new ComparableStack(ModItems.ore_bedrock_exquisite, 1, oreMeta), new FluidStack(ModForgeFluids.radiosolvent, 50), new ItemStack(ModItems.ore_bedrock_perfect, 1, oreMeta)); } } diff --git a/src/main/java/com/hbm/inventory/MachineRecipes.java b/src/main/java/com/hbm/inventory/MachineRecipes.java index af680197ed..d4f635892a 100644 --- a/src/main/java/com/hbm/inventory/MachineRecipes.java +++ b/src/main/java/com/hbm/inventory/MachineRecipes.java @@ -26,268 +26,10 @@ //TODO: clean this shit up //Alcater: on it +//Alcater: almost done yay @Spaghetti("everything") public class MachineRecipes { - /** - * HashMap of fluids suitable for burning in fluid burner, where key is fluid and value is TU per bucket. - */ - public static List stamps_flat = new ArrayList() { - /** - * I don't even know what this serial version thing is. - */ - private static final long serialVersionUID = 4758678372533583790L; - - { - add(ModItems.stamp_stone_flat); - add(ModItems.stamp_iron_flat); - add(ModItems.stamp_steel_flat); - add(ModItems.stamp_titanium_flat); - add(ModItems.stamp_obsidian_flat); - add(ModItems.stamp_schrabidium_flat); - add(ModItems.stamp_desh_flat); - } - }; - - public static List stamps_plate = new ArrayList() { - /** - * - */ - private static final long serialVersionUID = -6373696756798212258L; - - { - add(ModItems.stamp_stone_plate); - add(ModItems.stamp_iron_plate); - add(ModItems.stamp_steel_plate); - add(ModItems.stamp_titanium_plate); - add(ModItems.stamp_obsidian_plate); - add(ModItems.stamp_schrabidium_plate); - add(ModItems.stamp_desh_plate); - } - }; - - public static List stamps_wire = new ArrayList() { - /** - * - */ - private static final long serialVersionUID = 1446284270063893048L; - - { - add(ModItems.stamp_stone_wire); - add(ModItems.stamp_iron_wire); - add(ModItems.stamp_steel_wire); - add(ModItems.stamp_titanium_wire); - add(ModItems.stamp_obsidian_wire); - add(ModItems.stamp_schrabidium_wire); - add(ModItems.stamp_desh_wire); - } - }; - - public static List stamps_circuit = new ArrayList() { - /** - * - */ - private static final long serialVersionUID = -149968111089313972L; - - { - add(ModItems.stamp_stone_circuit); - add(ModItems.stamp_iron_circuit); - add(ModItems.stamp_steel_circuit); - add(ModItems.stamp_titanium_circuit); - add(ModItems.stamp_obsidian_circuit); - add(ModItems.stamp_schrabidium_circuit); - add(ModItems.stamp_desh_circuit); - } - }; - - public static ItemStack getPressResult(ItemStack input, ItemStack stamp) { - if (input == null || stamp == null) - return null; - - if (stamps_flat.contains(stamp.getItem())) { - - if (mODE(input, COAL.dust())) - return new ItemStack(Items.COAL); - if (mODE(input, "dustQuartz")) - return new ItemStack(Items.QUARTZ); - if (mODE(input, NETHERQUARTZ.dust())) - return new ItemStack(Items.QUARTZ); - if (mODE(input, LAPIS.dust())) - return new ItemStack(Items.DYE, 1, 4); - if (mODE(input, DIAMOND.dust())) - return new ItemStack(Items.DIAMOND); - if (mODE(input, EMERALD.dust())) - return new ItemStack(Items.EMERALD); - if (input.getItem() == ModItems.pellet_coal) - return new ItemStack(Items.DIAMOND); - if (input.getItem() == ModItems.biomass) - return new ItemStack(ModItems.biomass_compressed); - if (input.getItem() == ModItems.powder_lignite) - return new ItemStack(ModItems.briquette_lignite); - if(input.getItem() == ModItems.meteorite_sword_reforged) - return new ItemStack(ModItems.meteorite_sword_hardened); - if(mODE(input, "fuelCoke")) - return new ItemStack(ModItems.ingot_graphite); - } - - if (stamps_plate.contains(stamp.getItem())) { - - if (mODE(input, IRON.ingot())) - return new ItemStack(ModItems.plate_iron); - if (mODE(input, GOLD.ingot())) - return new ItemStack(ModItems.plate_gold); - if (mODE(input, TI.ingot())) - return new ItemStack(ModItems.plate_titanium); - if (mODE(input, AL.ingot())) - return new ItemStack(ModItems.plate_aluminium); - if (mODE(input, STEEL.ingot())) - return new ItemStack(ModItems.plate_steel); - if (mODE(input, PB.ingot())) - return new ItemStack(ModItems.plate_lead); - if (mODE(input, CU.ingot())) - return new ItemStack(ModItems.plate_copper); - if (mODE(input, "ingotAdvanced")) - return new ItemStack(ModItems.plate_advanced_alloy); - if (mODE(input, ALLOY.ingot())) - return new ItemStack(ModItems.plate_advanced_alloy); - if (mODE(input, SA326.ingot())) - return new ItemStack(ModItems.plate_schrabidium); - if (mODE(input, CMB.ingot())) - return new ItemStack(ModItems.plate_combine_steel); - if (mODE(input, BIGMT.ingot())) - return new ItemStack(ModItems.plate_saturnite); - - } - - if (stamps_wire.contains(stamp.getItem())) { - - if (mODE(input, AL.ingot())) - return new ItemStack(ModItems.wire_aluminium, 8); - if (mODE(input, CU.ingot())) - return new ItemStack(ModItems.wire_copper, 8); - if (mODE(input, W.ingot())) - return new ItemStack(ModItems.wire_tungsten, 8); - if (mODE(input, MINGRADE.ingot())) - return new ItemStack(ModItems.wire_red_copper, 8); - if (mODE(input, GOLD.ingot())) - return new ItemStack(ModItems.wire_gold, 8); - if (mODE(input, SA326.ingot())) - return new ItemStack(ModItems.wire_schrabidium, 8); - if (mODE(input, "ingotAdvanced")) - return new ItemStack(ModItems.wire_advanced_alloy, 8); - if (mODE(input, ALLOY.ingot())) - return new ItemStack(ModItems.wire_advanced_alloy, 8); - if (mODE(input, MAGTUNG.ingot())) - return new ItemStack(ModItems.wire_magnetized_tungsten, 8); - } - - if (stamps_circuit.contains(stamp.getItem())) { - - if (input.getItem() == ModItems.circuit_raw) - return new ItemStack(ModItems.circuit_aluminium); - if(input.getItem() == ModItems.circuit_bismuth_raw) - return new ItemStack(ModItems.circuit_bismuth); - if(input.getItem() == ModItems.circuit_arsenic_raw) - return new ItemStack(ModItems.circuit_arsenic); - if(input.getItem() == ModItems.circuit_tantalium_raw) - return new ItemStack(ModItems.circuit_tantalium); - } - - if (stamp.getItem() == ModItems.stamp_357 || stamp.getItem() == ModItems.stamp_desh_357) { - - if (input.getItem() == ModItems.assembly_iron) - return new ItemStack(ModItems.gun_revolver_iron_ammo); - if (input.getItem() == ModItems.assembly_steel) - return new ItemStack(ModItems.gun_revolver_ammo); - if (input.getItem() == ModItems.assembly_lead) - return new ItemStack(ModItems.gun_revolver_lead_ammo); - if (input.getItem() == ModItems.assembly_gold) - return new ItemStack(ModItems.gun_revolver_gold_ammo); - if (input.getItem() == ModItems.assembly_schrabidium) - return new ItemStack(ModItems.gun_revolver_schrabidium_ammo); - if (input.getItem() == ModItems.assembly_nightmare) - return new ItemStack(ModItems.gun_revolver_nightmare_ammo); - if (input.getItem() == ModItems.assembly_desh) - return new ItemStack(ModItems.ammo_357_desh); - - if (mODE(input, STEEL.ingot())) - return new ItemStack(ModItems.gun_revolver_cursed_ammo); - } - - if (stamp.getItem() == ModItems.stamp_44 || stamp.getItem() == ModItems.stamp_desh_44) { - - if (input.getItem() == ModItems.assembly_nopip) - return new ItemStack(ModItems.ammo_44); - } - - if (stamp.getItem() == ModItems.stamp_9 || stamp.getItem() == ModItems.stamp_desh_9) { - - if (input.getItem() == ModItems.assembly_smg) - return new ItemStack(ModItems.ammo_9mm); - if (input.getItem() == ModItems.assembly_uzi) - return new ItemStack(ModItems.ammo_22lr); - if (mODE(input, GOLD.ingot())) - return new ItemStack(ModItems.ammo_566_gold); - if (input.getItem() == ModItems.assembly_lacunae) - return new ItemStack(ModItems.ammo_5mm); - if(input.getItem() == ModItems.assembly_556) - return new ItemStack(ModItems.ammo_556); - } - - if (stamp.getItem() == ModItems.stamp_50 || stamp.getItem() == ModItems.stamp_desh_50) { - - if (input.getItem() == ModItems.assembly_calamity) - return new ItemStack(ModItems.ammo_50bmg); - if (input.getItem() == ModItems.assembly_actionexpress) - return new ItemStack(ModItems.ammo_50ae); - } - - return null; - } - - // Matches Ore Dict Entry - public static boolean mODE(ItemStack stack, String name) { - if (stack.isEmpty()) - return false; - int[] ids = OreDictionary.getOreIDs(new ItemStack(stack.getItem(), 1, stack.getItemDamage())); - - for (int i = 0; i < ids.length; i++) { - - String s = OreDictionary.getOreName(ids[i]); - - if (s.length() > 0 && s.equals(name)) - return true; - } - - return false; - } - - public static boolean mODE(Item item, String[] names) { - return mODE(new ItemStack(item), names); - } - - public static boolean mODE(ItemStack item, String[] names) { - boolean flag = false; - if (names.length > 0) { - for (int i = 0; i < names.length; i++) { - if (mODE(item, names[i])) - flag = true; - } - } - - return flag; - } - - public static List copyItemStackList(List list) { - List newList = new ArrayList(); - if (list == null || list.isEmpty()) - return newList; - for (ItemStack stack : list) { - newList.add(stack.copy()); - } - return newList; - } - // return: Fluid, amount produced, amount required, HE produced public static Object[] getTurbineOutput(Fluid type) { diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index 11726d8b4e..67cbd2e4d0 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -322,8 +322,8 @@ public static void registerOres() { S .dust(sulfur) .block(block_sulfur) .crystal(crystal_sulfur) .ore(ore_sulfur, ore_nether_sulfur, basalt_sulfur, ore_meteor_sulfur); KNO .dust(niter) .block(block_niter) .crystal(crystal_niter) .ore(ore_niter); F .dust(fluorite) .block(block_fluorite) .crystal(crystal_fluorite) .ore(ore_fluorite, basalt_fluorite); - INFERNAL .gem(coal_infernal) .ore(ore_nether_coal); - RAREEARTH .dust(powder_desh_mix) .ore(ore_rare, ore_gneiss_rare); + INFERNAL .block(block_coal_infernal) .gem(coal_infernal) .ore(ore_nether_coal); + RAREEARTH .dust(powder_desh_mix) .crystal(crystal_rare) .ore(ore_rare, ore_gneiss_rare); NITANIUM .dust(powder_nitan_mix) .ore(ore_depth_nether_nitan); //Compounds @@ -405,8 +405,8 @@ public static void registerOres() { ANY_HIGHEXPLOSIVE .ingot(ball_tnt, ball_dynamite); ANY_CONCRETE .any(concrete, concrete_smooth, concrete_asbestos, ducrete, ducrete_smooth); - ANY_COKE .gem(fromAll(coke, EnumCokeType.class)); - LIGNITE .dust(powder_lignite) .gem(lignite) .ore(ore_lignite); + ANY_COKE .block(block_coke) .gem(fromAll(coke, EnumCokeType.class)); + LIGNITE .dust(powder_lignite) .block(block_lignite) .gem(lignite) .ore(ore_lignite); //COALCOKE .gem(fromOne(coke, EnumCokeType.COAL)); //PETCOKE .gem(fromOne(coke, EnumCokeType.PETROLEUM)); //LIGCOKE .gem(fromOne(coke, EnumCokeType.LIGNITE)); diff --git a/src/main/java/com/hbm/inventory/PressRecipes.java b/src/main/java/com/hbm/inventory/PressRecipes.java new file mode 100644 index 0000000000..a6de037d73 --- /dev/null +++ b/src/main/java/com/hbm/inventory/PressRecipes.java @@ -0,0 +1,273 @@ +package com.hbm.inventory; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import static com.hbm.inventory.OreDictManager.*; +import com.hbm.util.Tuple.Pair; +import com.hbm.items.ModItems; +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.RecipesCommon.NbtComparableStack; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.inventory.RecipesCommon.OreDictStack; + +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraftforge.oredict.OreDictionary; + +//TODO: clean this shit up +//Alcater: on it + +public class PressRecipes { + + public static enum PressType { + NONE, + FLAT, + PLATE, + WIRE, + CIRCUIT, + THREEFIFESEVEN, + FOURFOUR, + NINE, + FIVEZERO; + } + + public static HashMap, ItemStack> pressRecipes = new HashMap, ItemStack>(); + + public static void addRecipe(PressType stamp, AStack input, ItemStack output){ + if(!input.getStackList().isEmpty()) + pressRecipes.put(new Pair(stamp, input), output); + } + + public static void registerOverrides() { + addRecipe(PressType.FLAT, new OreDictStack(COAL.dust()), new ItemStack(Items.COAL)); + addRecipe(PressType.FLAT, new OreDictStack("dustQuartz"), new ItemStack(Items.QUARTZ)); + addRecipe(PressType.FLAT, new OreDictStack(NETHERQUARTZ.dust()), new ItemStack(Items.QUARTZ)); + addRecipe(PressType.FLAT, new OreDictStack(LAPIS.dust()), new ItemStack(Items.DYE, 1, 4)); + addRecipe(PressType.FLAT, new OreDictStack(DIAMOND.dust()), new ItemStack(Items.DIAMOND)); + addRecipe(PressType.FLAT, new OreDictStack(EMERALD.dust()), new ItemStack(Items.EMERALD)); + addRecipe(PressType.FLAT, new ComparableStack(ModItems.pellet_coal), new ItemStack(Items.DIAMOND)); + addRecipe(PressType.FLAT, new ComparableStack(ModItems.biomass), new ItemStack(ModItems.biomass_compressed)); + addRecipe(PressType.FLAT, new ComparableStack(ModItems.powder_lignite), new ItemStack(ModItems.briquette_lignite)); + addRecipe(PressType.FLAT, new ComparableStack(ModItems.meteorite_sword_reforged), new ItemStack(ModItems.meteorite_sword_hardened)); + addRecipe(PressType.FLAT, new OreDictStack("fuelCoke"), new ItemStack(ModItems.ingot_graphite)); + + addRecipe(PressType.PLATE, new OreDictStack(IRON.ingot()), new ItemStack(ModItems.plate_iron)); + addRecipe(PressType.PLATE, new OreDictStack(GOLD.ingot()), new ItemStack(ModItems.plate_gold)); + addRecipe(PressType.PLATE, new OreDictStack(TI.ingot()), new ItemStack(ModItems.plate_titanium)); + addRecipe(PressType.PLATE, new OreDictStack(AL.ingot()), new ItemStack(ModItems.plate_aluminium)); + addRecipe(PressType.PLATE, new OreDictStack(STEEL.ingot()), new ItemStack(ModItems.plate_steel)); + addRecipe(PressType.PLATE, new OreDictStack(PB.ingot()), new ItemStack(ModItems.plate_lead)); + addRecipe(PressType.PLATE, new OreDictStack(CU.ingot()), new ItemStack(ModItems.plate_copper)); + addRecipe(PressType.PLATE, new OreDictStack("ingotAdvanced"), new ItemStack(ModItems.plate_advanced_alloy)); + addRecipe(PressType.PLATE, new OreDictStack(ALLOY.ingot()), new ItemStack(ModItems.plate_advanced_alloy)); + addRecipe(PressType.PLATE, new OreDictStack(SA326.ingot()), new ItemStack(ModItems.plate_schrabidium)); + addRecipe(PressType.PLATE, new OreDictStack(CMB.ingot()), new ItemStack(ModItems.plate_combine_steel)); + addRecipe(PressType.PLATE, new OreDictStack(BIGMT.ingot()), new ItemStack(ModItems.plate_saturnite)); + + addRecipe(PressType.WIRE, new OreDictStack(AL.ingot()), new ItemStack(ModItems.wire_aluminium, 8)); + addRecipe(PressType.WIRE, new OreDictStack(CU.ingot()), new ItemStack(ModItems.wire_copper, 8)); + addRecipe(PressType.WIRE, new OreDictStack(W.ingot()), new ItemStack(ModItems.wire_tungsten, 8)); + addRecipe(PressType.WIRE, new OreDictStack(MINGRADE.ingot()), new ItemStack(ModItems.wire_red_copper, 8)); + addRecipe(PressType.WIRE, new OreDictStack(GOLD.ingot()), new ItemStack(ModItems.wire_gold, 8)); + addRecipe(PressType.WIRE, new OreDictStack(SA326.ingot()), new ItemStack(ModItems.wire_schrabidium, 8)); + addRecipe(PressType.WIRE, new OreDictStack("ingotAdvanced"), new ItemStack(ModItems.wire_advanced_alloy, 8)); + addRecipe(PressType.WIRE, new OreDictStack(ALLOY.ingot()), new ItemStack(ModItems.wire_advanced_alloy, 8)); + addRecipe(PressType.WIRE, new OreDictStack(MAGTUNG.ingot()), new ItemStack(ModItems.wire_magnetized_tungsten, 8)); + + addRecipe(PressType.CIRCUIT, new ComparableStack(ModItems.circuit_raw), new ItemStack(ModItems.circuit_aluminium)); + addRecipe(PressType.CIRCUIT, new ComparableStack(ModItems.circuit_bismuth_raw), new ItemStack(ModItems.circuit_bismuth)); + addRecipe(PressType.CIRCUIT, new ComparableStack(ModItems.circuit_arsenic_raw), new ItemStack(ModItems.circuit_arsenic)); + addRecipe(PressType.CIRCUIT, new ComparableStack(ModItems.circuit_tantalium_raw), new ItemStack(ModItems.circuit_tantalium)); + + addRecipe(PressType.THREEFIFESEVEN, new ComparableStack(ModItems.assembly_iron), new ItemStack(ModItems.gun_revolver_iron_ammo)); + addRecipe(PressType.THREEFIFESEVEN, new ComparableStack(ModItems.assembly_steel), new ItemStack(ModItems.gun_revolver_ammo)); + addRecipe(PressType.THREEFIFESEVEN, new ComparableStack(ModItems.assembly_lead), new ItemStack(ModItems.gun_revolver_lead_ammo)); + addRecipe(PressType.THREEFIFESEVEN, new ComparableStack(ModItems.assembly_gold), new ItemStack(ModItems.gun_revolver_gold_ammo)); + addRecipe(PressType.THREEFIFESEVEN, new ComparableStack(ModItems.assembly_schrabidium), new ItemStack(ModItems.gun_revolver_schrabidium_ammo)); + addRecipe(PressType.THREEFIFESEVEN, new ComparableStack(ModItems.assembly_nightmare), new ItemStack(ModItems.gun_revolver_nightmare_ammo)); + addRecipe(PressType.THREEFIFESEVEN, new ComparableStack(ModItems.assembly_desh), new ItemStack(ModItems.ammo_357_desh)); + addRecipe(PressType.THREEFIFESEVEN, new OreDictStack(STEEL.ingot()), new ItemStack(ModItems.gun_revolver_cursed_ammo)); + + addRecipe(PressType.FOURFOUR, new ComparableStack(ModItems.assembly_nopip), new ItemStack(ModItems.ammo_44)); + + addRecipe(PressType.NINE, new ComparableStack(ModItems.assembly_smg), new ItemStack(ModItems.ammo_9mm)); + addRecipe(PressType.NINE, new ComparableStack(ModItems.assembly_uzi), new ItemStack(ModItems.ammo_22lr)); + addRecipe(PressType.NINE, new OreDictStack(GOLD.ingot()), new ItemStack(ModItems.ammo_566_gold)); + addRecipe(PressType.NINE, new ComparableStack(ModItems.assembly_lacunae), new ItemStack(ModItems.ammo_5mm)); + addRecipe(PressType.NINE, new ComparableStack(ModItems.assembly_556), new ItemStack(ModItems.ammo_556)); + + addRecipe(PressType.FIVEZERO, new ComparableStack(ModItems.assembly_calamity), new ItemStack(ModItems.ammo_50bmg)); + addRecipe(PressType.FIVEZERO, new ComparableStack(ModItems.assembly_actionexpress), new ItemStack(ModItems.ammo_50ae)); + } + + + public static PressType getStampType(Item stamp){ + if (stamps_flat.contains(stamp)) { + return PressType.FLAT; + } + if (stamps_plate.contains(stamp)) { + return PressType.PLATE; + } + if (stamps_wire.contains(stamp)) { + return PressType.WIRE; + } + if (stamps_circuit.contains(stamp)) { + return PressType.CIRCUIT; + } + if (stamps_357.contains(stamp)) { + return PressType.THREEFIFESEVEN; + } + if (stamps_44.contains(stamp)) { + return PressType.FOURFOUR; + } + if (stamps_9.contains(stamp)) { + return PressType.NINE; + } + if (stamps_50.contains(stamp)) { + return PressType.FIVEZERO; + } + return PressType.NONE; + } + + public static List toStack(List iList){ + List i_stamps = new ArrayList(); + for(Item i : iList){ + i_stamps.add(new ItemStack(i)); + } + return i_stamps; + } + + public static List getStampList(PressType pType){ + if (pType == PressType.FLAT) { + return toStack(stamps_flat); + } + if (pType == PressType.PLATE) { + return toStack(stamps_plate); + } + if (pType == PressType.WIRE) { + return toStack(stamps_wire); + } + if (pType == PressType.CIRCUIT) { + return toStack(stamps_circuit); + } + if (pType == PressType.THREEFIFESEVEN) { + return toStack(stamps_357); + } + if (pType == PressType.FOURFOUR) { + return toStack(stamps_44); + } + if (pType == PressType.NINE) { + return toStack(stamps_9); + } + if (pType == PressType.FIVEZERO) { + return toStack(stamps_50); + } + return new ArrayList(); + } + + + public static ItemStack getPressResult(ItemStack input, ItemStack stamp) { + if (input == null || stamp == null) + return null; + + PressType pType = getStampType(stamp.getItem()); + if(pType == PressType.NONE) return null; + + return getPressOutput(pType, input); + } + + public static ItemStack getPressOutput(PressType pType, ItemStack input){ + ItemStack outputItem = pressRecipes.get(new Pair(pType, new ComparableStack(input.getItem(), 1, input.getItemDamage()))); + if(outputItem != null) + return outputItem; + + int[] ids = OreDictionary.getOreIDs(new ItemStack(input.getItem(), 1, input.getItemDamage())); + for(int id : ids) { + + OreDictStack oreStack = new OreDictStack(OreDictionary.getOreName(id)); + outputItem = pressRecipes.get(new Pair(pType, oreStack)); + if(outputItem != null) + return outputItem; + } + return null; + } + + public static List stamps_flat = new ArrayList() { + { + add(ModItems.stamp_stone_flat); + add(ModItems.stamp_iron_flat); + add(ModItems.stamp_steel_flat); + add(ModItems.stamp_titanium_flat); + add(ModItems.stamp_obsidian_flat); + add(ModItems.stamp_schrabidium_flat); + add(ModItems.stamp_desh_flat); + } + }; + + public static List stamps_plate = new ArrayList() { + { + add(ModItems.stamp_stone_plate); + add(ModItems.stamp_iron_plate); + add(ModItems.stamp_steel_plate); + add(ModItems.stamp_titanium_plate); + add(ModItems.stamp_obsidian_plate); + add(ModItems.stamp_schrabidium_plate); + add(ModItems.stamp_desh_plate); + } + }; + + public static List stamps_wire = new ArrayList() { + { + add(ModItems.stamp_stone_wire); + add(ModItems.stamp_iron_wire); + add(ModItems.stamp_steel_wire); + add(ModItems.stamp_titanium_wire); + add(ModItems.stamp_obsidian_wire); + add(ModItems.stamp_schrabidium_wire); + add(ModItems.stamp_desh_wire); + } + }; + + public static List stamps_circuit = new ArrayList() { + { + add(ModItems.stamp_stone_circuit); + add(ModItems.stamp_iron_circuit); + add(ModItems.stamp_steel_circuit); + add(ModItems.stamp_titanium_circuit); + add(ModItems.stamp_obsidian_circuit); + add(ModItems.stamp_schrabidium_circuit); + add(ModItems.stamp_desh_circuit); + } + }; + + public static List stamps_357 = new ArrayList() { + { + add(ModItems.stamp_357); + add(ModItems.stamp_desh_357); + } + }; + + public static List stamps_44 = new ArrayList() { + { + add(ModItems.stamp_44); + add(ModItems.stamp_desh_44); + } + }; + + public static List stamps_9 = new ArrayList() { + { + add(ModItems.stamp_9); + add(ModItems.stamp_desh_9); + } + }; + + public static List stamps_50 = new ArrayList() { + { + add(ModItems.stamp_50); + add(ModItems.stamp_desh_50); + } + }; +} diff --git a/src/main/java/com/hbm/inventory/RBMKOutgasserRecipes.java b/src/main/java/com/hbm/inventory/RBMKOutgasserRecipes.java index 7fbaee9696..706484ca8b 100644 --- a/src/main/java/com/hbm/inventory/RBMKOutgasserRecipes.java +++ b/src/main/java/com/hbm/inventory/RBMKOutgasserRecipes.java @@ -46,7 +46,7 @@ public static void registerOverrides() { addRecipe(360000 * ItemHazard.powder * ItemHazard.block, ModBlocks.sand_gold, new ItemStack(ModBlocks.sand_gold198)); addRecipe(360000 * ItemHazard.block, GOLD.block(), new ItemStack(ModBlocks.block_au198)); - addRecipe(90000, TH232.ingot(), new ItemStack(ModItems.ingot_u233)); + addRecipe(90000, TH232.ingot(), new ItemStack(ModItems.ingot_thorium_fuel)); addRecipe(90000 * ItemHazard.billet, TH232.billet(), new ItemStack(ModItems.billet_thorium_fuel)); addRecipe(90000 * ItemHazard.nugget, TH232.nugget(), new ItemStack(ModItems.nugget_thorium_fuel)); addRecipe(90000 * ItemHazard.block, TH232.block(), new ItemStack(ModBlocks.block_thorium_fuel)); diff --git a/src/main/java/com/hbm/inventory/SILEXRecipes.java b/src/main/java/com/hbm/inventory/SILEXRecipes.java index 13e6beb52b..d025af12cb 100644 --- a/src/main/java/com/hbm/inventory/SILEXRecipes.java +++ b/src/main/java/com/hbm/inventory/SILEXRecipes.java @@ -472,14 +472,14 @@ public static void register() { .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_coal_tiny), 5 + 10 * i)) ); // RABE // - recipes.put(new ComparableStack(ModItems.rbmk_pellet_ra226be, 1, i), new SILEXRecipe(600, 100, EnumWavelengths.UV) + recipes.put(new ComparableStack(ModItems.rbmk_pellet_ra226be, 1, i), new SILEXRecipe(600, 100, EnumWavelengths.MICRO) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_ra226), 45 - 10 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_beryllium), 45 - 10 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_lead), 3 + 5 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_polonium), 2 + 5 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_coal_tiny), 5 + 10 * i)) ); - recipes.put(new ComparableStack(ModItems.rbmk_pellet_ra226be, 1, i + 5), new SILEXRecipe(600, 100, EnumWavelengths.UV) + recipes.put(new ComparableStack(ModItems.rbmk_pellet_ra226be, 1, i + 5), new SILEXRecipe(600, 100, EnumWavelengths.MICRO) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 3)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_ra226), 44 - 10 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_beryllium), 43 - 10 * i)) @@ -758,7 +758,7 @@ public static void register() { .addOut(new WeightedRandomObject(new ItemStack(ModItems.fluorite), 5)) ); - recipes.put(new ComparableStack(Blocks.SAND, 1), new SILEXRecipe(1000, 250, EnumWavelengths.XRAY) + recipes.put(new ComparableStack(Blocks.SAND, 1), new SILEXRecipe(100, 400, EnumWavelengths.XRAY) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_quartz), 85)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.niter), 10)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_lithium_tiny), 5)) @@ -896,7 +896,7 @@ public static void register() { .addOut(new WeightedRandomObject(new ItemStack(Blocks.GRAVEL), 24)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_emerald), 12)) ); - recipes.put(P_WHITE.crystal(), new SILEXRecipe(900, 100, EnumWavelengths.VISIBLE) + recipes.put(P_RED.crystal(), new SILEXRecipe(900, 100, EnumWavelengths.VISIBLE) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_fire), 66)) .addOut(new WeightedRandomObject(new ItemStack(Blocks.GRAVEL), 27)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.ingot_phosphorus), 7)) @@ -909,7 +909,7 @@ public static void register() { recipes.put(U.crystal(), new SILEXRecipe(900, 100, EnumWavelengths.VISIBLE) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_uranium), 65)) .addOut(new WeightedRandomObject(new ItemStack(Blocks.GRAVEL), 14)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_polonium), 21)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_ra226), 21)) ); recipes.put(ASBESTOS.crystal(), new SILEXRecipe(900, 100, EnumWavelengths.VISIBLE) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_asbestos), 64)) @@ -940,7 +940,7 @@ public static void register() { .addOut(new WeightedRandomObject(new ItemStack(Blocks.GRAVEL), 24)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_plutonium), 12)) ); - recipes.put(new ComparableStack(ModItems.crystal_rare), new SILEXRecipe(900, 100, EnumWavelengths.XRAY) + recipes.put(RAREEARTH.crystal(), new SILEXRecipe(900, 100, EnumWavelengths.XRAY) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_neodymium), 1)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_cobalt), 1)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_niobium), 1)) diff --git a/src/main/java/com/hbm/inventory/ShredderRecipes.java b/src/main/java/com/hbm/inventory/ShredderRecipes.java index 4b692d465d..466d054470 100644 --- a/src/main/java/com/hbm/inventory/ShredderRecipes.java +++ b/src/main/java/com/hbm/inventory/ShredderRecipes.java @@ -222,6 +222,7 @@ public static void registerOverrides() { ShredderRecipes.setRecipe(ModItems.crystal_lithium, new ItemStack(ModItems.powder_lithium, 3)); ShredderRecipes.setRecipe(ModItems.crystal_starmetal, new ItemStack(ModItems.powder_dura_steel, 6)); ShredderRecipes.setRecipe(ModItems.crystal_cobalt, new ItemStack(ModItems.powder_cobalt, 3)); + ShredderRecipes.setRecipe(ModItems.crystal_cinnebar, new ItemStack(ModItems.cinnebar, 3)); ShredderRecipes.setRecipe(ModItems.crystal_asbestos, new ItemStack(ModItems.powder_asbestos, 3)); ShredderRecipes.setRecipe(ModBlocks.steel_poles, new ItemStack(ModItems.powder_steel_tiny, 3)); @@ -285,6 +286,7 @@ public static void registerOverrides() { ShredderRecipes.setRecipe(ModItems.turret_cwis_ammo, new ItemStack(Items.GUNPOWDER, 4)); ShredderRecipes.setRecipe(ModItems.turret_tau_ammo, new ItemStack(ModItems.powder_uranium, 4)); ShredderRecipes.setRecipe(ModBlocks.ore_nether_coal, new ItemStack(ModItems.coal_infernal, 2)); + ShredderRecipes.setRecipe(ModBlocks.ore_cinnebar, new ItemStack(ModItems.cinnebar, 2)); for(int i = 0; i < 16; i++) { ShredderRecipes.setRecipe(new ItemStack(Blocks.STAINED_HARDENED_CLAY, 1, i), new ItemStack(Items.CLAY_BALL, 4)); @@ -294,12 +296,12 @@ public static void registerOverrides() { for(Integer oreMeta : BedrockOreRegistry.oreIndexes.keySet()) { int type = ItemBedrockOre.getOutType(oreMeta); if(type == 0 || type == 1){ - ShredderRecipes.setRecipe(new ItemStack(ModItems.ore_bedrock, 1, oreMeta), ItemBedrockOre.getOut(oreMeta, 2)); - ShredderRecipes.setRecipe(new ItemStack(ModItems.ore_bedrock_cleaned, 1, oreMeta), ItemBedrockOre.getOut(oreMeta, 2)); - ShredderRecipes.setRecipe(new ItemStack(ModItems.ore_bedrock_deepcleaned, 1, oreMeta), ItemBedrockOre.getOut(oreMeta, 2)); - ShredderRecipes.setRecipe(new ItemStack(ModItems.ore_bedrock_nitrated, 1, oreMeta), ItemBedrockOre.getOut(oreMeta, 2)); - ShredderRecipes.setRecipe(new ItemStack(ModItems.ore_bedrock_seared, 1, oreMeta), ItemBedrockOre.getOut(oreMeta, 2)); - ShredderRecipes.setRecipe(new ItemStack(ModItems.ore_bedrock_perfect, 1, oreMeta), ItemBedrockOre.getOut(oreMeta, 2)); + ShredderRecipes.setRecipe(new ItemStack(ModItems.ore_bedrock, 1, oreMeta), new ItemStack(ModItems.ore_bedrock_enriched, 2, oreMeta)); + ShredderRecipes.setRecipe(new ItemStack(ModItems.ore_bedrock_cleaned, 1, oreMeta), new ItemStack(ModItems.ore_bedrock_enriched, 2, oreMeta)); + ShredderRecipes.setRecipe(new ItemStack(ModItems.ore_bedrock_deepcleaned, 1, oreMeta), new ItemStack(ModItems.ore_bedrock_enriched, 2, oreMeta)); + ShredderRecipes.setRecipe(new ItemStack(ModItems.ore_bedrock_nitrated, 1, oreMeta), new ItemStack(ModItems.ore_bedrock_enriched, 2, oreMeta)); + ShredderRecipes.setRecipe(new ItemStack(ModItems.ore_bedrock_seared, 1, oreMeta), new ItemStack(ModItems.ore_bedrock_enriched, 2, oreMeta)); + ShredderRecipes.setRecipe(new ItemStack(ModItems.ore_bedrock_perfect, 1, oreMeta), new ItemStack(ModItems.ore_bedrock_enriched, 2, oreMeta)); ShredderRecipes.setRecipe(new ItemStack(ModItems.ore_bedrock_enriched, 1, oreMeta), ItemBedrockOre.getOut(oreMeta, 2)); } } diff --git a/src/main/java/com/hbm/inventory/StorageDrumRecipes.java b/src/main/java/com/hbm/inventory/StorageDrumRecipes.java index dfe25c2e7b..56384ee184 100644 --- a/src/main/java/com/hbm/inventory/StorageDrumRecipes.java +++ b/src/main/java/com/hbm/inventory/StorageDrumRecipes.java @@ -55,8 +55,16 @@ public static void registerRecipes() { ); } - addRecipe(new ComparableStack(ModItems.nugget_au198, 1), new ItemStack(ModItems.nugget_mercury, 1), (int)(VersatileConfig.getLongDecayChance()*0.01), 500, 500); - addRecipe(new ComparableStack(ModItems.ingot_au198, 1), new ItemStack(ModItems.bottle_mercury, 1), (int)(VersatileConfig.getLongDecayChance()*0.001), 50, 50); + addRecipe(new ComparableStack(ModItems.ingot_au198, 1), new ItemStack(ModItems.bottle_mercury, 1), (int)(VersatileConfig.getShortDecayChance()*0.01), 500, 500); + addRecipe(new ComparableStack(ModItems.nugget_au198, 1), new ItemStack(ModItems.nugget_mercury, 1), (int)(VersatileConfig.getShortDecayChance()*0.001), 50, 50); + + addRecipe(new ComparableStack(ModItems.powder_i131, 1), new ItemStack(ModItems.powder_iodine, 1), (int)(VersatileConfig.getShortDecayChance()*0.02), 50, 50); + addRecipe(new ComparableStack(ModItems.powder_i131_tiny, 1), new ItemStack(ModItems.powder_iodine_tiny, 1), (int)(VersatileConfig.getShortDecayChance()*0.002), 5, 5); + + addRecipe(new ComparableStack(ModItems.powder_co60, 1), new ItemStack(ModItems.powder_cobalt, 1), (int)(VersatileConfig.getShortDecayChance()*0.02), 50, 50); + addRecipe(new ComparableStack(ModItems.powder_co60_tiny, 1), new ItemStack(ModItems.powder_cobalt_tiny, 1), (int)(VersatileConfig.getShortDecayChance()*0.002), 5, 5); + addRecipe(new ComparableStack(ModItems.ingot_co60, 1), new ItemStack(ModItems.ingot_cobalt, 1), (int)(VersatileConfig.getShortDecayChance()*0.02), 50, 50); + addRecipe(new ComparableStack(ModItems.nugget_co60, 1), new ItemStack(ModItems.nugget_cobalt, 1), (int)(VersatileConfig.getShortDecayChance()*0.002), 5, 5); } public static void addRecipe(ComparableStack input, ItemStack output, int chance, int wasteLiquid, int wasteGas){ diff --git a/src/main/java/com/hbm/inventory/container/ContainerCoreAdvanced.java b/src/main/java/com/hbm/inventory/container/ContainerCoreAdvanced.java index 45c9362ed3..43d3b243e9 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCoreAdvanced.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCoreAdvanced.java @@ -1,15 +1,11 @@ package com.hbm.inventory.container; import com.hbm.inventory.SlotMachineOutput; -import com.hbm.packet.AuxElectricityPacket; -import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.machine.TileEntityCoreAdvanced; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; -import net.minecraft.inventory.IContainerListener; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; import net.minecraftforge.items.SlotItemHandler; @@ -17,14 +13,9 @@ public class ContainerCoreAdvanced extends Container { private TileEntityCoreAdvanced diFurnace; - private int progress; - private int power; - EntityPlayerMP player; - public ContainerCoreAdvanced(EntityPlayer player, TileEntityCoreAdvanced tedf) { - if(player instanceof EntityPlayerMP) - this.player = (EntityPlayerMP)player; - InventoryPlayer invPlayer = player.inventory; + public ContainerCoreAdvanced(InventoryPlayer invPlayer, TileEntityCoreAdvanced tedf) { + diFurnace = tedf; //Input Storage @@ -76,14 +67,6 @@ public ContainerCoreAdvanced(EntityPlayer player, TileEntityCoreAdvanced tedf) { } } - @Override - public void addListener(IContainerListener crafting) { - super.addListener(crafting); - crafting.sendWindowProperty(this, 0, this.diFurnace.progress); - if(player != null) - PacketDispatcher.sendTo(new AuxElectricityPacket(diFurnace.getPos(), diFurnace.power), player); - } - @Override public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { @@ -126,35 +109,4 @@ else if (!this.mergeItemStack(var5, 22, 23, false)) public boolean canInteractWith(EntityPlayer player) { return diFurnace.isUseableByPlayer(player); } - - @Override - public void detectAndSendChanges() { - super.detectAndSendChanges(); - - for(int i = 0; i < this.listeners.size(); i++) - { - IContainerListener par1 = (IContainerListener)this.listeners.get(i); - - if(this.progress != this.diFurnace.progress) - { - par1.sendWindowProperty(this, 0, this.diFurnace.progress); - } - - } - if(this.power != this.diFurnace.power) - { - PacketDispatcher.sendTo(new AuxElectricityPacket(diFurnace.getPos(), diFurnace.power), player); - } - - this.progress = this.diFurnace.progress; - this.power = (int)this.diFurnace.power; - } - - @Override - public void updateProgressBar(int i, int j) { - if(i == 0) - { - diFurnace.progress = j; - } - } } \ No newline at end of file diff --git a/src/main/java/com/hbm/inventory/container/ContainerCoreTitanium.java b/src/main/java/com/hbm/inventory/container/ContainerCoreTitanium.java index 9eea14290a..6894cce70b 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCoreTitanium.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCoreTitanium.java @@ -1,15 +1,11 @@ package com.hbm.inventory.container; import com.hbm.inventory.SlotMachineOutput; -import com.hbm.packet.AuxElectricityPacket; -import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.machine.TileEntityCoreTitanium; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; -import net.minecraft.inventory.IContainerListener; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; import net.minecraftforge.items.SlotItemHandler; @@ -17,14 +13,9 @@ public class ContainerCoreTitanium extends Container { private TileEntityCoreTitanium diFurnace; - private int progress; - private int power; - EntityPlayerMP player; - public ContainerCoreTitanium(EntityPlayer player, TileEntityCoreTitanium tedf) { - if(player instanceof EntityPlayerMP) - this.player = (EntityPlayerMP) player; - InventoryPlayer invPlayer = player.inventory; + public ContainerCoreTitanium(InventoryPlayer invPlayer, TileEntityCoreTitanium tedf) { + diFurnace = tedf; //Input Storage @@ -70,13 +61,6 @@ public ContainerCoreTitanium(EntityPlayer player, TileEntityCoreTitanium tedf) { } } - @Override - public void addListener(IContainerListener crafting) { - super.addListener(crafting); - crafting.sendWindowProperty(this, 0, this.diFurnace.progress); - PacketDispatcher.sendTo(new AuxElectricityPacket(diFurnace.getPos(), diFurnace.power), player); - } - @Override public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { @@ -118,37 +102,4 @@ else if (!this.mergeItemStack(var5, 22, 23, false)) public boolean canInteractWith(EntityPlayer player) { return diFurnace.isUseableByPlayer(player); } - - @Override - public void detectAndSendChanges() { - super.detectAndSendChanges(); - - for(int i = 0; i < this.listeners.size(); i++) - { - IContainerListener par1 = (IContainerListener)this.listeners.get(i); - - if(this.progress != this.diFurnace.progress) - { - par1.sendWindowProperty(this, 0, this.diFurnace.progress); - } - - } - - if(this.power != this.diFurnace.power) - { - PacketDispatcher.sendTo(new AuxElectricityPacket(diFurnace.getPos(), diFurnace.power), player); - } - - this.progress = this.diFurnace.progress; - this.power = (int)this.diFurnace.power; - } - - @Override - public void updateProgressBar(int i, int j) { - if(i == 0) - { - diFurnace.progress = j; - } - } - } \ No newline at end of file diff --git a/src/main/java/com/hbm/inventory/gui/GUICoreAdvanced.java b/src/main/java/com/hbm/inventory/gui/GUICoreAdvanced.java index 762adcda39..e538eac374 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICoreAdvanced.java +++ b/src/main/java/com/hbm/inventory/gui/GUICoreAdvanced.java @@ -4,11 +4,12 @@ import com.hbm.inventory.container.ContainerCoreAdvanced; import com.hbm.lib.RefStrings; +import com.hbm.lib.Library; import com.hbm.tileentity.machine.TileEntityCoreAdvanced; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.util.ResourceLocation; public class GUICoreAdvanced extends GuiInfoContainer { @@ -16,7 +17,7 @@ public class GUICoreAdvanced extends GuiInfoContainer { private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/factory_advanced.png"); private TileEntityCoreAdvanced diFurnace; - public GUICoreAdvanced(EntityPlayer invPlayer, TileEntityCoreAdvanced tedf) { + public GUICoreAdvanced(InventoryPlayer invPlayer, TileEntityCoreAdvanced tedf) { super(new ContainerCoreAdvanced(invPlayer, tedf)); diFurnace = tedf; @@ -28,20 +29,27 @@ public GUICoreAdvanced(EntityPlayer invPlayer, TileEntityCoreAdvanced tedf) { protected void drawGuiContainerForegroundLayer(int i, int j) { String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); - this.fontRenderer.drawString(name, this.xSize / 2 - this.fontRenderer.getStringWidth(name) / 2, 6, 4210752); - this.fontRenderer.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + this.fontRenderer.drawString(name, this.xSize / 2 - this.fontRenderer.getStringWidth(name) / 2, 6, 0x222222); + this.fontRenderer.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 0x222222); + String thing = "0 HE/s"; + if(diFurnace.power < diFurnace.getMaxPower()) + thing = Library.getShortNumber(diFurnace.progressStep * TileEntityCoreAdvanced.powerPerStep * 20) + " HE/s"; + this.fontRenderer.drawString(thing, this.xSize-60-this.fontRenderer.getStringWidth(thing), 41, 0x222222); + + this.fontRenderer.drawString("Speed:", 60, 95, 0x222222); + this.fontRenderer.drawString(diFurnace.progressStep+"", this.xSize-60-this.fontRenderer.getStringWidth(diFurnace.progressStep+""), 95, 0x222222); } @Override public void drawScreen(int mouseX, int mouseY, float f) { super.drawScreen(mouseX, mouseY, f); - String[] text = new String[] { "Basically just a larger furnace with a queue." }; + String[] text = new String[] { "Basically just a larger furnace with a queue and extreme speed.", "Use a factory cluster to keep the current speed." }; this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36, 16, 16, guiLeft - 8, guiTop + 36 + 16, text); - String[] text1 = new String[] { "Requires an advanced factory energy cluster as", - "an energy buffer, even if external power is used!" }; + String[] text1 = new String[] { "Max production: 80/s at 16M HE/s and speed 400" }; this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36 + 16, 16, 16, guiLeft - 8, guiTop + 36 + 16, text1); + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 62, guiTop + 71, 52, 16, diFurnace.power, diFurnace.getMaxPower()); super.renderHoveredToolTip(mouseX, mouseY); } diff --git a/src/main/java/com/hbm/inventory/gui/GUICoreEmitter.java b/src/main/java/com/hbm/inventory/gui/GUICoreEmitter.java index efb12ca53f..74f5dc7e6e 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICoreEmitter.java +++ b/src/main/java/com/hbm/inventory/gui/GUICoreEmitter.java @@ -61,7 +61,7 @@ public void syncTextField(int watts){ public void drawScreen(int mouseX, int mouseY, float f) { super.drawScreen(mouseX, mouseY, f); - String[] output = new String[] { "Output: " + Library.getShortNumber(emitter.prev) + "SPK/t" }; + String[] output = new String[] { "Output: " + Library.getShortNumber(emitter.prev) + "SPK" }; this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 79, guiTop + 14, 8, 39, mouseX, mouseY, output); FFUtils.renderTankInfo(this, mouseX, mouseY, guiLeft + 13, guiTop + 20, 16, 52, emitter.tank, ModForgeFluids.cryogel); diff --git a/src/main/java/com/hbm/inventory/gui/GUICoreReceiver.java b/src/main/java/com/hbm/inventory/gui/GUICoreReceiver.java index e15415f109..8696858467 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICoreReceiver.java +++ b/src/main/java/com/hbm/inventory/gui/GUICoreReceiver.java @@ -41,10 +41,10 @@ protected void drawGuiContainerForegroundLayer( int i, int j) { this.fontRenderer.drawString(name, this.xSize / 2 - this.fontRenderer.getStringWidth(name) / 2, 6, 4210752); this.fontRenderer.drawString("Input:", 54, 22, 4210752); - String sparks = Library.getShortNumber(receiver.joules) + "SPK/t"; + String sparks = Library.getShortNumber(receiver.joules) + "SPK"; this.fontRenderer.drawString(sparks, 161-this.fontRenderer.getStringWidth(sparks), 22, 0x4EB3DB); this.fontRenderer.drawString("Output:", 54, 58, 4210752); - String power = Library.getShortNumber(receiver.joules * 5000) + "HE/t"; + String power = Library.getShortNumber(receiver.joules * 100000L) + "HE/s"; this.fontRenderer.drawString(power, 161-this.fontRenderer.getStringWidth(power), 58, 0x4EB3DB); String inventory = I18n.format("container.inventory"); diff --git a/src/main/java/com/hbm/inventory/gui/GUICoreTitanium.java b/src/main/java/com/hbm/inventory/gui/GUICoreTitanium.java index 56b391a355..73db2f7457 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICoreTitanium.java +++ b/src/main/java/com/hbm/inventory/gui/GUICoreTitanium.java @@ -4,11 +4,12 @@ import com.hbm.inventory.container.ContainerCoreTitanium; import com.hbm.lib.RefStrings; +import com.hbm.lib.Library; import com.hbm.tileentity.machine.TileEntityCoreTitanium; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.util.ResourceLocation; public class GUICoreTitanium extends GuiInfoContainer { @@ -16,7 +17,7 @@ public class GUICoreTitanium extends GuiInfoContainer { private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/factory_titanium.png"); private TileEntityCoreTitanium diFurnace; - public GUICoreTitanium(EntityPlayer invPlayer, TileEntityCoreTitanium tedf) { + public GUICoreTitanium(InventoryPlayer invPlayer, TileEntityCoreTitanium tedf) { super(new ContainerCoreTitanium(invPlayer, tedf)); diFurnace = tedf; @@ -30,18 +31,25 @@ protected void drawGuiContainerForegroundLayer(int i, int j) { this.fontRenderer.drawString(name, this.xSize / 2 - this.fontRenderer.getStringWidth(name) / 2, 6, 4210752); this.fontRenderer.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + String thing = "0 HE/s"; + if(diFurnace.power < diFurnace.getMaxPower()) + thing = Library.getShortNumber(diFurnace.progressStep * TileEntityCoreTitanium.powerPerStep * 20) + " HE/s"; + this.fontRenderer.drawString(thing, this.xSize-60-this.fontRenderer.getStringWidth(thing), 41, 4210752); + + this.fontRenderer.drawString("Speed:", 60, 95, 4210752); + this.fontRenderer.drawString(diFurnace.progressStep+"", this.xSize-60-this.fontRenderer.getStringWidth(diFurnace.progressStep+""), 95, 4210752); } @Override public void drawScreen(int mouseX, int mouseY, float f) { super.drawScreen(mouseX, mouseY, f); - String[] text = new String[] { "Basically just a larger furnace with a queue." }; + String[] text = new String[] { "Basically just a larger furnace with a queue and more speed.", "Use a factory cluster to keep the current speed." }; this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36, 16, 16, guiLeft - 8, guiTop + 36 + 16, text); - String[] text1 = new String[] { "Requires a basic factory energy cluster as", - "an energy buffer, even if external power is used!" }; + String[] text1 = new String[] { "Max production: 10/s at 400k HE/s and speed 100" }; this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36 + 16, 16, 16, guiLeft - 8, guiTop + 36 + 16, text1); + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 62, guiTop + 71, 52, 16, diFurnace.power, diFurnace.getMaxPower()); super.renderHoveredToolTip(mouseX, mouseY); } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineExcavator.java b/src/main/java/com/hbm/inventory/gui/GUIMachineExcavator.java index bd4389cefe..43dd7b2102 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineExcavator.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineExcavator.java @@ -39,7 +39,7 @@ public void drawScreen(int mouseX, int mouseY, float f) { this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 7, guiTop + 16, 18, 18, mouseX, mouseY, new String[] { "Main On/Off Lever" }); this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 31, guiTop + 16, 18, 18, mouseX, mouseY, new String[] { "Silktouch" }); this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 55, guiTop + 16, 18, 18, mouseX, mouseY, new String[] { "Shred ores" }); - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 79, guiTop + 16, 18, 18, mouseX, mouseY, new String[] { "Veign mining" }); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 79, guiTop + 16, 18, 18, mouseX, mouseY, new String[] { "Vein mining" }); this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 103, guiTop + 16, 18, 18, mouseX, mouseY, new String[] { "Construct walls" }); this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 220, guiTop + 17, 16, 52, drill.getPower(), drill.maxPower); diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineReactor.java b/src/main/java/com/hbm/inventory/gui/GUIMachineReactor.java index 8756568e24..76321ab3e9 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineReactor.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineReactor.java @@ -33,47 +33,6 @@ public void drawScreen(int mouseX, int mouseY, float partialTicks) { this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 47, guiTop + 34, 6, 18, mouseX, mouseY, new String[] { tooltip }); this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 55, guiTop + 34, 18, 18, mouseX, mouseY, new String[] { breeder.charge + " operation(s) left" }); super.renderHoveredToolTip(mouseX, mouseY); - - - /*GL11.glPushMatrix(); - GlStateManager.matrixMode(GL11.GL_PROJECTION); - GL11.glPushMatrix(); - GL11.glLoadIdentity(); - GLU.gluPerspective(90F, Minecraft.getMinecraft().displayWidth/Minecraft.getMinecraft().displayHeight, 0.05F, 100F); - GlStateManager.matrixMode(GL11.GL_MODELVIEW); - GlStateManager.disableDepth(); - GlStateManager.disableCull(); - GL11.glLoadIdentity(); - GL11.glTranslated(0, 0, -0.05); - GL11.glScaled(0.01, 0.01, 0.01); - - GL11.glGetFloat(GL11.GL_MODELVIEW_MATRIX, HbmShaderManager2.AUX_GL_BUFFER); - HbmShaderManager2.AUX_GL_BUFFER.rewind(); - Matrix4f mvMatrix = new Matrix4f(); - mvMatrix.load(HbmShaderManager2.AUX_GL_BUFFER); - HbmShaderManager2.AUX_GL_BUFFER.rewind(); - - GL11.glGetFloat(GL11.GL_PROJECTION_MATRIX, HbmShaderManager2.AUX_GL_BUFFER); - HbmShaderManager2.AUX_GL_BUFFER.rewind(); - Matrix4f pMatrix = new Matrix4f(); - pMatrix.load(HbmShaderManager2.AUX_GL_BUFFER); - HbmShaderManager2.AUX_GL_BUFFER.rewind(); - - Matrix4f.mul(pMatrix, mvMatrix, mvMatrix); - - Vector4f bruh = new Vector4f(0, 0, 0, 1); - Matrix4f.transform(mvMatrix, bruh, bruh); - Vector3f bruh2 = new Vector3f(bruh.x/bruh.w, bruh.y/bruh.w, bruh.z/bruh.w); - System.out.println(bruh2); - - - ResourceManager.sphere_iuv.renderAll(); - GlStateManager.enableDepth(); - GlStateManager.enableCull(); - GlStateManager.matrixMode(GL11.GL_PROJECTION); - GL11.glPopMatrix(); - GlStateManager.matrixMode(GL11.GL_MODELVIEW); - GL11.glPopMatrix();*/ } @Override diff --git a/src/main/java/com/hbm/inventory/gui/GUINukeCustom.java b/src/main/java/com/hbm/inventory/gui/GUINukeCustom.java index 1b5cd917eb..aa7d1513de 100644 --- a/src/main/java/com/hbm/inventory/gui/GUINukeCustom.java +++ b/src/main/java/com/hbm/inventory/gui/GUINukeCustom.java @@ -3,6 +3,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.bomb.NukeCustom; +import com.hbm.config.BombConfig; import com.hbm.inventory.container.ContainerNukeCustom; import com.hbm.lib.RefStrings; import com.hbm.tileentity.bomb.TileEntityNukeCustom; @@ -39,50 +40,60 @@ public void drawScreen(int mouseX, int mouseY, float partialTicks) { super.drawScreen(mouseX, mouseY, partialTicks); String[] text; - text = new String[] { TextFormatting.YELLOW + "Conventional Explosives (Level " + testNuke.tnt + "/" + Math.min(testNuke.tnt, NukeCustom.maxTnt) + ")", - "Caps at " + NukeCustom.maxTnt, + text = new String[] { TextFormatting.YELLOW + "Conventional Explosives (Level " + testNuke.tnt + "/" + BombConfig.maxCustomTNTRadius + ")", + "Caps at " + BombConfig.maxCustomTNTRadius, "N²-like above level 75", TextFormatting.ITALIC + "\"Goes boom\"" }; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 16, guiTop + 89, 18, 18, mouseX, mouseY, text); - - text = new String[] { TextFormatting.YELLOW + "Nuclear (Level " + testNuke.nuke + "/" + testNuke.getNukeAdj() + ")", + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 16, guiTop + 88, 18, 18, mouseX, mouseY, text); + + text = new String[] { TextFormatting.YELLOW + "Nuclear (Level " + testNuke.nuke + "(" + testNuke.getNukeAdj() + ")/"+ BombConfig.maxCustomNukeRadius + ")", "Requires TNT level 16", - "Caps at " + NukeCustom.maxNuke, + "Caps at " + BombConfig.maxCustomNukeRadius, "Has fallout", TextFormatting.ITALIC + "\"Now I am become death, destroyer of worlds.\"" }; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 34, guiTop + 89, 18, 18, mouseX, mouseY, text); - - text = new String[] { TextFormatting.YELLOW + "Thermonuclear (Level " + testNuke.hydro + "/" + testNuke.getHydroAdj() + ")", + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 34, guiTop + 88, 18, 18, mouseX, mouseY, text); + + text = new String[] { TextFormatting.YELLOW + "Thermonuclear (Level " + testNuke.hydro + "(" + testNuke.getHydroAdj() + ")/" + BombConfig.maxCustomHydroRadius + ")", "Requires nuclear level 100", - "Caps at " + NukeCustom.maxHydro, + "Caps at " + BombConfig.maxCustomHydroRadius, "Reduces added fallout by salted stage by 75%", TextFormatting.ITALIC + "\"And for my next trick, I'll make", TextFormatting.ITALIC + "the island of Elugelab disappear!\"" }; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 52, guiTop + 89, 18, 18, mouseX, mouseY, text); - - text = new String[] { TextFormatting.YELLOW + "Antimatter (Level " + testNuke.amat + "/" + testNuke.getAmatAdj() + ")", + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 52, guiTop + 88, 18, 18, mouseX, mouseY, text); + + text = new String[] { TextFormatting.YELLOW + "Balefire (Level " + testNuke.bale + "/(" + testNuke.getBaleAdj() + ")/" + BombConfig.maxCustomBaleRadius + ")", "Requires nuclear level 50", - "Caps at " + NukeCustom.maxAmat, + "Caps at " + BombConfig.maxCustomBaleRadius, TextFormatting.ITALIC + "\"Antimatter, Balefire, whatever.\"" }; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 70, guiTop + 89, 18, 18, mouseX, mouseY, text); - - text = new String[] { TextFormatting.YELLOW + "Salted (Level " + testNuke.dirty + "/" + Math.min(testNuke.dirty, 100) + ")", + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 70, guiTop + 88, 18, 18, mouseX, mouseY, text); + + text = new String[] { TextFormatting.YELLOW + "Salted (Level " + testNuke.dirty + "/" + BombConfig.maxCustomDirtyRadius + ")", "Extends fallout of nuclear and", "thermonuclear stages", - "Caps at 100", + "Caps at " + BombConfig.maxCustomDirtyRadius, TextFormatting.ITALIC + "\"Not to be confused with tablesalt.\"" }; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 88, guiTop + 89, 18, 18, mouseX, mouseY, text); - - text = new String[] { TextFormatting.YELLOW + "Schrabidium (Level " + testNuke.schrab + "/" + testNuke.getSchrabAdj() + ")", + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 53, guiTop + 83, 25, 5, mouseX, mouseY, text); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 53, guiTop + 106, 25, 5, mouseX, mouseY, text); + + text = new String[] { TextFormatting.YELLOW + "Schrabidium (Level " + testNuke.schrab + "(" + testNuke.getSchrabAdj() + ")/" + BombConfig.maxCustomSchrabRadius + ")", "Requires nuclear level 50", - "Caps at " + NukeCustom.maxSchrab, + "Caps at " + BombConfig.maxCustomSchrabRadius, TextFormatting.ITALIC + "\"For the hundredth time,", TextFormatting.ITALIC + "you can't bypass these caps!\"" }; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 106, guiTop + 89, 18, 18, mouseX, mouseY, text); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 88, guiTop + 88, 18, 18, mouseX, mouseY, text); - text = new String[] { TextFormatting.YELLOW + "Ice cream (Level unknown)", + text = new String[] { TextFormatting.YELLOW + "Solinium (Level " + testNuke.sol + "(" + testNuke.getSolAdj() + ")/" + BombConfig.maxCustomSolRadius + ")", + "Requires nuclear level 25", + "Caps at " + BombConfig.maxCustomSolRadius, + TextFormatting.ITALIC + "\"For the hundredth time,", + TextFormatting.ITALIC + "you can't bypass these caps!\"" }; + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 106, guiTop + 88, 18, 18, mouseX, mouseY, text); + + text = new String[] { TextFormatting.YELLOW + "Ice cream (Level " + testNuke.euph + "/" + BombConfig.maxCustomEuphLvl + ")", + "Requires schrabidium and solinium level 1", + "Caps at " + BombConfig.maxCustomEuphLvl, TextFormatting.ITALIC + "\"Probably not ice cream but the label came off.\"" }; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 142, guiTop + 89, 18, 18, mouseX, mouseY, text); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 142, guiTop + 88, 18, 18, mouseX, mouseY, text); super.renderHoveredToolTip(mouseX, mouseY); } @@ -93,24 +104,81 @@ protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2 Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - if(this.testNuke.euph > 0) - drawTexturedModalRect(guiLeft + 142, guiTop + 89, 176, 108, 18, 18); - else if(this.testNuke.schrab > 0) - drawTexturedModalRect(guiLeft + 106, guiTop + 89, 176, 90, 18, 18); - else if(this.testNuke.amat > 0) - drawTexturedModalRect(guiLeft + 70, guiTop + 89, 176, 54, 18, 18); - else if(this.testNuke.hydro > 0) - drawTexturedModalRect(guiLeft + 52, guiTop + 89, 176, 36, 18, 18); - else if(this.testNuke.nuke > 0) - drawTexturedModalRect(guiLeft + 34, guiTop + 89, 176, 18, 18, 18); - else if(this.testNuke.tnt > 0) - drawTexturedModalRect(guiLeft + 16, guiTop + 89, 176, 0, 18, 18); + byte best = 10; - if(this.testNuke.dirty > 0 && - this.testNuke.nuke > 0 && - this.testNuke.amat == 0 && - this.testNuke.schrab == 0 && - this.testNuke.euph == 0) - drawTexturedModalRect(guiLeft + 142, guiTop + 89, 176, 108, 18, 18); + if(this.testNuke.euph > 0){ + drawTexturedModalRect(guiLeft + 142, guiTop + 89, 176, 108, 18, 18); //Euph strongest + best = 9; + } + + if(this.testNuke.sol > 0){ + if(best == 10){ + drawTexturedModalRect(guiLeft + 106, guiTop + 89, 194, 90, 18, 18); //Sol strongest + best = 8; + } + else{ + drawTexturedModalRect(guiLeft + 106, guiTop + 89, 176, 90, 18, 18); + } + } + + if(this.testNuke.schrab > 0){ + if(best == 10){ + drawTexturedModalRect(guiLeft + 88, guiTop + 89, 194, 72, 18, 18); //Schrab strongest + best = 7; + } + else{ + drawTexturedModalRect(guiLeft + 88, guiTop + 89, 176, 72, 18, 18); + } + } + + if(this.testNuke.bale > 0){ + if(best == 10){ + drawTexturedModalRect(guiLeft + 70, guiTop + 89, 194, 54, 18, 18); //Bale strongest + best = 6; + } + else{ + drawTexturedModalRect(guiLeft + 70, guiTop + 89, 176, 54, 18, 18); + } + } + + if(this.testNuke.hydro > 0){ + if(best == 10){ + drawTexturedModalRect(guiLeft + 52, guiTop + 89, 194, 36, 18, 18); //Hydro strongest + best = 5; + } + else{ + drawTexturedModalRect(guiLeft + 52, guiTop + 89, 176, 36, 18, 18); + } + } + + if(this.testNuke.nuke > 0){ + if(best == 10){ + drawTexturedModalRect(guiLeft + 34, guiTop + 89, 194, 18, 18, 18); //Nuke strongest + best = 4; + } + else{ + drawTexturedModalRect(guiLeft + 34, guiTop + 89, 176, 18, 18, 18); + } + } + + if(this.testNuke.tnt > 0){ + if(best == 10){ + drawTexturedModalRect(guiLeft + 16, guiTop + 89, 194, 0, 18, 18); //TNT strongest + best = 3; + } + else{ + drawTexturedModalRect(guiLeft + 16, guiTop + 89, 176, 0, 18, 18); + } + } + + + if(this.testNuke.dirty > 0){ + if(best < 6 && best > 3){ + drawTexturedModalRect(guiLeft + 53, guiTop + 83, 201, 125, 25, 29); + } + else{ + drawTexturedModalRect(guiLeft + 53, guiTop + 83, 176, 125, 25, 29); + } + } } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenSatInterface.java b/src/main/java/com/hbm/inventory/gui/GUIScreenSatInterface.java index 38db09d716..08b60c22d7 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenSatInterface.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenSatInterface.java @@ -5,7 +5,6 @@ import org.lwjgl.opengl.GL11; -import com.hbm.inventory.MachineRecipes; import com.hbm.items.tool.ItemSatInterface; import com.hbm.lib.HBMSoundHandler; import com.hbm.lib.RefStrings; diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java b/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java index e33f5bf9e2..03a53564e2 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java @@ -5,7 +5,7 @@ import java.util.List; import com.hbm.inventory.AssemblerRecipes; -import com.hbm.inventory.MachineRecipes; +import com.hbm.inventory.PressRecipes; import com.hbm.forgefluid.FluidTypeHandler; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemCassette; @@ -88,11 +88,11 @@ public GUIScreenTemplateFolder(EntityPlayer player) { this.allStacks = new ArrayList<>(); //Stamps - for(Item i : MachineRecipes.stamps_plate) + for(Item i : PressRecipes.stamps_plate) allStacks.add(new ItemStack(i)); - for(Item i : MachineRecipes.stamps_wire) + for(Item i : PressRecipes.stamps_wire) allStacks.add(new ItemStack(i)); - for(Item i : MachineRecipes.stamps_circuit) + for(Item i : PressRecipes.stamps_circuit) allStacks.add(new ItemStack(i)); //Tracks for(int i = 1; i < ItemCassette.TrackType.values().length; i++) diff --git a/src/main/java/com/hbm/inventory/gui/GUIWatzCore.java b/src/main/java/com/hbm/inventory/gui/GUIWatzCore.java index f1d2a042ee..b9a321aa95 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIWatzCore.java +++ b/src/main/java/com/hbm/inventory/gui/GUIWatzCore.java @@ -5,6 +5,7 @@ import com.hbm.forgefluid.FFUtils; import com.hbm.inventory.container.ContainerWatzCore; import com.hbm.lib.RefStrings; +import com.hbm.lib.Library; import com.hbm.tileentity.machine.TileEntityWatzCore; import net.minecraft.client.Minecraft; @@ -30,8 +31,8 @@ public GUIWatzCore(EntityPlayer invPlayer, TileEntityWatzCore tedf) { public void drawScreen(int mouseX, int mouseY, float f) { super.drawScreen(mouseX, mouseY, f); - FFUtils.renderTankInfo(this, mouseX, mouseY, guiLeft + 134, guiTop + 106 - 18 - 70, 16, 70, diFurnace.tank, diFurnace.tankType); - this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 152, guiTop + 106 - 70, 16, 70 - 18, diFurnace.power, TileEntityWatzCore.maxPower); + FFUtils.renderTankInfo(this, mouseX, mouseY, guiLeft + 134, guiTop + 17, 16, 70, diFurnace.tank, diFurnace.tankType); + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 152, guiTop + 17, 16, 70, diFurnace.power, TileEntityWatzCore.maxPower); super.renderHoveredToolTip(mouseX, mouseY); } @@ -40,10 +41,10 @@ protected void drawGuiContainerForegroundLayer(int i, int j) { String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); this.fontRenderer.drawString(name, this.xSize / 2 - this.fontRenderer.getStringWidth(name) / 2, 6, 4210752); - this.fontRenderer.drawString(I18n.format("container.inventory")/* + String.valueOf(diFurnace.powerList)*/, 8, this.ySize - 96 + 2 - 34, 4210752); - this.fontRenderer.drawString(String.valueOf(diFurnace.powerList + " HE/tick"), 8, this.ySize - 50 + 2 + 13, 4210752); + this.fontRenderer.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2 - 34, 4210752); + this.fontRenderer.drawString(Library.getShortNumber(diFurnace.powerList * 20) + " HE/s", 8, this.ySize - 50 + 2 + 13, 4210752); this.fontRenderer.drawString(String.valueOf(diFurnace.heatList + " heat"), 8, this.ySize - 50 + 2 + 22, 4210752); - this.fontRenderer.drawString(String.valueOf((diFurnace.decayMultiplier * diFurnace.heat)/100 /100 + " waste/tick"), 8, this.ySize - 50 + 2 + 31, 4210752); + this.fontRenderer.drawString(Library.getShortNumber((long)(diFurnace.decayMultiplier * diFurnace.heat * 0.002D)) + " mB/s", 8, this.ySize - 50 + 2 + 31, 4210752); this.fontRenderer.drawString(String.valueOf(diFurnace.powerMultiplier + "% power"), 100, this.ySize - 50 + 2 + 13, 4210752); this.fontRenderer.drawString(String.valueOf(diFurnace.heatMultiplier + "% heat"), 100, this.ySize - 50 + 2 + 22, 4210752); this.fontRenderer.drawString(String.valueOf(diFurnace.decayMultiplier + "% decay"), 100, this.ySize - 50 + 2 + 31, 4210752); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index bec097d78a..c53a043154 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -433,7 +433,8 @@ public class ModItems { public static final Item insert_xsapi = new ItemModInsert(2500, 0.9F, 0.75F, 1F, 1F, "insert_xsapi").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab); public static final Item insert_steel = new ItemModInsert(1000, 1F, 0.95F, 0.75F, 0.95F, "insert_steel").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab); public static final Item insert_du = new ItemModInsert(1500, 0.9F, 0.85F, 0.5F, 0.9F, "insert_du").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab); - public static final Item insert_polonium = new ItemModInsert(500, 0.9F, 1F, 0.95F, 0.9F, "insert_polonium").addRadiation(100F).toItem().setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab); + public static final Item insert_ferrouranium = new ItemModInsert(2000, 1F, 0.9F, 0.9F, 1F, "insert_ferrouranium").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab); + public static final Item insert_polonium = new ItemModInsert(500, 0.9F, 1F, 0.25F, 0.9F, "insert_polonium").addRadiation(100F).toItem().setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab); public static final Item insert_ghiorsium = new ItemModInsert(2000, 0.8F, 0.75F, 0.35F, 0.9F, "insert_ghiorsium").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab); public static final Item insert_era = new ItemModInsert(25, 0.5F, 1F, 0.25F, 1F, "insert_era").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab); public static final Item insert_di = new ItemModInsert(4000, 1F, 0.01F, 0.01F, 0.01F, "insert_di").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab); @@ -511,14 +512,14 @@ public class ModItems { public static final Item stamp_9 = new ItemStamp("stamp_9", 512); public static final Item stamp_50 = new ItemStamp("stamp_50", 512); - public static final Item blades_aluminum = new ItemBlades("blades_aluminum", 10); + public static final Item blades_aluminum = new ItemBlades("blades_aluminum", 20); public static final Item blades_gold = new ItemBlades("blades_gold", 25); public static final Item blades_iron = new ItemBlades("blades_iron", 35); public static final Item blades_steel = new ItemBlades("blades_steel", 50); - public static final Item blades_titanium = new ItemBlades("blades_titanium", 65); - public static final Item blades_advanced_alloy = new ItemBlades("blades_advanced_alloy", 85); - public static final Item blades_combine_steel = new ItemBlades("blades_combine_steel", 150); - public static final Item blades_schrabidium = new ItemBlades("blades_schrabidium", 250); + public static final Item blades_titanium = new ItemBlades("blades_titanium", 64); + public static final Item blades_advanced_alloy = new ItemBlades("blades_advanced_alloy", 96); + public static final Item blades_combine_steel = new ItemBlades("blades_combine_steel", 256); + public static final Item blades_schrabidium = new ItemBlades("blades_schrabidium", 512).addRadiation(ItemHazard.sa326 * 3F).toItem(); public static final Item blades_desh = new ItemBlades("blades_desh", 0).setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab); public static final Item fuse = new ItemCustomLore("fuse").setMaxStackSize(16).setCreativeTab(MainRegistry.controlTab); @@ -532,18 +533,18 @@ public class ModItems { public static final Item piston_selenium = new ItemBase("piston_selenium").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1); public static final Item thermo_element = new ItemBase("thermo_element").setMaxStackSize(16).setCreativeTab(MainRegistry.controlTab); public static final Item antiknock = new ItemBase("antiknock").setCreativeTab(MainRegistry.controlTab); - public static final Item part_lithium = new ItemBase("part_lithium").setCreativeTab(MainRegistry.controlTab); + public static final Item part_lithium = new ItemHazard("part_lithium").addHydroReactivity().toItem().setCreativeTab(MainRegistry.controlTab); public static final Item part_beryllium = new ItemBase("part_beryllium").setCreativeTab(MainRegistry.controlTab); - public static final Item part_carbon = new ItemBase("part_carbon").setCreativeTab(MainRegistry.controlTab); + public static final Item part_carbon = new ItemHazard("part_carbon").addCoal(3).toItem().setCreativeTab(MainRegistry.controlTab); public static final Item part_copper = new ItemBase("part_copper").setCreativeTab(MainRegistry.controlTab); - public static final Item part_plutonium = new ItemBase("part_plutonium").setCreativeTab(MainRegistry.controlTab); + public static final Item part_plutonium = new ItemHazard(ItemHazard.pu, "part_plutonium").setCreativeTab(MainRegistry.controlTab); //Reactor Blanket - public static final Item fusion_shield_tungsten = new ItemFusionShield(60 * 60 * 60 * 5, 35000, "fusion_shield_tungsten").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab); - public static final Item fusion_shield_desh = new ItemFusionShield(60 * 60 * 60 * 10, 60000, "fusion_shield_desh").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab); - public static final Item fusion_shield_chlorophyte = new ItemFusionShield(60 * 60 * 60 * 15, 90000, "fusion_shield_chlorophyte").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab); - public static final Item fusion_shield_vaporwave = new ItemFusionShield(60 * 60 * 60 * 10, 1916169, "fusion_shield_vaporwave").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab); + public static final Item fusion_shield_tungsten = new ItemFusionShield(20 * 60 * 60 * 6, 35000, "fusion_shield_tungsten").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab); + public static final Item fusion_shield_desh = new ItemFusionShield(20 * 60 * 60 * 12, 60000, "fusion_shield_desh").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab); + public static final Item fusion_shield_chlorophyte = new ItemFusionShield(20 * 60 * 60 * 24, 90000, "fusion_shield_chlorophyte").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab); + public static final Item fusion_shield_vaporwave = new ItemFusionShield(20 * 60 * 60 * 24 * 7, 1916169, "fusion_shield_vaporwave").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab); public static final Item battery_sc_uranium = new ItemSelfcharger(5, "battery_sc_uranium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab); public static final Item battery_sc_technetium = new ItemSelfcharger(25, "battery_sc_technetium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab); @@ -596,8 +597,8 @@ public class ModItems { public static final Item battery_steam = new ItemBattery(60000, 3, 6000, "battery_steam").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab); public static final Item battery_steam_large = new ItemBattery(100000, 5, 10000, "battery_steam_large").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab); - public static final Item factory_core_titanium = new ItemBattery(7040000, 1000, 0, "factory_core_titanium").setMaxStackSize(1); - public static final Item factory_core_advanced = new ItemBattery(4160000, 1000, 0, "factory_core_advanced").setMaxStackSize(1); + public static final Item factory_core_titanium = new ItemCustomLore("factory_core_titanium").setMaxStackSize(1); + public static final Item factory_core_advanced = new ItemCustomLore("factory_core_advanced").setMaxStackSize(1); public static final Item hev_battery = new ItemFusionCore(150000, "hev_battery").setMaxStackSize(4).setCreativeTab(MainRegistry.controlTab); public static final Item fusion_core = new ItemFusionCore(2500000, "fusion_core").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab); public static final Item energy_core = new ItemBattery(10000000, 0, 1000, "energy_core").setMaxStackSize(1); @@ -810,6 +811,7 @@ public class ModItems { .setStep(HBMSoundHandler.iron) .setJump(HBMSoundHandler.ironJump) .setFall(HBMSoundHandler.ironLand) + .addResistance("monoxide", 0F) .addResistance("fall", 0); public static final Item ajr_plate = new ArmorAJR(MainRegistry.aMatAJR, 7, EntityEquipmentSlot.CHEST, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25, "ajr_plate").cloneStats((ArmorFSB) ajr_helmet); public static final Item ajr_legs = new ArmorAJR(MainRegistry.aMatAJR, 7, EntityEquipmentSlot.LEGS, RefStrings.MODID + ":textures/armor/starmetal_2.png", 2500000, 10000, 2000, 25, "ajr_legs").cloneStats((ArmorFSB) ajr_helmet); @@ -1125,23 +1127,23 @@ public class ModItems { public static final Item ingot_schraranium = new ItemHazard(ItemHazard.sr, false, true, "ingot_schraranium").setCreativeTab(MainRegistry.partsTab); public static final Item ingot_schrabidium = new ItemHazard(ItemHazard.sa326, false, true, "ingot_schrabidium").setCreativeTab(MainRegistry.partsTab); public static final Item ingot_schrabidate = new ItemHazard(ItemHazard.sb, false, true, "ingot_schrabidate").setCreativeTab(MainRegistry.partsTab); + public static final Item ingot_solinium = new ItemHazard(ItemHazard.sa327, false, true, "ingot_solinium").setCreativeTab(MainRegistry.partsTab); + public static final Item ingot_thorium_fuel = new ItemHazard(ItemHazard.thf, "ingot_thorium_fuel").setCreativeTab(MainRegistry.partsTab); public static final Item ingot_uranium_fuel = new ItemHazard(ItemHazard.uf, "ingot_uranium_fuel").setCreativeTab(MainRegistry.partsTab); + public static final Item ingot_mox_fuel = new ItemHazard(ItemHazard.mox, "ingot_mox_fuel").setCreativeTab(MainRegistry.partsTab); public static final Item ingot_plutonium_fuel = new ItemHazard(ItemHazard.puf, "ingot_plutonium_fuel").setCreativeTab(MainRegistry.partsTab); public static final Item ingot_neptunium_fuel = new ItemHazard(ItemHazard.npf, true, "ingot_neptunium_fuel").setCreativeTab(MainRegistry.partsTab); - public static final Item ingot_mox_fuel = new ItemHazard(ItemHazard.mox, "ingot_mox_fuel").setCreativeTab(MainRegistry.partsTab); public static final Item ingot_americium_fuel = new ItemHazard(ItemHazard.amf, "ingot_americium_fuel").setCreativeTab(MainRegistry.partsTab); - public static final Item ingot_thorium_fuel = new ItemHazard(ItemHazard.thf, "ingot_thorium_fuel").setCreativeTab(MainRegistry.partsTab); + public static final Item ingot_les = new ItemHazard(ItemHazard.les, false, true, "ingot_les").setCreativeTab(MainRegistry.partsTab); public static final Item ingot_schrabidium_fuel = new ItemHazard(ItemHazard.saf, false, true, "ingot_schrabidium_fuel").setCreativeTab(MainRegistry.partsTab); + public static final Item ingot_hes = new ItemHazard(ItemHazard.hes, false, true, "ingot_hes").setCreativeTab(MainRegistry.partsTab); public static final Item ingot_neptunium = new ItemHazard(ItemHazard.np237, true, "ingot_neptunium").setCreativeTab(MainRegistry.partsTab); public static final Item ingot_tennessine = new ItemHazard(120F, "ingot_tennessine").setCreativeTab(MainRegistry.partsTab); public static final Item ingot_polonium = new ItemHazard(ItemHazard.po210, true, "ingot_polonium").setCreativeTab(MainRegistry.partsTab); - public static final Item ingot_solinium = new ItemHazard(ItemHazard.sa327, false, true, "ingot_solinium").setCreativeTab(MainRegistry.partsTab); - public static final Item ingot_hes = new ItemHazard(ItemHazard.hes, false, true, "ingot_hes").setCreativeTab(MainRegistry.partsTab); - public static final Item ingot_les = new ItemHazard(ItemHazard.les, false, true, "ingot_les").setCreativeTab(MainRegistry.partsTab); public static final Item ingot_phosphorus = new ItemHazard(0F, true, "ingot_phosphorus").setCreativeTab(MainRegistry.partsTab); public static final Item ingot_boron = new ItemBase("ingot_boron").setCreativeTab(MainRegistry.partsTab); - public static final Item ingot_graphite = new ItemHazard("ingot_graphite").toItem().setCreativeTab(MainRegistry.partsTab); + public static final Item ingot_graphite = new ItemFuel("ingot_graphite", 1600).setCreativeTab(MainRegistry.partsTab); public static final Item ingot_fiberglass = new ItemCustomLore("ingot_fiberglass").setCreativeTab(MainRegistry.partsTab); public static final Item ingot_smore = new ItemFoodBase(10, 20F, false, "ingot_smore").setCreativeTab(MainRegistry.partsTab); public static final Item ingot_niobium = new ItemCustomLore("ingot_niobium").setCreativeTab(MainRegistry.partsTab); @@ -1212,16 +1214,16 @@ public class ModItems { public static final Item billet_zfb_pu241 = new ItemHazard(ItemHazard.zfb_pu241 * ItemHazard.billet, "billet_zfb_pu241").setCreativeTab(MainRegistry.partsTab); public static final Item billet_zfb_am_mix = new ItemHazard(ItemHazard.zfb_am_mix * ItemHazard.billet, "billet_zfb_am_mix").setCreativeTab(MainRegistry.partsTab); - public static final Item billet_solinium = new ItemHazard(ItemHazard.sa327 * ItemHazard.billet, false, true, "billet_solinium").setCreativeTab(MainRegistry.partsTab); public static final Item billet_schrabidium = new ItemHazard(ItemHazard.sa326 * ItemHazard.billet, false, true, "billet_schrabidium").setCreativeTab(MainRegistry.partsTab); + public static final Item billet_solinium = new ItemHazard(ItemHazard.sa327 * ItemHazard.billet, false, true, "billet_solinium").setCreativeTab(MainRegistry.partsTab); public static final Item billet_thorium_fuel = new ItemHazard(ItemHazard.thf * ItemHazard.billet, "billet_thorium_fuel").setCreativeTab(MainRegistry.partsTab); public static final Item billet_uranium_fuel = new ItemHazard(ItemHazard.uf * ItemHazard.billet, "billet_uranium_fuel").setCreativeTab(MainRegistry.partsTab); public static final Item billet_mox_fuel = new ItemHazard(ItemHazard.mox * ItemHazard.billet, "billet_mox_fuel").setCreativeTab(MainRegistry.partsTab); public static final Item billet_plutonium_fuel = new ItemHazard(ItemHazard.puf * ItemHazard.billet, "billet_plutonium_fuel").setCreativeTab(MainRegistry.partsTab); public static final Item billet_neptunium_fuel = new ItemHazard(ItemHazard.npf * ItemHazard.billet, true, "billet_neptunium_fuel").setCreativeTab(MainRegistry.partsTab); public static final Item billet_americium_fuel = new ItemHazard(ItemHazard.amf * ItemHazard.billet, "billet_americium_fuel").setCreativeTab(MainRegistry.partsTab); - public static final Item billet_schrabidium_fuel = new ItemHazard(ItemHazard.saf * ItemHazard.billet, false, true, "billet_schrabidium_fuel").setCreativeTab(MainRegistry.partsTab); public static final Item billet_les = new ItemHazard(ItemHazard.les * ItemHazard.billet, "billet_les").addBlinding().toItem().setCreativeTab(MainRegistry.partsTab); + public static final Item billet_schrabidium_fuel = new ItemHazard(ItemHazard.saf * ItemHazard.billet, false, true, "billet_schrabidium_fuel").setCreativeTab(MainRegistry.partsTab); public static final Item billet_hes = new ItemHazard(ItemHazard.hes * ItemHazard.billet, "billet_hes").addBlinding().toItem().setCreativeTab(MainRegistry.partsTab); public static final Item billet_po210be = new ItemHazard(ItemHazard.pobe, "billet_po210be").setCreativeTab(MainRegistry.partsTab); public static final Item billet_ra226be = new ItemHazard(ItemHazard.rabe, "billet_ra226be").setCreativeTab(MainRegistry.partsTab); @@ -1260,11 +1262,11 @@ public class ModItems { public static final Item nugget_uranium_fuel = new ItemHazard(ItemHazard.uf * ItemHazard.nugget, "nugget_uranium_fuel").setCreativeTab(MainRegistry.partsTab); public static final Item nugget_mox_fuel = new ItemHazard(ItemHazard.mox * ItemHazard.nugget, "nugget_mox_fuel").setCreativeTab(MainRegistry.partsTab).setCreativeTab(MainRegistry.partsTab); public static final Item nugget_plutonium_fuel = new ItemHazard(ItemHazard.puf * ItemHazard.nugget, "nugget_plutonium_fuel").setCreativeTab(MainRegistry.partsTab); + public static final Item nugget_neptunium_fuel = new ItemHazard(ItemHazard.npf * ItemHazard.nugget, true, "nugget_neptunium_fuel").setCreativeTab(MainRegistry.partsTab); public static final Item nugget_americium_fuel = new ItemHazard(ItemHazard.amf * ItemHazard.nugget, "nugget_americium_fuel").setCreativeTab(MainRegistry.partsTab); + public static final Item nugget_les = new ItemHazard(ItemHazard.les * ItemHazard.nugget, false, true, "nugget_les").setCreativeTab(MainRegistry.partsTab); public static final Item nugget_schrabidium_fuel = new ItemHazard(ItemHazard.saf * ItemHazard.nugget, "nugget_schrabidium_fuel").setCreativeTab(MainRegistry.partsTab); - public static final Item nugget_neptunium_fuel = new ItemHazard(ItemHazard.npf * ItemHazard.nugget, true, "nugget_neptunium_fuel").setCreativeTab(MainRegistry.partsTab); public static final Item nugget_hes = new ItemHazard(ItemHazard.hes * ItemHazard.nugget, false, true, "nugget_hes").setCreativeTab(MainRegistry.partsTab); - public static final Item nugget_les = new ItemHazard(ItemHazard.les * ItemHazard.nugget, false, true, "nugget_les").setCreativeTab(MainRegistry.partsTab); public static final Item nugget_lead = new ItemHazard("nugget_lead").addToxic(1).toItem().setCreativeTab(MainRegistry.partsTab); public static final Item nugget_beryllium = new ItemBase("nugget_beryllium").setCreativeTab(MainRegistry.partsTab); public static final Item nugget_cadmium = new ItemBase("nugget_cadmium").setCreativeTab(MainRegistry.partsTab); @@ -1274,8 +1276,8 @@ public class ModItems { public static final Item nugget_tantalium = new ItemCustomLore("nugget_tantalium").setCreativeTab(MainRegistry.partsTab); public static final Item nugget_desh = new ItemCustomLore("nugget_desh").setCreativeTab(MainRegistry.partsTab); public static final Item nugget_osmiridium = new ItemHazard("nugget_osmiridium").addDigamma(0.004F).toItem().setCreativeTab(MainRegistry.partsTab); - public static final Item nugget_solinium = new ItemHazard(ItemHazard.sa327 * ItemHazard.nugget, false, true, "nugget_solinium").setCreativeTab(MainRegistry.partsTab); public static final Item nugget_schrabidium = new ItemHazard(ItemHazard.sa326 * ItemHazard.nugget, false, true, "nugget_schrabidium").setCreativeTab(MainRegistry.partsTab); + public static final Item nugget_solinium = new ItemHazard(ItemHazard.sa327 * ItemHazard.nugget, false, true, "nugget_solinium").setCreativeTab(MainRegistry.partsTab); public static final Item nugget_euphemium = new ItemCustomLore("nugget_euphemium").setCreativeTab(MainRegistry.partsTab); public static final Item nugget_dineutronium = new ItemCustomLore("nugget_dineutronium").setCreativeTab(MainRegistry.partsTab); @@ -1432,7 +1434,7 @@ public class ModItems { public static final Item lithium = new ItemHazard("lithium").addHydroReactivity().toItem().setCreativeTab(MainRegistry.partsTab); public static final Item ingot_semtex = new ItemLemon(4, 5, true, "ingot_semtex").setCreativeTab(MainRegistry.partsTab); public static final Item ingot_c4 = new ItemBase("ingot_c4").setCreativeTab(MainRegistry.partsTab); - public static final Item trinitite = new ItemContaminating(5F, "trinitite").setCreativeTab(MainRegistry.partsTab); + public static final Item trinitite = new ItemHazard(5F, "trinitite").setCreativeTab(MainRegistry.partsTab); public static final Item nuclear_waste_long = new ItemWasteLong(50F, "nuclear_waste_long").setCreativeTab(MainRegistry.partsTab); public static final Item nuclear_waste_long_tiny = new ItemWasteLong(5F, "nuclear_waste_long_tiny").setCreativeTab(MainRegistry.partsTab); @@ -1459,7 +1461,7 @@ public class ModItems { public static final Item scrap = new ItemBase("scrap").setCreativeTab(MainRegistry.partsTab); public static final Item scrap_oil = new ItemBase("scrap_oil").setCreativeTab(MainRegistry.partsTab); public static final Item dust = new ItemBase("dust").setCreativeTab(MainRegistry.partsTab); - public static final Item fallout = new ItemContaminating(ItemHazard.fo, "falloutitem").setCreativeTab(MainRegistry.partsTab); + public static final Item fallout = new ItemHazard(ItemHazard.fo, "falloutitem").setCreativeTab(MainRegistry.partsTab); public static final Item containment_box = new ItemLeadBox("containment_box").setCreativeTab(null); @@ -2341,7 +2343,7 @@ public class ModItems { //Gun ammo assemblies and ammo public static final Item assembly_iron = new ItemBase("assembly_iron").setCreativeTab(MainRegistry.partsTab); public static final Item assembly_steel = new ItemBase("assembly_steel").setCreativeTab(MainRegistry.partsTab); - public static final Item assembly_lead = new ItemBase("assembly_lead").setCreativeTab(MainRegistry.partsTab); + public static final Item assembly_lead = new ItemHazard(0.1F, "assembly_lead").setCreativeTab(MainRegistry.partsTab); public static final Item assembly_gold = new ItemBase("assembly_gold").setCreativeTab(MainRegistry.partsTab); public static final Item assembly_schrabidium = new ItemBase("assembly_schrabidium").setCreativeTab(MainRegistry.partsTab); public static final Item assembly_nightmare = new ItemBase("assembly_nightmare").setCreativeTab(MainRegistry.partsTab); @@ -2356,7 +2358,7 @@ public class ModItems { public static final Item assembly_nuke = new ItemBase("assembly_nuke").setCreativeTab(MainRegistry.partsTab); public static final Item gun_revolver_iron_ammo = new ItemBase("gun_revolver_iron_ammo").setCreativeTab(MainRegistry.weaponTab); public static final Item gun_revolver_ammo = new ItemBase("gun_revolver_ammo").setCreativeTab(MainRegistry.weaponTab); - public static final Item gun_revolver_lead_ammo = new ItemBase("gun_revolver_lead_ammo").setCreativeTab(MainRegistry.weaponTab); + public static final Item gun_revolver_lead_ammo = new ItemHazard(0.1F, "gun_revolver_lead_ammo").setCreativeTab(MainRegistry.weaponTab); public static final Item gun_revolver_gold_ammo = new ItemBase("gun_revolver_gold_ammo").setCreativeTab(MainRegistry.weaponTab); public static final Item gun_revolver_schrabidium_ammo = new ItemHazard(1.5F, "gun_revolver_schrabidium_ammo").setCreativeTab(MainRegistry.weaponTab); public static final Item gun_revolver_nightmare_ammo = new ItemCustomLore("gun_revolver_nightmare_ammo").setCreativeTab(MainRegistry.weaponTab); @@ -2526,7 +2528,7 @@ public class ModItems { public static final Item gun_mirv_ammo = new ItemBase("gun_mirv_ammo").setCreativeTab(MainRegistry.weaponTab); public static final Item gun_bf_ammo = new ItemBase("gun_bf_ammo").setCreativeTab(MainRegistry.weaponTab); public static final Item gun_stinger_ammo = new ItemBase("gun_stinger_ammo").setCreativeTab(MainRegistry.weaponTab); - public static final Item gun_xvl1456_ammo = new ItemBase("gun_xvl1456_ammo").setCreativeTab(MainRegistry.weaponTab); + public static final Item gun_xvl1456_ammo = new ItemHazard(0.25F, "gun_xvl1456_ammo").setCreativeTab(MainRegistry.weaponTab); public static final Item gun_hp_ammo = new ItemBase("gun_hp_ammo").setCreativeTab(MainRegistry.weaponTab); public static final Item gun_dash_ammo = new ItemBase("gun_dash_ammo").setCreativeTab(null); public static final Item gun_defabricator_ammo = new ItemBase("gun_defabricator_ammo").setCreativeTab(MainRegistry.weaponTab); @@ -2568,7 +2570,7 @@ public class ModItems { public static final Item clip_stinger = new ItemClip("clip_stinger").setCreativeTab(MainRegistry.weaponTab); public static final Item clip_fatman = new ItemClip("clip_fatman").setCreativeTab(MainRegistry.weaponTab); public static final Item clip_mirv = new ItemClip("clip_mirv").setCreativeTab(MainRegistry.weaponTab); - public static final Item clip_bf = new ItemClip("clip_bf").setCreativeTab(null); + public static final Item clip_bf = new ItemClip("clip_bf").setCreativeTab(MainRegistry.weaponTab); public static final Item clip_mp40 = new ItemClip("clip_mp40").setCreativeTab(MainRegistry.weaponTab); public static final Item clip_uzi = new ItemClip("clip_uzi").setCreativeTab(MainRegistry.weaponTab); public static final Item clip_uboinik = new ItemClip("clip_uboinik").setCreativeTab(MainRegistry.weaponTab); @@ -2911,19 +2913,6 @@ public class ModItems { .setFuelColor(0F, 0.373F, 0.565F) .addRadiation(ItemHazard.unof * ItemHazard.rod_rbmk) ; - public static final ItemRBMKRod rbmk_fuel_po210be = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_po210be, "rbmk_fuel_po210be") - .setYield(25000000D) - .setStats(0D, 50) - .setFunction(EnumBurnFunc.PASSIVE) - .setDepletionFunction(EnumDepleteFunc.LINEAR) - .setXenon(0.0D, 50D) - .setHeat(0.1D) - .setDiffusion(0.05D) - .setMeltingPoint(1287) - .setNeutronTypes(NType.SLOW, NType.SLOW) //Beryllium Moderation - .setFuelColor(0.463F, 0.392F, 0.318F) - .addRadiation(ItemHazard.pobe * ItemHazard.rod_rbmk).toItem() - ; public static final ItemRBMKRod rbmk_fuel_ra226be = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_ra226be, "rbmk_fuel_ra226be") .setYield(100000000D) .setStats(0D, 20) @@ -2937,6 +2926,19 @@ public class ModItems { .setFuelColor(0.710F, 0.722F, 0.686F) .addRadiation(ItemHazard.rabe * ItemHazard.rod_rbmk).toItem() ; + public static final ItemRBMKRod rbmk_fuel_po210be = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_po210be, "rbmk_fuel_po210be") + .setYield(25000000D) + .setStats(0D, 50) + .setFunction(EnumBurnFunc.PASSIVE) + .setDepletionFunction(EnumDepleteFunc.LINEAR) + .setXenon(0.0D, 50D) + .setHeat(0.1D) + .setDiffusion(0.05D) + .setMeltingPoint(1287) + .setNeutronTypes(NType.SLOW, NType.SLOW) //Beryllium Moderation + .setFuelColor(0.463F, 0.392F, 0.318F) + .addRadiation(ItemHazard.pobe * ItemHazard.rod_rbmk).toItem() + ; public static final ItemRBMKRod rbmk_fuel_pu238be = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_pu238be, "rbmk_fuel_pu238be") .setYield(50000000D) .setStats(4, 40) @@ -3008,7 +3010,7 @@ public class ModItems { .addRadiation(800000F).toItem() ; public static final ItemRBMKRod rbmk_fuel_drx = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_drx, "rbmk_fuel_drx") - .setYield(1000000D) + .setYield(100000000D) .setStats(0.1, 10) .setFunction(EnumBurnFunc.QUADRATIC) .setHeat(0.1D) @@ -3153,6 +3155,8 @@ public class ModItems { public static final Item custom_amat = new ItemCustomLore("custom_amat").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab); public static final Item custom_dirty = new ItemCustomLore("custom_dirty").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab); public static final Item custom_schrab = new ItemCustomLore("custom_schrab").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab); + public static final Item custom_sol = new ItemCustomLore("custom_sol").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab); + public static final Item custom_euph = new ItemCustomLore("custom_euph").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab); public static final Item custom_fall = new ItemCustomLore("custom_fall").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab); //Kits diff --git a/src/main/java/com/hbm/items/armor/ArmorDNT.java b/src/main/java/com/hbm/items/armor/ArmorDNT.java index 880e476825..72f0d1f639 100644 --- a/src/main/java/com/hbm/items/armor/ArmorDNT.java +++ b/src/main/java/com/hbm/items/armor/ArmorDNT.java @@ -171,10 +171,20 @@ public void handleHurt(LivingHurtEvent event, ArmorFSB chestplate) { } } } + + public static String getColor(long a, long b){ + float fraction = 100F * a/b; + if(fraction > 75) + return "§a"; + if(fraction > 25) + return "§e"; + return "§c"; + } @Override public void addInformation(ItemStack stack, World worldIn, List list, ITooltipFlag flagIn){ - list.add("Charge: " + Library.getShortNumber(getCharge(stack)) + " / " + Library.getShortNumber(maxPower)); + long power = getCharge(stack); + list.add("Charge: " + getColor(power, maxPower) + Library.getShortNumber(power) + " §2/ " + Library.getShortNumber(maxPower)); list.add(TextFormatting.GOLD + I18nUtil.resolveKey("armor.fullSetBonus")); diff --git a/src/main/java/com/hbm/items/armor/ArmorFSBPowered.java b/src/main/java/com/hbm/items/armor/ArmorFSBPowered.java index 2b3fd1c10f..f98a255d51 100644 --- a/src/main/java/com/hbm/items/armor/ArmorFSBPowered.java +++ b/src/main/java/com/hbm/items/armor/ArmorFSBPowered.java @@ -33,10 +33,20 @@ public ArmorFSBPowered(ArmorMaterial material, int layer, EntityEquipmentSlot sl this.setMaxDamage(1); } + public static String getColor(long a, long b){ + float fraction = 100F * a/b; + if(fraction > 75) + return "§a"; + if(fraction > 25) + return "§e"; + return "§c"; + } + @Override @SideOnly(Side.CLIENT) public void addInformation(ItemStack stack, World worldIn, List list, ITooltipFlag flagIn) { - list.add("Charge: " + Library.getShortNumber(getCharge(stack)) + " / " + Library.getShortNumber(maxPower)); + long power = getCharge(stack); + list.add("Charge: " + getColor(power, maxPower) + Library.getShortNumber(power) + " §2/ " + Library.getShortNumber(maxPower)); super.addInformation(stack, worldIn, list, flagIn); } diff --git a/src/main/java/com/hbm/items/bomb/ItemBoy.java b/src/main/java/com/hbm/items/bomb/ItemBoy.java index 546c26555d..3af9be51fa 100644 --- a/src/main/java/com/hbm/items/bomb/ItemBoy.java +++ b/src/main/java/com/hbm/items/bomb/ItemBoy.java @@ -19,7 +19,7 @@ public ItemBoy(float radiation, String s) { @Override public void addInformation(ItemStack stack, World world, List list, ITooltipFlag flagIn) { list.add("Used in:"); - list.add("Little Boy"); + list.add(" Little Boy"); super.addInformation(stack, world, list, flagIn); } diff --git a/src/main/java/com/hbm/items/bomb/ItemFleija.java b/src/main/java/com/hbm/items/bomb/ItemFleija.java index f36d0f83da..7d0b723d4f 100644 --- a/src/main/java/com/hbm/items/bomb/ItemFleija.java +++ b/src/main/java/com/hbm/items/bomb/ItemFleija.java @@ -21,7 +21,7 @@ public ItemFleija(float radiation, boolean blinding, String s) { @Override public void addInformation(ItemStack stack, World world, List list, ITooltipFlag flagIn) { list.add("Used in:"); - list.add("F.L.E.I.J.A."); + list.add(" F.L.E.I.J.A."); super.addInformation(stack, world, list, flagIn); } diff --git a/src/main/java/com/hbm/items/bomb/ItemGadget.java b/src/main/java/com/hbm/items/bomb/ItemGadget.java index f94b3d5c0f..2429f1aef1 100644 --- a/src/main/java/com/hbm/items/bomb/ItemGadget.java +++ b/src/main/java/com/hbm/items/bomb/ItemGadget.java @@ -2,6 +2,7 @@ import java.util.List; +import com.hbm.items.ModItems; import com.hbm.items.special.ItemHazard; import com.hbm.main.MainRegistry; @@ -19,7 +20,9 @@ public ItemGadget(float radiation, String s) { @Override public void addInformation(ItemStack stack, World world, List list, ITooltipFlag flagIn) { list.add("Used in:"); - list.add("The Gadget"); + list.add(" The Gadget"); + if(this == ModItems.gadget_explosive8) + list.add(" Fat Man"); super.addInformation(stack, world, list, flagIn); } diff --git a/src/main/java/com/hbm/items/bomb/ItemMan.java b/src/main/java/com/hbm/items/bomb/ItemMan.java index cde20855b8..103202d278 100644 --- a/src/main/java/com/hbm/items/bomb/ItemMan.java +++ b/src/main/java/com/hbm/items/bomb/ItemMan.java @@ -23,7 +23,7 @@ public ItemMan(String s){ @Override public void addInformation(ItemStack stack, World worldIn, List list, ITooltipFlag flagIn) { list.add("Used in:"); - list.add("Fat Man"); + list.add(" Fat Man"); super.addInformation(stack, worldIn, list, flagIn); } } diff --git a/src/main/java/com/hbm/items/bomb/ItemManMike.java b/src/main/java/com/hbm/items/bomb/ItemManMike.java index 650c624ef8..5f578d37d9 100644 --- a/src/main/java/com/hbm/items/bomb/ItemManMike.java +++ b/src/main/java/com/hbm/items/bomb/ItemManMike.java @@ -2,6 +2,7 @@ import java.util.List; +import com.hbm.items.ModItems; import com.hbm.items.special.ItemHazard; import com.hbm.main.MainRegistry; @@ -19,9 +20,10 @@ public ItemManMike(float radiation, String s) { @Override public void addInformation(ItemStack stack, World world, List list, ITooltipFlag flagIn) { list.add("Used in:"); - list.add("Fat Man"); - list.add("Ivy Mike"); - list.add("Tsar Bomba"); + if(this == ModItems.man_core) + list.add(" Fat Man"); + list.add(" Ivy Mike"); + list.add(" Tsar Bomba"); super.addInformation(stack, world, list, flagIn); } } diff --git a/src/main/java/com/hbm/items/bomb/ItemMike.java b/src/main/java/com/hbm/items/bomb/ItemMike.java index 2782ae87f1..34e23d2f6a 100644 --- a/src/main/java/com/hbm/items/bomb/ItemMike.java +++ b/src/main/java/com/hbm/items/bomb/ItemMike.java @@ -19,8 +19,8 @@ public ItemMike(float radiation, String s) { @Override public void addInformation(ItemStack stack, World world, List list, ITooltipFlag flagIn) { list.add("Used in:"); - list.add("Ivy Mike"); - list.add("Tsar Bomba"); + list.add(" Ivy Mike"); + list.add(" Tsar Bomba"); super.addInformation(stack, world, list, flagIn); } } diff --git a/src/main/java/com/hbm/items/bomb/ItemN2.java b/src/main/java/com/hbm/items/bomb/ItemN2.java index e8cb8cc970..d6203c281d 100644 --- a/src/main/java/com/hbm/items/bomb/ItemN2.java +++ b/src/main/java/com/hbm/items/bomb/ItemN2.java @@ -21,6 +21,6 @@ public ItemN2(String s) { @Override public void addInformation(ItemStack stack, World worldIn, List tooltip, ITooltipFlag flagIn) { tooltip.add("Used in:"); - tooltip.add("N² Mine"); + tooltip.add(" N² Mine"); } } diff --git a/src/main/java/com/hbm/items/bomb/ItemSolinium.java b/src/main/java/com/hbm/items/bomb/ItemSolinium.java index 3ccbd82396..772d587304 100644 --- a/src/main/java/com/hbm/items/bomb/ItemSolinium.java +++ b/src/main/java/com/hbm/items/bomb/ItemSolinium.java @@ -19,7 +19,7 @@ public ItemSolinium(float radiation, boolean blinding, String s) { @Override public void addInformation(ItemStack stack, World world, List list, ITooltipFlag flagIn) { list.add("Used in:"); - list.add("Solinium Bomb"); + list.add(" Solinium Bomb"); super.addInformation(stack, world, list, flagIn); } } diff --git a/src/main/java/com/hbm/items/bomb/ItemTsar.java b/src/main/java/com/hbm/items/bomb/ItemTsar.java index 04507b2e4e..634d5769f8 100644 --- a/src/main/java/com/hbm/items/bomb/ItemTsar.java +++ b/src/main/java/com/hbm/items/bomb/ItemTsar.java @@ -19,7 +19,7 @@ public ItemTsar(float radiation, String s) { @Override public void addInformation(ItemStack stack, World world, List list, ITooltipFlag flagIn) { list.add("Used in:"); - list.add("Tsar Bomba"); + list.add(" Tsar Bomba"); super.addInformation(stack, world, list, flagIn); } diff --git a/src/main/java/com/hbm/items/machine/ItemBlades.java b/src/main/java/com/hbm/items/machine/ItemBlades.java index a2b7ef486a..9965db7a21 100644 --- a/src/main/java/com/hbm/items/machine/ItemBlades.java +++ b/src/main/java/com/hbm/items/machine/ItemBlades.java @@ -2,17 +2,13 @@ import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; +import com.hbm.items.special.ItemHazard; -import net.minecraft.item.Item; - -public class ItemBlades extends Item { +public class ItemBlades extends ItemHazard { public ItemBlades(String s, int i){ - this.setUnlocalizedName(s); - this.setRegistryName(s); - this.setCreativeTab(MainRegistry.controlTab); + super(s); this.setMaxStackSize(1); + this.setUnlocalizedName(s); this.setMaxDamage(i); - ModItems.ALL_ITEMS.add(this); } - } diff --git a/src/main/java/com/hbm/items/machine/ItemCapacitor.java b/src/main/java/com/hbm/items/machine/ItemCapacitor.java index 8174fb8c17..c7cbcf3ca1 100644 --- a/src/main/java/com/hbm/items/machine/ItemCapacitor.java +++ b/src/main/java/com/hbm/items/machine/ItemCapacitor.java @@ -27,17 +27,28 @@ public ItemCapacitor(int dura, String s) { ModItems.ALL_ITEMS.add(this); } + + public static String getColor(long a, long b){ + float fraction = 100F * a/b; + if(fraction > 75) + return "§a"; + if(fraction > 25) + return "§e"; + return "§c"; + } @Override public void addInformation(ItemStack stack, World worldIn, List tooltip, ITooltipFlag flagIn) { if (this == ModItems.redcoil_capacitor) { tooltip.add("Right-click a block to negate positive charge."); - tooltip.add("[Needed for Schrabidium Synthesis]"); - tooltip.add(getDura(stack) + "/" + dura); + tooltip.add("§b[Needed for Schrabidium Synthesis]"); + int itemDura = getDura(stack); + tooltip.add(getColor(itemDura, dura) + itemDura + " §2/ " + dura); } if (this == ModItems.titanium_filter) { - tooltip.add("[Needed for Watz Reaction]"); - tooltip.add((getDura(stack) / 20) + "/" + (dura / 20)); + tooltip.add("§e[Needed for Watz Reaction]"); + int itemDura = getDura(stack); + tooltip.add(getColor(itemDura, dura) + itemDura/20 + " §2/ " + dura/20); } } diff --git a/src/main/java/com/hbm/items/machine/ItemDrillbit.java b/src/main/java/com/hbm/items/machine/ItemDrillbit.java index 2f4517f3cd..aa419a6b7c 100644 --- a/src/main/java/com/hbm/items/machine/ItemDrillbit.java +++ b/src/main/java/com/hbm/items/machine/ItemDrillbit.java @@ -45,8 +45,8 @@ public static enum EnumDrillType { TCALLOY_DIAMOND (2.0D, 4, 4, true, true), FERRO (2.5D, 5, 1, true, true), FERRO_DIAMOND (2.5D, 5, 4, true, true), - DNT (4.0D, 6000, 1, true, true), - DNT_DIAMOND (4.0D, 6000, 5, true, true); + DNT (5.0D, 6000, 1, true, true), + DNT_DIAMOND (5.0D, 6000, 5, true, true); public double speed; public int tier; diff --git a/src/main/java/com/hbm/items/machine/ItemRTGPellet.java b/src/main/java/com/hbm/items/machine/ItemRTGPellet.java index 39f7f2ed43..9c76c19bd3 100644 --- a/src/main/java/com/hbm/items/machine/ItemRTGPellet.java +++ b/src/main/java/com/hbm/items/machine/ItemRTGPellet.java @@ -164,9 +164,9 @@ public void addInformation(ItemStack stack, World world, List list, IToo final String[] halfLife = BobMathUtil.ticksToDate(instance.getHalfLife()); final String[] timeLeft = BobMathUtil.ticksToDate(instance.getLifespan(stack)); final String[] maxLife = BobMathUtil.ticksToDate(instance.getMaxLifespan()); - list.add(String.format("§aHalf life: %sy %sd %sh %sm§r", (Object[]) halfLife)); - list.add(String.format("Time remaining: %sy %sd %sh %sm", (Object[]) timeLeft)); - list.add(String.format("Decay Time: %sy %sd %sh %sm", (Object[]) maxLife)); + list.add(String.format("§aHalf life: %sy %sd %sh %sm %ss§r", (Object[]) halfLife)); + list.add(String.format("Time remaining: %sy %sd %sh %sm %ss", (Object[]) timeLeft)); + list.add(String.format("Decay Time: %sy %sd %sh %sm %ss", (Object[]) maxLife)); } } diff --git a/src/main/java/com/hbm/items/special/ItemContaminating.java b/src/main/java/com/hbm/items/special/ItemContaminating.java index cbf555a7b5..cf43432b80 100644 --- a/src/main/java/com/hbm/items/special/ItemContaminating.java +++ b/src/main/java/com/hbm/items/special/ItemContaminating.java @@ -39,6 +39,7 @@ public ItemContaminating(float radiation, boolean fire, boolean blinding, String @Override public boolean onEntityItemUpdate(EntityItem entityItem){ + boolean m = this.module.onEntityItemUpdate(entityItem); if(entityItem != null && !entityItem.world.isRemote && entityItem.onGround) { if(isCleanGround(new BlockPos(entityItem.posX, entityItem.posY, entityItem.posZ), entityItem.world)){ return false; @@ -54,7 +55,7 @@ public boolean onEntityItemUpdate(EntityItem entityItem){ entityItem.setDead(); return true; } - return false; + return false || m; } public static boolean isCleanGround(BlockPos pos, World world){ diff --git a/src/main/java/com/hbm/items/special/ItemCustomLore.java b/src/main/java/com/hbm/items/special/ItemCustomLore.java index 2002ac10dd..396ca02070 100644 --- a/src/main/java/com/hbm/items/special/ItemCustomLore.java +++ b/src/main/java/com/hbm/items/special/ItemCustomLore.java @@ -372,6 +372,11 @@ public void addInformation(ItemStack stack, World world, List list, IToo list.add(" §aRadius: "+(int)BombConfig.missileRadius*2*(1+BombConfig.falloutRange/100)+"m§r"); } } + + if(this == ModItems.factory_core_titanium || this == ModItems.factory_core_advanced) + { + list.add("Used in factories to stop the speed from changing."); + } if(this == ModItems.undefined && world != null) { if(world.rand.nextInt(10) == 0) { diff --git a/src/main/java/com/hbm/items/special/ItemHazard.java b/src/main/java/com/hbm/items/special/ItemHazard.java index bdc81d5f90..9881ece180 100644 --- a/src/main/java/com/hbm/items/special/ItemHazard.java +++ b/src/main/java/com/hbm/items/special/ItemHazard.java @@ -147,8 +147,9 @@ public void addInformation(ItemStack stack, World world, List list, IToo @Override public boolean onEntityItemUpdate(EntityItem item){ - super.onEntityItemUpdate(item); - return super.onEntityItemUpdate(item); + boolean m = this.module.onEntityItemUpdate(item); + boolean i = super.onEntityItemUpdate(item); + return m || i; } /* diff --git a/src/main/java/com/hbm/items/special/ItemStarterKit.java b/src/main/java/com/hbm/items/special/ItemStarterKit.java index 710a7e6b5b..9d3f5312d5 100644 --- a/src/main/java/com/hbm/items/special/ItemStarterKit.java +++ b/src/main/java/com/hbm/items/special/ItemStarterKit.java @@ -208,10 +208,10 @@ public ActionResult onItemRightClick(World world, EntityPlayer player if(this == ModItems.man_kit) { player.inventory.addItemStackToInventory(new ItemStack(Item.getItemFromBlock(ModBlocks.nuke_man), 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.man_explosive8, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.man_explosive8, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.man_explosive8, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.man_explosive8, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.gadget_explosive8, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.gadget_explosive8, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.gadget_explosive8, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.gadget_explosive8, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.man_igniter, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.man_core, 1)); @@ -281,6 +281,8 @@ public ActionResult onItemRightClick(World world, EntityPlayer player player.inventory.addItemStackToInventory(new ItemStack(ModItems.custom_dirty, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.custom_dirty, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.custom_schrab, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.custom_sol, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.custom_euph, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.custom_fall, 1)); } diff --git a/src/main/java/com/hbm/items/special/weapon/GunB92.java b/src/main/java/com/hbm/items/special/weapon/GunB92.java index 19ce3c4188..ec49543f88 100644 --- a/src/main/java/com/hbm/items/special/weapon/GunB92.java +++ b/src/main/java/com/hbm/items/special/weapon/GunB92.java @@ -223,7 +223,7 @@ public void addInformation(ItemStack stack, World worldIn, List list, IT list.add(""); list.add("\"It's nerf or nothing!\""); list.add(""); - list.add("[LEGENDARY WEAPON]"); + list.add("§d§l[LEGENDARY WEAPON]"); // Yeah attribute modifiers don't work too well for this. Not sure why // this even needs to be here, but oh well. diff --git a/src/main/java/com/hbm/items/tool/ItemSwordAbilityPower.java b/src/main/java/com/hbm/items/tool/ItemSwordAbilityPower.java index 62239a826b..f1f1cdb360 100644 --- a/src/main/java/com/hbm/items/tool/ItemSwordAbilityPower.java +++ b/src/main/java/com/hbm/items/tool/ItemSwordAbilityPower.java @@ -84,12 +84,22 @@ public long getCharge(ItemStack stack) { public long getDischargeRate() { return 0; } + + public static String getColor(long a, long b){ + float fraction = 100F * a/b; + if(fraction > 75) + return "§a"; + if(fraction > 25) + return "§e"; + return "§c"; + } @Override @SideOnly(Side.CLIENT) public void addInformation(ItemStack stack, World worldIn, List list, ITooltipFlag flagIn) { - list.add("Charge: " + Library.getShortNumber(getCharge(stack)) + " / " + Library.getShortNumber(maxPower)); - super.addInformation(stack, worldIn, list, flagIn); + long power = getCharge(stack); + list.add("Charge: " + getColor(power, maxPower) + Library.getShortNumber(power) + " §2/ " + Library.getShortNumber(maxPower)); + super.addInformation(stack, worldIn, list, flagIn); } @Override diff --git a/src/main/java/com/hbm/items/tool/ItemSwordMeteorite.java b/src/main/java/com/hbm/items/tool/ItemSwordMeteorite.java index 1d97919d8b..9dbeb30d8b 100644 --- a/src/main/java/com/hbm/items/tool/ItemSwordMeteorite.java +++ b/src/main/java/com/hbm/items/tool/ItemSwordMeteorite.java @@ -86,7 +86,7 @@ public void addInformation(ItemStack stack, World worldIn, List list, IT } if(this == ModItems.meteorite_sword_demonic) { - list.add(TextFormatting.ITALIC + "This sword has met §f§ogod§7§o and the §4§odevil§r"); + list.add(TextFormatting.ITALIC + "This sword has met §f§oGOD§7§o and the §4§oDEVIL§r"); list.add(TextFormatting.ITALIC + "It was transported to §4§o§kdemoniclove§7"); list.add(TextFormatting.ITALIC + "and came in contact with §4§o§ktheevilandthegood§r"); list.add("§0[Infohazard]§r"); diff --git a/src/main/java/com/hbm/items/tool/ItemToolAbility.java b/src/main/java/com/hbm/items/tool/ItemToolAbility.java index 9f17e4005b..0b24cf94c9 100644 --- a/src/main/java/com/hbm/items/tool/ItemToolAbility.java +++ b/src/main/java/com/hbm/items/tool/ItemToolAbility.java @@ -290,9 +290,9 @@ public void addInformation(ItemStack stack, World worldIn, List list, IT if(ability != null) { if(getCurrentAbility(stack) == ability) - list.add(" >" + TextFormatting.GOLD + ability.getFullName()); + list.add(" §e§l>" + ability.getFullName()); else - list.add(" " + TextFormatting.GOLD + ability.getFullName()); + list.add(" §6" + ability.getFullName()); } } @@ -409,5 +409,4 @@ public ItemToolAbility setDepthRockBreaker() { public boolean canBreakRock(World world, EntityPlayer player, ItemStack tool, IBlockState block, BlockPos pos){ return canOperate(tool) && this.rockBreaker; } - } diff --git a/src/main/java/com/hbm/items/tool/ItemToolAbilityPower.java b/src/main/java/com/hbm/items/tool/ItemToolAbilityPower.java index e2689ead7a..565fdb800e 100644 --- a/src/main/java/com/hbm/items/tool/ItemToolAbilityPower.java +++ b/src/main/java/com/hbm/items/tool/ItemToolAbilityPower.java @@ -80,11 +80,21 @@ public long getCharge(ItemStack stack) { return 0; } + public static String getColor(long a, long b){ + float fraction = 100F * a/b; + if(fraction > 75) + return "§a"; + if(fraction > 25) + return "§e"; + return "§c"; + } + @Override @SideOnly(Side.CLIENT) public void addInformation(ItemStack stack, World worldIn, List list, ITooltipFlag flagIn) { - list.add("Charge: " + Library.getShortNumber(getCharge(stack)) + " / " + Library.getShortNumber(maxPower)); - super.addInformation(stack, worldIn, list, flagIn); + long power = getCharge(stack); + list.add("Charge: " + getColor(power, maxPower) + Library.getShortNumber(power) + " §2/ " + Library.getShortNumber(maxPower)); + super.addInformation(stack, worldIn, list, flagIn); } @Override diff --git a/src/main/java/com/hbm/items/tool/ItemWandS.java b/src/main/java/com/hbm/items/tool/ItemWandS.java index c71640b95c..785354d42c 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandS.java +++ b/src/main/java/com/hbm/items/tool/ItemWandS.java @@ -100,7 +100,7 @@ public EnumActionResult onItemUse(EntityPlayer player, World world, BlockPos pos new ParticleAccelerator().generate(world, rand, new BlockPos(pos.getX(), up ? pos.getY()-5 : pos.getY(), pos.getZ())); break; case 4: - new Watz().generate(world, rand, new BlockPos(pos.getX(), up ? pos.getY() - 12 : pos.getY(), pos.getZ())); + new Watz().generateReactor(world, rand, new BlockPos(pos.getX(), up ? pos.getY() - 12 : pos.getY(), pos.getZ())); break; case 5: new FWatz().generateHull(world, rand, new BlockPos(pos.getX(), up ? pos.getY() - 18 : pos.getY(), pos.getZ())); diff --git a/src/main/java/com/hbm/items/weapon/GunB93.java b/src/main/java/com/hbm/items/weapon/GunB93.java index e3e0a70dc9..59d665d50d 100644 --- a/src/main/java/com/hbm/items/weapon/GunB93.java +++ b/src/main/java/com/hbm/items/weapon/GunB93.java @@ -185,7 +185,7 @@ public int getItemEnchantability() { @Override public void addInformation(ItemStack stack, World worldIn, List tooltip, ITooltipFlag flagIn) { - tooltip.add("[LEGENDARY WEAPON]"); + tooltip.add("§d§l[LEGENDARY WEAPON]"); } private static int getAnim(ItemStack stack) { diff --git a/src/main/java/com/hbm/items/weapon/GunBaleFlare.java b/src/main/java/com/hbm/items/weapon/GunBaleFlare.java index c5610f16c9..9f2d760c3b 100644 --- a/src/main/java/com/hbm/items/weapon/GunBaleFlare.java +++ b/src/main/java/com/hbm/items/weapon/GunBaleFlare.java @@ -121,10 +121,10 @@ public void addInformation(ItemStack stack, World worldIn, List list, IT list.add("These bombs were meant for artillery, but"); list.add("this makeshift launcher works just fine!"); list.add(""); - list.add("Ammo: Mk.V AMAT Shell"); + list.add("Ammo: §4Mk.V AMAT Shell"); list.add("Damage: 1000"); list.add("Creates small nuclear explosion."); list.add(""); - list.add("[LEGENDARY WEAPON]"); + list.add("§d§l[LEGENDARY WEAPON]"); } } diff --git a/src/main/java/com/hbm/items/weapon/GunBoltAction.java b/src/main/java/com/hbm/items/weapon/GunBoltAction.java index 50b10a234e..5718abbb5e 100644 --- a/src/main/java/com/hbm/items/weapon/GunBoltAction.java +++ b/src/main/java/com/hbm/items/weapon/GunBoltAction.java @@ -43,11 +43,9 @@ public GunBoltAction(String s) { this.setRegistryName(s); this.maxStackSize = 1; - if(this == ModItems.gun_bolt_action_saturnite) { - this.setMaxDamage(2500); - dmgMin = 24; - dmgMax = 36; - } + this.setMaxDamage(2500); + dmgMin = 24; + dmgMax = 36; ModItems.ALL_ITEMS.add(this); } @@ -84,8 +82,7 @@ public void onPlayerStoppedUsing(ItemStack stack, World world, EntityLivingBase entityarrow1 = new EntityBullet(world, player, 3.0F, dmgMin, dmgMax, false, false, player.getHeldItemMainhand() == stack ? EnumHand.MAIN_HAND : EnumHand.OFF_HAND); entityarrow1.setDamage(dmgMin + rand.nextInt(dmgMax - dmgMin)); - if(this == ModItems.gun_bolt_action_saturnite) - entityarrow1.fire = true; + entityarrow1.fire = true; stack.damageItem(1, player); @@ -146,27 +143,11 @@ public int getItemEnchantability() { @Override public void addInformation(ItemStack stack, World worldIn, List list, ITooltipFlag flagIn) { - /*if(this == ModItems.gun_bolt_action) { - list.add("-Star in a movie"); - list.add("-Have a laugh with a horse"); - list.add("-Ride a tipping train"); - list.add("-Lose friend to native americans"); - } - if(this == ModItems.gun_bolt_action_green) { - list.add("Floppy disks and pink, flashy orbs."); - }*/ - if(this == ModItems.gun_bolt_action_saturnite) { - list.add("Shiny shooter made from D-25A alloy."); - } + list.add("Shiny shooter made from D-25A alloy."); list.add(""); - list.add("Ammo: 12x74 Slug"); - - if(this == ModItems.gun_bolt_action_saturnite) { - list.add("Damage: 24 - 36"); - list.add("Sets enemy on fire."); - } else { - list.add("Damage: 16 - 28"); - } + list.add("Ammo: §e20 Gauge Brenneke Slug"); + list.add("Damage: 24 - 36"); + list.add("Sets enemy on fire."); } @Override @@ -260,10 +241,7 @@ public static float getTransFromAnim(ItemStack stack) { @Override public EnumRarity getRarity(ItemStack p_77613_1_) { - if(this == ModItems.gun_bolt_action_saturnite) - return EnumRarity.RARE; - - return EnumRarity.UNCOMMON; + return EnumRarity.RARE; } @Override diff --git a/src/main/java/com/hbm/items/weapon/GunBrimstone.java b/src/main/java/com/hbm/items/weapon/GunBrimstone.java index 2152f74a98..aea78aaf1c 100644 --- a/src/main/java/com/hbm/items/weapon/GunBrimstone.java +++ b/src/main/java/com/hbm/items/weapon/GunBrimstone.java @@ -79,7 +79,7 @@ public void onUsingTick(ItemStack stack, EntityLivingBase ent, int count) { @Override public void addInformation(ItemStack stack, World worldIn, List tooltip, ITooltipFlag flagIn) { - tooltip.add("[LEGENDARY WEAPON]"); + tooltip.add("§d§l[LEGENDARY WEAPON]"); } @Override diff --git a/src/main/java/com/hbm/items/weapon/GunCryolator.java b/src/main/java/com/hbm/items/weapon/GunCryolator.java index aafa1d7bcd..8ac9ddacbd 100644 --- a/src/main/java/com/hbm/items/weapon/GunCryolator.java +++ b/src/main/java/com/hbm/items/weapon/GunCryolator.java @@ -87,7 +87,7 @@ public void onUsingTick(ItemStack stack, EntityLivingBase player1, int count) { public void addInformation(ItemStack stack, World worldIn, List list, ITooltipFlag flagIn) { list.add("Ice to meet you!"); list.add(""); - list.add("Ammo: Cryolator Ammo"); + list.add("Ammo: §bCryolator Ammo"); list.add("Damage: 5"); } diff --git a/src/main/java/com/hbm/items/weapon/GunDampfmaschine.java b/src/main/java/com/hbm/items/weapon/GunDampfmaschine.java index 4bc7481f44..929fdcd0c4 100644 --- a/src/main/java/com/hbm/items/weapon/GunDampfmaschine.java +++ b/src/main/java/com/hbm/items/weapon/GunDampfmaschine.java @@ -101,10 +101,10 @@ public void addInformation(ItemStack stack, World worldIn, List list, IT list.add(""); list.add("oh sorry how did this get here i'm not good with computer can somebody tell me how i can get out of here oh fiddlesticks this is not good oh no please can anybody hear me i am afraid please for the love of god somebody get me out of here"); list.add(""); - list.add("Ammo: orang"); + list.add("Ammo: §6orang"); list.add("Damage: aaaaaaaaa"); list.add(""); - list.add("[LEGENDARY WEAPON]"); + list.add("§d§l[LEGENDARY WEAPON]"); } @Override diff --git a/src/main/java/com/hbm/items/weapon/GunDefabricator.java b/src/main/java/com/hbm/items/weapon/GunDefabricator.java index 707b7802c5..028d72cbf2 100644 --- a/src/main/java/com/hbm/items/weapon/GunDefabricator.java +++ b/src/main/java/com/hbm/items/weapon/GunDefabricator.java @@ -90,12 +90,12 @@ public void addInformation(ItemStack stack, World worldIn, List list, IT if(MainRegistry.polaroidID == 11) list.add("Did you set your alarm for volcano day?"); else - list.add("BAD WOLF"); + list.add("§4§lBAD WOLF"); list.add(""); - list.add("Ammo: Defabricator Energy Cell"); + list.add("Ammo: §cDefabricator Energy Cell"); list.add("Damage: 40 - 120"); list.add(""); - list.add("[LEGENDARY WEAPON]"); + list.add("§d§l[LEGENDARY WEAPON]"); } @Override diff --git a/src/main/java/com/hbm/items/weapon/GunEuthanasia.java b/src/main/java/com/hbm/items/weapon/GunEuthanasia.java index 4f139a6269..5fd5fa0954 100644 --- a/src/main/java/com/hbm/items/weapon/GunEuthanasia.java +++ b/src/main/java/com/hbm/items/weapon/GunEuthanasia.java @@ -93,11 +93,11 @@ public void onUsingTick(ItemStack stack, EntityLivingBase player1, int count) { public void addInformation(ItemStack stack, World worldIn, List list, ITooltipFlag flagIn) { list.add("Say hello to my little syringe gun!"); list.add(""); - list.add("Ammo: Syringe"); + list.add("Ammo: §5Syringe"); list.add("Damage: 1 - 4"); list.add("Syringes have a 20% chance to instakill the enemy."); list.add(""); - list.add("[LEGENDARY WEAPON]"); + list.add("§d§l[LEGENDARY WEAPON]"); } @Override diff --git a/src/main/java/com/hbm/items/weapon/GunHP.java b/src/main/java/com/hbm/items/weapon/GunHP.java index 58a5985eec..ce4e783210 100644 --- a/src/main/java/com/hbm/items/weapon/GunHP.java +++ b/src/main/java/com/hbm/items/weapon/GunHP.java @@ -112,10 +112,10 @@ public void onUsingTick(ItemStack stack, EntityLivingBase player1, int count) { public void addInformation(ItemStack stack, World worldIn, List list, ITooltipFlag flagIn) { list.add("Rrrrt - rrrrt - rrrrt, weeee!"); list.add(""); - list.add("Ammo: Ink Cartridge"); + list.add("Ammo: §aInk Cartridge"); list.add("Damage: 25 - 45"); list.add(""); - list.add("[LEGENDARY WEAPON]"); + list.add("§d§l[LEGENDARY WEAPON]"); } @Override diff --git a/src/main/java/com/hbm/items/weapon/GunImmolator.java b/src/main/java/com/hbm/items/weapon/GunImmolator.java index 7f69c81913..f3ef959a84 100644 --- a/src/main/java/com/hbm/items/weapon/GunImmolator.java +++ b/src/main/java/com/hbm/items/weapon/GunImmolator.java @@ -119,7 +119,7 @@ public void addInformation(ItemStack stack, World worldIn, List list, IT list.add("sneak to shoot"); list.add("plasma beams!"); list.add(""); - list.add("Ammo: Immolator Fuel"); + list.add("Ammo: §cImmolator Fuel"); list.add("Damage: 5"); list.add("Secondary Damage: 25 - 45"); } diff --git a/src/main/java/com/hbm/items/weapon/GunJack.java b/src/main/java/com/hbm/items/weapon/GunJack.java index c628fdb6df..70ca572d39 100644 --- a/src/main/java/com/hbm/items/weapon/GunJack.java +++ b/src/main/java/com/hbm/items/weapon/GunJack.java @@ -125,11 +125,11 @@ public void addInformation(ItemStack stack, World worldIn, List list, IT list.add("Two barrels? Nah."); list.add("Four barrels? Heck yes!"); list.add(""); - list.add("Ammo: Quadruple Shotgun Shells"); + list.add("Ammo: §eQuadruple Shotgun Shells"); list.add("Damage: 12 - 24"); list.add("Projectiles: 24 - 48"); list.add(""); - list.add("[LEGENDARY WEAPON]"); + list.add("§d§l[LEGENDARY WEAPON]"); } @Override diff --git a/src/main/java/com/hbm/items/weapon/GunLeverActionS.java b/src/main/java/com/hbm/items/weapon/GunLeverActionS.java index aa262c701f..6d476e34d6 100644 --- a/src/main/java/com/hbm/items/weapon/GunLeverActionS.java +++ b/src/main/java/com/hbm/items/weapon/GunLeverActionS.java @@ -156,10 +156,10 @@ public void addInformation(ItemStack stack, World worldIn, List list, IT else list.add("I hate your guts, Vee."); list.add(""); - list.add("Ammo: 12x74 Buckshot"); + list.add("Ammo: §e12x74 Buckshot"); list.add("Damage: Infinite"); list.add(""); - list.add("[LEGENDARY WEAPON]"); + list.add("§d§l[LEGENDARY WEAPON]"); } @Override diff --git a/src/main/java/com/hbm/items/weapon/GunMP.java b/src/main/java/com/hbm/items/weapon/GunMP.java index 2060c569e4..0a2f75d12a 100644 --- a/src/main/java/com/hbm/items/weapon/GunMP.java +++ b/src/main/java/com/hbm/items/weapon/GunMP.java @@ -93,10 +93,10 @@ public void addInformation(ItemStack stack, World worldIn, List list, IT list.add("whose blood is that? The former"); list.add("user's? The victim's? Both?"); list.add(""); - list.add("Ammo: Small Propellantless Machine Gun Round"); + list.add("Ammo: §eSmall Propellantless Machine Gun Round"); list.add("Damage: 100 - 150"); list.add(""); - list.add("[LEGENDARY WEAPON]"); + list.add("§d§l[LEGENDARY WEAPON]"); } @Override diff --git a/src/main/java/com/hbm/items/weapon/GunSpark.java b/src/main/java/com/hbm/items/weapon/GunSpark.java index d145c86998..7523ad2cca 100644 --- a/src/main/java/com/hbm/items/weapon/GunSpark.java +++ b/src/main/java/com/hbm/items/weapon/GunSpark.java @@ -142,9 +142,9 @@ public void addInformation(ItemStack itemstack, World world, List list, list.add("'magic does not compute'"); list.add("'aeiou'"); list.add(""); - list.add("Ammo: Electromagnetic Cartridge"); + list.add("Ammo: §bElectromagnetic Cartridge"); list.add("Projectiles explode on impact."); list.add(""); - list.add("[LEGENDARY WEAPON]"); + list.add("§d§l[LEGENDARY WEAPON]"); } } diff --git a/src/main/java/com/hbm/items/weapon/GunStinger.java b/src/main/java/com/hbm/items/weapon/GunStinger.java index db5a9c908b..5e61d74694 100644 --- a/src/main/java/com/hbm/items/weapon/GunStinger.java +++ b/src/main/java/com/hbm/items/weapon/GunStinger.java @@ -136,21 +136,21 @@ public void addInformation(ItemStack stack, World worldIn, List list, IT if(this == ModItems.gun_stinger) { list.add("Woosh, beep-beep-beep!"); list.add(""); - list.add("Ammo: Stinger Rockets"); - list.add("Projectiles target entities."); - list.add("Projectiles explode on impact."); - list.add("Alt-fire disables homing effect."); + list.add("Ammo: §eStinger Rockets"); + list.add(" Projectiles target entities."); + list.add(" Projectiles explode on impact."); + list.add(" Alt-fire disables homing effect."); } if(this == ModItems.gun_skystinger) { list.add("Oh, I get it, because of the...nyeees!"); list.add("It all makes sense now!"); list.add(""); - list.add("Ammo: Stinger Rockets"); - list.add("Projectiles target entities."); - list.add("Projectiles explode on impact."); - list.add("Alt-fire fires a second rocket for free."); + list.add("Ammo: §eStinger Rockets"); + list.add(" Projectiles target entities."); + list.add(" Projectiles explode on impact."); + list.add(" Alt-fire fires a second rocket for free."); list.add(""); - list.add("[LEGENDARY WEAPON]"); + list.add("§d§l[LEGENDARY WEAPON]"); } } diff --git a/src/main/java/com/hbm/items/weapon/GunSuicide.java b/src/main/java/com/hbm/items/weapon/GunSuicide.java index fc54e69c1f..443f1a55f8 100644 --- a/src/main/java/com/hbm/items/weapon/GunSuicide.java +++ b/src/main/java/com/hbm/items/weapon/GunSuicide.java @@ -119,7 +119,7 @@ public void addInformation(ItemStack stack, World worldIn, List list, IT list.add("I've seen things..."); list.add("...I shouldn't have seen."); list.add(""); - list.add("Ammo: Lead Bullets"); + list.add("Ammo: §eLead Bullets"); list.add("Damage: Infinite"); } diff --git a/src/main/java/com/hbm/items/weapon/GunZOMG.java b/src/main/java/com/hbm/items/weapon/GunZOMG.java index ecfe527f1c..09cebd0fb0 100644 --- a/src/main/java/com/hbm/items/weapon/GunZOMG.java +++ b/src/main/java/com/hbm/items/weapon/GunZOMG.java @@ -223,12 +223,12 @@ public void addInformation(ItemStack stack, World worldIn, List list, IT list.add("Gun not validated."); } list.add(""); - list.add("Ammo: None (Requires Validation)"); + list.add("Ammo: §5None (Requires Validation)"); list.add("Damage: 35 - 45"); list.add("Energy Damage: 10000 - 100000"); list.add("Energy projectiles destroy blocks."); list.add(""); - list.add("[LEGENDARY WEAPON]"); + list.add("§d§l[LEGENDARY WEAPON]"); } @Override diff --git a/src/main/java/com/hbm/items/weapon/ItemClip.java b/src/main/java/com/hbm/items/weapon/ItemClip.java index 98c96d7463..2f3d379f32 100644 --- a/src/main/java/com/hbm/items/weapon/ItemClip.java +++ b/src/main/java/com/hbm/items/weapon/ItemClip.java @@ -2,6 +2,7 @@ import java.util.List; +import com.hbm.items.special.ItemSimpleConsumable; import com.hbm.items.ModItems; import com.hbm.lib.Library; @@ -19,7 +20,7 @@ public ItemClip(String s) { this.setUnlocalizedName(s); this.setRegistryName(s); this.setMaxDamage(1); - + this.setMaxStackSize(32); ModItems.ALL_ITEMS.add(this); } @@ -30,369 +31,279 @@ public ActionResult onItemRightClick(World worldIn, EntityPlayer play if(stack.getCount() <= 0) stack.damageItem(5, player); + //REVOLVERS if(this == ModItems.clip_revolver_iron) { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_iron_ammo, 20))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_revolver_iron_ammo, 20), false); - } + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.gun_revolver_iron_ammo, 24)); } if(this == ModItems.clip_revolver) { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_ammo, 12))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_revolver_ammo, 12), false); - } + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.gun_revolver_ammo, 12)); } if(this == ModItems.clip_revolver_gold) { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_gold_ammo, 4))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_revolver_gold_ammo, 4), false); - } + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.gun_revolver_gold_ammo, 12)); + } + + if(this == ModItems.clip_revolver_lead) + { + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.gun_revolver_lead_ammo, 12)); } if(this == ModItems.clip_revolver_schrabidium) { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_schrabidium_ammo, 2))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_revolver_schrabidium_ammo, 2), false); - } + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.gun_revolver_schrabidium_ammo, 12)); } - - if(this == ModItems.clip_rpg) + + if(this == ModItems.clip_revolver_cursed) { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_rocket, 3))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_rpg_ammo, 3), false); - } + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.gun_revolver_cursed_ammo, 17)); } - - if(this == ModItems.clip_osipr) + + if(this == ModItems.clip_revolver_nightmare) { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_osipr_ammo, 30))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_osipr_ammo, 30), false); - } - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_osipr_ammo2, 1))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_osipr_ammo2, 1), false); - } + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.gun_revolver_nightmare_ammo, 6)); } - if(this == ModItems.clip_xvl1456) + if(this == ModItems.clip_revolver_nightmare2) { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_xvl1456_ammo, 60))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_xvl1456_ammo, 60), false); - } + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.gun_revolver_nightmare2_ammo, 6)); } - - if(this == ModItems.clip_revolver_lead) + + if(this == ModItems.clip_revolver_pip) { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_lead_ammo, 12))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_revolver_lead_ammo, 12), false); - } + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.ammo_44_pip, 6)); } - if(this == ModItems.clip_revolver_cursed) + if(this == ModItems.clip_revolver_nopip) { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_cursed_ammo, 17))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_revolver_cursed_ammo, 17), false); - } + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.ammo_44, 12)); } - + + + //EXPLOSIVES + if(this == ModItems.clip_rpg) + { + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.ammo_rocket, 6)); + } + + if(this == ModItems.clip_stinger) + { + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.gun_stinger_ammo, 6)); + } + if(this == ModItems.clip_fatman) { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_fatman_ammo, 6))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_fatman_ammo, 6), false); - } + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.ammo_nuke, 6)); } - - if(this == ModItems.clip_mp) + + if(this == ModItems.clip_mirv) { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_566_gold, 30))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_mp_ammo, 30), false); - } + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.ammo_mirv, 3)); } - + + if(this == ModItems.clip_bf) + { + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.gun_bf_ammo, 2)); + } + + + //MAGAZINES if(this == ModItems.clip_mp40) { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_9mm, 32))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_mp40_ammo, 32), false); - } + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.ammo_9mm, 32)); } - + if(this == ModItems.clip_uzi) { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_22lr, 32))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_uzi_ammo, 32), false); - } + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.ammo_22lr, 32)); } - + if(this == ModItems.clip_uboinik) { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_12gauge, 24))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_uboinik_ammo, 24), false); - } + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.ammo_12gauge, 24)); } if(this == ModItems.clip_lever_action) { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_20gauge, 24))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_lever_action_ammo, 24), false); - } + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.ammo_20gauge, 24)); } if(this == ModItems.clip_bolt_action) { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_20gauge_slug, 24))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_bolt_action_ammo, 24), false); - } - } - - if(this == ModItems.clip_mirv) - { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_mirv, 3))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_mp40_ammo, 32), false); - } + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.ammo_20gauge_slug, 24)); } + + - if(this == ModItems.clip_bf) + if(this == ModItems.clip_osipr) { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_bf_ammo, 2))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_mp40_ammo, 32), false); - } + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.gun_osipr_ammo, 30)); } - + if(this == ModItems.clip_immolator) { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_immolator_ammo, 60))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_mp40_ammo, 32), false); - } + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.gun_immolator_ammo, 64)); } if(this == ModItems.clip_cryolator) { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_cryolator_ammo, 60))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_mp40_ammo, 32), false); - } - } - - if(this == ModItems.clip_emp) - { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_emp_ammo, 6))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_mp40_ammo, 32), false); - } - } - - if(this == ModItems.clip_revolver_nightmare) - { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_nightmare_ammo, 6))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_mp40_ammo, 32), false); - } + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.gun_cryolator_ammo, 64)); } - - if(this == ModItems.clip_revolver_nightmare2) - { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_nightmare2_ammo, 6))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_mp40_ammo, 32), false); - } - } - - if(this == ModItems.clip_revolver_pip) + + if(this == ModItems.clip_mp) { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_44_pip, 6))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_mp40_ammo, 32), false); - } + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.ammo_566_gold, 40)); } - if(this == ModItems.clip_revolver_nopip) + if(this == ModItems.clip_xvl1456) { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_44, 12))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_mp40_ammo, 32), false); - } + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.gun_xvl1456_ammo, 64)); } - if(this == ModItems.clip_stinger) + if(this == ModItems.clip_emp) { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_stinger_ammo, 3))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_mp40_ammo, 32), false); - } + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.gun_emp_ammo, 6)); } if(this == ModItems.clip_jack) { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_jack_ammo, 6))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_mp40_ammo, 32), false); - } + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.gun_jack_ammo, 12)); } if(this == ModItems.clip_spark) { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_spark_ammo, 4))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_mp40_ammo, 32), false); - } + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.gun_spark_ammo, 4)); } if(this == ModItems.clip_hp) { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_hp_ammo, 8))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_mp40_ammo, 32), false); - } + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.gun_hp_ammo, 12)); } if(this == ModItems.clip_euthanasia) { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_euthanasia_ammo, 16))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_mp40_ammo, 32), false); - } + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.gun_euthanasia_ammo, 16)); } if(this == ModItems.clip_defabricator) { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_defabricator_ammo, 12))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_mp40_ammo, 32), false); - } + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.gun_defabricator_ammo, 16)); } if(this == ModItems.ammo_container) { if(Library.hasInventoryItem(player.inventory, ModItems.gun_revolver_iron)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_iron_ammo, 24)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.gun_revolver_iron_ammo, 24)); if(Library.hasInventoryItem(player.inventory, ModItems.gun_revolver)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_ammo, 12)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.gun_revolver_ammo, 12)); if(Library.hasInventoryItem(player.inventory, ModItems.gun_revolver_gold)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_gold_ammo, 4)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.gun_revolver_gold_ammo, 4)); if(Library.hasInventoryItem(player.inventory, ModItems.gun_revolver_lead)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_lead_ammo, 6)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.gun_revolver_lead_ammo, 6)); if(Library.hasInventoryItem(player.inventory, ModItems.gun_revolver_schrabidium)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_schrabidium_ammo, 2)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.gun_revolver_schrabidium_ammo, 2)); if(Library.hasInventoryItem(player.inventory, ModItems.gun_revolver_cursed)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_cursed_ammo, 8)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.gun_revolver_cursed_ammo, 8)); if(Library.hasInventoryItem(player.inventory, ModItems.gun_revolver_nightmare)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_nightmare_ammo, 6)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.gun_revolver_nightmare_ammo, 6)); if(Library.hasInventoryItem(player.inventory, ModItems.gun_revolver_nightmare2)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_nightmare2_ammo, 3)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.gun_revolver_nightmare2_ammo, 3)); if(Library.hasInventoryItem(player.inventory, ModItems.gun_revolver_pip)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_44_pip, 12)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.ammo_44_pip, 12)); if(Library.hasInventoryItem(player.inventory, ModItems.gun_revolver_nopip)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_44, 12)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.ammo_44, 12)); if(Library.hasInventoryItem(player.inventory, ModItems.gun_revolver_blackjack)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_44_bj, 12)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.ammo_44_bj, 12)); if(Library.hasInventoryItem(player.inventory, ModItems.gun_revolver_red)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_44, 12)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.ammo_44, 12)); if(Library.hasInventoryItem(player.inventory, ModItems.gun_calamity)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_50bmg, 16)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.ammo_50bmg, 16)); if(Library.hasInventoryItem(player.inventory, ModItems.gun_calamity_dual)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_50bmg, 32)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.ammo_50bmg, 32)); if(Library.hasInventoryItem(player.inventory, ModItems.gun_minigun)) { - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_5mm, 64)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_5mm, 64)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_5mm, 64)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.ammo_5mm, 64)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.ammo_5mm, 64)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.ammo_5mm, 64)); } if(Library.hasInventoryItem(player.inventory, ModItems.gun_avenger)) { - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_5mm, 64)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_5mm, 64)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_5mm, 64)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.ammo_5mm, 64)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.ammo_5mm, 64)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.ammo_5mm, 64)); } if(Library.hasInventoryItem(player.inventory, ModItems.gun_lacunae)) { - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_5mm, 64)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_5mm, 64)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_5mm, 64)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.ammo_5mm, 64)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.ammo_5mm, 64)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.ammo_5mm, 64)); } if(Library.hasInventoryItem(player.inventory, ModItems.gun_rpg)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_rocket, 3)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.ammo_rocket, 3)); if(Library.hasInventoryItem(player.inventory, ModItems.gun_stinger)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_stinger_ammo, 2)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.gun_stinger_ammo, 2)); if(Library.hasInventoryItem(player.inventory, ModItems.gun_skystinger)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_stinger_ammo, 2)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.gun_stinger_ammo, 2)); if(Library.hasInventoryItem(player.inventory, ModItems.gun_fatman)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_fatman_ammo, 2)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.gun_fatman_ammo, 2)); if(Library.hasInventoryItem(player.inventory, ModItems.gun_proto)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_fatman_ammo, 8)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.gun_fatman_ammo, 8)); if(Library.hasInventoryItem(player.inventory, ModItems.gun_mirv)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_mirv_ammo, 1)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.gun_mirv_ammo, 1)); if(Library.hasInventoryItem(player.inventory, ModItems.gun_bf)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_bf_ammo, 1)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.gun_bf_ammo, 1)); if(Library.hasInventoryItem(player.inventory, ModItems.gun_mp40)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_9mm, 32)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.ammo_9mm, 32)); if(Library.hasInventoryItem(player.inventory, ModItems.gun_uzi)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_22lr, 32)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.ammo_22lr, 32)); if(Library.hasInventoryItem(player.inventory, ModItems.gun_uzi_silencer)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_22lr, 32)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.ammo_22lr, 32)); if(Library.hasInventoryItem(player.inventory, ModItems.gun_uzi_saturnite)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_22lr, 32)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.ammo_22lr, 32)); if(Library.hasInventoryItem(player.inventory, ModItems.gun_uzi_saturnite_silencer)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_22lr, 32)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.ammo_22lr, 32)); if(Library.hasInventoryItem(player.inventory, ModItems.gun_uboinik)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_12gauge, 12)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.ammo_12gauge, 12)); if(Library.hasInventoryItem(player.inventory, ModItems.gun_lever_action)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_20gauge, 12)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.ammo_20gauge, 12)); if(Library.hasInventoryItem(player.inventory, ModItems.gun_lever_action_dark)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_20gauge, 12)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.ammo_20gauge, 12)); if(Library.hasInventoryItem(player.inventory, ModItems.gun_lever_action_sonata)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_20gauge, 1)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.ammo_20gauge, 1)); if(Library.hasInventoryItem(player.inventory, ModItems.gun_bolt_action)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_20gauge_flechette, 12)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.ammo_20gauge_flechette, 12)); if(Library.hasInventoryItem(player.inventory, ModItems.gun_bolt_action_green)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_20gauge_flechette, 12)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.ammo_20gauge_flechette, 12)); if(Library.hasInventoryItem(player.inventory, ModItems.gun_xvl1456)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_xvl1456_ammo, 40)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.gun_xvl1456_ammo, 40)); if(Library.hasInventoryItem(player.inventory, ModItems.gun_osipr)) { - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_osipr_ammo, 30)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_osipr_ammo2, 1)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.gun_osipr_ammo, 30)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.gun_osipr_ammo2, 1)); } if(Library.hasInventoryItem(player.inventory, ModItems.gun_immolator)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_immolator_ammo, 40)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.gun_immolator_ammo, 40)); if(Library.hasInventoryItem(player.inventory, ModItems.gun_cryolator)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_cryolator_ammo, 40)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.gun_cryolator_ammo, 40)); if(Library.hasInventoryItem(player.inventory, ModItems.gun_mp)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_566_gold, 34)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.ammo_566_gold, 34)); if(Library.hasInventoryItem(player.inventory, ModItems.gun_zomg)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.nugget_euphemium, 1)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.nugget_euphemium, 1)); if(Library.hasInventoryItem(player.inventory, ModItems.gun_emp)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_emp_ammo, 8)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.gun_emp_ammo, 8)); if(Library.hasInventoryItem(player.inventory, ModItems.gun_revolver_inverted)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_ammo, 1)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.gun_revolver_ammo, 1)); if(Library.hasInventoryItem(player.inventory, ModItems.gun_revolver_inverted)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_ammo, 1)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.gun_revolver_ammo, 1)); if(Library.hasInventoryItem(player.inventory, ModItems.gun_jack)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_jack_ammo, 3)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.gun_jack_ammo, 3)); if(Library.hasInventoryItem(player.inventory, ModItems.gun_spark)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_spark_ammo, 2)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.gun_spark_ammo, 2)); if(Library.hasInventoryItem(player.inventory, ModItems.gun_hp)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_hp_ammo, 6)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.gun_hp_ammo, 6)); if(Library.hasInventoryItem(player.inventory, ModItems.gun_euthanasia)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_euthanasia_ammo, 8)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.gun_euthanasia_ammo, 8)); if(Library.hasInventoryItem(player.inventory, ModItems.gun_defabricator)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_defabricator_ammo, 6)); + ItemSimpleConsumable.tryAddItem(player, new ItemStack(ModItems.gun_defabricator_ammo, 6)); } return super.onItemRightClick(worldIn, player, handIn); } diff --git a/src/main/java/com/hbm/items/weapon/ItemCustomMissile.java b/src/main/java/com/hbm/items/weapon/ItemCustomMissile.java index 5cbcdde1a5..069f291d4c 100644 --- a/src/main/java/com/hbm/items/weapon/ItemCustomMissile.java +++ b/src/main/java/com/hbm/items/weapon/ItemCustomMissile.java @@ -72,7 +72,7 @@ public void addInformation(ItemStack stack, World worldIn, List tooltip, ItemMissile thruster = (ItemMissile) Item.getItemById(readFromNBT(stack, "thruster")); tooltip.add(TextFormatting.BOLD + "Warhead: " + TextFormatting.GRAY + warhead.getWarhead((WarheadType) warhead.attributes[0])); - tooltip.add(TextFormatting.BOLD + "Strength: " + TextFormatting.GRAY + (Float) warhead.attributes[1]); + tooltip.add(TextFormatting.BOLD + "Strength: " + TextFormatting.RED + (Float) warhead.attributes[1]); tooltip.add(TextFormatting.BOLD + "Fuel Type: " + TextFormatting.GRAY + fuselage.getFuel((FuelType) fuselage.attributes[0])); tooltip.add(TextFormatting.BOLD + "Fuel amount: " + TextFormatting.GRAY + (Float) fuselage.attributes[1] + "l"); tooltip.add(TextFormatting.BOLD + "Chip inaccuracy: " + TextFormatting.GRAY + (Float) chip.attributes[0] * 100 + "%"); @@ -88,7 +88,7 @@ public void addInformation(ItemStack stack, World worldIn, List tooltip, if(stability != null) health += stability.health; - tooltip.add(TextFormatting.BOLD + "Health: " + TextFormatting.GRAY + health + "HP"); + tooltip.add(TextFormatting.BOLD + "Health: " + TextFormatting.GREEN + health + "HP"); } catch(ClassCastException x) { //Drillgon200: Why is this even necessary, JEI? return; diff --git a/src/main/java/com/hbm/items/weapon/ItemGunBase.java b/src/main/java/com/hbm/items/weapon/ItemGunBase.java index bb6ace25af..3440a46000 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGunBase.java +++ b/src/main/java/com/hbm/items/weapon/ItemGunBase.java @@ -261,6 +261,10 @@ protected void altFire(ItemStack stack, World world, EntityPlayer player, EnumHa int bullets = config.bulletsMin; for(int k = 0; k < altConfig.roundsPerCycle; k++) { + + if(!hasAmmo(stack, player, false)) + break; + if(config.bulletsMax > config.bulletsMin) bullets += world.rand.nextInt(config.bulletsMax - config.bulletsMin); @@ -268,7 +272,9 @@ protected void altFire(ItemStack stack, World world, EntityPlayer player, EnumHa spawnProjectile(world, player, stack, BulletConfigSyncingUtil.getKey(config), hand); } + useUpAmmo(player, stack, false); setItemWear(stack, getItemWear(stack) + config.wear); + player.inventoryContainer.detectAndSendChanges(); } world.playSound(null, player.posX, player.posY, player.posZ, altConfig.firingSound, SoundCategory.PLAYERS, 1.0F, altConfig.firingPitch); @@ -466,10 +472,10 @@ public void addInformation(ItemStack stack, World worldIn, List list, IT list.add("Ammo: "+ getColor(mag, mainConfig.ammoCap) + mag + " §2/ " + mainConfig.ammoCap); } else{ - list.add("Ammo: Belt"); + list.add("Ammo: §6Belt"); } - list.add("Ammo Type: " + I18n.format(ammo.getUnlocalizedName() + ".name")); + list.add("Ammo Type: §e" + I18n.format(ammo.getUnlocalizedName() + ".name")); int dura = mainConfig.durability - getItemWear(stack); @@ -487,7 +493,7 @@ public void addInformation(ItemStack stack, World worldIn, List list, IT if(!mainConfig.comment.isEmpty()) { list.add(""); for(String s : mainConfig.comment) - list.add(TextFormatting.ITALIC + s); + list.add("§6"+TextFormatting.ITALIC + s); } if(GeneralConfig.enableExtendedLogging) { diff --git a/src/main/java/com/hbm/items/weapon/ItemMissile.java b/src/main/java/com/hbm/items/weapon/ItemMissile.java index 8b846a440f..80feb7d5cc 100644 --- a/src/main/java/com/hbm/items/weapon/ItemMissile.java +++ b/src/main/java/com/hbm/items/weapon/ItemMissile.java @@ -108,9 +108,9 @@ public enum Rarity { COMMON(TextFormatting.GRAY + "Common"), UNCOMMON(TextFormatting.YELLOW + "Uncommon"), - RARE(TextFormatting.AQUA + "Rare"), - EPIC(TextFormatting.LIGHT_PURPLE + "Epic"), - LEGENDARY(TextFormatting.DARK_GREEN + "Legendary"), + RARE(TextFormatting.GREEN + "Rare"), + EPIC(TextFormatting.AQUA + "Epic"), + LEGENDARY(TextFormatting.LIGHT_PURPLE + "Legendary"), SEWS_CLOTHES_AND_SUCKS_HORSE_COCK(TextFormatting.DARK_AQUA + "Strange"); String name; @@ -197,7 +197,7 @@ public void addInformation(ItemStack stack, World worldIn, List list, IT case WARHEAD: list.add(TextFormatting.BOLD + "Size: " + TextFormatting.GRAY + getSize(bottom)); list.add(TextFormatting.BOLD + "Type: " + TextFormatting.GRAY + getWarhead((WarheadType)attributes[0])); - list.add(TextFormatting.BOLD + "Strength: " + TextFormatting.GRAY + (Float)attributes[1]); + list.add(TextFormatting.BOLD + "Strength: " + TextFormatting.RED + (Float)attributes[1]); list.add(TextFormatting.BOLD + "Weight: " + TextFormatting.GRAY + (Float)attributes[2] + "t"); break; case FUSELAGE: @@ -222,7 +222,7 @@ public void addInformation(ItemStack stack, World worldIn, List list, IT } if(type != PartType.CHIP) - list.add(TextFormatting.BOLD + "Health: " + TextFormatting.GRAY + health + "HP"); + list.add(TextFormatting.BOLD + "Health: " + TextFormatting.GREEN + health + "HP"); if(this.rarity != null) list.add(TextFormatting.BOLD + "Rarity: " + TextFormatting.GRAY + this.rarity.name); @@ -238,11 +238,11 @@ public String getSize(PartSize size) { case ANY: return "Any"; case SIZE_10: - return "1.0m"; + return "§e1.0m"; case SIZE_15: - return "1.5m"; + return "§61.5m"; case SIZE_20: - return "2.0m"; + return "§c2.0m"; default: return "None"; } diff --git a/src/main/java/com/hbm/items/weapon/WeaponizedCell.java b/src/main/java/com/hbm/items/weapon/WeaponizedCell.java index 166e85e38e..8c4bea0fb7 100644 --- a/src/main/java/com/hbm/items/weapon/WeaponizedCell.java +++ b/src/main/java/com/hbm/items/weapon/WeaponizedCell.java @@ -3,6 +3,7 @@ import java.util.List; import com.hbm.config.WeaponConfig; +import com.hbm.config.BombConfig; import com.hbm.entity.effect.EntityCloudFleijaRainbow; import com.hbm.entity.logic.EntityNukeExplosionMK3; import com.hbm.items.ModItems; @@ -29,26 +30,26 @@ public WeaponizedCell(String s) { public boolean onEntityItemUpdate(EntityItem item) { World world = item.world ; - if(item.ticksExisted > 50 * 20 || item.isBurning()) { + if(item.ticksExisted > BombConfig.riggedStarTicks || item.isBurning()) { if(!world.isRemote && WeaponConfig.dropStar) { - world.playSound(null, item.posX, item.posY, item.posZ, SoundEvents.ENTITY_GENERIC_EXPLODE, SoundCategory.AMBIENT, 100.0f, world.rand.nextFloat() * 0.1F + 0.9F); + world.playSound(null, item.posX, item.posY, item.posZ, SoundEvents.ENTITY_GENERIC_EXPLODE, SoundCategory.AMBIENT, BombConfig.riggedStarRange, world.rand.nextFloat() * 0.1F + 0.9F); EntityNukeExplosionMK3 exp = new EntityNukeExplosionMK3(world); exp.posX = item.posX; exp.posY = item.posY; exp.posZ = item.posZ; if(!EntityNukeExplosionMK3.isJammed(world, exp)){ - exp.destructionRange = 100; + exp.destructionRange = BombConfig.riggedStarRange; exp.speed = 25; exp.coefficient = 1.0F; exp.waste = false; world.spawnEntity(exp); - EntityCloudFleijaRainbow cloud = new EntityCloudFleijaRainbow(world, 100); + EntityCloudFleijaRainbow cloud = new EntityCloudFleijaRainbow(world, BombConfig.riggedStarRange); cloud.posX = item.posX; cloud.posY = item.posY; cloud.posZ = item.posZ; @@ -59,12 +60,12 @@ public boolean onEntityItemUpdate(EntityItem item) { item.setDead(); } - int randy = (50 * 20) - item.ticksExisted; + int randy = (BombConfig.riggedStarTicks) - item.ticksExisted; if(randy < 1) randy = 1; - if(item.world.rand.nextInt(50 * 20) >= randy) + if(item.world.rand.nextInt(BombConfig.riggedStarTicks) >= randy) world.spawnParticle(EnumParticleTypes.REDSTONE, item.posX + item.world.rand.nextGaussian() * item.width / 2, item.posY + item.world.rand.nextGaussian() * item.height, item.posZ + item.world.rand.nextGaussian() * item.width / 2, 0.0, 0.0, 0.0); else world.spawnParticle(EnumParticleTypes.SMOKE_NORMAL, item.posX + item.world.rand.nextGaussian() * item.width / 2, item.posY + item.world.rand.nextGaussian() * item.height, item.posZ + item.world.rand.nextGaussian() * item.width / 2, 0.0, 0.0, 0.0); @@ -79,5 +80,8 @@ public boolean onEntityItemUpdate(EntityItem item) { public void addInformation(ItemStack stack, World worldIn, List tooltip, ITooltipFlag flagIn) { tooltip.add("A charged energy cell, rigged to explode"); tooltip.add("when left on the floor for too long."); + tooltip.add("§4[Rigged Star]"); + tooltip.add(" §eRadius: "+BombConfig.riggedStarRange); + tooltip.add(" §8Fuse: "+(int)(BombConfig.riggedStarTicks*0.05)+"s"); } } diff --git a/src/main/java/com/hbm/lib/HbmChestContents.java b/src/main/java/com/hbm/lib/HbmChestContents.java index 9cafc492c8..39c5d3a77e 100644 --- a/src/main/java/com/hbm/lib/HbmChestContents.java +++ b/src/main/java/com/hbm/lib/HbmChestContents.java @@ -102,6 +102,9 @@ public class HbmChestContents { new WeightedRandomChestContentFrom1710(ModItems.battery_advanced, 0, 1, 1, 3), new WeightedRandomChestContentFrom1710(ModItems.battery_advanced_cell, 0, 1, 1, 2), new WeightedRandomChestContentFrom1710(ModItems.battery_schrabidium, 0, 1, 1, 1), + new WeightedRandomChestContentFrom1710(ModItems.loot_10, 0, 1, 1, 3), + new WeightedRandomChestContentFrom1710(ModItems.loot_15, 0, 1, 1, 2), + new WeightedRandomChestContentFrom1710(ModItems.loot_misc, 0, 1, 1, 1), new WeightedRandomChestContentFrom1710(ModItems.syringe_awesome, 0, 1, 1, 1), new WeightedRandomChestContentFrom1710(ModItems.crate_caller, 0, 1, 1, 3), new WeightedRandomChestContentFrom1710(ModItems.fusion_core, 0, 1, 1, 4), @@ -209,6 +212,9 @@ public class HbmChestContents { new WeightedRandomChestContentFrom1710(ModItems.fuel_tank_small, 0, 1, 1, 2), new WeightedRandomChestContentFrom1710(ModItems.warhead_mirvlet, 0, 1, 1, 1), new WeightedRandomChestContentFrom1710(ModItems.warhead_nuclear, 0, 1, 1, 1), + new WeightedRandomChestContentFrom1710(ModItems.loot_10, 0, 1, 1, 3), + new WeightedRandomChestContentFrom1710(ModItems.loot_15, 0, 1, 1, 2), + new WeightedRandomChestContentFrom1710(ModItems.loot_misc, 0, 1, 1, 1), new WeightedRandomChestContentFrom1710(ItemBombCaller.getStack(EnumCallerType.CARPET), 1, 1, 1), new WeightedRandomChestContentFrom1710(ItemBombCaller.getStack(EnumCallerType.ORANGE), 1, 1, 1) }; @@ -308,6 +314,9 @@ public class HbmChestContents { new WeightedRandomChestContentFrom1710(ModItems.weaponized_starblaster_cell, 0, 1, 1, 1), new WeightedRandomChestContentFrom1710(ModItems.warhead_mirv, 0, 1, 1, 1), new WeightedRandomChestContentFrom1710(ItemBattery.getFullBattery(ModItems.battery_schrabidium_cell), 1, 1, 1), + new WeightedRandomChestContentFrom1710(ModItems.loot_10, 0, 1, 1, 3), + new WeightedRandomChestContentFrom1710(ModItems.loot_15, 0, 1, 1, 2), + new WeightedRandomChestContentFrom1710(ModItems.loot_misc, 0, 1, 1, 1), new WeightedRandomChestContentFrom1710(ModItems.powder_nitan_mix, 0, 16, 32, 1) }; /** diff --git a/src/main/java/com/hbm/lib/HbmWorldGen.java b/src/main/java/com/hbm/lib/HbmWorldGen.java index 7d45344cb4..709f643f54 100644 --- a/src/main/java/com/hbm/lib/HbmWorldGen.java +++ b/src/main/java/com/hbm/lib/HbmWorldGen.java @@ -154,9 +154,11 @@ public void generateOres(World world, Random rand, int i, int j){ DungeonToolbox.generateOre(world, rand, i, j, parseInt(CompatibilityConfig.asbestosSpawn.get(dimID)), 4, 16, 16, ModBlocks.ore_asbestos); DungeonToolbox.generateOre(world, rand, i, j, parseInt(CompatibilityConfig.cinnebarSpawn.get(dimID)), 4, 8, 16, ModBlocks.ore_cinnebar); DungeonToolbox.generateOre(world, rand, i, j, parseInt(CompatibilityConfig.cobaltSpawn.get(dimID)), 4, 4, 8, ModBlocks.ore_cobalt); - DungeonToolbox.generateOre(world, rand, i, j, parseInt(CompatibilityConfig.ironClusterSpawn.get(dimID)), 6, 5, 50, ModBlocks.cluster_iron); - DungeonToolbox.generateOre(world, rand, i, j, parseInt(CompatibilityConfig.titaniumClusterSpawn.get(dimID)), 6, 5, 30, ModBlocks.cluster_titanium); - DungeonToolbox.generateOre(world, rand, i, j, parseInt(CompatibilityConfig.aluminiumClusterSpawn.get(dimID)), 6, 5, 40, ModBlocks.cluster_aluminium); + + DungeonToolbox.generateOre(world, rand, i, j, parseInt(CompatibilityConfig.ironClusterSpawn.get(dimID)), 6, 15, 45, ModBlocks.cluster_iron); + DungeonToolbox.generateOre(world, rand, i, j, parseInt(CompatibilityConfig.titaniumClusterSpawn.get(dimID)), 6, 15, 30, ModBlocks.cluster_titanium); + DungeonToolbox.generateOre(world, rand, i, j, parseInt(CompatibilityConfig.aluminiumClusterSpawn.get(dimID)), 6, 15, 35, ModBlocks.cluster_aluminium); + DungeonToolbox.generateOre(world, rand, i, j, parseInt(CompatibilityConfig.copperClusterSpawn.get(dimID)), 6, 15, 20, ModBlocks.cluster_copper); //Special ores DungeonToolbox.generateOre(world, rand, i, j, parseInt(CompatibilityConfig.reiiumSpawn.get(dimID)), 2, 14, 18, ModBlocks.ore_reiium); DungeonToolbox.generateOre(world, rand, i, j, parseInt(CompatibilityConfig.weidaniumSpawn.get(dimID)), 2, 14, 18, ModBlocks.ore_weidanium); @@ -412,7 +414,6 @@ private void generateStructures(World world, Random rand, int i, int j) { generateSellafieldPool(world, rand, i, j, dimID); generateBedrockOil(world, rand, i, j, dimID); generateBedrockOre(world, rand, i, j, dimID); - generateSellafieldBlocks(world, rand, i, j, dimID); if (GeneralConfig.enableMines){ int dimMineFreq = parseInt(CompatibilityConfig.minefreq.get(dimID)); @@ -671,6 +672,8 @@ private void generateStructures(World world, Random rand, int i, int j) { } } } + + generateSellafieldBlocks(world, rand, i, j, dimID); } if(rand.nextInt(25) == 0) { diff --git a/src/main/java/com/hbm/lib/Library.java b/src/main/java/com/hbm/lib/Library.java index add3813a9d..22a5db195b 100644 --- a/src/main/java/com/hbm/lib/Library.java +++ b/src/main/java/com/hbm/lib/Library.java @@ -31,6 +31,7 @@ import api.hbm.energy.IEnergyConnector; import api.hbm.energy.IEnergyConnectorBlock; import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.block.Block; import net.minecraft.block.BlockDoor; import net.minecraft.block.state.IBlockState; @@ -202,8 +203,17 @@ public static float roundFloat(double number, int decimal){ } public static int getColorFromItemStack(ItemStack stack){ - ResourceLocation path = new ResourceLocation(Minecraft.getMinecraft().getRenderItem().getItemModelMesher().getParticleIcon(stack.getItem(), stack.getMetadata()).getIconName()+".png"); - return getColorFromResourceLocation(new ResourceLocation(path.getResourceDomain(), "textures/"+path.getResourcePath())); + ResourceLocation path = null; + ResourceLocation actualPath = null; + TextureAtlasSprite sprite = Minecraft.getMinecraft().getRenderItem().getItemModelMesher().getParticleIcon(stack.getItem(), stack.getMetadata()); + if(sprite != null){ + path = new ResourceLocation(sprite.getIconName()+".png"); + actualPath = new ResourceLocation(path.getResourceDomain(), "textures/"+path.getResourcePath()); + } else { + path = new ResourceLocation(stack.getItem().getRegistryName()+".png"); + actualPath = new ResourceLocation(path.getResourceDomain(), "textures/items/"+path.getResourcePath()); + } + return getColorFromResourceLocation(actualPath); } public static int getColorFromResourceLocation(ResourceLocation r){ @@ -1038,5 +1048,4 @@ public static Vec3d normalFromRayTrace(RayTraceResult r) { public static Explosion explosionDummy(World w, double x, double y, double z){ return new Explosion(w, null, x, y, z, 1000, false, false); } - } diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index e104c2d4d4..aec6e61798 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,8 +3,8 @@ public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech - Extended Edition"; - public static final String VERSION = "NTM-Extended-1.12.2-1.9.7"; - public static final String CHANGELOG = "§d§l[BEDROCK ORES]$§aAdded Bedrock Ores$§aAdded Excavator$§aAdded 4 Fluids$§aAdded new Gas Flare$§aAdded Blast Furnace Extension$§aAdded Nuclear Blast Furnace$§aAdded Mixer and UU machine$§aAdded Deuterium Extractor$§aAdded Deuterium Tower$§aAdded Borax, Cadmium, Ferrouranium$§aAdded Partial RBMK Meltdowns$§aAdded fluid tooltip to fluid icons$§aAdded euphemium capacitor$§aAdded presto and presto triplet log$§aAdded Depth Nether Nitanium Ore$§aAdded Baleonitite$§aAdded Radon Gas Mask Filter$§aAdded Turret ammo gui display$§aAdded Radioisotope Thermal Heater$§aAdded rad resistant fluid ducts and cables$§aAdded 50 More things$§bChanged asbestos blocks to emit asbestos gas$§bChanged recipes of DNT batteries to be more balanced$§bChanged early game nuclear fuel to last twice as long$§bChanged RBMK fuel melting points to be higher$§bChanged mining level of pickaxes to be more balanced$§bChanged toxic items to be preventable using gas mask with nerve agent filter at low toxicities and requiring also a hazmat at higher toxicity levels$§bChanged Contaminating drops to not radiate if on clean blocks$§bChanged 42 More things$§eFixed Chunk Radiation$§eFixed Nuclear Transmutation crashes$§eFixed Chemfactory$§eFixed Jetpack controls$§eFixed Bathwater mod not working$§eFixed 71 More distinct bugs"; + public static final String VERSION = "NTM-Extended-1.12.2-1.9.8"; + public static final String CHANGELOG = "§§aAdded Custom Nuke Solinium, Euphemium Rod$§aAdded configurable max values to the custom nuke$§aAdded Chargers and DNT Drill$§aAdded Radresistant 2x1 Door$§aAdded neoveline, coke, lignite, solid fuel, and presto log blocks$§aAdded deco block uncrafting$§aAdded more colors to item tooltips$§bChanged ammo clips to be craftable$§bChanged factory speed and mechanics$§bChanged gas to disappear faster$§bChanged bedrock ore recipe balance$§bChanged laser rendering$§eFixed tool abilities break batteries and crates$§eFixed factory connection issue$§eFixed fiberglass recipe$§eFixed RBMK Melting down below 1.5 k°C"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 82ef9d1d4a..c492d9da7b 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -822,6 +822,7 @@ public void registerRenderInfo() ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPlasmaStruct.class, new RenderPlasmaMultiblock()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineLargeTurbine.class, new RenderBigTurbine()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineReactor.class, new RenderBreeder()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCharger.class, new RenderCharger()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySlidingBlastDoor.class, new RenderSlidingBlastDoor()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityKeypadBase.class, new RenderKeypadBase()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySlidingBlastDoorKeypad.class, new RenderKeypadBase()); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index c953a2de67..8bb9f7ff0e 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -120,7 +120,8 @@ public static void addCrafting(){ addShapelessAuto(new ItemStack(ModBlocks.block_waste_painted, 1), new Object[] { "dyeYellow", ModBlocks.block_waste }); addRecipeAuto(new ItemStack(ModBlocks.field_disturber), new Object[] { "ABA", "CDC", "ABA", 'A', STAR.ingot(), 'B', ModItems.circuit_bismuth, 'C', ModBlocks.hadron_coil_magtung, 'D', ModItems.pellet_rtg_gold}); - + addRecipeAuto(new ItemStack(Blocks.TNT, 4), new Object[] { " S ", "S#S", " S ", '#', ModItems.ball_tnt, 'S', "sand" }); + addRecipeAuto(new ItemStack(ModBlocks.block_aluminium, 1), new Object[] { "###", "###", "###", '#', AL.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.block_copper, 1), new Object[] { "###", "###", "###", '#', CU.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.block_fluorite, 1), new Object[] { "###", "###", "###", '#', F.dust() }); @@ -154,6 +155,7 @@ public static void addCrafting(){ addRecipeAuto(new ItemStack(ModBlocks.block_dura_steel, 1), new Object[] { "###", "###", "###", '#', DURA.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.block_saturnite, 1), new Object[] { "###", "###", "###", '#', BIGMT.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.block_ra226, 1), new Object[] { "###", "###", "###", '#', RA226.ingot() }); + addRecipeAuto(new ItemStack(ModBlocks.block_radspice, 1), new Object[] { "###", "###", "###", '#', ModItems.ingot_radspice }); addRecipeAuto(new ItemStack(ModBlocks.block_polymer, 1), new Object[] { "###", "###", "###", '#', POLYMER.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.block_bakelite, 1), new Object[] { "###", "###", "###", '#', BAKELITE.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.block_rubber, 1), new Object[] { "###", "###", "###", '#', RUBBER.ingot() }); @@ -177,6 +179,40 @@ public static void addCrafting(){ addShapelessAuto(new ItemStack(ModItems.ingot_hes, 1), new Object[] { SA326.nugget(), SA326.nugget(), SA326.nugget(), SA326.nugget(), SA326.nugget(), NP237.nugget(), NP237.nugget(), BE.nugget(), BE.nugget() }); addShapelessAuto(new ItemStack(ModItems.ingot_les, 1), new Object[] { SA326.nugget(), NP237.nugget(), NP237.nugget(), NP237.nugget(), NP237.nugget(), BE.nugget(), BE.nugget(), BE.nugget(), BE.nugget() }); + //AMMO CLIP UNCRAFTING + addShapelessAuto(new ItemStack(ModItems.gun_revolver_iron_ammo, 24), new Object[] { new ItemStack(ModItems.clip_revolver_iron) }); + addShapelessAuto(new ItemStack(ModItems.gun_revolver_ammo, 12), new Object[] { new ItemStack(ModItems.clip_revolver) }); + addShapelessAuto(new ItemStack(ModItems.gun_revolver_gold_ammo, 12), new Object[] { new ItemStack(ModItems.clip_revolver_gold) }); + addShapelessAuto(new ItemStack(ModItems.gun_revolver_lead_ammo, 12), new Object[] { new ItemStack(ModItems.clip_revolver_lead) }); + addShapelessAuto(new ItemStack(ModItems.gun_revolver_schrabidium_ammo, 12), new Object[] { new ItemStack(ModItems.clip_revolver_schrabidium) }); + addShapelessAuto(new ItemStack(ModItems.gun_revolver_cursed_ammo, 17), new Object[] { new ItemStack(ModItems.clip_revolver_cursed) }); + addShapelessAuto(new ItemStack(ModItems.gun_revolver_nightmare_ammo, 6), new Object[] { new ItemStack(ModItems.clip_revolver_nightmare) }); + addShapelessAuto(new ItemStack(ModItems.gun_revolver_nightmare2_ammo, 6), new Object[] { new ItemStack(ModItems.clip_revolver_nightmare2) }); + addShapelessAuto(new ItemStack(ModItems.ammo_44_pip, 6), new Object[] { new ItemStack(ModItems.clip_revolver_pip) }); + addShapelessAuto(new ItemStack(ModItems.ammo_44, 12), new Object[] { new ItemStack(ModItems.clip_revolver_nopip) }); + addShapelessAuto(new ItemStack(ModItems.ammo_rocket, 6), new Object[] { new ItemStack(ModItems.clip_rpg) }); + addShapelessAuto(new ItemStack(ModItems.gun_stinger_ammo, 6), new Object[] { new ItemStack(ModItems.clip_stinger) }); + addShapelessAuto(new ItemStack(ModItems.ammo_nuke, 6), new Object[] { new ItemStack(ModItems.clip_fatman) }); + addShapelessAuto(new ItemStack(ModItems.ammo_mirv, 3), new Object[] { new ItemStack(ModItems.clip_mirv) }); + addShapelessAuto(new ItemStack(ModItems.gun_bf_ammo, 2), new Object[] { new ItemStack(ModItems.clip_bf) }); + addShapelessAuto(new ItemStack(ModItems.ammo_9mm, 32), new Object[] { new ItemStack(ModItems.clip_mp40) }); + addShapelessAuto(new ItemStack(ModItems.ammo_22lr, 32), new Object[] { new ItemStack(ModItems.clip_uzi) }); + addShapelessAuto(new ItemStack(ModItems.ammo_12gauge, 24), new Object[] { new ItemStack(ModItems.clip_uboinik) }); + addShapelessAuto(new ItemStack(ModItems.ammo_20gauge, 24), new Object[] { new ItemStack(ModItems.clip_lever_action) }); + addShapelessAuto(new ItemStack(ModItems.ammo_20gauge_slug, 24), new Object[] { new ItemStack(ModItems.clip_bolt_action) }); + addShapelessAuto(new ItemStack(ModItems.gun_osipr_ammo, 30), new Object[] { new ItemStack(ModItems.clip_osipr) }); + addShapelessAuto(new ItemStack(ModItems.gun_immolator_ammo, 64), new Object[] { new ItemStack(ModItems.clip_immolator) }); + addShapelessAuto(new ItemStack(ModItems.gun_cryolator_ammo, 64), new Object[] { new ItemStack(ModItems.clip_cryolator) }); + addShapelessAuto(new ItemStack(ModItems.ammo_566_gold, 40), new Object[] { new ItemStack(ModItems.clip_mp) }); + addShapelessAuto(new ItemStack(ModItems.gun_xvl1456_ammo, 64), new Object[] { new ItemStack(ModItems.clip_xvl1456) }); + addShapelessAuto(new ItemStack(ModItems.gun_emp_ammo, 6), new Object[] { new ItemStack(ModItems.clip_emp) }); + addShapelessAuto(new ItemStack(ModItems.gun_jack_ammo, 12), new Object[] { new ItemStack(ModItems.clip_jack) }); + addShapelessAuto(new ItemStack(ModItems.gun_spark_ammo, 4), new Object[] { new ItemStack(ModItems.clip_spark) }); + addShapelessAuto(new ItemStack(ModItems.gun_hp_ammo, 12), new Object[] { new ItemStack(ModItems.clip_hp) }); + addShapelessAuto(new ItemStack(ModItems.gun_euthanasia_ammo, 16), new Object[] { new ItemStack(ModItems.clip_euthanasia) }); + addShapelessAuto(new ItemStack(ModItems.gun_defabricator_ammo, 16), new Object[] { new ItemStack(ModItems.clip_defabricator) }); + + addRecipeAuto(new ItemStack(ModItems.ingot_copper, 9), new Object[] { "#", '#', Item.getItemFromBlock(ModBlocks.block_copper) }); addRecipeAuto(new ItemStack(ModItems.fluorite, 9), new Object[] { "#", '#', Item.getItemFromBlock(ModBlocks.block_fluorite) }); addRecipeAuto(new ItemStack(ModItems.niter, 9), new Object[] { "#", '#', Item.getItemFromBlock(ModBlocks.block_niter) }); @@ -207,6 +243,7 @@ public static void addCrafting(){ addRecipeAuto(new ItemStack(ModItems.ingot_dura_steel, 9), new Object[] { "#", '#', Item.getItemFromBlock(ModBlocks.block_dura_steel) }); addRecipeAuto(new ItemStack(ModItems.ingot_saturnite, 9), new Object[] { "#", '#', Item.getItemFromBlock(ModBlocks.block_saturnite) }); addRecipeAuto(new ItemStack(ModItems.ingot_ra226, 9), new Object[] { "#", '#', Item.getItemFromBlock(ModBlocks.block_ra226) }); + addRecipeAuto(new ItemStack(ModItems.ingot_radspice, 9), new Object[] { "#", '#', Item.getItemFromBlock(ModBlocks.block_radspice) }); addRecipeAuto(new ItemStack(ModItems.ingot_polymer, 9), new Object[] { "#", '#', Item.getItemFromBlock(ModBlocks.block_polymer) }); addRecipeAuto(new ItemStack(ModItems.ingot_bakelite, 9), new Object[] { "#", '#', Item.getItemFromBlock(ModBlocks.block_bakelite) }); addRecipeAuto(new ItemStack(ModItems.ingot_rubber, 9), new Object[] { "#", '#', Item.getItemFromBlock(ModBlocks.block_rubber) }); @@ -557,7 +594,7 @@ public static void addCrafting(){ addShapelessAuto(new ItemStack(ModItems.biomass, 4), new Object[] { Items.CARROT, Items.CARROT, Items.CARROT, Items.CARROT, Items.CARROT, Items.CARROT, Items.CARROT, Items.CARROT, Items.CARROT }); addShapelessAuto(new ItemStack(ModItems.biomass, 4), new Object[] { Items.POTATO, Items.POTATO, Items.POTATO, Items.POTATO, Items.POTATO, Items.POTATO, Items.POTATO, Items.POTATO, Items.POTATO }); addShapelessAuto(new ItemStack(ModItems.biomass, 4), new Object[] { Items.POISONOUS_POTATO, Items.POISONOUS_POTATO, Items.POISONOUS_POTATO, Items.POISONOUS_POTATO, Items.POISONOUS_POTATO, Items.POISONOUS_POTATO, Items.POISONOUS_POTATO, Items.POISONOUS_POTATO, Items.POISONOUS_POTATO }); - addShapelessAuto(new ItemStack(ModItems.biomass, 4), new Object[] { Items.POTATO, Items.POTATO, Items.POTATO, Items.POTATO, Items.POTATO, Items.POTATO, Items.POTATO, Items.POTATO, Items.POTATO }); + addShapelessAuto(new ItemStack(ModItems.biomass, 4), new Object[] { Items.BEETROOT, Items.BEETROOT, Items.BEETROOT, Items.BEETROOT, Items.BEETROOT, Items.BEETROOT, Items.BEETROOT }); addShapelessAuto(new ItemStack(ModItems.biomass, 4), new Object[] { "treeSapling", "treeSapling", "treeSapling", "treeSapling", "treeSapling", "treeSapling", "treeSapling" }); addShapelessAuto(new ItemStack(ModItems.biomass, 4), new Object[] { "treeLeaves", "treeLeaves", "treeLeaves", "treeLeaves", "treeLeaves" }); addShapelessAuto(new ItemStack(ModItems.biomass, 8), new Object[] { Blocks.PUMPKIN, Blocks.PUMPKIN, Blocks.PUMPKIN, Blocks.PUMPKIN, Blocks.PUMPKIN, Blocks.PUMPKIN }); @@ -567,6 +604,7 @@ public static void addCrafting(){ addShapelessAuto(new ItemStack(ModItems.biomass, 1), new Object[] { Items.WHEAT_SEEDS, Items.WHEAT_SEEDS, Items.WHEAT_SEEDS, Items.WHEAT_SEEDS, Items.WHEAT_SEEDS, Items.WHEAT_SEEDS, Items.WHEAT_SEEDS, Items.WHEAT_SEEDS, Items.WHEAT_SEEDS }); addShapelessAuto(new ItemStack(ModItems.biomass, 2), new Object[] { Items.PUMPKIN_SEEDS, Items.PUMPKIN_SEEDS, Items.PUMPKIN_SEEDS, Items.PUMPKIN_SEEDS, Items.PUMPKIN_SEEDS, Items.PUMPKIN_SEEDS, Items.PUMPKIN_SEEDS, Items.PUMPKIN_SEEDS, Items.PUMPKIN_SEEDS }); addShapelessAuto(new ItemStack(ModItems.biomass, 2), new Object[] { Items.MELON_SEEDS, Items.MELON_SEEDS, Items.MELON_SEEDS, Items.MELON_SEEDS, Items.MELON_SEEDS, Items.MELON_SEEDS, Items.MELON_SEEDS, Items.MELON_SEEDS, Items.MELON_SEEDS }); + addShapelessAuto(new ItemStack(ModItems.biomass, 2), new Object[] { Items.BEETROOT_SEEDS, Items.BEETROOT_SEEDS, Items.BEETROOT_SEEDS, Items.BEETROOT_SEEDS, Items.BEETROOT_SEEDS, Items.BEETROOT_SEEDS, Items.BEETROOT_SEEDS, Items.BEETROOT_SEEDS, Items.BEETROOT_SEEDS }); addShapelessAuto(new ItemStack(ModBlocks.deco_aluminium), new Object[] { AL.ingot(), ModBlocks.steel_scaffold }); addShapelessAuto(new ItemStack(ModBlocks.deco_beryllium), new Object[] { BE.ingot(), ModBlocks.steel_scaffold }); @@ -681,9 +719,9 @@ public static void addCrafting(){ addRecipeAuto(new ItemStack(ModBlocks.factory_titanium_furnace, 1), new Object[] { "HMH", "MFM", "HMH", 'H', Item.getItemFromBlock(ModBlocks.factory_titanium_hull), 'M', ModItems.motor, 'F', Item.getItemFromBlock(Blocks.FURNACE) }); addRecipeAuto(new ItemStack(ModBlocks.factory_titanium_conductor, 1), new Object[] { "SWS", "FFF", "SWS", 'S', TI.ingot(), 'W', Item.getItemFromBlock(ModBlocks.red_wire_coated), 'F', ModItems.fuse }); addRecipeAuto(new ItemStack(ModBlocks.factory_titanium_core, 1), new Object[] { "HPH", "PCP", "HPH", 'H', Item.getItemFromBlock(ModBlocks.factory_titanium_hull), 'C', ModItems.circuit_aluminium, 'P', Item.getItemFromBlock(Blocks.PISTON) }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.factory_core_titanium), new Object[] { "BRB", "RHR", "BRB", 'B', ItemBattery.getEmptyBattery(ModItems.battery_generic), 'R', Item.getItemFromBlock(Blocks.REDSTONE_BLOCK), 'H', Item.getItemFromBlock(ModBlocks.factory_titanium_hull) }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.factory_core_advanced), new Object[] { "BLB", "SHS", "BLB", 'B', ItemBattery.getEmptyBattery(ModItems.battery_advanced), 'S', S.block(), 'L', PB.block(), 'H', Item.getItemFromBlock(ModBlocks.factory_advanced_hull) }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.factory_core_advanced), new Object[] { "BSB", "LHL", "BSB", 'B', ItemBattery.getEmptyBattery(ModItems.battery_advanced), 'S', S.block(), 'L', PB.block(), 'H', Item.getItemFromBlock(ModBlocks.factory_advanced_hull) }); + addRecipeAuto(new ItemStack(ModItems.factory_core_titanium, 1), new Object[] { "BRB", "RHR", "BRB", 'B', ItemBattery.getEmptyBattery(ModItems.battery_generic), 'R', Item.getItemFromBlock(Blocks.REDSTONE_BLOCK), 'H', Item.getItemFromBlock(ModBlocks.factory_titanium_hull) }); + addRecipeAuto(new ItemStack(ModItems.factory_core_advanced, 1), new Object[] { "BLB", "SHS", "BLB", 'B', ItemBattery.getEmptyBattery(ModItems.battery_advanced), 'S', S.block(), 'L', PB.block(), 'H', Item.getItemFromBlock(ModBlocks.factory_advanced_hull) }); + addRecipeAuto(new ItemStack(ModItems.factory_core_advanced, 1), new Object[] { "BSB", "LHL", "BSB", 'B', ItemBattery.getEmptyBattery(ModItems.battery_advanced), 'S', S.block(), 'L', PB.block(), 'H', Item.getItemFromBlock(ModBlocks.factory_advanced_hull) }); addRecipeAuto(new ItemStack(ModItems.arc_electrode, 1), new Object[] { "C", "T", "C", 'C', COAL.dust(), 'T', ModItems.bolt_tungsten }); addRecipeAuto(new ItemStack(ModItems.arc_electrode_desh, 1), new Object[] { "C", "T", "C", 'C', DESH.dust(), 'T', ModItems.arc_electrode }); @@ -936,7 +974,9 @@ public static void addCrafting(){ addRecipeAuto(new ItemStack(ModItems.gun_immolator, 1), new Object[] { "WCC", "PMT", "WAA", 'W', ModItems.wire_gold, 'C', CU.plate(), 'P', ALLOY.plate(), 'M', ModItems.mechanism_launcher_1, 'T', ModItems.tank_steel, 'A', STEEL.plate() }); addRecipeAuto(new ItemStack(ModItems.gun_immolator_ammo, 16), new Object[] { "SPS", "PCP", "SPS", 'S', STEEL.plate(), 'C', COAL.dust(), 'P',P_RED.dust() }); addRecipeAuto(new ItemStack(ModItems.gun_immolator_ammo, 16), new Object[] { " F ", "SFS", " F ", 'S', STEEL.plate(), 'F', new IngredientContainsTag(ItemFluidCanister.getFullCanister(ModForgeFluids.diesel)) }); + addRecipeAuto(new ItemStack(ModItems.gun_immolator_ammo, 16), new Object[] { " F ", "SFS", " F ", 'S', STEEL.plate(), 'F', new IngredientContainsTag(ItemFluidCanister.getFullCanister(ModForgeFluids.kerosene)) }); addRecipeAuto(new ItemStack(ModItems.gun_immolator_ammo, 24), new Object[] { " F ", "SFS", " F ", 'S', STEEL.plate(), 'F', ModItems.canister_napalm }); + addRecipeAuto(new ItemStack(ModItems.gun_immolator_ammo, 32), new Object[] { " F ", "SFS", " F ", 'S', STEEL.plate(), 'F', new IngredientContainsTag(ItemFluidCanister.getFullCanister(ModForgeFluids.nitan)) }); addRecipeAuto(new ItemStack(ModItems.gun_cryolator, 1), new Object[] { "SSS", "IWL", "LMI", 'S', STEEL.plate(), 'I', IRON.plate(), 'L', Items.LEATHER, 'M', ModItems.mechanism_launcher_1, 'W', ModItems.wire_aluminium }); addRecipeAuto(new ItemStack(ModItems.gun_cryolator_ammo, 16), new Object[] { "SPS", "PCP", "SPS", 'S', STEEL.plate(), 'C', KNO.dust(), 'P', Items.SNOWBALL }); addRecipeAuto(new ItemStack(ModItems.gun_cryolator_ammo, 16), new Object[] { " F ", "SFS", " F ", 'S', STEEL.plate(), 'F', ModItems.powder_ice }); @@ -966,6 +1006,7 @@ public static void addCrafting(){ addRecipeAuto(new ItemStack(ModItems.gun_uzi_saturnite, 1), new Object[] { "SMS", " PB", " P ", 'S', BIGMT.ingot(), 'M', ModItems.mechanism_rifle_2, 'P', BIGMT.plate(), 'B', ModItems.bolt_tungsten }); addRecipeAuto(new ItemStack(ModItems.gun_uzi_saturnite_silencer, 1), new Object[] { "P ", " P ", " U", 'P', ANY_PLASTIC.ingot(), 'U', ModItems.gun_uzi_saturnite }); addRecipeAuto(new ItemStack(ModItems.gun_bolter, 1), new Object[] { "SSM", "PIP", " I ", 'S', BIGMT.plate(), 'I', BIGMT.ingot(), 'M', ModItems.mechanism_special, 'P', ANY_PLASTIC.ingot() }); + addRecipeAuto(new ItemStack(ModItems.gun_vortex, 1), new Object[] { "AS ", "SIP", " SC", 'S', ModItems.plate_armor_lunar, 'I', ModItems.gun_xvl1456, 'A', ModItems.levitation_unit, 'P', ModItems.circuit_tantalium, 'C', ModItems.crystal_trixite }); addShapelessAuto(new ItemStack(ModItems.ammo_44, 1), new Object[] { ModItems.gun_revolver_nopip_ammo }); addShapelessAuto(new ItemStack(ModItems.ammo_44_pip, 1), new Object[] { ModItems.gun_revolver_pip_ammo }); @@ -1077,6 +1118,7 @@ public static void reg2(){ addRecipeAuto(new ItemStack(ModItems.ammo_rocket_rpc, 2), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', new IngredientContainsTag(ItemFluidCanister.getFullCanister(ModForgeFluids.diesel)), 'H', ModItems.hull_small_steel, 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket }); addRecipeAuto(new ItemStack(ModItems.ammo_rocket_rpc, 2), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', new IngredientContainsTag(ItemFluidCanister.getFullCanister(ModForgeFluids.petroil)), 'H', ModItems.hull_small_steel, 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket }); addRecipeAuto(new ItemStack(ModItems.ammo_rocket_rpc, 2), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', new IngredientContainsTag(ItemFluidCanister.getFullCanister(ModForgeFluids.biofuel)), 'H', ModItems.hull_small_steel, 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket }); + addRecipeAuto(new ItemStack(ModItems.ammo_rocket_sleek, 64), new Object[] { "GGG", "GRG", "GGG", 'G', ModItems.ammo_rocket, 'R', ModItems.coin_maskman }); addRecipeAuto(new ItemStack(ModItems.ammo_grenade, 2), new Object[] { " T ", "GCI", " P ", 'T', Items.GUNPOWDER, 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'I', IRON.plate() }); addRecipeAuto(new ItemStack(ModItems.ammo_grenade_tracer, 2), new Object[] { " T ", "GCI", " P ", 'T', LAPIS.dust(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'I', IRON.plate() }); @@ -1087,6 +1129,7 @@ public static void reg2(){ addRecipeAuto(new ItemStack(ModItems.ammo_grenade_nuclear, 2), new Object[] { " P ", "GIG", " P ", 'G', ModItems.ammo_grenade, 'I', ModItems.neutron_reflector, 'P', PU239.nugget() }); addRecipeAuto(new ItemStack(ModItems.ammo_grenade_finned, 1), new Object[] { "G", "R", 'G', Items.FEATHER, 'R', ModItems.ammo_grenade }); addRecipeAuto(new ItemStack(ModItems.ammo_grenade_kampf, 2), new Object[] { "G", "R", 'G', ModItems.ammo_rocket, 'R', ModItems.ammo_grenade }); + addRecipeAuto(new ItemStack(ModItems.ammo_grenade_sleek, 64), new Object[] { "GGG", "GRG", "GGG", 'G', ModItems.ammo_grenade, 'R', ModItems.coin_maskman }); addRecipeAuto(new ItemStack(ModItems.stamp_357, 1), new Object[] { "RSR", "III", " C ", 'R', REDSTONE.dust(), 'S', ModItems.stamp_iron_flat, 'I', ModItems.plate_polymer, 'C', ModItems.casing_357 }); addRecipeAuto(new ItemStack(ModItems.stamp_44, 1), new Object[] { "RSR", "III", " C ", 'R', REDSTONE.dust(), 'S', ModItems.stamp_iron_flat, 'I', ModItems.plate_polymer, 'C', ModItems.casing_44 }); @@ -1272,6 +1315,8 @@ public static void reg2(){ addRecipeAuto(new ItemStack(ModItems.custom_amat, 1), new Object[] { " C ", "MMM", "AAA", 'C', CU.plate(), 'A', AL.plate(), 'M', new IngredientContainsTag(ItemCell.getFullCell(ModForgeFluids.amat)) }); addRecipeAuto(new ItemStack(ModItems.custom_dirty, 1), new Object[] { " C ", "WLW", "WLW", 'C', CU.plate(), 'L', PB.plate(), 'W', ModItems.nuclear_waste }); addRecipeAuto(new ItemStack(ModItems.custom_schrab, 1), new Object[] { " C ", "LUL", "LUL", 'C', CU.plate(), 'L', PB.plate(), 'U', SA326.ingot() }); + addRecipeAuto(new ItemStack(ModItems.custom_sol, 1), new Object[] { " C ", "LUL", "LUL", 'C', CU.plate(), 'L', PB.plate(), 'U', SA327.ingot() }); + addRecipeAuto(new ItemStack(ModItems.custom_euph, 1), new Object[] { " C ", "LUL", "LUL", 'C', CU.plate(), 'L', PB.plate(), 'U', EUPH.ingot() }); addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_generic), new Object[] { " A ", "PRP", "PRP", 'A', ModItems.wire_aluminium, 'P', AL.plate(), 'R', REDSTONE.dust() }); addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_advanced), new Object[] { " A ", "PSP", "PLP", 'A', ModItems.wire_red_copper, 'P', CU.plate(), 'S', S.dust(), 'L', PB.dust() }); @@ -1449,8 +1494,8 @@ public static void reg2(){ addRecipeAuto(new ItemStack(ModItems.paa_helmet, 1), new Object[] { "XGX", "NEN", 'E', ModItems.hazmat_paa_helmet, 'N', OreDictManager.getReflector(), 'G', ModItems.billet_gh336, 'X', ModItems.powder_verticium }); addRecipeAuto(new ItemStack(ModItems.paa_plate, 1), new Object[] { "XGX", "NEN", 'E', ModItems.hazmat_paa_plate, 'N', OreDictManager.getReflector(), 'G', ModItems.billet_gh336, 'X', ModItems.powder_verticium }); - addRecipeAuto(new ItemStack(ModItems.paa_legs, 1), new Object[] { "XGX", "NEN", 'E', ModItems.plate_paa, 'N', OreDictManager.getReflector(), 'G', ModItems.billet_gh336, 'X', ModItems.powder_verticium }); - addRecipeAuto(new ItemStack(ModItems.paa_boots, 1), new Object[] { "XGX", "NEN", 'E', ModItems.plate_paa, 'N', OreDictManager.getReflector(), 'G', ModItems.billet_gh336, 'X', ModItems.powder_verticium }); + addRecipeAuto(new ItemStack(ModItems.paa_legs, 1), new Object[] { "XGX", "NEN", 'E', ModItems.hazmat_paa_legs, 'N', OreDictManager.getReflector(), 'G', ModItems.billet_gh336, 'X', ModItems.powder_verticium }); + addRecipeAuto(new ItemStack(ModItems.paa_boots, 1), new Object[] { "XGX", "NEN", 'E', ModItems.hazmat_paa_boots, 'N', OreDictManager.getReflector(), 'G', ModItems.billet_gh336, 'X', ModItems.powder_verticium }); addRecipeAuto(new ItemStack(ModItems.goggles, 1), new Object[] { "P P", "GPG", 'G', KEY_ANYPANE, 'P', STEEL.plate() }); addRecipeAuto(new ItemStack(ModItems.gas_mask, 1), new Object[] { "PPP", "GPG", " F ", 'G', KEY_ANYPANE, 'P', STEEL.plate(), 'F', IRON.plate() }); @@ -1847,7 +1892,7 @@ public static void reg2(){ addRecipeAuto(new ItemStack(ModItems.ingot_red_copper, 1), new Object[] { "###", "###", "###", '#', ModItems.wire_red_copper }); addRecipeAuto(new ItemStack(ModItems.ingot_advanced_alloy, 1), new Object[] { "###", "###", "###", '#', ModItems.wire_advanced_alloy }); addRecipeAuto(new ItemStack(Items.GOLD_INGOT, 1), new Object[] { "###", "###", "###", '#', ModItems.wire_gold }); - addRecipeAuto(new ItemStack(ModItems.nugget_schrabidium, 1), new Object[] { "###", "###", "###", '#', ModItems.wire_schrabidium }); + addRecipeAuto(new ItemStack(ModItems.ingot_schrabidium, 1), new Object[] { "###", "###", "###", '#', ModItems.wire_schrabidium }); addRecipeAuto(new ItemStack(ModItems.ingot_magnetized_tungsten, 1), new Object[] { "###", "###", "###", '#', ModItems.wire_magnetized_tungsten }); addRecipeAuto(new ItemStack(ModItems.ingot_mox_fuel, 9), new Object[] { "#", '#', ModBlocks.block_mox_fuel }); @@ -1864,7 +1909,6 @@ public static void reg2(){ //addShapelessAuto(new ItemStack(ModItems.nugget_thorium_fuel, 12), new Object[] { ModItems.rod_dual_thorium_fuel }); //addShapelessAuto(new ItemStack(ModItems.nugget_thorium_fuel, 24), new Object[] { ModItems.rod_quad_thorium_fuel }); addRecipeAuto(new ItemStack(ModItems.mechanism_special, 1), new Object[] { "PCI", "ISS", "PCI", 'P',ModItems.plate_desh, 'C', ModItems.coil_advanced_alloy, 'I', STAR.ingot(), 'S', ModItems.circuit_targeting_tier3 }); - addRecipeAuto(new ItemStack(ModItems.gun_proto, 1), new Object[] { "LLL", "WFW", "SSS", 'S', ModItems.plate_polymer, 'L',ModItems.plate_desh, 'W', ModItems.wire_tungsten, 'F', ModItems.gun_fatman }); addRecipeAuto(new ItemStack(ModItems.gun_ks23, 1), new Object[] { "PPM", "SWL", 'P', STEEL.plate(), 'M', ModItems.mechanism_rifle_1, 'S', Items.STICK, 'W', ModItems.wire_tungsten, 'L', KEY_LOG }); addShapelessAuto(new ItemStack(ModItems.gun_sauer, 1), new Object[] { ModItems.ducttape, ModItems.gun_ks23, Blocks.LEVER, ModItems.gun_ks23 }); addRecipeAuto(new ItemStack(ModItems.gun_flamer, 1), new Object[] { "WPP", "SCT", "WMI", 'W', ModItems.wire_gold, 'P', ModItems.pipes_steel, 'S', ModItems.hull_small_steel, 'C', ModItems.coil_tungsten, 'T', ModItems.tank_steel, 'M', ModItems.mechanism_launcher_1, 'I', STEEL.ingot() }); @@ -2031,6 +2075,12 @@ public static void reg3(){ add1To9Pair(ModBlocks.block_boron, ModItems.ingot_boron); add1To9Pair(ModItems.powder_boron, ModItems.powder_boron_tiny); add1To9Pair(ModBlocks.block_graphite, ModItems.ingot_graphite); + add1To9Pair(ModBlocks.block_coke, ModItems.coke); + add1To9Pair(ModBlocks.block_lignite, ModItems.lignite); + add1To9Pair(ModBlocks.block_coal_infernal, ModItems.coal_infernal); + add1To9Pair(ModBlocks.block_solid_fuel, ModItems.solid_fuel); + add1To9Pair(ModBlocks.block_solid_fuel_presto, ModItems.solid_fuel_presto); + add1To9Pair(ModBlocks.block_solid_fuel_presto_triplet, ModItems.solid_fuel_presto_triplet); add1To9Pair(ModItems.ingot_osmiridium, ModItems.nugget_osmiridium); add1To9Pair(ModItems.ingot_radspice, ModItems.nugget_radspice); @@ -2156,6 +2206,7 @@ public static void reg3(){ //Inserts addRecipeAuto(new ItemStack(ModItems.insert_steel, 1), new Object[] { "DPD", "PSP", "DPD", 'D', ModItems.ducttape, 'P', IRON.plate(), 'S', STEEL.block() }); addRecipeAuto(new ItemStack(ModItems.insert_du, 1), new Object[] { "DPD", "PSP", "DPD", 'D', ModItems.ducttape, 'P', IRON.plate(), 'S', U238.block() }); + addRecipeAuto(new ItemStack(ModItems.insert_ferrouranium, 1), new Object[] { "PIP", "IDI", "PIP", 'D', ModItems.insert_kevlar, 'P', ModItems.ducttape, 'I', FERRO.ingot() }); addRecipeAuto(new ItemStack(ModItems.insert_polonium, 1), new Object[] { "DPD", "PSP", "DPD", 'D', ModItems.ducttape, 'P', IRON.plate(), 'S', PO210.block() }); addRecipeAuto(new ItemStack(ModItems.insert_era, 1), new Object[] { "DPD", "PSP", "DPD", 'D', ModItems.ducttape, 'P', IRON.plate(), 'S', ANY_PLASTICEXPLOSIVE.ingot() }); addRecipeAuto(new ItemStack(ModItems.insert_kevlar, 1), new Object[] { "KIK", "IDI", "KIK", 'K', ModItems.plate_kevlar, 'I', ModItems.plate_polymer, 'D', ModItems.ducttape }); @@ -2625,7 +2676,6 @@ public static void reg3(){ if(!GeneralConfig.enable528) { addRecipeAuto(new ItemStack(ModBlocks.struct_launcher_core, 1), new Object[] { "SCS", "SIS", "BEB", 'S', ModBlocks.steel_scaffold, 'I', Blocks.IRON_BARS, 'C', ModItems.circuit_targeting_tier3, 'B', ModBlocks.struct_launcher, 'E', ModBlocks.machine_battery }); - addRecipeAuto(new ItemStack(ModBlocks.struct_launcher_core_large, 1), new Object[] { "SIS", "ICI", "BEB", 'S', ModItems.circuit_red_copper, 'I', Blocks.IRON_BARS, 'C', ModItems.circuit_targeting_tier4, 'B', ModBlocks.struct_launcher, 'E', ModBlocks.machine_battery }); addRecipeAuto(new ItemStack(ModBlocks.struct_soyuz_core, 1), new Object[] { "CUC", "TST", "TBT", 'C', ModItems.circuit_targeting_tier4, 'U', ModItems.upgrade_power_3, 'T', ModBlocks.barrel_steel, 'S', ModBlocks.steel_scaffold, 'B', ModBlocks.machine_lithium_battery }); addRecipeAuto(new ItemStack(ModItems.reactor_sensor, 1), new Object[] { "WPW", "CMC", "PPP", 'W', ModItems.wire_tungsten, 'P', PB.plate(), 'C', ModItems.circuit_targeting_tier3, 'M', ModItems.magnetron }); addRecipeAuto(new ItemStack(ModBlocks.reactor_ejector, 1), new Object[] { "CLC", "MHM", "CLC", 'C', ModBlocks.brick_concrete, 'L', PB.plate(), 'M', ModItems.motor, 'H', ModBlocks.reactor_hatch }); @@ -2705,6 +2755,7 @@ public static void addSmelting(){ GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_meteor_starmetal), new ItemStack(ModItems.ingot_starmetal), 50.0F); GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_cobalt), new ItemStack(ModItems.ingot_cobalt), 2.0F); GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_nether_cobalt), new ItemStack(ModItems.ingot_cobalt), 2.0F); + GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_cinnebar), new ItemStack(ModItems.cinnebar), 1.0F); GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_gneiss_iron), new ItemStack(Items.IRON_INGOT), 5.0F); GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_gneiss_gold), new ItemStack(Items.GOLD_INGOT), 5.0F); @@ -2837,7 +2888,7 @@ public static void addSmelting(){ GameRegistry.addSmelting(ModItems.crystal_lithium, new ItemStack(ModItems.lithium, 2), 2.0F); GameRegistry.addSmelting(ModItems.crystal_starmetal, new ItemStack(ModItems.ingot_starmetal, 2), 2.0F); GameRegistry.addSmelting(ModItems.crystal_trixite, new ItemStack(ModItems.ingot_plutonium, 4), 2.0F); - GameRegistry.addSmelting(ModItems.crystal_cinnebar, new ItemStack(ModItems.cinnebar, 4), 2.0F); + GameRegistry.addSmelting(ModItems.crystal_cinnebar, new ItemStack(ModItems.cinnebar, 2), 2.0F); GameRegistry.addSmelting(ModItems.crystal_cobalt, new ItemStack(ModItems.ingot_cobalt, 2), 2.0F); GameRegistry.addSmelting(new ItemStack(ModBlocks.gravel_diamond), new ItemStack(Items.DIAMOND), 3.0F); @@ -2869,12 +2920,12 @@ public static void addSmelting(){ public static void addBedrockOreSmelting(){ for(Integer oreMeta : BedrockOreRegistry.oreIndexes.keySet()) { - GameRegistry.addSmelting(new ItemStack(ModItems.ore_bedrock, 1, oreMeta), ItemBedrockOre.getOut(oreMeta, ItemBedrockOre.getOutType(oreMeta) == 2 ? 2 : 1), 2F); - GameRegistry.addSmelting(new ItemStack(ModItems.ore_bedrock_cleaned, 1, oreMeta), ItemBedrockOre.getOut(oreMeta, ItemBedrockOre.getOutType(oreMeta) == 2 ? 2 : 1), 2F); - GameRegistry.addSmelting(new ItemStack(ModItems.ore_bedrock_deepcleaned, 1, oreMeta), ItemBedrockOre.getOut(oreMeta, ItemBedrockOre.getOutType(oreMeta) == 2 ? 2 : 1), 2F); - GameRegistry.addSmelting(new ItemStack(ModItems.ore_bedrock_nitrated, 1, oreMeta), ItemBedrockOre.getOut(oreMeta, ItemBedrockOre.getOutType(oreMeta) == 2 ? 2 : 1), 2F); - GameRegistry.addSmelting(new ItemStack(ModItems.ore_bedrock_seared, 1, oreMeta), ItemBedrockOre.getOut(oreMeta, ItemBedrockOre.getOutType(oreMeta) == 2 ? 2 : 1), 2F); - GameRegistry.addSmelting(new ItemStack(ModItems.ore_bedrock_perfect, 1, oreMeta), ItemBedrockOre.getOut(oreMeta, ItemBedrockOre.getOutType(oreMeta) == 2 ? 2 : 1), 2F); + GameRegistry.addSmelting(new ItemStack(ModItems.ore_bedrock, 1, oreMeta), new ItemStack(ModItems.ore_bedrock_enriched, 1, oreMeta), 2F); + GameRegistry.addSmelting(new ItemStack(ModItems.ore_bedrock_cleaned, 1, oreMeta), new ItemStack(ModItems.ore_bedrock_enriched, 1, oreMeta), 2F); + GameRegistry.addSmelting(new ItemStack(ModItems.ore_bedrock_deepcleaned, 1, oreMeta), new ItemStack(ModItems.ore_bedrock_enriched, 1, oreMeta), 2F); + GameRegistry.addSmelting(new ItemStack(ModItems.ore_bedrock_nitrated, 1, oreMeta), new ItemStack(ModItems.ore_bedrock_enriched, 1, oreMeta), 2F); + GameRegistry.addSmelting(new ItemStack(ModItems.ore_bedrock_seared, 1, oreMeta), new ItemStack(ModItems.ore_bedrock_enriched, 1, oreMeta), 2F); + GameRegistry.addSmelting(new ItemStack(ModItems.ore_bedrock_perfect, 1, oreMeta), new ItemStack(ModItems.ore_bedrock_enriched, 1, oreMeta), 2F); GameRegistry.addSmelting(new ItemStack(ModItems.ore_bedrock_enriched, 1, oreMeta), ItemBedrockOre.getOut(oreMeta, ItemBedrockOre.getOutType(oreMeta) == 2 ? 2 : 1), 2F); } } @@ -2882,9 +2933,9 @@ public static void addBedrockOreSmelting(){ public static void addSlabStair(Block slab, Block stair, Block block){ addRecipeAuto(new ItemStack(slab, 6), new Object[] { "###", '#', block }); addRecipeAuto(new ItemStack(stair, 8), new Object[] { "# ","## ","###", '#', block }); - addRecipeAuto(new ItemStack(stair, 4), new Object[] { "# ","## ","###", '#', slab }); addShapelessAuto(new ItemStack(block, 3), new Object[] { stair, stair, stair, stair }); - addShapelessAuto(new ItemStack(block), new Object[] { slab, slab }); + addRecipeAuto(new ItemStack(stair, 4), new Object[] { "# ","## ","###", '#', slab }); + addShapelessAuto(new ItemStack(block, 1), new Object[] { slab, slab }); } public static void addBillet(Item billet, Item nugget, String... ore){ @@ -2929,19 +2980,19 @@ public static void addQuadRodBillet(Item billet, Item out){ //Fill rods with one billet + unload public static void addRodBilletUnload(Item billet, Item out){ addShapelessAuto(new ItemStack(out), new Object[] { ModItems.rod_empty, billet }); - addShapelessAuto(new ItemStack(billet, 1), new Object[] { out }); + addShapelessAuto(new ItemStack(billet, 1), new Object[] { new ItemStack(out, 1, 0) }); } //Fill rods with two billets + unload public static void addDualRodBilletUnload(Item billet, Item out){ addShapelessAuto(new ItemStack(out), new Object[] { ModItems.rod_dual_empty, billet, billet }); - addShapelessAuto(new ItemStack(billet, 2), new Object[] { out }); + addShapelessAuto(new ItemStack(billet, 2), new Object[] { new ItemStack(out, 1, 0) }); } //Fill rods with three billets + unload public static void addQuadRodBilletUnload(Item billet, Item out){ addShapelessAuto(new ItemStack(out), new Object[] { ModItems.rod_quad_empty, billet, billet, billet, billet }); - addShapelessAuto(new ItemStack(billet, 4), new Object[] { out }); + addShapelessAuto(new ItemStack(billet, 4), new Object[] { new ItemStack(out, 1, 0) }); } //Fill rods with 6 nuggets diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 8562d904cd..f1d18c30d9 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -246,6 +246,7 @@ import com.hbm.inventory.StorageDrumRecipes; import com.hbm.inventory.NuclearTransmutationRecipes; import com.hbm.inventory.HeatRecipes; +import com.hbm.inventory.PressRecipes; import com.hbm.inventory.FluidCombustionRecipes; import com.hbm.inventory.BedrockOreRegistry; import com.hbm.inventory.control_panel.ControlEvent; @@ -697,12 +698,14 @@ public void preInit(FMLPreInitializationEvent event) { GameRegistry.registerTileEntity(TileEntityRadioRec.class, new ResourceLocation(RefStrings.MODID, "tileentity_radiorec")); GameRegistry.registerTileEntity(TileEntityDeconRad.class, new ResourceLocation(RefStrings.MODID, "tileentity_deconrad")); GameRegistry.registerTileEntity(TileEntityDeconDi.class, new ResourceLocation(RefStrings.MODID, "tileentity_decondi")); + GameRegistry.registerTileEntity(TileEntityCharger.class, new ResourceLocation(RefStrings.MODID, "tileentity_charger")); GameRegistry.registerTileEntity(TileEntityVent.class, new ResourceLocation(RefStrings.MODID, "tileentity_vent")); GameRegistry.registerTileEntity(TileEntityChlorineSeal.class, new ResourceLocation(RefStrings.MODID, "tileentity_chlorine_seal")); GameRegistry.registerTileEntity(TileEntityStructureMarker.class, new ResourceLocation(RefStrings.MODID, "tileentity_structure_marker")); GameRegistry.registerTileEntity(TileEntityCoreTitanium.class, new ResourceLocation(RefStrings.MODID, "tileentity_core_titanium")); GameRegistry.registerTileEntity(TileEntityCoreAdvanced.class, new ResourceLocation(RefStrings.MODID, "tileentity_core_advanced")); GameRegistry.registerTileEntity(TileEntityReactorHatch.class, new ResourceLocation(RefStrings.MODID, "tileentity_reactor_hatch")); + GameRegistry.registerTileEntity(TileEntityFactoryHatch.class, new ResourceLocation(RefStrings.MODID, "tileentity_factory_hatch")); GameRegistry.registerTileEntity(TileEntityMachineReactorLarge.class, new ResourceLocation(RefStrings.MODID, "tileentity_reactor_large")); GameRegistry.registerTileEntity(TileEntityWatzHatch.class, new ResourceLocation(RefStrings.MODID, "tileentity_watz_hatch")); GameRegistry.registerTileEntity(TileEntityWatzCore.class, new ResourceLocation(RefStrings.MODID, "tileentity_watz_core")); @@ -1081,6 +1084,7 @@ public void postInit(FMLPostInitializationEvent event) { DiFurnaceRecipes.registerFuels(); CrystallizerRecipes.register(); CentrifugeRecipes.register(); + PressRecipes.registerOverrides(); BreederRecipes.registerFuels(); BreederRecipes.registerRecipes(); AssemblerRecipes.loadRecipes(); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 810d7cb90b..984ddfc76e 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -846,6 +846,7 @@ public class ResourceManager { public static final ResourceLocation round_airlock_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/round_airlock_door.png"); public static final ResourceLocation secure_access_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/secure_access_door.png"); public static final ResourceLocation sliding_seal_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/sliding_seal_door.png"); + public static final ResourceLocation sliding_gate_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/sliding_gate_door.png"); //Silo hatch public static final ResourceLocation hatch_tex = new ResourceLocation(RefStrings.MODID, "textures/models/hatchtexture.png"); diff --git a/src/main/java/com/hbm/modules/ItemHazardModule.java b/src/main/java/com/hbm/modules/ItemHazardModule.java index 13a854e094..ed582e7cae 100644 --- a/src/main/java/com/hbm/modules/ItemHazardModule.java +++ b/src/main/java/com/hbm/modules/ItemHazardModule.java @@ -135,7 +135,7 @@ public void applyEffects(EntityLivingBase entity, float mod, int slot, boolean c } } - if(this.fire > 0 && !reacher && !ArmorUtil.checkForAsbestos((EntityPlayer)entity)){ + if(this.fire > 0 && !reacher && (!(entity instanceof EntityPlayer) || (entity instanceof EntityPlayer && !ArmorUtil.checkForAsbestos((EntityPlayer)entity)))){ entity.setFire(this.fire); } @@ -148,13 +148,11 @@ public void applyEffects(EntityLivingBase entity, float mod, int slot, boolean c if(ArmorRegistry.hasProtection(livingTEntity, EntityEquipmentSlot.HEAD, HazardClass.NERVE_AGENT)){ ArmorUtil.damageGasMaskFilter(livingTEntity, Math.max(1, this.toxic>>2)); hasToxFilter = true; - } else { - hasToxFilter = false; } hasHazmat = ArmorUtil.checkForHazmat((EntityPlayer)entity); } - if(!hasToxFilter){ + if(!hasToxFilter && !hasHazmat){ livingTEntity.addPotionEffect(new PotionEffect(MobEffects.WEAKNESS, 100, this.toxic-1)); if(this.toxic > 2) @@ -167,7 +165,7 @@ public void applyEffects(EntityLivingBase entity, float mod, int slot, boolean c } } } - if(!hasHazmat || !hasToxFilter){ + if(!(hasHazmat && hasToxFilter)){ if(this.toxic > 8) livingTEntity.addPotionEffect(new PotionEffect(MobEffects.MINING_FATIGUE, 100, this.toxic-8)); if(this.toxic > 16) @@ -309,8 +307,7 @@ else if(this.toxic > 2) public boolean onEntityItemUpdate(EntityItem item) { if(!item.world.isRemote) { - - if(this.hydro && (item.isInWater() || item.world.getBlockState(new BlockPos((int)Math.floor(item.posX), (int)Math.floor(item.posY), (int)Math.floor(item.posZ))).getMaterial() == Material.WATER)) { + if(this.hydro && (item.isInWater() || item.world.isRainingAt(new BlockPos((int)item.posX, (int)item.posY, (int)item.posZ)) || item.world.getBlockState(new BlockPos((int)item.posX, (int)item.posY, (int)item.posZ)).getMaterial() == Material.WATER)) { item.setDead(); item.world.newExplosion(item, item.posX, item.posY, item.posZ, 2F, true, true); diff --git a/src/main/java/com/hbm/packet/AnvilCraftPacket.java b/src/main/java/com/hbm/packet/AnvilCraftPacket.java index b7d7116022..e64093e5ff 100644 --- a/src/main/java/com/hbm/packet/AnvilCraftPacket.java +++ b/src/main/java/com/hbm/packet/AnvilCraftPacket.java @@ -43,11 +43,11 @@ public static class Handler implements IMessageHandler { if(m.recipeIndex < 0 || m.recipeIndex >= AnvilRecipes.getConstruction().size()) //recipe is out of range -> bad return; - + EntityPlayer p = ctx.getServerHandler().player; if(!(p.openContainer instanceof ContainerAnvil)) //player isn't even using an anvil -> bad @@ -55,10 +55,10 @@ public IMessage onMessage(AnvilCraftPacket m, MessageContext ctx) { ContainerAnvil anvil = (ContainerAnvil)p.openContainer; AnvilConstructionRecipe recipe = AnvilRecipes.getConstruction().get(m.recipeIndex); - + if(!recipe.isTierValid(anvil.tier)) //player is using the wrong type of anvil -> bad return; - + int count = m.mode == 1 ? 64 : 1; for(int i = 0; i < count; i++) { diff --git a/src/main/java/com/hbm/packet/LargeReactorPacket.java b/src/main/java/com/hbm/packet/LargeReactorPacket.java index 820a41b403..f1748b3a3b 100644 --- a/src/main/java/com/hbm/packet/LargeReactorPacket.java +++ b/src/main/java/com/hbm/packet/LargeReactorPacket.java @@ -15,12 +15,12 @@ public class LargeReactorPacket implements IMessage { - int x, y, z, rods, coreHeat, hullHeat, fuel, waste, type; + int x, y, z, rods, coreHeat, hullHeat, fuel, maxFuel, waste, maxWaste, type; public LargeReactorPacket() { } - public LargeReactorPacket(BlockPos pos, int rods, int coreHeat, int hullHeat, int fuel, int waste, int type) { + public LargeReactorPacket(BlockPos pos, int rods, int coreHeat, int hullHeat, int fuel, int maxFuel, int waste, int maxWaste, int type) { x = pos.getX(); y = pos.getY(); z = pos.getZ(); @@ -28,7 +28,9 @@ public LargeReactorPacket(BlockPos pos, int rods, int coreHeat, int hullHeat, in this.coreHeat = coreHeat; this.hullHeat = hullHeat; this.fuel = fuel; + this.maxFuel = maxFuel; this.waste = waste; + this.maxWaste = maxWaste; this.type = type; } @@ -41,7 +43,9 @@ public void fromBytes(ByteBuf buf) { coreHeat = buf.readInt(); hullHeat = buf.readInt(); fuel = buf.readInt(); + maxFuel = buf.readInt(); waste = buf.readInt(); + maxWaste = buf.readInt(); type = buf.readInt(); } @@ -54,7 +58,9 @@ public void toBytes(ByteBuf buf) { buf.writeInt(coreHeat); buf.writeInt(hullHeat); buf.writeInt(fuel); + buf.writeInt(maxFuel); buf.writeInt(waste); + buf.writeInt(maxWaste); buf.writeInt(type); } @@ -72,7 +78,9 @@ public IMessage onMessage(LargeReactorPacket m, MessageContext ctx) { r.coreHeat = m.coreHeat; r.hullHeat = m.hullHeat; r.fuel = m.fuel; + r.maxFuel = m.maxFuel; r.waste = m.waste; + r.maxWaste = m.maxWaste; r.type = ReactorFuelType.getEnum(m.type); } }); diff --git a/src/main/java/com/hbm/potion/HbmPotion.java b/src/main/java/com/hbm/potion/HbmPotion.java index 31966a5f38..4ec9e41ebf 100644 --- a/src/main/java/com/hbm/potion/HbmPotion.java +++ b/src/main/java/com/hbm/potion/HbmPotion.java @@ -54,7 +54,7 @@ public static void init() { bang = registerPotion(true, 1118481, "potion.hbm_bang", 3, 0); mutation = registerPotion(false, 0xFF8132, "potion.hbm_mutation", 2, 0); radx = registerPotion(false, 0x225900, "potion.hbm_radx", 5, 0); - lead = registerPotion(false, 0x767682, "potion.hbm_lead", 6, 0); + lead = registerPotion(true, 0x767682, "potion.hbm_lead", 6, 0); radaway = registerPotion(false, 0xFFE400, "potion.hbm_radaway", 7, 0); telekinesis = registerPotion(true, 0x00F3FF, "potion.hbm_telekinesis", 0, 1); phosphorus = registerPotion(true, 0xFF3A00, "potion.hbm_phosphorus", 1, 1); diff --git a/src/main/java/com/hbm/render/item/AssemblyTemplateRender.java b/src/main/java/com/hbm/render/item/AssemblyTemplateRender.java index 8114ca4eff..78e9ce28fe 100644 --- a/src/main/java/com/hbm/render/item/AssemblyTemplateRender.java +++ b/src/main/java/com/hbm/render/item/AssemblyTemplateRender.java @@ -2,6 +2,7 @@ import org.lwjgl.input.Keyboard; import org.lwjgl.opengl.GL11; +import java.lang.IndexOutOfBoundsException; import com.hbm.inventory.AssemblerRecipes; import com.hbm.items.machine.ItemAssemblyTemplate; @@ -23,24 +24,28 @@ public class AssemblyTemplateRender extends TileEntityItemStackRenderer { @Override public void renderByItem(ItemStack stack) { - if (stack.getItem() instanceof ItemAssemblyTemplate && type == TransformType.GUI) { - if (Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { - GL11.glPushMatrix(); - GL11.glPushAttrib(GL11.GL_LIGHTING_BIT); - GL11.glTranslated(0.5, 0.5, 0); - GlStateManager.enableLighting(); - ItemStack item = AssemblerRecipes.recipeList.get(ItemAssemblyTemplate.getRecipeIndex(stack)).toStack(); - IBakedModel model = Minecraft.getMinecraft().getRenderItem().getItemModelWithOverrides(item, Minecraft.getMinecraft().world, Minecraft.getMinecraft().player); - model = net.minecraftforge.client.ForgeHooksClient.handleCameraTransforms(model, ItemCameraTransforms.TransformType.GUI, false); - Minecraft.getMinecraft().getRenderItem().renderItem(item, model); - GL11.glPopAttrib(); - GL11.glPopMatrix(); + try{ + if (stack.getItem() instanceof ItemAssemblyTemplate && type == TransformType.GUI) { + if (Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { + GL11.glPushMatrix(); + GL11.glPushAttrib(GL11.GL_LIGHTING_BIT); + GL11.glTranslated(0.5, 0.5, 0); + GlStateManager.enableLighting(); + ItemStack item = AssemblerRecipes.recipeList.get(ItemAssemblyTemplate.getRecipeIndex(stack)).toStack(); + IBakedModel model = Minecraft.getMinecraft().getRenderItem().getItemModelWithOverrides(item, Minecraft.getMinecraft().world, Minecraft.getMinecraft().player); + model = net.minecraftforge.client.ForgeHooksClient.handleCameraTransforms(model, ItemCameraTransforms.TransformType.GUI, false); + Minecraft.getMinecraft().getRenderItem().renderItem(item, model); + GL11.glPopAttrib(); + GL11.glPopMatrix(); + } else { + GL11.glTranslated(0.5, 0.5, 0); + Minecraft.getMinecraft().getRenderItem().renderItem(stack, itemModel); + } } else { - GL11.glTranslated(0.5, 0.5, 0); Minecraft.getMinecraft().getRenderItem().renderItem(stack, itemModel); } - } else { - Minecraft.getMinecraft().getRenderItem().renderItem(stack, itemModel); + } catch(IndexOutOfBoundsException e){ + } super.renderByItem(stack); } diff --git a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java index 65452b9c37..ba4ef41bb5 100644 --- a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java +++ b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java @@ -1636,6 +1636,18 @@ public void renderCommon() { GlStateManager.shadeModel(GL11.GL_FLAT); } }); + renderers.put(Item.getItemFromBlock(ModBlocks.sliding_gate_door), new ItemRenderBase(){ + public void renderInventory() { + GL11.glTranslated(0, -5, 0); + GL11.glScaled(7, 7, 7); + } + public void renderCommon() { + bindTexture(ResourceManager.sliding_gate_door_tex); + GlStateManager.shadeModel(GL11.GL_SMOOTH); + ResourceManager.sliding_seal_door.renderAll(); + GlStateManager.shadeModel(GL11.GL_FLAT); + } + }); renderers.put(Item.getItemFromBlock(ModBlocks.transition_seal), new ItemRenderBase(){ public void renderInventory() { GL11.glTranslated(0, -4.5, 0); diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFColt.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFColt.java index 4ea072a8f2..d8257982f9 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFColt.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFColt.java @@ -34,7 +34,7 @@ public void renderByItem(ItemStack item) { case FIRST_PERSON_LEFT_HAND: - GL11.glTranslated(1, 0.5, 0); + GL11.glTranslated(1, 0.5, 0.3); GL11.glScaled(s0, s0, s0); GL11.glRotated(100, 0, -1, 0); GL11.glRotated(25, 1, 0, 0); @@ -43,7 +43,7 @@ public void renderByItem(ItemStack item) { case FIRST_PERSON_RIGHT_HAND: - GL11.glTranslated(0, 0.5, 0); + GL11.glTranslated(0, 0.5, 0.3); GL11.glScaled(s0, s0, s0); GL11.glRotated(100, 0, 1, 0); GL11.glRotated(25, 1, 0, 0); diff --git a/src/main/java/com/hbm/render/misc/BeamPronter.java b/src/main/java/com/hbm/render/misc/BeamPronter.java index f0f61a92c3..84a402ca86 100644 --- a/src/main/java/com/hbm/render/misc/BeamPronter.java +++ b/src/main/java/com/hbm/render/misc/BeamPronter.java @@ -55,10 +55,10 @@ public static void prontBeam(Vec3 skeleton, EnumWaveType wave, EnumBeamType beam if(beam == EnumBeamType.SOLID) { - GlStateManager.disableCull(); + GlStateManager.depthMask(false); GlStateManager.enableBlend(); - //GlStateManager.depthMask(false); GlStateManager.blendFunc(SourceFactor.SRC_ALPHA, DestFactor.ONE); + GlStateManager.disableCull(); } Tessellator tessellator = Tessellator.instance; @@ -107,9 +107,13 @@ public static void prontBeam(Vec3 skeleton, EnumWaveType wave, EnumBeamType beam float radius = thickness / (float)layers; for(int j = 1; j <= layers; j++) { - - float inter = (float)(j - 1) / (float)(layers - 1); - int color = BobMathUtil.interpolateColor(innerColor, outerColor, inter); + int color = 0; + if(layers == 1) { + color = outerColor; + } else { + float inter = (float)(j - 1) / (float)(layers - 1); + color = BobMathUtil.interpolateColor(innerColor, outerColor, inter); + } tessellator.setColorOpaque_I(color); tessellator.addVertex(lastX + (radius * j), lastY, lastZ + (radius * j)); @@ -151,8 +155,8 @@ public static void prontBeam(Vec3 skeleton, EnumWaveType wave, EnumBeamType beam if(beam == EnumBeamType.SOLID) { GlStateManager.disableBlend(); + GlStateManager.enableCull(); GlStateManager.depthMask(true); - GlStateManager.enableTexture2D(); } GlStateManager.enableLighting(); @@ -258,5 +262,4 @@ public static void gluonBeam(Vec3 pos1, Vec3 pos2, float size){ GlStateManager.enableCull(); GL11.glPopMatrix(); } - } \ No newline at end of file diff --git a/src/main/java/com/hbm/render/model/ModelArmorBase.java b/src/main/java/com/hbm/render/model/ModelArmorBase.java index 2fdc07874b..5761d763d9 100644 --- a/src/main/java/com/hbm/render/model/ModelArmorBase.java +++ b/src/main/java/com/hbm/render/model/ModelArmorBase.java @@ -44,11 +44,8 @@ public ModelArmorBase(int type) { public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { if (entity instanceof EntityPlayer) { EntityPlayer player = (EntityPlayer) entity; - if (player.isSneaking()) { - this.isSneak = true; - } else { - this.isSneak = false; - } + this.isSneak = player.isSneaking(); + this.isRiding = player.isRiding(); } super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); @@ -112,6 +109,15 @@ public void setRotationAngles(float f, float f1, float f2, float f3, float f4, f this.rightArm.rotateAngleX -= (90 * Math.PI / 180D); } + if(this.isRiding) { + this.rightArm.rotateAngleX += -((float) Math.PI / 5F); + this.leftArm.rotateAngleX += -((float) Math.PI / 5F); + this.rightFoot.rotateAngleX = this.rightLeg.rotateAngleX = -((float) Math.PI * 2F / 5F); + this.leftFoot.rotateAngleX = this.leftLeg.rotateAngleX = -((float) Math.PI * 2F / 5F); + this.rightFoot.rotateAngleY = this.rightLeg.rotateAngleY = ((float) Math.PI / 10F); + this.leftFoot.rotateAngleY = this.leftLeg.rotateAngleY = -((float) Math.PI / 10F); + } + if (this.isSneak) { this.leftLeg.rotationPointZ -= 0.5F; this.rightLeg.rotationPointZ -= 0.5F; diff --git a/src/main/java/com/hbm/render/tileentity/RenderBAT9000.java b/src/main/java/com/hbm/render/tileentity/RenderBAT9000.java index c595b358ec..41fb197d32 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderBAT9000.java +++ b/src/main/java/com/hbm/render/tileentity/RenderBAT9000.java @@ -34,7 +34,7 @@ public void render(TileEntityMachineBAT9000 bat, double x, double y, double z, f GL11.glPushMatrix(); GL11.glTranslated(x + 0.5D, y, z + 0.5D); GlStateManager.enableLighting(); - GlStateManager.enableCull(); + GlStateManager.disableCull(); bindTexture(ResourceManager.bat9000_tex); @@ -118,7 +118,6 @@ public void render(TileEntityMachineBAT9000 bat, double x, double y, double z, f GlStateManager.color(1, 1, 1, 1); GlStateManager.enableLighting(); - GlStateManager.enableCull(); OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, lbx, lby); } diff --git a/src/main/java/com/hbm/render/tileentity/RenderBreeder.java b/src/main/java/com/hbm/render/tileentity/RenderBreeder.java index 8599b78a15..97ff92756b 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderBreeder.java +++ b/src/main/java/com/hbm/render/tileentity/RenderBreeder.java @@ -1,5 +1,6 @@ package com.hbm.render.tileentity; +import java.util.Random; import org.lwjgl.opengl.GL11; import com.hbm.blocks.BlockDummyable; @@ -34,13 +35,18 @@ public void render(TileEntityMachineReactor breeder, double x, double y, double case 5: GL11.glRotatef(270, 0F, 1F, 0F); break; } - if(breeder.progress > 0) - for(int i = 0; i < 3; i++) { + if(breeder.heat > 0){ + int seed = (int)(System.currentTimeMillis() / 125 % 10000); + Random rand = new Random(seed); + for(int i = 0; i < rand.nextInt(breeder.heat+1); i++) { + GL11.glPushMatrix(); - GL11.glRotatef((float) (Math.PI * i), 0F, 1F, 0F); - RenderSparks.renderSpark((int) ((System.currentTimeMillis() % 10000) / 100 + i), 0, 1.875, 0, 0.15F, 3, 4, 0x00ff00, 0xffffff); + GL11.glRotatef(360F * rand.nextFloat(), 0F, 1F, 0F); + + RenderSparks.renderSpark(rand.nextInt(), 0, 1.75 + 0.25 * rand.nextFloat(), 0, 0.15F, 3, 4, 0x00ff00, 0xffffff); GL11.glPopMatrix(); } + } GL11.glScaled(0.5, 0.5, 0.5); diff --git a/src/main/java/com/hbm/render/tileentity/RenderCable.java b/src/main/java/com/hbm/render/tileentity/RenderCable.java index 5a55711dc8..619c87f3a6 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderCable.java +++ b/src/main/java/com/hbm/render/tileentity/RenderCable.java @@ -15,7 +15,7 @@ public class RenderCable extends TileEntitySpecialRenderer { + + @Override + public boolean isGlobalRenderer(TileEntityCharger te) { + return te.isOn; + } + + @Override + public void render(TileEntityCharger te, double x, double y, double z, float partialTicks, int destroyStage, float alpha) { + super.render(te, x, y, z, partialTicks, destroyStage, alpha); + + if(te.isOn){ + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y + 0.5, z + 0.5); + GlStateManager.enableLighting(); + GlStateManager.enableCull(); + GlStateManager.color(1, 1, 1, 1); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); + + BeamPronter.prontBeam(Vec3.createVectorHelper(0, te.pointingUp ? te.range + 0.5 : -te.range - 0.5, 0), EnumWaveType.STRAIGHT, EnumBeamType.SOLID, 0x002038, 0x002038, 0, 1, 0F, 1, 0.499F); + + GL11.glPopMatrix(); + } + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderCoreComponent.java b/src/main/java/com/hbm/render/tileentity/RenderCoreComponent.java index 1dd518b36d..84001db646 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderCoreComponent.java +++ b/src/main/java/com/hbm/render/tileentity/RenderCoreComponent.java @@ -30,7 +30,7 @@ public void render(TileEntityMachineBase tileEntity, double x, double y, double GL11.glPushMatrix(); GL11.glTranslated(x + 0.5, y, z + 0.5); GlStateManager.enableLighting(); - GlStateManager.enableCull(); + GlStateManager.disableCull(); GL11.glRotatef(90, 0F, 1F, 0F); @@ -78,7 +78,7 @@ public void render(TileEntityMachineBase tileEntity, double x, double y, double int range = ((TileEntityCoreStabilizer)tileEntity).beam; if(range > 0) { - BeamPronter.prontBeam(Vec3.createVectorHelper(0, 0, range), EnumWaveType.STRAIGHT, EnumBeamType.SOLID, 0x002333, 0x7F7F7F, 0, 1, 0F, 3, 0.0625F); + BeamPronter.prontBeam(Vec3.createVectorHelper(0, 0, range), EnumWaveType.STRAIGHT, EnumBeamType.SOLID, 0x002333, 0x7F7F7F, 0, 1, 0F, 2, 0.125F); BeamPronter.prontBeam(Vec3.createVectorHelper(0, 0, range), EnumWaveType.SPIRAL, EnumBeamType.SOLID, 0x002333, 0x7F7F7F, (int)tileEntity.getWorld().getTotalWorldTime() * -8 % 360, range * 3, 0.125F, 2, 0.04F); BeamPronter.prontBeam(Vec3.createVectorHelper(0, 0, range), EnumWaveType.SPIRAL, EnumBeamType.SOLID, 0x003C56, 0x7F7F7F, (int)tileEntity.getWorld().getTotalWorldTime() * -8 % 360 + 180, range * 3, 0.125F, 2, 0.04F); } @@ -89,7 +89,7 @@ public void render(TileEntityMachineBase tileEntity, double x, double y, double int range = ((TileEntityCoreEmitter)tileEntity).beam; if(range > 0) { - BeamPronter.prontBeam(Vec3.createVectorHelper(0, 0, range), EnumWaveType.SPIRAL, EnumBeamType.SOLID, 0x401500, 0x7F7F7F, 0, 1, 0F, 3, 0.0625F); + BeamPronter.prontBeam(Vec3.createVectorHelper(0, 0, range), EnumWaveType.STRAIGHT, EnumBeamType.SOLID, 0x401500, 0x7F7F7F, 0, 1, 0F, 2, 0.125F); BeamPronter.prontBeam(Vec3.createVectorHelper(0, 0, range), EnumWaveType.RANDOM, EnumBeamType.SOLID, 0x401500, 0x7F7F7F, (int)tileEntity.getWorld().getTotalWorldTime() % 1000, range * 2, 0.125F, 2, 0.0625F); BeamPronter.prontBeam(Vec3.createVectorHelper(0, 0, range), EnumWaveType.RANDOM, EnumBeamType.SOLID, 0x5B1D00, 0x7F7F7F, (int)tileEntity.getWorld().getTotalWorldTime() % 1000 + 1, range * 2, 0.125F, 2, 0.0625F); } @@ -110,7 +110,6 @@ public void render(TileEntityMachineBase tileEntity, double x, double y, double } GlStateManager.enableLighting(); - GL11.glPopMatrix(); } } diff --git a/src/main/java/com/hbm/render/tileentity/RenderExcavator.java b/src/main/java/com/hbm/render/tileentity/RenderExcavator.java index 33c3055f85..42713874cd 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderExcavator.java +++ b/src/main/java/com/hbm/render/tileentity/RenderExcavator.java @@ -8,6 +8,7 @@ import com.hbm.tileentity.machine.TileEntityMachineExcavator; import net.minecraft.util.ResourceLocation; +import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; public class RenderExcavator extends TileEntitySpecialRenderer { @@ -15,12 +16,17 @@ public class RenderExcavator extends TileEntitySpecialRenderer 0) { bindTexture(cobble); diff --git a/src/main/java/com/hbm/render/tileentity/RenderFEL.java b/src/main/java/com/hbm/render/tileentity/RenderFEL.java index 3da9eb5b5b..89d28aac36 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderFEL.java +++ b/src/main/java/com/hbm/render/tileentity/RenderFEL.java @@ -19,6 +19,11 @@ public class RenderFEL extends TileEntitySpecialRenderer { + @Override + public boolean isGlobalRenderer(TileEntityFEL fel) { + return true; + } + @Override public void render(TileEntityFEL fel, double x, double y, double z, float partialTicks, int destroyStage, float alpha) { @@ -51,7 +56,7 @@ public void render(TileEntityFEL fel, double x, double y, double z, float partia if(fel.power > fel.powerReq * Math.pow(4, fel.mode.ordinal()) && fel.isOn && !(fel.mode == EnumWavelengths.NULL) && length > 0) { BeamPronter.prontBeam(Vec3.createVectorHelper(0, 0, -length - 1), EnumWaveType.STRAIGHT, EnumBeamType.SOLID, color, 0xFFFFFF, 0, 1, 0, 3, 0.0625F); } - + GL11.glPopMatrix(); } } \ No newline at end of file diff --git a/src/main/java/com/hbm/render/tileentity/RenderFluidTank.java b/src/main/java/com/hbm/render/tileentity/RenderFluidTank.java index c6c0fc6967..cf21b64548 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderFluidTank.java +++ b/src/main/java/com/hbm/render/tileentity/RenderFluidTank.java @@ -20,11 +20,6 @@ public class RenderFluidTank extends TileEntitySpecialRenderer { - @Override - public boolean isGlobalRenderer(TileEntityMachineFluidTank te) { - return true; - } - @Override public void render(TileEntityMachineFluidTank te, double x, double y, double z, float partialTicks, int destroyStage, float alpha) { GL11.glPushMatrix(); @@ -49,7 +44,6 @@ public void render(TileEntityMachineFluidTank te, double x, double y, double z, GlStateManager.shadeModel(GL11.GL_FLAT); GL11.glPopMatrix(); - GlStateManager.enableCull(); renderTileEntityAt2(te, x, y, z, partialTicks); } @@ -59,7 +53,6 @@ public void renderTileEntityAt2(TileEntity tileEntity, double x, double y, doubl GL11.glTranslated(x + 0.5D, y, z + 0.5D); GlStateManager.enableLighting(); GlStateManager.disableCull(); - GlStateManager.enableAlpha(); switch(tileEntity.getBlockMetadata()) { case 2: diff --git a/src/main/java/com/hbm/render/tileentity/RenderSILEX.java b/src/main/java/com/hbm/render/tileentity/RenderSILEX.java index 1bb50edd3d..46da08bb99 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderSILEX.java +++ b/src/main/java/com/hbm/render/tileentity/RenderSILEX.java @@ -10,11 +10,6 @@ import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; public class RenderSILEX extends TileEntitySpecialRenderer { - - @Override - public boolean isGlobalRenderer(TileEntitySILEX te){ - return true; - } @Override public void render(TileEntitySILEX te, double x, double y, double z, float partialTicks, int destroyStage, float alpha){ diff --git a/src/main/java/com/hbm/render/tileentity/RenderSolarBoiler.java b/src/main/java/com/hbm/render/tileentity/RenderSolarBoiler.java index 6e7e1ca74b..f657909da7 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderSolarBoiler.java +++ b/src/main/java/com/hbm/render/tileentity/RenderSolarBoiler.java @@ -11,17 +11,13 @@ public class RenderSolarBoiler extends TileEntitySpecialRenderer { - @Override - public boolean isGlobalRenderer(TileEntitySolarBoiler te) { - return true; - } @Override public void render(TileEntitySolarBoiler te, double x, double y, double z, float partialTicks, int destroyStage, float alpha) { GL11.glPushMatrix(); GL11.glTranslated(x + 0.5D, y, z + 0.5D); GlStateManager.enableLighting(); - + GlStateManager.disableCull(); GL11.glRotatef(90, 0F, 1F, 0F); switch(te.getBlockMetadata() - BlockDummyable.offset) diff --git a/src/main/java/com/hbm/render/tileentity/RenderSolarMirror.java b/src/main/java/com/hbm/render/tileentity/RenderSolarMirror.java index f4e54ce674..8444858054 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderSolarMirror.java +++ b/src/main/java/com/hbm/render/tileentity/RenderSolarMirror.java @@ -25,7 +25,8 @@ public void render(TileEntitySolarMirror te, double x, double y, double z, float GL11.glPushMatrix(); GL11.glTranslated(x + 0.5D, y, z + 0.5D); GlStateManager.enableLighting(); - + GlStateManager.disableCull(); + TileEntitySolarMirror mirror = (TileEntitySolarMirror)te; bindTexture(ResourceManager.solar_mirror_tex); @@ -59,7 +60,6 @@ public void render(TileEntitySolarMirror te, double x, double y, double z, float BufferBuilder buf = tess.getBuffer(); GlStateManager.disableTexture2D(); GlStateManager.disableLighting(); - GlStateManager.disableCull(); GlStateManager.enableBlend(); GlStateManager.shadeModel(GL11.GL_SMOOTH); GlStateManager.blendFunc(SourceFactor.SRC_ALPHA, DestFactor.ONE); @@ -94,7 +94,6 @@ public void render(TileEntitySolarMirror te, double x, double y, double z, float GlStateManager.shadeModel(GL11.GL_FLAT); GlStateManager.blendFunc(SourceFactor.SRC_ALPHA, DestFactor.ONE_MINUS_SRC_ALPHA); GlStateManager.disableBlend(); - GlStateManager.enableCull(); GlStateManager.enableLighting(); GlStateManager.enableTexture2D(); } diff --git a/src/main/java/com/hbm/render/tileentity/RenderStructureMarker.java b/src/main/java/com/hbm/render/tileentity/RenderStructureMarker.java index ad852fc56f..fed62c4ad9 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderStructureMarker.java +++ b/src/main/java/com/hbm/render/tileentity/RenderStructureMarker.java @@ -219,7 +219,7 @@ public void renderBlocks(int x, int y, int z, int type, int meta) { } } } - if(type == 5) { + if(type == 3) { if(meta == 1) { offsetZ = 0; @@ -244,21 +244,21 @@ public void renderBlocks(int x, int y, int z, int type, int meta) { for(int c = 0; c < 7; c++) { int texture = -1; - if(Watz.array[b][a].substring(c, c + 1).equals("C")) + if(Watz.watz[b][a].substring(c, c + 1).equals("C")) texture = 0; - if(Watz.array[b][a].substring(c, c + 1).equals("A")) + if(Watz.watz[b][a].substring(c, c + 1).equals("A")) texture = 1; - if(Watz.array[b][a].substring(c, c + 1).equals("R")) + if(Watz.watz[b][a].substring(c, c + 1).equals("R")) texture = 2; - if(Watz.array[b][a].substring(c, c + 1).equals("S")) + if(Watz.watz[b][a].substring(c, c + 1).equals("S")) texture = 3; - if(Watz.array[b][a].substring(c, c + 1).equals("I")) + if(Watz.watz[b][a].substring(c, c + 1).equals("I")) texture = 4; - if(Watz.array[b][a].substring(c, c + 1).equals("#")) + if(Watz.watz[b][a].substring(c, c + 1).equals("#")) texture = 5; - if(Watz.array[b][a].substring(c, c + 1).equals("K")) + if(Watz.watz[b][a].substring(c, c + 1).equals("K")) texture = 6; - if(Watz.array[b][a].substring(c, c + 1).equals("W")) + if(Watz.watz[b][a].substring(c, c + 1).equals("W")) texture = 7; if(texture >= 0) { renderSmolBlockAt(watz[texture][0], watz[texture][1], a, b, c); @@ -267,7 +267,7 @@ public void renderBlocks(int x, int y, int z, int type, int meta) { } } } - if(type == 6) { + if(type == 4) { if(meta == 1) { offsetZ = 0; offsetX = 28; diff --git a/src/main/java/com/hbm/render/tileentity/RenderTurretMaxwell.java b/src/main/java/com/hbm/render/tileentity/RenderTurretMaxwell.java index 591eb1ca10..9b903a94a8 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderTurretMaxwell.java +++ b/src/main/java/com/hbm/render/tileentity/RenderTurretMaxwell.java @@ -15,6 +15,11 @@ public class RenderTurretMaxwell extends RenderTurretBase { + @Override + public boolean isGlobalRenderer(TileEntityTurretMaxwell te) { + return te.beam > 0; + } + @Override public void render(TileEntityTurretMaxwell turret, double x, double y, double z, float partialTicks, int destroyStage, float alpha){ Vec3d pos = turret.getHorizontalOffset(); @@ -44,17 +49,22 @@ public void render(TileEntityTurretMaxwell turret, double x, double y, double z, if(turret.beam > 0) { - double length = turret.lastDist - turret.getBarrelLength(); + double offset = 1; + double length = turret.lastDist - turret.getBarrelLength()+offset+0.2; GL11.glPushMatrix(); GlStateManager.color(1, 1, 1, 1); OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); - GL11.glTranslated(turret.getBarrelLength(), 2D, 0); + GL11.glTranslated(turret.getBarrelLength()-offset, 2D, 0); long worldTime = turret.getWorld().getTotalWorldTime(); - for(int i = 0; i < 8; i++) - BeamPronter.prontBeam(Vec3.createVectorHelper(length, 0, 0), EnumWaveType.SPIRAL, EnumBeamType.SOLID, 0x2020ff, 0x2020ff, (int)((worldTime + partialTicks) * -50 + i * 45) % 360, (int)((turret.lastDist + 1)), 0.375F, 2, 0.05F); - + // for(int i = 0; i < 8; i++) + // BeamPronter.prontBeam(Vec3.createVectorHelper(length, 0, 0), EnumWaveType.SPIRAL, EnumBeamType.SOLID, 0x2020ff, 0xFFFFFF, (int)((worldTime + partialTicks) * -50 + i * 45) % 360, (int)((turret.lastDist + 1)), 0.375F, 2, 0.05F); + // // int color = 0xff0000; + + BeamPronter.prontBeam(Vec3.createVectorHelper(length, 0, 0), EnumWaveType.RANDOM, EnumBeamType.SOLID, 0x00487F, 0xFFFFFF, (int)(worldTime) % 1000, (int)length, 0.125F, 2, 0.0625F); + GL11.glTranslated(offset, 0, 0); + BeamPronter.prontBeam(Vec3.createVectorHelper(length-offset, 0, 0), EnumWaveType.STRAIGHT, EnumBeamType.SOLID, 0x002038, 0x002038, 0, 1, 0, 3, 0.0625F*5F); GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/tileentity/DoorDecl.java b/src/main/java/com/hbm/tileentity/DoorDecl.java index a3ef5169f1..5379152a18 100644 --- a/src/main/java/com/hbm/tileentity/DoorDecl.java +++ b/src/main/java/com/hbm/tileentity/DoorDecl.java @@ -105,7 +105,7 @@ public WavefrontObjDisplayList getModel(){ @Override public SoundEvent getOpenSoundEnd() { - return HBMSoundHandler.sliding_seal_stop; + return HBMSoundHandler.nullMine; }; @Override public SoundEvent getOpenSoundStart() { @@ -113,7 +113,7 @@ public SoundEvent getOpenSoundStart() { }; public float getSoundVolume(){ - return 2; + return 1; } @Override @@ -140,7 +140,7 @@ public void doOffsetTransform() { @Override public int timeToOpen() { - return 20; + return 15; }; @Override @@ -176,6 +176,82 @@ public WavefrontObjDisplayList getModel(){ return ResourceManager.sliding_seal_door; } }; + + public static final DoorDecl SLIDING_GATE_DOOR = new DoorDecl(){ + + @Override + public SoundEvent getOpenSoundEnd() { + return HBMSoundHandler.sliding_seal_stop; + }; + @Override + public SoundEvent getOpenSoundStart() { + return HBMSoundHandler.sliding_seal_open; + }; + + public float getSoundVolume(){ + return 3; + } + + @Override + @SideOnly(Side.CLIENT) + public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { + if(partName.startsWith("door")){ + set(trans, 0, 0, Library.smoothstep(getNormTime(openTicks), 0, 1)); + } else { + set(trans, 0, 0, 0); + } + }; + + @Override + @SideOnly(Side.CLIENT) + public double[][] getClippingPlanes() { + return new double[][]{{0, 0, -1, 0.5001}}; + }; + + @Override + @SideOnly(Side.CLIENT) + public void doOffsetTransform() { + GL11.glTranslated(0.375, 0, 0); + }; + + @Override + public int timeToOpen() { + return 28; + }; + + @Override + public AxisAlignedBB getBlockBound(BlockPos relPos, boolean open) { + if(open){ + if(relPos.getY() == 0) + return new AxisAlignedBB(0, 0, 1-0.25, 1, 0.125, 1); + return super.getBlockBound(relPos, open); + } else { + return new AxisAlignedBB(0, 0, 1-0.25, 1, 1, 1); + } + }; + + @Override + public int[][] getDoorOpenRanges(){ + return new int[][]{{0, 0, 0, 1, 2, 2}}; + } + + @Override + public int[] getDimensions(){ + return new int[]{1, 0, 0, 0, 0, 0}; + } + + @Override + @SideOnly(Side.CLIENT) + public ResourceLocation getTextureForPart(String partName){ + return ResourceManager.sliding_gate_door_tex; + } + + @Override + @SideOnly(Side.CLIENT) + public WavefrontObjDisplayList getModel(){ + return ResourceManager.sliding_seal_door; + } + }; public static final DoorDecl SECURE_ACCESS_DOOR = new DoorDecl(){ diff --git a/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java b/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java index 45f5c8498a..28da0c2452 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java +++ b/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java @@ -9,6 +9,7 @@ import com.hbm.blocks.generic.BlockDoorGeneric; import com.hbm.handler.RadiationSystemNT; import com.hbm.interfaces.IAnimatedDoor; +import com.hbm.interfaces.IDoor.DoorState; import com.hbm.inventory.control_panel.ControlEvent; import com.hbm.inventory.control_panel.ControlEventSystem; import com.hbm.inventory.control_panel.DataValueFloat; @@ -47,9 +48,14 @@ public class TileEntityDoorGeneric extends TileEntityLockableBase implements ITi private AudioWrapper audio; private AudioWrapper audio2; + + public TileEntityDoorGeneric(){ + } @Override public void update(){ + if(doorType == null) + doorType = ((BlockDoorGeneric)this.getBlockType()).type; if(state == DoorState.OPENING) { openTicks++; if(openTicks >= doorType.timeToOpen()) { diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeCustom.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeCustom.java index 43a1388d6a..0b80ee2b8f 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeCustom.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeCustom.java @@ -2,6 +2,7 @@ import java.util.HashMap; +import com.hbm.config.BombConfig; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.bomb.NukeCustom; import com.hbm.forgefluid.ModForgeFluids; @@ -75,10 +76,14 @@ public NBTTagCompound writeToNBT(NBTTagCompound compound) { public static HashMap entries = new HashMap<>(); public static void registerBombItems() { + //TNT entries.put(new ComparableStack(Items.GUNPOWDER), new CustomNukeEntry(EnumBombType.TNT, 0.8F)); entries.put(new ComparableStack(Blocks.TNT), new CustomNukeEntry(EnumBombType.TNT, 4F)); entries.put(new ComparableStack(ModBlocks.det_cord), new CustomNukeEntry(EnumBombType.TNT, 1.5F)); entries.put(new ComparableStack(ModItems.ingot_semtex), new CustomNukeEntry(EnumBombType.TNT, 8F)); + entries.put(new ComparableStack(ModItems.ingot_c4), new CustomNukeEntry(EnumBombType.TNT, 10F)); + entries.put(new ComparableStack(ModItems.ball_dynamite), new CustomNukeEntry(EnumBombType.TNT, 4F)); + entries.put(new ComparableStack(ModItems.ball_tnt), new CustomNukeEntry(EnumBombType.TNT, 6F)); entries.put(new ComparableStack(ModBlocks.det_charge), new CustomNukeEntry(EnumBombType.TNT, 15F)); entries.put(new NbtComparableStack(ItemFluidCanister.getFullCanister(ModForgeFluids.diesel)), new CustomNukeEntry(EnumBombType.TNT, 0.5F)); entries.put(new ComparableStack(ModItems.canister_napalm), new CustomNukeEntry(EnumBombType.TNT, 2.5F)); @@ -87,66 +92,145 @@ public static void registerBombItems() { entries.put(new ComparableStack(ModBlocks.pink_barrel), new CustomNukeEntry(EnumBombType.TNT, 4F)); entries.put(new ComparableStack(ModItems.custom_tnt), new CustomNukeEntry(EnumBombType.TNT, 10F)); - entries.put(new ComparableStack(ModItems.ingot_u235), new CustomNukeEntry(EnumBombType.NUKE, 15F)); - entries.put(new ComparableStack(ModItems.ingot_pu239), new CustomNukeEntry(EnumBombType.NUKE, 25F)); - entries.put(new ComparableStack(ModItems.ingot_neptunium), new CustomNukeEntry(EnumBombType.NUKE, 30F)); + entries.put(new ComparableStack(Items.REDSTONE), new CustomNukeEntry(EnumBombType.TNT, 1.005F, EnumEntryType.MULT)); + entries.put(new ComparableStack(Blocks.REDSTONE_BLOCK), new CustomNukeEntry(EnumBombType.TNT, 1.05F, EnumEntryType.MULT)); + entries.put(new ComparableStack(ModItems.n2_charge), new CustomNukeEntry(EnumBombType.TNT, 1.25F, EnumEntryType.MULT)); + + + //NUKE entries.put(new ComparableStack(ModItems.nugget_u235), new CustomNukeEntry(EnumBombType.NUKE, 1.5F)); + entries.put(new ComparableStack(ModItems.billet_u235), new CustomNukeEntry(EnumBombType.NUKE, 10F)); + entries.put(new ComparableStack(ModItems.ingot_u235), new CustomNukeEntry(EnumBombType.NUKE, 15F)); entries.put(new ComparableStack(ModItems.nugget_pu239), new CustomNukeEntry(EnumBombType.NUKE, 2.5F)); + entries.put(new ComparableStack(ModItems.billet_pu239), new CustomNukeEntry(EnumBombType.NUKE, 17F)); + entries.put(new ComparableStack(ModItems.ingot_pu239), new CustomNukeEntry(EnumBombType.NUKE, 25F)); entries.put(new ComparableStack(ModItems.nugget_neptunium), new CustomNukeEntry(EnumBombType.NUKE, 3.0F)); + entries.put(new ComparableStack(ModItems.billet_neptunium), new CustomNukeEntry(EnumBombType.NUKE, 20.0F)); + entries.put(new ComparableStack(ModItems.ingot_neptunium), new CustomNukeEntry(EnumBombType.NUKE, 30F)); entries.put(new ComparableStack(ModItems.powder_neptunium), new CustomNukeEntry(EnumBombType.NUKE, 30F)); entries.put(new ComparableStack(ModItems.custom_nuke), new CustomNukeEntry(EnumBombType.NUKE, 30F)); + entries.put(new ComparableStack(ModItems.neutron_reflector), new CustomNukeEntry(EnumBombType.NUKE, 1.1F, EnumEntryType.MULT)); + entries.put(new ComparableStack(ModItems.nugget_uranium), new CustomNukeEntry(EnumBombType.NUKE, 1.005F, EnumEntryType.MULT)); + entries.put(new ComparableStack(ModItems.ingot_uranium), new CustomNukeEntry(EnumBombType.NUKE, 1.05F, EnumEntryType.MULT)); + entries.put(new ComparableStack(ModItems.powder_uranium), new CustomNukeEntry(EnumBombType.NUKE, 1.05F, EnumEntryType.MULT)); + entries.put(new ComparableStack(ModItems.nugget_plutonium), new CustomNukeEntry(EnumBombType.NUKE, 1.15F, EnumEntryType.MULT)); + entries.put(new ComparableStack(ModItems.powder_plutonium), new CustomNukeEntry(EnumBombType.NUKE, 1.15F, EnumEntryType.MULT)); + entries.put(new ComparableStack(ModItems.ingot_plutonium), new CustomNukeEntry(EnumBombType.NUKE, 1.15F, EnumEntryType.MULT)); + entries.put(new ComparableStack(ModItems.nugget_u238), new CustomNukeEntry(EnumBombType.NUKE, 1.01F, EnumEntryType.MULT)); + entries.put(new ComparableStack(ModItems.ingot_u238), new CustomNukeEntry(EnumBombType.NUKE, 1.1F, EnumEntryType.MULT)); + entries.put(new ComparableStack(ModItems.nugget_pu238), new CustomNukeEntry(EnumBombType.NUKE, 1.015F, EnumEntryType.MULT)); + entries.put(new ComparableStack(ModItems.ingot_pu238), new CustomNukeEntry(EnumBombType.NUKE, 1.15F, EnumEntryType.MULT)); + + + //SUPER entries.put(new NbtComparableStack(ItemCell.getFullCell(ModForgeFluids.deuterium)), new CustomNukeEntry(EnumBombType.HYDRO, 20F)); entries.put(new NbtComparableStack(ItemCell.getFullCell(ModForgeFluids.tritium)), new CustomNukeEntry(EnumBombType.HYDRO, 30F)); + entries.put(new ComparableStack(ModItems.powder_lithium_tiny), new CustomNukeEntry(EnumBombType.HYDRO, 2F)); + entries.put(new ComparableStack(ModItems.powder_lithium), new CustomNukeEntry(EnumBombType.HYDRO, 20F)); entries.put(new ComparableStack(ModItems.lithium), new CustomNukeEntry(EnumBombType.HYDRO, 20F)); - entries.put(new ComparableStack(ModItems.tritium_deuterium_cake), new CustomNukeEntry(EnumBombType.HYDRO, 200F)); + entries.put(new ComparableStack(ModBlocks.block_lithium), new CustomNukeEntry(EnumBombType.HYDRO, 200F)); + entries.put(new ComparableStack(ModItems.tritium_deuterium_cake), new CustomNukeEntry(EnumBombType.HYDRO, 300F)); entries.put(new ComparableStack(ModItems.custom_hydro), new CustomNukeEntry(EnumBombType.HYDRO, 30F)); - entries.put(new NbtComparableStack(ItemCell.getFullCell(ModForgeFluids.amat)), new CustomNukeEntry(EnumBombType.AMAT, 5F)); - entries.put(new ComparableStack(ModItems.custom_amat), new CustomNukeEntry(EnumBombType.AMAT, 15F)); - entries.put(new ComparableStack(ModItems.egg_balefire_shard), new CustomNukeEntry(EnumBombType.AMAT, 15F)); - entries.put(new ComparableStack(ModItems.egg_balefire), new CustomNukeEntry(EnumBombType.AMAT, 150F)); - entries.put(new ComparableStack(ModItems.ingot_tungsten), new CustomNukeEntry(EnumBombType.DIRTY, 1F)); + //ANTIMATTER + entries.put(new NbtComparableStack(ItemCell.getFullCell(ModForgeFluids.amat)), new CustomNukeEntry(EnumBombType.BALE, 1.05F, EnumEntryType.MULT)); + entries.put(new ComparableStack(ModItems.particle_amat), new CustomNukeEntry(EnumBombType.BALE, 1.05F, EnumEntryType.MULT)); + entries.put(new ComparableStack(ModItems.pellet_antimatter), new CustomNukeEntry(EnumBombType.BALE, 1.5F, EnumEntryType.MULT)); + entries.put(new ComparableStack(ModItems.egg_balefire_shard), new CustomNukeEntry(EnumBombType.BALE, 15F)); + entries.put(new ComparableStack(ModItems.egg_balefire), new CustomNukeEntry(EnumBombType.BALE, 150F)); + entries.put(new ComparableStack(ModItems.custom_amat), new CustomNukeEntry(EnumBombType.BALE, 15F)); + + + //SALTED + entries.put(new ComparableStack(ModItems.ingot_tungsten), new CustomNukeEntry(EnumBombType.DIRTY, 0.1F)); + entries.put(new ComparableStack(ModItems.powder_tungsten), new CustomNukeEntry(EnumBombType.DIRTY, 0.1F)); + entries.put(new ComparableStack(ModBlocks.block_tungsten), new CustomNukeEntry(EnumBombType.DIRTY, 1F)); + + entries.put(new ComparableStack(ModItems.fragment_cobalt), new CustomNukeEntry(EnumBombType.DIRTY, 0.1F)); + entries.put(new ComparableStack(ModItems.nugget_cobalt), new CustomNukeEntry(EnumBombType.DIRTY, 0.1F)); + entries.put(new ComparableStack(ModItems.ingot_cobalt), new CustomNukeEntry(EnumBombType.DIRTY, 1F)); + entries.put(new ComparableStack(ModItems.powder_cobalt_tiny), new CustomNukeEntry(EnumBombType.DIRTY, 0.1F)); + entries.put(new ComparableStack(ModItems.powder_cobalt), new CustomNukeEntry(EnumBombType.DIRTY, 1F)); + entries.put(new ComparableStack(ModBlocks.block_cobalt), new CustomNukeEntry(EnumBombType.DIRTY, 10F)); + + entries.put(new ComparableStack(ModItems.nugget_co60), new CustomNukeEntry(EnumBombType.DIRTY, 0.4F)); + entries.put(new ComparableStack(ModItems.ingot_co60), new CustomNukeEntry(EnumBombType.DIRTY, 4F)); + entries.put(new ComparableStack(ModItems.powder_co60_tiny), new CustomNukeEntry(EnumBombType.DIRTY, 0.4F)); + entries.put(new ComparableStack(ModItems.powder_co60), new CustomNukeEntry(EnumBombType.DIRTY, 4F)); + entries.put(new ComparableStack(ModItems.billet_co60), new CustomNukeEntry(EnumBombType.DIRTY, 3F)); + + entries.put(new ComparableStack(ModItems.nugget_strontium), new CustomNukeEntry(EnumBombType.DIRTY, 0.2F)); + entries.put(new ComparableStack(ModItems.ingot_strontium), new CustomNukeEntry(EnumBombType.DIRTY, 2F)); + entries.put(new ComparableStack(ModItems.powder_strontium), new CustomNukeEntry(EnumBombType.DIRTY, 2F)); + + entries.put(new ComparableStack(ModItems.nugget_sr90), new CustomNukeEntry(EnumBombType.DIRTY, 0.6F)); + entries.put(new ComparableStack(ModItems.ingot_sr90), new CustomNukeEntry(EnumBombType.DIRTY, 6F)); + entries.put(new ComparableStack(ModItems.powder_sr90_tiny), new CustomNukeEntry(EnumBombType.DIRTY, 0.6F)); + entries.put(new ComparableStack(ModItems.powder_sr90), new CustomNukeEntry(EnumBombType.DIRTY, 6F)); + entries.put(new ComparableStack(ModItems.billet_sr90), new CustomNukeEntry(EnumBombType.DIRTY, 4F)); + + entries.put(new ComparableStack(ModItems.ingot_iodine), new CustomNukeEntry(EnumBombType.DIRTY, 12F)); + entries.put(new ComparableStack(ModItems.powder_iodine_tiny), new CustomNukeEntry(EnumBombType.DIRTY, 1.2F)); + entries.put(new ComparableStack(ModItems.powder_iodine), new CustomNukeEntry(EnumBombType.DIRTY, 12F)); + entries.put(new ComparableStack(ModItems.ingot_i131), new CustomNukeEntry(EnumBombType.DIRTY, 24F)); + entries.put(new ComparableStack(ModItems.powder_i131_tiny), new CustomNukeEntry(EnumBombType.DIRTY, 2.4F)); + entries.put(new ComparableStack(ModItems.powder_i131), new CustomNukeEntry(EnumBombType.DIRTY, 24F)); + entries.put(new ComparableStack(ModItems.custom_dirty), new CustomNukeEntry(EnumBombType.DIRTY, 10F)); + entries.put(new ComparableStack(ModItems.ingot_pu240), new CustomNukeEntry(EnumBombType.DIRTY, 1.05F, EnumEntryType.MULT)); + entries.put(new ComparableStack(ModItems.nugget_pu240), new CustomNukeEntry(EnumBombType.DIRTY, 1.005F, EnumEntryType.MULT)); + entries.put(new ComparableStack(ModItems.billet_pu240), new CustomNukeEntry(EnumBombType.DIRTY, 1.03F, EnumEntryType.MULT)); + entries.put(new ComparableStack(ModBlocks.block_pu240), new CustomNukeEntry(EnumBombType.DIRTY, 1.5F, EnumEntryType.MULT)); + + entries.put(new ComparableStack(ModItems.billet_nuclear_waste), new CustomNukeEntry(EnumBombType.DIRTY, 1.02F, EnumEntryType.MULT)); + entries.put(new ComparableStack(ModItems.nuclear_waste), new CustomNukeEntry(EnumBombType.DIRTY, 1.025F, EnumEntryType.MULT)); + entries.put(new ComparableStack(ModItems.nuclear_waste_tiny), new CustomNukeEntry(EnumBombType.DIRTY, 1.0025F, EnumEntryType.MULT)); + entries.put(new ComparableStack(ModBlocks.block_waste), new CustomNukeEntry(EnumBombType.DIRTY, 1.25F, EnumEntryType.MULT)); + entries.put(new ComparableStack(ModBlocks.block_waste_painted), new CustomNukeEntry(EnumBombType.DIRTY, 1.25F, EnumEntryType.MULT)); + entries.put(new ComparableStack(ModBlocks.yellow_barrel), new CustomNukeEntry(EnumBombType.DIRTY, 1.2F, EnumEntryType.MULT)); + + + //ANTISCHRABIDIUM entries.put(new ComparableStack(ModItems.ingot_schrabidium), new CustomNukeEntry(EnumBombType.SCHRAB, 5F)); entries.put(new ComparableStack(ModBlocks.block_schrabidium), new CustomNukeEntry(EnumBombType.SCHRAB, 50F)); + entries.put(new ComparableStack(ModItems.billet_schrabidium), new CustomNukeEntry(EnumBombType.SCHRAB, 3F)); entries.put(new ComparableStack(ModItems.nugget_schrabidium), new CustomNukeEntry(EnumBombType.SCHRAB, 0.5F)); entries.put(new ComparableStack(ModItems.powder_schrabidium), new CustomNukeEntry(EnumBombType.SCHRAB, 5F)); entries.put(new NbtComparableStack(ItemCell.getFullCell(ModForgeFluids.sas3)), new CustomNukeEntry(EnumBombType.SCHRAB, 7.5F)); entries.put(new NbtComparableStack(ItemCell.getFullCell(ModForgeFluids.aschrab)), new CustomNukeEntry(EnumBombType.SCHRAB, 15F)); entries.put(new ComparableStack(ModItems.custom_schrab), new CustomNukeEntry(EnumBombType.SCHRAB, 15F)); - entries.put(new ComparableStack(ModItems.nugget_euphemium), new CustomNukeEntry(EnumBombType.EUPH, 1F)); + //SOLINIUM + entries.put(new ComparableStack(ModItems.solinium_core), new CustomNukeEntry(EnumBombType.SOL, 20F)); + entries.put(new ComparableStack(ModItems.nugget_solinium), new CustomNukeEntry(EnumBombType.SOL, 0.5F)); + entries.put(new ComparableStack(ModItems.ingot_solinium), new CustomNukeEntry(EnumBombType.SOL, 5F)); + entries.put(new ComparableStack(ModItems.billet_solinium), new CustomNukeEntry(EnumBombType.SOL, 3F)); + entries.put(new ComparableStack(ModBlocks.block_solinium), new CustomNukeEntry(EnumBombType.SOL, 50F)); + + entries.put(new ComparableStack(ModItems.nugget_unobtainium), new CustomNukeEntry(EnumBombType.SOL, 1.01F, EnumEntryType.MULT)); + entries.put(new ComparableStack(ModItems.ingot_unobtainium), new CustomNukeEntry(EnumBombType.SOL, 1.1F, EnumEntryType.MULT)); + entries.put(new ComparableStack(ModItems.powder_unobtainium), new CustomNukeEntry(EnumBombType.SOL, 1.1F, EnumEntryType.MULT)); + entries.put(new ComparableStack(ModBlocks.block_unobtainium), new CustomNukeEntry(EnumBombType.SOL, 1.5F, EnumEntryType.MULT)); + entries.put(new ComparableStack(ModItems.custom_sol), new CustomNukeEntry(EnumBombType.SOL, 15F)); + + //ANTI-MASS + entries.put(new ComparableStack(ModItems.nugget_euphemium), new CustomNukeEntry(EnumBombType.EUPH, 0.1F)); entries.put(new ComparableStack(ModItems.ingot_euphemium), new CustomNukeEntry(EnumBombType.EUPH, 1F)); - - entries.put(new ComparableStack(Items.REDSTONE), new CustomNukeEntry(EnumBombType.TNT, 1.05F, EnumEntryType.MULT)); - entries.put(new ComparableStack(Blocks.REDSTONE_BLOCK), new CustomNukeEntry(EnumBombType.TNT, 1.5F, EnumEntryType.MULT)); - - entries.put(new ComparableStack(ModItems.ingot_uranium), new CustomNukeEntry(EnumBombType.NUKE, 1.05F, EnumEntryType.MULT)); - entries.put(new ComparableStack(ModItems.ingot_plutonium), new CustomNukeEntry(EnumBombType.NUKE, 1.15F, EnumEntryType.MULT)); - entries.put(new ComparableStack(ModItems.ingot_u238), new CustomNukeEntry(EnumBombType.NUKE, 1.1F, EnumEntryType.MULT)); - entries.put(new ComparableStack(ModItems.ingot_pu238), new CustomNukeEntry(EnumBombType.NUKE, 1.15F, EnumEntryType.MULT)); - entries.put(new ComparableStack(ModItems.nugget_uranium), new CustomNukeEntry(EnumBombType.NUKE, 1.005F, EnumEntryType.MULT)); - entries.put(new ComparableStack(ModItems.nugget_plutonium), new CustomNukeEntry(EnumBombType.NUKE, 1.15F, EnumEntryType.MULT)); - entries.put(new ComparableStack(ModItems.nugget_u238), new CustomNukeEntry(EnumBombType.NUKE, 1.01F, EnumEntryType.MULT)); - entries.put(new ComparableStack(ModItems.nugget_pu238), new CustomNukeEntry(EnumBombType.NUKE, 1.015F, EnumEntryType.MULT)); - entries.put(new ComparableStack(ModItems.powder_uranium), new CustomNukeEntry(EnumBombType.NUKE, 1.05F, EnumEntryType.MULT)); - entries.put(new ComparableStack(ModItems.powder_plutonium), new CustomNukeEntry(EnumBombType.NUKE, 1.15F, EnumEntryType.MULT)); - - entries.put(new ComparableStack(ModItems.ingot_pu240), new CustomNukeEntry(EnumBombType.DIRTY, 1.05F, EnumEntryType.MULT)); - entries.put(new ComparableStack(ModItems.nuclear_waste), new CustomNukeEntry(EnumBombType.DIRTY, 1.025F, EnumEntryType.MULT)); - entries.put(new ComparableStack(ModBlocks.block_waste), new CustomNukeEntry(EnumBombType.DIRTY, 1.25F, EnumEntryType.MULT)); - entries.put(new ComparableStack(ModBlocks.yellow_barrel), new CustomNukeEntry(EnumBombType.DIRTY, 1.2F, EnumEntryType.MULT)); + entries.put(new ComparableStack(ModItems.custom_euph), new CustomNukeEntry(EnumBombType.EUPH, 2F)); + entries.put(new ComparableStack(ModItems.powder_euphemium), new CustomNukeEntry(EnumBombType.EUPH, 1F)); + entries.put(new ComparableStack(ModBlocks.block_euphemium), new CustomNukeEntry(EnumBombType.EUPH, 10F)); } public float tnt; public float nuke; public float hydro; - public float amat; + public float bale; public float dirty; public float schrab; + public float sol; public float euph; @SuppressWarnings("incomplete-switch") @@ -155,9 +239,10 @@ public void update() { float tnt = 0F, tntMod = 1F; float nuke = 0F, nukeMod = 1F; float hydro = 0F, hydroMod = 1F; - float amat = 0F, amatMod = 1F; + float bale = 0F, baleMod = 1F; float dirty = 0F, dirtyMod = 1F; float schrab = 0F, schrabMod = 1F; + float sol = 0F, solMod = 1F; float euph = 0F; for(int i = 0; i < inventory.getSlots(); i ++) { @@ -177,9 +262,10 @@ public void update() { case TNT: tnt += ent.value; break; case NUKE: nuke += ent.value; break; case HYDRO: hydro += ent.value; break; - case AMAT: amat += ent.value; break; + case BALE: bale += ent.value; break; case DIRTY: dirty += ent.value; break; case SCHRAB: schrab += ent.value; break; + case SOL: sol += ent.value; break; case EUPH: euph += ent.value; break; } @@ -189,8 +275,9 @@ public void update() { case TNT: tntMod *= ent.value; break; case NUKE: nukeMod *= ent.value; break; case HYDRO: hydroMod *= ent.value; break; - case AMAT: amatMod *= ent.value; break; + case BALE: baleMod *= ent.value; break; case DIRTY: dirtyMod *= ent.value; break; + case SOL: solMod *= ent.value; break; case SCHRAB: schrabMod *= ent.value; break; } } @@ -198,23 +285,26 @@ public void update() { tnt *= tntMod; nuke *= nukeMod; hydro *= hydroMod; - amat *= amatMod; + bale *= baleMod; dirty *= dirtyMod; + sol *= solMod; schrab *= schrabMod; if(tnt < 16) nuke = 0; if(nuke < 100) hydro = 0; - if(nuke < 50) amat = 0; + if(nuke < 50) bale = 0; if(nuke < 50) schrab = 0; - if(schrab == 0) euph = 0; - - this.tnt = tnt; - this.nuke = nuke; - this.hydro = hydro; - this.amat = amat; - this.dirty = dirty; - this.schrab = schrab; - this.euph = euph; + if(nuke < 25) sol = 0; + if(schrab < 1 || sol < 1) euph = 0; + + this.tnt = Math.min(tnt, BombConfig.maxCustomTNTRadius); + this.nuke = Math.min(nuke, BombConfig.maxCustomNukeRadius); + this.hydro = Math.min(hydro, BombConfig.maxCustomHydroRadius); + this.bale = Math.min(bale, BombConfig.maxCustomBaleRadius); + this.dirty = Math.min(dirty, BombConfig.maxCustomDirtyRadius); + this.schrab = Math.min(schrab, BombConfig.maxCustomSchrabRadius); + this.sol = Math.min(sol, BombConfig.maxCustomSolRadius); + this.euph = Math.min(euph, BombConfig.maxCustomEuphLvl); } public float getNukeAdj() { @@ -222,7 +312,7 @@ public float getNukeAdj() { if(nuke == 0) return 0; - return Math.min(nuke + tnt / 2, NukeCustom.maxNuke); + return Math.min(nuke + tnt / 2, BombConfig.maxCustomNukeRadius); } public float getHydroAdj() { @@ -230,15 +320,15 @@ public float getHydroAdj() { if(hydro == 0) return 0; - return Math.min(hydro + nuke / 2 + tnt / 4, NukeCustom.maxHydro); + return Math.min(hydro + nuke / 2 + tnt / 4, BombConfig.maxCustomHydroRadius); } - public float getAmatAdj() { + public float getBaleAdj() { - if(amat == 0) + if(bale == 0) return 0; - return Math.min(amat + hydro / 2 + nuke / 4 + tnt / 8, NukeCustom.maxAmat); + return Math.min(bale + hydro / 2 + nuke / 4 + tnt / 8, BombConfig.maxCustomBaleRadius); } public float getSchrabAdj() { @@ -246,7 +336,15 @@ public float getSchrabAdj() { if(schrab == 0) return 0; - return Math.min(schrab + amat / 2 + hydro / 4 + nuke / 8 + tnt / 16, NukeCustom.maxSchrab); + return Math.min(schrab + bale / 2 + hydro / 4 + nuke / 8 + tnt / 16, BombConfig.maxCustomSchrabRadius); + } + + public float getSolAdj() { + + if(sol == 0) + return 0; + + return Math.min(sol + schrab / 2 + bale / 4 + hydro / 8 + nuke / 16 + tnt / 32, BombConfig.maxCustomSolRadius); } public boolean isFalling() { @@ -289,9 +387,10 @@ public static enum EnumBombType { TNT("TNT"), NUKE("Nuclear"), HYDRO("Hydrogen"), - AMAT("Antimatter"), + BALE("Balefire"), DIRTY("Salted"), SCHRAB("Schrabidium"), + SOL("Solinium"), EUPH("Anti Mass"); String name; diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeMan.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeMan.java index 9d7e07e424..0b3c0eb81b 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeMan.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeMan.java @@ -70,7 +70,7 @@ public boolean isReady() { } public boolean exp1() { - if(this.inventory.getStackInSlot(1) != ItemStack.EMPTY && this.inventory.getStackInSlot(1).getItem() == ModItems.man_explosive8) + if(this.inventory.getStackInSlot(1) != ItemStack.EMPTY && this.inventory.getStackInSlot(1).getItem() == ModItems.gadget_explosive8) { return true; } @@ -79,7 +79,7 @@ public boolean exp1() { } public boolean exp2() { - if(this.inventory.getStackInSlot(2) != ItemStack.EMPTY && this.inventory.getStackInSlot(2).getItem() == ModItems.man_explosive8) + if(this.inventory.getStackInSlot(2) != ItemStack.EMPTY && this.inventory.getStackInSlot(2).getItem() == ModItems.gadget_explosive8) { return true; } @@ -88,7 +88,7 @@ public boolean exp2() { } public boolean exp3() { - if(this.inventory.getStackInSlot(3) != ItemStack.EMPTY && this.inventory.getStackInSlot(3).getItem() == ModItems.man_explosive8) + if(this.inventory.getStackInSlot(3) != ItemStack.EMPTY && this.inventory.getStackInSlot(3).getItem() == ModItems.gadget_explosive8) { return true; } @@ -97,7 +97,7 @@ public boolean exp3() { } public boolean exp4() { - if(this.inventory.getStackInSlot(4) != ItemStack.EMPTY && this.inventory.getStackInSlot(4).getItem() == ModItems.man_explosive8) + if(this.inventory.getStackInSlot(4) != ItemStack.EMPTY && this.inventory.getStackInSlot(4).getItem() == ModItems.gadget_explosive8) { return true; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCharger.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCharger.java new file mode 100644 index 0000000000..4bbd70ed7e --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCharger.java @@ -0,0 +1,139 @@ +package com.hbm.tileentity.machine; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.blocks.machine.MachineCharger; +import com.hbm.tileentity.INBTPacketReceiver; +import com.hbm.tileentity.TileEntityLoadedBase; + +import api.hbm.energy.IBatteryItem; +import api.hbm.energy.IEnergyUser; +import net.minecraft.util.ITickable; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.math.AxisAlignedBB; + +public class TileEntityCharger extends TileEntityLoadedBase implements ITickable, IEnergyUser, INBTPacketReceiver { + + public static final int range = 3; + + private List players = new ArrayList(); + private long maxChargeRate; + public long charge = 0; + public long actualCharge = 0; + public long totalCapacity = 0; + public long totalEnergy = 0; + private int lastOp = 0; + + public boolean isOn = false; + public boolean pointingUp = true; + + @Override + public void update() { + + if(!world.isRemote) { + MachineCharger c = (MachineCharger)world.getBlockState(pos).getBlock(); + this.maxChargeRate = c.maxThroughput; + this.pointingUp = c.pointingUp; + + this.updateStandardConnections(world, pos); + + players = world.getEntitiesWithinAABB(EntityPlayer.class, new AxisAlignedBB(pos.getX(), pos.getY(), pos.getZ(), pos.getX() + 1, pos.getY() + (pointingUp ? range : -range), pos.getZ() + 1)); + + totalCapacity = 0; + totalEnergy = 0; + charge = 0; + + for(EntityPlayer player : players) { + InventoryPlayer inv = player.inventory; + for(int i = 0; i < inv.getSizeInventory(); i ++){ + + ItemStack stack = inv.getStackInSlot(i); + if(stack != null && stack.getItem() instanceof IBatteryItem) { + IBatteryItem battery = (IBatteryItem) stack.getItem(); + totalCapacity += battery.getMaxCharge(); + totalEnergy += battery.getCharge(stack); + charge += Math.min(battery.getMaxCharge() - battery.getCharge(stack), battery.getChargeRate()); + } + } + } + + isOn = lastOp > 0; + + if(isOn) { + lastOp--; + } + + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean("o", isOn); + data.setBoolean("u", pointingUp); + data.setLong("m", totalCapacity); + data.setLong("v", totalEnergy); + data.setLong("c", charge); + data.setLong("a", actualCharge); + INBTPacketReceiver.networkPack(this, data, 50); + actualCharge = 0; + } + } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + this.isOn = nbt.getBoolean("o"); + this.pointingUp = nbt.getBoolean("u"); + this.totalCapacity = nbt.getLong("m"); + this.totalEnergy = nbt.getLong("v"); + this.charge = nbt.getLong("c"); + this.actualCharge = nbt.getLong("a"); + } + + @Override + public long getPower() { + return 0; + } + + @Override + public long getMaxPower() { + return Math.min(charge, maxChargeRate); + } + + @Override + public void setPower(long power) { } + + @Override + public long transferPower(long power) { + + if(power == 0) + return power; + + actualCharge = 0; + long chargeBudget = maxChargeRate; + for(EntityPlayer player : players) { + InventoryPlayer inv = player.inventory; + for(int i = 0; i < inv.getSizeInventory(); i ++){ + + if(chargeBudget > 0 && power > 0){ + ItemStack stack = inv.getStackInSlot(i); + + if(stack != null && stack.getItem() instanceof IBatteryItem) { + IBatteryItem battery = (IBatteryItem) stack.getItem(); + + long toCharge = Math.min(battery.getMaxCharge() - battery.getCharge(stack), battery.getChargeRate()); + toCharge = Math.min(toCharge, chargeBudget); + toCharge = Math.min(toCharge, power); + battery.chargeBattery(stack, toCharge); + power -= toCharge; + actualCharge += toCharge; + chargeBudget -= toCharge; + + lastOp = 4; + } + } + } + } + + return power; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java index fae3c85f17..718a156e81 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java @@ -33,6 +33,7 @@ public class TileEntityChungus extends TileEntityLoadedBase implements ITickable, IFluidHandler, IEnergyGenerator, INBTPacketReceiver { + public long powerProduction = 0; public long power; public static final long maxPower = 100000000000L; private int turnTimer; @@ -70,7 +71,8 @@ public void update() { tanks[0].drain((Integer)outs[2] * cycles, true); tanks[1].fill(new FluidStack(types[1], (Integer)outs[1] * cycles), true); - power += (Integer)outs[3] * cycles; + powerProduction = (Integer)outs[3] * cycles; + power += powerProduction; if(power > maxPower) power = maxPower; @@ -114,6 +116,7 @@ public void update() { public void networkPack() { NBTTagCompound data = new NBTTagCompound(); + data.setLong("powerP", powerProduction); data.setLong("power", power); data.setString("type", types[0].getName()); data.setInteger("operational", turnTimer); @@ -126,6 +129,7 @@ public void networkPack() { @Override public void networkUnpack(NBTTagCompound data) { FFUtils.deserializeTankArray(data.getTagList("tanks", 10), tanks); + this.powerProduction = data.getLong("powerP"); this.power = data.getLong("power"); this.turnTimer = data.getInteger("operational"); if(data.hasKey("types0")) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreAdvanced.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreAdvanced.java index b966045318..8d2f68f483 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreAdvanced.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreAdvanced.java @@ -1,13 +1,13 @@ package com.hbm.tileentity.machine; import com.hbm.blocks.ModBlocks; -import com.hbm.interfaces.IFactory; import com.hbm.lib.ForgeDirection; +import com.hbm.lib.Library; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemBattery; -import com.hbm.tileentity.TileEntityLoadedBase; +import com.hbm.tileentity.INBTPacketReceiver; +import com.hbm.tileentity.TileEntityMachineBase; -import api.hbm.energy.IBatteryItem; import api.hbm.energy.IEnergyUser; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.SoundEvents; @@ -21,70 +21,31 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos.MutableBlockPos; import net.minecraft.world.World; -import net.minecraftforge.common.capabilities.Capability; -import net.minecraftforge.common.capabilities.ICapabilityProvider; -import net.minecraftforge.items.CapabilityItemHandler; -import net.minecraftforge.items.ItemStackHandler; -public class TileEntityCoreAdvanced extends TileEntityLoadedBase implements ITickable, IFactory, IEnergyUser { +public class TileEntityCoreAdvanced extends TileEntityMachineBase implements ITickable, IEnergyUser, INBTPacketReceiver { public int progress = 0; + public int progressStep = 1; public long power = 0; public int soundCycle = 0; - public final static int processTime = 100; - public final static int maxPower = (int)((ItemBattery)ModItems.factory_core_advanced).getMaxCharge(); - public ItemStackHandler inventory; - public ICapabilityProvider dropProvider; - - private String customName; + public boolean hasCluster = false; + public final static long powerPerStep = 2000L; + public final static int processTime = 400; + public final static long maxPower = 10000000L; public TileEntityCoreAdvanced() { - inventory = new ItemStackHandler(27){ - @Override - protected void onContentsChanged(int slot) { - markDirty(); - super.onContentsChanged(slot); - } - }; - dropProvider = new ICapabilityProvider(){ - - @Override - public boolean hasCapability(Capability capability, EnumFacing facing) { - return capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY; - } - - @Override - public T getCapability(Capability capability, EnumFacing facing) { - return capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY ? CapabilityItemHandler.ITEM_HANDLER_CAPABILITY.cast(inventory) : null; - } - - }; + super(27); } - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.factoryAdvanced"; - } - - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - public boolean isUseableByPlayer(EntityPlayer player) { - if(world.getTileEntity(pos) != this) - { - return false; - }else{ - return player.getDistanceSq(pos.getX() + 0.5D, pos.getY() + 0.5D, pos.getZ() + 0.5D) <=64; - } + public String getName() { + return "container.factoryAdvanced"; } @Override public void readFromNBT(NBTTagCompound compound) { - this.progress = compound.getShort("cookTime"); + this.progress = compound.getInteger("cookTime"); + this.progressStep = compound.getInteger("speed"); + power = compound.getLong("power"); if(compound.hasKey("inventory")) inventory.deserializeNBT(compound.getCompoundTag("inventory")); super.readFromNBT(compound); @@ -92,61 +53,20 @@ public void readFromNBT(NBTTagCompound compound) { @Override public NBTTagCompound writeToNBT(NBTTagCompound compound) { - compound.setShort("cookTime", (short) progress); + compound.setInteger("cookTime", progress); + compound.setInteger("speed", this.progressStep); + compound.setLong("power", power); compound.setTag("inventory", inventory.serializeNBT()); return super.writeToNBT(compound); } - @Override - public void update() { - this.trySubscribe(world, pos.add(0, 1, 0), ForgeDirection.UP); - if(inventory.getStackInSlot(22).getItem() == ModItems.factory_core_advanced) - { - this.power = (int) ((IBatteryItem)inventory.getStackInSlot(22).getItem()).getCharge(inventory.getStackInSlot(22)); - } else { - this.power = 0; - } - - if(inventory.getStackInSlot(9).isEmpty()) - { - for(int i = 0; i < 9; i++) - { - if(isProcessable(inventory.getStackInSlot(i))) - { - inventory.setStackInSlot(9, inventory.getStackInSlot(i).copy()); - inventory.setStackInSlot(i, ItemStack.EMPTY); - break; - } - } - } else { - for(int i = 0; i < 9; i++) - { - if(!inventory.getStackInSlot(i).isEmpty()) - { - if(inventory.getStackInSlot(i).getItem() == inventory.getStackInSlot(9).getItem() && inventory.getStackInSlot(i).getItemDamage() == inventory.getStackInSlot(9).getItemDamage()) - { - if(inventory.getStackInSlot(9).getCount() + inventory.getStackInSlot(i).getCount() <= inventory.getStackInSlot(i).getMaxStackSize()) - { - inventory.getStackInSlot(9).grow(inventory.getStackInSlot(i).getCount()); - inventory.setStackInSlot(i, ItemStack.EMPTY); - } else { - int j = inventory.getStackInSlot(9).getMaxStackSize() - inventory.getStackInSlot(9).getCount(); - inventory.getStackInSlot(9).grow(j); - inventory.getStackInSlot(i).shrink(j); - } - break; - } - } - } - } - - if(inventory.getStackInSlot(10).isEmpty()) - { + public void moveToSlotIfProcessable(int slot){ + if(inventory.getStackInSlot(slot).isEmpty()) { for(int i = 0; i < 9; i++) { if(isProcessable(inventory.getStackInSlot(i))) { - inventory.setStackInSlot(10, inventory.getStackInSlot(i).copy()); + inventory.setStackInSlot(slot, inventory.getStackInSlot(i).copy()); inventory.setStackInSlot(i, ItemStack.EMPTY); break; } @@ -156,15 +76,15 @@ public void update() { { if(!inventory.getStackInSlot(i).isEmpty()) { - if(inventory.getStackInSlot(i).getItem() == inventory.getStackInSlot(10).getItem() && inventory.getStackInSlot(i).getItemDamage() == inventory.getStackInSlot(10).getItemDamage()) + if(Library.areItemStacksEqualIgnoreCount(inventory.getStackInSlot(i), inventory.getStackInSlot(slot))) { - if(inventory.getStackInSlot(10).getCount() + inventory.getStackInSlot(i).getCount() <= inventory.getStackInSlot(i).getMaxStackSize()) + if(inventory.getStackInSlot(slot).getCount() + inventory.getStackInSlot(i).getCount() <= inventory.getStackInSlot(i).getMaxStackSize()) { - inventory.getStackInSlot(10).grow(inventory.getStackInSlot(i).getCount()); + inventory.getStackInSlot(slot).grow(inventory.getStackInSlot(i).getCount()); inventory.setStackInSlot(i, ItemStack.EMPTY); } else { - int j = inventory.getStackInSlot(10).getMaxStackSize() - inventory.getStackInSlot(10).getCount(); - inventory.getStackInSlot(10).grow(j); + int j = inventory.getStackInSlot(slot).getMaxStackSize() - inventory.getStackInSlot(slot).getCount(); + inventory.getStackInSlot(slot).grow(j); inventory.getStackInSlot(i).shrink(j); } break; @@ -172,335 +92,140 @@ public void update() { } } } - - if(inventory.getStackInSlot(23).isEmpty()) - { - for(int i = 0; i < 9; i++) - { - if(isProcessable(inventory.getStackInSlot(i))) - { - inventory.setStackInSlot(23, inventory.getStackInSlot(i).copy()); - inventory.setStackInSlot(i, ItemStack.EMPTY); - break; - } + } + + public boolean hasSpace(int input, int output){ + boolean isEmpty = inventory.getStackInSlot(output).isEmpty(); + if(isEmpty) return true; + ItemStack outputStack = FurnaceRecipes.instance().getSmeltingResult(inventory.getStackInSlot(input)); + return Library.areItemStacksEqualIgnoreCount(outputStack, inventory.getStackInSlot(output)) && inventory.getStackInSlot(output).getCount() < inventory.getStackInSlot(output).getMaxStackSize(); + } + + public boolean hasSpaceForAll(){ + return hasSpace(9, 11) && + hasSpace(10, 12) && + hasSpace(23, 25) && + hasSpace(24, 26); + } + + public boolean hasSomethingToProcess(){ + return isProcessable(inventory.getStackInSlot(9)) || + isProcessable(inventory.getStackInSlot(10)) || + isProcessable(inventory.getStackInSlot(23)) || + isProcessable(inventory.getStackInSlot(24)); + } + + public void process(int input, int output){ + if(isProcessable(inventory.getStackInSlot(input))) { + ItemStack itemStack = FurnaceRecipes.instance().getSmeltingResult(inventory.getStackInSlot(input)); + + if(inventory.getStackInSlot(output).isEmpty()) { + inventory.setStackInSlot(output, itemStack.copy()); + }else if(Library.areItemStacksEqualIgnoreCount(inventory.getStackInSlot(output), itemStack)) { + inventory.getStackInSlot(output).grow(itemStack.getCount()); } - } else { - for(int i = 0; i < 9; i++) - { - if(!inventory.getStackInSlot(i).isEmpty()) - { - if(inventory.getStackInSlot(i).getItem() == inventory.getStackInSlot(23).getItem() && inventory.getStackInSlot(i).getItemDamage() == inventory.getStackInSlot(23).getItemDamage()) - { - if(inventory.getStackInSlot(23).getCount() + inventory.getStackInSlot(i).getCount() <= inventory.getStackInSlot(i).getMaxStackSize()) - { - inventory.getStackInSlot(23).grow(inventory.getStackInSlot(i).getCount()); - inventory.setStackInSlot(i, ItemStack.EMPTY); - } else { - int j = inventory.getStackInSlot(23).getMaxStackSize() - inventory.getStackInSlot(23).getCount(); - inventory.getStackInSlot(23).grow(j); - inventory.getStackInSlot(i).shrink(j); - } - break; - } - } + + inventory.getStackInSlot(input).shrink(1); + if(inventory.getStackInSlot(input).isEmpty()) { + inventory.setStackInSlot(input, ItemStack.EMPTY); } } - - if(inventory.getStackInSlot(24).isEmpty()) + } + + public void moveToOuput(int slot){ + if(!inventory.getStackInSlot(slot).isEmpty()) { for(int i = 0; i < 9; i++) { - if(isProcessable(inventory.getStackInSlot(i))) - { - inventory.setStackInSlot(24, inventory.getStackInSlot(i).copy()); - inventory.setStackInSlot(i, ItemStack.EMPTY); - break; - } - } - } else { - for(int i = 0; i < 9; i++) - { - if(!inventory.getStackInSlot(i).isEmpty()) - { - if(inventory.getStackInSlot(i).getItem() == inventory.getStackInSlot(24).getItem() && inventory.getStackInSlot(i).getItemDamage() == inventory.getStackInSlot(24).getItemDamage()) - { - if(inventory.getStackInSlot(24).getCount() + inventory.getStackInSlot(i).getCount() <= inventory.getStackInSlot(i).getMaxStackSize()) - { - inventory.getStackInSlot(24).grow(inventory.getStackInSlot(i).getCount()); - inventory.setStackInSlot(i, ItemStack.EMPTY); + int j = i + 13; + if(inventory.getStackInSlot(j).isEmpty()) { + inventory.setStackInSlot(j, inventory.getStackInSlot(slot).copy()); + inventory.setStackInSlot(slot, ItemStack.EMPTY); + return; + } else if(Library.areItemStacksEqualIgnoreCount(inventory.getStackInSlot(j), inventory.getStackInSlot(slot))) { + ItemStack stack = inventory.getStackInSlot(j); + int k = stack.getMaxStackSize() - stack.getCount(); + if(k > 0) { //needs k items until stack is complete + + if(stack.getCount() + inventory.getStackInSlot(slot).getCount() <= inventory.getStackInSlot(slot).getMaxStackSize()) { + inventory.getStackInSlot(j).grow(inventory.getStackInSlot(slot).getCount()); + inventory.setStackInSlot(slot, ItemStack.EMPTY); + return; } else { - int j = inventory.getStackInSlot(24).getMaxStackSize() - inventory.getStackInSlot(24).getCount(); - inventory.getStackInSlot(24).grow(j); - inventory.getStackInSlot(i).shrink(j); + + if(k < 0) { + inventory.getStackInSlot(j).grow(k); + inventory.getStackInSlot(26).shrink(k); + continue; + } } - break; } } } } - - if(this.power > 0 && (isProcessable(inventory.getStackInSlot(9)) || isProcessable(inventory.getStackInSlot(10)) || isProcessable(inventory.getStackInSlot(23)) || isProcessable(inventory.getStackInSlot(24))) && isStructureValid(world)) - { - this.progress += 1; - ((ItemBattery)inventory.getStackInSlot(22).getItem()).dischargeBattery(inventory.getStackInSlot(22), 1); - if(soundCycle == 0) - this.world.playSound(null, pos.getX(), pos.getY(), pos.getZ(), SoundEvents.ENTITY_MINECART_RIDING, SoundCategory.BLOCKS, 1.0F, 0.75F); - soundCycle++; - - if(soundCycle >= 50) - soundCycle = 0; - } else { - this.progress = 0; - } - - if(!inventory.getStackInSlot(9).isEmpty() && !inventory.getStackInSlot(11).isEmpty() && (FurnaceRecipes.instance().getSmeltingResult(inventory.getStackInSlot(9)).getItem() != inventory.getStackInSlot(11).getItem() || FurnaceRecipes.instance().getSmeltingResult(inventory.getStackInSlot(9)).getItemDamage() != inventory.getStackInSlot(11).getItemDamage())) - { - this.progress = 0; - } - - if(!inventory.getStackInSlot(10).isEmpty() && !inventory.getStackInSlot(12).isEmpty() && (FurnaceRecipes.instance().getSmeltingResult(inventory.getStackInSlot(10)).getItem() != inventory.getStackInSlot(12).getItem() || FurnaceRecipes.instance().getSmeltingResult(inventory.getStackInSlot(10)).getItemDamage() != inventory.getStackInSlot(12).getItemDamage())) - { - this.progress = 0; - } - - if(!inventory.getStackInSlot(23).isEmpty() && !inventory.getStackInSlot(25).isEmpty() && (FurnaceRecipes.instance().getSmeltingResult(inventory.getStackInSlot(23)).getItem() != inventory.getStackInSlot(25).getItem() || FurnaceRecipes.instance().getSmeltingResult(inventory.getStackInSlot(23)).getItemDamage() != inventory.getStackInSlot(25).getItemDamage())) - { - this.progress = 0; - } - - if(!inventory.getStackInSlot(24).isEmpty() && !inventory.getStackInSlot(26).isEmpty() && (FurnaceRecipes.instance().getSmeltingResult(inventory.getStackInSlot(24)).getItem() != inventory.getStackInSlot(26).getItem() || FurnaceRecipes.instance().getSmeltingResult(inventory.getStackInSlot(24)).getItemDamage() != inventory.getStackInSlot(26).getItemDamage())) - { - this.progress = 0; - } - - if(this.progress >= TileEntityCoreAdvanced.processTime) - { - if(isProcessable(inventory.getStackInSlot(9))) - { - ItemStack itemStack = FurnaceRecipes.instance().getSmeltingResult(inventory.getStackInSlot(9)); - if(inventory.getStackInSlot(11).isEmpty()) - { - inventory.setStackInSlot(11, itemStack.copy()); - }else if(inventory.getStackInSlot(11).isItemEqual(itemStack)) { - inventory.getStackInSlot(11).grow(itemStack.getCount()); - } - if(inventory.getStackInSlot(9).isEmpty()) - { - inventory.setStackInSlot(9, new ItemStack(inventory.getStackInSlot(9).getItem())); - }else{ - inventory.getStackInSlot(9).shrink(1); - } - if(inventory.getStackInSlot(9).isEmpty()) - { - inventory.setStackInSlot(9, ItemStack.EMPTY); - } - } - if(isProcessable(inventory.getStackInSlot(10))) - { - ItemStack itemStack = FurnaceRecipes.instance().getSmeltingResult(inventory.getStackInSlot(10)); - if(inventory.getStackInSlot(12).isEmpty()) - { - inventory.setStackInSlot(12, itemStack.copy()); - }else if(inventory.getStackInSlot(12).isItemEqual(itemStack)) { - inventory.getStackInSlot(12).grow(itemStack.getCount()); - } - if(inventory.getStackInSlot(10).isEmpty()) - { - inventory.setStackInSlot(10, new ItemStack(inventory.getStackInSlot(10).getItem())); - }else{ - inventory.getStackInSlot(10).shrink(1); - } - if(inventory.getStackInSlot(10).isEmpty()) - { - inventory.setStackInSlot(10, ItemStack.EMPTY); - } - } - if(isProcessable(inventory.getStackInSlot(23))) - { - ItemStack itemStack = FurnaceRecipes.instance().getSmeltingResult(inventory.getStackInSlot(23)); - if(inventory.getStackInSlot(25).isEmpty()) - { - inventory.setStackInSlot(25, itemStack.copy()); - }else if(inventory.getStackInSlot(25).isItemEqual(itemStack)) { - inventory.getStackInSlot(25).grow(itemStack.getCount()); - } - if(inventory.getStackInSlot(23).isEmpty()) - { - inventory.setStackInSlot(23, new ItemStack(inventory.getStackInSlot(23).getItem())); - }else{ - inventory.getStackInSlot(23).shrink(1); - } - if(inventory.getStackInSlot(23).isEmpty()) - { - inventory.setStackInSlot(23, ItemStack.EMPTY); - } - } - if(isProcessable(inventory.getStackInSlot(24))) - { - ItemStack itemStack = FurnaceRecipes.instance().getSmeltingResult(inventory.getStackInSlot(24)); - if(inventory.getStackInSlot(26).isEmpty()) - { - inventory.setStackInSlot(26, itemStack.copy()); - }else if(inventory.getStackInSlot(26).isItemEqual(itemStack)) { - inventory.getStackInSlot(26).grow(itemStack.getCount()); - } - if(inventory.getStackInSlot(24).isEmpty()) - { - inventory.setStackInSlot(24, new ItemStack(inventory.getStackInSlot(24).getItem())); - }else{ - inventory.getStackInSlot(24).shrink(1); - } - if(inventory.getStackInSlot(24).isEmpty()) - { - inventory.setStackInSlot(24, ItemStack.EMPTY); - } - } + } + + @Override + public void update() { + if(!world.isRemote && isStructureValid(world)) { + this.trySubscribe(world, pos.add(0, 2, 0), ForgeDirection.UP); + this.trySubscribe(world, pos.add(0, -2, 0), ForgeDirection.DOWN); + hasCluster = inventory.getStackInSlot(22).getItem() == ModItems.factory_core_advanced; - this.progress = 0; - } + moveToSlotIfProcessable(9); + moveToSlotIfProcessable(10); + moveToSlotIfProcessable(23); + moveToSlotIfProcessable(24); + - if(!inventory.getStackInSlot(11).isEmpty()) - { - for(int i = 0; i < 9; i++) - { - int j = i + 13; - if(!inventory.getStackInSlot(j).isEmpty()) - { - if(inventory.getStackInSlot(j).getItem() == inventory.getStackInSlot(11).getItem() && inventory.getStackInSlot(j).getItemDamage() == inventory.getStackInSlot(11).getItemDamage()) - { - if(inventory.getStackInSlot(j).getCount() < inventory.getStackInSlot(j).getMaxStackSize()) - { - if(inventory.getStackInSlot(j).getCount() + inventory.getStackInSlot(11).getCount() <= inventory.getStackInSlot(11).getMaxStackSize()) - { - inventory.getStackInSlot(j).grow(inventory.getStackInSlot(11).getCount()); - inventory.setStackInSlot(11, ItemStack.EMPTY); - break; - } else { - int k = inventory.getStackInSlot(j).getMaxStackSize() - inventory.getStackInSlot(j).getCount(); - if(k < 0) - { - inventory.getStackInSlot(j).grow(k); - inventory.getStackInSlot(11).shrink(k); - break; - } - } - } - } - } else { - inventory.setStackInSlot(j, inventory.getStackInSlot(11).copy()); - inventory.setStackInSlot(11, ItemStack.EMPTY); - break; - } - } - } - - if(!inventory.getStackInSlot(12).isEmpty()) - { - for(int i = 0; i < 9; i++) - { - int j = i + 13; - if(!inventory.getStackInSlot(j).isEmpty()) - { - if(inventory.getStackInSlot(j).getItem() == inventory.getStackInSlot(12).getItem() && inventory.getStackInSlot(j).getItemDamage() == inventory.getStackInSlot(12).getItemDamage()) - { - if(inventory.getStackInSlot(j).getCount() < inventory.getStackInSlot(j).getMaxStackSize()) - { - if(inventory.getStackInSlot(j).getCount() + inventory.getStackInSlot(12).getCount() <= inventory.getStackInSlot(12).getMaxStackSize()) - { - inventory.getStackInSlot(j).grow(inventory.getStackInSlot(12).getCount()); - inventory.setStackInSlot(12, ItemStack.EMPTY); - break; - } else { - int k = inventory.getStackInSlot(j).getMaxStackSize() - inventory.getStackInSlot(j).getCount(); - if(k < 0) - { - inventory.getStackInSlot(j).grow(k); - inventory.getStackInSlot(12).shrink(k); - break; - } - } - } - } - } else { - inventory.setStackInSlot(j, inventory.getStackInSlot(12).copy()); - inventory.setStackInSlot(12, ItemStack.EMPTY); - break; - } - } - } - - if(!inventory.getStackInSlot(25).isEmpty()) - { - for(int i = 0; i < 9; i++) - { - int j = i + 13; - if(!inventory.getStackInSlot(j).isEmpty()) - { - if(inventory.getStackInSlot(j).getItem() == inventory.getStackInSlot(25).getItem() && inventory.getStackInSlot(j).getItemDamage() == inventory.getStackInSlot(25).getItemDamage()) - { - if(inventory.getStackInSlot(j).getCount() < inventory.getStackInSlot(j).getMaxStackSize()) - { - if(inventory.getStackInSlot(j).getCount() + inventory.getStackInSlot(25).getCount() <= inventory.getStackInSlot(25).getMaxStackSize()) - { - inventory.getStackInSlot(j).grow(inventory.getStackInSlot(25).getCount()); - inventory.setStackInSlot(25, ItemStack.EMPTY); - break; - } else { - int k = inventory.getStackInSlot(j).getMaxStackSize() - inventory.getStackInSlot(j).getCount(); - if(k < 0) - { - inventory.getStackInSlot(j).grow(k); - inventory.getStackInSlot(25).shrink(k); - break; - } - } - } - } - } else { - inventory.setStackInSlot(j, inventory.getStackInSlot(25).copy()); - inventory.setStackInSlot(25, ItemStack.EMPTY); - break; + if(this.power > this.progressStep * powerPerStep && hasSomethingToProcess() && hasSpaceForAll()) { + this.progress += this.progressStep; + this.power -= this.progressStep * powerPerStep; + + if(soundCycle == 0) + this.world.playSound(null, pos.getX(), pos.getY(), pos.getZ(), SoundEvents.ENTITY_MINECART_RIDING, SoundCategory.BLOCKS, 1.0F, 0.5F); + soundCycle++; + + if(soundCycle >= 50) + soundCycle = 0; + } else { + if(!hasCluster) { + if(this.progressStep > 1 && world.rand.nextInt(10) == 0) + this.progressStep -= 1; } + this.progress = 0; } - } - - if(!inventory.getStackInSlot(26).isEmpty()) - { - for(int i = 0; i < 9; i++) - { - int j = i + 13; - if(!inventory.getStackInSlot(j).isEmpty()) - { - if(inventory.getStackInSlot(j).getItem() == inventory.getStackInSlot(26).getItem() && inventory.getStackInSlot(j).getItemDamage() == inventory.getStackInSlot(26).getItemDamage()) - { - if(inventory.getStackInSlot(j).getCount() < inventory.getStackInSlot(j).getMaxStackSize()) - { - if(inventory.getStackInSlot(j).getCount() + inventory.getStackInSlot(26).getCount() <= inventory.getStackInSlot(26).getMaxStackSize()) - { - inventory.getStackInSlot(j).grow(inventory.getStackInSlot(26).getCount()); - inventory.setStackInSlot(26, ItemStack.EMPTY); - break; - } else { - int k = inventory.getStackInSlot(j).getMaxStackSize() - inventory.getStackInSlot(j).getCount(); - if(k < 0) - { - inventory.getStackInSlot(j).grow(k); - inventory.getStackInSlot(26).shrink(k); - break; - } - } - } - } - } else { - inventory.setStackInSlot(j, inventory.getStackInSlot(26).copy()); - inventory.setStackInSlot(26, ItemStack.EMPTY); - break; - } + + if(this.progress >= TileEntityCoreAdvanced.processTime) { + process(9, 11); + process(10, 12); + process(23, 25); + process(24, 26); + this.progress = 0; + if(!hasCluster) + this.progressStep = Math.min(TileEntityCoreAdvanced.processTime, this.progressStep+1); } + + moveToOuput(11); + moveToOuput(12); + moveToOuput(25); + moveToOuput(26); + + NBTTagCompound data = new NBTTagCompound(); + data.setInteger("cookTime", progress); + data.setInteger("speed", progressStep); + data.setLong("power", power); + this.networkPack(data, 250); } } @Override + public void networkUnpack(NBTTagCompound nbt) { + this.progress = nbt.getInteger("cookTime"); + this.progressStep = nbt.getInteger("speed"); + this.power = nbt.getLong("power"); + } + public boolean isStructureValid(World world) { MutableBlockPos mPos = new BlockPos.MutableBlockPos(); int x = pos.getX(); @@ -540,19 +265,16 @@ public boolean isStructureValid(World world) { return false; } - @Override public long getPowerScaled(long i) { return (power * i) / maxPower; } - @Override public int getProgressScaled(int i) { return (progress * i) / processTime; } - @Override public boolean isProcessable(ItemStack item) { - if(item != null) + if(item != null && !item.isEmpty()) { return !FurnaceRecipes.instance().getSmeltingResult(item).isEmpty(); } else { @@ -562,20 +284,37 @@ public boolean isProcessable(ItemStack item) { @Override public long getPower() { - return power; + return this.power; } @Override public void setPower(long i) { - if(inventory.getStackInSlot(22).getItem() == ModItems.factory_core_advanced) - { - ((ItemBattery)inventory.getStackInSlot(22).getItem()).setCharge(inventory.getStackInSlot(22), (int)i); - } + this.power = i; } @Override public long getMaxPower() { return maxPower; } + + @Override + public boolean isItemValidForSlot(int slot, ItemStack stack){ + return (slot < 11 || slot == 23 || slot == 24) && isProcessable(stack); + } + + @Override + public int[] getAccessibleSlotsFromSide(EnumFacing e){ + return new int[]{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26 }; + } + + @Override + public boolean canInsertItem(int slot, ItemStack itemStack, int amount){ + return this.isItemValidForSlot(slot, itemStack); + } + + @Override + public boolean canExtractItem(int slot, ItemStack itemStack, int amount){ + return slot > 10 && slot != 22 && slot != 23 && slot != 24; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java index ba2d4da4f5..097283eb06 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java @@ -90,14 +90,17 @@ public void fillDFC(TileEntityCore core){ if(core.tanks[1].getFluid() != null) dfcTank1 = core.tanks[1].getFluid().getFluid(); - if((tank0 == dfcTank0 || dfcTank0 == null) && tank0 != dfcTank1) - if(tanks[0].drain(core.tanks[0].fill(tanks[0].getFluid(), true), true) != null) + if(tanks[0].drain(core.tanks[0].fill(tanks[0].getFluid(), true), true) != null){ + dfcTank0 = tank0; core.markDirty(); + } if((tank1 == dfcTank1 || dfcTank1 == null) && tank1 != dfcTank0) - if(tanks[1].drain(core.tanks[1].fill(tanks[1].getFluid(), true), true) != null) + if(tanks[1].drain(core.tanks[1].fill(tanks[1].getFluid(), true), true) != null){ + dfcTank1 = tank1; core.markDirty(); + } if((tank0 == dfcTank1 || dfcTank1 == null) && tank0 != dfcTank0) if(tanks[0].drain(core.tanks[1].fill(tanks[0].getFluid(), true), true) != null) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreTitanium.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreTitanium.java index 7d22eecb77..d1408e55fc 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreTitanium.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreTitanium.java @@ -1,13 +1,13 @@ package com.hbm.tileentity.machine; import com.hbm.blocks.ModBlocks; -import com.hbm.interfaces.IFactory; import com.hbm.lib.ForgeDirection; +import com.hbm.lib.Library; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemBattery; -import com.hbm.tileentity.TileEntityLoadedBase; +import com.hbm.tileentity.INBTPacketReceiver; +import com.hbm.tileentity.TileEntityMachineBase; -import api.hbm.energy.IBatteryItem; import api.hbm.energy.IEnergyUser; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.SoundEvents; @@ -20,132 +20,54 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos.MutableBlockPos; import net.minecraft.world.World; -import net.minecraftforge.common.capabilities.Capability; -import net.minecraftforge.common.capabilities.ICapabilityProvider; -import net.minecraftforge.items.CapabilityItemHandler; -import net.minecraftforge.items.ItemStackHandler; -public class TileEntityCoreTitanium extends TileEntityLoadedBase implements ITickable, IFactory, IEnergyUser { +public class TileEntityCoreTitanium extends TileEntityMachineBase implements ITickable, IEnergyUser, INBTPacketReceiver { public int progress = 0; + public int progressStep = 1; public long power = 0; public int soundCycle = 0; - public final static int processTime = 200; - public final static int maxPower = (int)((ItemBattery)ModItems.factory_core_titanium).getMaxCharge(); - public ItemStackHandler inventory; - public ICapabilityProvider dropProvider; + public boolean hasCluster = false; + public final static long powerPerStep = 200L; + public final static int processTime = 400; + public final static long maxPower = 1000000L; private String customName; public TileEntityCoreTitanium() { - inventory = new ItemStackHandler(23){ - @Override - protected void onContentsChanged(int slot) { - markDirty(); - super.onContentsChanged(slot); - } - }; - dropProvider = new ICapabilityProvider(){ - - @Override - public boolean hasCapability(Capability capability, EnumFacing facing) { - return capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY; - } - - @Override - public T getCapability(Capability capability, EnumFacing facing) { - return capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY ? CapabilityItemHandler.ITEM_HANDLER_CAPABILITY.cast(inventory) : null; - } - - }; - } - - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.factoryTitanium"; - } - - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; + super(23); } - public boolean isUseableByPlayer(EntityPlayer player) { - if(world.getTileEntity(pos) != this) - { - return false; - }else{ - return player.getDistanceSq(pos.getX() + 0.5D, pos.getY() + 0.5D, pos.getZ() + 0.5D) <=64; - } - } - - @Override - public NBTTagCompound writeToNBT(NBTTagCompound compound) { - compound.setShort("cookTime", (short) progress); - compound.setTag("inventory", inventory.serializeNBT()); - return super.writeToNBT(compound); + public String getName() { + return "container.factoryTitanium"; } @Override public void readFromNBT(NBTTagCompound compound) { - this.progress = compound.getShort("cookTime"); + this.progress = compound.getInteger("cookTime"); + this.progressStep = compound.getInteger("speed"); + power = compound.getLong("power"); if(compound.hasKey("inventory")) inventory.deserializeNBT(compound.getCompoundTag("inventory")); super.readFromNBT(compound); } @Override - public void update() { - this.trySubscribe(world, pos.add(0, 1, 0), ForgeDirection.UP); - if(inventory.getStackInSlot(22).getItem() == ModItems.factory_core_titanium) - { - this.power = (int) ((IBatteryItem)inventory.getStackInSlot(22).getItem()).getCharge(inventory.getStackInSlot(22)); - } else { - this.power = 0; - } - - if(inventory.getStackInSlot(9).isEmpty()) - { - for(int i = 0; i < 9; i++) - { - if(isProcessable(inventory.getStackInSlot(i))) - { - inventory.setStackInSlot(9, inventory.getStackInSlot(i).copy()); - inventory.setStackInSlot(i, ItemStack.EMPTY); - break; - } - } - } else { - for(int i = 0; i < 9; i++) - { - if(!inventory.getStackInSlot(i).isEmpty()) - { - if(inventory.getStackInSlot(i).getItem() == inventory.getStackInSlot(9).getItem() && inventory.getStackInSlot(i).getItemDamage() == inventory.getStackInSlot(9).getItemDamage()) - { - if(inventory.getStackInSlot(9).getCount() + inventory.getStackInSlot(i).getCount() <= inventory.getStackInSlot(i).getMaxStackSize()) - { - inventory.getStackInSlot(9).grow(inventory.getStackInSlot(i).getCount()); - inventory.setStackInSlot(i, ItemStack.EMPTY); - } else { - int j = 64 - inventory.getStackInSlot(9).getCount(); - inventory.getStackInSlot(9).grow(j); - inventory.getStackInSlot(i).shrink(j); - } - break; - } - } - } - } - - if(inventory.getStackInSlot(10).isEmpty()) - { + public NBTTagCompound writeToNBT(NBTTagCompound compound) { + compound.setInteger("cookTime", progress); + compound.setInteger("speed", this.progressStep); + compound.setLong("power", power); + compound.setTag("inventory", inventory.serializeNBT()); + return super.writeToNBT(compound); + } + + public void moveToSlotIfProcessable(int slot){ + if(inventory.getStackInSlot(slot).isEmpty()) { for(int i = 0; i < 9; i++) { if(isProcessable(inventory.getStackInSlot(i))) { - inventory.setStackInSlot(10, inventory.getStackInSlot(i).copy()); + inventory.setStackInSlot(slot, inventory.getStackInSlot(i).copy()); inventory.setStackInSlot(i, ItemStack.EMPTY); break; } @@ -155,15 +77,15 @@ public void update() { { if(!inventory.getStackInSlot(i).isEmpty()) { - if(inventory.getStackInSlot(i).getItem() == inventory.getStackInSlot(10).getItem() && inventory.getStackInSlot(i).getItemDamage() == inventory.getStackInSlot(10).getItemDamage()) + if(Library.areItemStacksEqualIgnoreCount(inventory.getStackInSlot(i), inventory.getStackInSlot(slot))) { - if(inventory.getStackInSlot(10).getCount() + inventory.getStackInSlot(i).getCount() <= inventory.getStackInSlot(i).getMaxStackSize()) + if(inventory.getStackInSlot(slot).getCount() + inventory.getStackInSlot(i).getCount() <= inventory.getStackInSlot(i).getMaxStackSize()) { - inventory.getStackInSlot(10).grow(inventory.getStackInSlot(i).getCount()); + inventory.getStackInSlot(slot).grow(inventory.getStackInSlot(i).getCount()); inventory.setStackInSlot(i, ItemStack.EMPTY); } else { - int j = 64 - inventory.getStackInSlot(10).getCount(); - inventory.getStackInSlot(10).grow(j); + int j = inventory.getStackInSlot(slot).getMaxStackSize() - inventory.getStackInSlot(slot).getCount(); + inventory.getStackInSlot(slot).grow(j); inventory.getStackInSlot(i).shrink(j); } break; @@ -171,149 +93,132 @@ public void update() { } } } - - if(this.power > 0 && (isProcessable(inventory.getStackInSlot(9)) || isProcessable(inventory.getStackInSlot(10))) && isStructureValid(world)) - { - this.progress += 1; - ((ItemBattery)inventory.getStackInSlot(22).getItem()).dischargeBattery(inventory.getStackInSlot(22), 1); - if(soundCycle == 0) - this.world.playSound(null, pos.getX(), pos.getY(), pos.getZ(), SoundEvents.ENTITY_MINECART_RIDING, SoundCategory.BLOCKS, 1.0F, 0.75F); - soundCycle++; - - if(soundCycle >= 50) - soundCycle = 0; - } else { - this.progress = 0; - } - - if(!inventory.getStackInSlot(9).isEmpty() && !inventory.getStackInSlot(11).isEmpty() && (FurnaceRecipes.instance().getSmeltingResult(inventory.getStackInSlot(9)).getItem() != inventory.getStackInSlot(11).getItem() || FurnaceRecipes.instance().getSmeltingResult(inventory.getStackInSlot(9)).getItemDamage() != inventory.getStackInSlot(11).getItemDamage())) - { - this.progress = 0; - } - - if(!inventory.getStackInSlot(10).isEmpty() && !inventory.getStackInSlot(12).isEmpty() && (FurnaceRecipes.instance().getSmeltingResult(inventory.getStackInSlot(10)).getItem() != inventory.getStackInSlot(12).getItem() || FurnaceRecipes.instance().getSmeltingResult(inventory.getStackInSlot(10)).getItemDamage() != inventory.getStackInSlot(12).getItemDamage())) - { - this.progress = 0; - } - - if(this.progress >= TileEntityCoreTitanium.processTime) - { - if(isProcessable(inventory.getStackInSlot(9))) - { - ItemStack itemStack = FurnaceRecipes.instance().getSmeltingResult(inventory.getStackInSlot(9)); - if(inventory.getStackInSlot(11).isEmpty()) - { - inventory.setStackInSlot(11, itemStack.copy()); - }else if(inventory.getStackInSlot(11).isItemEqual(itemStack)) { - inventory.getStackInSlot(11).grow(itemStack.getCount()); - } - if(inventory.getStackInSlot(9).isEmpty()) - { - inventory.setStackInSlot(9, new ItemStack(inventory.getStackInSlot(9).getItem().setFull3D())); - }else{ - inventory.getStackInSlot(9).shrink(1); - } - if(inventory.getStackInSlot(9).isEmpty()) - { - inventory.setStackInSlot(9, ItemStack.EMPTY); - } + } + + public boolean hasSpace(int input, int output){ + boolean isEmpty = inventory.getStackInSlot(output).isEmpty(); + if(isEmpty) return true; + ItemStack outputStack = FurnaceRecipes.instance().getSmeltingResult(inventory.getStackInSlot(input)); + return Library.areItemStacksEqualIgnoreCount(outputStack, inventory.getStackInSlot(output)) && inventory.getStackInSlot(output).getCount() < inventory.getStackInSlot(output).getMaxStackSize(); + } + + public boolean hasSpaceForAll(){ + return hasSpace(9, 11) && + hasSpace(10, 12); + } + + public boolean hasSomethingToProcess(){ + return isProcessable(inventory.getStackInSlot(9)) || + isProcessable(inventory.getStackInSlot(10)); + } + + public void process(int input, int output){ + if(isProcessable(inventory.getStackInSlot(input))) { + ItemStack itemStack = FurnaceRecipes.instance().getSmeltingResult(inventory.getStackInSlot(input)); + + if(inventory.getStackInSlot(output).isEmpty()) { + inventory.setStackInSlot(output, itemStack.copy()); + }else if(Library.areItemStacksEqualIgnoreCount(inventory.getStackInSlot(output), itemStack)) { + inventory.getStackInSlot(output).grow(itemStack.getCount()); } - if(isProcessable(inventory.getStackInSlot(10))) - { - ItemStack itemStack = FurnaceRecipes.instance().getSmeltingResult(inventory.getStackInSlot(10)); - if(inventory.getStackInSlot(12).isEmpty()) - { - inventory.setStackInSlot(12, itemStack.copy()); - }else if(inventory.getStackInSlot(12).isItemEqual(itemStack)) { - inventory.getStackInSlot(12).grow(itemStack.getCount()); - } - if(inventory.getStackInSlot(10).isEmpty()) - { - inventory.setStackInSlot(10, new ItemStack(inventory.getStackInSlot(10).getItem())); - }else{ - inventory.getStackInSlot(10).shrink(1); - } - if(inventory.getStackInSlot(10).isEmpty()) - { - inventory.setStackInSlot(10, ItemStack.EMPTY); - } + + inventory.getStackInSlot(input).shrink(1); + if(inventory.getStackInSlot(input).isEmpty()) { + inventory.setStackInSlot(input, ItemStack.EMPTY); } - - this.progress = 0; } - - if(!inventory.getStackInSlot(11).isEmpty()) + } + + public void moveToOuput(int slot){ + if(!inventory.getStackInSlot(slot).isEmpty()) { for(int i = 0; i < 9; i++) { int j = i + 13; - if(!inventory.getStackInSlot(j).isEmpty()) - { - if(inventory.getStackInSlot(j).getItem() == inventory.getStackInSlot(11).getItem() && inventory.getStackInSlot(j).getItemDamage() == inventory.getStackInSlot(11).getItemDamage()) - { - if(inventory.getStackInSlot(j).getCount() < inventory.getStackInSlot(j).getMaxStackSize()) - { - if(inventory.getStackInSlot(j).getCount() + inventory.getStackInSlot(11).getCount() <= inventory.getStackInSlot(11).getMaxStackSize()) - { - inventory.getStackInSlot(j).grow(inventory.getStackInSlot(11).getCount()); - inventory.setStackInSlot(11, ItemStack.EMPTY); - break; - } else { - int k = inventory.getStackInSlot(j).getMaxStackSize() - inventory.getStackInSlot(j).getCount(); - if(k < 0) - { - inventory.getStackInSlot(j).grow(k); - inventory.getStackInSlot(11).shrink(k); - break; - } + if(inventory.getStackInSlot(j).isEmpty()) { + inventory.setStackInSlot(j, inventory.getStackInSlot(slot).copy()); + inventory.setStackInSlot(slot, ItemStack.EMPTY); + return; + } else if(Library.areItemStacksEqualIgnoreCount(inventory.getStackInSlot(j), inventory.getStackInSlot(slot))) { + ItemStack stack = inventory.getStackInSlot(j); + int k = stack.getMaxStackSize() - stack.getCount(); + if(k > 0) { //needs k items until stack is complete + + if(stack.getCount() + inventory.getStackInSlot(slot).getCount() <= inventory.getStackInSlot(slot).getMaxStackSize()) { + inventory.getStackInSlot(j).grow(inventory.getStackInSlot(slot).getCount()); + inventory.setStackInSlot(slot, ItemStack.EMPTY); + return; + } else { + + if(k < 0) { + inventory.getStackInSlot(j).grow(k); + inventory.getStackInSlot(26).shrink(k); + continue; } } } - } else { - inventory.setStackInSlot(j, inventory.getStackInSlot(11).copy()); - inventory.setStackInSlot(11, ItemStack.EMPTY); - break; } } } - - if(!inventory.getStackInSlot(12).isEmpty()) - { - for(int i = 0; i < 9; i++) + } + + @Override + public void update() { + if(!world.isRemote && isStructureValid(world)) { + this.trySubscribe(world, pos.add(0, 2, 0), ForgeDirection.UP); + this.trySubscribe(world, pos.add(0, -2, 0), ForgeDirection.DOWN); + hasCluster = inventory.getStackInSlot(22).getItem() == ModItems.factory_core_titanium; + + moveToSlotIfProcessable(9); + moveToSlotIfProcessable(10); + + if(this.power > this.progressStep * powerPerStep && hasSomethingToProcess() && hasSpaceForAll()) { - int j = i + 13; - if(!inventory.getStackInSlot(j).isEmpty()) - { - if(inventory.getStackInSlot(j).getItem() == inventory.getStackInSlot(12).getItem() && inventory.getStackInSlot(j).getItemDamage() == inventory.getStackInSlot(12).getItemDamage()) - { - if(inventory.getStackInSlot(j).getCount() < inventory.getStackInSlot(j).getMaxStackSize()) - { - if(inventory.getStackInSlot(j).getCount() + inventory.getStackInSlot(12).getCount() <= inventory.getStackInSlot(12).getMaxStackSize()) - { - inventory.getStackInSlot(j).grow(inventory.getStackInSlot(12).getCount()); - inventory.setStackInSlot(12, ItemStack.EMPTY); - break; - } else { - int k = inventory.getStackInSlot(j).getMaxStackSize() - inventory.getStackInSlot(j).getCount(); - if(k < 0) - { - inventory.getStackInSlot(j).grow(k); - inventory.getStackInSlot(12).shrink(k); - break; - } - } - } - } - } else { - inventory.setStackInSlot(j, inventory.getStackInSlot(12).copy()); - inventory.setStackInSlot(12, ItemStack.EMPTY); - break; + this.progress += this.progressStep; + this.power -= this.progressStep * powerPerStep; + + if(soundCycle == 0) + this.world.playSound(null, pos.getX(), pos.getY(), pos.getZ(), SoundEvents.ENTITY_MINECART_RIDING, SoundCategory.BLOCKS, 0.75F, 0.5F); + soundCycle++; + + if(soundCycle >= 50) + soundCycle = 0; + + } else { + if(!hasCluster) { + if(this.progressStep > 1 && world.rand.nextInt(10) == 0) + this.progressStep -= 1; } + this.progress = 0; + } + + if(this.progress >= TileEntityCoreTitanium.processTime){ + + process(9, 11); + process(10, 12); + this.progress = 0; + if(!hasCluster) + this.progressStep = Math.min(100, this.progressStep+1); } + + moveToOuput(11); + moveToOuput(12); + + NBTTagCompound data = new NBTTagCompound(); + data.setInteger("cookTime", progress); + data.setInteger("speed", progressStep); + data.setLong("power", power); + this.networkPack(data, 250); } } @Override + public void networkUnpack(NBTTagCompound nbt) { + this.progress = nbt.getInteger("cookTime"); + this.progressStep = nbt.getInteger("speed"); + this.power = nbt.getLong("power"); + } + public boolean isStructureValid(World world) { MutableBlockPos mPos = new BlockPos.MutableBlockPos(); int x = pos.getX(); @@ -352,17 +257,14 @@ public boolean isStructureValid(World world) { return false; } - @Override public long getPowerScaled(long i) { return (power * i) / maxPower; } - @Override public int getProgressScaled(int i) { return (progress * i) / processTime; } - @Override public boolean isProcessable(ItemStack item) { if(item != null && !item.isEmpty()) { @@ -374,18 +276,36 @@ public boolean isProcessable(ItemStack item) { @Override public void setPower(long i) { - if(inventory.getStackInSlot(22).getItem() == ModItems.factory_core_titanium) - { - ((ItemBattery)inventory.getStackInSlot(22).getItem()).setCharge(inventory.getStackInSlot(22), (int)i); - } + this.power = i; } + @Override public long getPower() { return power; } + @Override public long getMaxPower() { return maxPower; } + @Override + public boolean isItemValidForSlot(int slot, ItemStack stack){ + return slot < 11 && isProcessable(stack); + } + + @Override + public int[] getAccessibleSlotsFromSide(EnumFacing e){ + return new int[]{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22 }; + } + + @Override + public boolean canInsertItem(int slot, ItemStack itemStack, int amount){ + return this.isItemValidForSlot(slot, itemStack); + } + + @Override + public boolean canExtractItem(int slot, ItemStack itemStack, int amount){ + return slot > 10 && slot != 22; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFactoryHatch.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFactoryHatch.java new file mode 100644 index 0000000000..d09a7718a9 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFactoryHatch.java @@ -0,0 +1,93 @@ +package com.hbm.tileentity.machine; + +import net.minecraft.block.BlockHorizontal; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; +import net.minecraftforge.common.capabilities.Capability; +import net.minecraftforge.items.CapabilityItemHandler; + +public class TileEntityFactoryHatch extends TileEntity { + + TileEntity tile; + + private boolean isTEOK(TileEntity te){ + if(te instanceof TileEntityCoreTitanium) + return ((TileEntityCoreTitanium)te).isStructureValid(world); + if(te instanceof TileEntityCoreAdvanced) + return ((TileEntityCoreAdvanced)te).isStructureValid(world); + return false; + } + + private TileEntity getTE(World world, BlockPos pos) { + EnumFacing e = world.getBlockState(pos).getValue(BlockHorizontal.FACING); + if(e == EnumFacing.NORTH) + { + TileEntity te = world.getTileEntity(pos.add(0, 0, 1)); + if(isTEOK(te)){ + return te; + } else { + return null; + } + } + if(e == EnumFacing.SOUTH) + { + TileEntity te = world.getTileEntity(pos.add(0, 0, -1)); + if(isTEOK(te)){ + return te; + } else { + return null; + } + } + if(e == EnumFacing.WEST) + { + TileEntity te = world.getTileEntity(pos.add(1, 0, 0)); + if(isTEOK(te)){ + return te; + } else { + return null; + } + } + if(e == EnumFacing.EAST) + { + TileEntity te = world.getTileEntity(pos.add(-1, 0, 0)); + if(isTEOK(te)){ + return te; + } else { + return null; + } + } + return null; + } + + @Override + public T getCapability(Capability capability, EnumFacing facing) { + if(capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY){ + if(tile == null) { + tile = this.getTE(world, pos); + if(tile == null){ + return super.getCapability(capability, facing); + } + } + return tile.getCapability(capability, facing); + } + + return super.getCapability(capability, facing); + } + + @Override + public boolean hasCapability(Capability capability, EnumFacing facing) { + if(capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY){ + if(tile == null) { + tile = this.getTE(world, pos); + if(tile == null){ + return super.hasCapability(capability, facing); + } + } + return tile.hasCapability(capability, facing); + } + + return super.hasCapability(capability, facing); + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceSteel.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceSteel.java index 859cb6a943..9d1f4a0212 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceSteel.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceSteel.java @@ -36,9 +36,6 @@ public class TileEntityFurnaceSteel extends TileEntityMachineBase implements IGU public int heat; public static final int maxHeat = 100_000; public static final double diffusion = 0.05D; - private static final int[] slots_top = new int[] {1}; - private static final int[] slots_bottom = new int[] {2, 0}; - private static final int[] slots_side = new int[] {0}; private ItemStack[] lastItems = new ItemStack[3]; public boolean wasOn = false; @@ -248,8 +245,7 @@ public boolean canSmelt(int index) { @Override public int[] getAccessibleSlotsFromSide(EnumFacing e) { - int i = e.ordinal(); - return i == 0 ? slots_bottom : (i == 1 ? slots_top : slots_side); + return new int[]{ 0, 1, 2, 3, 4, 5}; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterHeatex.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterHeatex.java index 6d84c3d606..13d97c586a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterHeatex.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterHeatex.java @@ -60,10 +60,10 @@ public TileEntityHeaterHeatex() { this.tanks = new FluidTank[2]; this.tankTypes = new Fluid[2]; - this.tanks[0] = new FluidTank(ModForgeFluids.steam, 0, 24_000); - this.tankTypes[0] = ModForgeFluids.steam; - this.tanks[1] = new FluidTank(ModForgeFluids.spentsteam, 0, 24_000); - this.tankTypes[1] = ModForgeFluids.spentsteam; + this.tanks[0] = new FluidTank(ModForgeFluids.hotcoolant, 0, 24_000); + this.tankTypes[0] = ModForgeFluids.hotcoolant; + this.tanks[1] = new FluidTank(ModForgeFluids.coolant, 0, 24_000); + this.tankTypes[1] = ModForgeFluids.coolant; } @Override @@ -126,7 +126,7 @@ public void setFluidType(){ if(inFluid.getItem() == ModItems.forge_fluid_identifier) { setFluidTypes(ItemForgeFluidIdentifier.getType(inFluid)); } - if(tankTypes[0] == null) setFluidTypes(ModForgeFluids.steam); + if(tankTypes[0] == null) setFluidTypes(ModForgeFluids.hotcoolant); } public void setFluidTypes(Fluid f){ diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java index e92f2e538c..c3901924a5 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java @@ -198,8 +198,10 @@ public int getSpeedLvl() { level += 2; if(inventory.getStackInSlot(i).getItem() == ModItems.upgrade_speed_3) level +=3; + if(inventory.getStackInSlot(i).getItem() == ModItems.upgrade_screm) + level +=6; } - return Math.min(level, 3); + return Math.min(level, 6); } public int getPowerLvl() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java index 3b8f4e04e0..f59d9cfa4d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java @@ -338,7 +338,8 @@ public void update() { if(te1 != null && te1.hasCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, MultiblockHandler.intToEnumFacing(meta).rotateY())) { IItemHandler cap = te1.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, MultiblockHandler.intToEnumFacing(meta).rotateY()); - for(int i = 5; i <= 9; i++) { + int[] outputSlots = new int[]{ 5, 6, 7, 8, 11, 12, 19, 20 }; + for(int i : outputSlots) { tryFillContainerCap(cap, i); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java index e17c97e921..14f0b4a0e4 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java @@ -11,7 +11,7 @@ import com.hbm.packet.AuxGaugePacket; import com.hbm.packet.FluidTankPacket; import com.hbm.packet.PacketDispatcher; -import com.hbm.tileentity.TileEntityLoadedBase; +import com.hbm.tileentity.TileEntityMachineBase; import api.hbm.energy.IBatteryItem; import api.hbm.energy.IEnergyGenerator; @@ -36,11 +36,8 @@ import net.minecraftforge.fluids.capability.IFluidTankProperties; import net.minecraftforge.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraftforge.items.CapabilityItemHandler; -import net.minecraftforge.items.ItemStackHandler; -public class TileEntityMachineCoal extends TileEntityLoadedBase implements ITickable, ITankPacketAcceptor, IEnergyGenerator, IFluidHandler { - - public ItemStackHandler inventory; +public class TileEntityMachineCoal extends TileEntityMachineBase implements ITickable, ITankPacketAcceptor, IEnergyGenerator, IFluidHandler { public long power; public int burnTime; @@ -53,45 +50,41 @@ public class TileEntityMachineCoal extends TileEntityLoadedBase implements ITick String customName = null; public TileEntityMachineCoal() { - this.inventory = new ItemStackHandler(4){ - @Override - protected void onContentsChanged(int slot) { - markDirty(); - super.onContentsChanged(slot); - } - @Override - public boolean isItemValid(int slot, ItemStack stack) { - if(slot == 0) - return isValidFluid(FluidUtil.getFluidContained(stack)); - if(slot == 2) - if(stack.getItem() instanceof IBatteryItem) - return true; - if(slot == 1) - if(TileEntityFurnace.getItemBurnTime(stack) > 0) - return true; - - return false; - } - @Override - public ItemStack insertItem(int slot, ItemStack stack, boolean simulate) { - if(this.isItemValid(slot, stack)) - return super.insertItem(slot, stack, simulate); - return ItemStack.EMPTY; - } - }; + super(4); tank = new FluidTank(5000); } - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.machineCoal"; + public String getName() { + return "container.machineCoal"; } - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; + @Override + public int[] getAccessibleSlotsFromSide(EnumFacing e) { + return new int[]{ 0, 1, 2, 3 }; + } + + @Override + public boolean isItemValidForSlot(int i, ItemStack stack) { + if(i == 0) + return isValidFluid(FluidUtil.getFluidContained(stack)); + if(i == 1) + if(TileEntityFurnace.getItemBurnTime(stack) > 0) + return true; + if(i == 2) + return (stack.getItem() instanceof IBatteryItem); + return true; } - public void setCustomName(String name) { - this.customName = name; + @Override + public boolean canInsertItem(int slot, ItemStack itemStack, int amount) { + return isItemValidForSlot(slot, itemStack); + } + + @Override + public boolean canExtractItem(int slot, ItemStack itemStack, int amount) { + if(slot == 3) + return true; + return false; } @Override @@ -121,8 +114,6 @@ public void update() { MachineCoal.updateBlockState(this.burnTime > 0, this.world, this.pos); } - - generate(); detectAndSendChanges(); } @@ -175,7 +166,7 @@ public boolean isItemValid() { } protected boolean inputValidForTank(int tank, int slot){ - if(inventory.getStackInSlot(slot) != ItemStack.EMPTY){ + if(inventory.getStackInSlot(slot) != null && !inventory.getStackInSlot(slot).isEmpty()){ if(isValidFluid(FluidUtil.getFluidContained(inventory.getStackInSlot(slot)))){ return true; } @@ -243,14 +234,15 @@ public void onDataPacket(NetworkManager net, SPacketUpdateTileEntity pkt) { @Override public boolean hasCapability(Capability capability, EnumFacing facing) { - return capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY || capability == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY; + return capability == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY || super.hasCapability(capability, facing); } @Override public T getCapability(Capability capability, EnumFacing facing) { - return capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY ? CapabilityItemHandler.ITEM_HANDLER_CAPABILITY.cast(inventory) : - capability == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY ? CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY.cast(this) : - super.getCapability(capability, facing); + if(capability == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY){ + return CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY.cast(this); + } + return super.getCapability(capability, facing); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java index 214ebef35a..1cb797d5e7 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java @@ -250,7 +250,7 @@ public float getFreeChance() { chance += 0.15F; } - return Math.min(chance, 0.15F); + return Math.min(chance, 0.3F); } public int getDuration() { @@ -260,14 +260,16 @@ public int getDuration() { for(int i = 5; i <= 6; i++) { if(inventory.getStackInSlot(i).getItem() == ModItems.upgrade_speed_1) - durationMod -= 0.25F; + durationMod *= 0.75F; if(inventory.getStackInSlot(i).getItem() == ModItems.upgrade_speed_2) - durationMod -= 0.5F; + durationMod *= 0.5F; if(inventory.getStackInSlot(i).getItem() == ModItems.upgrade_speed_3) - durationMod -= 0.75F; + durationMod *= 0.25F; + if(inventory.getStackInSlot(i).getItem() == ModItems.upgrade_screm) + durationMod *= 0.1F; } - return (int) (duration * Math.max(durationMod, 0.7F)); + return (int) (duration * Math.max(durationMod, 0.1F)); } public int getPowerRequired() { @@ -282,9 +284,11 @@ public int getPowerRequired() { consumption += 2000; if(inventory.getStackInSlot(i).getItem() == ModItems.upgrade_speed_3) consumption += 3000; + if(inventory.getStackInSlot(i).getItem() == ModItems.upgrade_screm) + consumption += 6000; } - return (int) (demand + Math.min(consumption, 3000)); + return (int) (demand + Math.min(consumption, 6000)); } public float getCycleCount() { @@ -301,7 +305,7 @@ public float getCycleCount() { cycles += 6; } - return Math.min(cycles, 7); + return Math.min(cycles, 13); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineEPress.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineEPress.java index 16e49e8b4a..73bc0050c3 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineEPress.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineEPress.java @@ -1,6 +1,6 @@ package com.hbm.tileentity.machine; -import com.hbm.inventory.MachineRecipes; +import com.hbm.inventory.PressRecipes; import com.hbm.items.machine.ItemStamp; import com.hbm.lib.HBMSoundHandler; import com.hbm.lib.Library; @@ -107,7 +107,7 @@ public void update() { int speed = 25; if(!inventory.getStackInSlot(1).isEmpty() && !inventory.getStackInSlot(2).isEmpty()) { - ItemStack stack = MachineRecipes.getPressResult(inventory.getStackInSlot(2).copy(), inventory.getStackInSlot(1).copy()); + ItemStack stack = PressRecipes.getPressResult(inventory.getStackInSlot(2).copy(), inventory.getStackInSlot(1).copy()); if(stack != null && (inventory.getStackInSlot(3).isEmpty() || (inventory.getStackInSlot(3).getItem() == stack.getItem() && diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java index 78781991b3..719aec7634 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java @@ -31,6 +31,8 @@ import com.hbm.util.ItemStackUtil; import api.hbm.energy.IEnergyUser; +import api.hbm.block.IDrillInteraction; +import api.hbm.block.IMiningDrill; import net.minecraft.block.Block; import net.minecraft.block.state.IBlockState; import net.minecraft.client.gui.GuiScreen; @@ -64,7 +66,7 @@ import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.IItemHandlerModifiable; -public class TileEntityMachineExcavator extends TileEntityMachineBase implements IEnergyUser, IFluidHandler, ITickable, ITankPacketAcceptor, IControlReceiver, IGUIProvider { +public class TileEntityMachineExcavator extends TileEntityMachineBase implements IEnergyUser, IFluidHandler, ITickable, ITankPacketAcceptor, IControlReceiver, IGUIProvider, IMiningDrill { public static final long maxPower = 10_000_000; public long power; @@ -92,6 +94,7 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements public double speed = 1.0D; public final long baseConsumption = 10_000L; public long consumption = baseConsumption; + protected int drillRating = 0; public FluidTank tank; public Fluid fluidType; @@ -148,6 +151,7 @@ public void update() { EnumDrillType type = this.getInstalledDrill(); if(this.enableDrill && type != null && hasEnoughPower()) { + this.drillRating = (int)(type.speed * 80); operational = true; if(bedrockDrilling) this.power -= this.getPowerConsumption() * 10; @@ -168,6 +172,7 @@ public void update() { } } else { this.targetDepth = 0; + this.drillRating = 0; } NBTTagCompound data = new NBTTagCompound(); @@ -277,7 +282,7 @@ protected boolean tryDrill(int radius) { if(targetDepth == 0 || y == 0) { radius = 1; } - + int installedTier = this.getInstalledDrill().tier; for(int ring = 1; ring <= radius; ring++) { boolean ignoreAll = true; @@ -297,7 +302,8 @@ protected boolean tryDrill(int radius) { Block b = bState.getBlock(); if(b == ModBlocks.ore_bedrock_block) { - combinedHardness = 2 * 60 * 20; + double tierDiff = ((TileEntityBedrockOre)world.getTileEntity(drillPos)).tier / (double)installedTier; + combinedHardness = (int)(2 * 60 * 20 * tierDiff); bedrockOre = new BlockPos(x, y, z); bedrockDrilling = true; enableCrusher = false; @@ -448,6 +454,17 @@ protected void breakRecursively(BlockPos drillPos, int depth) { world.setBlockState(drillPos, ModBlocks.barricade.getDefaultState()); } } + + @Override + public DrillType getDrillTier(){ + return DrillType.INDUSTRIAL; + } + + @Override + public int getDrillRating(){ + return this.drillRating; + } + protected void breakSingleBlock(IBlockState bState, BlockPos drillPos) { Block b = bState.getBlock(); NonNullList items = NonNullList.create(); @@ -464,6 +481,16 @@ protected void breakSingleBlock(IBlockState bState, BlockPos drillPos) { items.clear(); items.add(result.copy()); } + } else if(b instanceof IDrillInteraction) { + IDrillInteraction in = (IDrillInteraction) b; + if(in.canBreak(world, drillPos.getX(), drillPos.getY(), drillPos.getZ(), bState, this)){ + ItemStack drop = in.extractResource(world, drillPos.getX(), drillPos.getY(), drillPos.getZ(), bState, this); + + if(drop != null) { + items.clear(); + items.add(drop.copy()); + } + } } if(this.enableCrusher) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java index ef0cbac13e..772a524108 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java @@ -706,6 +706,10 @@ public void recievePacket(NBTTagCompound[] tags) { public void readFromNBT(NBTTagCompound compound) { tank.readFromNBT(compound.getCompoundTag("tank")); isOn = compound.getBoolean("isOn"); + power = compound.getLong("power"); + targetX = compound.getInteger("x"); + targetY = compound.getInteger("y"); + targetZ = compound.getInteger("z"); super.readFromNBT(compound); } @@ -713,6 +717,10 @@ public void readFromNBT(NBTTagCompound compound) { public NBTTagCompound writeToNBT(NBTTagCompound compound) { compound.setTag("tank", tank.writeToNBT(new NBTTagCompound())); compound.setBoolean("isOn", isOn); + compound.setLong("power", power); + compound.setInteger("x", targetX); + compound.setInteger("y", targetY); + compound.setInteger("z", targetZ); return super.writeToNBT(compound); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMixer.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMixer.java index 3d620b7a4e..7e4b33a49e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMixer.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMixer.java @@ -96,8 +96,8 @@ public void update() { this.consumption = getConsumption(); - this.consumption += speedLevel * 150; - this.consumption -= this.consumption * powerLevel * 0.25; + this.consumption *= (speedLevel+1); + this.consumption /= (powerLevel+1); this.consumption *= (overLevel * 3 + 1); for(DirPos pos : getConPos()) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePress.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePress.java index d9e5ddb4d7..7930cec454 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePress.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePress.java @@ -1,6 +1,6 @@ package com.hbm.tileentity.machine; -import com.hbm.inventory.MachineRecipes; +import com.hbm.inventory.PressRecipes; import com.hbm.items.machine.ItemStamp; import com.hbm.lib.HBMSoundHandler; import com.hbm.packet.PacketDispatcher; @@ -124,7 +124,7 @@ public void update() { int speed = power * 25 / maxPower; if(inventory.getStackInSlot(1) != ItemStack.EMPTY && inventory.getStackInSlot(2) != ItemStack.EMPTY) { - ItemStack stack = MachineRecipes.getPressResult(inventory.getStackInSlot(2).copy(), inventory.getStackInSlot(1).copy()); + ItemStack stack = PressRecipes.getPressResult(inventory.getStackInSlot(2).copy(), inventory.getStackInSlot(1).copy()); if(stack != null && (inventory.getStackInSlot(3) == ItemStack.EMPTY || (inventory.getStackInSlot(3).getItem() == stack.getItem() && inventory.getStackInSlot(3).getCount() + stack.getCount() <= inventory.getStackInSlot(3).getMaxStackSize()))) { if(progress >= maxProgress) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactor.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactor.java index cea725d66c..d08798f8bc 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactor.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactor.java @@ -6,8 +6,10 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraft.util.ITickable; +import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.AxisAlignedBB; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; @@ -17,6 +19,7 @@ public class TileEntityMachineReactor extends TileEntityMachineBase implements I public int progress; public int charge; public int heat; + public int recipeHeat; public static final int maxPower = 1000; public static final int processingSpeed = 1000; @@ -149,7 +152,7 @@ public boolean canProcess() { if(recipe == null) return false; - + recipeHeat = recipe.heat; if(this.heat < recipe.heat) return false; @@ -194,11 +197,27 @@ private void processItem() { } } + public void updateReactorPower(){ + int incomingflux = getReactorPower(pos.north()) + getReactorPower(pos.south()) + getReactorPower(pos.west()) + getReactorPower(pos.east()); + if(incomingflux > 0 && charge < 2){ + charge = 1; + heat = (incomingflux * 5) / TileEntityMachineReactorSmall.maxCoreHeat; + } + } + + public int getReactorPower(BlockPos rPos){ + TileEntity r = world.getTileEntity(rPos); + if(r == null || !(r instanceof TileEntityMachineReactorSmall)) return 0; + return ((TileEntityMachineReactorSmall)r).coreHeat; + } + @Override public void update() { if(!world.isRemote) { boolean markDirty = false; + + updateReactorPower(); if(charge == 0) { heat = 0; @@ -223,7 +242,7 @@ public void update() { if(hasPower() && canProcess()) { - progress++; + progress += heat / recipeHeat; if(this.progress == TileEntityMachineReactor.processingSpeed) { this.progress = 0; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorLarge.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorLarge.java index cf52f380b0..e7ccd46f86 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorLarge.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorLarge.java @@ -563,7 +563,7 @@ public void update() { if(world.getBlockState(mPos.setPos(x + 2, y, z)).getBlock() == ModBlocks.reactor_inserter && world.getBlockState(mPos.setPos(x + 2, y, z)).getValue(BlockHorizontal.FACING) == EnumFacing.EAST) tryInsertFrom(mPos.setPos(x + 3, y, z)); - PacketDispatcher.wrapper.sendToAllAround(new LargeReactorPacket(pos, rods, coreHeat, hullHeat, fuel, waste, type.getID()), new TargetPoint(world.provider.getDimension(), pos.getX(), pos.getY(), pos.getZ(), 15)); + PacketDispatcher.wrapper.sendToAllAround(new LargeReactorPacket(pos, rods, coreHeat, hullHeat, fuel, maxFuel, waste, maxWaste, type.getID()), new TargetPoint(world.provider.getDimension(), pos.getX(), pos.getY(), pos.getZ(), 15)); } } @@ -698,7 +698,7 @@ private void tryInsertFrom(BlockPos pos) { int cont = getFuelContent(chest.getStackInSlot(i), getFuelType(chest.getStackInSlot(i).getItem())) * fuelMult; if(cont > 0 && fuel + cont <= maxFuel) { - Item container = chest.getStackInSlot(i).getItem().getContainerItem(); + Item container = chest.getStackInSlot(i).getItem().getContainerItem(); type = getFuelType(chest.getStackInSlot(i).getItem()); chest.getStackInSlot(i).shrink(1); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorSmall.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorSmall.java index d0a3ae4f44..a97f234fb8 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorSmall.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorSmall.java @@ -53,11 +53,11 @@ public class TileEntityMachineReactorSmall extends TileEntity implements ITickab public ItemStackHandler inventory; public int hullHeat; - public final int maxHullHeat = 100000; + public static final int maxHullHeat = 100000; public int coreHeat; - public final int maxCoreHeat = 50000; + public static final int maxCoreHeat = 50000; public int rods; - public final int rodsMax = 100; + public static final int rodsMax = 100; public boolean retracting = true; public int age = 0; public FluidTank[] tanks; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java b/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java index c32d8455c6..39c5b59c06 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java @@ -84,7 +84,7 @@ public void update() { if(outputStack != null){ liquid += wasteData[1]; gas += wasteData[2]; - inventory.setStackInSlot(i, outputStack); + inventory.setStackInSlot(i, outputStack.copy()); } } } else { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityStructureMarker.java b/src/main/java/com/hbm/tileentity/machine/TileEntityStructureMarker.java index daef0f313d..8dc4546cb1 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityStructureMarker.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityStructureMarker.java @@ -14,14 +14,14 @@ public class TileEntityStructureMarker extends TileEntity implements ITickable { // 0: Factory // 1: Nuclear Reactor // 2: Reactor with Coat - // 5: Watz Power Plant - // 6: Singularity-Anti-Fusion-Experiment + // 3: Watz Power Plant + // 4: Singularity-Anti-Fusion-Experiment public int type = 0; @Override public void update() { - if(this.type > 6) - type -= 7; + if(this.type > 4) + type = 0; if(!world.isRemote) PacketDispatcher.wrapper.sendToAllAround(new TEStructurePacket(pos.getX(), pos.getY(), pos.getZ(), type), new TargetPoint(world.provider.getDimension(), pos.getX(), pos.getY(), pos.getZ(), 80)); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityWatzCore.java b/src/main/java/com/hbm/tileentity/machine/TileEntityWatzCore.java index 14a9e0fa18..55ef241020 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityWatzCore.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityWatzCore.java @@ -15,6 +15,7 @@ import com.hbm.items.special.WatzFuel; import com.hbm.lib.Library; import com.hbm.lib.ForgeDirection; +import com.hbm.world.Watz; import com.hbm.packet.AuxElectricityPacket; import com.hbm.packet.FluidTankPacket; import com.hbm.packet.PacketDispatcher; @@ -194,276 +195,7 @@ public void update() { } public boolean isStructureValid(World world) { - MutableBlockPos mPos = new BlockPos.MutableBlockPos(); - int x = pos.getX(); - int y = pos.getY(); - int z = pos.getZ(); - for(int i = -5; i <= 5; i++) - { - if(world.getBlockState(mPos.setPos(x + 3, y + i, z - 1)).getBlock() != ModBlocks.reinforced_brick) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlockState(mPos.setPos(x + 3, y + i, z + 1)).getBlock() != ModBlocks.reinforced_brick) - return false; - } - - - - for(int i = -5; i <= 5; i++) - { - if(world.getBlockState(mPos.setPos(x + 2, y + i, z - 2)).getBlock() != ModBlocks.reinforced_brick) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlockState(mPos.setPos(x + 2, y + i, z - 1)).getBlock() != ModBlocks.watz_element) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlockState(mPos.setPos(x + 2, y + i, z)).getBlock() != ModBlocks.watz_control) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlockState(mPos.setPos(x + 2, y + i, z + 1)).getBlock() != ModBlocks.watz_element) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlockState(mPos.setPos(x + 2, y + i, z + 2)).getBlock() != ModBlocks.reinforced_brick) - return false; - } - - - - for(int i = -5; i <= 5; i++) - { - if(world.getBlockState(mPos.setPos(x + 1, y + i, z - 3)).getBlock() != ModBlocks.reinforced_brick) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlockState(mPos.setPos(x + 1, y + i, z - 2)).getBlock() != ModBlocks.watz_element) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlockState(mPos.setPos(x + 1, y + i, z - 1)).getBlock() != ModBlocks.watz_control) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlockState(mPos.setPos(x + 1, y + i, z)).getBlock() != ModBlocks.watz_cooler) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlockState(mPos.setPos(x + 1, y + i, z + 1)).getBlock() != ModBlocks.watz_control) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlockState(mPos.setPos(x + 1, y + i, z + 2)).getBlock() != ModBlocks.watz_element) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlockState(mPos.setPos(x + 1, y + i, z + 3)).getBlock() != ModBlocks.reinforced_brick) - return false; - } - - - - for(int i = -5; i <= 5; i++) - { - if(world.getBlockState(mPos.setPos(x + 0, y + i, z - 2)).getBlock() != ModBlocks.watz_control) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlockState(mPos.setPos(x + 0, y + i, z - 1)).getBlock() != ModBlocks.watz_cooler) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlockState(mPos.setPos(x + 0, y + i, z + 1)).getBlock() != ModBlocks.watz_cooler) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlockState(mPos.setPos(x + 0, y + i, z + 2)).getBlock() != ModBlocks.watz_control) - return false; - } - - - - for(int i = -5; i <= 5; i++) - { - if(world.getBlockState(mPos.setPos(x - 1, y + i, z - 3)).getBlock() != ModBlocks.reinforced_brick) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlockState(mPos.setPos(x - 1, y + i, z - 2)).getBlock() != ModBlocks.watz_element) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlockState(mPos.setPos(x - 1, y + i, z - 1)).getBlock() != ModBlocks.watz_control) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlockState(mPos.setPos(x - 1, y + i, z)).getBlock() != ModBlocks.watz_cooler) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlockState(mPos.setPos(x - 1, y + i, z + 1)).getBlock() != ModBlocks.watz_control) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlockState(mPos.setPos(x - 1, y + i, z + 2)).getBlock() != ModBlocks.watz_element) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlockState(mPos.setPos(x - 1, y + i, z + 3)).getBlock() != ModBlocks.reinforced_brick) - return false; - } - - - - for(int i = -5; i <= 5; i++) - { - if(world.getBlockState(mPos.setPos(x - 2, y + i, z - 2)).getBlock() != ModBlocks.reinforced_brick) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlockState(mPos.setPos(x - 2, y + i, z - 1)).getBlock() != ModBlocks.watz_element) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlockState(mPos.setPos(x - 2, y + i, z)).getBlock() != ModBlocks.watz_control) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlockState(mPos.setPos(x - 2, y + i, z + 1)).getBlock() != ModBlocks.watz_element) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlockState(mPos.setPos(x - 2, y + i, z + 2)).getBlock() != ModBlocks.reinforced_brick) - return false; - } - - - - for(int i = -5; i <= 5; i++) - { - if(world.getBlockState(mPos.setPos(x - 3, y + i, z - 1)).getBlock() != ModBlocks.reinforced_brick) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlockState(mPos.setPos(x - 3, y + i, z + 1)).getBlock() != ModBlocks.reinforced_brick) - return false; - } - - - - for(int i = -5; i <= -1; i++) - { - if(world.getBlockState(mPos.setPos(x, y + i, z)).getBlock() != ModBlocks.watz_conductor) - return false; - } - for(int i = 1; i <= 5; i++) - { - if(world.getBlockState(mPos.setPos(x, y + i, z)).getBlock() != ModBlocks.watz_conductor) - return false; - } - - for(int i = -5; i <= -1; i++) - { - if(world.getBlockState(mPos.setPos(x + 3, y + i, z)).getBlock() != ModBlocks.reinforced_brick) - return false; - } - for(int i = 1; i <= 5; i++) - { - if(world.getBlockState(mPos.setPos(x + 3, y + i, z)).getBlock() != ModBlocks.reinforced_brick) - return false; - } - - for(int i = -5; i <= -1; i++) - { - if(world.getBlockState(mPos.setPos(x - 3, y + i, z)).getBlock() != ModBlocks.reinforced_brick) - return false; - } - for(int i = 1; i <= 5; i++) - { - if(world.getBlockState(mPos.setPos(x - 3, y + i, z)).getBlock() != ModBlocks.reinforced_brick) - return false; - } - - for(int i = -5; i <= -1; i++) - { - if(world.getBlockState(mPos.setPos(x, y + i, z + 3)).getBlock() != ModBlocks.reinforced_brick) - return false; - } - for(int i = 1; i <= 5; i++) - { - if(world.getBlockState(mPos.setPos(x, y + i, z + 3)).getBlock() != ModBlocks.reinforced_brick) - return false; - } - - for(int i = -5; i <= -1; i++) - { - if(world.getBlockState(mPos.setPos(x, y + i, z - 3)).getBlock() != ModBlocks.reinforced_brick) - return false; - } - for(int i = 1; i <= 5; i++) - { - if(world.getBlockState(mPos.setPos(x, y + i, z - 3)).getBlock() != ModBlocks.reinforced_brick) - return false; - } - - if(world.getBlockState(mPos.setPos(x + 3, y, z)).getBlock() != ModBlocks.watz_hatch) - return false; - - if(world.getBlockState(mPos.setPos(x - 3, y, z)).getBlock() != ModBlocks.watz_hatch) - return false; - - if(world.getBlockState(mPos.setPos(x, y, z + 3)).getBlock() != ModBlocks.watz_hatch) - return false; - - if(world.getBlockState(mPos.setPos(x, y, z - 3)).getBlock() != ModBlocks.watz_hatch) - return false; - - for(int i = -3; i <= 3; i++) - { - for(int j = -3; j <= 3; j++) - { - if(world.getBlockState(mPos.setPos(x + i, y + 6, z + j)).getBlock() != ModBlocks.watz_end && world.getBlockState(mPos.setPos(x + i, y + 6, z + j)).getBlock() != ModBlocks.watz_conductor) - return false; - } - } - for(int i = -3; i <= 3; i++) - { - for(int j = -3; j <= 3; j++) - { - if(world.getBlockState(mPos.setPos(x + i, y - 6, z + j)).getBlock() != ModBlocks.watz_end && world.getBlockState(mPos.setPos(x + i, y - 6, z + j)).getBlock() != ModBlocks.watz_conductor) - return false; - } - } - - return true; + return Watz.checkHull(world, pos); } public boolean hasFuse() { @@ -569,10 +301,10 @@ public void sendWatzPower() { } public void fillFluidInit(FluidTank tank) { - needsUpdate = FFUtils.fillFluid(this, tank, world, pos.add(4, 0, 0), 4000) || needsUpdate; - needsUpdate = FFUtils.fillFluid(this, tank, world, pos.add(-4, 0, 0), 4000) || needsUpdate; - needsUpdate = FFUtils.fillFluid(this, tank, world, pos.add(0, 0, 4), 4000) || needsUpdate; - needsUpdate = FFUtils.fillFluid(this, tank, world, pos.add(0, 0, -4), 4000) || needsUpdate; + needsUpdate = FFUtils.fillFluid(this, tank, world, pos.add(4, 0, 0), 16000) || needsUpdate; + needsUpdate = FFUtils.fillFluid(this, tank, world, pos.add(-4, 0, 0), 16000) || needsUpdate; + needsUpdate = FFUtils.fillFluid(this, tank, world, pos.add(0, 0, 4), 16000) || needsUpdate; + needsUpdate = FFUtils.fillFluid(this, tank, world, pos.add(0, 0, -4), 16000) || needsUpdate; } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticCracker.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticCracker.java index 8553da87cb..f65b2c872f 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticCracker.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticCracker.java @@ -132,18 +132,16 @@ private void crack() { if(outputFluids != null) { - for(int i = 0; i < 2; i++) { - if(tanks[0].getFluidAmount() >= 100 && tanks[1].getFluidAmount() >= 200 && hasSpace(outputFluids)) { - tanks[0].drain(100, true); - tanks[1].drain(200, true); - if(outputFluids.length == 2){ - tanks[2].fill(outputFluids[0].copy(), true); - tanks[3].fill(outputFluids[1].copy(), true); - tanks[4].fill(new FluidStack(ModForgeFluids.spentsteam, 2), true); //LPS has the density of WATER not STEAM (1%!) - } else { - tanks[2].fill(outputFluids[0].copy(), true); - tanks[3].fill(new FluidStack(ModForgeFluids.spentsteam, 2), true); //LPS has the density of WATER not STEAM (1%!) - } + while(tanks[0].getFluidAmount() >= 100 && tanks[1].getFluidAmount() >= 200 && hasSpace(outputFluids)) { + tanks[0].drain(100, true); + tanks[1].drain(200, true); + if(outputFluids.length == 2){ + tanks[2].fill(outputFluids[0].copy(), true); + tanks[3].fill(outputFluids[1].copy(), true); + tanks[4].fill(new FluidStack(ModForgeFluids.spentsteam, 2), true); //LPS has the density of WATER not STEAM (1%!) + } else { + tanks[2].fill(outputFluids[0].copy(), true); + tanks[3].fill(new FluidStack(ModForgeFluids.spentsteam, 2), true); //LPS has the density of WATER not STEAM (1%!) } } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java index d6c77cc1fb..abcef248f9 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java @@ -55,7 +55,7 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements public FluidTank tank; public boolean isOn = false; public boolean doesBurn = false; - public int cacheEnergy; + public int cacheEnergy = 0; public boolean needsUpdate; private final UpgradeManager upgradeManager = new UpgradeManager(); @@ -131,16 +131,20 @@ public void update() { if(FFUtils.fillFromFluidContainer(inventory, tank, 1, 2)) needsUpdate = true; + int maxVent = 50; int maxBurn = 10; if(isOn && tank.getFluidAmount() >= 10) { upgradeManager.eval(inventory, 4, 5); - int burn = Math.min(upgradeManager.getLevel(UpgradeType.SPEED), 3); - int yield = Math.min(upgradeManager.getLevel(UpgradeType.EFFECT), 3); + int burn = Math.min(upgradeManager.getLevel(UpgradeType.SPEED), 6); + int yield = Math.min(upgradeManager.getLevel(UpgradeType.EFFECT), 6); + maxVent += maxVent * burn; maxBurn += maxBurn * burn; + cacheEnergy = FluidCombustionRecipes.getFlameEnergy(tankType); + if (doesBurn && cacheEnergy != 0) { int eject = Math.min(maxBurn, tank.getFluidAmount()); tank.drain(eject, true); @@ -159,6 +163,9 @@ public void update() { if(this.world.getTotalWorldTime() % 5 == 0) this.world.playSound(null, pos.getX(), pos.getY() + 11, pos.getZ(), HBMSoundHandler.flamethrowerShoot, SoundCategory.BLOCKS, 1.5F, 1F); + } else { + tank.drain(maxVent, true); + needsUpdate = true; } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java index b61c5e2d82..21f02d1c6e 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java @@ -24,6 +24,7 @@ import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidTank; +import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidUtil; import net.minecraftforge.fluids.capability.CapabilityFluidHandler; import net.minecraftforge.fluids.capability.IFluidHandler; @@ -66,7 +67,9 @@ public String getName() { @Override public void readFromNBT(NBTTagCompound nbt) { - + if(nbt.hasKey("f")) { + this.tankTypes[0] = FluidRegistry.getFluid(nbt.getString("f")); + } power = nbt.getLong("power"); itemOutputTimer = nbt.getInteger("itemOutputTimer"); if(nbt.hasKey("tanks")) @@ -76,6 +79,13 @@ public void readFromNBT(NBTTagCompound nbt) { @Override public NBTTagCompound writeToNBT(NBTTagCompound nbt) { + if(tankTypes[0] != null){ + nbt.setString("f", tankTypes[0].getName()); + } else { + if(tanks[0].getFluid() != null){ + nbt.setString("f", tanks[0].getFluid().getFluid().getName()); + } + } nbt.setLong("power", power); nbt.setInteger("itemOutputTimer", itemOutputTimer); nbt.setTag("tanks", FFUtils.serializeTankArray(tanks)); @@ -307,6 +317,11 @@ public int fill(FluidStack resource, boolean doFill) { if(tankTypes[0] != null && resource.getFluid() == tankTypes[0]) { return tanks[0].fill(resource, doFill); } + if(tanks[0].getFluidAmount() == 0 && RefineryRecipes.getRecipe(resource.getFluid()) != null){ + tankTypes[0] = resource.getFluid(); + this.markDirty(); + return tanks[0].fill(resource, doFill); + } return 0; } diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java index 6e12960ed0..0291c3b6b5 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java @@ -8,9 +8,11 @@ import com.hbm.interfaces.IControlReceiver; import com.hbm.render.amlfrom1710.Vec3; +import com.hbm.lib.Library; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKControlManual.RBMKColor; import com.hbm.util.I18nUtil; +import com.hbm.util.BobMathUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; @@ -508,6 +510,19 @@ public List getFancyStats() { stats.add(TextFormatting.AQUA + I18nUtil.resolveKey("rbmk.cooler.cooling", this.data.getInteger("cooled") * 20)); stats.add(TextFormatting.DARK_AQUA + I18nUtil.resolveKey("rbmk.cooler.cryo", this.data.getInteger("cryo"))); break; + case OUTGASSER: + double flux = this.data.getDouble("usedFlux"); + double progress = this.data.getDouble("progress"); + double maxProgress = this.data.getDouble("maxProgress"); + int eta = 0; + if(flux > 0) + eta = (int)((maxProgress-progress)/flux); + + stats.add("§6" + I18nUtil.resolveKey("rbmk.outgasser.eta", BobMathUtil.toDate(BobMathUtil.ticksToDate(eta, 72000)))); + stats.add(TextFormatting.AQUA + I18nUtil.resolveKey("rbmk.outgasser.flux", Library.getShortNumber((long)flux))); + stats.add(TextFormatting.DARK_AQUA + I18nUtil.resolveKey("rbmk.outgasser.progress", Library.getShortNumber((long)progress), Library.getShortNumber((long)maxProgress), Library.getPercentage(progress/maxProgress))); + stats.add(TextFormatting.YELLOW + I18nUtil.resolveKey("rbmk.outgasser.gas", this.data.getInteger("gas"), this.data.getInteger("maxGas"))); + break; case CONTROL: if(this.data.hasKey("color")) { short col = this.data.getShort("color"); diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java index dabdc626b4..b2dd18d150 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java @@ -37,6 +37,7 @@ public class TileEntityRBMKOutgasser extends TileEntityRBMKSlottedBase implement public FluidTank gas; public Fluid gasType; public double progress = 0; + public double usedFlux = 0; public int duration = 10000; public TileEntityRBMKOutgasser() { @@ -99,6 +100,7 @@ public void receiveFlux(NType type, double flux) { ContaminationUtil.neutronActivateItem(inventory.getStackInSlot(0), (float)(flux * 0.001), 1F); this.markDirty(); } + this.usedFlux = flux; } @@ -193,8 +195,9 @@ public NBTTagCompound getNBTForConsole() { NBTTagCompound data = new NBTTagCompound(); data.setInteger("gas", this.gas.getFluidAmount()); data.setInteger("maxGas", this.gas.getCapacity()); - data.setString("type", gasType.getName()); + data.setDouble("usedFlux", this.usedFlux); data.setDouble("progress", this.progress); + data.setDouble("maxProgress", this.duration); return data; } diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java index e1946c714e..b48a9be2c7 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java @@ -88,17 +88,12 @@ public void update() { this.heat += rod.provideHeat(world, inventory.getStackInSlot(0), heat, 1.0D); - if(this.heat > this.maxHeat()) { - this.meltdown(); - return; - } - if(!this.hasLid()) { - RadiationSavedData.incrementRad(world, pos, (float) ((this.fluxFast + this.fluxSlow) * 0.05F), Float.MAX_VALUE); + RadiationSavedData.incrementRad(world, pos, (float) ((this.fluxFast + this.fluxSlow) * 0.05F), (float) ((this.fluxFast + this.fluxSlow) * 10F)); } else{ double meltdownPercent = rod.getMeltdownPercent(inventory.getStackInSlot(0)); if(meltdownPercent > 0){ - RadiationSavedData.incrementRad(world, pos, (float) ((this.fluxFast + this.fluxSlow) * 0.05F * (meltdownPercent/100)), Float.MAX_VALUE); + RadiationSavedData.incrementRad(world, pos, (float) ((this.fluxFast + this.fluxSlow) * 0.05F * meltdownPercent * 0.01D), (float) ((this.fluxFast + this.fluxSlow) * meltdownPercent * 0.1D)); } } @@ -106,9 +101,15 @@ public void update() { //for spreading, we want the buffered flux to be 0 because we want to know exactly how much gets reflected back this.fluxFast = 0; this.fluxSlow = 0; + + if(this.heat > this.maxHeat()) { + this.meltdown(); + return; + } - if(fluxOut > 0) - spreadFlux(rType, fluxOut); + if(fluxOut > 0){ + spreadFlux(this.isModerated() ? NType.SLOW : rType, fluxOut); + } hasRod = true; } else { @@ -249,7 +250,7 @@ protected double runInteraction(int x, int y, int z, double flux) { } if(hits > 0) - RadiationSavedData.incrementRad(world, pos, (float) (flux * 0.05F * hits / (float)limit), Float.MAX_VALUE); + RadiationSavedData.incrementRad(world, pos, (float) (flux * 0.05F * hits / (float)limit), (float) (flux * 0.05F * hits / (float)limit) * 10F); return 0; } diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretMaxwell.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretMaxwell.java index 847879f5a4..b4d1ed5f3f 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretMaxwell.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretMaxwell.java @@ -9,6 +9,7 @@ import com.hbm.util.EntityDamageUtil; import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.SoundEvents; import net.minecraft.item.Item; import net.minecraft.nbt.NBTTagCompound; @@ -70,7 +71,7 @@ public long getMaxPower() { @Override public long getConsumption() { - return 1_000_000 - this.blueLevel * 6000 + this.redLevel * 6000 + this.blackLevel * 60000 + this.pinkLevel * 12000; + return 50_000 - this.blueLevel * 1_600 + this.redLevel * 10_000 + this.blackLevel * 100_000 + this.pinkLevel * 12_000 + this.greenLevel * 1_600; } @Override @@ -151,8 +152,9 @@ public void updateFiringTick() { long demand = this.getConsumption() * 10; if(this.target != null && this.getPower() >= demand) { - - EntityDamageUtil.attackEntityFromIgnoreIFrame(this.target, ModDamageSource.shrapnel, (this.blackLevel * 10 + this.redLevel + 1F) * 0.25F); + if(this.target instanceof EntityPlayer && (((EntityPlayer)this.target).capabilities.isCreativeMode || ((EntityPlayer)this.target).isSpectator())) + return; + EntityDamageUtil.attackEntityFromIgnoreIFrame(this.target, ModDamageSource.gluon, (Math.max(0, this.blackLevel * 10 + this.redLevel - this.blueLevel>>1) + 1F) * 0.25F); if(pinkLevel > 0) this.target.setFire(this.pinkLevel * 3); diff --git a/src/main/java/com/hbm/util/BobMathUtil.java b/src/main/java/com/hbm/util/BobMathUtil.java index 4744881ecf..f429f944e0 100644 --- a/src/main/java/com/hbm/util/BobMathUtil.java +++ b/src/main/java/com/hbm/util/BobMathUtil.java @@ -309,23 +309,43 @@ public static double convertScale(double toScale, double oldMin, double oldMax, return (((toScale - oldMin) * newRange) / prevRange) + newMin; } - public static String[] ticksToDate(long ticks) { - - int tickDay = 24000; - int tickYear = tickDay * 365; - - final String[] dateOut = new String[4]; + public static String[] ticksToDate(long ticks, int tickHour) { + int tickDay = 24 * tickHour; + int tickYear = 365 * tickDay; + double tickMinute = tickHour / 60D; + double tickSecond = tickHour / 3600D; + + final String[] dateOut = new String[5]; long year = Math.floorDiv(ticks, tickYear); int day = (int) Math.floorDiv(ticks - tickYear * year, tickDay); - int h = (int) Math.floorDiv(ticks - tickYear * year-tickDay * day, 1000); - int min = (int) Math.floor((ticks - tickYear * year-tickDay * day-1000 * h)/ 16.66); + int h = (int) Math.floorDiv(ticks - tickYear * year-tickDay * day, tickHour); + int min = (int) Math.floor((ticks - tickYear * year-tickDay * day-tickHour * h) / tickMinute); + int s = (int) Math.floor((ticks - tickYear * year-tickDay * day-tickHour * h-min * tickMinute) / tickSecond); dateOut[0] = String.valueOf(year); dateOut[1] = String.valueOf(day); dateOut[2] = String.valueOf(h); dateOut[3] = String.valueOf(min); + dateOut[4] = String.valueOf(s); return dateOut; } + public static String[] ticksToDate(long ticks) { + return ticksToDate(ticks, 1000); + } + + public static String toDate(String[] input){ + if(!input[0].equals("0")) + return input[0]+ "y " + input[1]+ "d " + input[2]+ "h " + input[3]+ "m " + input[4]+ "s"; + else if(!input[1].equals("0")) + return input[1]+ "d " + input[2]+ "h " + input[3]+ "m " + input[4]+ "s"; + else if(!input[2].equals("0")) + return input[2]+ "h " + input[3]+ "m " + input[4]+ "s"; + else if(!input[3].equals("0")) + return input[3]+ "m " + input[4]+ "s"; + else + return input[4]+ "s"; + } + public static int interpolateColor(int colorA, int colorB, float percentB) { float rA = (colorA >> 16 & 0xFF); float gA = (colorA >> 8 & 0xFF); diff --git a/src/main/java/com/hbm/util/EnchantmentUtil.java b/src/main/java/com/hbm/util/EnchantmentUtil.java index fc8c5908ea..e381c70841 100644 --- a/src/main/java/com/hbm/util/EnchantmentUtil.java +++ b/src/main/java/com/hbm/util/EnchantmentUtil.java @@ -34,7 +34,7 @@ public static void removeEnchantment(ItemStack stack, Enchantment enchantment) { * @param amount the amount of experience to remove */ public static void removeExperience(EntityPlayer entityPlayer, float amount) { - if (entityPlayer.experienceTotal - amount <= 0) { + if (entityPlayer.experienceTotal < amount) { entityPlayer.experienceLevel = 0; entityPlayer.experience = 0; entityPlayer.experienceTotal = 0; diff --git a/src/main/java/com/hbm/world/Watz.java b/src/main/java/com/hbm/world/Watz.java index 1404659a79..781b1c6d9a 100644 --- a/src/main/java/com/hbm/world/Watz.java +++ b/src/main/java/com/hbm/world/Watz.java @@ -4,25 +4,25 @@ import com.hbm.blocks.ModBlocks; +import net.minecraft.block.Block; import net.minecraft.block.BlockHorizontal; import net.minecraft.init.Blocks; import net.minecraft.util.EnumFacing; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos.MutableBlockPos; import net.minecraft.world.World; -import net.minecraft.world.gen.feature.WorldGenerator; -public class Watz extends WorldGenerator { +public class Watz { - public static String[][] array = new String[][] { + public static String[][] watz = new String[][] { { - "SSSSSSS", - "SSSSSSS", + " SSS ", + " SSSSS ", "SSSSSSS", "SSSISSS", "SSSSSSS", - "SSSSSSS", - "SSSSSSS" + " SSSSS ", + " SSS " }, { " CCC ", @@ -124,672 +124,112 @@ public class Watz extends WorldGenerator { " CCC " }, { - "SSSSSSS", - "SSSSSSS", + " SSS ", + " SSSSS ", "SSSSSSS", "SSSISSS", "SSSSSSS", - "SSSSSSS", - "SSSSSSS" + " SSSSS ", + " SSS " } }; - - @Override - public boolean generate(World worldIn, Random rand, BlockPos position) { - int i = rand.nextInt(1); - if(i == 0) - { - generate_r0(worldIn, rand, new BlockPos.MutableBlockPos(position)); - } + public boolean generateReactor(World world, Random rand, BlockPos pos) { + MutableBlockPos mPos = new BlockPos.MutableBlockPos(); + int x = pos.getX() - 3; + int y = pos.getY(); + int z = pos.getZ() - 3; + + for(int i = 0; i < 7; i++) { + for(int j = 0; j < 13; j++) { + for(int k = 0; k < 7; k++) { + String c = watz[j][i].substring(k, k + 1); + Block b = Blocks.AIR; - return true; + if(c.equals("W")) + b = ModBlocks.watz_element; + else if(c.equals("R")) + b = ModBlocks.watz_control; + else if(c.equals("S")) + b = ModBlocks.watz_end; + else if(c.equals("K")) + b = ModBlocks.watz_cooler; + else if(c.equals("I")) + b = ModBlocks.watz_conductor; + else if(c.equals("C")) + b = ModBlocks.reinforced_brick; + else if(c.equals("#")) + b = ModBlocks.watz_core; + + world.setBlockState(mPos.setPos(x + i, y + j, z + k), b.getDefaultState()); + } + } + } + world.setBlockState(mPos.setPos(x + 3, y + 6, z + 0), ModBlocks.watz_hatch.getDefaultState().withProperty(BlockHorizontal.FACING, EnumFacing.values()[2]), 3); + world.setBlockState(mPos.setPos(x + 0, y + 6, z + 3), ModBlocks.watz_hatch.getDefaultState().withProperty(BlockHorizontal.FACING, EnumFacing.values()[4]), 3); + world.setBlockState(mPos.setPos(x + 3, y + 6, z + 6), ModBlocks.watz_hatch.getDefaultState().withProperty(BlockHorizontal.FACING, EnumFacing.values()[3]), 3); + world.setBlockState(mPos.setPos(x + 6, y + 6, z + 3), ModBlocks.watz_hatch.getDefaultState().withProperty(BlockHorizontal.FACING, EnumFacing.values()[5]), 3); + return true; } - public boolean generate_r0(World world, Random rand, MutableBlockPos pos) - { + public static boolean checkHull(World world, BlockPos pos) { + MutableBlockPos mPos = new BlockPos.MutableBlockPos(); int x = pos.getX() - 3; - int y = pos.getY(); + int y = pos.getY() - 6; int z = pos.getZ() - 3; - world.setBlockState(pos.setPos(x + 0, y + 0, z + 0), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 0, z + 0), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 0, z + 0), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 0, z + 0), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 0, z + 0), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 0, z + 0), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 0, z + 0), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 0, z + 1), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 0, z + 1), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 0, z + 1), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 0, z + 1), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 0, z + 1), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 0, z + 1), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 0, z + 1), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 0, z + 2), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 0, z + 2), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 0, z + 2), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 0, z + 2), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 0, z + 2), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 0, z + 2), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 0, z + 2), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 0, z + 3), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 0, z + 3), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 0, z + 3), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 0, z + 3), ModBlocks.watz_conductor.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 0, z + 3), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 0, z + 3), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 0, z + 3), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 0, z + 4), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 0, z + 4), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 0, z + 4), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 0, z + 4), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 0, z + 4), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 0, z + 4), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 0, z + 4), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 0, z + 5), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 0, z + 5), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 0, z + 5), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 0, z + 5), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 0, z + 5), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 0, z + 5), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 0, z + 5), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 0, z + 6), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 0, z + 6), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 0, z + 6), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 0, z + 6), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 0, z + 6), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 0, z + 6), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 0, z + 6), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 1, z + 0), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 1, z + 0), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 1, z + 0), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 1, z + 0), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 1, z + 0), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 1, z + 0), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 1, z + 0), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 1, z + 1), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 1, z + 1), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 1, z + 1), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 1, z + 1), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 1, z + 1), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 1, z + 1), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 1, z + 1), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 1, z + 2), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 1, z + 2), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 1, z + 2), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 1, z + 2), ModBlocks.watz_cooler.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 1, z + 2), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 1, z + 2), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 1, z + 2), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 1, z + 3), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 1, z + 3), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 1, z + 3), ModBlocks.watz_cooler.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 1, z + 3), ModBlocks.watz_conductor.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 1, z + 3), ModBlocks.watz_cooler.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 1, z + 3), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 1, z + 3), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 1, z + 4), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 1, z + 4), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 1, z + 4), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 1, z + 4), ModBlocks.watz_cooler.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 1, z + 4), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 1, z + 4), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 1, z + 4), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 1, z + 5), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 1, z + 5), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 1, z + 5), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 1, z + 5), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 1, z + 5), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 1, z + 5), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 1, z + 5), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 1, z + 6), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 1, z + 6), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 1, z + 6), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 1, z + 6), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 1, z + 6), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 1, z + 6), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 1, z + 6), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 2, z + 0), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 2, z + 0), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 2, z + 0), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 2, z + 0), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 2, z + 0), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 2, z + 0), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 2, z + 0), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 2, z + 1), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 2, z + 1), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 2, z + 1), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 2, z + 1), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 2, z + 1), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 2, z + 1), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 2, z + 1), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 2, z + 2), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 2, z + 2), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 2, z + 2), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 2, z + 2), ModBlocks.watz_cooler.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 2, z + 2), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 2, z + 2), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 2, z + 2), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 2, z + 3), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 2, z + 3), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 2, z + 3), ModBlocks.watz_cooler.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 2, z + 3), ModBlocks.watz_conductor.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 2, z + 3), ModBlocks.watz_cooler.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 2, z + 3), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 2, z + 3), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 2, z + 4), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 2, z + 4), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 2, z + 4), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 2, z + 4), ModBlocks.watz_cooler.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 2, z + 4), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 2, z + 4), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 2, z + 4), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 2, z + 5), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 2, z + 5), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 2, z + 5), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 2, z + 5), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 2, z + 5), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 2, z + 5), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 2, z + 5), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 2, z + 6), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 2, z + 6), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 2, z + 6), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 2, z + 6), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 2, z + 6), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 2, z + 6), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 2, z + 6), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 3, z + 0), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 3, z + 0), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 3, z + 0), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 3, z + 0), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 3, z + 0), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 3, z + 0), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 3, z + 0), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 3, z + 1), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 3, z + 1), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 3, z + 1), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 3, z + 1), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 3, z + 1), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 3, z + 1), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 3, z + 1), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 3, z + 2), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 3, z + 2), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 3, z + 2), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 3, z + 2), ModBlocks.watz_cooler.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 3, z + 2), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 3, z + 2), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 3, z + 2), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 3, z + 3), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 3, z + 3), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 3, z + 3), ModBlocks.watz_cooler.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 3, z + 3), ModBlocks.watz_conductor.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 3, z + 3), ModBlocks.watz_cooler.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 3, z + 3), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 3, z + 3), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 3, z + 4), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 3, z + 4), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 3, z + 4), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 3, z + 4), ModBlocks.watz_cooler.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 3, z + 4), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 3, z + 4), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 3, z + 4), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 3, z + 5), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 3, z + 5), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 3, z + 5), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 3, z + 5), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 3, z + 5), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 3, z + 5), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 3, z + 5), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 3, z + 6), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 3, z + 6), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 3, z + 6), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 3, z + 6), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 3, z + 6), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 3, z + 6), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 3, z + 6), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 4, z + 0), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 4, z + 0), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 4, z + 0), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 4, z + 0), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 4, z + 0), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 4, z + 0), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 4, z + 0), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 4, z + 1), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 4, z + 1), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 4, z + 1), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 4, z + 1), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 4, z + 1), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 4, z + 1), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 4, z + 1), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 4, z + 2), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 4, z + 2), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 4, z + 2), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 4, z + 2), ModBlocks.watz_cooler.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 4, z + 2), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 4, z + 2), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 4, z + 2), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 4, z + 3), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 4, z + 3), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 4, z + 3), ModBlocks.watz_cooler.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 4, z + 3), ModBlocks.watz_conductor.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 4, z + 3), ModBlocks.watz_cooler.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 4, z + 3), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 4, z + 3), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 4, z + 4), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 4, z + 4), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 4, z + 4), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 4, z + 4), ModBlocks.watz_cooler.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 4, z + 4), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 4, z + 4), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 4, z + 4), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 4, z + 5), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 4, z + 5), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 4, z + 5), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 4, z + 5), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 4, z + 5), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 4, z + 5), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 4, z + 5), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 4, z + 6), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 4, z + 6), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 4, z + 6), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 4, z + 6), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 4, z + 6), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 4, z + 6), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 4, z + 6), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 5, z + 0), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 5, z + 0), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 5, z + 0), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 5, z + 0), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 5, z + 0), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 5, z + 0), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 5, z + 0), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 5, z + 1), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 5, z + 1), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 5, z + 1), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 5, z + 1), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 5, z + 1), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 5, z + 1), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 5, z + 1), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 5, z + 2), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 5, z + 2), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 5, z + 2), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 5, z + 2), ModBlocks.watz_cooler.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 5, z + 2), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 5, z + 2), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 5, z + 2), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 5, z + 3), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 5, z + 3), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 5, z + 3), ModBlocks.watz_cooler.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 5, z + 3), ModBlocks.watz_conductor.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 5, z + 3), ModBlocks.watz_cooler.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 5, z + 3), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 5, z + 3), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 5, z + 4), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 5, z + 4), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 5, z + 4), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 5, z + 4), ModBlocks.watz_cooler.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 5, z + 4), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 5, z + 4), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 5, z + 4), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 5, z + 5), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 5, z + 5), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 5, z + 5), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 5, z + 5), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 5, z + 5), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 5, z + 5), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 5, z + 5), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 5, z + 6), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 5, z + 6), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 5, z + 6), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 5, z + 6), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 5, z + 6), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 5, z + 6), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 5, z + 6), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 6, z + 0), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 6, z + 0), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 6, z + 0), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 6, z + 0), ModBlocks.watz_hatch.getDefaultState().withProperty(BlockHorizontal.FACING, EnumFacing.values()[2]), 3); - world.setBlockState(pos.setPos(x + 4, y + 6, z + 0), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 6, z + 0), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 6, z + 0), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 6, z + 1), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 6, z + 1), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 6, z + 1), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 6, z + 1), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 6, z + 1), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 6, z + 1), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 6, z + 1), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 6, z + 2), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 6, z + 2), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 6, z + 2), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 6, z + 2), ModBlocks.watz_cooler.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 6, z + 2), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 6, z + 2), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 6, z + 2), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 6, z + 3), ModBlocks.watz_hatch.getDefaultState().withProperty(BlockHorizontal.FACING, EnumFacing.values()[4]), 3); - world.setBlockState(pos.setPos(x + 1, y + 6, z + 3), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 6, z + 3), ModBlocks.watz_cooler.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 6, z + 3), ModBlocks.watz_core.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 6, z + 3), ModBlocks.watz_cooler.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 6, z + 3), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 6, z + 3), ModBlocks.watz_hatch.getDefaultState().withProperty(BlockHorizontal.FACING, EnumFacing.values()[5]), 3); - world.setBlockState(pos.setPos(x + 0, y + 6, z + 4), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 6, z + 4), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 6, z + 4), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 6, z + 4), ModBlocks.watz_cooler.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 6, z + 4), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 6, z + 4), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 6, z + 4), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 6, z + 5), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 6, z + 5), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 6, z + 5), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 6, z + 5), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 6, z + 5), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 6, z + 5), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 6, z + 5), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 6, z + 6), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 6, z + 6), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 6, z + 6), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 6, z + 6), ModBlocks.watz_hatch.getDefaultState().withProperty(BlockHorizontal.FACING, EnumFacing.values()[3]), 3); - world.setBlockState(pos.setPos(x + 4, y + 6, z + 6), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 6, z + 6), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 6, z + 6), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 7, z + 0), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 7, z + 0), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 7, z + 0), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 7, z + 0), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 7, z + 0), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 7, z + 0), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 7, z + 0), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 7, z + 1), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 7, z + 1), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 7, z + 1), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 7, z + 1), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 7, z + 1), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 7, z + 1), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 7, z + 1), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 7, z + 2), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 7, z + 2), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 7, z + 2), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 7, z + 2), ModBlocks.watz_cooler.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 7, z + 2), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 7, z + 2), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 7, z + 2), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 7, z + 3), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 7, z + 3), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 7, z + 3), ModBlocks.watz_cooler.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 7, z + 3), ModBlocks.watz_conductor.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 7, z + 3), ModBlocks.watz_cooler.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 7, z + 3), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 7, z + 3), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 7, z + 4), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 7, z + 4), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 7, z + 4), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 7, z + 4), ModBlocks.watz_cooler.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 7, z + 4), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 7, z + 4), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 7, z + 4), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 7, z + 5), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 7, z + 5), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 7, z + 5), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 7, z + 5), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 7, z + 5), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 7, z + 5), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 7, z + 5), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 7, z + 6), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 7, z + 6), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 7, z + 6), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 7, z + 6), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 7, z + 6), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 7, z + 6), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 7, z + 6), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 8, z + 0), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 8, z + 0), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 8, z + 0), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 8, z + 0), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 8, z + 0), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 8, z + 0), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 8, z + 0), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 8, z + 1), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 8, z + 1), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 8, z + 1), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 8, z + 1), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 8, z + 1), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 8, z + 1), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 8, z + 1), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 8, z + 2), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 8, z + 2), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 8, z + 2), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 8, z + 2), ModBlocks.watz_cooler.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 8, z + 2), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 8, z + 2), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 8, z + 2), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 8, z + 3), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 8, z + 3), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 8, z + 3), ModBlocks.watz_cooler.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 8, z + 3), ModBlocks.watz_conductor.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 8, z + 3), ModBlocks.watz_cooler.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 8, z + 3), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 8, z + 3), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 8, z + 4), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 8, z + 4), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 8, z + 4), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 8, z + 4), ModBlocks.watz_cooler.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 8, z + 4), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 8, z + 4), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 8, z + 4), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 8, z + 5), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 8, z + 5), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 8, z + 5), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 8, z + 5), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 8, z + 5), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 8, z + 5), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 8, z + 5), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 8, z + 6), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 8, z + 6), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 8, z + 6), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 8, z + 6), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 8, z + 6), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 8, z + 6), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 8, z + 6), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 9, z + 0), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 9, z + 0), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 9, z + 0), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 9, z + 0), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 9, z + 0), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 9, z + 0), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 9, z + 0), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 9, z + 1), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 9, z + 1), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 9, z + 1), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 9, z + 1), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 9, z + 1), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 9, z + 1), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 9, z + 1), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 9, z + 2), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 9, z + 2), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 9, z + 2), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 9, z + 2), ModBlocks.watz_cooler.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 9, z + 2), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 9, z + 2), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 9, z + 2), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 9, z + 3), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 9, z + 3), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 9, z + 3), ModBlocks.watz_cooler.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 9, z + 3), ModBlocks.watz_conductor.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 9, z + 3), ModBlocks.watz_cooler.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 9, z + 3), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 9, z + 3), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 9, z + 4), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 9, z + 4), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 9, z + 4), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 9, z + 4), ModBlocks.watz_cooler.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 9, z + 4), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 9, z + 4), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 9, z + 4), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 9, z + 5), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 9, z + 5), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 9, z + 5), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 9, z + 5), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 9, z + 5), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 9, z + 5), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 9, z + 5), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 9, z + 6), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 9, z + 6), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 9, z + 6), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 9, z + 6), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 9, z + 6), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 9, z + 6), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 9, z + 6), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 10, z + 0), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 10, z + 0), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 10, z + 0), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 10, z + 0), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 10, z + 0), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 10, z + 0), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 10, z + 0), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 10, z + 1), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 10, z + 1), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 10, z + 1), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 10, z + 1), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 10, z + 1), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 10, z + 1), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 10, z + 1), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 10, z + 2), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 10, z + 2), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 10, z + 2), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 10, z + 2), ModBlocks.watz_cooler.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 10, z + 2), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 10, z + 2), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 10, z + 2), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 10, z + 3), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 10, z + 3), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 10, z + 3), ModBlocks.watz_cooler.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 10, z + 3), ModBlocks.watz_conductor.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 10, z + 3), ModBlocks.watz_cooler.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 10, z + 3), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 10, z + 3), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 10, z + 4), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 10, z + 4), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 10, z + 4), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 10, z + 4), ModBlocks.watz_cooler.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 10, z + 4), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 10, z + 4), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 10, z + 4), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 10, z + 5), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 10, z + 5), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 10, z + 5), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 10, z + 5), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 10, z + 5), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 10, z + 5), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 10, z + 5), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 10, z + 6), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 10, z + 6), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 10, z + 6), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 10, z + 6), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 10, z + 6), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 10, z + 6), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 10, z + 6), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 11, z + 0), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 11, z + 0), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 11, z + 0), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 11, z + 0), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 11, z + 0), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 11, z + 0), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 11, z + 0), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 11, z + 1), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 11, z + 1), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 11, z + 1), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 11, z + 1), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 11, z + 1), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 11, z + 1), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 11, z + 1), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 11, z + 2), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 11, z + 2), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 11, z + 2), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 11, z + 2), ModBlocks.watz_cooler.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 11, z + 2), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 11, z + 2), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 11, z + 2), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 11, z + 3), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 11, z + 3), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 11, z + 3), ModBlocks.watz_cooler.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 11, z + 3), ModBlocks.watz_conductor.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 11, z + 3), ModBlocks.watz_cooler.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 11, z + 3), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 11, z + 3), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 11, z + 4), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 11, z + 4), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 11, z + 4), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 11, z + 4), ModBlocks.watz_cooler.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 11, z + 4), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 11, z + 4), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 11, z + 4), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 11, z + 5), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 11, z + 5), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 11, z + 5), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 11, z + 5), ModBlocks.watz_control.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 11, z + 5), ModBlocks.watz_element.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 11, z + 5), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 11, z + 5), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 11, z + 6), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 11, z + 6), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 11, z + 6), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 11, z + 6), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 11, z + 6), ModBlocks.reinforced_brick.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 11, z + 6), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 11, z + 6), Blocks.AIR.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 12, z + 0), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 12, z + 0), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 12, z + 0), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 12, z + 0), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 12, z + 0), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 12, z + 0), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 12, z + 0), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 12, z + 1), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 12, z + 1), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 12, z + 1), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 12, z + 1), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 12, z + 1), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 12, z + 1), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 12, z + 1), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 12, z + 2), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 12, z + 2), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 12, z + 2), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 12, z + 2), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 12, z + 2), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 12, z + 2), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 12, z + 2), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 12, z + 3), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 12, z + 3), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 12, z + 3), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 12, z + 3), ModBlocks.watz_conductor.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 12, z + 3), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 12, z + 3), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 12, z + 3), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 12, z + 4), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 12, z + 4), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 12, z + 4), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 12, z + 4), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 12, z + 4), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 12, z + 4), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 12, z + 4), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 12, z + 5), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 12, z + 5), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 12, z + 5), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 12, z + 5), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 12, z + 5), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 12, z + 5), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 12, z + 5), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 0, y + 12, z + 6), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 1, y + 12, z + 6), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 2, y + 12, z + 6), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 3, y + 12, z + 6), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 4, y + 12, z + 6), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 5, y + 12, z + 6), ModBlocks.watz_end.getDefaultState(), 3); - world.setBlockState(pos.setPos(x + 6, y + 12, z + 6), ModBlocks.watz_end.getDefaultState(), 3); - return true; + boolean flag = true; + + for(int i = 0; i < 7; i++) { + for(int j = 0; j < 13; j++) { + for(int k = 0; k < 7; k++) { + String c = watz[j][i].substring(k, k + 1); + Block b = Blocks.AIR; + boolean flag2 = false; + + if(c.equals("W")){ + b = ModBlocks.watz_element; + flag2 = true; + } + else if(c.equals("R")){ + b = ModBlocks.watz_control; + flag2 = true; + } + else if(c.equals("S")){ + b = ModBlocks.watz_end; + flag2 = true; + } + else if(c.equals("K")){ + b = ModBlocks.watz_cooler; + flag2 = true; + } + else if(c.equals("I")){ + b = ModBlocks.watz_conductor; + flag2 = true; + } + else if(c.equals("C")){ + b = ModBlocks.reinforced_brick; + flag2 = true; + } + else if(c.equals("A")){ + b = ModBlocks.watz_hatch; + flag2 = true; + } + else if(c.equals("#")){ + b = ModBlocks.watz_core; + flag2 = true; + } + + + if(flag2){ + if(world.getBlockState(mPos.setPos(x + i, y + j, z + k)).getBlock() != b){ + return false; + } + } + } + } + } + return flag; } } diff --git a/src/main/resources/assets/hbm/blockstates/block_coal_infernal.json b/src/main/resources/assets/hbm/blockstates/block_coal_infernal.json new file mode 100644 index 0000000000..a04599cf1d --- /dev/null +++ b/src/main/resources/assets/hbm/blockstates/block_coal_infernal.json @@ -0,0 +1,5 @@ +{ + "variants": { + "normal": { "model": "hbm:block_coal_infernal" } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/blockstates/block_coke.json b/src/main/resources/assets/hbm/blockstates/block_coke.json new file mode 100644 index 0000000000..5f20cffd6c --- /dev/null +++ b/src/main/resources/assets/hbm/blockstates/block_coke.json @@ -0,0 +1,5 @@ +{ + "variants": { + "normal": { "model": "hbm:block_coke" } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/blockstates/block_lignite.json b/src/main/resources/assets/hbm/blockstates/block_lignite.json new file mode 100644 index 0000000000..14f60974d0 --- /dev/null +++ b/src/main/resources/assets/hbm/blockstates/block_lignite.json @@ -0,0 +1,5 @@ +{ + "variants": { + "normal": { "model": "hbm:block_lignite" } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/blockstates/block_radspice.json b/src/main/resources/assets/hbm/blockstates/block_radspice.json new file mode 100644 index 0000000000..0f32c1d067 --- /dev/null +++ b/src/main/resources/assets/hbm/blockstates/block_radspice.json @@ -0,0 +1,5 @@ +{ + "variants": { + "normal": { "model": "hbm:block_radspice" } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/blockstates/block_solid_fuel.json b/src/main/resources/assets/hbm/blockstates/block_solid_fuel.json new file mode 100644 index 0000000000..6c9d4c8077 --- /dev/null +++ b/src/main/resources/assets/hbm/blockstates/block_solid_fuel.json @@ -0,0 +1,5 @@ +{ + "variants": { + "normal": { "model": "hbm:block_solid_fuel" } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/blockstates/block_solid_fuel_presto.json b/src/main/resources/assets/hbm/blockstates/block_solid_fuel_presto.json new file mode 100644 index 0000000000..f6e074da54 --- /dev/null +++ b/src/main/resources/assets/hbm/blockstates/block_solid_fuel_presto.json @@ -0,0 +1,5 @@ +{ + "variants": { + "normal": { "model": "hbm:block_solid_fuel_presto" } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/blockstates/block_solid_fuel_presto_triplet.json b/src/main/resources/assets/hbm/blockstates/block_solid_fuel_presto_triplet.json new file mode 100644 index 0000000000..efbde04726 --- /dev/null +++ b/src/main/resources/assets/hbm/blockstates/block_solid_fuel_presto_triplet.json @@ -0,0 +1,5 @@ +{ + "variants": { + "normal": { "model": "hbm:block_solid_fuel_presto_triplet" } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/blockstates/cluster_copper.json b/src/main/resources/assets/hbm/blockstates/cluster_copper.json new file mode 100644 index 0000000000..5ecc79063d --- /dev/null +++ b/src/main/resources/assets/hbm/blockstates/cluster_copper.json @@ -0,0 +1,5 @@ +{ + "variants": { + "normal": { "model": "hbm:cluster_copper" } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/blockstates/factory_advanced_conductor.json b/src/main/resources/assets/hbm/blockstates/factory_advanced_conductor.json index 72f3b00f2d..c472222c06 100644 --- a/src/main/resources/assets/hbm/blockstates/factory_advanced_conductor.json +++ b/src/main/resources/assets/hbm/blockstates/factory_advanced_conductor.json @@ -1,6 +1,5 @@ { "variants": { - "activated=true": { "model": "hbm:factory_advanced_conductor" }, - "activated=false": { "model": "hbm:factory_advanced_conductor" } + "normal": { "model": "hbm:factory_advanced_conductor" } } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/blockstates/factory_titanium_conductor.json b/src/main/resources/assets/hbm/blockstates/factory_titanium_conductor.json index 36ddf26eea..af52632470 100644 --- a/src/main/resources/assets/hbm/blockstates/factory_titanium_conductor.json +++ b/src/main/resources/assets/hbm/blockstates/factory_titanium_conductor.json @@ -1,6 +1,5 @@ { "variants": { - "activated=true": { "model": "hbm:factory_titanium_conductor" }, - "activated=false": { "model": "hbm:factory_titanium_conductor" } + "normal": { "model": "hbm:factory_titanium_conductor" } } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/blockstates/sliding_gate_door.json b/src/main/resources/assets/hbm/blockstates/sliding_gate_door.json new file mode 100644 index 0000000000..5dbe8c4c33 --- /dev/null +++ b/src/main/resources/assets/hbm/blockstates/sliding_gate_door.json @@ -0,0 +1,5 @@ +{ + "variants": { + "normal": { "model": "hbm:sliding_gate_door" } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/lang/en_us.lang b/src/main/resources/assets/hbm/lang/en_us.lang index bf2fa64938..085c873e8f 100644 --- a/src/main/resources/assets/hbm/lang/en_us.lang +++ b/src/main/resources/assets/hbm/lang/en_us.lang @@ -235,10 +235,10 @@ tile.brick_obsidian_slab.name=Obsidian Brick Slab tile.brick_obsidian_stairs.name=Obsidian Brick Stairs tile.cmb_brick_reinforced_slab.name=Reinforced CMB Brick Slab tile.cmb_brick_reinforced_stairs.name=Reinforced CMB Brick Stairs -tile.concrete_slab.name=Concrete Slab -tile.concrete_stairs.name=Concrete Stairs -tile.concrete_smooth_slab.name=Smooth Concrete Slab -tile.concrete_smooth_stairs.name=Smooth Concrete Stairs +tile.concrete_slab.name=Concrete Tile Slab +tile.concrete_stairs.name=Concrete Tile Stairs +tile.concrete_smooth_slab.name=Concrete Slab +tile.concrete_smooth_stairs.name=Concrete Stairs tile.concrete_white_slab.name=White Concrete Slab tile.concrete_white_stairs.name=White Concrete Stairs tile.concrete_orange_slab.name=Orange Concrete Slab @@ -916,6 +916,10 @@ tipped_arrow.effect.potion.hbm_phosphorus=Arrow of Phosphorus Burns tipped_arrow.effect.potion.hbm_stability=Arrow of Stability rbmk.heat=Column temperature: %s +rbmk.outgasser.eta=ETA: %s +rbmk.outgasser.flux=Incoming flux: %s +rbmk.outgasser.progress=Progress: %s / %s §b(%s%%) +rbmk.outgasser.gas=Tritium: %s / %smB rbmk.boiler.water=Feedwater: %s / %smB rbmk.boiler.steam=Steam: %s / %smB rbmk.boiler.type=Compressor: %s @@ -1156,7 +1160,7 @@ book.rbmk.title_func_quadratic=Quadratic book.rbmk.page_func_quadratic=Self-Sustaining: §8No§r Reflector use: §4§lInsane§r Example: f(x) = x² * 0.1 Only place next to SAFE and PASSIVE fuels or absorbers. book.rbmk.title_tips=Tips -book.rbmk.page_tips=Radiation will leak if flux gets outside of the reactor (it was not blocked or reflected) or if flux reaches rbmk columns without a lid. Steam connectors are used for performance and accessibility of steam channels. Irradiation channels are absorbers that use incoming flux for recipes. +book.rbmk.page_tips=Radiation will leak if flux gets outside of the reactor (it was not blocked or reflected) or if flux reaches rbmk columns without a lid. Fluid loaders are used for accessibility of steam channels and fluid heaters. Irradiation channels are absorbers that use incoming flux for recipes. book.rbmk.title_mistakes=Common Mistakes book.rbmk.page_mistakes=§lInfo§r: Empty RBMK Fuel Columns are transparent to flux. §lScenario§r: You replace the depleted fuel rod in pink. The red column has a fuel with a §4DANGEROUS§r class flux function. You take out the fuel rod of pink and the RBMK explodes. So what happened? Flux from red was no longer absorbed by pink and got reflected back. This creates a feedbackloop which made the temperature go brrr. @@ -1383,9 +1387,11 @@ item.egg_balefire.desc=What kind of bird lays a radioactive egg? item.custom_tnt.name=Custom Nuke Explosive Charge item.custom_nuke.name=Custom Nuke Nuclear Rod item.custom_hydro.name=Custom Nuke Hydrogen Rod -item.custom_amat.name=Custom Nuke Antimatter Rod +item.custom_amat.name=Custom Nuke Balefire Rod item.custom_dirty.name=Custom Nuke Dirty Rod item.custom_schrab.name=Custom Nuke Schrabidium Rod +item.custom_sol.name=Custom Nuke Solinium Rod +item.custom_euph.name=Custom Nuke Anti-Mass Rod item.custom_fall.name=Custom Nuke Drop Upgrade container.nukeGadget=The Gadget @@ -2215,6 +2221,7 @@ tile.radwater_block.name=Irradiated Water tile.block_aluminium.name=Block of Aluminium tile.block_saturnite.name=Block of Saturnite tile.block_ra226.name=Block of Radium-226 +tile.block_radspice.name=Block of Neoveline tile.block_polymer.name=Block of Polymer tile.block_copper.name=Block of Copper tile.block_fluorite.name=Block of Fluorite @@ -3159,7 +3166,7 @@ item.gun_revolver_pip_ammo.name=Tainted Bullet (LEGACY) item.gun_revolver_nopip_ammo.name=.44 Magnum Bullet (LEGACY) item.gun_calamity_ammo.name=.50 BMG Round (LEGACY) item.gun_lacunae_ammo.name=5mm Round (LEGACY) -item.gun_fatman_ammo.name=Mini Nuke +item.gun_fatman_ammo.name=Fat Nuke item.gun_mirv_ammo.name=Eightfold MIRV item.gun_bf_ammo.name=Balefire Shell item.gun_mp40_ammo.name=Submachine Gun Round (LEGACY) @@ -3173,7 +3180,7 @@ item.gun_osipr_ammo.name=Dark Energy Pulse Plug item.gun_osipr_ammo2.name=Combine Ball item.gun_immolator_ammo.name=Immolator Fuel item.gun_cryolator_ammo.name=Cryo Cell -item.gun_mp_ammo.name=Small Propellantless Machine Gun Round +item.gun_mp_ammo.name=Small Propellantless 5.56mm Round item.gun_emp_ammo.name=Energy Cell item.gun_jack_ammo.name=Quadruple Shotgun Shell item.gun_spark_ammo.name=Electromagnetic Cartridge @@ -3329,7 +3336,7 @@ item.turret_cwis_ammo.name=CIWS 20mm Ammo Drum item.turret_cheapo_ammo.name=6x24 Cheapo Turret Ammunition item.clip_revolver_iron.name=Box of Iron Rounds -item.clip_revolver.name=Box of .357 Rounds +item.clip_revolver.name=Box of Lead Rounds item.clip_revolver_gold.name=Small Coffer of Golden Bullets item.clip_revolver_schrabidium.name=Schrabidium Ammo Container item.clip_rpg.name=Rocket Container @@ -3383,9 +3390,9 @@ item.iv_blood.name=Blood Bag item.iv_empty.name=IV Bag item.iv_xp.name=Experience Bag item.iv_xp_empty.name=Empty Experience Bag -item.radaway.name=RadAway -item.radaway_strong.name=Strong RadAway -item.radaway_flush.name=Elite RadAway +item.radaway.name=RadAway Bag +item.radaway_strong.name=Strong RadAway Bag +item.radaway_flush.name=Elite RadAway Bag item.radx.name=Rad-X item.pill_iodine.name=Iodine Pill item.pill_herbal.name=Herbal Paste @@ -3758,10 +3765,10 @@ item.hazmat_helmet_grey.name=High-Performance Hazmat Helmet item.hazmat_plate_grey.name=High-Performance Hazmat Chestplate item.hazmat_legs_grey.name=High-Performance Hazmat Leggings item.hazmat_boots_grey.name=High-Performance Hazmat Boots -item.hazmat_paa_helmet.name=PaA Battle Hazmat Suit Helmet -item.hazmat_paa_plate.name=PaA Battle Hazmat Suit Chestplate -item.hazmat_paa_legs.name=PaA Battle Hazmat Suit Leggings -item.hazmat_paa_boots.name=PaA Battle Hazmat Suit Boots +item.hazmat_paa_helmet.name=PaA Hazmat Suit Helmet +item.hazmat_paa_plate.name=PaA Hazmat Suit Chestplate +item.hazmat_paa_legs.name=PaA Hazmat Suit Leggings +item.hazmat_paa_boots.name=PaA Hazmat Suit Boots item.asbestos_helmet.name=Fire Proximity Helmet item.asbestos_plate.name=Fire Proximity Chestplate item.asbestos_legs.name=Fire Proximity Leggings @@ -3931,10 +3938,14 @@ item.cape_nostalgia.name=DrNostalgia's Cape tile.machine_converter_he_rf.name=HE to RF Converter tile.machine_converter_rf_he.name=RF to HE Converter -tile.machine_transformer.name=10k-20Hz Transformer -tile.machine_transformer_dnt.name=DNT-20Hz Transformer -tile.machine_transformer_20.name=10k-1Hz Transformer -tile.machine_transformer_dnt_20.name=DNT-1Hz Transformer +tile.machine_transformer.name=Up Charger +tile.machine_transformer.desc=Uses power to charge items in a players inventory. Range: 3 blocks above it +tile.machine_transformer_dnt.name=DNT Up Charger +tile.machine_transformer_dnt.desc=Uses power to charge items in a players inventory. Range: 3 blocks above it +tile.machine_transformer_20.name=Down Charger +tile.machine_transformer_20.desc=Uses power to charge items in a players inventory. Range: 3 blocks below it +tile.machine_transformer_dnt_20.name=DNT Down Charger +tile.machine_transformer_dnt_20.desc=Uses power to charge items in a players inventory. Range: 3 blocks below it tile.vent_chlorine.name=Poison Vent tile.vent_cloud.name=Cloud Vent @@ -4320,6 +4331,7 @@ item.insert_di.name=Dineutronium Insert item.insert_steel.name=Heavy Steel Insert item.insert_xsapi.name=XSAPI Insert item.insert_yharonite.name=Yharonite Insert +item.insert_ferrouranium.name=Ferrouranium Insert item.attachment_mask.name=Gas Mask Attachable item.attachment_mask_mono.name=Carbon Monoxide Mask Attachable item.servo_set.name=Servo Set @@ -4451,6 +4463,7 @@ item.ingot_tantalium.name=Tantalium Ingot item.ingot_tcalloy.name=Technetium Steel Ingot item.ingot_technetium.name=Technetium-99 Ingot tile.cluster_aluminium.name=Aluminium Ore Cluster +tile.cluster_copper.name=Copper Ore Cluster tile.cluster_depth_iron.name=Depth Iron Ore Cluster tile.cluster_depth_titanium.name=Depth Titanium Ore Cluster tile.cluster_depth_tungsten.name=Depth Tungsten Ore Cluster @@ -4482,6 +4495,12 @@ item.nugget_technetium.name=Technetium-99 Nugget tile.stone_depth.name=Depth Rock tile.stone_depth_nether.name=Nether Depth Rock tile.block_tantalium.name=Block of Tantalium +tile.block_lignite.name=Block of Lignite +tile.block_coke.name=Block of Coke +tile.block_coal_infernal.name=Block of Infernal Coal +tile.block_solid_fuel.name=Block of Solid Fuel +tile.block_solid_fuel_presto.name=Block of Presto Logs +tile.block_solid_fuel_presto_triplet.name=Block of Boosted Presto Logs item.ingot_graphite.name=Graphite Ingot tile.block_graphite.name=Block of Graphite tile.block_graphite_drilled.name=Drilled Graphite @@ -4714,11 +4733,12 @@ tile.large_vehicle_door.name=Large Vehicle Door tile.water_door.name=Water Door tile.qe_containment.name=QE Containment Door tile.qe_sliding.name=QE Sliding Door +tile.sliding_gate_door.name=Small QE Containment Door +tile.sliding_seal_door.name=Sliding Metal Door tile.fire_door.name=Fire Door tile.small_hatch.name=Small Hatch tile.round_airlock_door.name=Round Airlock Door tile.secure_access_door.name=Secure Access Door -tile.sliding_seal_door.name=Sliding Seal Door tile.transition_seal.name=Transition Seal tile.ladder_red.name=Red Ladder tile.ladder_red_top.name=Red Ladder Top diff --git a/src/main/resources/assets/hbm/models/block/block_coal_infernal.json b/src/main/resources/assets/hbm/models/block/block_coal_infernal.json new file mode 100644 index 0000000000..1fa4e899ff --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/block_coal_infernal.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/block_coal_infernal" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/block_coke.json b/src/main/resources/assets/hbm/models/block/block_coke.json new file mode 100644 index 0000000000..c280392a6d --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/block_coke.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/block_coke" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/block_lignite.json b/src/main/resources/assets/hbm/models/block/block_lignite.json new file mode 100644 index 0000000000..fae9a77330 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/block_lignite.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/block_lignite" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/block_radspice.json b/src/main/resources/assets/hbm/models/block/block_radspice.json new file mode 100644 index 0000000000..a38d0e03b3 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/block_radspice.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/block_radspice" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/block_solid_fuel.json b/src/main/resources/assets/hbm/models/block/block_solid_fuel.json new file mode 100644 index 0000000000..71b9d8a06b --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/block_solid_fuel.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/block_solid_fuel" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/block_solid_fuel_presto.json b/src/main/resources/assets/hbm/models/block/block_solid_fuel_presto.json new file mode 100644 index 0000000000..5b45b8776c --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/block_solid_fuel_presto.json @@ -0,0 +1,8 @@ +{ + "parent": "block/cube_bottom_top", + "textures": { + "side": "hbm:blocks/block_solid_fuel_presto_side", + "bottom": "hbm:blocks/block_solid_fuel_presto", + "top": "hbm:blocks/block_solid_fuel_presto" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/block_solid_fuel_presto_triplet.json b/src/main/resources/assets/hbm/models/block/block_solid_fuel_presto_triplet.json new file mode 100644 index 0000000000..977fd2df71 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/block_solid_fuel_presto_triplet.json @@ -0,0 +1,8 @@ +{ + "parent": "block/cube_bottom_top", + "textures": { + "side": "hbm:blocks/block_solid_fuel_presto_triplet_side", + "bottom": "hbm:blocks/block_solid_fuel_presto", + "top": "hbm:blocks/block_solid_fuel_presto" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/cluster_copper.json b/src/main/resources/assets/hbm/models/block/cluster_copper.json new file mode 100644 index 0000000000..697187ac71 --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/cluster_copper.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/cluster_copper" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/concrete_inner_stairs.json b/src/main/resources/assets/hbm/models/block/concrete_inner_stairs.json index ec8e118c92..b6db1cdf41 100644 --- a/src/main/resources/assets/hbm/models/block/concrete_inner_stairs.json +++ b/src/main/resources/assets/hbm/models/block/concrete_inner_stairs.json @@ -1,8 +1,8 @@ { "parent": "block/inner_stairs", "textures": { - "bottom": "hbm:blocks/concrete", - "top": "hbm:blocks/concrete", - "side": "hbm:blocks/concrete" + "bottom": "hbm:blocks/concrete_tile", + "top": "hbm:blocks/concrete_tile", + "side": "hbm:blocks/concrete_tile" } } diff --git a/src/main/resources/assets/hbm/models/block/concrete_outer_stairs.json b/src/main/resources/assets/hbm/models/block/concrete_outer_stairs.json index 842e4c0e89..68ac65ecb3 100644 --- a/src/main/resources/assets/hbm/models/block/concrete_outer_stairs.json +++ b/src/main/resources/assets/hbm/models/block/concrete_outer_stairs.json @@ -1,8 +1,8 @@ { "parent": "block/outer_stairs", "textures": { - "bottom": "hbm:blocks/concrete", - "top": "hbm:blocks/concrete", - "side": "hbm:blocks/concrete" + "bottom": "hbm:blocks/concrete_tile", + "top": "hbm:blocks/concrete_tile", + "side": "hbm:blocks/concrete_tile" } } diff --git a/src/main/resources/assets/hbm/models/block/concrete_smooth.json b/src/main/resources/assets/hbm/models/block/concrete_smooth.json index df469c1950..2d00a42336 100644 --- a/src/main/resources/assets/hbm/models/block/concrete_smooth.json +++ b/src/main/resources/assets/hbm/models/block/concrete_smooth.json @@ -1,6 +1,6 @@ { "parent": "block/cube_all", "textures": { - "all": "hbm:blocks/concrete_smooth" + "all": "hbm:blocks/concrete" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/concrete_smooth_inner_stairs.json b/src/main/resources/assets/hbm/models/block/concrete_smooth_inner_stairs.json index fdbdee0a96..ec8e118c92 100644 --- a/src/main/resources/assets/hbm/models/block/concrete_smooth_inner_stairs.json +++ b/src/main/resources/assets/hbm/models/block/concrete_smooth_inner_stairs.json @@ -1,8 +1,8 @@ { "parent": "block/inner_stairs", "textures": { - "bottom": "hbm:blocks/concrete_smooth", - "top": "hbm:blocks/concrete_smooth", - "side": "hbm:blocks/concrete_smooth" + "bottom": "hbm:blocks/concrete", + "top": "hbm:blocks/concrete", + "side": "hbm:blocks/concrete" } } diff --git a/src/main/resources/assets/hbm/models/block/concrete_smooth_outer_stairs.json b/src/main/resources/assets/hbm/models/block/concrete_smooth_outer_stairs.json index 80d3352657..842e4c0e89 100644 --- a/src/main/resources/assets/hbm/models/block/concrete_smooth_outer_stairs.json +++ b/src/main/resources/assets/hbm/models/block/concrete_smooth_outer_stairs.json @@ -1,8 +1,8 @@ { "parent": "block/outer_stairs", "textures": { - "bottom": "hbm:blocks/concrete_smooth", - "top": "hbm:blocks/concrete_smooth", - "side": "hbm:blocks/concrete_smooth" + "bottom": "hbm:blocks/concrete", + "top": "hbm:blocks/concrete", + "side": "hbm:blocks/concrete" } } diff --git a/src/main/resources/assets/hbm/models/block/concrete_smooth_stairs.json b/src/main/resources/assets/hbm/models/block/concrete_smooth_stairs.json index 6f3f3d0a4d..55a10be8dd 100644 --- a/src/main/resources/assets/hbm/models/block/concrete_smooth_stairs.json +++ b/src/main/resources/assets/hbm/models/block/concrete_smooth_stairs.json @@ -1,8 +1,8 @@ { "parent": "block/stairs", "textures": { - "bottom": "hbm:blocks/concrete_smooth", - "top": "hbm:blocks/concrete_smooth", - "side": "hbm:blocks/concrete_smooth" + "bottom": "hbm:blocks/concrete", + "top": "hbm:blocks/concrete", + "side": "hbm:blocks/concrete" } } diff --git a/src/main/resources/assets/hbm/models/block/concrete_stairs.json b/src/main/resources/assets/hbm/models/block/concrete_stairs.json index 55a10be8dd..3e7f75d8b8 100644 --- a/src/main/resources/assets/hbm/models/block/concrete_stairs.json +++ b/src/main/resources/assets/hbm/models/block/concrete_stairs.json @@ -1,8 +1,8 @@ { "parent": "block/stairs", "textures": { - "bottom": "hbm:blocks/concrete", - "top": "hbm:blocks/concrete", - "side": "hbm:blocks/concrete" + "bottom": "hbm:blocks/concrete_tile", + "top": "hbm:blocks/concrete_tile", + "side": "hbm:blocks/concrete_tile" } } diff --git a/src/main/resources/assets/hbm/models/block/half_slab_concrete.json b/src/main/resources/assets/hbm/models/block/half_slab_concrete.json index d5fe1ac05f..3074850c71 100644 --- a/src/main/resources/assets/hbm/models/block/half_slab_concrete.json +++ b/src/main/resources/assets/hbm/models/block/half_slab_concrete.json @@ -1,9 +1,9 @@ { "parent": "block/half_slab", "textures": { - "bottom": "hbm:blocks/concrete", - "top": "hbm:blocks/concrete", - "side": "hbm:blocks/concrete" + "bottom": "hbm:blocks/concrete_tile", + "top": "hbm:blocks/concrete_tile", + "side": "hbm:blocks/concrete_tile" } } diff --git a/src/main/resources/assets/hbm/models/block/half_slab_concrete_smooth.json b/src/main/resources/assets/hbm/models/block/half_slab_concrete_smooth.json index 9b471d09b6..d5fe1ac05f 100644 --- a/src/main/resources/assets/hbm/models/block/half_slab_concrete_smooth.json +++ b/src/main/resources/assets/hbm/models/block/half_slab_concrete_smooth.json @@ -1,9 +1,9 @@ { "parent": "block/half_slab", "textures": { - "bottom": "hbm:blocks/concrete_smooth", - "top": "hbm:blocks/concrete_smooth", - "side": "hbm:blocks/concrete_smooth" + "bottom": "hbm:blocks/concrete", + "top": "hbm:blocks/concrete", + "side": "hbm:blocks/concrete" } } diff --git a/src/main/resources/assets/hbm/models/block/machine_transformer.json b/src/main/resources/assets/hbm/models/block/machine_transformer.json index bf70c9ff51..0b5dc2336f 100644 --- a/src/main/resources/assets/hbm/models/block/machine_transformer.json +++ b/src/main/resources/assets/hbm/models/block/machine_transformer.json @@ -2,7 +2,7 @@ "parent": "block/cube_bottom_top", "textures": { "top": "hbm:blocks/machine_transformer_top_iron", - "bottom": "hbm:blocks/machine_transformer_top_iron", + "bottom": "hbm:blocks/machine_transformer_bottom_iron", "side": "hbm:blocks/machine_transformer_iron" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/machine_transformer_20.json b/src/main/resources/assets/hbm/models/block/machine_transformer_20.json index bf70c9ff51..47b5b6ac86 100644 --- a/src/main/resources/assets/hbm/models/block/machine_transformer_20.json +++ b/src/main/resources/assets/hbm/models/block/machine_transformer_20.json @@ -1,7 +1,7 @@ { "parent": "block/cube_bottom_top", "textures": { - "top": "hbm:blocks/machine_transformer_top_iron", + "top": "hbm:blocks/machine_transformer_bottom_iron", "bottom": "hbm:blocks/machine_transformer_top_iron", "side": "hbm:blocks/machine_transformer_iron" } diff --git a/src/main/resources/assets/hbm/models/block/machine_transformer_dnt.json b/src/main/resources/assets/hbm/models/block/machine_transformer_dnt.json index 07ea5ce5b1..0afae4e3ae 100644 --- a/src/main/resources/assets/hbm/models/block/machine_transformer_dnt.json +++ b/src/main/resources/assets/hbm/models/block/machine_transformer_dnt.json @@ -2,7 +2,7 @@ "parent": "block/cube_bottom_top", "textures": { "top": "hbm:blocks/machine_transformer_top", - "bottom": "hbm:blocks/machine_transformer_top", + "bottom": "hbm:blocks/machine_transformer_bottom", "side": "hbm:blocks/machine_transformer" } } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/machine_transformer_dnt_20.json b/src/main/resources/assets/hbm/models/block/machine_transformer_dnt_20.json index 07ea5ce5b1..cba22f2888 100644 --- a/src/main/resources/assets/hbm/models/block/machine_transformer_dnt_20.json +++ b/src/main/resources/assets/hbm/models/block/machine_transformer_dnt_20.json @@ -1,7 +1,7 @@ { "parent": "block/cube_bottom_top", "textures": { - "top": "hbm:blocks/machine_transformer_top", + "top": "hbm:blocks/machine_transformer_bottom", "bottom": "hbm:blocks/machine_transformer_top", "side": "hbm:blocks/machine_transformer" } diff --git a/src/main/resources/assets/hbm/models/block/sliding_gate_door.json b/src/main/resources/assets/hbm/models/block/sliding_gate_door.json new file mode 100644 index 0000000000..9f7d8502af --- /dev/null +++ b/src/main/resources/assets/hbm/models/block/sliding_gate_door.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "hbm:blocks/block_steel" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/block/upper_slab_concrete.json b/src/main/resources/assets/hbm/models/block/upper_slab_concrete.json index 95201b75c0..10b6bd6149 100644 --- a/src/main/resources/assets/hbm/models/block/upper_slab_concrete.json +++ b/src/main/resources/assets/hbm/models/block/upper_slab_concrete.json @@ -1,9 +1,9 @@ { "parent": "block/upper_slab", "textures": { - "bottom": "hbm:blocks/concrete", - "top": "hbm:blocks/concrete", - "side": "hbm:blocks/concrete" + "bottom": "hbm:blocks/concrete_tile", + "top": "hbm:blocks/concrete_tile", + "side": "hbm:blocks/concrete_tile" } } diff --git a/src/main/resources/assets/hbm/models/block/upper_slab_concrete_smooth.json b/src/main/resources/assets/hbm/models/block/upper_slab_concrete_smooth.json index 1b103011e1..95201b75c0 100644 --- a/src/main/resources/assets/hbm/models/block/upper_slab_concrete_smooth.json +++ b/src/main/resources/assets/hbm/models/block/upper_slab_concrete_smooth.json @@ -1,9 +1,9 @@ { "parent": "block/upper_slab", "textures": { - "bottom": "hbm:blocks/concrete_smooth", - "top": "hbm:blocks/concrete_smooth", - "side": "hbm:blocks/concrete_smooth" + "bottom": "hbm:blocks/concrete", + "top": "hbm:blocks/concrete", + "side": "hbm:blocks/concrete" } } diff --git a/src/main/resources/assets/hbm/models/doors/sliding_seal_door.obj b/src/main/resources/assets/hbm/models/doors/sliding_seal_door.obj index dc0017cc31..17d1510feb 100644 --- a/src/main/resources/assets/hbm/models/doors/sliding_seal_door.obj +++ b/src/main/resources/assets/hbm/models/doors/sliding_seal_door.obj @@ -1,222 +1,223 @@ -# Blender v2.92.0 OBJ File: 'sliding_seal_door.blend' +# Blender v2.93.4 OBJ File: '' # www.blender.org +mtllib sliding_seal_door.mtl o frame -v 0.125000 2.000000 -0.500000 -v 0.125000 0.000000 -0.500000 -v 0.125000 0.000000 0.500000 -v 0.125000 2.000000 0.500000 -v 0.125000 0.076037 0.228141 -v 0.125000 0.271859 0.423963 -v 0.125000 0.102272 0.326052 -v 0.125000 0.173948 0.397728 -v 0.125000 1.728141 0.423963 -v 0.125000 1.923963 0.228141 -v 0.125000 1.826052 0.397728 -v 0.125000 1.897728 0.326052 -v 0.125000 0.271859 -0.423963 -v 0.125000 0.076037 -0.228141 -v 0.125000 0.173948 -0.397728 -v 0.125000 0.102272 -0.326052 -v 0.125000 1.923963 -0.228141 -v 0.125000 1.728141 -0.423963 -v 0.125000 1.897728 -0.326052 -v 0.125000 1.826052 -0.397728 -v 0.089033 1.728141 -0.423963 -v 0.089033 1.826052 -0.397728 -v 0.089033 1.897728 -0.326052 -v 0.089033 1.923963 -0.228141 -v 0.089033 0.076037 -0.228141 -v 0.089033 0.102272 -0.326052 -v 0.089033 0.173948 -0.397728 -v 0.089033 0.271859 -0.423963 -v 0.089033 0.271859 0.423963 -v 0.089033 0.173948 0.397728 -v 0.089033 0.102272 0.326052 -v 0.089033 0.076037 0.228141 -v 0.089033 1.923963 0.228141 -v 0.089033 1.897728 0.326052 -v 0.089033 1.826052 0.397728 -v 0.089033 1.728141 0.423963 -v 0.089033 0.036209 -0.233384 -v 0.089033 0.036209 0.233384 -v 0.089033 1.846138 0.432517 -v 0.089033 1.733384 0.463791 -v 0.089033 1.932517 0.346138 -v 0.089033 1.963791 0.233384 -v 0.089033 0.067483 0.346138 -v 0.089033 0.153862 0.432517 -v 0.089033 0.266616 0.463791 -v 0.089033 0.036209 -0.432517 -v 0.089033 0.036209 -0.477970 -v 0.089033 0.036209 -0.346138 -v 0.089033 1.963791 -0.346138 -v 0.089033 1.963791 -0.233384 -v 0.089033 1.963791 -0.432517 -v 0.089033 1.963791 -0.477970 -v 0.125000 0.053035 0.242267 -v 0.125000 0.253733 0.450214 -v 0.125000 0.079924 0.346241 -v 0.125000 0.153384 0.422355 -v 0.125000 1.746267 0.450214 -v 0.125000 1.946965 0.242267 -v 0.125000 1.846616 0.422355 -v 0.125000 1.920076 0.346241 -v 0.125000 0.253733 -0.450214 -v 0.125000 0.053035 -0.242267 -v 0.125000 0.153384 -0.422355 -v 0.125000 0.079924 -0.346241 -v 0.125000 1.946965 -0.242267 -v 0.125000 1.746267 -0.450214 -v 0.125000 1.920076 -0.346241 -v 0.125000 1.846616 -0.422355 -v 0.139289 0.068129 0.233128 -v 0.139289 0.094589 0.333179 -v 0.139289 0.166878 0.406422 -v 0.139289 0.265627 0.433231 -v 0.139289 1.734373 0.433231 -v 0.139289 1.833122 0.406422 -v 0.139289 1.905411 0.333179 -v 0.139289 1.931871 0.233128 -v 0.139289 0.265627 -0.433231 -v 0.139289 0.166878 -0.406422 -v 0.139289 0.094589 -0.333179 -v 0.139289 0.068129 -0.233128 -v 0.139289 1.931871 -0.233128 -v 0.139289 1.905411 -0.333179 -v 0.139289 1.833122 -0.406422 -v 0.139289 1.734373 -0.433231 -v 0.139289 0.058093 0.238676 -v 0.139289 0.084837 0.341109 -v 0.139289 0.157905 0.416095 -v 0.139289 0.257718 0.443541 -v 0.139289 1.742282 0.443541 -v 0.139289 1.842094 0.416095 -v 0.139289 1.915163 0.341109 -v 0.139289 1.941907 0.238676 -v 0.139289 0.257718 -0.443541 -v 0.139289 0.157905 -0.416095 -v 0.139289 0.084837 -0.341109 -v 0.139289 0.058093 -0.238676 -v 0.139289 1.941907 -0.238676 -v 0.139289 1.915163 -0.341109 -v 0.139289 1.842094 -0.416095 -v 0.139289 1.742282 -0.443541 -v -0.125000 2.000000 -0.500000 -v -0.125000 0.000000 -0.500000 -v -0.125000 0.000000 0.500000 -v -0.125000 2.000000 0.500000 -v -0.125000 0.076037 0.228141 -v -0.125000 0.271859 0.423963 -v -0.125000 0.102272 0.326052 -v -0.125000 0.173948 0.397728 -v -0.125000 1.728141 0.423963 +v -0.125000 1.923963 -0.228141 +v -0.089033 1.923963 0.228141 v -0.125000 1.923963 0.228141 -v -0.125000 1.826052 0.397728 -v -0.125000 1.897728 0.326052 +v -0.125000 1.920076 0.346241 +v -0.125000 2.000000 0.500000 +v -0.125000 1.946965 0.242267 v -0.125000 0.271859 -0.423963 -v -0.125000 0.076037 -0.228141 -v -0.125000 0.173948 -0.397728 -v -0.125000 0.102272 -0.326052 -v -0.125000 1.923963 -0.228141 -v -0.125000 1.728141 -0.423963 -v -0.125000 1.897728 -0.326052 -v -0.125000 1.826052 -0.397728 v -0.089033 1.728141 -0.423963 -v -0.089033 1.826052 -0.397728 +v -0.125000 1.728141 -0.423963 v -0.089033 1.897728 -0.326052 v -0.089033 1.923963 -0.228141 +v -0.125000 1.826052 -0.397728 +v -0.089033 1.826052 -0.397728 +v -0.125000 1.897728 -0.326052 +v -0.125000 0.102272 -0.326052 v -0.089033 0.076037 -0.228141 v -0.089033 0.102272 -0.326052 +v -0.125000 0.173948 -0.397728 v -0.089033 0.173948 -0.397728 -v -0.089033 0.271859 -0.423963 +v -0.125000 0.173948 0.397728 v -0.089033 0.271859 0.423963 v -0.089033 0.173948 0.397728 +v -0.125000 0.102272 0.326052 v -0.089033 0.102272 0.326052 +v -0.125000 0.076037 0.228141 v -0.089033 0.076037 0.228141 -v -0.089033 1.923963 0.228141 +v -0.125000 1.897728 0.326052 v -0.089033 1.897728 0.326052 +v -0.125000 1.826052 0.397728 v -0.089033 1.826052 0.397728 +v -0.125000 0.271859 0.423963 v -0.089033 1.728141 0.423963 +v -0.125000 0.076037 -0.228141 +v -0.089033 0.271859 -0.423963 +v -0.089033 0.036209 0.477970 v -0.089033 0.036209 -0.233384 +v -0.089033 0.067483 -0.346138 +v -0.089033 0.036209 0.432517 +v -0.089033 0.036209 0.346138 +v -0.089033 1.963791 0.477970 +v -0.089033 1.963791 -0.233384 +v -0.089033 1.963791 0.432517 +v -0.089033 1.846138 -0.432517 +v -0.089033 1.932517 -0.346138 +v -0.125000 1.728141 0.423963 v -0.089033 0.036209 0.233384 -v -0.089033 1.846138 0.432517 -v -0.089033 1.733384 0.463791 -v -0.089033 1.932517 0.346138 +v 0.000000 0.036209 0.346138 +v 0.000000 0.036209 0.233384 +v -0.000000 1.932517 -0.346138 +v -0.000000 1.963791 -0.233384 +v -0.000000 1.733384 -0.463791 +v -0.000000 1.846138 -0.432517 +v -0.089033 0.153862 -0.432517 v -0.089033 1.963791 0.233384 -v -0.089033 0.067483 0.346138 -v -0.089033 0.153862 0.432517 -v -0.089033 0.266616 0.463791 -v -0.089033 0.036209 -0.432517 -v -0.089033 0.036209 -0.477970 -v -0.089033 0.036209 -0.346138 -v -0.089033 1.963791 -0.346138 -v -0.089033 1.963791 -0.233384 -v -0.089033 1.963791 -0.432517 -v -0.089033 1.963791 -0.477970 -v -0.125000 0.053035 0.242267 -v -0.125000 0.253733 0.450214 -v -0.125000 0.079924 0.346241 -v -0.125000 0.153384 0.422355 -v -0.125000 1.746267 0.450214 -v -0.125000 1.946965 0.242267 +v -0.089033 1.733384 -0.463791 +v -0.089033 1.963791 0.346138 +v -0.089033 0.266616 -0.463791 v -0.125000 1.846616 0.422355 -v -0.125000 1.920076 0.346241 -v -0.125000 0.253733 -0.450214 -v -0.125000 0.053035 -0.242267 -v -0.125000 0.153384 -0.422355 -v -0.125000 0.079924 -0.346241 -v -0.125000 1.946965 -0.242267 -v -0.125000 1.746267 -0.450214 -v -0.125000 1.920076 -0.346241 -v -0.125000 1.846616 -0.422355 +v -0.125000 1.746267 0.450214 +v -0.125000 0.000000 0.500000 +v -0.139289 1.931871 0.233128 +v -0.139289 1.915163 0.341109 v -0.139289 0.068129 0.233128 v -0.139289 0.094589 0.333179 +v -0.125000 0.053035 0.242267 +v -0.139289 0.084837 0.341109 +v -0.139289 0.058093 0.238676 v -0.139289 0.166878 0.406422 +v -0.125000 0.079924 0.346241 +v -0.139289 0.157905 0.416095 v -0.139289 0.265627 0.433231 -v -0.139289 1.734373 0.433231 -v -0.139289 1.833122 0.406422 -v -0.139289 1.905411 0.333179 -v -0.139289 1.931871 0.233128 -v -0.139289 0.265627 -0.433231 -v -0.139289 0.166878 -0.406422 -v -0.139289 0.094589 -0.333179 -v -0.139289 0.068129 -0.233128 +v -0.125000 0.253733 0.450214 +v -0.125000 0.153384 0.422355 v -0.139289 1.931871 -0.233128 v -0.139289 1.905411 -0.333179 +v -0.125000 1.946965 -0.242267 +v -0.139289 1.915163 -0.341109 +v -0.139289 1.941907 -0.238676 v -0.139289 1.833122 -0.406422 +v -0.125000 1.920076 -0.346241 +v -0.139289 1.842094 -0.416095 v -0.139289 1.734373 -0.433231 -v -0.139289 0.058093 0.238676 -v -0.139289 0.084837 0.341109 -v -0.139289 0.157905 0.416095 -v -0.139289 0.257718 0.443541 -v -0.139289 1.742282 0.443541 -v -0.139289 1.842094 0.416095 -v -0.139289 1.915163 0.341109 -v -0.139289 1.941907 0.238676 -v -0.139289 0.257718 -0.443541 -v -0.139289 0.157905 -0.416095 -v -0.139289 0.084837 -0.341109 +v -0.125000 1.746267 -0.450214 +v -0.125000 1.846616 -0.422355 +v -0.139289 0.265627 -0.433231 +v -0.125000 -0.000000 -0.500000 +v -0.125000 0.053035 -0.242267 +v -0.125000 0.079924 -0.346241 +v -0.125000 0.153384 -0.422355 +v -0.125000 0.253733 -0.450214 +v -0.125000 2.000000 -0.500000 +v -0.139289 0.068129 -0.233128 v -0.139289 0.058093 -0.238676 -v -0.139289 1.941907 -0.238676 -v -0.139289 1.915163 -0.341109 -v -0.139289 1.842094 -0.416095 +v -0.139289 0.094589 -0.333179 +v -0.139289 0.084837 -0.341109 +v -0.139289 0.157905 -0.416095 +v -0.139289 0.166878 -0.406422 +v -0.139289 0.257718 -0.443541 v -0.139289 1.742282 -0.443541 -v 0.000000 0.036209 0.233384 -v 0.000000 1.846138 0.432517 -v 0.000000 1.932517 0.346138 +v -0.139289 1.941907 0.238676 +v -0.139289 1.905411 0.333179 +v -0.139289 1.842094 0.416095 +v -0.139289 1.833122 0.406422 +v -0.139289 1.742282 0.443541 +v -0.139289 1.734373 0.433231 +v -0.139289 0.257718 0.443541 v 0.000000 1.963791 0.233384 -v 0.000000 0.067483 0.346138 -v 0.000000 0.153862 0.432517 -v 0.000000 0.266616 0.463791 -v 0.000000 0.036209 -0.432517 -v 0.000000 0.036209 -0.346138 -v 0.000000 1.963791 -0.346138 -v 0.000000 1.963791 -0.432517 -v 0.000000 1.963791 -0.477970 -v 0.000000 0.036209 -0.233384 -v 0.000000 1.733384 0.463791 -v 0.000000 0.036209 -0.477970 -v 0.000000 1.963791 -0.233384 +v 0.000000 1.963791 0.346138 +v 0.000000 1.963791 0.432517 +v 0.000000 0.036209 0.477970 +v 0.000000 0.036209 0.432517 +v -0.000000 0.153862 -0.432517 +v -0.000000 0.266616 -0.463791 +v -0.000000 0.067483 -0.346138 +v -0.000000 0.036209 -0.233384 +v 0.125000 0.000000 0.500000 +v 0.125000 -0.000000 -0.500000 +v 0.125000 2.000000 0.500000 +v 0.000000 1.963791 0.477970 +v 0.089033 1.923963 0.228141 +v 0.125000 1.923963 -0.228141 +v 0.125000 1.923963 0.228141 +v 0.125000 1.920076 0.346241 +v 0.125000 1.946965 0.242267 +v 0.089033 1.728141 -0.423963 +v 0.125000 0.271859 -0.423963 +v 0.125000 1.728141 -0.423963 +v 0.089033 1.897728 -0.326052 +v 0.089033 1.923963 -0.228141 +v 0.125000 1.826052 -0.397728 +v 0.089033 1.826052 -0.397728 +v 0.125000 1.897728 -0.326052 +v 0.089033 0.076037 -0.228141 +v 0.125000 0.102272 -0.326052 +v 0.089033 0.102272 -0.326052 +v 0.125000 0.173948 -0.397728 +v 0.089033 0.173948 -0.397728 +v 0.089033 0.271859 0.423963 +v 0.125000 0.173948 0.397728 +v 0.089033 0.173948 0.397728 +v 0.125000 0.102272 0.326052 +v 0.089033 0.102272 0.326052 +v 0.125000 0.076037 0.228141 +v 0.089033 0.076037 0.228141 +v 0.125000 1.897728 0.326052 +v 0.089033 1.897728 0.326052 +v 0.125000 1.826052 0.397728 +v 0.089033 1.826052 0.397728 +v 0.089033 1.728141 0.423963 +v 0.125000 0.271859 0.423963 +v 0.125000 0.076037 -0.228141 +v 0.089033 0.271859 -0.423963 +v 0.089033 0.036209 0.477970 +v 0.089033 0.036209 -0.233384 +v 0.089033 0.036209 0.432517 +v 0.089033 1.963791 0.477970 +v 0.089033 1.963791 -0.233384 +v 0.089033 1.963791 0.432517 +v 0.089033 1.846138 -0.432517 +v 0.125000 1.728141 0.423963 +v 0.089033 0.036209 0.233384 +v 0.089033 0.153862 -0.432517 +v 0.089033 1.963791 0.233384 +v 0.089033 1.733384 -0.463791 +v 0.089033 0.266616 -0.463791 +v 0.125000 1.846616 0.422355 +v 0.125000 1.746267 0.450214 +v 0.139289 1.931871 0.233128 +v 0.139289 1.915163 0.341109 +v 0.139289 0.068129 0.233128 +v 0.125000 0.053035 0.242267 +v 0.139289 0.084837 0.341109 +v 0.125000 0.079924 0.346241 +v 0.139289 0.094589 0.333179 +v 0.139289 0.157905 0.416095 +v 0.125000 0.153384 0.422355 +v 0.139289 0.265627 0.433231 +v 0.125000 0.253733 0.450214 +v 0.139289 1.931871 -0.233128 +v 0.125000 1.946965 -0.242267 +v 0.139289 1.915163 -0.341109 +v 0.125000 1.920076 -0.346241 +v 0.139289 1.905411 -0.333179 +v 0.139289 1.842094 -0.416095 +v 0.125000 1.846616 -0.422355 +v 0.139289 1.734373 -0.433231 +v 0.125000 1.746267 -0.450214 +v 0.139289 0.265627 -0.433231 +v 0.125000 0.053035 -0.242267 +v 0.125000 0.079924 -0.346241 +v 0.125000 0.153384 -0.422355 +v 0.125000 0.253733 -0.450214 +v 0.125000 2.000000 -0.500000 +v 0.139289 0.058093 0.238676 +v 0.139289 0.068129 -0.233128 +v 0.139289 0.058093 -0.238676 +v 0.139289 0.094589 -0.333179 +v 0.139289 0.084837 -0.341109 +v 0.139289 0.157905 -0.416095 +v 0.139289 0.257718 -0.443541 +v 0.139289 0.166878 -0.406422 +v 0.139289 1.742282 -0.443541 +v 0.139289 1.833122 -0.406422 +v 0.139289 1.941907 -0.238676 +v 0.139289 1.941907 0.238676 +v 0.139289 1.905411 0.333179 +v 0.139289 1.842094 0.416095 +v 0.139289 1.742282 0.443541 +v 0.139289 1.833122 0.406422 +v 0.139289 0.257718 0.443541 +v 0.139289 0.166878 0.406422 +v 0.139289 1.734373 0.433231 +v 0.089033 1.963791 0.346138 +v 0.089033 0.036209 0.346138 +v 0.089033 1.932517 -0.346138 +v 0.089033 0.067483 -0.346138 vt 0.904854 0.827347 vt 0.912404 0.923128 vt 0.904854 0.923128 @@ -629,879 +630,880 @@ vt 0.331480 0.808420 vt 0.389999 0.811396 vt 0.957659 0.451055 vt 0.891076 0.848518 -vt 0.618533 0.610788 -vt 0.631115 0.004526 -vt 0.004526 0.622066 -vt 0.730026 0.004526 -vt 0.461151 0.402422 -vt 0.677547 0.433410 -vt 0.713423 0.958073 -vt 0.030782 0.874434 -vt 0.442462 0.861726 -vt 0.972429 0.004526 -vt 0.916191 0.409154 -vt 0.230059 0.795060 -vt 0.223494 0.649740 -vt 0.745642 0.458108 -vt 0.739078 0.603427 -vt 0.955827 0.312412 -vt 0.668494 0.004526 -vt 0.739078 0.004526 -vn 0.0000 -0.9914 -0.1305 -vn 0.0000 -0.9914 0.1305 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.1305 -0.9914 -vn 0.0000 -0.1305 -0.9914 -vn 0.0000 -0.8660 -0.5000 -vn 0.0000 -0.5000 -0.8660 -vn 0.0000 0.8660 -0.5000 -vn 0.0000 0.9914 -0.1305 -vn 0.0000 0.5000 -0.8660 -vn 0.0000 0.5000 0.8660 -vn 0.0000 0.1305 0.9914 -vn 0.0000 0.8660 0.5000 -vn 0.0000 0.9914 0.1305 -vn 0.0000 -0.8660 0.5000 -vn 0.0000 -0.5000 0.8660 -vn 0.0000 -0.1305 0.9914 -vn -1.0000 0.0000 0.0000 -vn 0.0000 1.0000 0.0000 -vn 0.0000 -0.9909 -0.1349 -vn 0.0000 -0.8638 -0.5038 -vn 0.0000 -0.5038 -0.8638 -vn 0.0000 -0.1349 -0.9909 -vn 0.5785 -0.7172 0.3885 -vn 0.5147 -0.8479 0.1271 -vn 0.5072 -0.8566 0.0950 -vn 0.3608 0.9232 -0.1322 -vn 0.4265 0.7984 -0.4251 -vn 0.4330 0.7770 -0.4570 -vn 0.5785 0.7172 0.3885 -vn 0.5147 0.8479 0.1271 -vn 0.5847 0.6955 0.4177 -vn 0.3608 -0.9232 -0.1322 -vn 0.4265 -0.7984 -0.4251 -vn 0.3550 -0.9290 -0.1043 -vn 0.6108 0.3862 0.6912 -vn 0.6133 0.4076 0.6765 -vn 0.4330 -0.7770 -0.4570 -vn 0.4732 -0.4444 -0.7607 -vn 0.5767 0.1242 0.8074 -vn 0.5686 0.0871 0.8180 -vn 0.4489 -0.1331 -0.8836 -vn 0.4742 -0.4551 -0.7537 -vn 0.5147 -0.8479 -0.1271 -vn 0.5072 -0.8566 -0.0950 -vn 0.5785 -0.7172 -0.3885 -vn 0.5847 -0.6955 -0.4177 -vn 0.3608 0.9232 0.1322 -vn 0.4265 0.7984 0.4251 -vn 0.3550 0.9290 0.1043 -vn 0.6108 -0.3862 -0.6912 -vn 0.6133 -0.4076 -0.6765 -vn 0.4330 0.7770 0.4570 -vn 0.4732 0.4444 0.7607 -vn 0.5767 -0.1242 -0.8074 -vn 0.5686 -0.0871 -0.8180 -vn 0.4489 0.1331 0.8836 -vn 0.4742 0.4551 0.7537 -vn 0.5767 0.1242 -0.8074 -vn 0.5686 0.0871 -0.8180 -vn 0.5767 -0.1242 0.8074 -vn 0.5686 -0.0871 0.8180 -vn 0.4732 0.4444 -0.7607 -vn 0.4742 0.4551 -0.7537 -vn 0.6108 -0.3862 0.6912 -vn 0.5847 -0.6955 0.4177 -vn 0.4489 0.1331 -0.8836 -vn 0.4446 0.1047 -0.8896 -vn 0.6133 -0.4076 0.6765 -vn 0.3550 -0.9290 0.1043 -vn 0.3608 -0.9232 0.1322 -vn 0.5072 0.8566 -0.0950 -vn 0.5072 0.8566 0.0950 -vn 0.4489 -0.1331 0.8836 -vn 0.4446 0.1047 0.8896 -vn 0.4265 -0.7984 0.4251 -vn 0.4330 -0.7770 0.4570 -vn 0.5785 0.7172 -0.3885 -vn 0.5147 0.8479 -0.1271 -vn 0.3550 0.9290 -0.1043 -vn 0.4732 -0.4444 0.7607 -vn 0.4742 -0.4551 0.7537 -vn 0.6108 0.3862 -0.6912 -vn 0.5847 0.6955 -0.4177 -vn 0.4446 -0.1047 -0.8896 -vn 0.4446 -0.1047 0.8896 -vn 0.6133 0.4076 -0.6765 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 0.1349 -0.9909 -vn 0.0000 0.5038 -0.8638 -vn 0.0000 0.8638 -0.5038 -vn 0.0000 0.9909 -0.1349 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 0.0000 1.0000 -vn -0.5147 -0.8479 0.1271 -vn -0.5785 -0.7172 0.3885 -vn -0.5072 -0.8566 0.0950 -vn -0.4265 0.7984 -0.4251 -vn -0.3608 0.9232 -0.1322 -vn -0.4330 0.7770 -0.4570 -vn -0.5785 0.7172 0.3885 -vn -0.5147 0.8479 0.1271 -vn -0.5072 0.8566 0.0950 -vn -0.3608 -0.9232 -0.1322 -vn -0.4265 -0.7984 -0.4251 -vn -0.4330 -0.7770 -0.4570 -vn -0.6108 0.3862 0.6912 -vn -0.5847 0.6955 0.4177 -vn -0.4732 -0.4444 -0.7607 -vn -0.4742 -0.4551 -0.7537 -vn -0.5767 0.1242 0.8074 -vn -0.5686 0.0871 0.8180 -vn -0.4489 -0.1331 -0.8836 +vt 0.618533 0.610788 +vt 0.631115 0.004526 +vt 0.004526 0.622066 +vt 0.730026 0.004526 +vt 0.461151 0.402422 +vt 0.677547 0.433410 +vt 0.713423 0.958073 +vt 0.030782 0.874434 +vt 0.442462 0.861726 +vt 0.972429 0.004526 +vt 0.916191 0.409154 +vt 0.230059 0.795060 +vt 0.223494 0.649740 +vt 0.745642 0.458108 +vt 0.739078 0.603427 +vt 0.955827 0.312412 +vt 0.668494 0.004526 +vt 0.739078 0.004526 +vn 0.0000 -0.9914 0.1305 +vn -0.0000 -0.9914 -0.1305 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.1305 0.9914 +vn 0.0000 -0.1305 0.9914 +vn 0.0000 -0.8660 0.5000 +vn 0.0000 -0.5000 0.8660 +vn 0.0000 0.8660 0.5000 +vn -0.0000 0.9914 0.1305 +vn 0.0000 0.5000 0.8660 +vn 0.0000 0.5000 -0.8660 +vn 0.0000 0.1305 -0.9914 +vn 0.0000 0.8660 -0.5000 +vn -0.0000 0.9914 -0.1305 +vn -0.0000 -0.8660 -0.5000 +vn -0.0000 -0.5000 -0.8660 +vn 0.0000 -0.1305 -0.9914 +vn 1.0000 -0.0000 -0.0000 +vn 0.0000 1.0000 -0.0000 +vn 0.0000 -0.9909 0.1349 +vn 0.0000 -0.8638 0.5038 +vn 0.0000 -0.5038 0.8638 +vn 0.0000 -0.1349 0.9909 +vn -0.5784 -0.7172 -0.3886 vn -0.5147 -0.8479 -0.1271 vn -0.5072 -0.8566 -0.0950 -vn -0.5785 -0.7172 -0.3885 vn -0.3608 0.9232 0.1322 vn -0.4265 0.7984 0.4251 vn -0.4330 0.7770 0.4570 -vn -0.6108 -0.3862 -0.6912 -vn -0.5847 -0.6955 -0.4177 -vn -0.4732 0.4444 0.7607 -vn -0.4742 0.4551 0.7537 -vn -0.5767 -0.1242 -0.8074 -vn -0.5686 -0.0871 -0.8180 -vn -0.4489 0.1331 0.8836 +vn -0.5784 0.7172 -0.3886 +vn -0.5147 0.8479 -0.1271 +vn -0.5846 0.6955 -0.4177 +vn -0.3608 -0.9232 0.1322 +vn -0.4265 -0.7984 0.4251 +vn -0.3551 -0.9290 0.1042 +vn -0.6107 0.3862 -0.6912 +vn -0.6133 0.4076 -0.6765 +vn -0.4330 -0.7770 0.4570 +vn -0.4732 -0.4444 0.7607 vn -0.5767 0.1242 -0.8074 vn -0.5686 0.0871 -0.8180 +vn -0.4489 -0.1331 0.8836 +vn -0.4742 -0.4551 0.7537 +vn -0.5147 -0.8479 0.1271 +vn -0.5072 -0.8566 0.0950 +vn -0.5784 -0.7172 0.3886 +vn -0.5846 -0.6955 0.4177 +vn -0.3608 0.9232 -0.1322 +vn -0.4265 0.7984 -0.4251 +vn -0.3550 0.9290 -0.1042 +vn -0.6107 -0.3862 0.6912 +vn -0.6133 -0.4076 0.6765 +vn -0.4330 0.7770 -0.4570 +vn -0.4732 0.4443 -0.7607 vn -0.5767 -0.1242 0.8074 vn -0.5686 -0.0871 0.8180 -vn -0.4732 0.4444 -0.7607 -vn -0.4742 0.4551 -0.7537 -vn -0.5847 -0.6955 0.4177 -vn -0.6108 -0.3862 0.6912 vn -0.4489 0.1331 -0.8836 -vn -0.3550 -0.9290 0.1043 -vn -0.3608 -0.9232 0.1322 -vn -0.5072 0.8566 -0.0950 +vn -0.4742 0.4551 -0.7536 +vn -0.5767 0.1242 0.8074 +vn -0.5686 0.0871 0.8180 +vn -0.5767 -0.1242 -0.8074 +vn -0.5686 -0.0871 -0.8180 +vn -0.4732 0.4443 0.7607 +vn -0.4742 0.4551 0.7536 +vn -0.6107 -0.3862 -0.6912 +vn -0.5846 -0.6955 -0.4177 +vn -0.4489 0.1331 0.8836 vn -0.4446 0.1047 0.8896 -vn -0.4489 -0.1331 0.8836 -vn -0.4265 -0.7984 0.4251 -vn -0.4330 -0.7770 0.4570 -vn -0.5147 0.8479 -0.1271 -vn -0.5785 0.7172 -0.3885 -vn -0.3550 0.9290 -0.1043 -vn -0.4732 -0.4444 0.7607 -vn -0.4742 -0.4551 0.7537 -vn -0.5847 0.6955 -0.4177 -vn -0.6108 0.3862 -0.6912 -vn -0.4446 -0.1047 -0.8896 -vn -0.3550 -0.9290 -0.1043 -vn -0.6133 0.4076 0.6765 -vn -0.3550 0.9290 0.1043 vn -0.6133 -0.4076 -0.6765 -vn -0.6133 -0.4076 0.6765 +vn -0.3551 -0.9290 -0.1042 +vn -0.3608 -0.9232 -0.1322 +vn -0.5072 0.8566 0.0950 +vn -0.5072 0.8566 -0.0950 +vn -0.4489 -0.1331 -0.8836 vn -0.4446 0.1047 -0.8896 +vn -0.4265 -0.7984 -0.4251 +vn -0.4330 -0.7770 -0.4570 +vn -0.5784 0.7172 0.3886 +vn -0.5147 0.8479 0.1271 +vn -0.3550 0.9290 0.1042 +vn -0.4732 -0.4444 -0.7607 +vn -0.4742 -0.4551 -0.7537 +vn -0.6107 0.3862 0.6912 +vn -0.5846 0.6955 0.4177 vn -0.4446 -0.1047 0.8896 -vn -0.6133 0.4076 -0.6765 +vn -0.4446 -0.1047 -0.8896 +vn -0.6133 0.4076 0.6765 +vn 0.0000 -1.0000 -0.0000 +vn 0.0000 0.1349 0.9909 +vn 0.0000 0.5038 0.8638 +vn 0.0000 0.8638 0.5038 +vn -0.0000 0.9909 0.1349 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -0.0000 -1.0000 +vn 0.5147 -0.8479 -0.1271 +vn 0.5784 -0.7172 -0.3886 +vn 0.5072 -0.8566 -0.0950 +vn 0.4265 0.7984 0.4251 +vn 0.3608 0.9232 0.1322 +vn 0.4330 0.7770 0.4570 +vn 0.5784 0.7172 -0.3886 +vn 0.5147 0.8479 -0.1271 +vn 0.5072 0.8566 -0.0950 +vn 0.3608 -0.9232 0.1322 +vn 0.4265 -0.7984 0.4251 +vn 0.4330 -0.7770 0.4570 +vn 0.6107 0.3862 -0.6912 +vn 0.5846 0.6955 -0.4177 +vn 0.4732 -0.4444 0.7607 +vn 0.4742 -0.4551 0.7537 +vn 0.5767 0.1242 -0.8074 +vn 0.5686 0.0871 -0.8180 +vn 0.4489 -0.1331 0.8836 +vn 0.5147 -0.8479 0.1271 +vn 0.5072 -0.8566 0.0950 +vn 0.5784 -0.7172 0.3886 +vn 0.3608 0.9232 -0.1322 +vn 0.4265 0.7984 -0.4251 +vn 0.4330 0.7770 -0.4570 +vn 0.6107 -0.3862 0.6912 +vn 0.5846 -0.6955 0.4177 +vn 0.4732 0.4443 -0.7607 +vn 0.4742 0.4551 -0.7536 +vn 0.5767 -0.1242 0.8074 +vn 0.5686 -0.0871 0.8180 +vn 0.4489 0.1331 -0.8836 +vn 0.5767 0.1242 0.8074 +vn 0.5686 0.0871 0.8180 +vn 0.5767 -0.1242 -0.8074 +vn 0.5686 -0.0871 -0.8180 +vn 0.4732 0.4443 0.7607 +vn 0.4742 0.4551 0.7536 +vn 0.5846 -0.6955 -0.4177 +vn 0.6107 -0.3862 -0.6912 +vn 0.4489 0.1331 0.8836 +vn 0.3551 -0.9290 -0.1042 +vn 0.3608 -0.9232 -0.1322 +vn 0.5072 0.8566 0.0950 +vn 0.4446 0.1047 -0.8896 +vn 0.4489 -0.1331 -0.8836 +vn 0.4265 -0.7984 -0.4251 +vn 0.4330 -0.7770 -0.4570 +vn 0.5147 0.8479 0.1271 +vn 0.5784 0.7172 0.3886 +vn 0.3550 0.9290 0.1042 +vn 0.4732 -0.4444 -0.7607 +vn 0.4742 -0.4551 -0.7537 +vn 0.5846 0.6955 0.4177 +vn 0.6107 0.3862 0.6912 +vn 0.4446 -0.1047 0.8896 +vn 0.3551 -0.9290 0.1042 +vn 0.6133 0.4076 -0.6765 +vn 0.3550 0.9290 -0.1042 +vn 0.6133 -0.4076 0.6765 +vn 0.6133 -0.4076 -0.6765 +vn 0.4446 0.1047 0.8896 +vn 0.4446 -0.1047 -0.8896 +vn 0.6133 0.4076 0.6765 +usemtl Default_OBJ s 1 -f 10/1/1 24/2/2 17/3/2 -f 67/4/3 1/5/3 65/6/3 -f 6/7/4 36/8/5 9/9/5 -f 10/1/1 34/10/6 33/11/1 -f 11/12/7 36/13/5 35/14/7 -f 12/15/6 35/14/7 34/10/6 -f 7/16/8 32/17/9 31/18/8 -f 8/19/10 31/18/8 30/20/10 -f 15/21/11 28/22/12 27/23/11 -f 16/24/13 27/23/11 26/25/13 -f 14/26/14 26/25/13 25/27/14 -f 19/28/15 24/2/2 23/29/15 -f 20/30/16 23/29/15 22/31/16 -f 13/32/12 21/33/17 28/34/12 -f 14/26/14 32/17/9 5/35/9 -f 6/36/4 30/20/10 29/37/4 -f 21/38/18 47/39/18 28/40/18 -f 31/41/18 38/42/18 43/43/18 -f 26/44/18 46/45/18 48/46/18 -f 22/47/18 52/48/18 21/49/18 -f 34/50/18 42/51/18 33/52/18 -f 27/53/18 47/54/18 46/45/18 -f 23/55/18 51/56/18 22/47/18 -f 34/50/18 39/57/18 41/58/18 -f 18/59/17 22/31/16 21/60/17 -f 37/61/19 209/62/19 213/63/19 -f 42/64/20 203/65/21 204/66/20 -f 39/67/22 214/68/23 202/69/22 -f 25/70/18 38/42/18 32/71/18 -f 26/44/18 37/72/18 25/70/18 -f 31/41/18 44/73/18 30/74/18 -f 33/52/18 50/75/18 24/76/18 -f 35/77/18 40/78/18 39/57/18 -f 23/55/18 50/75/18 49/79/18 -f 29/80/18 40/81/18 36/82/18 -f 30/74/18 45/83/18 29/84/18 -f 1/5/3 67/4/3 68/85/3 -f 68/85/3 66/86/3 1/5/3 -f 66/86/3 2/87/3 1/5/3 -f 19/88/24 81/89/25 17/90/26 -f 65/91/27 98/92/28 67/93/29 -f 16/94/30 80/95/31 79/96/32 -f 62/97/33 95/98/34 96/99/35 -f 15/100/36 79/96/32 78/101/37 -f 64/102/38 94/103/39 95/98/34 -f 15/100/36 77/104/40 13/105/41 -f 61/106/42 94/103/39 63/107/43 -f 17/90/26 76/108/44 10/109/45 -f 12/110/46 76/108/44 75/111/47 -f 58/112/48 91/113/49 92/114/50 -f 11/115/51 75/111/47 74/116/52 -f 60/117/53 90/118/54 91/113/49 -f 11/115/51 73/119/55 9/120/56 -f 57/121/57 90/118/54 59/122/58 -f 9/123/56 72/124/59 6/125/60 -f 61/126/3 63/127/3 2/87/3 -f 64/128/3 2/87/3 63/127/3 -f 62/129/3 2/87/3 64/128/3 -f 62/129/3 3/130/3 2/87/3 -f 53/131/3 55/132/3 3/130/3 -f 56/133/3 3/130/3 55/132/3 -f 54/134/3 3/130/3 56/133/3 -f 54/134/3 4/135/3 3/130/3 -f 57/136/3 59/137/3 4/135/3 -f 60/138/3 4/135/3 59/137/3 -f 58/139/3 4/135/3 60/138/3 -f 58/139/3 1/5/3 4/135/3 -f 96/99/3 79/96/3 80/95/3 -f 96/99/3 69/140/3 85/141/3 -f 85/141/3 70/142/3 86/143/3 -f 87/144/3 70/142/3 71/145/3 -f 88/146/3 71/145/3 72/147/3 -f 88/148/3 73/149/3 89/150/3 -f 89/151/3 74/116/3 90/118/3 -f 90/118/3 75/111/3 91/113/3 -f 92/114/3 75/111/3 76/108/3 -f 92/114/3 81/89/3 97/152/3 -f 97/152/3 82/153/3 98/92/3 -f 99/154/3 82/153/3 83/155/3 -f 100/156/3 83/155/3 84/157/3 -f 100/158/3 77/159/3 93/160/3 -f 93/161/3 78/101/3 94/103/3 -f 94/103/3 79/96/3 95/98/3 -f 13/162/41 84/163/61 18/164/62 -f 67/93/29 99/154/63 68/165/64 -f 20/166/65 82/153/66 19/88/24 -f 66/167/67 99/154/63 100/156/68 -f 20/166/65 84/157/61 83/155/69 -f 62/97/33 85/141/70 53/168/71 -f 5/169/72 80/95/31 14/170/73 -f 54/171/74 89/150/75 57/172/57 -f 53/168/71 86/143/76 55/173/77 -f 7/174/78 69/140/79 5/169/72 -f 58/112/48 97/152/80 65/91/27 -f 55/173/77 87/144/81 56/175/82 -f 8/176/83 70/142/84 7/174/78 -f 66/177/67 93/160/85 61/178/42 -f 54/179/74 87/144/81 88/146/86 -f 8/176/83 72/147/59 71/145/87 -f 49/180/88 216/181/88 210/182/88 -f 51/183/88 210/182/88 211/184/88 -f 46/185/19 215/186/19 208/187/19 -f 48/188/19 208/187/19 209/62/19 -f 45/189/89 206/190/90 207/191/89 -f 44/192/90 205/193/91 206/190/90 -f 41/194/21 202/69/22 203/65/21 -f 43/195/91 201/196/92 205/193/91 -f 102/197/88 3/198/88 103/199/88 -f 101/200/93 2/201/93 102/202/93 -f 52/203/88 211/184/88 212/204/88 -f 212/205/94 47/206/94 52/207/94 -f 207/191/89 40/208/23 45/189/89 -f 204/66/20 50/209/88 42/64/20 -f 213/63/19 38/210/92 37/61/19 -f 101/211/19 4/212/19 1/213/19 -f 124/214/2 110/215/1 117/216/2 -f 167/217/18 165/218/18 101/219/18 -f 136/220/5 106/221/4 109/222/5 -f 134/223/6 110/215/1 133/224/1 -f 136/225/5 111/226/7 135/227/7 -f 135/227/7 112/228/6 134/223/6 -f 132/229/9 107/230/8 131/231/8 -f 131/231/8 108/232/10 130/233/10 -f 128/234/12 115/235/11 127/236/11 -f 127/236/11 116/237/13 126/238/13 -f 126/238/13 114/239/14 125/240/14 -f 124/214/2 119/241/15 123/242/15 -f 123/242/15 120/243/16 122/244/16 -f 121/245/17 113/246/12 128/247/12 -f 132/229/9 114/239/14 105/248/9 -f 130/233/10 106/249/4 129/250/4 -f 147/251/3 121/252/3 128/253/3 -f 131/254/3 138/255/3 132/256/3 -f 126/257/3 146/258/3 127/259/3 -f 152/260/3 122/261/3 121/262/3 -f 142/263/3 134/264/3 133/265/3 -f 127/259/3 147/266/3 128/267/3 -f 151/268/3 123/269/3 122/261/3 -f 134/264/3 139/270/3 135/271/3 -f 122/244/16 118/272/17 121/273/17 -f 209/62/19 137/274/19 213/63/19 -f 203/65/21 142/275/20 204/66/20 -f 214/68/23 139/276/22 202/69/22 -f 138/255/3 125/277/3 132/256/3 -f 137/278/3 126/257/3 125/277/3 -f 144/279/3 131/254/3 130/280/3 -f 150/281/3 133/265/3 124/282/3 -f 135/271/3 140/283/3 136/284/3 -f 123/269/3 150/281/3 124/282/3 -f 140/285/3 129/286/3 136/287/3 -f 145/288/3 130/280/3 129/289/3 -f 101/219/18 168/290/18 167/217/18 -f 168/290/18 101/219/18 166/291/18 -f 102/292/18 166/291/18 101/219/18 -f 181/293/95 119/294/96 117/295/97 -f 198/296/98 165/297/99 167/298/100 -f 116/299/101 180/300/102 114/301/103 -f 162/302/104 195/303/105 164/304/106 -f 115/305/107 179/306/108 116/299/101 -f 164/304/106 194/307/109 163/308/110 -f 177/309/111 115/305/107 113/310/112 -f 194/307/109 161/311/113 163/308/110 -f 176/312/114 117/295/97 110/313/115 -f 112/314/116 176/312/114 110/313/115 -f 158/315/117 191/316/118 160/317/119 -f 111/318/120 175/319/121 112/314/116 -f 160/317/119 190/320/122 159/321/123 -f 173/322/124 111/318/120 109/323/125 -f 190/320/122 157/324/126 159/321/123 -f 172/325/127 109/326/125 106/327/128 -f 161/328/18 102/292/18 163/329/18 -f 164/330/18 163/329/18 102/292/18 -f 162/331/18 164/330/18 102/292/18 -f 103/332/18 162/331/18 102/292/18 -f 153/333/18 103/332/18 155/334/18 -f 156/335/18 155/334/18 103/332/18 -f 154/336/18 156/335/18 103/332/18 -f 104/337/18 154/336/18 103/332/18 -f 157/338/18 104/337/18 159/339/18 -f 160/340/18 159/339/18 104/337/18 -f 158/341/18 160/340/18 104/337/18 -f 101/219/18 158/341/18 104/337/18 -f 179/306/18 196/342/18 180/300/18 -f 169/343/18 196/342/18 185/344/18 -f 170/345/18 185/344/18 186/346/18 -f 187/347/18 170/345/18 186/346/18 -f 188/348/18 171/349/18 187/347/18 -f 173/350/18 188/351/18 189/352/18 -f 174/353/18 189/354/18 190/320/18 -f 175/319/18 190/320/18 191/316/18 -f 192/355/18 175/319/18 191/316/18 -f 181/293/18 192/355/18 197/356/18 -f 182/357/18 197/356/18 198/296/18 -f 199/358/18 182/357/18 198/296/18 -f 200/359/18 183/360/18 199/358/18 -f 177/361/18 200/362/18 193/363/18 -f 178/364/18 193/365/18 194/307/18 -f 179/306/18 194/307/18 195/303/18 -f 184/366/129 113/367/112 118/368/130 -f 199/358/131 167/298/100 168/369/132 -f 182/357/133 120/370/134 119/294/96 -f 166/371/135 199/358/131 168/369/132 -f 120/370/134 184/372/129 118/373/130 -f 185/344/136 162/302/104 153/374/137 -f 180/300/102 105/375/138 114/301/103 -f 189/352/139 154/376/140 157/377/126 -f 186/346/141 153/374/137 155/378/142 -f 169/343/143 107/379/144 105/375/138 -f 197/356/145 158/315/117 165/297/99 -f 187/347/146 155/378/142 156/380/147 -f 170/345/148 108/381/149 107/379/144 -f 193/363/150 166/382/135 161/383/113 -f 154/384/140 187/347/146 156/380/147 -f 108/381/149 172/385/127 106/386/128 -f 216/181/88 149/387/88 210/182/88 -f 210/182/88 151/388/88 211/184/88 -f 215/186/19 146/389/19 208/187/19 -f 208/187/19 148/390/19 209/62/19 -f 206/190/90 145/391/89 207/191/89 -f 205/193/91 144/392/90 206/190/90 -f 202/69/22 141/393/21 203/65/21 -f 201/196/92 143/394/91 205/193/91 -f 211/184/88 152/395/88 212/204/88 -f 147/396/94 212/205/94 152/397/94 -f 140/398/23 207/191/89 145/391/89 -f 150/399/88 204/66/20 142/275/20 -f 138/400/92 213/63/19 137/274/19 -f 104/401/94 3/402/94 4/403/94 -f 10/1/1 33/11/1 24/2/2 -f 6/7/4 29/404/4 36/8/5 -f 10/1/1 12/15/6 34/10/6 -f 11/12/7 9/405/5 36/13/5 -f 12/15/6 11/12/7 35/14/7 -f 7/16/8 5/35/9 32/17/9 -f 8/19/10 7/16/8 31/18/8 -f 15/21/11 13/406/12 28/22/12 -f 16/24/13 15/21/11 27/23/11 -f 14/26/14 16/24/13 26/25/13 -f 19/28/15 17/3/2 24/2/2 -f 20/30/16 19/28/15 23/29/15 -f 13/32/12 18/407/17 21/33/17 -f 14/26/14 25/27/14 32/17/9 -f 6/36/4 8/19/10 30/20/10 -f 21/38/18 52/408/18 47/39/18 -f 31/41/18 32/71/18 38/42/18 -f 26/44/18 27/53/18 46/45/18 -f 22/47/18 51/56/18 52/48/18 -f 34/50/18 41/58/18 42/51/18 -f 27/53/18 28/409/18 47/54/18 -f 23/55/18 49/79/18 51/56/18 -f 34/50/18 35/77/18 39/57/18 -f 18/59/17 20/30/16 22/31/16 -f 37/61/19 48/188/19 209/62/19 -f 42/64/20 41/194/21 203/65/21 -f 39/67/22 40/208/23 214/68/23 -f 25/70/18 37/72/18 38/42/18 -f 26/44/18 48/46/18 37/72/18 -f 31/41/18 43/43/18 44/73/18 -f 33/52/18 42/51/18 50/75/18 -f 35/77/18 36/410/18 40/78/18 -f 23/55/18 24/76/18 50/75/18 -f 29/80/18 45/411/18 40/81/18 -f 30/74/18 44/73/18 45/83/18 -f 66/86/3 61/126/3 2/87/3 -f 19/88/24 82/153/66 81/89/25 -f 65/91/27 97/152/80 98/92/28 -f 16/94/30 14/170/73 80/95/31 -f 62/97/33 64/102/38 95/98/34 -f 15/100/36 16/94/30 79/96/32 -f 64/102/38 63/107/43 94/103/39 -f 15/100/36 78/101/37 77/104/40 -f 61/106/42 93/161/85 94/103/39 -f 17/90/26 81/89/25 76/108/44 -f 12/110/46 10/109/45 76/108/44 -f 58/112/48 60/117/53 91/113/49 -f 11/115/51 12/110/46 75/111/47 -f 60/117/53 59/122/58 90/118/54 -f 11/115/51 74/116/52 73/119/55 -f 57/121/57 89/151/75 90/118/54 -f 9/123/56 73/149/55 72/124/59 -f 62/129/3 53/131/3 3/130/3 -f 54/134/3 57/136/3 4/135/3 -f 58/139/3 65/6/3 1/5/3 -f 96/99/3 95/98/3 79/96/3 -f 96/99/3 80/95/3 69/140/3 -f 85/141/3 69/140/3 70/142/3 -f 87/144/3 86/143/3 70/142/3 -f 88/146/3 87/144/3 71/145/3 -f 88/148/3 72/124/3 73/149/3 -f 89/151/3 73/119/3 74/116/3 -f 90/118/3 74/116/3 75/111/3 -f 92/114/3 91/113/3 75/111/3 -f 92/114/3 76/108/3 81/89/3 -f 97/152/3 81/89/3 82/153/3 -f 99/154/3 98/92/3 82/153/3 -f 100/156/3 99/154/3 83/155/3 -f 100/158/3 84/163/3 77/159/3 -f 93/161/3 77/104/3 78/101/3 -f 94/103/3 78/101/3 79/96/3 -f 13/162/41 77/159/40 84/163/61 -f 67/93/29 98/92/28 99/154/63 -f 20/166/65 83/155/69 82/153/66 -f 66/167/67 68/165/64 99/154/63 -f 20/166/65 18/412/62 84/157/61 -f 62/97/33 96/99/35 85/141/70 -f 5/169/72 69/140/79 80/95/31 -f 54/171/74 88/148/86 89/150/75 -f 53/168/71 85/141/70 86/143/76 -f 7/174/78 70/142/84 69/140/79 -f 58/112/48 92/114/50 97/152/80 -f 55/173/77 86/143/76 87/144/81 -f 8/176/83 71/145/87 70/142/84 -f 66/177/67 100/158/68 93/160/85 -f 54/179/74 56/175/82 87/144/81 -f 8/176/83 6/413/60 72/147/59 -f 49/180/88 50/209/88 216/181/88 -f 51/183/88 49/180/88 210/182/88 -f 46/185/19 47/414/19 215/186/19 -f 48/188/19 46/185/19 208/187/19 -f 45/189/89 44/192/90 206/190/90 -f 44/192/90 43/195/91 205/193/91 -f 41/194/21 39/67/22 202/69/22 -f 43/195/91 38/210/92 201/196/92 -f 102/197/88 2/415/88 3/198/88 -f 101/200/93 1/416/93 2/201/93 -f 52/203/88 51/183/88 211/184/88 -f 212/205/94 215/417/94 47/206/94 -f 207/191/89 214/68/23 40/208/23 -f 204/66/20 216/181/88 50/209/88 -f 213/63/19 201/196/92 38/210/92 -f 101/211/19 104/418/19 4/212/19 -f 124/214/2 133/224/1 110/215/1 -f 136/220/5 129/419/4 106/221/4 -f 134/223/6 112/228/6 110/215/1 -f 136/225/5 109/420/5 111/226/7 -f 135/227/7 111/226/7 112/228/6 -f 132/229/9 105/248/9 107/230/8 -f 131/231/8 107/230/8 108/232/10 -f 128/234/12 113/421/12 115/235/11 -f 127/236/11 115/235/11 116/237/13 -f 126/238/13 116/237/13 114/239/14 -f 124/214/2 117/216/2 119/241/15 -f 123/242/15 119/241/15 120/243/16 -f 121/245/17 118/422/17 113/246/12 -f 132/229/9 125/240/14 114/239/14 -f 130/233/10 108/232/10 106/249/4 -f 147/251/3 152/423/3 121/252/3 -f 131/254/3 143/424/3 138/255/3 -f 126/257/3 148/425/3 146/258/3 -f 152/260/3 151/268/3 122/261/3 -f 142/263/3 141/426/3 134/264/3 -f 127/259/3 146/258/3 147/266/3 -f 151/268/3 149/427/3 123/269/3 -f 134/264/3 141/426/3 139/270/3 -f 122/244/16 120/243/16 118/272/17 -f 209/62/19 148/390/19 137/274/19 -f 203/65/21 141/393/21 142/275/20 -f 214/68/23 140/398/23 139/276/22 -f 138/255/3 137/278/3 125/277/3 -f 137/278/3 148/425/3 126/257/3 -f 144/279/3 143/424/3 131/254/3 -f 150/281/3 142/263/3 133/265/3 -f 135/271/3 139/270/3 140/283/3 -f 123/269/3 149/427/3 150/281/3 -f 140/285/3 145/428/3 129/286/3 -f 145/288/3 144/279/3 130/280/3 -f 102/292/18 161/328/18 166/291/18 -f 181/293/95 182/357/133 119/294/96 -f 198/296/98 197/356/145 165/297/99 -f 116/299/101 179/306/108 180/300/102 -f 162/302/104 196/342/151 195/303/105 -f 115/305/107 178/364/152 179/306/108 -f 164/304/106 195/303/105 194/307/109 -f 177/309/111 178/364/152 115/305/107 -f 194/307/109 193/365/150 161/311/113 -f 176/312/114 181/293/95 117/295/97 -f 112/314/116 175/319/121 176/312/114 -f 158/315/117 192/355/153 191/316/118 -f 111/318/120 174/353/154 175/319/121 -f 160/317/119 191/316/118 190/320/122 -f 173/322/124 174/353/154 111/318/120 -f 190/320/122 189/354/139 157/324/126 -f 172/325/127 173/350/124 109/326/125 -f 103/332/18 153/333/18 162/331/18 -f 104/337/18 157/338/18 154/336/18 -f 101/219/18 165/218/18 158/341/18 -f 179/306/18 195/303/18 196/342/18 -f 169/343/18 180/300/18 196/342/18 -f 170/345/18 169/343/18 185/344/18 -f 187/347/18 171/349/18 170/345/18 -f 188/348/18 172/385/18 171/349/18 -f 173/350/18 172/325/18 188/351/18 -f 174/353/18 173/322/18 189/354/18 -f 175/319/18 174/353/18 190/320/18 -f 192/355/18 176/312/18 175/319/18 -f 181/293/18 176/312/18 192/355/18 -f 182/357/18 181/293/18 197/356/18 -f 199/358/18 183/360/18 182/357/18 -f 200/359/18 184/372/18 183/360/18 -f 177/361/18 184/366/18 200/362/18 -f 178/364/18 177/309/18 193/365/18 -f 179/306/18 178/364/18 194/307/18 -f 184/366/129 177/361/111 113/367/112 -f 199/358/131 198/296/98 167/298/100 -f 182/357/133 183/360/155 120/370/134 -f 166/371/135 200/359/156 199/358/131 -f 120/370/134 183/360/155 184/372/129 -f 185/344/136 196/342/151 162/302/104 -f 180/300/102 169/343/143 105/375/138 -f 189/352/139 188/351/157 154/376/140 -f 186/346/141 185/344/136 153/374/137 -f 169/343/143 170/345/148 107/379/144 -f 197/356/145 192/355/153 158/315/117 -f 187/347/146 186/346/141 155/378/142 -f 170/345/148 171/349/158 108/381/149 -f 193/363/150 200/362/156 166/382/135 -f 154/384/140 188/348/157 187/347/146 -f 108/381/149 171/349/158 172/385/127 -f 216/181/88 150/399/88 149/387/88 -f 210/182/88 149/387/88 151/388/88 -f 215/186/19 147/429/19 146/389/19 -f 208/187/19 146/389/19 148/390/19 -f 206/190/90 144/392/90 145/391/89 -f 205/193/91 143/394/91 144/392/90 -f 202/69/22 139/276/22 141/393/21 -f 201/196/92 138/400/92 143/394/91 -f 211/184/88 151/388/88 152/395/88 -f 147/396/94 215/417/94 212/205/94 -f 140/398/23 214/68/23 207/191/89 -f 150/399/88 216/181/88 204/66/20 -f 138/400/92 201/196/92 213/63/19 -f 104/401/94 103/430/94 3/402/94 +f 1/1/1 2/2/2 3/3/2 +f 4/4/3 5/5/3 6/6/3 +f 7/7/4 8/8/5 9/9/5 +f 1/1/1 10/10/6 11/11/1 +f 12/12/7 8/13/5 13/14/7 +f 14/15/6 13/14/7 10/10/6 +f 15/16/8 16/17/9 17/18/8 +f 18/19/10 17/18/8 19/20/10 +f 20/21/11 21/22/12 22/23/11 +f 23/24/13 22/23/11 24/25/13 +f 25/26/14 24/25/13 26/27/14 +f 27/28/15 2/2/2 28/29/15 +f 29/30/16 28/29/15 30/31/16 +f 31/32/12 32/33/17 21/34/12 +f 25/26/14 16/17/9 33/35/9 +f 7/36/4 19/20/10 34/37/4 +f 32/38/18 35/39/18 21/40/18 +f 17/41/18 36/42/18 37/43/18 +f 24/44/18 38/45/18 39/46/18 +f 30/47/18 40/48/18 32/49/18 +f 10/50/18 41/51/18 11/52/18 +f 22/53/18 35/54/18 38/45/18 +f 28/55/18 42/56/18 30/47/18 +f 10/50/18 43/57/18 44/58/18 +f 45/59/17 30/31/16 32/60/17 +f 46/61/19 47/62/19 48/63/19 +f 41/64/20 49/65/21 50/66/20 +f 43/67/22 51/68/23 52/69/22 +f 26/70/18 36/42/18 16/71/18 +f 24/44/18 46/72/18 26/70/18 +f 17/41/18 53/73/18 19/74/18 +f 11/52/18 54/75/18 2/76/18 +f 13/77/18 55/78/18 43/57/18 +f 28/55/18 54/75/18 56/79/18 +f 34/80/18 55/81/18 8/82/18 +f 19/74/18 57/83/18 34/84/18 +f 5/5/3 4/4/3 58/85/3 +f 58/85/3 59/86/3 5/5/3 +f 59/86/3 60/87/3 5/5/3 +f 27/88/24 61/89/25 3/90/26 +f 6/91/27 62/92/28 4/93/29 +f 23/94/30 63/95/31 64/96/32 +f 65/97/33 66/98/34 67/99/35 +f 20/100/36 64/96/32 68/101/37 +f 69/102/38 70/103/39 66/98/34 +f 20/100/36 71/104/40 31/105/41 +f 72/106/42 70/103/39 73/107/43 +f 3/90/26 74/108/44 1/109/45 +f 14/110/46 74/108/44 75/111/47 +f 76/112/48 77/113/49 78/114/50 +f 12/115/51 75/111/47 79/116/52 +f 80/117/53 81/118/54 77/113/49 +f 12/115/51 82/119/55 9/120/56 +f 83/121/57 81/118/54 84/122/58 +f 9/123/56 85/124/59 7/125/60 +f 72/126/3 73/127/3 60/87/3 +f 69/128/3 60/87/3 73/127/3 +f 65/129/3 60/87/3 69/128/3 +f 65/129/3 86/130/3 60/87/3 +f 87/131/3 88/132/3 86/130/3 +f 89/133/3 86/130/3 88/132/3 +f 90/134/3 86/130/3 89/133/3 +f 90/134/3 91/135/3 86/130/3 +f 83/136/3 84/137/3 91/135/3 +f 80/138/3 91/135/3 84/137/3 +f 76/139/3 91/135/3 80/138/3 +f 76/139/3 5/5/3 91/135/3 +f 67/99/3 64/96/3 63/95/3 +f 67/99/3 92/140/3 93/141/3 +f 93/141/3 94/142/3 95/143/3 +f 96/144/3 94/142/3 97/145/3 +f 98/146/3 97/145/3 85/147/3 +f 98/148/3 82/149/3 99/150/3 +f 99/151/3 79/116/3 81/118/3 +f 81/118/3 75/111/3 77/113/3 +f 78/114/3 75/111/3 74/108/3 +f 78/114/3 61/89/3 100/152/3 +f 100/152/3 101/153/3 62/92/3 +f 102/154/3 101/153/3 103/155/3 +f 104/156/3 103/155/3 105/157/3 +f 104/158/3 71/159/3 106/160/3 +f 106/161/3 68/101/3 70/103/3 +f 70/103/3 64/96/3 66/98/3 +f 31/162/41 105/163/61 45/164/62 +f 4/93/29 102/154/63 58/165/64 +f 29/166/65 101/153/66 27/88/24 +f 59/167/67 102/154/63 104/156/68 +f 29/166/65 105/157/61 103/155/69 +f 65/97/33 93/141/70 87/168/71 +f 33/169/72 63/95/31 25/170/73 +f 90/171/74 99/150/75 83/172/57 +f 87/168/71 95/143/76 88/173/77 +f 15/174/78 92/140/79 33/169/72 +f 76/112/48 100/152/80 6/91/27 +f 88/173/77 96/144/81 89/175/82 +f 18/176/83 94/142/84 15/174/78 +f 59/177/67 106/160/85 72/178/42 +f 90/179/74 96/144/81 98/146/86 +f 18/176/83 85/147/59 97/145/87 +f 56/180/88 107/181/88 108/182/88 +f 42/183/88 108/182/88 109/184/88 +f 38/185/19 110/186/19 111/187/19 +f 39/188/19 111/187/19 47/62/19 +f 57/189/89 112/190/90 113/191/89 +f 53/192/90 114/193/91 112/190/90 +f 44/194/21 52/69/22 49/65/21 +f 37/195/91 115/196/92 114/193/91 +f 116/197/88 86/198/88 117/199/88 +f 118/200/93 60/201/93 116/202/93 +f 40/203/88 109/184/88 119/204/88 +f 119/205/94 35/206/94 40/207/94 +f 113/191/89 55/208/23 57/189/89 +f 50/66/20 54/209/88 41/64/20 +f 48/63/19 36/210/92 46/61/19 +f 118/211/19 91/212/19 5/213/19 +f 120/214/2 121/215/1 122/216/2 +f 123/217/18 124/218/18 118/219/18 +f 125/220/5 126/221/4 127/222/5 +f 128/223/6 121/215/1 129/224/1 +f 125/225/5 130/226/7 131/227/7 +f 131/227/7 132/228/6 128/223/6 +f 133/229/9 134/230/8 135/231/8 +f 135/231/8 136/232/10 137/233/10 +f 138/234/12 139/235/11 140/236/11 +f 140/236/11 141/237/13 142/238/13 +f 142/238/13 143/239/14 144/240/14 +f 120/214/2 145/241/15 146/242/15 +f 146/242/15 147/243/16 148/244/16 +f 149/245/17 150/246/12 138/247/12 +f 133/229/9 143/239/14 151/248/9 +f 137/233/10 126/249/4 152/250/4 +f 153/251/3 149/252/3 138/253/3 +f 135/254/3 154/255/3 133/256/3 +f 142/257/3 155/258/3 140/259/3 +f 156/260/3 148/261/3 149/262/3 +f 157/263/3 128/264/3 129/265/3 +f 140/259/3 153/266/3 138/267/3 +f 158/268/3 146/269/3 148/261/3 +f 128/264/3 159/270/3 131/271/3 +f 148/244/16 160/272/17 149/273/17 +f 47/62/19 161/274/19 48/63/19 +f 49/65/21 157/275/20 50/66/20 +f 51/68/23 159/276/22 52/69/22 +f 154/255/3 144/277/3 133/256/3 +f 161/278/3 142/257/3 144/277/3 +f 162/279/3 135/254/3 137/280/3 +f 163/281/3 129/265/3 120/282/3 +f 131/271/3 164/283/3 125/284/3 +f 146/269/3 163/281/3 120/282/3 +f 164/285/3 152/286/3 125/287/3 +f 165/288/3 137/280/3 152/289/3 +f 118/219/18 166/290/18 123/217/18 +f 166/290/18 118/219/18 167/291/18 +f 116/292/18 167/291/18 118/219/18 +f 168/293/95 145/294/96 122/295/97 +f 169/296/98 124/297/99 123/298/100 +f 141/299/101 170/300/102 143/301/103 +f 171/302/104 172/303/105 173/304/106 +f 139/305/107 174/306/108 141/299/101 +f 173/304/106 175/307/109 176/308/110 +f 177/309/111 139/305/107 150/310/112 +f 175/307/109 178/311/113 176/308/110 +f 179/312/114 122/295/97 121/313/115 +f 132/314/116 179/312/114 121/313/115 +f 180/315/117 181/316/118 182/317/119 +f 130/318/120 183/319/121 132/314/116 +f 182/317/119 184/320/122 185/321/123 +f 186/322/124 130/318/120 127/323/125 +f 184/320/122 187/324/126 185/321/123 +f 188/325/127 127/326/125 126/327/128 +f 178/328/18 116/292/18 176/329/18 +f 173/330/18 176/329/18 116/292/18 +f 171/331/18 173/330/18 116/292/18 +f 117/332/18 171/331/18 116/292/18 +f 189/333/18 117/332/18 190/334/18 +f 191/335/18 190/334/18 117/332/18 +f 192/336/18 191/335/18 117/332/18 +f 193/337/18 192/336/18 117/332/18 +f 187/338/18 193/337/18 185/339/18 +f 182/340/18 185/339/18 193/337/18 +f 180/341/18 182/340/18 193/337/18 +f 118/219/18 180/341/18 193/337/18 +f 174/306/18 194/342/18 170/300/18 +f 195/343/18 194/342/18 196/344/18 +f 197/345/18 196/344/18 198/346/18 +f 199/347/18 197/345/18 198/346/18 +f 200/348/18 201/349/18 199/347/18 +f 186/350/18 200/351/18 202/352/18 +f 203/353/18 202/354/18 184/320/18 +f 183/319/18 184/320/18 181/316/18 +f 204/355/18 183/319/18 181/316/18 +f 168/293/18 204/355/18 205/356/18 +f 206/357/18 205/356/18 169/296/18 +f 207/358/18 206/357/18 169/296/18 +f 208/359/18 209/360/18 207/358/18 +f 177/361/18 208/362/18 210/363/18 +f 211/364/18 210/365/18 175/307/18 +f 174/306/18 175/307/18 172/303/18 +f 212/366/129 150/367/112 160/368/130 +f 207/358/131 123/298/100 166/369/132 +f 206/357/133 147/370/134 145/294/96 +f 167/371/135 207/358/131 166/369/132 +f 147/370/134 212/372/129 160/373/130 +f 196/344/136 171/302/104 189/374/137 +f 170/300/102 151/375/138 143/301/103 +f 202/352/139 192/376/140 187/377/126 +f 198/346/141 189/374/137 190/378/142 +f 195/343/143 134/379/144 151/375/138 +f 205/356/145 180/315/117 124/297/99 +f 199/347/146 190/378/142 191/380/147 +f 197/345/148 136/381/149 134/379/144 +f 210/363/150 167/382/135 178/383/113 +f 192/384/140 199/347/146 191/380/147 +f 136/381/149 188/385/127 126/386/128 +f 107/181/88 213/387/88 108/182/88 +f 108/182/88 158/388/88 109/184/88 +f 110/186/19 155/389/19 111/187/19 +f 111/187/19 214/390/19 47/62/19 +f 112/190/90 165/391/89 113/191/89 +f 114/193/91 162/392/90 112/190/90 +f 52/69/22 215/393/21 49/65/21 +f 115/196/92 216/394/91 114/193/91 +f 109/184/88 156/395/88 119/204/88 +f 153/396/94 119/205/94 156/397/94 +f 164/398/23 113/191/89 165/391/89 +f 163/399/88 50/66/20 157/275/20 +f 154/400/92 48/63/19 161/274/19 +f 193/401/94 86/402/94 91/403/94 +f 1/1/1 11/11/1 2/2/2 +f 7/7/4 34/404/4 8/8/5 +f 1/1/1 14/15/6 10/10/6 +f 12/12/7 9/405/5 8/13/5 +f 14/15/6 12/12/7 13/14/7 +f 15/16/8 33/35/9 16/17/9 +f 18/19/10 15/16/8 17/18/8 +f 20/21/11 31/406/12 21/22/12 +f 23/24/13 20/21/11 22/23/11 +f 25/26/14 23/24/13 24/25/13 +f 27/28/15 3/3/2 2/2/2 +f 29/30/16 27/28/15 28/29/15 +f 31/32/12 45/407/17 32/33/17 +f 25/26/14 26/27/14 16/17/9 +f 7/36/4 18/19/10 19/20/10 +f 32/38/18 40/408/18 35/39/18 +f 17/41/18 16/71/18 36/42/18 +f 24/44/18 22/53/18 38/45/18 +f 30/47/18 42/56/18 40/48/18 +f 10/50/18 44/58/18 41/51/18 +f 22/53/18 21/409/18 35/54/18 +f 28/55/18 56/79/18 42/56/18 +f 10/50/18 13/77/18 43/57/18 +f 45/59/17 29/30/16 30/31/16 +f 46/61/19 39/188/19 47/62/19 +f 41/64/20 44/194/21 49/65/21 +f 43/67/22 55/208/23 51/68/23 +f 26/70/18 46/72/18 36/42/18 +f 24/44/18 39/46/18 46/72/18 +f 17/41/18 37/43/18 53/73/18 +f 11/52/18 41/51/18 54/75/18 +f 13/77/18 8/410/18 55/78/18 +f 28/55/18 2/76/18 54/75/18 +f 34/80/18 57/411/18 55/81/18 +f 19/74/18 53/73/18 57/83/18 +f 59/86/3 72/126/3 60/87/3 +f 27/88/24 101/153/66 61/89/25 +f 6/91/27 100/152/80 62/92/28 +f 23/94/30 25/170/73 63/95/31 +f 65/97/33 69/102/38 66/98/34 +f 20/100/36 23/94/30 64/96/32 +f 69/102/38 73/107/43 70/103/39 +f 20/100/36 68/101/37 71/104/40 +f 72/106/42 106/161/85 70/103/39 +f 3/90/26 61/89/25 74/108/44 +f 14/110/46 1/109/45 74/108/44 +f 76/112/48 80/117/53 77/113/49 +f 12/115/51 14/110/46 75/111/47 +f 80/117/53 84/122/58 81/118/54 +f 12/115/51 79/116/52 82/119/55 +f 83/121/57 99/151/75 81/118/54 +f 9/123/56 82/149/55 85/124/59 +f 65/129/3 87/131/3 86/130/3 +f 90/134/3 83/136/3 91/135/3 +f 76/139/3 6/6/3 5/5/3 +f 67/99/3 66/98/3 64/96/3 +f 67/99/3 63/95/3 92/140/3 +f 93/141/3 92/140/3 94/142/3 +f 96/144/3 95/143/3 94/142/3 +f 98/146/3 96/144/3 97/145/3 +f 98/148/3 85/124/3 82/149/3 +f 99/151/3 82/119/3 79/116/3 +f 81/118/3 79/116/3 75/111/3 +f 78/114/3 77/113/3 75/111/3 +f 78/114/3 74/108/3 61/89/3 +f 100/152/3 61/89/3 101/153/3 +f 102/154/3 62/92/3 101/153/3 +f 104/156/3 102/154/3 103/155/3 +f 104/158/3 105/163/3 71/159/3 +f 106/161/3 71/104/3 68/101/3 +f 70/103/3 68/101/3 64/96/3 +f 31/162/41 71/159/40 105/163/61 +f 4/93/29 62/92/28 102/154/63 +f 29/166/65 103/155/69 101/153/66 +f 59/167/67 58/165/64 102/154/63 +f 29/166/65 45/412/62 105/157/61 +f 65/97/33 67/99/35 93/141/70 +f 33/169/72 92/140/79 63/95/31 +f 90/171/74 98/148/86 99/150/75 +f 87/168/71 93/141/70 95/143/76 +f 15/174/78 94/142/84 92/140/79 +f 76/112/48 78/114/50 100/152/80 +f 88/173/77 95/143/76 96/144/81 +f 18/176/83 97/145/87 94/142/84 +f 59/177/67 104/158/68 106/160/85 +f 90/179/74 89/175/82 96/144/81 +f 18/176/83 7/413/60 85/147/59 +f 56/180/88 54/209/88 107/181/88 +f 42/183/88 56/180/88 108/182/88 +f 38/185/19 35/414/19 110/186/19 +f 39/188/19 38/185/19 111/187/19 +f 57/189/89 53/192/90 112/190/90 +f 53/192/90 37/195/91 114/193/91 +f 44/194/21 43/67/22 52/69/22 +f 37/195/91 36/210/92 115/196/92 +f 116/197/88 60/415/88 86/198/88 +f 118/200/93 5/416/93 60/201/93 +f 40/203/88 42/183/88 109/184/88 +f 119/205/94 110/417/94 35/206/94 +f 113/191/89 51/68/23 55/208/23 +f 50/66/20 107/181/88 54/209/88 +f 48/63/19 115/196/92 36/210/92 +f 118/211/19 193/418/19 91/212/19 +f 120/214/2 129/224/1 121/215/1 +f 125/220/5 152/419/4 126/221/4 +f 128/223/6 132/228/6 121/215/1 +f 125/225/5 127/420/5 130/226/7 +f 131/227/7 130/226/7 132/228/6 +f 133/229/9 151/248/9 134/230/8 +f 135/231/8 134/230/8 136/232/10 +f 138/234/12 150/421/12 139/235/11 +f 140/236/11 139/235/11 141/237/13 +f 142/238/13 141/237/13 143/239/14 +f 120/214/2 122/216/2 145/241/15 +f 146/242/15 145/241/15 147/243/16 +f 149/245/17 160/422/17 150/246/12 +f 133/229/9 144/240/14 143/239/14 +f 137/233/10 136/232/10 126/249/4 +f 153/251/3 156/423/3 149/252/3 +f 135/254/3 216/424/3 154/255/3 +f 142/257/3 214/425/3 155/258/3 +f 156/260/3 158/268/3 148/261/3 +f 157/263/3 215/426/3 128/264/3 +f 140/259/3 155/258/3 153/266/3 +f 158/268/3 213/427/3 146/269/3 +f 128/264/3 215/426/3 159/270/3 +f 148/244/16 147/243/16 160/272/17 +f 47/62/19 214/390/19 161/274/19 +f 49/65/21 215/393/21 157/275/20 +f 51/68/23 164/398/23 159/276/22 +f 154/255/3 161/278/3 144/277/3 +f 161/278/3 214/425/3 142/257/3 +f 162/279/3 216/424/3 135/254/3 +f 163/281/3 157/263/3 129/265/3 +f 131/271/3 159/270/3 164/283/3 +f 146/269/3 213/427/3 163/281/3 +f 164/285/3 165/428/3 152/286/3 +f 165/288/3 162/279/3 137/280/3 +f 116/292/18 178/328/18 167/291/18 +f 168/293/95 206/357/133 145/294/96 +f 169/296/98 205/356/145 124/297/99 +f 141/299/101 174/306/108 170/300/102 +f 171/302/104 194/342/151 172/303/105 +f 139/305/107 211/364/152 174/306/108 +f 173/304/106 172/303/105 175/307/109 +f 177/309/111 211/364/152 139/305/107 +f 175/307/109 210/365/150 178/311/113 +f 179/312/114 168/293/95 122/295/97 +f 132/314/116 183/319/121 179/312/114 +f 180/315/117 204/355/153 181/316/118 +f 130/318/120 203/353/154 183/319/121 +f 182/317/119 181/316/118 184/320/122 +f 186/322/124 203/353/154 130/318/120 +f 184/320/122 202/354/139 187/324/126 +f 188/325/127 186/350/124 127/326/125 +f 117/332/18 189/333/18 171/331/18 +f 193/337/18 187/338/18 192/336/18 +f 118/219/18 124/218/18 180/341/18 +f 174/306/18 172/303/18 194/342/18 +f 195/343/18 170/300/18 194/342/18 +f 197/345/18 195/343/18 196/344/18 +f 199/347/18 201/349/18 197/345/18 +f 200/348/18 188/385/18 201/349/18 +f 186/350/18 188/325/18 200/351/18 +f 203/353/18 186/322/18 202/354/18 +f 183/319/18 203/353/18 184/320/18 +f 204/355/18 179/312/18 183/319/18 +f 168/293/18 179/312/18 204/355/18 +f 206/357/18 168/293/18 205/356/18 +f 207/358/18 209/360/18 206/357/18 +f 208/359/18 212/372/18 209/360/18 +f 177/361/18 212/366/18 208/362/18 +f 211/364/18 177/309/18 210/365/18 +f 174/306/18 211/364/18 175/307/18 +f 212/366/129 177/361/111 150/367/112 +f 207/358/131 169/296/98 123/298/100 +f 206/357/133 209/360/155 147/370/134 +f 167/371/135 208/359/156 207/358/131 +f 147/370/134 209/360/155 212/372/129 +f 196/344/136 194/342/151 171/302/104 +f 170/300/102 195/343/143 151/375/138 +f 202/352/139 200/351/157 192/376/140 +f 198/346/141 196/344/136 189/374/137 +f 195/343/143 197/345/148 134/379/144 +f 205/356/145 204/355/153 180/315/117 +f 199/347/146 198/346/141 190/378/142 +f 197/345/148 201/349/158 136/381/149 +f 210/363/150 208/362/156 167/382/135 +f 192/384/140 200/348/157 199/347/146 +f 136/381/149 201/349/158 188/385/127 +f 107/181/88 163/399/88 213/387/88 +f 108/182/88 213/387/88 158/388/88 +f 110/186/19 153/429/19 155/389/19 +f 111/187/19 155/389/19 214/390/19 +f 112/190/90 162/392/90 165/391/89 +f 114/193/91 216/394/91 162/392/90 +f 52/69/22 159/276/22 215/393/21 +f 115/196/92 154/400/92 216/394/91 +f 109/184/88 158/388/88 156/395/88 +f 153/396/94 110/417/94 119/205/94 +f 164/398/23 51/68/23 113/191/89 +f 163/399/88 107/181/88 50/66/20 +f 154/400/92 115/196/92 48/63/19 +f 193/401/94 117/430/94 86/402/94 o door +v 0.089033 0.262090 0.432067 +v 0.067522 0.190658 0.385405 +v 0.067522 0.272139 0.407321 +v 0.089033 0.853323 0.463791 +v 0.089033 0.559970 0.463791 +v 0.089033 0.568817 0.437088 +v 0.089033 0.167773 -0.408665 +v 0.067522 0.116321 -0.313317 +v 0.089033 0.091335 -0.332227 +v 0.089033 0.551123 -0.437088 +v 0.067522 0.310008 -0.412210 +v 0.089033 0.280046 -0.437088 v 0.089033 0.062912 -0.229749 +v 0.067522 0.088680 0.216673 v 0.089033 0.062912 0.229749 +v 0.089033 1.146677 0.463791 +v 0.089033 0.861853 0.437088 +v 0.089033 0.262090 -0.432067 +v 0.089033 0.153862 -0.432517 +v 0.089033 0.266616 -0.463791 +v 0.089033 0.036209 -0.233384 +v 0.089033 1.448877 0.437088 +v 0.067522 1.689992 0.412210 +v 0.089033 1.719954 0.437088 v 0.089033 1.832227 0.408665 +v 0.089033 1.932517 0.346138 +v 0.089033 1.846138 0.432517 v 0.089033 1.908665 0.332227 -v 0.089033 1.937088 0.229749 +v 0.089033 1.963791 0.233384 v 0.089033 0.091335 0.332227 +v 0.089033 0.036209 0.233384 v 0.089033 0.167773 0.408665 -v 0.089033 0.167773 -0.408665 -v 0.089033 0.091335 -0.332227 +v 0.089033 0.067483 0.346138 +v 0.089033 0.551123 0.437088 +v 0.067522 0.310008 0.412210 +v 0.067522 0.553441 0.412210 +v 0.089033 1.737910 -0.432067 +v 0.067522 1.809342 -0.385405 +v 0.067522 1.727860 -0.407321 +v 0.089033 0.067483 -0.346138 v 0.089033 1.908665 -0.332227 +v 0.089033 1.963791 -0.233384 v 0.089033 1.937088 -0.229749 v 0.089033 1.832227 -0.408665 -v 0.089033 0.036209 0.233384 -v 0.089033 0.036209 -0.233384 -v 0.089033 1.846138 0.432517 -v 0.089033 1.733384 0.463791 -v 0.089033 1.932517 0.346138 -v 0.089033 1.963791 0.233384 -v 0.089033 0.067483 0.346138 -v 0.089033 0.153862 0.432517 -v 0.089033 0.266616 0.463791 -v 0.089033 0.153862 -0.432517 -v 0.089033 0.266616 -0.463791 -v 0.089033 0.067483 -0.346138 v 0.089033 1.932517 -0.346138 -v 0.089033 1.963791 -0.233384 -v 0.089033 1.846138 -0.432517 +v 0.089033 1.448877 -0.437088 +v 0.067522 1.689992 -0.412210 +v 0.067522 1.446559 -0.412210 v 0.089033 1.733384 -0.463791 -v 0.089033 1.440030 -0.463791 -v 0.089033 0.559970 0.463791 +v 0.089033 1.846138 -0.432517 +v 0.089033 1.937088 0.229749 +v 0.089033 0.266616 0.463791 +v 0.089033 0.153862 0.432517 +v 0.067522 0.190658 -0.385405 +v 0.089033 0.861853 -0.437088 +v 0.067522 1.124669 -0.412210 +v 0.067522 0.875331 -0.412210 +v 0.089033 1.155206 -0.437088 +v 0.067522 1.409302 -0.412210 +v 0.067522 1.160618 -0.412210 +v 0.089033 1.155206 0.437088 +v 0.067522 1.409302 0.412210 +v 0.089033 1.431183 0.437088 +v 0.089033 1.737910 0.432067 +v 0.067522 1.809342 0.385405 +v 0.067522 1.124669 0.412210 +v 0.089033 1.138147 0.437088 +v 0.089033 0.844794 0.437088 +v 0.067522 0.590698 0.412210 +v 0.067522 0.839382 0.412210 +v 0.067522 1.446559 0.412210 +v 0.067522 1.911320 0.216673 +v 0.067522 1.883679 0.313317 +v 0.067522 1.727860 0.407321 +v 0.067522 0.590698 -0.412210 +v 0.067522 0.272139 -0.407321 +v 0.067522 0.875331 0.412210 +v 0.067522 1.160618 0.412210 v 0.089033 0.559970 -0.463791 +v 0.067522 0.088680 -0.216673 v 0.089033 0.853323 -0.463791 +v 0.089033 0.568817 -0.437088 +v 0.067522 1.883679 -0.313317 v 0.089033 1.146677 -0.463791 -v 0.089033 1.440030 0.463791 -v 0.089033 1.146677 0.463791 -v 0.089033 0.853323 0.463791 -v 0.067522 0.088680 0.216673 -v 0.067522 0.088680 -0.216673 -v 0.067522 1.809342 0.385405 -v 0.067522 1.883679 0.313317 -v 0.067522 1.911320 0.216673 +v 0.089033 1.138147 -0.437088 v 0.067522 0.116321 0.313317 -v 0.067522 0.190658 0.385405 -v 0.067522 0.190658 -0.385405 -v 0.067522 0.116321 -0.313317 -v 0.067522 1.883679 -0.313317 +v 0.089033 1.440030 -0.463791 +v 0.089033 1.431183 -0.437088 +v 0.089033 1.719954 -0.437088 +v 0.089033 1.440030 0.463791 +v 0.089033 1.733384 0.463791 +v 0.089033 0.844794 -0.437088 +v 0.089033 0.280046 0.437088 v 0.067522 1.911320 -0.216673 -v 0.067522 1.809342 -0.385405 -v 0.089033 1.719954 0.437088 -v 0.089033 1.737910 0.432067 v 0.089033 1.732162 0.454811 -v 0.089033 0.262090 0.432067 -v 0.089033 0.280046 0.437088 v 0.089033 0.267838 0.454811 -v 0.089033 0.280046 -0.437088 -v 0.089033 0.262090 -0.432067 v 0.089033 0.267838 -0.454811 -v 0.089033 1.737910 -0.432067 -v 0.089033 1.719954 -0.437088 v 0.089033 1.732162 -0.454811 -v 0.089033 0.568817 -0.437088 -v 0.089033 0.551123 -0.437088 v 0.089033 0.559970 -0.454975 -v 0.089033 0.861853 -0.437088 -v 0.089033 0.844794 -0.437088 v 0.089033 0.853323 -0.454975 -v 0.089033 1.155206 -0.437088 -v 0.089033 1.138147 -0.437088 v 0.089033 1.146677 -0.454975 -v 0.089033 1.448877 -0.437088 -v 0.089033 1.431183 -0.437088 -v 0.089033 1.440030 -0.454975 -v 0.089033 1.431183 0.437088 -v 0.089033 1.448877 0.437088 +v 0.089033 1.440030 -0.454975 v 0.089033 1.440030 0.454975 -v 0.089033 1.138147 0.437088 -v 0.089033 1.155206 0.437088 v 0.089033 1.146677 0.454975 -v 0.089033 0.844794 0.437088 -v 0.089033 0.861853 0.437088 v 0.089033 0.853323 0.454975 -v 0.089033 0.551123 0.437088 -v 0.089033 0.568817 0.437088 v 0.089033 0.559970 0.454975 -v 0.067522 1.689992 -0.412210 -v 0.067522 1.727860 -0.407321 -v 0.067522 1.727860 0.407321 -v 0.067522 1.689992 0.412210 -v 0.067522 0.310008 -0.412210 -v 0.067522 0.272139 -0.407321 -v 0.067522 0.310008 0.412210 -v 0.067522 0.272139 0.407321 +v 0.079726 0.282090 -0.429863 +v 0.079726 0.282090 0.434792 +v 0.079726 0.848828 -0.434752 +v 0.079726 0.848828 0.439682 v 0.067522 0.553441 -0.412210 -v 0.067522 0.590698 -0.412210 -v 0.067522 0.590698 0.412210 -v 0.067522 0.553441 0.412210 v 0.067522 0.839382 -0.412210 -v 0.067522 0.875331 -0.412210 -v 0.067522 0.839382 0.412210 -v 0.067522 0.875331 0.412210 -v 0.067522 1.124669 -0.412210 -v 0.067522 1.160618 -0.412210 -v 0.067522 1.124669 0.412210 -v 0.067522 1.160618 0.412210 -v 0.067522 1.409302 -0.412210 -v 0.067522 1.446559 -0.412210 -v 0.067522 1.446559 0.412210 -v 0.067522 1.409302 0.412210 -v 0.079726 1.134115 0.439682 -v 0.079726 1.151172 0.439682 -v 0.079726 0.848828 0.439682 -v 0.079726 0.865885 0.439682 -v 0.079726 0.300058 -0.434752 -v 0.079726 0.282090 -0.429863 +v 0.079726 1.717910 0.434792 v 0.079726 1.699942 -0.434752 v 0.079726 1.717910 -0.429863 -v 0.079726 1.717910 0.434792 -v 0.079726 1.699942 0.439682 v 0.079726 0.300058 0.439682 -v 0.079726 0.282090 0.434792 +v 0.079726 0.300058 -0.434752 +v 0.079726 0.580909 0.439682 v 0.079726 0.563230 -0.434752 v 0.079726 0.580909 -0.434752 -v 0.079726 0.580909 0.439682 -v 0.079726 0.563230 0.439682 -v 0.079726 0.848828 -0.434752 +v 0.079726 0.865885 0.439682 v 0.079726 0.865885 -0.434752 +v 0.079726 1.151172 0.439682 v 0.079726 1.134115 -0.434752 v 0.079726 1.151172 -0.434752 +v 0.079726 1.436770 0.439682 v 0.079726 1.419091 -0.434752 v 0.079726 1.436770 -0.434752 -v 0.079726 1.436770 0.439682 +v 0.079726 1.134115 0.439682 +v 0.079726 0.563230 0.439682 +v 0.079726 1.699942 0.439682 v 0.079726 1.419091 0.439682 -v -0.089033 0.062912 -0.229749 -v -0.089033 0.062912 0.229749 -v -0.089033 1.832227 0.408665 -v -0.089033 1.908665 0.332227 -v -0.089033 1.937088 0.229749 -v -0.089033 0.091335 0.332227 -v -0.089033 0.167773 0.408665 -v -0.089033 0.167773 -0.408665 -v -0.089033 0.091335 -0.332227 -v -0.089033 1.908665 -0.332227 -v -0.089033 1.937088 -0.229749 -v -0.089033 1.832227 -0.408665 -v -0.089033 0.036209 0.233384 +v -0.089033 0.853323 0.463791 +v -0.089033 0.559970 -0.463791 +v -0.089033 0.853323 -0.463791 +v -0.089033 1.146677 -0.463791 v -0.089033 0.036209 -0.233384 -v -0.089033 1.846138 0.432517 -v -0.089033 1.733384 0.463791 -v -0.089033 1.932517 0.346138 -v -0.089033 1.963791 0.233384 -v -0.089033 0.067483 0.346138 -v -0.089033 0.153862 0.432517 -v -0.089033 0.266616 0.463791 -v -0.089033 0.153862 -0.432517 -v -0.089033 0.266616 -0.463791 v -0.089033 0.067483 -0.346138 +v -0.089033 0.266616 -0.463791 +v -0.089033 0.153862 -0.432517 +v -0.089033 1.440030 -0.463791 +v -0.089033 1.733384 -0.463791 +v -0.089033 1.846138 -0.432517 v -0.089033 1.932517 -0.346138 v -0.089033 1.963791 -0.233384 -v -0.089033 1.846138 -0.432517 -v -0.089033 1.733384 -0.463791 -v -0.089033 1.440030 -0.463791 +v -0.089033 1.963791 0.233384 +v -0.089033 1.932517 0.346138 +v -0.089033 1.733384 0.463791 +v -0.089033 1.846138 0.432517 v -0.089033 0.559970 0.463791 -v -0.089033 0.559970 -0.463791 -v -0.089033 0.853323 -0.463791 -v -0.089033 1.146677 -0.463791 -v -0.089033 1.440030 0.463791 +v -0.089033 0.266616 0.463791 +v -0.089033 0.153862 0.432517 +v -0.089033 0.067483 0.346138 +v -0.089033 0.036209 0.233384 v -0.089033 1.146677 0.463791 -v -0.089033 0.853323 0.463791 -v -0.067522 0.088680 0.216673 -v -0.067522 0.088680 -0.216673 -v -0.067522 1.809342 0.385405 -v -0.067522 1.883679 0.313317 -v -0.067522 1.911320 0.216673 -v -0.067522 0.116321 0.313317 +v -0.089033 0.262090 0.432067 v -0.067522 0.190658 0.385405 -v -0.067522 0.190658 -0.385405 +v -0.089033 0.167773 0.408665 +v -0.089033 0.568817 0.437088 +v -0.089033 0.844794 0.437088 v -0.067522 0.116321 -0.313317 -v -0.067522 1.883679 -0.313317 -v -0.067522 1.911320 -0.216673 -v -0.067522 1.809342 -0.385405 -v -0.089033 1.719954 0.437088 -v -0.089033 1.737910 0.432067 -v -0.089033 1.732162 0.454811 -v -0.089033 0.262090 0.432067 -v -0.089033 0.280046 0.437088 -v -0.089033 0.267838 0.454811 +v -0.089033 0.167773 -0.408665 +v -0.089033 0.091335 -0.332227 +v -0.067522 0.310008 -0.412210 +v -0.089033 0.551123 -0.437088 v -0.089033 0.280046 -0.437088 +v -0.067522 0.088680 0.216673 +v -0.089033 0.062912 -0.229749 +v -0.089033 0.062912 0.229749 +v -0.089033 0.861853 0.437088 +v -0.089033 1.138147 0.437088 v -0.089033 0.262090 -0.432067 -v -0.089033 0.267838 -0.454811 +v -0.067522 1.689992 0.412210 +v -0.089033 1.448877 0.437088 +v -0.089033 1.719954 0.437088 +v -0.089033 1.832227 0.408665 +v -0.089033 1.908665 0.332227 +v -0.089033 1.937088 0.229749 +v -0.089033 0.091335 0.332227 +v -0.089033 0.551123 0.437088 +v -0.067522 0.310008 0.412210 +v -0.089033 0.280046 0.437088 v -0.089033 1.737910 -0.432067 +v -0.067522 1.809342 -0.385405 +v -0.089033 1.832227 -0.408665 +v -0.089033 1.908665 -0.332227 +v -0.089033 1.937088 -0.229749 +v -0.089033 1.448877 -0.437088 +v -0.067522 1.689992 -0.412210 v -0.089033 1.719954 -0.437088 v -0.089033 1.732162 -0.454811 -v -0.089033 0.568817 -0.437088 -v -0.089033 0.551123 -0.437088 -v -0.089033 0.559970 -0.454975 +v -0.089033 0.267838 0.454811 +v -0.067522 0.190658 -0.385405 v -0.089033 0.861853 -0.437088 -v -0.089033 0.844794 -0.437088 -v -0.089033 0.853323 -0.454975 -v -0.089033 1.155206 -0.437088 +v -0.067522 1.124669 -0.412210 v -0.089033 1.138147 -0.437088 -v -0.089033 1.146677 -0.454975 -v -0.089033 1.448877 -0.437088 +v -0.089033 1.155206 -0.437088 +v -0.067522 1.409302 -0.412210 v -0.089033 1.431183 -0.437088 -v -0.089033 1.440030 -0.454975 -v -0.089033 1.431183 0.437088 -v -0.089033 1.448877 0.437088 -v -0.089033 1.440030 0.454975 -v -0.089033 1.138147 0.437088 +v -0.067522 1.409302 0.412210 v -0.089033 1.155206 0.437088 -v -0.089033 1.146677 0.454975 -v -0.089033 0.844794 0.437088 -v -0.089033 0.861853 0.437088 -v -0.089033 0.853323 0.454975 -v -0.089033 0.551123 0.437088 -v -0.089033 0.568817 0.437088 -v -0.089033 0.559970 0.454975 -v -0.067522 1.689992 -0.412210 -v -0.067522 1.727860 -0.407321 -v -0.067522 1.727860 0.407321 -v -0.067522 1.689992 0.412210 -v -0.067522 0.310008 -0.412210 -v -0.067522 0.272139 -0.407321 -v -0.067522 0.310008 0.412210 -v -0.067522 0.272139 0.407321 -v -0.067522 0.553441 -0.412210 -v -0.067522 0.590698 -0.412210 +v -0.089033 1.431183 0.437088 +v -0.067522 1.809342 0.385405 +v -0.089033 1.737910 0.432067 +v -0.067522 1.124669 0.412210 v -0.067522 0.590698 0.412210 +v -0.067522 1.446559 -0.412210 +v -0.067522 1.446559 0.412210 v -0.067522 0.553441 0.412210 -v -0.067522 0.839382 -0.412210 -v -0.067522 0.875331 -0.412210 +v -0.067522 1.883679 -0.313317 +v -0.067522 1.727860 -0.407321 v -0.067522 0.839382 0.412210 +v -0.067522 0.590698 -0.412210 +v -0.067522 0.088680 -0.216673 +v -0.067522 0.272139 -0.407321 +v -0.067522 0.875331 -0.412210 v -0.067522 0.875331 0.412210 -v -0.067522 1.124669 -0.412210 v -0.067522 1.160618 -0.412210 -v -0.067522 1.124669 0.412210 v -0.067522 1.160618 0.412210 -v -0.067522 1.409302 -0.412210 -v -0.067522 1.446559 -0.412210 -v -0.067522 1.446559 0.412210 -v -0.067522 1.409302 0.412210 -v -0.079726 1.134115 0.439682 -v -0.079726 1.151172 0.439682 -v -0.079726 0.848828 0.439682 -v -0.079726 0.865885 0.439682 -v -0.079726 0.300058 -0.434752 +v -0.067522 1.883679 0.313317 +v -0.089033 0.568817 -0.437088 +v -0.089033 0.844794 -0.437088 +v -0.067522 0.116321 0.313317 +v -0.089033 1.440030 0.463791 +v -0.067522 1.911320 -0.216673 +v -0.089033 1.732162 0.454811 +v -0.089033 0.267838 -0.454811 +v -0.089033 0.559970 -0.454975 +v -0.089033 0.853323 -0.454975 +v -0.089033 1.146677 -0.454975 +v -0.089033 1.440030 -0.454975 +v -0.089033 1.440030 0.454975 +v -0.089033 1.146677 0.454975 +v -0.089033 0.853323 0.454975 +v -0.089033 0.559970 0.454975 +v -0.067522 0.272139 0.407321 v -0.079726 0.282090 -0.429863 +v -0.079726 0.848828 -0.434752 +v -0.067522 0.839382 -0.412210 +v -0.067522 1.727860 0.407321 +v -0.067522 0.553441 -0.412210 v -0.079726 1.699942 -0.434752 -v -0.079726 1.717910 -0.429863 v -0.079726 1.717910 0.434792 -v -0.079726 1.699942 0.439682 +v -0.079726 1.717910 -0.429863 v -0.079726 0.300058 0.439682 -v -0.079726 0.282090 0.434792 +v -0.079726 0.300058 -0.434752 v -0.079726 0.563230 -0.434752 -v -0.079726 0.580909 -0.434752 v -0.079726 0.580909 0.439682 -v -0.079726 0.563230 0.439682 -v -0.079726 0.848828 -0.434752 +v -0.079726 0.580909 -0.434752 +v -0.079726 0.865885 0.439682 v -0.079726 0.865885 -0.434752 v -0.079726 1.134115 -0.434752 +v -0.079726 1.151172 0.439682 v -0.079726 1.151172 -0.434752 v -0.079726 1.419091 -0.434752 -v -0.079726 1.436770 -0.434752 v -0.079726 1.436770 0.439682 +v -0.079726 1.436770 -0.434752 +v -0.067522 1.911320 0.216673 +v -0.079726 0.282090 0.434792 +v -0.079726 0.848828 0.439682 +v -0.079726 1.699942 0.439682 +v -0.079726 0.563230 0.439682 +v -0.079726 1.134115 0.439682 v -0.079726 1.419091 0.439682 vt 0.783593 0.831993 vt 0.770625 0.819241 @@ -1930,19 +1932,19 @@ vt 0.442466 0.109207 vn 0.7790 0.1642 -0.6052 vn 0.8198 0.2555 -0.5126 vn 0.7857 0.1313 -0.6045 -vn 1.0000 0.0000 -0.0000 -vn 0.8258 0.2898 0.4837 +vn 1.0000 -0.0000 0.0000 +vn 0.8258 0.2898 0.4838 vn 0.8225 0.4962 0.2778 vn 0.8229 0.4869 0.2928 -vn 0.7564 0.0000 0.6541 +vn 0.7564 -0.0000 0.6541 vn 0.7693 0.0222 0.6385 vn 0.7802 0.0915 0.6187 vn 0.7889 0.6067 0.0976 -vn 0.7831 0.6180 -0.0704 +vn 0.7830 0.6180 -0.0704 vn 0.7889 0.6067 -0.0976 vn 0.7564 0.0000 -0.6541 vn 0.7693 -0.0222 -0.6385 -vn 0.7802 -0.0915 -0.6187 +vn 0.7803 -0.0915 -0.6187 vn 0.7693 0.0222 -0.6385 vn 0.7790 -0.1642 0.6052 vn 0.8198 -0.2555 0.5126 @@ -1952,31 +1954,34 @@ vn 0.7790 0.1642 0.6052 vn 0.8198 0.2555 0.5126 vn 0.7790 -0.1642 -0.6052 vn 0.8198 -0.2555 -0.5126 -vn 0.8258 -0.2898 -0.4837 -vn 0.7831 0.6180 0.0704 +vn 0.8258 -0.2898 -0.4838 +vn 0.7830 0.6180 0.0704 vn 0.8225 -0.4962 -0.2778 vn 0.8229 -0.4869 -0.2928 vn 0.7889 -0.6067 0.0976 vn 0.8225 -0.4962 0.2778 vn 0.8229 -0.4869 0.2928 vn 0.7889 -0.6067 -0.0976 -vn 0.7831 -0.6180 -0.0704 -vn 0.8258 -0.2898 0.4837 +vn 0.7830 -0.6180 -0.0704 +vn 0.8258 -0.2898 0.4838 vn 0.8225 0.4962 -0.2778 vn 0.8229 0.4869 -0.2928 -vn 0.8258 0.2898 -0.4837 -vn 0.7831 -0.6180 0.0704 +vn 0.8258 0.2898 -0.4838 +vn 0.7830 -0.6180 0.0704 +vn 0.7803 0.0915 0.6187 vn 0.7857 0.1313 0.6045 -vn 0.6319 -0.7750 0.0000 +vn 0.6319 -0.7750 -0.0000 vn 0.6121 -0.7908 0.0000 vn 0.7802 0.0915 -0.6187 +vn 0.7802 -0.0915 -0.6187 vn 0.7857 -0.1313 -0.6045 vn 0.7802 -0.0915 0.6187 vn 0.6121 0.7908 0.0000 -vn 0.6257 0.7800 0.0000 +vn 0.6257 0.7801 0.0000 +vn 0.6319 0.7751 0.0000 +vn 0.6257 -0.7801 -0.0000 vn 0.6319 0.7750 0.0000 -vn 0.6257 -0.7800 0.0000 -vn 0.0000 0.0000 1.0000 +vn 0.0000 -0.0000 1.0000 vn 0.0000 0.0000 -1.0000 vn 0.0000 -0.9909 -0.1349 vn 0.0000 -0.8638 -0.5038 @@ -1996,32 +2001,32 @@ vn 0.0000 -0.8638 0.5038 vn 0.0000 -0.9909 0.1349 vn -0.7790 0.1642 -0.6052 vn -0.8198 0.2555 -0.5126 -vn -0.8258 0.2898 -0.4837 +vn -0.8258 0.2898 -0.4838 vn -1.0000 0.0000 0.0000 vn -0.8225 0.4962 0.2778 -vn -0.8258 0.2898 0.4837 +vn -0.8258 0.2898 0.4838 vn -0.8229 0.4869 0.2928 vn -0.7693 0.0222 0.6385 -vn -0.7564 0.0000 0.6541 -vn -0.7802 0.0915 0.6187 -vn -0.7831 0.6180 -0.0704 +vn -0.7564 -0.0000 0.6541 +vn -0.7802 0.0915 0.6188 +vn -0.7830 0.6180 -0.0704 vn -0.7889 0.6067 0.0976 vn -0.7889 0.6067 -0.0976 vn -0.7693 -0.0222 -0.6385 vn -0.7564 0.0000 -0.6541 -vn -0.7802 -0.0915 -0.6187 +vn -0.7802 -0.0915 -0.6188 vn -0.7693 0.0222 -0.6385 vn -0.7802 0.0915 -0.6187 vn -0.7790 -0.1642 0.6052 vn -0.8198 -0.2555 0.5126 -vn -0.8258 -0.2898 0.4837 +vn -0.8258 -0.2898 0.4838 vn -0.7693 -0.0222 0.6385 vn -0.7802 -0.0915 0.6187 vn -0.8198 0.2555 0.5126 vn -0.7790 0.1642 0.6052 vn -0.8198 -0.2555 -0.5126 vn -0.7790 -0.1642 -0.6052 -vn -0.8258 -0.2898 -0.4837 +vn -0.8258 -0.2898 -0.4838 vn -0.8225 -0.4962 -0.2778 vn -0.8229 -0.4869 -0.2928 vn -0.8225 -0.4962 0.2778 @@ -2030,493 +2035,499 @@ vn -0.8229 -0.4869 0.2928 vn -0.7889 -0.6067 -0.0976 vn -0.8225 0.4962 -0.2778 vn -0.8229 0.4869 -0.2928 -vn -0.7831 -0.6180 0.0704 +vn -0.7830 -0.6180 0.0704 +vn -0.7802 0.0915 0.6187 vn -0.7857 0.1313 0.6045 -vn -0.6319 -0.7750 0.0000 -vn -0.6121 -0.7908 0.0000 +vn -0.6319 -0.7750 -0.0000 +vn -0.6121 -0.7908 -0.0000 +vn -0.7803 0.0915 -0.6187 vn -0.7857 0.1313 -0.6045 +vn -0.7802 -0.0915 -0.6187 vn -0.7857 -0.1313 -0.6045 vn -0.7857 -0.1313 0.6045 vn -0.6121 0.7908 0.0000 -vn -0.6257 0.7800 0.0000 +vn -0.6257 0.7801 0.0000 +vn -0.6319 0.7751 0.0000 +vn -0.6257 -0.7801 -0.0000 vn -0.6319 0.7750 0.0000 -vn -0.6257 -0.7800 0.0000 -vn -0.7831 0.6180 0.0704 -vn -0.7831 -0.6180 -0.0704 +vn 0.7802 0.0915 -0.6188 +vn -0.7830 0.6180 0.0704 +vn -0.7830 -0.6180 -0.0704 +usemtl Default_OBJ s 1 -f 268/431/159 259/432/160 308/433/161 -f 252/434/162 246/435/162 299/436/162 -f 224/437/163 261/438/164 225/439/165 -f 278/440/166 305/441/167 271/442/168 -f 217/443/169 253/444/170 218/445/171 -f 251/446/162 252/434/162 296/447/162 -f 272/448/162 238/449/162 239/450/162 -f 218/445/162 230/451/162 217/443/162 -f 290/452/172 304/453/173 265/454/174 -f 219/455/162 233/456/162 231/457/162 -f 220/458/162 234/459/162 233/456/162 -f 222/460/162 229/461/162 218/445/162 -f 223/462/162 235/463/162 222/460/162 -f 298/464/172 307/465/175 312/466/172 -f 274/467/176 264/468/177 302/469/178 -f 225/439/162 238/449/162 224/437/162 -f 225/439/162 230/451/162 240/470/162 -f 226/471/162 242/472/162 227/473/162 -f 228/474/162 241/475/162 226/471/162 -f 286/476/166 301/477/179 322/478/166 -f 274/467/162 244/479/162 243/480/162 -f 227/473/162 234/459/162 221/481/162 -f 268/431/162 237/482/162 236/483/162 -f 272/448/180 260/484/181 224/437/163 -f 280/485/166 317/486/166 314/487/166 -f 283/488/166 321/489/166 318/490/166 -f 293/491/172 324/492/172 289/493/172 -f 266/494/182 255/495/183 219/455/184 -f 296/447/172 319/496/172 292/497/172 -f 295/498/172 311/499/172 315/500/172 -f 322/501/162 304/502/162 323/503/162 -f 305/504/162 312/505/162 307/506/162 -f 257/507/162 256/508/162 303/509/162 -f 310/510/162 315/511/162 311/512/162 -f 306/513/162 308/514/162 253/515/162 -f 314/516/162 319/517/162 316/518/162 -f 318/519/162 324/520/162 320/521/162 -f 247/522/162 271/442/162 239/523/162 -f 217/443/169 261/438/164 254/524/185 -f 219/455/184 256/525/186 220/458/187 -f 248/526/162 277/527/162 247/522/162 -f 227/473/188 262/528/189 226/471/190 -f 221/481/191 256/525/186 257/529/192 -f 248/526/162 249/530/162 284/531/162 -f 228/474/193 262/528/189 264/468/177 -f 218/445/171 258/532/194 222/460/195 -f 249/530/162 245/533/162 287/534/162 -f 245/533/162 244/535/162 275/536/162 -f 223/462/196 258/532/194 259/432/160 -f 250/537/162 265/454/162 232/538/162 -f 281/539/166 310/540/166 277/527/166 -f 246/435/162 237/541/162 269/542/162 -f 251/446/162 289/493/162 250/537/162 -f 221/481/191 263/543/197 227/473/188 -f 265/454/162 266/544/162 267/545/162 -f 268/546/162 269/542/162 270/547/162 -f 271/442/162 272/548/162 273/549/162 -f 274/550/162 275/536/162 276/551/162 -f 277/527/162 278/440/162 279/552/162 -f 280/485/162 281/539/162 282/553/162 -f 283/488/162 284/531/162 285/554/162 -f 286/476/162 287/534/162 288/555/162 -f 289/493/162 290/452/162 291/556/162 -f 292/497/162 293/491/162 294/557/162 -f 295/498/162 296/447/162 297/558/162 -f 298/464/162 299/436/162 300/559/162 -f 320/560/172 292/497/172 319/496/172 -f 315/500/172 296/447/172 295/498/172 -f 271/442/168 306/561/198 272/548/180 -f 308/514/199 330/562/199 336/563/199 -f 315/511/200 341/564/200 327/565/200 -f 308/566/161 269/542/201 268/546/159 -f 299/436/172 312/466/172 311/499/172 -f 265/454/174 303/567/202 266/544/182 -f 277/527/166 309/568/166 278/440/166 -f 280/485/166 313/569/166 281/539/166 -f 318/490/166 284/531/166 283/488/166 -f 322/478/166 287/534/166 286/476/166 -f 275/536/203 302/570/178 301/477/179 -f 289/493/172 323/571/172 290/452/172 -f 266/494/162 231/457/162 232/572/162 -f 333/573/162 331/574/162 332/575/162 -f 335/576/162 330/562/162 329/577/162 -f 339/578/162 337/579/162 338/580/162 -f 328/581/162 341/564/162 342/582/162 -f 326/583/162 343/584/162 344/585/162 -f 347/586/162 345/587/162 346/588/162 -f 320/521/204 344/585/204 318/519/204 -f 311/512/205 338/580/205 310/510/205 -f 303/509/206 332/575/206 302/589/206 -f 319/517/200 343/584/200 325/590/200 -f 312/505/207 337/579/207 340/591/207 -f 304/502/199 331/574/199 334/592/199 -f 323/503/205 346/588/205 322/501/205 -f 307/506/206 329/577/206 305/504/206 -f 316/518/204 342/582/204 314/516/204 -f 324/520/207 345/587/207 348/593/207 -f 384/594/208 246/595/208 252/596/208 -f 379/597/209 248/598/209 247/599/209 -f 380/600/209 249/601/209 248/598/209 -f 381/602/209 245/603/209 249/601/209 -f 362/604/210 240/605/211 230/606/210 -f 372/607/211 238/608/212 240/605/211 -f 371/609/213 247/599/209 239/610/213 -f 370/611/212 239/612/213 238/608/212 -f 377/613/209 244/614/214 245/603/209 -f 376/615/214 243/616/215 244/617/214 -f 375/618/215 241/619/216 243/616/215 -f 373/620/216 242/621/217 241/619/216 -f 374/622/217 234/623/218 242/621/217 -f 366/624/218 233/625/219 234/623/218 -f 365/626/219 231/627/220 233/625/219 -f 364/628/221 250/629/208 232/630/221 -f 363/631/220 232/632/221 231/627/220 -f 378/633/208 237/634/222 246/595/208 -f 369/635/222 236/636/223 237/637/222 -f 368/638/223 235/639/224 236/636/223 -f 367/640/224 229/641/225 235/639/224 -f 361/642/225 230/606/210 229/641/225 -f 383/643/208 252/596/208 251/644/208 -f 400/645/226 391/646/227 355/647/228 -f 431/648/229 384/649/229 427/650/229 -f 393/651/230 356/652/231 357/653/232 -f 437/654/233 410/655/234 403/656/235 -f 385/657/236 349/658/237 350/659/238 -f 428/660/229 383/661/229 424/662/229 -f 370/663/229 356/652/229 404/664/229 -f 362/665/229 350/659/229 349/658/229 -f 436/666/239 422/667/240 397/668/241 -f 351/669/229 365/670/229 352/671/229 -f 352/671/229 366/672/229 353/673/229 -f 361/674/229 354/675/229 350/659/229 -f 367/676/229 355/647/229 354/675/229 -f 430/677/240 439/678/242 401/679/243 -f 406/680/244 396/681/245 360/682/246 -f 356/652/229 372/683/229 357/653/229 -f 357/653/229 362/665/229 349/658/229 -f 374/684/229 358/685/229 359/686/229 -f 373/687/229 360/682/229 358/685/229 -f 418/688/234 433/689/247 407/690/248 -f 376/691/229 408/692/229 406/680/229 -f 366/672/229 359/686/229 353/673/229 -f 369/693/229 402/694/229 400/645/229 -f 392/695/249 404/664/250 356/652/231 -f 412/696/234 449/697/234 416/698/234 -f 415/699/234 453/700/234 419/701/234 -f 456/702/240 425/703/240 421/704/240 -f 387/705/251 398/706/252 351/669/253 -f 451/707/240 428/660/240 424/662/240 -f 427/650/240 443/708/240 431/648/240 -f 436/709/229 454/710/229 455/711/229 -f 444/712/229 437/713/229 439/714/229 -f 394/715/229 396/716/229 434/717/229 -f 447/718/229 442/719/229 443/720/229 -f 386/721/229 385/722/229 438/723/229 -f 451/724/229 446/725/229 448/726/229 -f 456/727/229 450/728/229 452/729/229 -f 403/656/229 410/655/229 379/730/229 -f 349/658/237 393/651/230 357/653/232 -f 388/731/254 351/669/253 352/671/255 -f 409/732/229 413/733/229 380/734/229 -f 394/735/256 359/686/257 358/685/258 -f 353/673/259 388/731/254 352/671/255 -f 416/698/229 380/734/229 412/696/229 -f 360/682/246 394/735/256 358/685/258 -f 390/736/260 350/659/238 354/675/261 -f 419/701/229 381/737/229 415/699/229 -f 407/690/229 377/738/229 418/688/229 -f 355/647/228 390/736/260 354/675/261 -f 397/668/229 422/667/229 382/739/229 -f 442/740/234 413/733/234 409/732/234 -f 401/679/229 378/741/229 430/677/229 -f 421/704/229 425/703/229 383/661/229 -f 395/742/262 353/673/259 359/686/257 -f 397/668/229 399/743/229 398/744/229 -f 400/745/229 402/746/229 401/679/229 -f 403/656/229 405/747/229 404/748/229 -f 406/749/229 408/750/229 407/690/229 -f 409/732/229 411/751/229 410/655/229 -f 412/696/229 414/752/229 413/733/229 -f 415/699/229 417/753/229 416/698/229 -f 418/688/229 420/754/229 419/701/229 -f 421/704/229 423/755/229 422/667/229 -f 424/662/229 426/756/229 425/703/229 -f 427/650/229 429/757/229 428/660/229 -f 430/677/229 432/758/229 431/648/229 -f 452/759/240 424/662/240 425/703/240 -f 428/660/240 447/760/240 427/650/240 -f 403/656/235 438/761/263 437/654/233 -f 440/762/264 462/763/264 438/723/264 -f 447/718/265 473/764/265 445/765/265 -f 401/679/243 440/766/266 400/745/226 -f 444/767/240 431/648/240 443/708/240 -f 397/668/241 435/768/267 436/666/239 -f 409/732/234 441/769/234 442/740/234 -f 412/696/234 445/770/234 446/771/234 -f 416/698/234 450/772/234 415/699/234 -f 419/701/234 454/773/234 418/688/234 -f 434/774/268 407/690/248 433/689/247 -f 421/704/240 455/775/240 456/702/240 -f 363/776/229 351/669/229 398/706/229 -f 463/777/229 465/778/229 464/779/229 -f 462/763/229 467/780/229 461/781/229 -f 469/782/229 471/783/229 470/784/229 -f 473/764/229 460/785/229 474/786/229 -f 475/787/229 458/788/229 476/789/229 -f 477/790/229 479/791/229 478/792/229 -f 476/789/269 452/729/269 450/728/269 -f 470/784/270 443/720/270 442/719/270 -f 464/779/271 435/793/271 434/717/271 -f 451/724/265 475/787/265 449/794/265 -f 444/712/272 469/782/272 441/795/272 -f 436/709/264 463/777/264 433/796/264 -f 478/792/270 455/711/270 454/710/270 -f 461/781/271 439/714/271 437/713/271 -f 474/786/269 448/726/269 446/725/269 -f 456/727/272 477/790/272 453/797/272 -f 382/798/208 251/644/208 250/629/208 -f 268/431/159 223/462/196 259/432/160 -f 246/435/162 300/559/162 299/436/162 -f 299/436/162 295/498/162 252/434/162 -f 295/498/162 297/558/162 252/434/162 -f 224/437/163 260/484/181 261/438/164 -f 278/440/166 309/568/166 305/441/167 -f 217/443/169 254/524/185 253/444/170 -f 252/434/162 297/558/162 296/447/162 -f 296/447/162 292/497/162 251/446/162 -f 292/497/162 294/557/162 251/446/162 -f 239/450/162 273/799/162 272/448/162 -f 272/448/162 224/437/162 238/449/162 -f 218/445/162 229/461/162 230/451/162 -f 290/452/172 323/571/172 304/453/173 -f 219/455/162 220/458/162 233/456/162 -f 220/458/162 221/481/162 234/459/162 -f 222/460/162 235/463/162 229/461/162 -f 223/462/162 236/483/162 235/463/162 -f 298/464/172 269/542/201 307/465/175 -f 274/467/176 228/474/193 264/468/177 -f 225/439/162 240/470/162 238/449/162 -f 225/439/162 217/443/162 230/451/162 -f 226/471/162 241/475/162 242/472/162 -f 228/474/162 243/480/162 241/475/162 -f 286/476/166 275/536/203 301/477/179 -f 243/480/162 228/474/162 274/467/162 -f 274/467/162 276/800/162 244/479/162 -f 227/473/162 242/472/162 234/459/162 -f 236/483/162 223/462/162 268/431/162 -f 268/431/162 270/801/162 237/482/162 -f 272/448/180 306/802/198 260/484/181 -f 280/485/166 284/531/166 317/486/166 -f 283/488/166 287/534/166 321/489/166 -f 293/491/172 320/560/172 324/492/172 -f 266/494/182 303/803/202 255/495/183 -f 296/447/172 316/804/172 319/496/172 -f 295/498/172 299/436/172 311/499/172 -f 322/501/162 301/805/162 304/502/162 -f 305/504/162 309/806/162 312/505/162 -f 255/807/162 303/509/162 256/508/162 -f 303/509/162 302/589/162 257/507/162 -f 302/589/162 264/808/162 262/809/162 -f 262/809/162 263/810/162 302/589/162 -f 263/810/162 257/507/162 302/589/162 -f 310/510/162 313/811/162 315/511/162 -f 259/812/162 258/813/162 308/514/162 -f 258/813/162 253/515/162 308/514/162 -f 253/515/162 254/814/162 306/513/162 -f 254/814/162 261/815/162 306/513/162 -f 261/815/162 260/816/162 306/513/162 -f 314/516/162 317/817/162 319/517/162 -f 318/519/162 321/818/162 324/520/162 -f 247/522/162 279/552/162 278/440/162 -f 278/440/162 271/442/162 247/522/162 -f 271/442/162 273/549/162 239/523/162 -f 217/443/169 225/439/165 261/438/164 -f 219/455/184 255/495/183 256/525/186 -f 248/526/162 282/553/162 281/539/162 -f 281/539/162 277/527/162 248/526/162 -f 277/527/162 279/552/162 247/522/162 -f 227/473/188 263/543/197 262/528/189 -f 221/481/191 220/458/187 256/525/186 -f 249/530/162 285/554/162 284/531/162 -f 284/531/162 280/485/162 248/526/162 -f 280/485/162 282/553/162 248/526/162 -f 228/474/193 226/471/190 262/528/189 -f 218/445/171 253/444/170 258/532/194 -f 245/533/162 288/555/162 287/534/162 -f 287/534/162 283/488/162 249/530/162 -f 283/488/162 285/554/162 249/530/162 -f 244/535/162 276/551/162 275/536/162 -f 275/536/162 286/476/162 245/533/162 -f 286/476/162 288/555/162 245/533/162 -f 223/462/196 222/460/195 258/532/194 -f 250/537/162 291/556/162 290/452/162 -f 290/452/162 265/454/162 250/537/162 -f 265/454/162 267/545/162 232/538/162 -f 281/539/166 313/569/166 310/540/166 -f 237/541/162 270/547/162 269/542/162 -f 269/542/162 298/464/162 246/435/162 -f 298/464/162 300/559/162 246/435/162 -f 251/446/162 294/557/162 293/491/162 -f 293/491/162 289/493/162 251/446/162 -f 289/493/162 291/556/162 250/537/162 -f 221/481/191 257/529/192 263/543/197 -f 320/560/172 293/491/172 292/497/172 -f 315/500/172 316/804/172 296/447/172 -f 271/442/168 305/441/167 306/561/198 -f 308/514/199 306/513/199 330/562/199 -f 315/511/200 313/811/200 341/564/200 -f 308/566/161 307/465/175 269/542/201 -f 299/436/172 298/464/172 312/466/172 -f 265/454/174 304/453/173 303/567/202 -f 277/527/166 310/540/166 309/568/166 -f 280/485/166 314/487/166 313/569/166 -f 318/490/166 317/486/166 284/531/166 -f 322/478/166 321/489/166 287/534/166 -f 275/536/203 274/550/176 302/570/178 -f 289/493/172 324/492/172 323/571/172 -f 232/572/162 267/819/162 266/494/162 -f 266/494/162 219/455/162 231/457/162 -f 333/573/162 334/592/162 331/574/162 -f 335/576/162 336/563/162 330/562/162 -f 339/578/162 340/591/162 337/579/162 -f 328/581/162 327/565/162 341/564/162 -f 326/583/162 325/590/162 343/584/162 -f 347/586/162 348/593/162 345/587/162 -f 320/521/204 326/583/204 344/585/204 -f 311/512/205 339/578/205 338/580/205 -f 303/509/206 333/573/206 332/575/206 -f 319/517/200 317/817/200 343/584/200 -f 312/505/207 309/806/207 337/579/207 -f 304/502/199 301/805/199 331/574/199 -f 323/503/205 347/586/205 346/588/205 -f 307/506/206 335/576/206 329/577/206 -f 316/518/204 328/581/204 342/582/204 -f 324/520/207 321/818/207 345/587/207 -f 384/594/208 378/633/208 246/595/208 -f 379/597/209 380/600/209 248/598/209 -f 380/600/209 381/602/209 249/601/209 -f 381/602/209 377/613/209 245/603/209 -f 362/604/210 372/607/211 240/605/211 -f 372/607/211 370/611/212 238/608/212 -f 371/609/213 379/597/209 247/599/209 -f 370/611/212 371/820/213 239/612/213 -f 377/613/209 376/821/214 244/614/214 -f 376/615/214 375/618/215 243/616/215 -f 375/618/215 373/620/216 241/619/216 -f 373/620/216 374/622/217 242/621/217 -f 374/622/217 366/624/218 234/623/218 -f 366/624/218 365/626/219 233/625/219 -f 365/626/219 363/631/220 231/627/220 -f 364/628/221 382/798/208 250/629/208 -f 363/631/220 364/822/221 232/632/221 -f 378/633/208 369/823/222 237/634/222 -f 369/635/222 368/638/223 236/636/223 -f 368/638/223 367/640/224 235/639/224 -f 367/640/224 361/642/225 229/641/225 -f 361/642/225 362/604/210 230/606/210 -f 383/643/208 384/594/208 252/596/208 -f 400/645/226 440/824/266 391/646/227 -f 431/648/229 432/758/229 378/741/229 -f 378/741/229 384/649/229 431/648/229 -f 384/649/229 429/757/229 427/650/229 -f 393/651/230 392/695/249 356/652/231 -f 437/654/233 441/769/234 410/655/234 -f 385/657/236 386/825/273 349/658/237 -f 428/660/229 429/757/229 384/649/229 -f 384/649/229 383/661/229 428/660/229 -f 383/661/229 426/756/229 424/662/229 -f 404/664/229 405/826/229 371/827/229 -f 371/827/229 370/663/229 404/664/229 -f 362/665/229 361/674/229 350/659/229 -f 436/666/239 455/775/240 422/667/240 -f 351/669/229 363/776/229 365/670/229 -f 352/671/229 365/670/229 366/672/229 -f 361/674/229 367/676/229 354/675/229 -f 367/676/229 368/828/229 355/647/229 -f 430/677/240 444/767/240 439/678/242 -f 406/680/244 434/829/268 396/681/245 -f 356/652/229 370/663/229 372/683/229 -f 357/653/229 372/683/229 362/665/229 -f 374/684/229 373/687/229 358/685/229 -f 373/687/229 375/830/229 360/682/229 -f 418/688/234 454/773/234 433/689/247 -f 406/680/229 360/682/229 375/830/229 -f 375/830/229 376/691/229 406/680/229 -f 366/672/229 374/684/229 359/686/229 -f 400/645/229 355/647/229 368/828/229 -f 368/828/229 369/693/229 400/645/229 -f 392/695/249 438/831/263 404/664/250 -f 412/696/234 446/771/234 449/697/234 -f 415/699/234 450/772/234 453/700/234 -f 456/702/240 452/759/240 425/703/240 -f 387/705/251 435/832/267 398/706/252 -f 451/707/240 448/833/240 428/660/240 -f 427/650/240 447/760/240 443/708/240 -f 436/709/229 433/796/229 454/710/229 -f 444/712/229 441/795/229 437/713/229 -f 434/717/229 435/793/229 389/834/229 -f 435/793/229 387/835/229 388/836/229 -f 389/834/229 435/793/229 388/836/229 -f 389/834/229 395/837/229 434/717/229 -f 395/837/229 394/715/229 434/717/229 -f 447/718/229 445/765/229 442/719/229 -f 385/722/229 390/838/229 440/762/229 -f 390/838/229 391/839/229 440/762/229 -f 440/762/229 438/723/229 385/722/229 -f 438/723/229 392/840/229 393/841/229 -f 393/841/229 386/721/229 438/723/229 -f 451/724/229 449/794/229 446/725/229 -f 456/727/229 453/797/229 450/728/229 -f 410/655/229 411/751/229 379/730/229 -f 379/730/229 371/842/229 403/656/229 -f 371/842/229 405/747/229 403/656/229 -f 349/658/237 386/825/273 393/651/230 -f 388/731/254 387/705/251 351/669/253 -f 413/733/229 414/752/229 380/734/229 -f 380/734/229 379/730/229 409/732/229 -f 379/730/229 411/751/229 409/732/229 -f 394/735/256 395/742/262 359/686/257 -f 353/673/259 389/843/274 388/731/254 -f 416/698/229 417/753/229 381/737/229 -f 381/737/229 380/734/229 416/698/229 -f 380/734/229 414/752/229 412/696/229 -f 360/682/246 396/681/245 394/735/256 -f 390/736/260 385/657/236 350/659/238 -f 419/701/229 420/754/229 377/738/229 -f 377/738/229 381/737/229 419/701/229 -f 381/737/229 417/753/229 415/699/229 -f 407/690/229 408/750/229 376/844/229 -f 376/844/229 377/738/229 407/690/229 -f 377/738/229 420/754/229 418/688/229 -f 355/647/228 391/646/227 390/736/260 -f 422/667/229 423/755/229 382/739/229 -f 382/739/229 364/845/229 397/668/229 -f 364/845/229 399/743/229 397/668/229 -f 442/740/234 445/770/234 413/733/234 -f 401/679/229 402/746/229 369/846/229 -f 369/846/229 378/741/229 401/679/229 -f 378/741/229 432/758/229 430/677/229 -f 425/703/229 426/756/229 383/661/229 -f 383/661/229 382/739/229 421/704/229 -f 382/739/229 423/755/229 421/704/229 -f 395/742/262 389/843/274 353/673/259 -f 452/759/240 451/707/240 424/662/240 -f 428/660/240 448/833/240 447/760/240 -f 403/656/235 404/748/250 438/761/263 -f 440/762/264 468/847/264 462/763/264 -f 447/718/265 459/848/265 473/764/265 -f 401/679/243 439/678/242 440/766/266 -f 444/767/240 430/677/240 431/648/240 -f 397/668/241 398/744/252 435/768/267 -f 409/732/234 410/655/234 441/769/234 -f 412/696/234 413/733/234 445/770/234 -f 416/698/234 449/697/234 450/772/234 -f 419/701/234 453/700/234 454/773/234 -f 434/774/268 406/749/244 407/690/248 -f 421/704/240 422/667/240 455/775/240 -f 398/706/229 399/849/229 364/850/229 -f 364/850/229 363/776/229 398/706/229 -f 463/777/229 466/851/229 465/778/229 -f 462/763/229 468/847/229 467/780/229 -f 469/782/229 472/852/229 471/783/229 -f 473/764/229 459/848/229 460/785/229 -f 475/787/229 457/853/229 458/788/229 -f 477/790/229 480/854/229 479/791/229 -f 476/789/269 458/788/269 452/729/269 -f 470/784/270 471/783/270 443/720/270 -f 464/779/271 465/778/271 435/793/271 -f 451/724/265 457/853/265 475/787/265 -f 444/712/272 472/852/272 469/782/272 -f 436/709/264 466/851/264 463/777/264 -f 478/792/270 479/791/270 455/711/270 -f 461/781/271 467/780/271 439/714/271 -f 474/786/269 460/785/269 448/726/269 -f 456/727/272 480/854/272 477/790/272 -f 382/798/208 383/643/208 251/644/208 +f 217/431/159 218/432/160 219/433/161 +f 220/434/162 221/435/162 222/436/162 +f 223/437/163 224/438/164 225/439/165 +f 226/440/166 227/441/167 228/442/168 +f 229/443/169 230/444/170 231/445/171 +f 232/446/162 220/434/162 233/447/162 +f 234/448/162 235/449/162 236/450/162 +f 231/445/162 237/451/162 229/443/162 +f 238/452/172 239/453/173 240/454/174 +f 241/455/162 242/456/162 243/457/162 +f 244/458/162 245/459/162 242/456/162 +f 246/460/162 247/461/162 231/445/162 +f 248/462/162 249/463/162 246/460/162 +f 250/464/172 251/465/175 252/466/172 +f 253/467/176 254/468/177 255/469/178 +f 225/439/162 235/449/162 223/437/162 +f 225/439/162 237/451/162 256/470/162 +f 257/471/162 258/472/162 259/473/162 +f 260/474/162 261/475/162 257/471/162 +f 262/476/166 263/477/179 264/478/166 +f 253/467/162 265/479/162 266/480/162 +f 259/473/162 245/459/162 267/481/162 +f 217/431/162 268/482/162 269/483/162 +f 234/448/180 270/484/181 223/437/163 +f 271/485/166 272/486/166 273/487/166 +f 274/488/166 275/489/166 276/490/166 +f 277/491/172 278/492/172 279/493/172 +f 280/494/182 281/495/183 241/455/184 +f 233/447/172 282/496/172 283/497/172 +f 284/498/172 285/499/172 286/500/172 +f 264/501/162 239/502/162 287/503/162 +f 227/504/162 252/505/162 251/506/162 +f 288/507/162 289/508/162 290/509/162 +f 291/510/162 286/511/162 285/512/162 +f 292/513/162 219/514/162 230/515/162 +f 273/516/162 282/517/162 293/518/162 +f 276/519/162 278/520/162 294/521/162 +f 295/522/162 228/442/162 236/523/162 +f 229/443/169 224/438/164 296/524/185 +f 241/455/184 289/525/186 244/458/187 +f 297/526/162 298/527/162 295/522/162 +f 259/473/188 299/528/189 257/471/190 +f 267/481/191 289/525/186 288/529/192 +f 297/526/162 300/530/162 301/531/162 +f 260/474/193 299/528/189 254/468/177 +f 231/445/171 302/532/194 246/460/195 +f 300/530/162 303/533/162 304/534/162 +f 303/533/162 265/535/162 305/536/162 +f 248/462/196 302/532/194 218/432/160 +f 306/537/162 240/454/162 307/538/162 +f 308/539/166 291/540/166 298/527/166 +f 221/435/162 268/541/162 309/542/162 +f 232/446/162 279/493/162 306/537/162 +f 267/481/191 310/543/197 259/473/188 +f 240/454/162 280/544/162 311/545/162 +f 217/546/162 309/542/162 312/547/162 +f 228/442/162 234/548/162 313/549/162 +f 253/550/162 305/536/162 314/551/162 +f 298/527/162 226/440/162 315/552/162 +f 271/485/162 308/539/162 316/553/162 +f 274/488/162 301/531/162 317/554/162 +f 262/476/162 304/534/162 318/555/162 +f 279/493/162 238/452/162 319/556/162 +f 283/497/162 277/491/162 320/557/162 +f 284/498/162 233/447/162 321/558/162 +f 250/464/162 222/436/162 322/559/162 +f 294/560/172 283/497/172 282/496/172 +f 286/500/172 233/447/172 284/498/172 +f 228/442/198 292/561/199 234/548/180 +f 219/514/200 323/562/200 324/563/200 +f 286/511/201 325/564/201 326/565/201 +f 219/566/161 309/542/202 217/546/159 +f 222/436/172 252/466/172 285/499/172 +f 240/454/203 290/567/204 280/544/182 +f 298/527/166 327/568/166 226/440/166 +f 271/485/166 328/569/166 308/539/166 +f 276/490/166 301/531/166 274/488/166 +f 264/478/166 304/534/166 262/476/166 +f 305/536/205 255/570/178 263/477/179 +f 279/493/172 287/571/172 238/452/172 +f 280/494/162 243/457/162 307/572/162 +f 329/573/162 330/574/162 331/575/162 +f 332/576/162 323/562/162 333/577/162 +f 334/578/162 335/579/162 336/580/162 +f 337/581/162 325/564/162 338/582/162 +f 339/583/162 340/584/162 341/585/162 +f 342/586/162 343/587/162 344/588/162 +f 294/521/206 341/585/206 276/519/206 +f 285/512/207 336/580/207 291/510/207 +f 290/509/208 331/575/208 255/589/208 +f 282/517/201 340/584/201 345/590/201 +f 252/505/209 335/579/209 346/591/209 +f 239/502/200 330/574/200 347/592/200 +f 287/503/207 344/588/207 264/501/207 +f 251/506/210 333/577/210 227/504/210 +f 293/518/206 338/582/206 273/516/206 +f 278/520/209 343/587/209 348/593/209 +f 349/594/211 221/595/211 220/596/211 +f 350/597/212 297/598/212 295/599/212 +f 351/600/212 300/601/212 297/598/212 +f 352/602/212 303/603/212 300/601/212 +f 353/604/213 256/605/214 237/606/213 +f 354/607/214 235/608/215 256/605/214 +f 355/609/216 295/599/212 236/610/216 +f 356/611/215 236/612/216 235/608/215 +f 357/613/212 265/614/217 303/603/212 +f 358/615/217 266/616/218 265/617/217 +f 359/618/218 261/619/219 266/616/218 +f 360/620/219 258/621/220 261/619/219 +f 361/622/220 245/623/221 258/621/220 +f 362/624/221 242/625/222 245/623/221 +f 363/626/222 243/627/223 242/625/222 +f 364/628/224 306/629/211 307/630/224 +f 365/631/223 307/632/224 243/627/223 +f 366/633/211 268/634/225 221/595/211 +f 367/635/225 269/636/226 268/637/225 +f 368/638/226 249/639/227 269/636/226 +f 369/640/227 247/641/228 249/639/227 +f 370/642/228 237/606/213 247/641/228 +f 371/643/211 220/596/211 232/644/211 +f 372/645/229 373/646/230 374/647/231 +f 375/648/232 349/649/232 376/650/232 +f 377/651/233 378/652/234 379/653/235 +f 380/654/236 381/655/237 382/656/238 +f 383/657/239 384/658/240 385/659/241 +f 386/660/232 371/661/232 387/662/232 +f 356/663/232 378/652/232 388/664/232 +f 353/665/232 385/659/232 384/658/232 +f 389/666/242 390/667/243 391/668/244 +f 392/669/232 363/670/232 393/671/232 +f 393/671/232 362/672/232 394/673/232 +f 370/674/232 395/675/232 385/659/232 +f 369/676/232 374/647/232 395/675/232 +f 396/677/243 397/678/245 398/679/246 +f 399/680/247 400/681/248 401/682/249 +f 378/652/232 354/683/232 379/653/232 +f 379/653/232 353/665/232 384/658/232 +f 361/684/232 402/685/232 403/686/232 +f 360/687/232 401/682/232 402/685/232 +f 404/688/237 405/689/250 406/690/251 +f 358/691/232 407/692/232 399/680/232 +f 362/672/232 403/686/232 394/673/232 +f 367/693/232 408/694/232 372/645/232 +f 409/695/252 388/664/253 378/652/234 +f 410/696/237 411/697/237 412/698/237 +f 413/699/237 414/700/237 415/701/237 +f 416/702/243 417/703/243 418/704/243 +f 419/705/254 420/706/255 392/669/256 +f 421/707/243 386/660/243 387/662/243 +f 376/650/243 422/708/243 375/648/243 +f 389/709/232 423/710/232 424/711/232 +f 425/712/232 380/713/232 397/714/232 +f 426/715/232 400/716/232 427/717/232 +f 428/718/232 429/719/232 422/720/232 +f 430/721/232 383/722/232 431/723/232 +f 421/724/232 432/725/232 433/726/232 +f 416/727/232 434/728/232 435/729/232 +f 382/656/232 381/655/232 350/730/232 +f 384/658/240 377/651/233 379/653/235 +f 436/731/257 392/669/256 393/671/258 +f 437/732/232 438/733/232 351/734/232 +f 426/735/259 403/686/260 402/685/261 +f 394/673/262 436/731/257 393/671/258 +f 412/698/232 351/734/232 410/696/232 +f 401/682/249 426/735/259 402/685/261 +f 439/736/263 385/659/241 395/675/264 +f 415/701/232 352/737/232 413/699/232 +f 406/690/232 357/738/232 404/688/232 +f 374/647/231 439/736/263 395/675/264 +f 391/668/232 390/667/232 440/739/232 +f 429/740/237 438/733/237 437/732/237 +f 398/679/232 366/741/232 396/677/232 +f 418/704/232 417/703/232 371/661/232 +f 441/742/265 394/673/262 403/686/260 +f 391/668/232 442/743/232 420/744/232 +f 372/745/232 408/746/232 398/679/232 +f 382/656/232 443/747/232 388/748/232 +f 399/749/232 407/750/232 406/690/232 +f 437/732/232 444/751/232 381/655/232 +f 410/696/232 445/752/232 438/733/232 +f 413/699/232 446/753/232 412/698/232 +f 404/688/232 447/754/232 415/701/232 +f 418/704/232 448/755/232 390/667/232 +f 387/662/232 449/756/232 417/703/232 +f 376/650/232 450/757/232 386/660/232 +f 396/677/232 451/758/232 375/648/232 +f 435/759/243 387/662/243 417/703/243 +f 386/660/243 428/760/243 376/650/243 +f 382/656/266 431/761/267 380/654/236 +f 452/762/268 453/763/268 431/723/268 +f 428/718/269 454/764/269 455/765/269 +f 398/679/270 452/766/271 372/745/229 +f 425/767/243 375/648/243 422/708/243 +f 391/668/272 456/768/273 389/666/242 +f 437/732/237 457/769/237 429/740/237 +f 410/696/237 455/770/237 432/771/237 +f 412/698/237 434/772/237 413/699/237 +f 415/701/237 423/773/237 404/688/237 +f 427/774/274 406/690/251 405/689/250 +f 418/704/243 424/775/243 416/702/243 +f 365/776/232 392/669/232 420/706/232 +f 458/777/232 459/778/232 460/779/232 +f 453/763/232 461/780/232 462/781/232 +f 463/782/232 464/783/232 465/784/232 +f 454/764/232 466/785/232 467/786/232 +f 468/787/232 469/788/232 470/789/232 +f 471/790/232 472/791/232 473/792/232 +f 470/789/275 435/729/275 434/728/275 +f 465/784/276 422/720/276 429/719/276 +f 460/779/277 456/793/277 427/717/277 +f 421/724/269 468/787/269 411/794/269 +f 425/712/278 463/782/278 457/795/278 +f 389/709/268 458/777/268 405/796/268 +f 473/792/276 424/711/276 423/710/276 +f 462/781/279 397/714/279 380/713/279 +f 467/786/275 433/726/275 432/725/275 +f 416/727/278 471/790/278 414/797/278 +f 440/798/211 232/644/211 306/629/211 +f 217/431/159 248/462/196 218/432/160 +f 221/435/162 322/559/162 222/436/162 +f 222/436/162 284/498/162 220/434/162 +f 284/498/162 321/558/162 220/434/162 +f 223/437/163 270/484/181 224/438/164 +f 226/440/166 327/568/166 227/441/167 +f 229/443/169 296/524/185 230/444/170 +f 220/434/162 321/558/162 233/447/162 +f 233/447/162 283/497/162 232/446/162 +f 283/497/162 320/557/162 232/446/162 +f 236/450/162 313/799/162 234/448/162 +f 234/448/162 223/437/162 235/449/162 +f 231/445/162 247/461/162 237/451/162 +f 238/452/172 287/571/172 239/453/173 +f 241/455/162 244/458/162 242/456/162 +f 244/458/162 267/481/162 245/459/162 +f 246/460/162 249/463/162 247/461/162 +f 248/462/162 269/483/162 249/463/162 +f 250/464/172 309/542/280 251/465/175 +f 253/467/176 260/474/193 254/468/177 +f 225/439/162 256/470/162 235/449/162 +f 225/439/162 229/443/162 237/451/162 +f 257/471/162 261/475/162 258/472/162 +f 260/474/162 266/480/162 261/475/162 +f 262/476/166 305/536/205 263/477/179 +f 266/480/162 260/474/162 253/467/162 +f 253/467/162 314/800/162 265/479/162 +f 259/473/162 258/472/162 245/459/162 +f 269/483/162 248/462/162 217/431/162 +f 217/431/162 312/801/162 268/482/162 +f 234/448/180 292/802/199 270/484/181 +f 271/485/166 301/531/166 272/486/166 +f 274/488/166 304/534/166 275/489/166 +f 277/491/172 294/560/172 278/492/172 +f 280/494/182 290/803/204 281/495/183 +f 233/447/172 293/804/172 282/496/172 +f 284/498/172 222/436/172 285/499/172 +f 264/501/162 263/805/162 239/502/162 +f 227/504/162 327/806/162 252/505/162 +f 281/807/162 290/509/162 289/508/162 +f 290/509/162 255/589/162 288/507/162 +f 255/589/162 254/808/162 299/809/162 +f 299/809/162 310/810/162 255/589/162 +f 310/810/162 288/507/162 255/589/162 +f 291/510/162 328/811/162 286/511/162 +f 218/812/162 302/813/162 219/514/162 +f 302/813/162 230/515/162 219/514/162 +f 230/515/162 296/814/162 292/513/162 +f 296/814/162 224/815/162 292/513/162 +f 224/815/162 270/816/162 292/513/162 +f 273/516/162 272/817/162 282/517/162 +f 276/519/162 275/818/162 278/520/162 +f 295/522/162 315/552/162 226/440/162 +f 226/440/162 228/442/162 295/522/162 +f 228/442/162 313/549/162 236/523/162 +f 229/443/169 225/439/165 224/438/164 +f 241/455/184 281/495/183 289/525/186 +f 297/526/162 316/553/162 308/539/162 +f 308/539/162 298/527/162 297/526/162 +f 298/527/162 315/552/162 295/522/162 +f 259/473/188 310/543/197 299/528/189 +f 267/481/191 244/458/187 289/525/186 +f 300/530/162 317/554/162 301/531/162 +f 301/531/162 271/485/162 297/526/162 +f 271/485/162 316/553/162 297/526/162 +f 260/474/193 257/471/190 299/528/189 +f 231/445/171 230/444/170 302/532/194 +f 303/533/162 318/555/162 304/534/162 +f 304/534/162 274/488/162 300/530/162 +f 274/488/162 317/554/162 300/530/162 +f 265/535/162 314/551/162 305/536/162 +f 305/536/162 262/476/162 303/533/162 +f 262/476/162 318/555/162 303/533/162 +f 248/462/196 246/460/195 302/532/194 +f 306/537/162 319/556/162 238/452/162 +f 238/452/162 240/454/162 306/537/162 +f 240/454/162 311/545/162 307/538/162 +f 308/539/166 328/569/166 291/540/166 +f 268/541/162 312/547/162 309/542/162 +f 309/542/162 250/464/162 221/435/162 +f 250/464/162 322/559/162 221/435/162 +f 232/446/162 320/557/162 277/491/162 +f 277/491/162 279/493/162 232/446/162 +f 279/493/162 319/556/162 306/537/162 +f 267/481/191 288/529/192 310/543/197 +f 294/560/172 277/491/172 283/497/172 +f 286/500/172 293/804/172 233/447/172 +f 228/442/168 227/441/167 292/561/199 +f 219/514/200 292/513/200 323/562/200 +f 286/511/201 328/811/201 325/564/201 +f 219/566/161 251/465/175 309/542/202 +f 222/436/172 250/464/172 252/466/172 +f 240/454/174 239/453/173 290/567/204 +f 298/527/166 291/540/166 327/568/166 +f 271/485/166 273/487/166 328/569/166 +f 276/490/166 272/486/166 301/531/166 +f 264/478/166 275/489/166 304/534/166 +f 305/536/205 253/550/176 255/570/178 +f 279/493/172 278/492/172 287/571/172 +f 307/572/162 311/819/162 280/494/162 +f 280/494/162 241/455/162 243/457/162 +f 329/573/162 347/592/162 330/574/162 +f 332/576/162 324/563/162 323/562/162 +f 334/578/162 346/591/162 335/579/162 +f 337/581/162 326/565/162 325/564/162 +f 339/583/162 345/590/162 340/584/162 +f 342/586/162 348/593/162 343/587/162 +f 294/521/206 339/583/206 341/585/206 +f 285/512/207 334/578/207 336/580/207 +f 290/509/208 329/573/208 331/575/208 +f 282/517/201 272/817/201 340/584/201 +f 252/505/209 327/806/209 335/579/209 +f 239/502/200 263/805/200 330/574/200 +f 287/503/207 342/586/207 344/588/207 +f 251/506/210 332/576/210 333/577/210 +f 293/518/206 337/581/206 338/582/206 +f 278/520/209 275/818/209 343/587/209 +f 349/594/211 366/633/211 221/595/211 +f 350/597/212 351/600/212 297/598/212 +f 351/600/212 352/602/212 300/601/212 +f 352/602/212 357/613/212 303/603/212 +f 353/604/213 354/607/214 256/605/214 +f 354/607/214 356/611/215 235/608/215 +f 355/609/216 350/597/212 295/599/212 +f 356/611/215 355/820/216 236/612/216 +f 357/613/212 358/821/217 265/614/217 +f 358/615/217 359/618/218 266/616/218 +f 359/618/218 360/620/219 261/619/219 +f 360/620/219 361/622/220 258/621/220 +f 361/622/220 362/624/221 245/623/221 +f 362/624/221 363/626/222 242/625/222 +f 363/626/222 365/631/223 243/627/223 +f 364/628/224 440/798/211 306/629/211 +f 365/631/223 364/822/224 307/632/224 +f 366/633/211 367/823/225 268/634/225 +f 367/635/225 368/638/226 269/636/226 +f 368/638/226 369/640/227 249/639/227 +f 369/640/227 370/642/228 247/641/228 +f 370/642/228 353/604/213 237/606/213 +f 371/643/211 349/594/211 220/596/211 +f 372/645/229 452/824/271 373/646/230 +f 375/648/232 451/758/232 366/741/232 +f 366/741/232 349/649/232 375/648/232 +f 349/649/232 450/757/232 376/650/232 +f 377/651/233 409/695/252 378/652/234 +f 380/654/236 457/769/237 381/655/237 +f 383/657/239 430/825/281 384/658/240 +f 386/660/232 450/757/232 349/649/232 +f 349/649/232 371/661/232 386/660/232 +f 371/661/232 449/756/232 387/662/232 +f 388/664/232 443/826/232 355/827/232 +f 355/827/232 356/663/232 388/664/232 +f 353/665/232 370/674/232 385/659/232 +f 389/666/242 424/775/243 390/667/243 +f 392/669/232 365/776/232 363/670/232 +f 393/671/232 363/670/232 362/672/232 +f 370/674/232 369/676/232 395/675/232 +f 369/676/232 368/828/232 374/647/232 +f 396/677/243 425/767/243 397/678/245 +f 399/680/247 427/829/274 400/681/248 +f 378/652/232 356/663/232 354/683/232 +f 379/653/232 354/683/232 353/665/232 +f 361/684/232 360/687/232 402/685/232 +f 360/687/232 359/830/232 401/682/232 +f 404/688/237 423/773/237 405/689/250 +f 399/680/232 401/682/232 359/830/232 +f 359/830/232 358/691/232 399/680/232 +f 362/672/232 361/684/232 403/686/232 +f 372/645/232 374/647/232 368/828/232 +f 368/828/232 367/693/232 372/645/232 +f 409/695/252 431/831/267 388/664/253 +f 410/696/237 432/771/237 411/697/237 +f 413/699/237 434/772/237 414/700/237 +f 416/702/243 435/759/243 417/703/243 +f 419/705/254 456/832/273 420/706/255 +f 421/707/243 433/833/243 386/660/243 +f 376/650/243 428/760/243 422/708/243 +f 389/709/232 405/796/232 423/710/232 +f 425/712/232 457/795/232 380/713/232 +f 427/717/232 456/793/232 474/834/232 +f 456/793/232 419/835/232 436/836/232 +f 474/834/232 456/793/232 436/836/232 +f 474/834/232 441/837/232 427/717/232 +f 441/837/232 426/715/232 427/717/232 +f 428/718/232 455/765/232 429/719/232 +f 383/722/232 439/838/232 452/762/232 +f 439/838/232 373/839/232 452/762/232 +f 452/762/232 431/723/232 383/722/232 +f 431/723/232 409/840/232 377/841/232 +f 377/841/232 430/721/232 431/723/232 +f 421/724/232 411/794/232 432/725/232 +f 416/727/232 414/797/232 434/728/232 +f 381/655/232 444/751/232 350/730/232 +f 350/730/232 355/842/232 382/656/232 +f 355/842/232 443/747/232 382/656/232 +f 384/658/240 430/825/281 377/651/233 +f 436/731/257 419/705/254 392/669/256 +f 438/733/232 445/752/232 351/734/232 +f 351/734/232 350/730/232 437/732/232 +f 350/730/232 444/751/232 437/732/232 +f 426/735/259 441/742/265 403/686/260 +f 394/673/262 474/843/282 436/731/257 +f 412/698/232 446/753/232 352/737/232 +f 352/737/232 351/734/232 412/698/232 +f 351/734/232 445/752/232 410/696/232 +f 401/682/249 400/681/248 426/735/259 +f 439/736/263 383/657/239 385/659/241 +f 415/701/232 447/754/232 357/738/232 +f 357/738/232 352/737/232 415/701/232 +f 352/737/232 446/753/232 413/699/232 +f 406/690/232 407/750/232 358/844/232 +f 358/844/232 357/738/232 406/690/232 +f 357/738/232 447/754/232 404/688/232 +f 374/647/231 373/646/230 439/736/263 +f 390/667/232 448/755/232 440/739/232 +f 440/739/232 364/845/232 391/668/232 +f 364/845/232 442/743/232 391/668/232 +f 429/740/237 455/770/237 438/733/237 +f 398/679/232 408/746/232 367/846/232 +f 367/846/232 366/741/232 398/679/232 +f 366/741/232 451/758/232 396/677/232 +f 417/703/232 449/756/232 371/661/232 +f 371/661/232 440/739/232 418/704/232 +f 440/739/232 448/755/232 418/704/232 +f 441/742/265 474/843/282 394/673/262 +f 435/759/243 421/707/243 387/662/243 +f 386/660/243 433/833/243 428/760/243 +f 382/656/266 388/748/253 431/761/267 +f 452/762/268 475/847/268 453/763/268 +f 428/718/269 476/848/269 454/764/269 +f 398/679/246 397/678/245 452/766/271 +f 425/767/243 396/677/243 375/648/243 +f 391/668/272 420/744/255 456/768/273 +f 437/732/237 381/655/237 457/769/237 +f 410/696/237 438/733/237 455/770/237 +f 412/698/237 411/697/237 434/772/237 +f 415/701/237 414/700/237 423/773/237 +f 427/774/274 399/749/247 406/690/251 +f 418/704/243 390/667/243 424/775/243 +f 420/706/232 442/849/232 364/850/232 +f 364/850/232 365/776/232 420/706/232 +f 458/777/232 477/851/232 459/778/232 +f 453/763/232 475/847/232 461/780/232 +f 463/782/232 478/852/232 464/783/232 +f 454/764/232 476/848/232 466/785/232 +f 468/787/232 479/853/232 469/788/232 +f 471/790/232 480/854/232 472/791/232 +f 470/789/275 469/788/275 435/729/275 +f 465/784/276 464/783/276 422/720/276 +f 460/779/277 459/778/277 456/793/277 +f 421/724/269 479/853/269 468/787/269 +f 425/712/278 478/852/278 463/782/278 +f 389/709/268 477/851/268 458/777/268 +f 473/792/276 472/791/276 424/711/276 +f 462/781/279 461/780/279 397/714/279 +f 467/786/275 466/785/275 433/726/275 +f 416/727/278 480/854/278 471/790/278 +f 440/798/211 371/643/211 232/644/211 diff --git a/src/main/resources/assets/hbm/models/item/block_coal_infernal.json b/src/main/resources/assets/hbm/models/item/block_coal_infernal.json new file mode 100644 index 0000000000..95e89b7579 --- /dev/null +++ b/src/main/resources/assets/hbm/models/item/block_coal_infernal.json @@ -0,0 +1,3 @@ +{ + "parent": "hbm:block/block_coal_infernal" +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/item/block_coke.json b/src/main/resources/assets/hbm/models/item/block_coke.json new file mode 100644 index 0000000000..0e06c878e6 --- /dev/null +++ b/src/main/resources/assets/hbm/models/item/block_coke.json @@ -0,0 +1,3 @@ +{ + "parent": "hbm:block/block_coke" +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/item/block_lignite.json b/src/main/resources/assets/hbm/models/item/block_lignite.json new file mode 100644 index 0000000000..b0b2c62892 --- /dev/null +++ b/src/main/resources/assets/hbm/models/item/block_lignite.json @@ -0,0 +1,3 @@ +{ + "parent": "hbm:block/block_lignite" +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/item/block_radspice.json b/src/main/resources/assets/hbm/models/item/block_radspice.json new file mode 100644 index 0000000000..f0daf4db0e --- /dev/null +++ b/src/main/resources/assets/hbm/models/item/block_radspice.json @@ -0,0 +1,3 @@ +{ + "parent": "hbm:block/block_radspice" +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/item/block_solid_fuel.json b/src/main/resources/assets/hbm/models/item/block_solid_fuel.json new file mode 100644 index 0000000000..b04282591a --- /dev/null +++ b/src/main/resources/assets/hbm/models/item/block_solid_fuel.json @@ -0,0 +1,3 @@ +{ + "parent": "hbm:block/block_solid_fuel" +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/item/block_solid_fuel_presto.json b/src/main/resources/assets/hbm/models/item/block_solid_fuel_presto.json new file mode 100644 index 0000000000..fe2db8d59f --- /dev/null +++ b/src/main/resources/assets/hbm/models/item/block_solid_fuel_presto.json @@ -0,0 +1,3 @@ +{ + "parent": "hbm:block/block_solid_fuel_presto" +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/item/block_solid_fuel_presto_triplet.json b/src/main/resources/assets/hbm/models/item/block_solid_fuel_presto_triplet.json new file mode 100644 index 0000000000..849ae89317 --- /dev/null +++ b/src/main/resources/assets/hbm/models/item/block_solid_fuel_presto_triplet.json @@ -0,0 +1,3 @@ +{ + "parent": "hbm:block/block_solid_fuel_presto_triplet" +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/item/cluster_copper.json b/src/main/resources/assets/hbm/models/item/cluster_copper.json new file mode 100644 index 0000000000..85e9a11ed1 --- /dev/null +++ b/src/main/resources/assets/hbm/models/item/cluster_copper.json @@ -0,0 +1,3 @@ +{ + "parent": "hbm:block/cluster_copper" +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/item/custom_euph.json b/src/main/resources/assets/hbm/models/item/custom_euph.json new file mode 100644 index 0000000000..e1deb12d5b --- /dev/null +++ b/src/main/resources/assets/hbm/models/item/custom_euph.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "hbm:items/custom_euph" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/item/custom_sol.json b/src/main/resources/assets/hbm/models/item/custom_sol.json new file mode 100644 index 0000000000..a0114e9cd3 --- /dev/null +++ b/src/main/resources/assets/hbm/models/item/custom_sol.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "hbm:items/custom_sol" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/item/insert_ferrouranium.json b/src/main/resources/assets/hbm/models/item/insert_ferrouranium.json new file mode 100644 index 0000000000..7ebf4246cd --- /dev/null +++ b/src/main/resources/assets/hbm/models/item/insert_ferrouranium.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "hbm:items/insert_ferrouranium" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/item/sliding_gate_door.json b/src/main/resources/assets/hbm/models/item/sliding_gate_door.json new file mode 100644 index 0000000000..42a58869e0 --- /dev/null +++ b/src/main/resources/assets/hbm/models/item/sliding_gate_door.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "hbm:block/block_steel" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/sounds/tool/patricia-audio2.mp3 b/src/main/resources/assets/hbm/sounds/tool/patricia-audio2.mp3 new file mode 100644 index 0000000000..3c8ba81fbf Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/tool/patricia-audio2.mp3 differ diff --git a/src/main/resources/assets/hbm/textures/blocks/block_coal_infernal.png b/src/main/resources/assets/hbm/textures/blocks/block_coal_infernal.png new file mode 100644 index 0000000000..c3d41377cf Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/block_coal_infernal.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/block_coke.png b/src/main/resources/assets/hbm/textures/blocks/block_coke.png new file mode 100644 index 0000000000..ef3ebf6a7d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/block_coke.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/block_lignite.png b/src/main/resources/assets/hbm/textures/blocks/block_lignite.png new file mode 100644 index 0000000000..6adf56b6f0 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/block_lignite.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/block_polymer.png b/src/main/resources/assets/hbm/textures/blocks/block_polymer.png index 6fac6298c1..d592a54f6f 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/block_polymer.png and b/src/main/resources/assets/hbm/textures/blocks/block_polymer.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/block_polymer_ctm.png b/src/main/resources/assets/hbm/textures/blocks/block_polymer_ctm.png index 34979cc6b4..2e2f71455c 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/block_polymer_ctm.png and b/src/main/resources/assets/hbm/textures/blocks/block_polymer_ctm.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/block_radspice.png b/src/main/resources/assets/hbm/textures/blocks/block_radspice.png new file mode 100644 index 0000000000..cd8133fa69 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/block_radspice.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/block_radspice.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/block_radspice.png.mcmeta new file mode 100644 index 0000000000..47ccc3e198 --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/block_radspice.png.mcmeta @@ -0,0 +1,9 @@ +{ + "ctm": { + "ctm_version": 1, + "type": "CTM", + "textures": [ + "hbm:blocks/block_radspice_ctm" + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/textures/blocks/block_radspice_ctm.png b/src/main/resources/assets/hbm/textures/blocks/block_radspice_ctm.png new file mode 100644 index 0000000000..b839b66392 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/block_radspice_ctm.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/block_schrabidium_fuel.png b/src/main/resources/assets/hbm/textures/blocks/block_schrabidium_fuel.png index 91c9d9f4ff..54a06b888f 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/block_schrabidium_fuel.png and b/src/main/resources/assets/hbm/textures/blocks/block_schrabidium_fuel.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/block_solid_fuel.png b/src/main/resources/assets/hbm/textures/blocks/block_solid_fuel.png new file mode 100644 index 0000000000..be2934c215 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/block_solid_fuel.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/block_solid_fuel.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/block_solid_fuel.png.mcmeta new file mode 100644 index 0000000000..4c765cb28a --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/block_solid_fuel.png.mcmeta @@ -0,0 +1,9 @@ +{ + "ctm": { + "ctm_version": 1, + "type": "CTM", + "textures": [ + "hbm:blocks/block_solid_fuel_ctm" + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/textures/blocks/block_solid_fuel_ctm.png b/src/main/resources/assets/hbm/textures/blocks/block_solid_fuel_ctm.png new file mode 100644 index 0000000000..115b462bb4 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/block_solid_fuel_ctm.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/block_solid_fuel_presto.png b/src/main/resources/assets/hbm/textures/blocks/block_solid_fuel_presto.png new file mode 100644 index 0000000000..a23c51c693 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/block_solid_fuel_presto.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/block_solid_fuel_presto_side.png b/src/main/resources/assets/hbm/textures/blocks/block_solid_fuel_presto_side.png new file mode 100644 index 0000000000..65eaaa039d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/block_solid_fuel_presto_side.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/block_solid_fuel_presto_triplet_side.png b/src/main/resources/assets/hbm/textures/blocks/block_solid_fuel_presto_triplet_side.png new file mode 100644 index 0000000000..7dcea860db Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/block_solid_fuel_presto_triplet_side.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/cluster_copper.png b/src/main/resources/assets/hbm/textures/blocks/cluster_copper.png new file mode 100644 index 0000000000..f42ad98e6a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/cluster_copper.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/concrete_smooth.png b/src/main/resources/assets/hbm/textures/blocks/concrete_smooth.png deleted file mode 100644 index f59faff0fc..0000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/concrete_smooth.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/emerald_ore.png b/src/main/resources/assets/hbm/textures/blocks/emerald_ore.png deleted file mode 100644 index a26c35f6a0..0000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/emerald_ore.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/factory_advanced_conductor.png b/src/main/resources/assets/hbm/textures/blocks/factory_advanced_conductor.png index c8107d0bdf..dd7cc22419 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/factory_advanced_conductor.png and b/src/main/resources/assets/hbm/textures/blocks/factory_advanced_conductor.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/factory_advanced_core.png b/src/main/resources/assets/hbm/textures/blocks/factory_advanced_core.png index 3f08426b68..616be49b7c 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/factory_advanced_core.png and b/src/main/resources/assets/hbm/textures/blocks/factory_advanced_core.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/factory_advanced_furnace.png b/src/main/resources/assets/hbm/textures/blocks/factory_advanced_furnace.png index 32e5140d61..ee2dd06053 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/factory_advanced_furnace.png and b/src/main/resources/assets/hbm/textures/blocks/factory_advanced_furnace.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/factory_advanced_hull.png b/src/main/resources/assets/hbm/textures/blocks/factory_advanced_hull.png index 85af5d0d6f..e0558ef7d1 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/factory_advanced_hull.png and b/src/main/resources/assets/hbm/textures/blocks/factory_advanced_hull.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/factory_advanced_hull.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/factory_advanced_hull.png.mcmeta new file mode 100644 index 0000000000..2869e7188c --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/factory_advanced_hull.png.mcmeta @@ -0,0 +1,9 @@ +{ + "ctm": { + "ctm_version": 1, + "type": "CTM", + "textures": [ + "hbm:blocks/factory_advanced_hull_ctm" + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/textures/blocks/factory_advanced_hull_ctm.png b/src/main/resources/assets/hbm/textures/blocks/factory_advanced_hull_ctm.png new file mode 100644 index 0000000000..01f5a9e4b7 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/factory_advanced_hull_ctm.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/fatman.png b/src/main/resources/assets/hbm/textures/blocks/fatman.png deleted file mode 100644 index 4a336ec546..0000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/fatman.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/forgefluid/acid_flowing.png b/src/main/resources/assets/hbm/textures/blocks/forgefluid/acid_flowing.png index 8facc201a6..79d5006885 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/forgefluid/acid_flowing.png and b/src/main/resources/assets/hbm/textures/blocks/forgefluid/acid_flowing.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/forgefluid/acid_still.png b/src/main/resources/assets/hbm/textures/blocks/forgefluid/acid_still.png index 8facc201a6..79d5006885 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/forgefluid/acid_still.png and b/src/main/resources/assets/hbm/textures/blocks/forgefluid/acid_still.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/ladder_red.png b/src/main/resources/assets/hbm/textures/blocks/ladder_red.png index 067caab18a..7a2a9f7f7d 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/ladder_red.png and b/src/main/resources/assets/hbm/textures/blocks/ladder_red.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_drill.png b/src/main/resources/assets/hbm/textures/blocks/machine_drill.png deleted file mode 100644 index 379b7371a9..0000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_drill.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_gascent.png b/src/main/resources/assets/hbm/textures/blocks/machine_gascent.png deleted file mode 100644 index 66c54fea50..0000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_gascent.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_keyforge_top_alt.png b/src/main/resources/assets/hbm/textures/blocks/machine_keyforge_top_alt.png deleted file mode 100644 index 6f02e9b083..0000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_keyforge_top_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_transformer.png b/src/main/resources/assets/hbm/textures/blocks/machine_transformer.png index dea44f1329..1a9460c76b 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_transformer.png and b/src/main/resources/assets/hbm/textures/blocks/machine_transformer.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_transformer_bottom.png b/src/main/resources/assets/hbm/textures/blocks/machine_transformer_bottom.png new file mode 100644 index 0000000000..3c30afa48e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/machine_transformer_bottom.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_transformer_bottom_iron.png b/src/main/resources/assets/hbm/textures/blocks/machine_transformer_bottom_iron.png new file mode 100644 index 0000000000..6d0bad8014 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/machine_transformer_bottom_iron.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_transformer_iron.png b/src/main/resources/assets/hbm/textures/blocks/machine_transformer_iron.png index 71cae6c987..ecfdb77739 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_transformer_iron.png and b/src/main/resources/assets/hbm/textures/blocks/machine_transformer_iron.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_transformer_top.png b/src/main/resources/assets/hbm/textures/blocks/machine_transformer_top.png index 3c7cf211de..7aa59b8afc 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_transformer_top.png and b/src/main/resources/assets/hbm/textures/blocks/machine_transformer_top.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_transformer_top_iron.png b/src/main/resources/assets/hbm/textures/blocks/machine_transformer_top_iron.png index befcb12ae0..ca0db37ddb 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_transformer_top_iron.png and b/src/main/resources/assets/hbm/textures/blocks/machine_transformer_top_iron.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/ore_bedrock_block_e.png b/src/main/resources/assets/hbm/textures/blocks/ore_bedrock_block_e.png new file mode 100644 index 0000000000..8c88ed4ce3 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/ore_bedrock_block_e.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/ore_coal_oil_burning_e.png b/src/main/resources/assets/hbm/textures/blocks/ore_coal_oil_burning_e.png new file mode 100644 index 0000000000..ae190acc5f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/ore_coal_oil_burning_e.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/reinforced_brick.png b/src/main/resources/assets/hbm/textures/blocks/reinforced_brick.png index 7fa987c6b9..2106a20feb 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/reinforced_brick.png and b/src/main/resources/assets/hbm/textures/blocks/reinforced_brick.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/reinforced_light_ctm.png b/src/main/resources/assets/hbm/textures/blocks/reinforced_light_ctm.png index 610501ab00..7056a74bc0 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/reinforced_light_ctm.png and b/src/main/resources/assets/hbm/textures/blocks/reinforced_light_ctm.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/reinforced_light_ctm_e.png b/src/main/resources/assets/hbm/textures/blocks/reinforced_light_ctm_e.png index 9bc40197dc..15d1eed250 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/reinforced_light_ctm_e.png and b/src/main/resources/assets/hbm/textures/blocks/reinforced_light_ctm_e.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/watz_conductor_side.png b/src/main/resources/assets/hbm/textures/blocks/watz_conductor_side.png index a7df37615a..e315d22228 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/watz_conductor_side.png and b/src/main/resources/assets/hbm/textures/blocks/watz_conductor_side.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/watz_conductor_top.png b/src/main/resources/assets/hbm/textures/blocks/watz_conductor_top.png index 9278e278b0..c8e0d2a575 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/watz_conductor_top.png and b/src/main/resources/assets/hbm/textures/blocks/watz_conductor_top.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/watz_end.png b/src/main/resources/assets/hbm/textures/blocks/watz_end.png index 7abad325cc..05270b3f15 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/watz_end.png and b/src/main/resources/assets/hbm/textures/blocks/watz_end.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/watz_hatch.png b/src/main/resources/assets/hbm/textures/blocks/watz_hatch.png index 546958c898..17dd6646fb 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/watz_hatch.png and b/src/main/resources/assets/hbm/textures/blocks/watz_hatch.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/book/guide_meteor_sword/16.png b/src/main/resources/assets/hbm/textures/gui/book/guide_meteor_sword/16.png index 1c438090d8..bbde871e09 100644 Binary files a/src/main/resources/assets/hbm/textures/gui/book/guide_meteor_sword/16.png and b/src/main/resources/assets/hbm/textures/gui/book/guide_meteor_sword/16.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/book/guide_meteor_sword/24.png b/src/main/resources/assets/hbm/textures/gui/book/guide_meteor_sword/24.png index 563cd60f87..f73320682c 100644 Binary files a/src/main/resources/assets/hbm/textures/gui/book/guide_meteor_sword/24.png and b/src/main/resources/assets/hbm/textures/gui/book/guide_meteor_sword/24.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/factory_advanced.png b/src/main/resources/assets/hbm/textures/gui/factory_advanced.png index 0a07768a33..5f9674cc24 100644 Binary files a/src/main/resources/assets/hbm/textures/gui/factory_advanced.png and b/src/main/resources/assets/hbm/textures/gui/factory_advanced.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/factory_titanium.png b/src/main/resources/assets/hbm/textures/gui/factory_titanium.png index e8bd9a362a..6ca44c4182 100644 Binary files a/src/main/resources/assets/hbm/textures/gui/factory_titanium.png and b/src/main/resources/assets/hbm/textures/gui/factory_titanium.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/fatmanschematic.png b/src/main/resources/assets/hbm/textures/gui/fatmanschematic.png index 8eb62ae2e8..631b0cd719 100644 Binary files a/src/main/resources/assets/hbm/textures/gui/fatmanschematic.png and b/src/main/resources/assets/hbm/textures/gui/fatmanschematic.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/gunbombschematic.png b/src/main/resources/assets/hbm/textures/gui/gunbombschematic.png index 165b307637..35d2738cbc 100644 Binary files a/src/main/resources/assets/hbm/textures/gui/gunbombschematic.png and b/src/main/resources/assets/hbm/textures/gui/gunbombschematic.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_grenade_inferno.png b/src/main/resources/assets/hbm/textures/items/ammo_grenade_inferno.png deleted file mode 100644 index 54b05ecbbf..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_grenade_inferno.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/arc_electrode.png b/src/main/resources/assets/hbm/textures/items/arc_electrode.png index 5fb97ae8a7..f8538efc46 100644 Binary files a/src/main/resources/assets/hbm/textures/items/arc_electrode.png and b/src/main/resources/assets/hbm/textures/items/arc_electrode.png differ diff --git a/src/main/resources/assets/hbm/textures/items/arc_electrode_burnt.png b/src/main/resources/assets/hbm/textures/items/arc_electrode_burnt.png index 02ebfd01df..323935b60f 100644 Binary files a/src/main/resources/assets/hbm/textures/items/arc_electrode_burnt.png and b/src/main/resources/assets/hbm/textures/items/arc_electrode_burnt.png differ diff --git a/src/main/resources/assets/hbm/textures/items/arc_electrode_desh.png b/src/main/resources/assets/hbm/textures/items/arc_electrode_desh.png index 007f2a98ea..05730206bd 100644 Binary files a/src/main/resources/assets/hbm/textures/items/arc_electrode_desh.png and b/src/main/resources/assets/hbm/textures/items/arc_electrode_desh.png differ diff --git a/src/main/resources/assets/hbm/textures/items/billet_hes.png b/src/main/resources/assets/hbm/textures/items/billet_hes.png index 0f7527eeb8..ea3949029e 100644 Binary files a/src/main/resources/assets/hbm/textures/items/billet_hes.png and b/src/main/resources/assets/hbm/textures/items/billet_hes.png differ diff --git a/src/main/resources/assets/hbm/textures/items/billet_les.png b/src/main/resources/assets/hbm/textures/items/billet_les.png index 975e0cca9c..2d28bbfc5e 100644 Binary files a/src/main/resources/assets/hbm/textures/items/billet_les.png and b/src/main/resources/assets/hbm/textures/items/billet_les.png differ diff --git a/src/main/resources/assets/hbm/textures/items/billet_ra226_e.png b/src/main/resources/assets/hbm/textures/items/billet_ra226_e.png deleted file mode 100644 index b857c36e52..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/billet_ra226_e.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/billet_schrabidium_fuel.png b/src/main/resources/assets/hbm/textures/items/billet_schrabidium_fuel.png index 577fa972bc..10cb9a950b 100644 Binary files a/src/main/resources/assets/hbm/textures/items/billet_schrabidium_fuel.png and b/src/main/resources/assets/hbm/textures/items/billet_schrabidium_fuel.png differ diff --git a/src/main/resources/assets/hbm/textures/items/chem_icon_circuit_4.png b/src/main/resources/assets/hbm/textures/items/chem_icon_circuit_4.png index c250c1c415..4b8a1f3e4c 100644 Binary files a/src/main/resources/assets/hbm/textures/items/chem_icon_circuit_4.png and b/src/main/resources/assets/hbm/textures/items/chem_icon_circuit_4.png differ diff --git a/src/main/resources/assets/hbm/textures/items/chem_icon_circuit_5.png b/src/main/resources/assets/hbm/textures/items/chem_icon_circuit_5.png index 714fc12625..687ee9613a 100644 Binary files a/src/main/resources/assets/hbm/textures/items/chem_icon_circuit_5.png and b/src/main/resources/assets/hbm/textures/items/chem_icon_circuit_5.png differ diff --git a/src/main/resources/assets/hbm/textures/items/clip_rpg_alt.png b/src/main/resources/assets/hbm/textures/items/clip_rpg_alt.png deleted file mode 100644 index 6fe42d25e8..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/clip_rpg_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/custom_amat.png b/src/main/resources/assets/hbm/textures/items/custom_amat.png index b7dda8cf31..0d8abdb5d7 100644 Binary files a/src/main/resources/assets/hbm/textures/items/custom_amat.png and b/src/main/resources/assets/hbm/textures/items/custom_amat.png differ diff --git a/src/main/resources/assets/hbm/textures/items/custom_dirty.png b/src/main/resources/assets/hbm/textures/items/custom_dirty.png index 96f24eacde..00197d8a27 100644 Binary files a/src/main/resources/assets/hbm/textures/items/custom_dirty.png and b/src/main/resources/assets/hbm/textures/items/custom_dirty.png differ diff --git a/src/main/resources/assets/hbm/textures/items/custom_euph.png b/src/main/resources/assets/hbm/textures/items/custom_euph.png new file mode 100644 index 0000000000..d8544ebc4b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/custom_euph.png differ diff --git a/src/main/resources/assets/hbm/textures/items/custom_hydro.png b/src/main/resources/assets/hbm/textures/items/custom_hydro.png index 8cd16f1d6a..03c70eeacf 100644 Binary files a/src/main/resources/assets/hbm/textures/items/custom_hydro.png and b/src/main/resources/assets/hbm/textures/items/custom_hydro.png differ diff --git a/src/main/resources/assets/hbm/textures/items/custom_nuke.png b/src/main/resources/assets/hbm/textures/items/custom_nuke.png index bd74f35a01..3376bf26ce 100644 Binary files a/src/main/resources/assets/hbm/textures/items/custom_nuke.png and b/src/main/resources/assets/hbm/textures/items/custom_nuke.png differ diff --git a/src/main/resources/assets/hbm/textures/items/custom_schrab.png b/src/main/resources/assets/hbm/textures/items/custom_schrab.png index a26e575431..71a2cd1a2a 100644 Binary files a/src/main/resources/assets/hbm/textures/items/custom_schrab.png and b/src/main/resources/assets/hbm/textures/items/custom_schrab.png differ diff --git a/src/main/resources/assets/hbm/textures/items/custom_sol.png b/src/main/resources/assets/hbm/textures/items/custom_sol.png new file mode 100644 index 0000000000..a6f5274c43 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/custom_sol.png differ diff --git a/src/main/resources/assets/hbm/textures/items/designator_range.png b/src/main/resources/assets/hbm/textures/items/designator_range.png deleted file mode 100644 index 8521a83476..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/designator_range.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/gem_asbestos.png b/src/main/resources/assets/hbm/textures/items/gem_asbestos.png deleted file mode 100644 index 72b84aa7c7..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/gem_asbestos.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/gem_zirconium.png b/src/main/resources/assets/hbm/textures/items/gem_zirconium.png deleted file mode 100644 index 9107df7457..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/gem_zirconium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/grenade_plasma_e.png b/src/main/resources/assets/hbm/textures/items/grenade_plasma_e.png deleted file mode 100644 index 8f627bed89..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/grenade_plasma_e.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/grenade_poison.png b/src/main/resources/assets/hbm/textures/items/grenade_poison.png deleted file mode 100644 index 8fa0c4a8af..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/grenade_poison.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/grenade_schrabidium.png b/src/main/resources/assets/hbm/textures/items/grenade_schrabidium.png deleted file mode 100644 index 246e6b9f11..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/grenade_schrabidium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_jack_ammo_alt.png b/src/main/resources/assets/hbm/textures/items/gun_jack_ammo_alt.png deleted file mode 100644 index 58f0210deb..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/gun_jack_ammo_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_revolver_iron_ammo_alt.png b/src/main/resources/assets/hbm/textures/items/gun_revolver_iron_ammo_alt.png deleted file mode 100644 index e7d4c21377..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/gun_revolver_iron_ammo_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_revolver_lead_ammo_alt.png b/src/main/resources/assets/hbm/textures/items/gun_revolver_lead_ammo_alt.png deleted file mode 100644 index 3834c6de94..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/gun_revolver_lead_ammo_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_revolver_nightmare_ammo_alt.png b/src/main/resources/assets/hbm/textures/items/gun_revolver_nightmare_ammo_alt.png deleted file mode 100644 index c2c3a5e445..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/gun_revolver_nightmare_ammo_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_revolver_nopip_ammo_alt.png b/src/main/resources/assets/hbm/textures/items/gun_revolver_nopip_ammo_alt.png deleted file mode 100644 index 7e061d4578..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/gun_revolver_nopip_ammo_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_revolver_pip_ammo_alt.png b/src/main/resources/assets/hbm/textures/items/gun_revolver_pip_ammo_alt.png deleted file mode 100644 index e204667a45..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/gun_revolver_pip_ammo_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_revolver_schrabidium_ammo_alt.png b/src/main/resources/assets/hbm/textures/items/gun_revolver_schrabidium_ammo_alt.png deleted file mode 100644 index cb5cc71f36..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/gun_revolver_schrabidium_ammo_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_rpg_alt.png b/src/main/resources/assets/hbm/textures/items/gun_rpg_alt.png deleted file mode 100644 index ec52216020..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/gun_rpg_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_rpg_ammo.png b/src/main/resources/assets/hbm/textures/items/gun_rpg_ammo.png deleted file mode 100644 index 1316d10a46..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/gun_rpg_ammo.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_rpg_ammo_new.png b/src/main/resources/assets/hbm/textures/items/gun_rpg_ammo_new.png deleted file mode 100644 index 188aa1311f..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/gun_rpg_ammo_new.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_uboinik_ammo_alt.png b/src/main/resources/assets/hbm/textures/items/gun_uboinik_ammo_alt.png deleted file mode 100644 index 085ae1ba4b..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/gun_uboinik_ammo_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ingot_hes.png b/src/main/resources/assets/hbm/textures/items/ingot_hes.png index e2dd256e27..8db4a7dc49 100644 Binary files a/src/main/resources/assets/hbm/textures/items/ingot_hes.png and b/src/main/resources/assets/hbm/textures/items/ingot_hes.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ingot_les.png b/src/main/resources/assets/hbm/textures/items/ingot_les.png index 69aa56a7f1..9e309632ab 100644 Binary files a/src/main/resources/assets/hbm/textures/items/ingot_les.png and b/src/main/resources/assets/hbm/textures/items/ingot_les.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ingot_ra226_e.png b/src/main/resources/assets/hbm/textures/items/ingot_ra226_e.png deleted file mode 100644 index 40e67ed80e..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ingot_ra226_e.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ingot_schrabidium_fuel.png b/src/main/resources/assets/hbm/textures/items/ingot_schrabidium_fuel.png index 89801364bc..c80982288a 100644 Binary files a/src/main/resources/assets/hbm/textures/items/ingot_schrabidium_fuel.png and b/src/main/resources/assets/hbm/textures/items/ingot_schrabidium_fuel.png differ diff --git a/src/main/resources/assets/hbm/textures/items/magnetron.png b/src/main/resources/assets/hbm/textures/items/magnetron.png deleted file mode 100644 index 5f160f01fa..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/magnetron.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/man_core_alt.png b/src/main/resources/assets/hbm/textures/items/man_core_alt.png deleted file mode 100644 index b333964513..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/man_core_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/nugget_hes.png b/src/main/resources/assets/hbm/textures/items/nugget_hes.png index 9384390720..c0d420e99d 100644 Binary files a/src/main/resources/assets/hbm/textures/items/nugget_hes.png and b/src/main/resources/assets/hbm/textures/items/nugget_hes.png differ diff --git a/src/main/resources/assets/hbm/textures/items/nugget_les.png b/src/main/resources/assets/hbm/textures/items/nugget_les.png index abdc97264e..9cd3280c40 100644 Binary files a/src/main/resources/assets/hbm/textures/items/nugget_les.png and b/src/main/resources/assets/hbm/textures/items/nugget_les.png differ diff --git a/src/main/resources/assets/hbm/textures/items/nugget_ra226_e.png b/src/main/resources/assets/hbm/textures/items/nugget_ra226_e.png deleted file mode 100644 index 514a4ba98b..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/nugget_ra226_e.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/nugget_schrabidium_fuel.png b/src/main/resources/assets/hbm/textures/items/nugget_schrabidium_fuel.png index 65a1173e70..057799ddd6 100644 Binary files a/src/main/resources/assets/hbm/textures/items/nugget_schrabidium_fuel.png and b/src/main/resources/assets/hbm/textures/items/nugget_schrabidium_fuel.png differ diff --git a/src/main/resources/assets/hbm/textures/items/oil_canola.png b/src/main/resources/assets/hbm/textures/items/oil_canola.png deleted file mode 100644 index a8363032f5..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/oil_canola.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/oil_crude.png b/src/main/resources/assets/hbm/textures/items/oil_crude.png deleted file mode 100644 index 9c922060a7..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/oil_crude.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/oilcan_bitumen.png b/src/main/resources/assets/hbm/textures/items/oilcan_bitumen.png deleted file mode 100644 index 53b9537c76..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/oilcan_bitumen.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/oilcan_diesel.png b/src/main/resources/assets/hbm/textures/items/oilcan_diesel.png deleted file mode 100644 index 998d9cd928..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/oilcan_diesel.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/oilcan_heatingoil.png b/src/main/resources/assets/hbm/textures/items/oilcan_heatingoil.png deleted file mode 100644 index 8abf6d0ffc..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/oilcan_heatingoil.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/oilcan_heavyoil.png b/src/main/resources/assets/hbm/textures/items/oilcan_heavyoil.png deleted file mode 100644 index 371de24219..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/oilcan_heavyoil.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/oilcan_kerosene.png b/src/main/resources/assets/hbm/textures/items/oilcan_kerosene.png deleted file mode 100644 index 3df5212ff9..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/oilcan_kerosene.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/oilcan_lightoil.png b/src/main/resources/assets/hbm/textures/items/oilcan_lightoil.png deleted file mode 100644 index 90f74ec411..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/oilcan_lightoil.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/oilcan_lubricant.png b/src/main/resources/assets/hbm/textures/items/oilcan_lubricant.png deleted file mode 100644 index 9cee015136..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/oilcan_lubricant.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/oilcan_naphtha.png b/src/main/resources/assets/hbm/textures/items/oilcan_naphtha.png deleted file mode 100644 index 631a870586..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/oilcan_naphtha.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/oilcan_oil.png b/src/main/resources/assets/hbm/textures/items/oilcan_oil.png deleted file mode 100644 index 0cfbdc54f4..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/oilcan_oil.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/oilcan_petroil.png b/src/main/resources/assets/hbm/textures/items/oilcan_petroil.png deleted file mode 100644 index d1d5f9d236..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/oilcan_petroil.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/oilcan_reclaimed.png b/src/main/resources/assets/hbm/textures/items/oilcan_reclaimed.png deleted file mode 100644 index 1f6a7db899..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/oilcan_reclaimed.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/oilcan_smear.png b/src/main/resources/assets/hbm/textures/items/oilcan_smear.png deleted file mode 100644 index 1521459957..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/oilcan_smear.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/overfuse_alt.png b/src/main/resources/assets/hbm/textures/items/overfuse_alt.png deleted file mode 100644 index e11c1f1ed3..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/overfuse_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/pellet_hes.png b/src/main/resources/assets/hbm/textures/items/pellet_hes.png index 02f8ba8bcf..6d7be53fa0 100644 Binary files a/src/main/resources/assets/hbm/textures/items/pellet_hes.png and b/src/main/resources/assets/hbm/textures/items/pellet_hes.png differ diff --git a/src/main/resources/assets/hbm/textures/items/pellet_les.png b/src/main/resources/assets/hbm/textures/items/pellet_les.png index a7cec73fd5..9f94986f24 100644 Binary files a/src/main/resources/assets/hbm/textures/items/pellet_les.png and b/src/main/resources/assets/hbm/textures/items/pellet_les.png differ diff --git a/src/main/resources/assets/hbm/textures/items/pellet_mes.png b/src/main/resources/assets/hbm/textures/items/pellet_mes.png index fae0a33ed0..c48c0a2038 100644 Binary files a/src/main/resources/assets/hbm/textures/items/pellet_mes.png and b/src/main/resources/assets/hbm/textures/items/pellet_mes.png differ diff --git a/src/main/resources/assets/hbm/textures/items/pellet_rtg_radium_e.png b/src/main/resources/assets/hbm/textures/items/pellet_rtg_radium_e.png deleted file mode 100644 index 5b206412b2..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/pellet_rtg_radium_e.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/plan_c_alt.png b/src/main/resources/assets/hbm/textures/items/plan_c_alt.png deleted file mode 100644 index 0a44d83179..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/plan_c_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/plate_aluminium_old.png b/src/main/resources/assets/hbm/textures/items/plate_aluminium_old.png deleted file mode 100644 index c89c632537..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/plate_aluminium_old.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/plate_titanium_old.png b/src/main/resources/assets/hbm/textures/items/plate_titanium_old.png deleted file mode 100644 index c42e7a74e4..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/plate_titanium_old.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/powder_ra226_e.png b/src/main/resources/assets/hbm/textures/items/powder_ra226_e.png deleted file mode 100644 index cc3fc373cc..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/powder_ra226_e.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/rbmk_pellet_hes.png b/src/main/resources/assets/hbm/textures/items/rbmk_pellet_hes.png index 6b191fe52c..a80954272d 100644 Binary files a/src/main/resources/assets/hbm/textures/items/rbmk_pellet_hes.png and b/src/main/resources/assets/hbm/textures/items/rbmk_pellet_hes.png differ diff --git a/src/main/resources/assets/hbm/textures/items/rbmk_pellet_les.png b/src/main/resources/assets/hbm/textures/items/rbmk_pellet_les.png index 1ce3082fd9..406433a21e 100644 Binary files a/src/main/resources/assets/hbm/textures/items/rbmk_pellet_les.png and b/src/main/resources/assets/hbm/textures/items/rbmk_pellet_les.png differ diff --git a/src/main/resources/assets/hbm/textures/items/rbmk_pellet_mes.png b/src/main/resources/assets/hbm/textures/items/rbmk_pellet_mes.png index 9470d505ff..17aa4f816b 100644 Binary files a/src/main/resources/assets/hbm/textures/items/rbmk_pellet_mes.png and b/src/main/resources/assets/hbm/textures/items/rbmk_pellet_mes.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ring_starmetal_alt.png b/src/main/resources/assets/hbm/textures/items/ring_starmetal_alt.png deleted file mode 100644 index ebdca2cc5a..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ring_starmetal_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/rod_dual_ra226_e.png b/src/main/resources/assets/hbm/textures/items/rod_dual_ra226_e.png deleted file mode 100644 index 433c285c27..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/rod_dual_ra226_e.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/rod_dual_schrabidium_fuel.png b/src/main/resources/assets/hbm/textures/items/rod_dual_schrabidium_fuel.png index 040a61e85b..f350b36bb9 100644 Binary files a/src/main/resources/assets/hbm/textures/items/rod_dual_schrabidium_fuel.png and b/src/main/resources/assets/hbm/textures/items/rod_dual_schrabidium_fuel.png differ diff --git a/src/main/resources/assets/hbm/textures/items/rod_quad_ra226_e.png b/src/main/resources/assets/hbm/textures/items/rod_quad_ra226_e.png deleted file mode 100644 index 36223e6b2a..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/rod_quad_ra226_e.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/rod_quad_schrabidium_fuel.png b/src/main/resources/assets/hbm/textures/items/rod_quad_schrabidium_fuel.png index e93d10adeb..cdba73ea71 100644 Binary files a/src/main/resources/assets/hbm/textures/items/rod_quad_schrabidium_fuel.png and b/src/main/resources/assets/hbm/textures/items/rod_quad_schrabidium_fuel.png differ diff --git a/src/main/resources/assets/hbm/textures/items/rod_ra226_e.png b/src/main/resources/assets/hbm/textures/items/rod_ra226_e.png deleted file mode 100644 index 727099299e..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/rod_ra226_e.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/rod_schrabidium_fuel.png b/src/main/resources/assets/hbm/textures/items/rod_schrabidium_fuel.png index e3770b9424..dfe2a837d6 100644 Binary files a/src/main/resources/assets/hbm/textures/items/rod_schrabidium_fuel.png and b/src/main/resources/assets/hbm/textures/items/rod_schrabidium_fuel.png differ diff --git a/src/main/resources/assets/hbm/textures/items/rod_schrabidium_fuel_depleted.png b/src/main/resources/assets/hbm/textures/items/rod_schrabidium_fuel_depleted.png index bd6a7b4a0b..4d4e2705e8 100644 Binary files a/src/main/resources/assets/hbm/textures/items/rod_schrabidium_fuel_depleted.png and b/src/main/resources/assets/hbm/textures/items/rod_schrabidium_fuel_depleted.png differ diff --git a/src/main/resources/assets/hbm/textures/items/trinitite_new.png b/src/main/resources/assets/hbm/textures/items/trinitite_new.png deleted file mode 100644 index 1cfce1f23b..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/trinitite_new.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/upgrade_afterburn_1_e.png b/src/main/resources/assets/hbm/textures/items/upgrade_afterburn_1_e.png index 73a09d0d9f..b8c0456b4a 100644 Binary files a/src/main/resources/assets/hbm/textures/items/upgrade_afterburn_1_e.png and b/src/main/resources/assets/hbm/textures/items/upgrade_afterburn_1_e.png differ diff --git a/src/main/resources/assets/hbm/textures/items/upgrade_afterburn_2_e.png b/src/main/resources/assets/hbm/textures/items/upgrade_afterburn_2_e.png index 68d7e20220..2e58931a0e 100644 Binary files a/src/main/resources/assets/hbm/textures/items/upgrade_afterburn_2_e.png and b/src/main/resources/assets/hbm/textures/items/upgrade_afterburn_2_e.png differ diff --git a/src/main/resources/assets/hbm/textures/items/upgrade_afterburn_3_e.png b/src/main/resources/assets/hbm/textures/items/upgrade_afterburn_3_e.png index 0d870fba5d..1e11b46deb 100644 Binary files a/src/main/resources/assets/hbm/textures/items/upgrade_afterburn_3_e.png and b/src/main/resources/assets/hbm/textures/items/upgrade_afterburn_3_e.png differ diff --git a/src/main/resources/assets/hbm/textures/items/upgrade_centrifuge_e.png b/src/main/resources/assets/hbm/textures/items/upgrade_centrifuge_e.png index 08c171f5da..b97f18b6db 100644 Binary files a/src/main/resources/assets/hbm/textures/items/upgrade_centrifuge_e.png and b/src/main/resources/assets/hbm/textures/items/upgrade_centrifuge_e.png differ diff --git a/src/main/resources/assets/hbm/textures/items/upgrade_crystallizer_e.png b/src/main/resources/assets/hbm/textures/items/upgrade_crystallizer_e.png index dc9893f835..e599f3b6c9 100644 Binary files a/src/main/resources/assets/hbm/textures/items/upgrade_crystallizer_e.png and b/src/main/resources/assets/hbm/textures/items/upgrade_crystallizer_e.png differ diff --git a/src/main/resources/assets/hbm/textures/items/upgrade_effect_1_e.png b/src/main/resources/assets/hbm/textures/items/upgrade_effect_1_e.png index 40990ce30c..c44bca8ed4 100644 Binary files a/src/main/resources/assets/hbm/textures/items/upgrade_effect_1_e.png and b/src/main/resources/assets/hbm/textures/items/upgrade_effect_1_e.png differ diff --git a/src/main/resources/assets/hbm/textures/items/upgrade_effect_2_e.png b/src/main/resources/assets/hbm/textures/items/upgrade_effect_2_e.png index 8158aab849..b1543873e1 100644 Binary files a/src/main/resources/assets/hbm/textures/items/upgrade_effect_2_e.png and b/src/main/resources/assets/hbm/textures/items/upgrade_effect_2_e.png differ diff --git a/src/main/resources/assets/hbm/textures/items/upgrade_effect_3_e.png b/src/main/resources/assets/hbm/textures/items/upgrade_effect_3_e.png index 52c3880c8e..003ad4c621 100644 Binary files a/src/main/resources/assets/hbm/textures/items/upgrade_effect_3_e.png and b/src/main/resources/assets/hbm/textures/items/upgrade_effect_3_e.png differ diff --git a/src/main/resources/assets/hbm/textures/items/upgrade_fortune_1_e.png b/src/main/resources/assets/hbm/textures/items/upgrade_fortune_1_e.png index d1aada3691..53bdc12c04 100644 Binary files a/src/main/resources/assets/hbm/textures/items/upgrade_fortune_1_e.png and b/src/main/resources/assets/hbm/textures/items/upgrade_fortune_1_e.png differ diff --git a/src/main/resources/assets/hbm/textures/items/upgrade_fortune_2_e.png b/src/main/resources/assets/hbm/textures/items/upgrade_fortune_2_e.png index b0c6863917..2470f4d6ae 100644 Binary files a/src/main/resources/assets/hbm/textures/items/upgrade_fortune_2_e.png and b/src/main/resources/assets/hbm/textures/items/upgrade_fortune_2_e.png differ diff --git a/src/main/resources/assets/hbm/textures/items/upgrade_fortune_3_e.png b/src/main/resources/assets/hbm/textures/items/upgrade_fortune_3_e.png index 9b81905884..4ddf706d8c 100644 Binary files a/src/main/resources/assets/hbm/textures/items/upgrade_fortune_3_e.png and b/src/main/resources/assets/hbm/textures/items/upgrade_fortune_3_e.png differ diff --git a/src/main/resources/assets/hbm/textures/items/upgrade_health_e.png b/src/main/resources/assets/hbm/textures/items/upgrade_health_e.png index b46c72c1b1..a89d699af8 100644 Binary files a/src/main/resources/assets/hbm/textures/items/upgrade_health_e.png and b/src/main/resources/assets/hbm/textures/items/upgrade_health_e.png differ diff --git a/src/main/resources/assets/hbm/textures/items/upgrade_nullifier_e.png b/src/main/resources/assets/hbm/textures/items/upgrade_nullifier_e.png index e275448ad7..10f71e865f 100644 Binary files a/src/main/resources/assets/hbm/textures/items/upgrade_nullifier_e.png and b/src/main/resources/assets/hbm/textures/items/upgrade_nullifier_e.png differ diff --git a/src/main/resources/assets/hbm/textures/items/upgrade_overdrive_1_e.png b/src/main/resources/assets/hbm/textures/items/upgrade_overdrive_1_e.png index 7c5e5ec5bf..d461704595 100644 Binary files a/src/main/resources/assets/hbm/textures/items/upgrade_overdrive_1_e.png and b/src/main/resources/assets/hbm/textures/items/upgrade_overdrive_1_e.png differ diff --git a/src/main/resources/assets/hbm/textures/items/upgrade_overdrive_2_e.png b/src/main/resources/assets/hbm/textures/items/upgrade_overdrive_2_e.png index 9d3617279f..bec4b0c716 100644 Binary files a/src/main/resources/assets/hbm/textures/items/upgrade_overdrive_2_e.png and b/src/main/resources/assets/hbm/textures/items/upgrade_overdrive_2_e.png differ diff --git a/src/main/resources/assets/hbm/textures/items/upgrade_overdrive_3_e.png b/src/main/resources/assets/hbm/textures/items/upgrade_overdrive_3_e.png index 9d2b45da6d..00d796bd00 100644 Binary files a/src/main/resources/assets/hbm/textures/items/upgrade_overdrive_3_e.png and b/src/main/resources/assets/hbm/textures/items/upgrade_overdrive_3_e.png differ diff --git a/src/main/resources/assets/hbm/textures/items/upgrade_power_1_e.png b/src/main/resources/assets/hbm/textures/items/upgrade_power_1_e.png index ece1b9518a..beaef9c46f 100644 Binary files a/src/main/resources/assets/hbm/textures/items/upgrade_power_1_e.png and b/src/main/resources/assets/hbm/textures/items/upgrade_power_1_e.png differ diff --git a/src/main/resources/assets/hbm/textures/items/upgrade_power_2_e.png b/src/main/resources/assets/hbm/textures/items/upgrade_power_2_e.png index e956ad3fbd..05dfeac025 100644 Binary files a/src/main/resources/assets/hbm/textures/items/upgrade_power_2_e.png and b/src/main/resources/assets/hbm/textures/items/upgrade_power_2_e.png differ diff --git a/src/main/resources/assets/hbm/textures/items/upgrade_power_3_e.png b/src/main/resources/assets/hbm/textures/items/upgrade_power_3_e.png index a6a8dffd69..2c9c1b851f 100644 Binary files a/src/main/resources/assets/hbm/textures/items/upgrade_power_3_e.png and b/src/main/resources/assets/hbm/textures/items/upgrade_power_3_e.png differ diff --git a/src/main/resources/assets/hbm/textures/items/upgrade_radius_e.png b/src/main/resources/assets/hbm/textures/items/upgrade_radius_e.png index 8f0a5a0055..1e7d55e230 100644 Binary files a/src/main/resources/assets/hbm/textures/items/upgrade_radius_e.png and b/src/main/resources/assets/hbm/textures/items/upgrade_radius_e.png differ diff --git a/src/main/resources/assets/hbm/textures/items/upgrade_screm_e.png b/src/main/resources/assets/hbm/textures/items/upgrade_screm_e.png index e03eacd57d..09edc19975 100644 Binary files a/src/main/resources/assets/hbm/textures/items/upgrade_screm_e.png and b/src/main/resources/assets/hbm/textures/items/upgrade_screm_e.png differ diff --git a/src/main/resources/assets/hbm/textures/items/upgrade_shredder_e.png b/src/main/resources/assets/hbm/textures/items/upgrade_shredder_e.png index 08c171f5da..b97f18b6db 100644 Binary files a/src/main/resources/assets/hbm/textures/items/upgrade_shredder_e.png and b/src/main/resources/assets/hbm/textures/items/upgrade_shredder_e.png differ diff --git a/src/main/resources/assets/hbm/textures/items/upgrade_smelter_e.png b/src/main/resources/assets/hbm/textures/items/upgrade_smelter_e.png index 2c01645924..5a5afd348f 100644 Binary files a/src/main/resources/assets/hbm/textures/items/upgrade_smelter_e.png and b/src/main/resources/assets/hbm/textures/items/upgrade_smelter_e.png differ diff --git a/src/main/resources/assets/hbm/textures/items/upgrade_speed_1_e.png b/src/main/resources/assets/hbm/textures/items/upgrade_speed_1_e.png index 5306d0f436..c44bca8ed4 100644 Binary files a/src/main/resources/assets/hbm/textures/items/upgrade_speed_1_e.png and b/src/main/resources/assets/hbm/textures/items/upgrade_speed_1_e.png differ diff --git a/src/main/resources/assets/hbm/textures/items/upgrade_speed_2_e.png b/src/main/resources/assets/hbm/textures/items/upgrade_speed_2_e.png index 7d16365633..b1543873e1 100644 Binary files a/src/main/resources/assets/hbm/textures/items/upgrade_speed_2_e.png and b/src/main/resources/assets/hbm/textures/items/upgrade_speed_2_e.png differ diff --git a/src/main/resources/assets/hbm/textures/items/upgrade_speed_3_e.png b/src/main/resources/assets/hbm/textures/items/upgrade_speed_3_e.png index b5d31e8e25..003ad4c621 100644 Binary files a/src/main/resources/assets/hbm/textures/items/upgrade_speed_3_e.png and b/src/main/resources/assets/hbm/textures/items/upgrade_speed_3_e.png differ diff --git a/src/main/resources/assets/hbm/textures/items/wand_alt.png b/src/main/resources/assets/hbm/textures/items/wand_alt.png deleted file mode 100644 index 90b5148036..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/wand_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/wand_d_alt.png b/src/main/resources/assets/hbm/textures/items/wand_d_alt.png deleted file mode 100644 index acdb9a053c..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/wand_d_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/wand_s_alt.png b/src/main/resources/assets/hbm/textures/items/wand_s_alt.png deleted file mode 100644 index 5269d786a6..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/wand_s_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/warhead_thermo_endo_alt.png b/src/main/resources/assets/hbm/textures/items/warhead_thermo_endo_alt.png deleted file mode 100644 index e519298dcd..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/warhead_thermo_endo_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/warhead_thermo_exo_alt.png b/src/main/resources/assets/hbm/textures/items/warhead_thermo_exo_alt.png deleted file mode 100644 index b452b4c44a..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/warhead_thermo_exo_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/xanax.png b/src/main/resources/assets/hbm/textures/items/xanax.png deleted file mode 100644 index 4c3759188c..0000000000 Binary files a/src/main/resources/assets/hbm/textures/items/xanax.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/doors/hatch.png b/src/main/resources/assets/hbm/textures/models/doors/hatch.png index ad8dbc6e5b..9a6ae02a99 100644 Binary files a/src/main/resources/assets/hbm/textures/models/doors/hatch.png and b/src/main/resources/assets/hbm/textures/models/doors/hatch.png differ diff --git a/src/main/resources/assets/hbm/textures/models/doors/large_vehicle_door.png b/src/main/resources/assets/hbm/textures/models/doors/large_vehicle_door.png index 0e426402ec..6719b37bc1 100644 Binary files a/src/main/resources/assets/hbm/textures/models/doors/large_vehicle_door.png and b/src/main/resources/assets/hbm/textures/models/doors/large_vehicle_door.png differ diff --git a/src/main/resources/assets/hbm/textures/models/doors/qe_containment.png b/src/main/resources/assets/hbm/textures/models/doors/qe_containment.png index 9fa8b809f3..a366746b9c 100644 Binary files a/src/main/resources/assets/hbm/textures/models/doors/qe_containment.png and b/src/main/resources/assets/hbm/textures/models/doors/qe_containment.png differ diff --git a/src/main/resources/assets/hbm/textures/models/doors/sliding_gate_door.png b/src/main/resources/assets/hbm/textures/models/doors/sliding_gate_door.png new file mode 100644 index 0000000000..9e3702ad34 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/doors/sliding_gate_door.png differ diff --git a/src/main/resources/assets/hbm/textures/models/doors/sliding_seal_door.png b/src/main/resources/assets/hbm/textures/models/doors/sliding_seal_door.png index 7434bd5b2f..ff8e8eb0b6 100644 Binary files a/src/main/resources/assets/hbm/textures/models/doors/sliding_seal_door.png and b/src/main/resources/assets/hbm/textures/models/doors/sliding_seal_door.png differ diff --git a/src/main/resources/assets/hbm/textures/models/doors/water_door.png b/src/main/resources/assets/hbm/textures/models/doors/water_door.png index 1db668c8ec..11e6bfdf07 100644 Binary files a/src/main/resources/assets/hbm/textures/models/doors/water_door.png and b/src/main/resources/assets/hbm/textures/models/doors/water_door.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/breeder.png b/src/main/resources/assets/hbm/textures/models/machines/breeder.png index 39ff130cce..f5b4429d9a 100644 Binary files a/src/main/resources/assets/hbm/textures/models/machines/breeder.png and b/src/main/resources/assets/hbm/textures/models/machines/breeder.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/breeder_e.png b/src/main/resources/assets/hbm/textures/models/machines/breeder_e.png index f1eb8f5701..bbb5ebb5a6 100644 Binary files a/src/main/resources/assets/hbm/textures/models/machines/breeder_e.png and b/src/main/resources/assets/hbm/textures/models/machines/breeder_e.png differ diff --git a/src/main/resources/assets/hbm/textures/models/turrets/base_friendly.png b/src/main/resources/assets/hbm/textures/models/turrets/base_friendly.png index 46cbe4167f..3e2db47d41 100644 Binary files a/src/main/resources/assets/hbm/textures/models/turrets/base_friendly.png and b/src/main/resources/assets/hbm/textures/models/turrets/base_friendly.png differ diff --git a/src/main/resources/assets/hbm/textures/models/turrets/carriage_friendly.png b/src/main/resources/assets/hbm/textures/models/turrets/carriage_friendly.png index aee244d0c4..d0e4585314 100644 Binary files a/src/main/resources/assets/hbm/textures/models/turrets/carriage_friendly.png and b/src/main/resources/assets/hbm/textures/models/turrets/carriage_friendly.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/vortex.png b/src/main/resources/assets/hbm/textures/models/weapons/vortex.png index 40ffa402e0..cfbd35e906 100644 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/vortex.png and b/src/main/resources/assets/hbm/textures/models/weapons/vortex.png differ diff --git a/src/main/resources/assets/hbm/textures/particle/explosion.png b/src/main/resources/assets/hbm/textures/particle/explosion.png index 709f91c565..4ef6a2b6b7 100644 Binary files a/src/main/resources/assets/hbm/textures/particle/explosion.png and b/src/main/resources/assets/hbm/textures/particle/explosion.png differ diff --git a/src/main/resources/assets/hbm/textures/particle/explosion_bf.png b/src/main/resources/assets/hbm/textures/particle/explosion_bf.png index 7879ed8df7..246cbde61c 100644 Binary files a/src/main/resources/assets/hbm/textures/particle/explosion_bf.png and b/src/main/resources/assets/hbm/textures/particle/explosion_bf.png differ diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info index 6dcd9069d2..1eaf6aeb4e 100644 --- a/src/main/resources/mcmod.info +++ b/src/main/resources/mcmod.info @@ -3,7 +3,7 @@ "modid": "hbm", "name": "HBM's Nuclear Tech - Extended Edition", "description": "A mod that adds all kinds of nukes and other things", - "version": "${version}", + "version": "1.9.8", "credits": "\n\nHBMMods: creator\nDrillgon200: original 1.12.2 port\nTheOriginalGolem: 1.12.2 bug fixing\nAlcater: Custom 1.12.2 version, updating and texturing\n\nSten89: bug tester\nGB_Doge_9000: bug tester\nHoboy: textures and models\nDoctor17: Russian translations\ngrangerave\nrodolphito\nmexikoedi: log spam fix\nCrowbar Collective: gluon gun sounds\n70000HP: MIRV and configs\n", "logoFile": "assets/hbm/textures/logo.png", "mcversion": "${mcversion}",