From b04e73422d23e9505cabad617d368dd9821a0d1a Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 15 Sep 2023 13:10:36 +0200 Subject: [PATCH] ashpit NEI handling, ashpit for chimneys, removed old trash, fixes --- changelog | 40 +++++++++++++- src/main/java/com/hbm/blocks/ModBlocks.java | 4 +- .../java/com/hbm/handler/FuelHandler.java | 2 + .../com/hbm/handler/nei/AshpitHandler.java | 50 ++++++++++++++++++ .../com/hbm/inventory/OreDictManager.java | 4 +- .../inventory/recipes/AssemblerRecipes.java | 2 +- .../inventory/recipes/anvil/AnvilRecipes.java | 3 +- src/main/java/com/hbm/items/ItemEnums.java | 4 +- src/main/java/com/hbm/items/ModItems.java | 34 ------------ .../com/hbm/items/weapon/ItemGunBase.java | 2 +- src/main/java/com/hbm/main/MainRegistry.java | 10 ++++ src/main/java/com/hbm/main/NEIConfig.java | 1 + .../tileentity/machine/TileEntityAshpit.java | 8 +++ .../machine/TileEntityChimneyBase.java | 29 +++++++++- .../machine/TileEntityChimneyIndustrial.java | 7 ++- src/main/java/com/hbm/util/InventoryUtil.java | 4 ++ src/main/resources/assets/hbm/lang/de_DE.lang | 5 ++ src/main/resources/assets/hbm/lang/en_US.lang | 2 + .../assets/hbm/textures/items/plan_c_alt.png | Bin 245 -> 0 bytes .../hbm/textures/items/powder_ash.soot.png | Bin 0 -> 299 bytes .../hbm/textures/items/recycled_crystal.png | Bin 811 -> 0 bytes .../textures/items/recycled_electronic.png | Bin 469 -> 0 bytes .../hbm/textures/items/recycled_explosive.png | Bin 372 -> 0 bytes .../hbm/textures/items/recycled_ground.png | Bin 408 -> 0 bytes .../hbm/textures/items/recycled_metal.png | Bin 376 -> 0 bytes .../hbm/textures/items/recycled_misc.png | Bin 647 -> 0 bytes .../hbm/textures/items/recycled_nuclear.png | Bin 352 -> 0 bytes .../hbm/textures/items/recycled_organic.png | Bin 409 -> 0 bytes .../hbm/textures/items/recycled_overlay.png | Bin 278 -> 0 bytes .../hbm/textures/items/recycled_refined.png | Bin 399 -> 0 bytes .../hbm/textures/items/recycled_rock.png | Bin 443 -> 0 bytes 31 files changed, 167 insertions(+), 44 deletions(-) create mode 100644 src/main/java/com/hbm/handler/nei/AshpitHandler.java delete mode 100644 src/main/resources/assets/hbm/textures/items/plan_c_alt.png create mode 100644 src/main/resources/assets/hbm/textures/items/powder_ash.soot.png delete mode 100644 src/main/resources/assets/hbm/textures/items/recycled_crystal.png delete mode 100644 src/main/resources/assets/hbm/textures/items/recycled_electronic.png delete mode 100644 src/main/resources/assets/hbm/textures/items/recycled_explosive.png delete mode 100644 src/main/resources/assets/hbm/textures/items/recycled_ground.png delete mode 100644 src/main/resources/assets/hbm/textures/items/recycled_metal.png delete mode 100644 src/main/resources/assets/hbm/textures/items/recycled_misc.png delete mode 100644 src/main/resources/assets/hbm/textures/items/recycled_nuclear.png delete mode 100644 src/main/resources/assets/hbm/textures/items/recycled_organic.png delete mode 100644 src/main/resources/assets/hbm/textures/items/recycled_overlay.png delete mode 100644 src/main/resources/assets/hbm/textures/items/recycled_refined.png delete mode 100644 src/main/resources/assets/hbm/textures/items/recycled_rock.png diff --git a/changelog b/changelog index ff10295e2..607efd8b8 100644 --- a/changelog +++ b/changelog @@ -1,13 +1,51 @@ ## Added +* Telex + * A basic message system using redstone over radio + * Allows messages to be sent at a rate of 20 characters per second + * Features things like text formatting, printing and the terminal bell +* Ground water pumps + * Come in steam-powered and electric variants + * Faster than their infinite barrel counterpart + * Need to be placed below Y:70 and on solid ground to work + * Compatible floor blocks include all dirt variants and sand, the pump will not work when placed on pure rock +* Schrabidate capacitor + * Can store 50GHE +* Express conveyor belts + * Work like regular single-lane conveyor belts but 3x faster +* Industrial smokestack + * An even larger smokestack, matching the size of the coker unit + * Reduced pollution by 90%, as opposed to the brick smokestack's 75% ## Changed * Updated russian localization * The UAC pistol's UV now looks prettier * The UAC pistol now fires a burst on right click * CCGTs can no longer have smoke removed from them, on the count of there not being enough connections anyway. The pollution rate is now equivalent to three small furnaces +* The DFC receiver is now crafted with a block of DNT instead of sellafite corium, on the count of sellafite corium being near impossible to get +* Fireclay now has a third recipe, being craftable from clay, limestone and sand +* A whole clay block can now be combination smelted into a block of bricks +* The pipe clanking sound is now also used when placing regular pipes as opposed to only when pre-defined pipe items are used +* Josh now has a burst fire mode using RMB +* The smokestack's recipe has changed, now requiring a steel grate for catching ashes +* Simplified the decorated cobalt tool recipes, they now only require one cobalt tool and one hot bar of meteorite in an anvil +* Changed the starmetal tool recipes +* Cobalt armor is now crafted with steel armor and cobalt billets, making the armor substantially cheaper +* Sightly increased protection levels for the security armor and cobalt gear +* Cobalt, decorated cobalt and starmetal gear is now a lot more enchantable +* The ashpit now has a NEI handler, showing roughly how ash types are made +* Smokestacks now capture fly ash and are now compatible with ashpits +* Industrial smokestacks can also capture fine soot +* Reduced strings required for making coal filters, filters are now also available in tier 2 anvils ## Fixed * Fixed the bomber not spawning if the chunkloading radios is too small * Fixed a couple spelling mistakes like BFB fuel being called ZFB and the broken ZIRNOX * Potentially fixed a compat issue where galacticraft moon soil isn't shreddable into NTM moon turf -* Hopefully fixed the disappearing fluid buf once and for all \ No newline at end of file +* Hopefully fixed the disappearing fluid bug once and for all +* Fixed lag caused by the radiation system needlessly loading chunks +* Fixed secret folders giving volatile templates instead of persistent ones +* Fixed the ore dict registry happening in a later loading phase instead of PreInit which should fix some compatibility issues +* Hopefully fixed issue where the tom impact effects will last even when switching worlds +* Fixed logspam caused by custom machine crafting handler +* Fixed issue with the assemblers and chemplants where recipes with larger input requirements would break the input funnel +* Fixed crash caused by reloading when the ammo item is in the last slot \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index f08d42a0f..8c6fb76c6 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1960,8 +1960,8 @@ public class ModBlocks { fluid_duct = new BlockFluidDuct(Material.iron).setBlockName("fluid_duct").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":fluid_duct_icon"); fluid_duct_solid = new BlockFluidDuctSolid(Material.iron).setBlockName("fluid_duct_solid").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":fluid_duct_solid"); fluid_duct_neo = new FluidDuctStandard(Material.iron).setBlockName("fluid_duct_neo").setStepSound(ModSoundTypes.pipe).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pipe_neo"); - fluid_duct_box = new FluidDuctBox(Material.iron).setBlockName("fluid_duct_box").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fluid_duct_box"); - fluid_duct_exhaust = new FluidDuctBoxExhaust(Material.iron).setBlockName("fluid_duct_exhaust").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fluid_duct_box"); + fluid_duct_box = new FluidDuctBox(Material.iron).setBlockName("fluid_duct_box").setStepSound(ModSoundTypes.pipe).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fluid_duct_box"); + fluid_duct_exhaust = new FluidDuctBoxExhaust(Material.iron).setBlockName("fluid_duct_exhaust").setStepSound(ModSoundTypes.pipe).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fluid_duct_box"); fluid_duct_paintable = new FluidDuctPaintable().setBlockName("fluid_duct_paintable").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); fluid_duct_gauge = new FluidDuctGauge().setBlockName("fluid_duct_gauge").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); fluid_valve = new FluidValve(Material.iron).setBlockName("fluid_valve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); diff --git a/src/main/java/com/hbm/handler/FuelHandler.java b/src/main/java/com/hbm/handler/FuelHandler.java index 951a5d6c2..18442a5a2 100644 --- a/src/main/java/com/hbm/handler/FuelHandler.java +++ b/src/main/java/com/hbm/handler/FuelHandler.java @@ -57,6 +57,8 @@ public class FuelHandler implements IFuelHandler { case 0: return single / 2; case 1: return single; case 2: return single / 2; + case 3: return single; + case 4: return single / 2; } } diff --git a/src/main/java/com/hbm/handler/nei/AshpitHandler.java b/src/main/java/com/hbm/handler/nei/AshpitHandler.java new file mode 100644 index 000000000..d7cf8af20 --- /dev/null +++ b/src/main/java/com/hbm/handler/nei/AshpitHandler.java @@ -0,0 +1,50 @@ +package com.hbm.handler.nei; + +import java.util.HashMap; + +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.OreDictManager.DictFrame; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.items.ItemEnums.EnumAshType; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemFluidIcon; + +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +public class AshpitHandler extends NEIUniversalHandler { + + public AshpitHandler() { + super("Ashpit", ModBlocks.machine_ashpit, getRecipes()); + } + + @Override + public String getKey() { + return "ntmAshpit"; + } + + public static HashMap getRecipes() { + + HashMap recipes = new HashMap(); + + ItemStack[] ovens = new ItemStack[] {new ItemStack(ModBlocks.heater_firebox), new ItemStack(ModBlocks.heater_oven)}; + ItemStack[] chimneys = new ItemStack[] {new ItemStack(ModBlocks.chimney_brick), new ItemStack(ModBlocks.chimney_industrial)}; + ItemStack[] coals = new ItemStack[] {new ItemStack(Items.coal, 1, 0), new ItemStack(ModItems.lignite), new ItemStack(ModItems.coke)}; + ItemStack[] wood = new ItemStack[] {new ItemStack(Blocks.log), new ItemStack(Blocks.log2), new ItemStack(Blocks.planks), new ItemStack(Blocks.sapling)}; + ItemStack[] misc = new ItemStack[] {new ItemStack(ModItems.solid_fuel), new ItemStack(ModItems.scrap), new ItemStack(ModItems.dust), new ItemStack(ModItems.rocket_fuel)}; + FluidType[] smokes = new FluidType[] {Fluids.SMOKE, Fluids.SMOKE_LEADED, Fluids.SMOKE_POISON};; + + recipes.put(new ItemStack[][] {ovens, coals}, DictFrame.fromOne(ModItems.powder_ash, EnumAshType.COAL)); + recipes.put(new ItemStack[][] {ovens, wood}, DictFrame.fromOne(ModItems.powder_ash, EnumAshType.WOOD)); + recipes.put(new ItemStack[][] {ovens, misc}, DictFrame.fromOne(ModItems.powder_ash, EnumAshType.MISC)); + + for(FluidType smoke : smokes) { + recipes.put(new ItemStack[][] {chimneys, new ItemStack[] {ItemFluidIcon.make(smoke, 2_000)}}, DictFrame.fromOne(ModItems.powder_ash, EnumAshType.FLY)); + recipes.put(new ItemStack[][] {new ItemStack[] {new ItemStack(ModBlocks.chimney_industrial)}, new ItemStack[] {ItemFluidIcon.make(smoke, 8_000)}}, DictFrame.fromOne(ModItems.powder_ash, EnumAshType.SOOT)); + } + + return recipes; + } +} diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index 685251982..68339d68a 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -466,7 +466,7 @@ public class OreDictManager { for(int i = 0; i < 16; i++) { ANY_CONCRETE.any(new ItemStack(ModBlocks.concrete_colored_ext, 1, i)); } ANY_COKE .gem(fromAll(coke, EnumCokeType.class)).block(fromAll(block_coke, EnumCokeType.class)); ANY_BISMOID .ingot(ingot_bismuth, ingot_arsenic).nugget(nugget_bismuth, nugget_arsenic).block(block_bismuth); - ANY_ASH .any(fromOne(ModItems.powder_ash, EnumAshType.WOOD), fromOne(ModItems.powder_ash, EnumAshType.COAL), fromOne(ModItems.powder_ash, EnumAshType.MISC)); + ANY_ASH .any(fromOne(ModItems.powder_ash, EnumAshType.WOOD), fromOne(ModItems.powder_ash, EnumAshType.COAL), fromOne(ModItems.powder_ash, EnumAshType.MISC), fromOne(ModItems.powder_ash, EnumAshType.FLY), fromOne(ModItems.powder_ash, EnumAshType.SOOT)); /* * TAR @@ -575,6 +575,8 @@ public class OreDictManager { OreDictionary.registerOre("dyeLightGray", fromOne(powder_ash, EnumAshType.WOOD)); OreDictionary.registerOre("dyeBlack", fromOne(powder_ash, EnumAshType.COAL)); OreDictionary.registerOre("dyeGray", fromOne(powder_ash, EnumAshType.MISC)); + OreDictionary.registerOre("dyeBrown", fromOne(powder_ash, EnumAshType.FLY)); + OreDictionary.registerOre("dyeBlack", fromOne(powder_ash, EnumAshType.SOOT)); OreDictionary.registerOre("dye", new ItemStack(powder_ash, 1, OreDictionary.WILDCARD_VALUE)); OreDictionary.registerOre("blockGlass", glass_boron); diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 50db8cf5a..0e6afcdb5 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -164,7 +164,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.wire_magnetized_tungsten, 6), new AStack[] {new OreDictStack(MAGTUNG.ingot(), 1), },20); makeRecipe(new ComparableStack(ModItems.hazmat_cloth, 4), new AStack[] {new OreDictStack(PB.dust(), 4), new ComparableStack(Items.string, 8), },50); makeRecipe(new ComparableStack(ModItems.asbestos_cloth, 4), new AStack[] {new OreDictStack(ASBESTOS.ingot(), 2), new ComparableStack(Items.string, 6), new ComparableStack(Blocks.wool, 1), },50); - makeRecipe(new ComparableStack(ModItems.filter_coal, 1), new AStack[] {new OreDictStack(COAL.dust(), 4), new ComparableStack(Items.string, 6), new ComparableStack(Items.paper, 1), },50); + makeRecipe(new ComparableStack(ModItems.filter_coal, 1), new AStack[] {new OreDictStack(COAL.dust(), 4), new ComparableStack(Items.string, 2), new ComparableStack(Items.paper, 1), },50); makeRecipe(new ComparableStack(ModItems.centrifuge_element, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 4), new OreDictStack(TI.plate528(), 4), new ComparableStack(ModItems.motor, 1), }, 100); makeRecipe(new ComparableStack(ModItems.magnet_circular, 1), new AStack[] {new ComparableStack(ModBlocks.fusion_conductor, 5), new OreDictStack(STEEL.ingot(), 4), new OreDictStack(ALLOY.plate(), 6), },150); makeRecipe(new ComparableStack(ModItems.reactor_core, 1), new AStack[] {new OreDictStack(PB.ingot(), 8), new OreDictStack(BE.ingot(), 6), new OreDictStack(STEEL.plate(), 16), new OreDictStack(OreDictManager.getReflector(), 8), new OreDictStack(FIBER.ingot(), 2) },100); diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index cc325331a..568f66a6f 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -212,7 +212,8 @@ public class AnvilRecipes { constructionRecipes.add(new AnvilConstructionRecipe( 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)); - + + pullFromAssembler(new ComparableStack(ModItems.filter_coal), 2); pullFromAssembler(new ComparableStack(ModItems.thermo_element), 2); constructionRecipes.add(new AnvilConstructionRecipe( diff --git a/src/main/java/com/hbm/items/ItemEnums.java b/src/main/java/com/hbm/items/ItemEnums.java index a83f5171c..f57fde2f9 100644 --- a/src/main/java/com/hbm/items/ItemEnums.java +++ b/src/main/java/com/hbm/items/ItemEnums.java @@ -26,7 +26,9 @@ public class ItemEnums { public static enum EnumAshType { WOOD, COAL, - MISC + MISC, + FLY, + SOOT } public static enum EnumBriquetteType { diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 89810e7bc..62b4e98ce 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1203,17 +1203,6 @@ public class ModItems { public static Item debris_element; public static Item containment_box; - - public static Item recycled_ground; - public static Item recycled_rock; - public static Item recycled_metal; - public static Item recycled_refined; - public static Item recycled_organic; - public static Item recycled_crystal; - public static Item recycled_explosive; - public static Item recycled_electronic; - public static Item recycled_nuclear; - public static Item recycled_misc; public static Item test_nuke_igniter; public static Item test_nuke_propellant; @@ -3474,17 +3463,6 @@ public class ModItems { coin_worm = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("coin_worm").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coin_worm"); coin_ufo = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("coin_ufo").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coin_ufo"); - recycled_ground = new Item().setUnlocalizedName("recycled_ground").setCreativeTab(null).setTextureName(RefStrings.MODID + ":recycled_ground"); - recycled_rock = new Item().setUnlocalizedName("recycled_rock").setCreativeTab(null).setTextureName(RefStrings.MODID + ":recycled_rock"); - recycled_metal = new Item().setUnlocalizedName("recycled_metal").setCreativeTab(null).setTextureName(RefStrings.MODID + ":recycled_metal"); - recycled_refined = new Item().setUnlocalizedName("recycled_refined").setCreativeTab(null).setTextureName(RefStrings.MODID + ":recycled_refined"); - recycled_organic = new Item().setUnlocalizedName("recycled_organic").setCreativeTab(null).setTextureName(RefStrings.MODID + ":recycled_organic"); - recycled_crystal = new Item().setUnlocalizedName("recycled_crystal").setCreativeTab(null).setTextureName(RefStrings.MODID + ":recycled_crystal"); - recycled_explosive = new Item().setUnlocalizedName("recycled_explosive").setCreativeTab(null).setTextureName(RefStrings.MODID + ":recycled_explosive"); - recycled_electronic = new Item().setUnlocalizedName("recycled_electronic").setCreativeTab(null).setTextureName(RefStrings.MODID + ":recycled_electronic"); - recycled_nuclear = new Item().setUnlocalizedName("recycled_nuclear").setCreativeTab(null).setTextureName(RefStrings.MODID + ":recycled_nuclear"); - recycled_misc = new Item().setUnlocalizedName("recycled_misc").setCreativeTab(null).setTextureName(RefStrings.MODID + ":recycled_misc"); - rod_empty = new Item().setUnlocalizedName("rod_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_empty"); rod = (ItemEnumMulti) new ItemBreedingRod().setUnlocalizedName("rod").setContainerItem(ModItems.rod_empty).setCreativeTab(MainRegistry.controlTab); rod_dual_empty = new Item().setUnlocalizedName("rod_dual_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_dual_empty"); @@ -6523,18 +6501,6 @@ public class ModItems { GameRegistry.registerItem(laser_crystal_dnt, laser_crystal_dnt.getUnlocalizedName()); GameRegistry.registerItem(laser_crystal_digamma, laser_crystal_digamma.getUnlocalizedName()); - //Recycled Units - GameRegistry.registerItem(recycled_ground, recycled_ground.getUnlocalizedName()); - GameRegistry.registerItem(recycled_rock, recycled_rock.getUnlocalizedName()); - GameRegistry.registerItem(recycled_metal, recycled_metal.getUnlocalizedName()); - GameRegistry.registerItem(recycled_refined, recycled_refined.getUnlocalizedName()); - GameRegistry.registerItem(recycled_organic, recycled_organic.getUnlocalizedName()); - GameRegistry.registerItem(recycled_crystal, recycled_crystal.getUnlocalizedName()); - GameRegistry.registerItem(recycled_explosive, recycled_explosive.getUnlocalizedName()); - GameRegistry.registerItem(recycled_electronic, recycled_electronic.getUnlocalizedName()); - GameRegistry.registerItem(recycled_nuclear, recycled_nuclear.getUnlocalizedName()); - GameRegistry.registerItem(recycled_misc, recycled_misc.getUnlocalizedName()); - //Catalyst Rune Sigils GameRegistry.registerItem(rune_blank, rune_blank.getUnlocalizedName()); GameRegistry.registerItem(rune_isa, rune_isa.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/weapon/ItemGunBase.java b/src/main/java/com/hbm/items/weapon/ItemGunBase.java index 2a6eff682..6ec696cab 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGunBase.java +++ b/src/main/java/com/hbm/items/weapon/ItemGunBase.java @@ -386,7 +386,7 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu if(mainConfig.ejector != null && mainConfig.ejector.getAfterReload()) queueCasing(player, mainConfig.ejector, prevCfg, stack); - InventoryUtil.tryConsumeAStack(player.inventory.mainInventory, 0, player.inventory.mainInventory.length, ammo); + InventoryUtil.tryConsumeAStack(player.inventory.mainInventory, 0, player.inventory.mainInventory.length - 1, ammo); } else { setReloadCycle(stack, getReloadCycle(stack) - 1); } diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index cdc5212a2..b1458de1f 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -1163,6 +1163,16 @@ public class MainRegistry { ignoreMappings.add("hbm:item.primer_50"); ignoreMappings.add("hbm:item.primer_buckshot"); ignoreMappings.add("hbm:tile.ore_bedrock_coltan"); + ignoreMappings.add("hbm:item.recycled_ground"); + ignoreMappings.add("hbm:item.recycled_rock"); + ignoreMappings.add("hbm:item.recycled_metal"); + ignoreMappings.add("hbm:item.recycled_refined"); + ignoreMappings.add("hbm:item.recycled_organic"); + ignoreMappings.add("hbm:item.recycled_crystal"); + ignoreMappings.add("hbm:item.recycled_explosive"); + ignoreMappings.add("hbm:item.recycled_electronic"); + ignoreMappings.add("hbm:item.recycled_nuclear"); + ignoreMappings.add("hbm:item.recycled_misc"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/main/NEIConfig.java b/src/main/java/com/hbm/main/NEIConfig.java index 7ce0ffd04..8f3f93532 100644 --- a/src/main/java/com/hbm/main/NEIConfig.java +++ b/src/main/java/com/hbm/main/NEIConfig.java @@ -75,6 +75,7 @@ public class NEIConfig implements IConfigureNEI { registerHandler(new OutgasserHandler()); registerHandler(new ElectrolyserFluidHandler()); registerHandler(new ElectrolyserMetalHandler()); + registerHandler(new AshpitHandler()); for(MachineConfiguration conf : CustomMachineConfigJSON.niceList) registerHandlerBypass(new CustomMachineHandler(conf)); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityAshpit.java b/src/main/java/com/hbm/tileentity/machine/TileEntityAshpit.java index d5e27e4ac..cd78eb206 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityAshpit.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityAshpit.java @@ -29,6 +29,8 @@ public class TileEntityAshpit extends TileEntityMachineBase implements IGUIProvi public int ashLevelWood; public int ashLevelCoal; public int ashLevelMisc; + public int ashLevelFly; + public int ashLevelSoot; public TileEntityAshpit() { super(5); @@ -59,6 +61,8 @@ public class TileEntityAshpit extends TileEntityMachineBase implements IGUIProvi if(processAsh(ashLevelWood, EnumAshType.WOOD, threshold)) ashLevelWood -= threshold; if(processAsh(ashLevelCoal, EnumAshType.COAL, threshold)) ashLevelCoal -= threshold; if(processAsh(ashLevelMisc, EnumAshType.MISC, threshold)) ashLevelMisc -= threshold; + if(processAsh(ashLevelFly, EnumAshType.FLY, threshold)) ashLevelFly -= threshold; + if(processAsh(ashLevelSoot, EnumAshType.SOOT, threshold * 4)) ashLevelSoot -= threshold * 4; isFull = false; @@ -126,6 +130,8 @@ public class TileEntityAshpit extends TileEntityMachineBase implements IGUIProvi this.ashLevelWood = nbt.getInteger("ashLevelWood"); this.ashLevelCoal = nbt.getInteger("ashLevelCoal"); this.ashLevelMisc = nbt.getInteger("ashLevelMisc"); + this.ashLevelFly = nbt.getInteger("ashLevelFly"); + this.ashLevelSoot = nbt.getInteger("ashLevelSoot"); } @Override @@ -135,6 +141,8 @@ public class TileEntityAshpit extends TileEntityMachineBase implements IGUIProvi nbt.setInteger("ashLevelWood", ashLevelWood); nbt.setInteger("ashLevelCoal", ashLevelCoal); nbt.setInteger("ashLevelMisc", ashLevelMisc); + nbt.setInteger("ashLevelFly", ashLevelFly); + nbt.setInteger("ashLevelSoot", ashLevelSoot); } AxisAlignedBB bb = null; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyBase.java index c942a55e7..e01b8352f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyBase.java @@ -11,10 +11,13 @@ import com.hbm.tileentity.TileEntityLoadedBase; import api.hbm.fluid.IFluidUser; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.util.ForgeDirection; public abstract class TileEntityChimneyBase extends TileEntityLoadedBase implements IFluidUser, INBTPacketReceiver { - + + public long ashTick = 0; + public long sootTick = 0; public int onTicks; @Override @@ -33,6 +36,19 @@ public abstract class TileEntityChimneyBase extends TileEntityLoadedBase impleme } } + if(ashTick > 0 || sootTick > 0) { + + TileEntity below = worldObj.getTileEntity(xCoord, yCoord - 1, zCoord); + + if(below instanceof TileEntityAshpit) { + TileEntityAshpit ashpit = (TileEntityAshpit) below; + ashpit.ashLevelFly += ashTick; + ashpit.ashLevelSoot += sootTick; + } + this.ashTick = 0; + this.sootTick = 0; + } + NBTTagCompound data = new NBTTagCompound(); data.setInteger("onTicks", onTicks); INBTPacketReceiver.networkPack(this, data, 150); @@ -46,6 +62,14 @@ public abstract class TileEntityChimneyBase extends TileEntityLoadedBase impleme } } } + + public boolean cpaturesAsh() { + return true; + } + + public boolean cpaturesSoot() { + return false; + } public void spawnParticles() { } @@ -62,6 +86,9 @@ public abstract class TileEntityChimneyBase extends TileEntityLoadedBase impleme @Override public long transferFluid(FluidType type, int pressure, long fluid) { onTicks = 20; + + if(cpaturesAsh()) ashTick += fluid; + if(cpaturesSoot()) sootTick += fluid; fluid *= getPollutionMod(); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyIndustrial.java b/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyIndustrial.java index abbabb942..f5a79dce4 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyIndustrial.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyIndustrial.java @@ -29,7 +29,12 @@ public class TileEntityChimneyIndustrial extends TileEntityChimneyBase { @Override public double getPollutionMod() { - return 0.25D; + return 0.1D; + } + + @Override + public boolean cpaturesSoot() { + return true; } AxisAlignedBB bb = null; diff --git a/src/main/java/com/hbm/util/InventoryUtil.java b/src/main/java/com/hbm/util/InventoryUtil.java index 8efc4be37..4e6a27661 100644 --- a/src/main/java/com/hbm/util/InventoryUtil.java +++ b/src/main/java/com/hbm/util/InventoryUtil.java @@ -375,6 +375,10 @@ public class InventoryUtil { return stacks; } + if(o instanceof ItemStack[][]) { + return (ItemStack[][]) o; + } + if(o instanceof AStack) { AStack astack = (AStack) o; ItemStack[] ext = astack.extractForNEI().toArray(new ItemStack[0]); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 0e75f8cdf..64edc30b5 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -2691,6 +2691,11 @@ item.powder_actinium_tiny.name=Kleiner Haufen Actiniumstaub item.powder_advanced_alloy.name=Fortgeschrittener Legierungsstaub item.powder_aluminium.name=Aluminiumstaub item.powder_asbestos.name=Asbeststaub +item.powder_ash.coal.name=Kohleasche +item.powder_ash.fly.name=Flugasche +item.powder_ash.misc.name=Asche +item.powder_ash.soot.name=Feiner Ruß +item.powder_ash.wood.name=Holzasche item.powder_astatine.name=Astatstaub item.powder_at209.name=Astat-209-Staub item.powder_au198.name=Gold-198-Staub diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index ac7c7b266..ccccc5e67 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -3497,7 +3497,9 @@ item.powder_aluminium.name=Aluminium Powder item.powder_asbestos.name=Asbestos Powder item.powder_asbestos.desc=§o\"Sniffffffff- MHHHHHHMHHHHHHHHH\"§r item.powder_ash.coal.name=Coal Ash +item.powder_ash.fly.name=Fly Ash item.powder_ash.misc.name=Ash +item.powder_ash.soot.name=Fine Soot item.powder_ash.wood.name=Wood Ash item.powder_astatine.name=Astatine Powder item.powder_at209.name=Astatine-209 Powder 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 0a44d83179874a478d27c7c7577f3e954de57015..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 245 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf*0F<#F=|x_20St}#5A^*-fH*NU|zTO>7Zc17}fK6()LR-jpO@%3e* sel^Em=mi;iD`~CJn{@PEsGXd=xUtIfWe0onfbM4SboFyt=akR{05UORzyJUM diff --git a/src/main/resources/assets/hbm/textures/items/powder_ash.soot.png b/src/main/resources/assets/hbm/textures/items/powder_ash.soot.png new file mode 100644 index 0000000000000000000000000000000000000000..664b4aa40705f7acb0d5c3d85c6342a74f0aefa6 GIT binary patch literal 299 zcmV+`0o4A9P)Iyck;&ka_vKfvEQj_`IS;G*< x`0Bem$GUU|v4!Pym%CqE;h&WKp|`$os&CBefFD~ffnopv002ovPDHLkV1h#UfGYq1 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/recycled_crystal.png b/src/main/resources/assets/hbm/textures/items/recycled_crystal.png deleted file mode 100644 index 89635cfbae6767779e818b2e2b715b22b0c34440..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 811 zcmV+`1JwM9P){F&~@ZSEYM^Eh{Qw)u5oJ2+30?`VS0&3B%c z_j|wRJl_lFJ-|^#F>{m2GgsLBt48+GXJVDssiAK8G}y=%hAd28Sb@ggfL{UN+yxHV zKrhR0+#m}f3uy1sVRjnO+D(w>lQ23pnD|mucvS`T_jNE0r$r4{gJ5t23!w~}t;cYt zL8tKkz7CQL93@#01l%7s0{}kQ>LAHkOb54-+}y^{qp*@wH30zN@pxddSa97p@+V?e z;-V;GY;3H$0!r|Dz2JEs03eEDrDf<%_`ji{Zn$*O$^gLU^OZSJvVP)goK%x6AU4|0 z!apQD7|E8!Up_qxaZ!Zl_IFZEat}oKBH|lGjJ`XM^|>?>sWf795}Z~&);Dw1a&!Ss zyB=JcVKKCc^l}z$t>v5waubG=1;p12a5mM#)~Hi)D##AB*bUH&3`^lHtj4nFbk~=0 zD##8*k}~3{0-Bq2ur=sZoC>-Fj^i+77?vU#2yqErm(69I3VIJD@>pKW!*Qw>RuiY< zRL~u0Hozzqu@v1xG9kg!Z7Jhb7Z6IwNU!G6*2+Q4b1F`Sas{cW9#&cduiN+irn{W= zXtC8H6qOK8=2V;tZtvm$+7OCM5P2Ccs}^iUtKw8B4n!t-nB3zUlY3m_=(b=#7hFyw zTy_IOF$qyVr{Wb0I0*XtI#@U^A;QaWn6)@<)M78McqDUlTa+t^O!DZwGo$*d34(x! z&vu^g^-72edAM7Q$P^10c%B2GuY4rieQ2o>|0bd|lD!z&8Oet429@}c9LY#mPz`VZ zU~-RZQd2#wwCc p4xgW#WN)vXV5OhbLpih>_zeJ~rQ{6LFKhq+002ovPDHLkV1i+(aH{|S diff --git a/src/main/resources/assets/hbm/textures/items/recycled_electronic.png b/src/main/resources/assets/hbm/textures/items/recycled_electronic.png deleted file mode 100644 index 6076ee25128d20e7cd4aad35f28018156c5392a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 469 zcmV;`0V@89P) z_74z5GsFaHXbhDLZfU53ge>hsI`Q7U{$xP*OQuj|Q<=^`W&2u0M)6;pVjxz+Ob7iAY z*=`>uJqXq?oaOJbG6YhwsOuN78$j|Gf=~t82Wf!x+}(#|3<2Q!&^as+h;C1+D~Y6? zQVUsKG|N7DqoQ&NCcW*|&!=Udc>~XZr64BY>US8ml#SleYo`boRRl(sn#kR8-Un(T zZf4196l6EjaSHOF4YR(Ug5K1v1cSCpB**ouqB3C9Ba+4HpFdL_uHK}v9kc;i5`F_Y SbeB*70000rX<~C0o1NW@e}Xu$unhCf_kA-1{|p6icYRs@1+=2h>-`N^kD00g zyiw=r;TC{aX~@yMPtyvh(N9=UQaZgDfLXo*payWvhE{2$xQ&5c%zT_l&WutbV5u~g z^aCht1AxWU7H@Zb^e~}2uz%NRYY?J>4FE^ZLZhDu*jaInBMtm8C9$xcq+o1e)bvst zeJu@_O0!hh+Owut5XR{+5kUA{&Wx(V6${}2-K4`qYkv!N{~7H;T(JjyRS^2t z!-Pm9FJ#;g1#od5m+rQI3%9KjIAO!{OQ8;e4#g+5GL0jNMXH1V0000qC diff --git a/src/main/resources/assets/hbm/textures/items/recycled_metal.png b/src/main/resources/assets/hbm/textures/items/recycled_metal.png deleted file mode 100644 index b1f504225583ead06cf7eca0d60c02752a44d725..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 376 zcmV-;0f+vHP)RQilv>%}n;H@luAw#ttn~#YvW)ox7KNPY3_R2%xH}?V-ZDu8~rX#{PqkJe9#c z(~3NmWLg2BwFcm5*jWgH5Q6KM1#N>nPv>$-1;9D5e{7rXK3|p0S0w=VrxW*02!S!i zHE<3xt(@4$!^MOs0rqSubkKCf=(u}}8*6KvR!r;-zWwR;Ei&(eu4{QB{1 z8t{KL0JwcEcaE|PL4(>xE*9#f#^xz9;}=8i#~Q8SFGT6vsc~&hG5YYL2<92K_lCT>_K9z(Y5?u7?N-0-0dz zVnmd5=+eDY5~4)12(&E^qj`T)EfXA>HyO;;cx)k^a#~e z+#KmO09dZbXv!v{kO4pjux%JUeF1R507LH*4A0*uzp_T6Z^*4FMW^mp_j(G1Rbp`L zwo3+RZ*Ql0P37U)A(RLpc9~b)@)Y>|A(8`^VbuXDZ6JR5_`Z?l%H(6x=``VR*d@oK z2A!{BJ3Xk!`Kbp0k#W2Vsu^Pfy8R~Goz28^cK{?6I_wSzDb5Aeqi2z_UyUhPX9z~O&p@;j$#CzQ<`Y6$B@89SSW+7<}J(4v*x$YIAHvWCmsZ6rZ|r%GN;tvz=J yY85PRrI5z?wGhi>RM_bixz6@q@HyAU_P{rkGgiZ8k}5O+0000U>{6%m4}=W} z+S;sLlr*9&5=o=!7OPzxve58&qUYPGlEd(P^h zTDpIDyW?EMUd6ufWx+B$0$|pQ9YSj;nDt`1<34GYGa0=C;M+x-tO*N=In$16m}WV? zEKHqopcNNVeMgBPN(8VW>wik<%XOd?ZTPZa){6;3V9%6X2T~OVhtO`;N!N{Sw3~G< zPX{nMDbD~Px)tWFHc8{+c;LDOXw)__`LZafrdeJ}#cA;VIalh5aFW=D9;OX51Fbsk z#AXfv-Ep7i^o7L->$Ow06L#!@fu|yC4FzeID_3iB5V}iN+2#h}CU0%o-U*GJ4)lga zi696u$5ylxLBHxO7Aw8m8jV`j40j*yub;eM3;u#1DQt%Zu=8j{00000NkvXXu0mjf DTYaoc diff --git a/src/main/resources/assets/hbm/textures/items/recycled_overlay.png b/src/main/resources/assets/hbm/textures/items/recycled_overlay.png deleted file mode 100644 index e3d5183a671a77b26720fd79c32090001520370e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 278 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfvq(v%j7s7>(;Z%J=Iy|Y!kHhX&Q^!7XPaU&mIWLH-7az z;rVMGxBYYX{$!stPbWL|cB@(ba?Nb#-!=K0-~4Ymys>$uv(xMoUPrrb&iUxw^ITKC ag5m5--*Wcl7ajpU#^CAd=d#Wzp$PzAg>caT diff --git a/src/main/resources/assets/hbm/textures/items/recycled_refined.png b/src/main/resources/assets/hbm/textures/items/recycled_refined.png deleted file mode 100644 index 2c346dbbda5977d5d4c0fa2668399568e7e4c2cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 399 zcmV;A0dW3_P)qjy~v!n#kkkn0qm`3fNz)j)6&65dS9iXaU zW^MvY6&f>Dw`5EZnk*%RWL?D&ukX>4+8jhaz0QOn@&Oo(J^{xjdd!p#Ufa@{3s_=Hb*~ zICTIxJ4)4?ZRRYNhFYK$1d*@EdUfaFU>5M@*s$OFmnNtK9tmC z?-a2U*a2H|00NjLm0u~ymaB)XUgj;92A2Di1t~dW_fDtrJfTQ4#`6S#JkJ3*1FWKmbO8Grd-+RdF%iKz2Y@js z(u{&88Q|x2#>FB*MEJa&!67Ch#2BrqG0=``-g^L6(-{K?98`)ic1G)~XhoVq-6Rf1 z-PxJ%-~4EOlZGEjv9&Xb0&f)wbzM?_4E&Il@qCXeTd0n~~#JE3nQXtn#VCA63m z!0{$dH1N+)#8GULj&x8B_FE2T2X`M!)^6R705BRIDc5UOHl8prw1 ziU@^kZy|rl$aS>CO~e?fs*25S(-l#J02hmdfy3TvIx|g_kv8oEgb?huxw)ovCEr(< l_Co>WbrUbk(&+z-{Q`~hvKIYsX666@002ovPDHLkV1oH>y%PWc