@@ -12,12 +12,14 @@ import com.simibubi.create.foundation.item.ItemHelper
1212import com.simibubi.create.foundation.utility.CreateLang
1313import mezz.jei.api.gui.builder.IRecipeLayoutBuilder
1414import mezz.jei.api.gui.builder.IRecipeSlotBuilder
15+ import mezz.jei.api.gui.drawable.IDrawable
1516import mezz.jei.api.gui.ingredient.IRecipeSlotsView
1617import mezz.jei.api.recipe.IFocusGroup
1718import mezz.jei.api.recipe.RecipeIngredientRole
1819import net.minecraft.client.Minecraft
1920import net.minecraft.client.gui.GuiGraphics
2021import net.minecraft.world.item.ItemStack
22+ import org.valkyrienskies.clockwork.ClockworkGuiTextures
2123import org.valkyrienskies.clockwork.content.logistics.gas.crafter.GasCraftingRecipe
2224import org.valkyrienskies.kelvin.api.recipe.KelvinGasIngredient
2325import org.valkyrienskies.kelvin.integration.jei.GasIngredientRenderer
@@ -27,19 +29,17 @@ import javax.annotation.ParametersAreNonnullByDefault
2729
2830
2931@ParametersAreNonnullByDefault
30- class GasCrafterCategory (info : Info <GasCraftingRecipe >) : CreateRecipeCategory<GasCraftingRecipe>(info) {
32+ class GasCrafterCategory (val info : Info <GasCraftingRecipe >) : CreateRecipeCategory<GasCraftingRecipe>(info) {
3133 private val crafter = AnimatedGasCrafter ()
3234 private val heater = AnimatedBlazeBurner ()
3335
34-
3536 override fun draw (
3637 recipe : GasCraftingRecipe ,
3738 iRecipeSlotsView : IRecipeSlotsView ,
3839 graphics : GuiGraphics ,
3940 mouseX : Double ,
4041 mouseY : Double
4142 ) {
42-
4343 val requiredHeat = recipe.getRequiredHeat()
4444
4545 val noHeat = requiredHeat == HeatCondition .NONE
@@ -63,13 +63,25 @@ class GasCrafterCategory(info: Info<GasCraftingRecipe>) : CreateRecipeCategory<G
6363 if (requiredHeat != HeatCondition .NONE ) heater.withHeat(requiredHeat.visualizeAsBlazeBurner())
6464 .draw(graphics, getBackground()!! .getWidth() / 2 + 3 , 55 )
6565 crafter.draw(graphics, getBackground()!! .getWidth() / 2 + 3 , 34 )
66+
67+
68+ var i = if (requiredHeat == HeatCondition .NONE ) 0 else 1
69+
70+ if (recipe.gasRecipe?.requirements != null )
71+ recipe.gasRecipe!! .requirements.forEach {
72+ ClockworkGuiTextures .JEI_DARKER_BAR .render(graphics, 4 , 80 + 20 * i)
73+ graphics.drawString(Minecraft .getInstance().font, it.key.get_text(it.value), 7 , 85 + 20 * i, 16777215 )
74+ i++
75+ }
6676 }
6777
6878 override fun setRecipe (
6979 builder : IRecipeLayoutBuilder ,
7080 recipe : GasCraftingRecipe ,
7181 focuses : IFocusGroup
7282 ) {
83+ (background as ? GasCraftingRecipeBackground )?.currentRecipe = recipe
84+
7385 val condensedIngredients = ItemHelper .condenseIngredients(recipe.getIngredients())
7486
7587 var size = condensedIngredients.size + recipe.getFluidIngredients().size + (recipe.gasRecipe?.gasses?.size ? : 0 )
@@ -147,6 +159,25 @@ class GasCrafterCategory(info: Info<GasCraftingRecipe>) : CreateRecipeCategory<G
147159 }
148160 }
149161
162+ object GasCraftingRecipeBackground : IDrawable {
163+ var currentRecipe: GasCraftingRecipe ? = null
164+
165+ override fun getWidth (): Int = 177
166+
167+ override fun getHeight (): Int {
168+ val recipe = currentRecipe ? : return 103
169+
170+
171+ val requirementCount = recipe.gasRecipe?.requirements?.size ? : return 103
172+ val calculatedHeight = 103 + (requirementCount * 20 )
173+
174+ return calculatedHeight
175+ }
176+
177+ override fun draw (guiGraphics : GuiGraphics , xOffset : Int , yOffset : Int ) {
178+ // Empty background
179+ }
180+ }
150181
151182 companion object {
152183
0 commit comments