From 6b23588aa706a4b9a6d39ef34599fa96e737b60b Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 17 Feb 2023 14:51:35 +0100 Subject: [PATCH] and now for something completely different --- .../java/com/hbm/crafting/PowderRecipes.java | 12 +++ .../com/hbm/inventory/OreDictManager.java | 7 ++ .../recipes/CrystallizerRecipes.java | 9 ++ src/main/java/com/hbm/items/ModItems.java | 3 + .../hbm/items/machine/ItemChemicalDye.java | 79 ++++++++++++++++++ .../TileEntityMachineCatalyticCracker.java | 4 +- .../hbm/textures/items/chemical_dye.png | Bin 0 -> 226 bytes .../textures/items/chemical_dye_overlay.png | Bin 0 -> 163 bytes .../assets/hbm/textures/items/ingot_pet.png | Bin 0 -> 250 bytes .../items/{plastic.png => ingot_pvc.png} | Bin 10 files changed, 112 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/hbm/items/machine/ItemChemicalDye.java create mode 100644 src/main/resources/assets/hbm/textures/items/chemical_dye.png create mode 100644 src/main/resources/assets/hbm/textures/items/chemical_dye_overlay.png create mode 100644 src/main/resources/assets/hbm/textures/items/ingot_pet.png rename src/main/resources/assets/hbm/textures/items/{plastic.png => ingot_pvc.png} (100%) diff --git a/src/main/java/com/hbm/crafting/PowderRecipes.java b/src/main/java/com/hbm/crafting/PowderRecipes.java index 457bf5f5b..f2fac3c27 100644 --- a/src/main/java/com/hbm/crafting/PowderRecipes.java +++ b/src/main/java/com/hbm/crafting/PowderRecipes.java @@ -4,6 +4,7 @@ import static com.hbm.inventory.OreDictManager.*; import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemChemicalDye.EnumChemDye; import com.hbm.main.CraftingManager; import net.minecraft.init.Blocks; @@ -69,6 +70,17 @@ public class PowderRecipes { CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_flux, 4), new Object[] { F.dust(), KEY_SAND }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_flux, 8), new Object[] { PB.dust(), S.dust(), KEY_SAND }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_flux, 16), new Object[] { BORAX.dust(), KEY_SAND }); + + //Unleash the colores + CraftingManager.addShapelessAuto(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.GRAY, 2), new Object[] { DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.BLACK), DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.WHITE) }); + CraftingManager.addShapelessAuto(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.SILVER, 2), new Object[] { DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.GRAY), DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.WHITE) }); + CraftingManager.addShapelessAuto(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.ORANGE, 2), new Object[] { DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.RED), DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.YELLOW) }); + CraftingManager.addShapelessAuto(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.LIME, 2), new Object[] { DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.GREEN), DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.WHITE) }); + CraftingManager.addShapelessAuto(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.CYAN, 2), new Object[] { DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.BLUE), DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.GREEN) }); + CraftingManager.addShapelessAuto(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.PURPLE, 2), new Object[] { DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.RED), DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.BLUE) }); + CraftingManager.addShapelessAuto(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.BROWN, 2), new Object[] { DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.ORANGE), DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.BLACK) }); + CraftingManager.addShapelessAuto(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.MAGENTA, 2), new Object[] { DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.RED), DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.PURPLE) }); + CraftingManager.addShapelessAuto(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.LIGHTBLUE, 2), new Object[] { DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.BLUE), DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.WHITE) }); } } diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index df00c0ced..37a27d366 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -480,6 +480,13 @@ public class OreDictManager { OreDictionary.registerOre("slabWoodPink", pink_slab); OreDictionary.registerOre("stairWood", pink_stairs); OreDictionary.registerOre("stairWoodPink", pink_stairs); + + String[] dyes = { "Black", "Red", "Green", "Brown", "Blue", "Purple", "Cyan", "LightGray", "Gray", "Pink", "Lime", "Yellow", "LightBlue", "Magenta", "Orange", "White" }; + for(int i = 0; i < 16; i++) { + String dyeName = "dye" + dyes[i]; + OreDictionary.registerOre(dyeName, new ItemStack(ModItems.chemical_dye, 1, i)); + OreDictionary.registerOre("dye", new ItemStack(ModItems.chemical_dye, 1, i)); + } OreDictionary.registerOre("dyeRed", cinnebar); OreDictionary.registerOre("dye", cinnebar); diff --git a/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java b/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java index 1d52b055d..1c08229f6 100644 --- a/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java @@ -13,6 +13,7 @@ import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemChemicalDye.EnumChemDye; import com.hbm.items.machine.ItemFluidIcon; import com.hbm.items.special.ItemBedrockOre.EnumBedrockOre; import com.hbm.items.special.ItemPlasticScrap.ScrapType; @@ -110,6 +111,14 @@ public class CrystallizerRecipes { registerRecipe(new ComparableStack(ModItems.ore_nitrocrystalline, 1, i), new CrystallizerRecipe(new ItemStack(ModItems.ore_deepcleaned, 1, i), oreTime), organic); } + FluidStack woodOil = new FluidStack(Fluids.WOODOIL, 100); + registerRecipe(COAL.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.BLACK, 4), 20), woodOil); + registerRecipe(TI.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.WHITE, 4), 20), woodOil); + registerRecipe(IRON.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.RED, 4), 20), woodOil); + registerRecipe(W.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.YELLOW, 4), 20), woodOil); + registerRecipe(CU.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.GREEN, 4), 20), woodOil); + registerRecipe(CO.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.BLUE, 4), 20), woodOil); + List quartz = OreDictionary.getOres("crystalCertusQuartz"); if(quartz != null && !quartz.isEmpty()) { diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 6de12e9eb..7dbe2982d 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -332,6 +332,7 @@ public class ModItems { public static Item thruster_nuclear; public static Item safety_fuse; public static Item part_generic; + public static Item chemical_dye; public static Item undefined; @@ -2764,6 +2765,7 @@ public class ModItems { thruster_nuclear = new Item().setUnlocalizedName("thruster_nuclear").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":thruster_nuclear"); safety_fuse = new Item().setUnlocalizedName("safety_fuse").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":safety_fuse"); part_generic = new ItemGenericPart().setUnlocalizedName("part_generic").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":part_generic"); + chemical_dye = new ItemChemicalDye().setUnlocalizedName("chemical_dye").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":chemical_dye"); undefined = new ItemCustomLore().setUnlocalizedName("undefined").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":undefined"); @@ -6355,6 +6357,7 @@ public class ModItems { GameRegistry.registerItem(chlorine_pinwheel, chlorine_pinwheel.getUnlocalizedName()); GameRegistry.registerItem(ring_starmetal, ring_starmetal.getUnlocalizedName()); GameRegistry.registerItem(deuterium_filter, deuterium_filter.getUnlocalizedName()); + GameRegistry.registerItem(chemical_dye, chemical_dye.getUnlocalizedName()); GameRegistry.registerItem(part_generic, part_generic.getUnlocalizedName()); GameRegistry.registerItem(parts_legendary, parts_legendary.getUnlocalizedName()); GameRegistry.registerItem(gear_large, gear_large.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/machine/ItemChemicalDye.java b/src/main/java/com/hbm/items/machine/ItemChemicalDye.java new file mode 100644 index 000000000..02e37d2da --- /dev/null +++ b/src/main/java/com/hbm/items/machine/ItemChemicalDye.java @@ -0,0 +1,79 @@ +package com.hbm.items.machine; + +import com.hbm.items.ItemEnumMulti; +import com.hbm.lib.RefStrings; +import com.hbm.util.EnumUtil; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; + +public class ItemChemicalDye extends ItemEnumMulti { + + protected IIcon overlayIcon; + + public ItemChemicalDye() { + super(EnumChemDye.class, true, false); + } + + @Override + @SideOnly(Side.CLIENT) + public boolean requiresMultipleRenderPasses() { + return true; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister reg) { + super.registerIcons(reg); + + this.overlayIcon = reg.registerIcon(RefStrings.MODID + ":chemical_dye_overlay"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIconFromDamageForRenderPass(int meta, int pass) { + return pass == 1 ? this.overlayIcon : super.getIconFromDamageForRenderPass(meta, pass); + } + + @Override + @SideOnly(Side.CLIENT) + public int getColorFromItemStack(ItemStack stack, int pass) { + + if(pass == 1) { + EnumChemDye dye = EnumUtil.grabEnumSafely(EnumChemDye.class, stack.getItemDamage()); + return dye.color; + } + + return 0xffffff; + } + + public static enum EnumChemDye { + BLACK(1973019, "Black"), + RED(11743532, "Red"), + GREEN(3887386, "Green"), + BROWN(5320730, "Brown"), + BLUE(2437522, "Blue"), + PURPLE(8073150, "Purple"), + CYAN(2651799, "Cyan"), + SILVER(11250603, "LightGray"), + GRAY(4408131, "Gray"), + PINK(14188952, "Pink"), + LIME(4312372, "Lime"), + YELLOW(14602026, "Yellow"), + LIGHTBLUE(6719955, "LightBlue"), + MAGENTA(12801229, "Magenta"), + ORANGE(15435844, "Orange"), + WHITE(15790320, "White"); + + public int color; + public String dictName; + + private EnumChemDye(int color, String name) { + this.color = color; + this.dictName = name; + } + } +} 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 4638ea2de..980717cce 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticCracker.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticCracker.java @@ -101,7 +101,7 @@ public class TileEntityMachineCatalyticCracker extends TileEntityLoadedBase impl int right = quart.getValue().fill; for(int i = 0; i < 2; i++) { - if(tanks[0].getFill() >= 100 && tanks[1].getFill() >= 100 && hasSpace(left, right)) { + if(tanks[0].getFill() >= 100 && tanks[1].getFill() >= 200 && hasSpace(left, right)) { tanks[0].setFill(tanks[0].getFill() - 100); tanks[1].setFill(tanks[1].getFill() - 200); tanks[2].setFill(tanks[2].getFill() + left); @@ -113,7 +113,7 @@ public class TileEntityMachineCatalyticCracker extends TileEntityLoadedBase impl } private boolean hasSpace(int left, int right) { - return tanks[2].getFill() + left <= tanks[2].getMaxFill() && tanks[3].getFill() + right <= tanks[3].getMaxFill() && tanks[4].getFill() + 200 <= tanks[4].getMaxFill(); + return tanks[2].getFill() + left <= tanks[2].getMaxFill() && tanks[3].getFill() + right <= tanks[3].getMaxFill() && tanks[4].getFill() + 2 <= tanks[4].getMaxFill(); } private void setupTanks() { diff --git a/src/main/resources/assets/hbm/textures/items/chemical_dye.png b/src/main/resources/assets/hbm/textures/items/chemical_dye.png new file mode 100644 index 0000000000000000000000000000000000000000..766efa75412cc5d0fb2b690b07bb749248ddb352 GIT binary patch literal 226 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf;HMShq^RNjZl_>Ch&fJ<1i|+SMbn14EN~I_79TuXJ;{ zv2CsVf>jd91?Lv7VmQ0!z4c|2Krcz*J#4b2cW&`k?8#yMaIgHV<@3ejKMvXd*!xam XW#qJ+%b8bzj%4t3^>bP0l+XkK&i_{D literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/chemical_dye_overlay.png b/src/main/resources/assets/hbm/textures/items/chemical_dye_overlay.png new file mode 100644 index 0000000000000000000000000000000000000000..b5fc80e1bdba5e5956f1f83e2189479315666146 GIT binary patch literal 163 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfzopr0ODvjs{jB1 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/ingot_pet.png b/src/main/resources/assets/hbm/textures/items/ingot_pet.png new file mode 100644 index 0000000000000000000000000000000000000000..adc153e758c77208e058861006485864f435f165 GIT binary patch literal 250 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfdjO_!RC53sIyv9YP8wI|`xdNt$E z@iXQ#{BeHutz+-*%lir|^8^|8e2?gF&+=oMWVw=kQv3I}vWyBX0Xj9!XI2)RV`Pv> zKFaib&Y2|)f0#7qZSxRq6%cS*@O{p!ZGj%fa|BPs+-}?)qpl^Kox5%}16NYdNn4={ wO)8&XS1mHWp`E&DtKJ#ss3oudB{=_LXh