From 65cda2b65b6fc6a5f843964b4895f8930fb8d277 Mon Sep 17 00:00:00 2001 From: Bob Date: Fri, 16 Feb 2024 22:07:17 +0100 Subject: [PATCH] almost forgot about this one --- .../hbm/handler/nei/BoilerRecipeHandler.java | 121 +++++++++--------- .../hbm/handler/nei/HydrotreatingHandler.java | 16 +++ .../hbm/inventory/gui/GUILaunchPadLarge.java | 4 +- .../recipes/HydrotreatingRecipes.java | 2 +- .../com/hbm/items/weapon/ItemMissile.java | 1 + src/main/java/com/hbm/main/NEIConfig.java | 1 + .../bomb/TileEntityLaunchPadLarge.java | 104 +++++++-------- .../models/launchpad/erector_atlas.png | Bin 3599 -> 14476 bytes .../models/launchpad/erector_huge.png | Bin 2310 -> 10488 bytes 9 files changed, 132 insertions(+), 117 deletions(-) create mode 100644 src/main/java/com/hbm/handler/nei/HydrotreatingHandler.java diff --git a/src/main/java/com/hbm/handler/nei/BoilerRecipeHandler.java b/src/main/java/com/hbm/handler/nei/BoilerRecipeHandler.java index 5d966c2b8..776261ac4 100644 --- a/src/main/java/com/hbm/handler/nei/BoilerRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/BoilerRecipeHandler.java @@ -17,34 +17,33 @@ import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; public class BoilerRecipeHandler extends TemplateRecipeHandler { - - public LinkedList transferRectsRec = new LinkedList(); - public LinkedList transferRectsGui = new LinkedList(); - public LinkedList> guiRec = new LinkedList>(); - public LinkedList> guiGui = new LinkedList>(); - public class SmeltingSet extends TemplateRecipeHandler.CachedRecipe - { - PositionedStack input; - PositionedStack result; - - public SmeltingSet(ItemStack input, ItemStack result) { - input.stackSize = 1; - this.input = new PositionedStack(input, 21 + 9, 6 + 18); - this.result = new PositionedStack(result, 120, 24); - } + public LinkedList transferRectsRec = new LinkedList(); + public LinkedList transferRectsGui = new LinkedList(); + public LinkedList> guiRec = new LinkedList>(); + public LinkedList> guiGui = new LinkedList>(); - @Override + public class SmeltingSet extends TemplateRecipeHandler.CachedRecipe { + PositionedStack input; + PositionedStack result; + + public SmeltingSet(ItemStack input, ItemStack result) { + input.stackSize = 1; + this.input = new PositionedStack(input, 21 + 9, 6 + 18); + this.result = new PositionedStack(result, 120, 24); + } + + @Override public List getIngredients() { - return getCycledIngredients(cycleticks / 48, Arrays.asList(new PositionedStack[] {input})); - } + return getCycledIngredients(cycleticks / 48, Arrays.asList(new PositionedStack[] { input })); + } - @Override + @Override public PositionedStack getResult() { - return result; - } - } - + return result; + } + } + @Override public String getRecipeName() { return "Boiler"; @@ -55,23 +54,22 @@ public class BoilerRecipeHandler extends TemplateRecipeHandler { return RefStrings.MODID + ":textures/gui/nei/gui_nei_boiler.png"; } - @Override - public Class getGuiClass() { - return null; - } + @Override + public Class getGuiClass() { + return null; + } + + @Override + public TemplateRecipeHandler newInstance() { + return super.newInstance(); + } - @Override - public TemplateRecipeHandler newInstance() { - return super.newInstance(); - } - @Override public void loadCraftingRecipes(String outputId, Object... results) { - if ((outputId.equals("ntmboiler")) && getClass() == BoilerRecipeHandler.class) { + if((outputId.equals("ntmboiler")) && getClass() == BoilerRecipeHandler.class) { Map recipes = MachineRecipes.instance().getBoilerRecipes(); - for (Map.Entry recipe : recipes.entrySet()) { - this.arecipes.add(new SmeltingSet((ItemStack)recipe.getKey(), - (ItemStack)recipe.getValue())); + for(Map.Entry recipe : recipes.entrySet()) { + this.arecipes.add(new SmeltingSet((ItemStack) recipe.getKey(), (ItemStack) recipe.getValue())); } } else { super.loadCraftingRecipes(outputId, results); @@ -81,17 +79,15 @@ public class BoilerRecipeHandler extends TemplateRecipeHandler { @Override public void loadCraftingRecipes(ItemStack result) { Map recipes = MachineRecipes.instance().getBoilerRecipes(); - for (Map.Entry recipe : recipes.entrySet()) { - if (compareFluidStacks((ItemStack)recipe.getValue(), result) || - compareFluidStacks((ItemStack)recipe.getValue(), result)) - this.arecipes.add(new SmeltingSet((ItemStack)recipe.getKey(), - (ItemStack)recipe.getValue())); + for(Map.Entry recipe : recipes.entrySet()) { + if(compareFluidStacks((ItemStack) recipe.getValue(), result) || compareFluidStacks((ItemStack) recipe.getValue(), result)) + this.arecipes.add(new SmeltingSet((ItemStack) recipe.getKey(), (ItemStack) recipe.getValue())); } } @Override public void loadUsageRecipes(String inputId, Object... ingredients) { - if ((inputId.equals("ntmboiler")) && getClass() == BoilerRecipeHandler.class) { + if((inputId.equals("ntmboiler")) && getClass() == BoilerRecipeHandler.class) { loadCraftingRecipes("ntmboiler", new Object[0]); } else { super.loadUsageRecipes(inputId, ingredients); @@ -101,32 +97,31 @@ public class BoilerRecipeHandler extends TemplateRecipeHandler { @Override public void loadUsageRecipes(ItemStack ingredient) { Map recipes = MachineRecipes.instance().getBoilerRecipes(); - for (Map.Entry recipe : recipes.entrySet()) { - if (compareFluidStacks(ingredient, (ItemStack)recipe.getKey())) - this.arecipes.add(new SmeltingSet((ItemStack)recipe.getKey(), - (ItemStack)recipe.getValue())); + for(Map.Entry recipe : recipes.entrySet()) { + if(compareFluidStacks(ingredient, (ItemStack) recipe.getKey())) + this.arecipes.add(new SmeltingSet((ItemStack) recipe.getKey(), (ItemStack) recipe.getValue())); } } - + private boolean compareFluidStacks(ItemStack sta1, ItemStack sta2) { return sta1.getItem() == sta2.getItem() && sta1.getItemDamage() == sta2.getItemDamage(); } - @Override - public void drawExtras(int recipe) { - drawProgressBar(80, 23, 0, 85, 6, 17, 240, 3); - } - - @Override - public void loadTransferRects() { - transferRectsGui = new LinkedList(); - guiGui = new LinkedList>(); + @Override + public void drawExtras(int recipe) { + drawProgressBar(80, 23, 0, 85, 6, 17, 240, 3); + } - transferRects.add(new RecipeTransferRect(new Rectangle(138 - 1 - 36 - 27 - 9, 23, 36, 18), "ntmboiler")); - transferRectsGui.add(new RecipeTransferRect(new Rectangle(18 * 2 + 2 + 36, 89 - 29 - 18 - 18, 18, 18 * 2), "ntmboiler")); - guiGui.add(GUIMachineBoiler.class); - guiGui.add(GUIMachineBoilerElectric.class); - RecipeTransferRectHandler.registerRectsToGuis(getRecipeTransferRectGuis(), transferRects); - RecipeTransferRectHandler.registerRectsToGuis(guiGui, transferRectsGui); - } + @Override + public void loadTransferRects() { + transferRectsGui = new LinkedList(); + guiGui = new LinkedList>(); + + transferRects.add(new RecipeTransferRect(new Rectangle(138 - 1 - 36 - 27 - 9, 23, 36, 18), "ntmboiler")); + transferRectsGui.add(new RecipeTransferRect(new Rectangle(18 * 2 + 2 + 36, 89 - 29 - 18 - 18, 18, 18 * 2), "ntmboiler")); + guiGui.add(GUIMachineBoiler.class); + guiGui.add(GUIMachineBoilerElectric.class); + RecipeTransferRectHandler.registerRectsToGuis(getRecipeTransferRectGuis(), transferRects); + RecipeTransferRectHandler.registerRectsToGuis(guiGui, transferRectsGui); + } } diff --git a/src/main/java/com/hbm/handler/nei/HydrotreatingHandler.java b/src/main/java/com/hbm/handler/nei/HydrotreatingHandler.java new file mode 100644 index 000000000..81a932ddb --- /dev/null +++ b/src/main/java/com/hbm/handler/nei/HydrotreatingHandler.java @@ -0,0 +1,16 @@ +package com.hbm.handler.nei; + +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.recipes.HydrotreatingRecipes; + +public class HydrotreatingHandler extends NEIUniversalHandler { + + public HydrotreatingHandler() { + super("Hydrotreating", ModBlocks.machine_hydrotreater, HydrotreatingRecipes.getRecipes()); + } + + @Override + public String getKey() { + return "ntmHydrotreating"; + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUILaunchPadLarge.java b/src/main/java/com/hbm/inventory/gui/GUILaunchPadLarge.java index e144595e2..713ff71d7 100644 --- a/src/main/java/com/hbm/inventory/gui/GUILaunchPadLarge.java +++ b/src/main/java/com/hbm/inventory/gui/GUILaunchPadLarge.java @@ -38,8 +38,8 @@ public class GUILaunchPadLarge extends GuiInfoContainer { super.drawScreen(mouseX, mouseY, f); this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 107, guiTop + 88 - 52, 16, 52, launchpad.power, launchpad.maxPower); - launchpad.tanks[0].renderTankInfo(this, mouseX, mouseY, guiLeft + 125, guiTop + 70 - 52, 16, 52); - launchpad.tanks[1].renderTankInfo(this, mouseX, mouseY, guiLeft + 143, guiTop + 70 - 52, 16, 52); + launchpad.tanks[0].renderTankInfo(this, mouseX, mouseY, guiLeft + 125, guiTop + 88 - 52, 16, 52); + launchpad.tanks[1].renderTankInfo(this, mouseX, mouseY, guiLeft + 143, guiTop + 88 - 52, 16, 52); } @Override diff --git a/src/main/java/com/hbm/inventory/recipes/HydrotreatingRecipes.java b/src/main/java/com/hbm/inventory/recipes/HydrotreatingRecipes.java index 5836457a5..620d5b490 100644 --- a/src/main/java/com/hbm/inventory/recipes/HydrotreatingRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/HydrotreatingRecipes.java @@ -71,7 +71,7 @@ public class HydrotreatingRecipes extends SerializableRecipe { for(Entry> recipe : recipes.entrySet()) { map.put(new ItemStack[] { ItemFluidIcon.make(recipe.getKey(), 1000), - ItemFluidIcon.make(recipe.getValue().getX().type, recipe.getValue().getX().fill * 10) }, + ItemFluidIcon.make(recipe.getValue().getX().type, recipe.getValue().getX().fill * 10, 1) }, new ItemStack[] { ItemFluidIcon.make(recipe.getValue().getY().type, recipe.getValue().getY().fill * 10), ItemFluidIcon.make(recipe.getValue().getZ().type, recipe.getValue().getZ().fill * 10) }); diff --git a/src/main/java/com/hbm/items/weapon/ItemMissile.java b/src/main/java/com/hbm/items/weapon/ItemMissile.java index 1f2023494..74ac62c42 100644 --- a/src/main/java/com/hbm/items/weapon/ItemMissile.java +++ b/src/main/java/com/hbm/items/weapon/ItemMissile.java @@ -35,6 +35,7 @@ public class ItemMissile extends ItemCustomLore { public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { list.add(EnumChatFormatting.ITALIC + this.tier.display); list.add("Fuel: " + this.fuel.display); + if(this.fuelCap > 0) list.add("Fuel capacity: " + this.fuelCap + "mB"); super.addInformation(itemstack, player, list, bool); } diff --git a/src/main/java/com/hbm/main/NEIConfig.java b/src/main/java/com/hbm/main/NEIConfig.java index 8ee671107..d97c3e50f 100644 --- a/src/main/java/com/hbm/main/NEIConfig.java +++ b/src/main/java/com/hbm/main/NEIConfig.java @@ -42,6 +42,7 @@ public class NEIConfig implements IConfigureNEI { registerHandler(new VacuumRecipeHandler()); registerHandler(new CrackingHandler()); registerHandler(new ReformingHandler()); + registerHandler(new HydrotreatingHandler()); registerHandler(new BoilerRecipeHandler()); registerHandler(new ChemplantRecipeHandler()); registerHandler(new CrystallizerRecipeHandler()); diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadLarge.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadLarge.java index cf826d0d4..32cbc093b 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadLarge.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadLarge.java @@ -75,60 +75,62 @@ public class TileEntityLaunchPadLarge extends TileEntityLaunchPadBase implements delay = 20; } - if(delay > 0) { - delay--; - - if(delay < 10 && scheduleErect) { - this.erected = true; - this.scheduleErect = false; - } - - // if there is no missile or the missile isn't ready (i.e. the erector hasn't returned to zero position yet), retract - if(slots[0] == null || !readyToLoad) { - //fold back erector - if(erector < 90F) { - erector = Math.min(erector + erectorSpeed, 90F); - if(erector == 90F) delay = 20; - //extend lift - } else if(lift < 1F) { - lift = Math.min(lift + liftSpeed, 1F); - if(erector == 1F) { - //if the lift is fully extended, the loading can begin - readyToLoad = true; - delay = 20; - } - } - } - - } else { - - //only extend if the erector isn't up yet and the missile can be loaded - if(!erected && readyToLoad) { - //first, rotate the erector - if(erector != 0F) { - erector = Math.max(erector - erectorSpeed, 0F); - if(erector == 0F) delay = 20; - //then retract the lift - } else if(lift > 0) { - lift = Math.max(lift - liftSpeed, 0F); - if(lift == 0F) { - //once the lift is at the bottom, the missile is deployed - scheduleErect = true; - delay = 20; + if(this.power >= 75_000) { + if(delay > 0) { + delay--; + + if(delay < 10 && scheduleErect) { + this.erected = true; + this.scheduleErect = false; + } + + // if there is no missile or the missile isn't ready (i.e. the erector hasn't returned to zero position yet), retract + if(slots[0] == null || !readyToLoad) { + //fold back erector + if(erector < 90F) { + erector = Math.min(erector + erectorSpeed, 90F); + if(erector == 90F) delay = 20; + //extend lift + } else if(lift < 1F) { + lift = Math.min(lift + liftSpeed, 1F); + if(erector == 1F) { + //if the lift is fully extended, the loading can begin + readyToLoad = true; + delay = 20; + } } } + } else { - //first, fold back the erector - if(erector < 90F) { - erector = Math.min(erector + erectorSpeed, 90F); - if(erector == 90F) delay = 20; - //then extend the lift again - } else if(lift < 1F) { - lift = Math.min(lift + liftSpeed, 1F); - if(erector == 1F) { - //if the lift is fully extended, the loading can begin - readyToLoad = true; - delay = 20; + + //only extend if the erector isn't up yet and the missile can be loaded + if(!erected && readyToLoad) { + //first, rotate the erector + if(erector != 0F) { + erector = Math.max(erector - erectorSpeed, 0F); + if(erector == 0F) delay = 20; + //then retract the lift + } else if(lift > 0) { + lift = Math.max(lift - liftSpeed, 0F); + if(lift == 0F) { + //once the lift is at the bottom, the missile is deployed + scheduleErect = true; + delay = 20; + } + } + } else { + //first, fold back the erector + if(erector < 90F) { + erector = Math.min(erector + erectorSpeed, 90F); + if(erector == 90F) delay = 20; + //then extend the lift again + } else if(lift < 1F) { + lift = Math.min(lift + liftSpeed, 1F); + if(erector == 1F) { + //if the lift is fully extended, the loading can begin + readyToLoad = true; + delay = 20; + } } } } diff --git a/src/main/resources/assets/hbm/textures/models/launchpad/erector_atlas.png b/src/main/resources/assets/hbm/textures/models/launchpad/erector_atlas.png index 279b1a92de02f7d5a29dd44cc0b0f7f5f6151f03..0513ab1247ff7c8ed8b5c28a4b7305646ca32f65 100644 GIT binary patch literal 14476 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 literal 2310 zcma)8e>~Is8lUE#Mme11R69(a+f8!(=q4RaHspwmW6_Qgu`7$DbjVgSu8b6J$Bkml z5(=|w=Eueg$B!dpVHpdZtC?RjjP1;fv&uQQ+qtj%y5B#(-|y@7d_K?fexCQ|{XC!R z-+H;}>4J3u0DzwRv7<-;K+9J1{|xkr=AFJo*{%6#UvhT$1!zp(Yc$OHwm@dcV1EQQnC$5+^Yo4>Z|4z}WDH zH)weQ#A_YQ<6=&4?by^|@H7!H^_p#*wdXI$l?pdXPpFCOt*6;EIwf`GR_B&vbV)T0 zT{uuV8i%Vv^BaoBjiPeH{ZBHceJXofIu+4Y3yX8zJurmS+xCargrMcz1=l>eH2R#P z6as(;Yl96)aA0$M^pqCB5MM)c{6=}7f{E5Y8J)EY)^P$~V9F^NnC{0q?6cjuIq8#Y zyLgE<#x9sLNf}=@k=I#x2r75-)L*D2a=N2UP5-sT8pOX{X#^%esc69Ch6j6COQ!s< zOzYt&s#eGYUSiX$t|QZj^=alt?;{&v;oCE*TFJPAkr6swHqVF}!8+d8)dLmBrqm$T zD(ZpLeY3^x=Ay}aF}R$BGi~;dvNcwhBCQb6zad5R#8maVN(Q@P@rMOF+GAS>d;M5~ zml@(@u5~Kd!h&FsB_h z){-&ThVC@!7(eyOb)@yS#yyZT5O<>N@+E<$z_H1z$kS>2$|ZJU9y-E41m8#&%^c{j zzWa=dt|i9~pvQq5UsOf9u3LAFQ@K=Te@yeDvo;v+;dFlP>(rOX=Q@3xeE!3L_Odk7 z-g3`5-zD;)=-Olo$Tsnx)nv36X!p?+yY(HPVFBi6?U`hQV`;ikpVCTl3`#_vXyGiw%PJ% z(eK3=GDaV_G>fH$8MdZZRT)__b7)&FSRFL17|!;@i56H4O6;_CL=H4S*VbsgE)EDp z=53~5QhR-1Jr>dZ*r0#<{^vm`$5 z2|a=qzgZGPU^o19m%C@y*yV~XSMrRsA$5`ODMR+Z5ukIAQ__u4!;hIAGVYWyp-93;^puxL;T>O8<(9D5(w2u{ zErQEC*JQBS1T|&VUvM%(Rrk}5F4pzB)}2LzdPW6akR!6)oaP9QgF1hFISKYvhJUa8clBirLYNnul zDXJEVva$X^*z3*Utt2%Li)9YgENS04l{!CmdX1z0N1|bgGq8Ex`jG(T-7ZilRH$rB zAs#oCTve-83hBy&du*^d}(h%)E8Hv3gj>* zL2)42-bd3SJ`nW>a2RVr-I!W0zN`*R447a@YWT~CR(%*NZps2vSVD|icG#MZi(+1a zgr101G+C^Mj&6ex$>q7kU_p2I!Dx@+1@FQ`!JK2b<;x*Tx^9nAZrSa#_)GVG%O_*- z0b5T+Hg4JOeHUKLbnTqZx^6PDXD*q`1d*A{HQS6@i^6t!Jc=4^)M9YwiDuSO6Aye^0{CGdPQO4_39EhAAPY6vtELXcd zvM~PKq=Ld42#Wi9_TZ24DT5ckrM@`k2U_H}-EIke0Q@EOCaMA#s11hd`Q6>jZ_^`$ zCgBXRGfcY2}R z(b<9Ikv+B?XL=4YEl-^|i!#F3ypbF4l(IRDjnvr*wM1_EeVB z5&_1<2w^sm4`$QoK8=61vI#+&%XU|c5Z3xQS1zD^-^=NbdAD`ruqa`* zN#sr+OJoit%p4jI?5Sy4H3<|YpNF*h22gbvtMS$$#7#T3Av28_ xO9Mf1174Y3In1|2O;3p`_zzP3{s?cLXf#!azvZsltGU*MoZSMd8