aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/recipe/maps
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/api/recipe/maps')
-rw-r--r--src/main/java/gregtech/api/recipe/maps/PurificationUnitClarifierFrontend.java72
-rw-r--r--src/main/java/gregtech/api/recipe/maps/PurificationUnitFlocculatorFrontend.java99
-rw-r--r--src/main/java/gregtech/api/recipe/maps/PurificationUnitOzonationFrontend.java51
-rw-r--r--src/main/java/gregtech/api/recipe/maps/PurificationUnitPhAdjustmentFrontend.java79
-rw-r--r--src/main/java/gregtech/api/recipe/maps/PurificationUnitPlasmaHeaterFrontend.java59
-rw-r--r--src/main/java/gregtech/api/recipe/maps/PurificationUnitRecipeMapFrontend.java124
6 files changed, 484 insertions, 0 deletions
diff --git a/src/main/java/gregtech/api/recipe/maps/PurificationUnitClarifierFrontend.java b/src/main/java/gregtech/api/recipe/maps/PurificationUnitClarifierFrontend.java
new file mode 100644
index 0000000000..c7dad7ea3a
--- /dev/null
+++ b/src/main/java/gregtech/api/recipe/maps/PurificationUnitClarifierFrontend.java
@@ -0,0 +1,72 @@
+package gregtech.api.recipe.maps;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.annotation.ParametersAreNonnullByDefault;
+
+import com.gtnewhorizons.modularui.api.drawable.FallbackableUITexture;
+import com.gtnewhorizons.modularui.api.math.Pos2d;
+import com.gtnewhorizons.modularui.api.math.Size;
+
+import codechicken.nei.PositionedStack;
+import gregtech.api.enums.ItemList;
+import gregtech.api.gui.modularui.GT_UITextures;
+import gregtech.api.recipe.BasicUIPropertiesBuilder;
+import gregtech.api.recipe.NEIRecipePropertiesBuilder;
+import gregtech.api.util.MethodsReturnNonnullByDefault;
+import gregtech.common.gui.modularui.UIHelper;
+import gregtech.common.tileentities.machines.multi.purification.GT_MetaTileEntity_PurificationUnitClarifier;
+import gregtech.nei.GT_NEI_DefaultHandler;
+
+@ParametersAreNonnullByDefault
+@MethodsReturnNonnullByDefault
+public class PurificationUnitClarifierFrontend extends PurificationUnitRecipeMapFrontend {
+
+ public PurificationUnitClarifierFrontend(BasicUIPropertiesBuilder uiPropertiesBuilder,
+ NEIRecipePropertiesBuilder neiPropertiesBuilder) {
+ super(
+ 80,
+ uiPropertiesBuilder.logoPos(new Pos2d(160, 100))
+ .progressBarTexture(new FallbackableUITexture(GT_UITextures.PROGRESSBAR_CLARIFIER))
+ .logoPos(new Pos2d(152, 90)),
+ neiPropertiesBuilder.recipeBackgroundSize(new Size(170, 120)));
+ }
+
+ @Override
+ public List<Pos2d> getFluidInputPositions(int fluidInputCount) {
+ ArrayList<Pos2d> positions = new ArrayList<>();
+ positions.add(new Pos2d(6, 7));
+ return positions;
+ }
+
+ @Override
+ public List<Pos2d> getFluidOutputPositions(int fluidOutputCount) {
+ ArrayList<Pos2d> positions = new ArrayList<>();
+ positions.add(new Pos2d(154, 7));
+ return positions;
+ }
+
+ @Override
+ public List<Pos2d> getItemInputPositions(int itemInputCount) {
+ ArrayList<Pos2d> positions = new ArrayList<>();
+ positions.add(new Pos2d(79, 43));
+ return positions;
+ }
+
+ @Override
+ public List<Pos2d> getItemOutputPositions(int itemOutputCount) {
+ return UIHelper.getGridPositions(itemOutputCount, 136, 43, 2, 2);
+ }
+
+ @Override
+ public void drawNEIOverlays(GT_NEI_DefaultHandler.CachedDefaultRecipe neiCachedRecipe) {
+ super.drawNEIOverlays(neiCachedRecipe);
+
+ for (PositionedStack stack : neiCachedRecipe.mInputs) {
+ if (stack.item.isItemEqual(ItemList.ActivatedCarbonFilterMesh.get(1))) {
+ drawNEIOverlayText((int) (GT_MetaTileEntity_PurificationUnitClarifier.FILTER_DAMAGE_RATE) + "%", stack);
+ }
+ }
+ }
+}
diff --git a/src/main/java/gregtech/api/recipe/maps/PurificationUnitFlocculatorFrontend.java b/src/main/java/gregtech/api/recipe/maps/PurificationUnitFlocculatorFrontend.java
new file mode 100644
index 0000000000..9366237b67
--- /dev/null
+++ b/src/main/java/gregtech/api/recipe/maps/PurificationUnitFlocculatorFrontend.java
@@ -0,0 +1,99 @@
+package gregtech.api.recipe.maps;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.annotation.ParametersAreNonnullByDefault;
+
+import net.minecraft.item.ItemStack;
+
+import org.jetbrains.annotations.NotNull;
+
+import com.gtnewhorizons.modularui.api.drawable.FallbackableUITexture;
+import com.gtnewhorizons.modularui.api.math.Pos2d;
+import com.gtnewhorizons.modularui.api.math.Size;
+
+import codechicken.nei.PositionedStack;
+import gregtech.api.enums.Materials;
+import gregtech.api.gui.modularui.GT_UITextures;
+import gregtech.api.recipe.BasicUIPropertiesBuilder;
+import gregtech.api.recipe.NEIRecipePropertiesBuilder;
+import gregtech.api.util.GT_Utility;
+import gregtech.api.util.MethodsReturnNonnullByDefault;
+import gregtech.common.gui.modularui.UIHelper;
+import gregtech.common.tileentities.machines.multi.purification.GT_MetaTileEntity_PurificationUnitFlocculation;
+import gregtech.nei.GT_NEI_DefaultHandler;
+
+@ParametersAreNonnullByDefault
+@MethodsReturnNonnullByDefault
+public class PurificationUnitFlocculatorFrontend extends PurificationUnitRecipeMapFrontend {
+
+ public PurificationUnitFlocculatorFrontend(BasicUIPropertiesBuilder uiPropertiesBuilder,
+ NEIRecipePropertiesBuilder neiPropertiesBuilder) {
+ super(
+ 80,
+ uiPropertiesBuilder.logoPos(new Pos2d(160, 100))
+ .progressBarTexture(new FallbackableUITexture(GT_UITextures.PROGRESSBAR_FLOCCULATION))
+ .logoPos(new Pos2d(152, 100)),
+ neiPropertiesBuilder.recipeBackgroundSize(new Size(170, 120)));
+ }
+
+ @Override
+ public List<Pos2d> getFluidInputPositions(int fluidInputCount) {
+ ArrayList<Pos2d> positions = new ArrayList<>();
+ positions.add(new Pos2d(9, 39));
+ return positions;
+ }
+
+ @Override
+ public List<Pos2d> getFluidOutputPositions(int fluidOutputCount) {
+ ArrayList<Pos2d> positions = new ArrayList<>();
+ positions.add(new Pos2d(151, 39));
+ return positions;
+ }
+
+ @Override
+ public List<Pos2d> getItemOutputPositions(int itemOutputCount) {
+ return UIHelper.getGridPositions(itemOutputCount, 115, 80, 3, 1);
+ }
+
+ @Override
+ @NotNull
+ public List<String> handleNEIItemTooltip(ItemStack stack, List<String> currentTip,
+ GT_NEI_DefaultHandler.CachedDefaultRecipe neiCachedRecipe) {
+ if (stack
+ .isItemEqual(GT_Utility.getFluidDisplayStack(Materials.PolyAluminiumChloride.getFluid(1000L), false))) {
+ currentTip.add("Consumed during operation");
+ currentTip.add(
+ "+" + GT_MetaTileEntity_PurificationUnitFlocculation.SUCCESS_PER_LEVEL
+ + "%/"
+ + GT_MetaTileEntity_PurificationUnitFlocculation.INPUT_CHEMICAL_PER_LEVEL
+ + "L");
+ } else if (stack
+ .isItemEqual(GT_Utility.getFluidDisplayStack(Materials.FlocculationWasteLiquid.getFluid(1000L), false))) {
+ currentTip.add("Returned in amount equivalent to consumed flocculant.");
+ }
+ return super.handleNEIItemTooltip(stack, currentTip, neiCachedRecipe);
+ }
+
+ @Override
+ public void drawNEIOverlays(GT_NEI_DefaultHandler.CachedDefaultRecipe neiCachedRecipe) {
+ super.drawNEIOverlays(neiCachedRecipe);
+
+ // Display flocculation chemical
+ neiCachedRecipe.mInputs.add(
+ new PositionedStack(
+ GT_Utility.getFluidDisplayStack(Materials.PolyAluminiumChloride.getFluid(100000L), true),
+ 5,
+ -1,
+ false));
+
+ // Display waste output
+ neiCachedRecipe.mOutputs.add(
+ new PositionedStack(
+ GT_Utility.getFluidDisplayStack(Materials.FlocculationWasteLiquid.getFluid(100000L), true),
+ 147,
+ 48,
+ false));
+ }
+}
diff --git a/src/main/java/gregtech/api/recipe/maps/PurificationUnitOzonationFrontend.java b/src/main/java/gregtech/api/recipe/maps/PurificationUnitOzonationFrontend.java
new file mode 100644
index 0000000000..cdfd41b78c
--- /dev/null
+++ b/src/main/java/gregtech/api/recipe/maps/PurificationUnitOzonationFrontend.java
@@ -0,0 +1,51 @@
+package gregtech.api.recipe.maps;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.annotation.ParametersAreNonnullByDefault;
+
+import com.gtnewhorizons.modularui.api.drawable.FallbackableUITexture;
+import com.gtnewhorizons.modularui.api.math.Pos2d;
+import com.gtnewhorizons.modularui.api.math.Size;
+
+import gregtech.api.gui.modularui.GT_UITextures;
+import gregtech.api.recipe.BasicUIPropertiesBuilder;
+import gregtech.api.recipe.NEIRecipePropertiesBuilder;
+import gregtech.api.util.MethodsReturnNonnullByDefault;
+import gregtech.common.gui.modularui.UIHelper;
+
+@ParametersAreNonnullByDefault
+@MethodsReturnNonnullByDefault
+public class PurificationUnitOzonationFrontend extends PurificationUnitRecipeMapFrontend {
+
+ public PurificationUnitOzonationFrontend(BasicUIPropertiesBuilder uiPropertiesBuilder,
+ NEIRecipePropertiesBuilder neiPropertiesBuilder) {
+ super(
+ 120,
+ uiPropertiesBuilder.logoPos(new Pos2d(160, 100))
+ .progressBarTexture(new FallbackableUITexture(GT_UITextures.PROGRESSBAR_OZONATION))
+ .logoPos(new Pos2d(152, 97)),
+ neiPropertiesBuilder.recipeBackgroundSize(new Size(170, 180)));
+ }
+
+ @Override
+ public List<Pos2d> getFluidInputPositions(int fluidInputCount) {
+ ArrayList<Pos2d> positions = new ArrayList<>();
+ positions.add(new Pos2d(79, 100));
+ positions.add(new Pos2d(27, 77));
+ return positions;
+ }
+
+ @Override
+ public List<Pos2d> getItemOutputPositions(int itemOutputCount) {
+ return UIHelper.getGridPositions(itemOutputCount, 131, 26, 2);
+ }
+
+ @Override
+ public List<Pos2d> getFluidOutputPositions(int fluidOutputCount) {
+ ArrayList<Pos2d> positions = new ArrayList<>();
+ positions.add(new Pos2d(131, 97));
+ return positions;
+ }
+}
diff --git a/src/main/java/gregtech/api/recipe/maps/PurificationUnitPhAdjustmentFrontend.java b/src/main/java/gregtech/api/recipe/maps/PurificationUnitPhAdjustmentFrontend.java
new file mode 100644
index 0000000000..7e9eded675
--- /dev/null
+++ b/src/main/java/gregtech/api/recipe/maps/PurificationUnitPhAdjustmentFrontend.java
@@ -0,0 +1,79 @@
+package gregtech.api.recipe.maps;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.annotation.ParametersAreNonnullByDefault;
+
+import net.minecraft.item.ItemStack;
+
+import org.jetbrains.annotations.NotNull;
+
+import com.gtnewhorizons.modularui.api.drawable.FallbackableUITexture;
+import com.gtnewhorizons.modularui.api.math.Pos2d;
+import com.gtnewhorizons.modularui.api.math.Size;
+
+import codechicken.nei.PositionedStack;
+import gregtech.api.enums.Materials;
+import gregtech.api.gui.modularui.GT_UITextures;
+import gregtech.api.recipe.BasicUIPropertiesBuilder;
+import gregtech.api.recipe.NEIRecipePropertiesBuilder;
+import gregtech.api.util.GT_Utility;
+import gregtech.api.util.MethodsReturnNonnullByDefault;
+import gregtech.common.tileentities.machines.multi.purification.GT_MetaTileEntity_PurificationUnitPhAdjustment;
+import gregtech.nei.GT_NEI_DefaultHandler;
+
+@ParametersAreNonnullByDefault
+@MethodsReturnNonnullByDefault
+public class PurificationUnitPhAdjustmentFrontend extends PurificationUnitRecipeMapFrontend {
+
+ public PurificationUnitPhAdjustmentFrontend(BasicUIPropertiesBuilder uiPropertiesBuilder,
+ NEIRecipePropertiesBuilder neiPropertiesBuilder) {
+ super(
+ 80,
+ uiPropertiesBuilder.logoPos(new Pos2d(160, 100))
+ .progressBarTexture(new FallbackableUITexture(GT_UITextures.PROGRESSBAR_PH_NEUTRALIZATION))
+ .logoPos(new Pos2d(152, 90)),
+ neiPropertiesBuilder.recipeBackgroundSize(new Size(170, 120)));
+ }
+
+ @Override
+ public List<Pos2d> getFluidInputPositions(int fluidInputCount) {
+ ArrayList<Pos2d> positions = new ArrayList<>();
+ positions.add(new Pos2d(42, 44));
+ return positions;
+ }
+
+ @Override
+ public List<Pos2d> getFluidOutputPositions(int fluidOutputCount) {
+ ArrayList<Pos2d> positions = new ArrayList<>();
+ positions.add(new Pos2d(116, 44));
+ return positions;
+ }
+
+ @Override
+ @NotNull
+ public List<String> handleNEIItemTooltip(ItemStack stack, List<String> currentTip,
+ GT_NEI_DefaultHandler.CachedDefaultRecipe neiCachedRecipe) {
+ // Add pH adjustment values
+ if (stack.isItemEqual(Materials.SodiumHydroxide.getDust(1))) {
+ currentTip
+ .add("+" + GT_MetaTileEntity_PurificationUnitPhAdjustment.PH_PER_ALKALINE_DUST * 64 + " pH/stack");
+ } else
+ if (stack.isItemEqual(GT_Utility.getFluidDisplayStack(Materials.HydrochloricAcid.getFluid(1000L), false))) {
+ currentTip.add(GT_MetaTileEntity_PurificationUnitPhAdjustment.PH_PER_10_ACID_LITER * 100 + " pH/1000L");
+ }
+ return super.handleNEIItemTooltip(stack, currentTip, neiCachedRecipe);
+ }
+
+ @Override
+ public void drawNEIOverlays(GT_NEI_DefaultHandler.CachedDefaultRecipe neiCachedRecipe) {
+ neiCachedRecipe.mInputs.add(new PositionedStack(Materials.SodiumHydroxide.getDust(64), 3, 1, false));
+ neiCachedRecipe.mInputs.add(
+ new PositionedStack(
+ GT_Utility.getFluidDisplayStack(Materials.HydrochloricAcid.getFluid(1000L), true),
+ 147,
+ 1,
+ false));
+ }
+}
diff --git a/src/main/java/gregtech/api/recipe/maps/PurificationUnitPlasmaHeaterFrontend.java b/src/main/java/gregtech/api/recipe/maps/PurificationUnitPlasmaHeaterFrontend.java
new file mode 100644
index 0000000000..5c63353b98
--- /dev/null
+++ b/src/main/java/gregtech/api/recipe/maps/PurificationUnitPlasmaHeaterFrontend.java
@@ -0,0 +1,59 @@
+package gregtech.api.recipe.maps;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.annotation.ParametersAreNonnullByDefault;
+
+import com.gtnewhorizons.modularui.api.drawable.FallbackableUITexture;
+import com.gtnewhorizons.modularui.api.math.Pos2d;
+import com.gtnewhorizons.modularui.api.math.Size;
+
+import codechicken.nei.PositionedStack;
+import gregtech.api.enums.Materials;
+import gregtech.api.gui.modularui.GT_UITextures;
+import gregtech.api.recipe.BasicUIPropertiesBuilder;
+import gregtech.api.recipe.NEIRecipePropertiesBuilder;
+import gregtech.api.util.GT_Utility;
+import gregtech.api.util.MethodsReturnNonnullByDefault;
+import gregtech.nei.GT_NEI_DefaultHandler;
+
+@ParametersAreNonnullByDefault
+@MethodsReturnNonnullByDefault
+public class PurificationUnitPlasmaHeaterFrontend extends PurificationUnitRecipeMapFrontend {
+
+ public PurificationUnitPlasmaHeaterFrontend(BasicUIPropertiesBuilder uiPropertiesBuilder,
+ NEIRecipePropertiesBuilder neiPropertiesBuilder) {
+ super(
+ 120,
+ uiPropertiesBuilder.logoPos(new Pos2d(152, 90))
+ .progressBarTexture(new FallbackableUITexture(GT_UITextures.PROGRESSBAR_PLASMA_HEATER)),
+ neiPropertiesBuilder.recipeBackgroundSize(new Size(170, 120)));
+ }
+
+ @Override
+ public List<Pos2d> getFluidInputPositions(int fluidInputCount) {
+ ArrayList<Pos2d> positions = new ArrayList<>();
+ positions.add(new Pos2d(30, 83));
+ return positions;
+ }
+
+ @Override
+ public List<Pos2d> getFluidOutputPositions(int fluidOutputCount) {
+ ArrayList<Pos2d> positions = new ArrayList<>();
+ positions.add(new Pos2d(111, 82));
+ return positions;
+ }
+
+ @Override
+ public void drawNEIOverlays(GT_NEI_DefaultHandler.CachedDefaultRecipe neiCachedRecipe) {
+ neiCachedRecipe.mInputs.add(
+ new PositionedStack(GT_Utility.getFluidDisplayStack(Materials.Helium.getPlasma(10L), true), 26, 53, false));
+ neiCachedRecipe.mInputs.add(
+ new PositionedStack(
+ GT_Utility.getFluidDisplayStack(Materials.SuperCoolant.getFluid(100L), true),
+ 107,
+ 52,
+ false));
+ }
+}
diff --git a/src/main/java/gregtech/api/recipe/maps/PurificationUnitRecipeMapFrontend.java b/src/main/java/gregtech/api/recipe/maps/PurificationUnitRecipeMapFrontend.java
new file mode 100644
index 0000000000..849c392cdb
--- /dev/null
+++ b/src/main/java/gregtech/api/recipe/maps/PurificationUnitRecipeMapFrontend.java
@@ -0,0 +1,124 @@
+package gregtech.api.recipe.maps;
+
+import java.util.function.Supplier;
+
+import javax.annotation.ParametersAreNonnullByDefault;
+
+import org.apache.commons.lang3.tuple.Pair;
+
+import com.gtnewhorizons.modularui.api.ModularUITextures;
+import com.gtnewhorizons.modularui.api.drawable.IDrawable;
+import com.gtnewhorizons.modularui.api.drawable.UITexture;
+import com.gtnewhorizons.modularui.api.forge.IItemHandlerModifiable;
+import com.gtnewhorizons.modularui.api.math.Pos2d;
+import com.gtnewhorizons.modularui.api.math.Size;
+import com.gtnewhorizons.modularui.api.screen.ModularWindow;
+import com.gtnewhorizons.modularui.common.widget.DrawableWidget;
+import com.gtnewhorizons.modularui.common.widget.ProgressBar;
+import com.gtnewhorizons.modularui.common.widget.SlotWidget;
+
+import gregtech.api.enums.SteamVariant;
+import gregtech.api.recipe.BasicUIPropertiesBuilder;
+import gregtech.api.recipe.NEIRecipePropertiesBuilder;
+import gregtech.api.recipe.RecipeMapFrontend;
+import gregtech.api.util.MethodsReturnNonnullByDefault;
+import gregtech.common.gui.modularui.UIHelper;
+
+// Makes some small changes to the default recipe frontend to display custom backgrounds and progress bars
+@ParametersAreNonnullByDefault
+@MethodsReturnNonnullByDefault
+public class PurificationUnitRecipeMapFrontend extends RecipeMapFrontend {
+
+ private final int overlayHeight;
+ private static final Pos2d realProgressBarPos = new Pos2d(3, 3);
+
+ public PurificationUnitRecipeMapFrontend(int overlayHeight, BasicUIPropertiesBuilder uiPropertiesBuilder,
+ NEIRecipePropertiesBuilder neiPropertiesBuilder) {
+ super(
+ uiPropertiesBuilder.progressBarSize(new Size(0, 0))
+ .progressBarPos(new Pos2d(0, 0)),
+ neiPropertiesBuilder);
+ this.overlayHeight = overlayHeight;
+ }
+
+ @Override
+ public void addProgressBar(ModularWindow.Builder builder, Supplier<Float> progressSupplier, Pos2d windowOffset) {
+ assert uiProperties.progressBarTexture != null;
+ UITexture texture = uiProperties.progressBarTexture.get();
+ builder.widget(
+ new ProgressBar().setTexture(texture, 170)
+ .setDirection(uiProperties.progressBarDirection)
+ .setProgress(progressSupplier)
+ .setSynced(false, false)
+ .setPos(realProgressBarPos.add(windowOffset))
+ .setSize(new Size(170, overlayHeight)));
+ }
+
+ @Override
+ public ModularWindow.Builder createNEITemplate(IItemHandlerModifiable itemInputsInventory,
+ IItemHandlerModifiable itemOutputsInventory, IItemHandlerModifiable specialSlotInventory,
+ IItemHandlerModifiable fluidInputsInventory, IItemHandlerModifiable fluidOutputsInventory,
+ Supplier<Float> progressSupplier, Pos2d windowOffset) {
+ // Override regular createNEITemplate method, so we can remove the background texture with the ugly border.
+ ModularWindow.Builder builder = ModularWindow.builder(neiProperties.recipeBackgroundSize);
+
+ // First draw progress bar in background
+ if (uiProperties.useProgressBar) {
+ addProgressBar(builder, progressSupplier, windowOffset);
+ }
+
+ UIHelper.forEachSlots(
+ (i, backgrounds, pos) -> builder.widget(
+ SlotWidget.phantom(itemInputsInventory, i)
+ .setBackground(backgrounds)
+ .setPos(pos)
+ .setSize(18, 18)),
+ (i, backgrounds, pos) -> builder.widget(
+ SlotWidget.phantom(itemOutputsInventory, i)
+ .setBackground(backgrounds)
+ .setPos(pos)
+ .setSize(18, 18)),
+ (i, backgrounds, pos) -> {
+ if (uiProperties.useSpecialSlot) builder.widget(
+ SlotWidget.phantom(specialSlotInventory, 0)
+ .setBackground(backgrounds)
+ .setPos(pos)
+ .setSize(18, 18));
+ },
+ (i, backgrounds, pos) -> builder.widget(
+ SlotWidget.phantom(fluidInputsInventory, i)
+ .setBackground(backgrounds)
+ .setPos(pos)
+ .setSize(18, 18)),
+ (i, backgrounds, pos) -> builder.widget(
+ SlotWidget.phantom(fluidOutputsInventory, i)
+ .setBackground(backgrounds)
+ .setPos(pos)
+ .setSize(18, 18)),
+ ModularUITextures.ITEM_SLOT,
+ ModularUITextures.FLUID_SLOT,
+ uiProperties,
+ uiProperties.maxItemInputs,
+ uiProperties.maxItemOutputs,
+ uiProperties.maxFluidInputs,
+ uiProperties.maxFluidOutputs,
+ SteamVariant.NONE,
+ windowOffset);
+
+ addGregTechLogo(builder, windowOffset);
+
+ for (Pair<IDrawable, Pair<Size, Pos2d>> specialTexture : uiProperties.specialTextures) {
+ builder.widget(
+ new DrawableWidget().setDrawable(specialTexture.getLeft())
+ .setSize(
+ specialTexture.getRight()
+ .getLeft())
+ .setPos(
+ specialTexture.getRight()
+ .getRight()
+ .add(windowOffset)));
+ }
+
+ return builder;
+ }
+}