From c5fb15604296a28e6d1e8d80c86f42b70a74ef19 Mon Sep 17 00:00:00 2001 From: Frank Bauer Date: Tue, 29 Jun 2021 21:32:55 +0200 Subject: [PATCH] Fixes for REI --- .../integration/rei/REIAlloyingCategory.java | 7 +- .../rei/REIAlloyingFuelDisplay.java | 8 +- .../integration/rei/REIAnvilCategory.java | 14 ++- .../integration/rei/REIInfusionCategory.java | 8 +- .../betterend/integration/rei/REIPlugin.java | 91 +++++++++---------- 5 files changed, 67 insertions(+), 61 deletions(-) diff --git a/src/main/java/ru/betterend/integration/rei/REIAlloyingCategory.java b/src/main/java/ru/betterend/integration/rei/REIAlloyingCategory.java index 2a777fe2..0b11a5f8 100644 --- a/src/main/java/ru/betterend/integration/rei/REIAlloyingCategory.java +++ b/src/main/java/ru/betterend/integration/rei/REIAlloyingCategory.java @@ -23,6 +23,10 @@ import java.text.DecimalFormat; import java.util.List; public class REIAlloyingCategory implements TransferDisplayCategory { + private final EntryStack ICON; + REIAlloyingCategory(EntryStack icon){ + ICON = icon; + } @Override public @NotNull CategoryIdentifier getCategoryIdentifier() { @@ -36,8 +40,7 @@ public class REIAlloyingCategory implements TransferDisplayCategory fuel, CompoundTag tag) { @@ -24,10 +24,10 @@ public abstract class REIAlloyingFuelDisplay extends BasicDisplay { this.fuelTime = fuelTime; }*/ - /*@Override + @Override public CategoryIdentifier getCategoryIdentifier() { - return REIPluginClient.ALLOYING_FUEL; - }*/ + return REIPlugin.ALLOYING_FUEL; + } public int getFuelTime() { return fuelTime; diff --git a/src/main/java/ru/betterend/integration/rei/REIAnvilCategory.java b/src/main/java/ru/betterend/integration/rei/REIAnvilCategory.java index 694376cc..7875148f 100644 --- a/src/main/java/ru/betterend/integration/rei/REIAnvilCategory.java +++ b/src/main/java/ru/betterend/integration/rei/REIAnvilCategory.java @@ -27,6 +27,11 @@ import java.util.List; import java.util.stream.Collectors; public class REIAnvilCategory implements TransferDisplayCategory { + private final EntryStack[] ANVILS; + + REIAnvilCategory(EntryStack[] anvils){ + ANVILS = anvils; + } @Override public @NotNull CategoryIdentifier getCategoryIdentifier() { @@ -40,12 +45,11 @@ public class REIAnvilCategory implements TransferDisplayCategory setupDisplay(REIAnvilDisplay display, Rectangle bounds) { Point startPoint = new Point(bounds.getCenterX() - 41, bounds.y + 10); List widgets = Lists.newArrayList(); @@ -56,7 +60,7 @@ public class REIAnvilCategory implements TransferDisplayCategory inputEntries = display.getInputEntries(); EntryIngredient materials = inputEntries.get(1); int anvilLevel = display.getAnvilLevel(); - List anvils = Arrays.stream(REIPluginClient.ANVILS).filter(anvil -> { + List anvils = Arrays.stream(ANVILS).filter(anvil -> { Block block = ((BlockItem) anvil.getValue()).getBlock(); if (block instanceof EndAnvilBlock) { return ((EndAnvilBlock) block).getCraftingLevel() >= anvilLevel; @@ -73,7 +77,7 @@ public class REIAnvilCategory implements TransferDisplayCategory widgets, Rectangle bounds, REIAnvilDisplay display, diff --git a/src/main/java/ru/betterend/integration/rei/REIInfusionCategory.java b/src/main/java/ru/betterend/integration/rei/REIInfusionCategory.java index 92c4ed5f..1ab786a7 100644 --- a/src/main/java/ru/betterend/integration/rei/REIInfusionCategory.java +++ b/src/main/java/ru/betterend/integration/rei/REIInfusionCategory.java @@ -25,6 +25,11 @@ import java.util.List; public class REIInfusionCategory implements TransferDisplayCategory { private final static ResourceLocation BACKGROUND = BetterEnd.makeID("textures/gui/rei_infusion.png"); + private final EntryStack ICON; + + REIInfusionCategory(EntryStack icon){ + ICON = icon; + } @Override public @NotNull CategoryIdentifier getCategoryIdentifier() { @@ -38,8 +43,7 @@ public class REIInfusionCategory implements TransferDisplayCategory { - if (time >= 2000) { - recipeHelper.registerDisplay(new REIAlloyingFuelDisplay(EntryStack.of(item), time)); - } - }); - }*/ + void init(){ + //we need to initialize those variables after the static initialization + //otherwise the registry does not know the BlockItems + if (END_STONE_SMELTER!=null) { + return; + } + + END_STONE_SMELTER = EntryStacks.of(EndBlocks.END_STONE_SMELTER); + INFUSION_RITUAL = EntryStacks.of(EndBlocks.INFUSION_PEDESTAL); + + List anvils = Lists.newArrayList(EntryIngredients.ofItems(EndBlocks.getModBlocks().stream() + .filter(EndAnvilBlock.class::isInstance).collect(Collectors.toList()))); + anvils.add(0, EntryStacks.of(Blocks.ANVIL)); + ANVILS = anvils.toArray(new EntryStack[0]); + + FURNACES = Lists.newArrayList(EntryIngredients.ofItems(EndBlocks.getModBlocks().stream() + .filter(BaseFurnaceBlock.class::isInstance).collect(Collectors.toList()))) + .toArray(new EntryStack[0]); + } @Override public void registerDisplays(DisplayRegistry registry) { @@ -75,41 +77,34 @@ public final static int VAL = 13; registry.registerRecipeFiller(BlastingRecipe.class, RecipeType.BLASTING, REIBlastingDisplay::new); registry.registerRecipeFiller(AnvilRecipe.class, AnvilRecipe.TYPE, REIAnvilDisplay::new); registry.registerRecipeFiller(InfusionRecipe.class, InfusionRecipe.TYPE, REIInfusionDisplay::new); + + FuelRegistryImpl.INSTANCE.getFuelTimes().forEach((item, time) -> { + if (time >= 2000) { + final List list = Arrays.asList(EntryIngredients.of(item)); + registry.add(new REIAlloyingFuelDisplay(list, time)); + } + }); } @Override public void registerCategories(CategoryRegistry registry) { + init(); + registry.add( new REIAlloyingFuelCategory(), - new REIAlloyingCategory(), - new REIInfusionCategory(), - new REIAnvilCategory() + new REIAlloyingCategory(END_STONE_SMELTER), + new REIInfusionCategory(INFUSION_RITUAL), + new REIAnvilCategory(ANVILS) ); - //registry.addWorkstations(ALLOYING_FUEL, END_STONE_SMELTER); - //registry.addWorkstations(ALLOYING, END_STONE_SMELTER); - //registry.addWorkstations(INFUSION, INFUSION_RITUAL); - //registry.addWorkstations(SMITHING, ANVILS); + registry.addWorkstations(ALLOYING_FUEL, END_STONE_SMELTER); + registry.addWorkstations(ALLOYING, END_STONE_SMELTER); + registry.addWorkstations(INFUSION, INFUSION_RITUAL); + registry.addWorkstations(SMITHING, ANVILS); registry.removePlusButton(ALLOYING_FUEL); registry.removePlusButton(SMITHING); - //registry.addWorkstations(DefaultPlugin.SMELTING, FURNACES); - //registry.addWorkstations(DefaultPlugin.FUEL, FURNACES); - - } - static EntryType BLOCK = EntryType.deferred(new ResourceLocation("block")); - static { - //initialize static state - EndPortals.loadPortals(); - System.out.println(EndBlocks.END_STONE_SMELTER + " - " + EndBlocks.END_STONE_SMELTER.asItem()); - //END_STONE_SMELTER = EntryStacks.of(EndBlocks.END_STONE_SMELTER.asItem()); - /*List anvils = Lists.newArrayList(EntryIngredients.ofItems(EndBlocks.getModBlocks().stream() - .filter(EndAnvilBlock.class::isInstance).collect(Collectors.toList()))); - anvils.add(0, EntryStacks.of(Blocks.ANVIL)); - ANVILS = anvils.toArray(new EntryStack[0]);*/ - - /*FURNACES = Lists.newArrayList(EntryIngredients.ofItems(EndBlocks.getModBlocks().stream() - .filter(BaseFurnaceBlock.class::isInstance).collect(Collectors.toList()))) - .toArray(new EntryStack[0]);*/ + registry.addWorkstations(DefaultPlugin.SMELTING, FURNACES); + registry.addWorkstations(DefaultPlugin.FUEL, FURNACES); } }