From f68bb1d96d1fd020d85d0b5654ade7b7871a6c12 Mon Sep 17 00:00:00 2001 From: TheBrokenRail Date: Fri, 7 Aug 2020 17:34:55 -0400 Subject: [PATCH] 0.0.4 Improve REI Plugin --- CHANGELOG.md | 3 ++ Jenkinsfile | 10 +++++- gradle.properties | 8 ++--- .../client/rei/EnergonRelicsPlugin.java | 7 +++-- .../client/rei/infuser/InfuserCategory.java | 12 +++---- .../client/rei/infuser/InfuserDisplay.java | 10 ++++-- .../rei/reactor/ReactorFuelCategory.java | 31 +++++++++++++++++++ .../assets/energonrelics/lang/en_us.json | 10 +++--- .../energonrelics/recipes/multimeter.json | 2 +- 9 files changed, 71 insertions(+), 22 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 729462d..34f9dac 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Changelog +**Beta 0.0.4** +* Improve REI Plugin + **Beta 0.0.3** * Performance Improvements diff --git a/Jenkinsfile b/Jenkinsfile index da5b03b..efe899e 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -7,7 +7,7 @@ pipeline { stages { stage('Build') { steps { - sh './gradlew build javadoc publish' + sh './gradlew build javadoc' } post { success { @@ -24,5 +24,13 @@ pipeline { } } } + stage('Publish') { + when { + buildingTag() + } + steps { + sh './gradlew publish' + } + } } } diff --git a/gradle.properties b/gradle.properties index 3b9cdb0..0f7aad2 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,19 +3,19 @@ org.gradle.jvmargs = -Xmx1G # Fabric Properties # check these on https://fabricmc.net/use - minecraft_version = 1.16.2-pre3 + minecraft_version = 1.16.2-rc1 curseforge_id = 398250 simple_minecraft_version = 1.16-Snapshot - yarn_build = 2 + yarn_build = 4 fabric_loader_version = 0.9.0+build.204 # Mod Properties - mod_version = 0.0.3 + mod_version = 0.0.4 maven_group = com.thebrokenrail # Dependencies # currently not on the main fabric site, check on the maven: https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api - fabric_api_version = 0.16.4+build.392-1.16 + fabric_api_version = 0.17.0+build.393-1.16 modmenu_version = 1.14.6+build.31 cloth_config_version = 4.7.0-unstable autoconfig_version = 3.2.0-unstable diff --git a/src/main/java/com/thebrokenrail/energonrelics/client/rei/EnergonRelicsPlugin.java b/src/main/java/com/thebrokenrail/energonrelics/client/rei/EnergonRelicsPlugin.java index 12ef9c3..15b89fe 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/client/rei/EnergonRelicsPlugin.java +++ b/src/main/java/com/thebrokenrail/energonrelics/client/rei/EnergonRelicsPlugin.java @@ -12,7 +12,7 @@ import net.minecraft.util.Identifier; @Environment(EnvType.CLIENT) public final class EnergonRelicsPlugin implements REIPluginV0 { - public static final Identifier INFUSER = new Identifier(EnergonRelics.NAMESPACE, "plugin/infuser"); + public static final Identifier INFUSING = new Identifier(EnergonRelics.NAMESPACE, "plugin/infusing"); public static final Identifier REACTOR_FUEL = new Identifier(EnergonRelics.NAMESPACE, "plugin/reactor_fuel"); @Override @@ -22,8 +22,11 @@ public final class EnergonRelicsPlugin implements REIPluginV0 { @Override public void registerOthers(RecipeHelper recipeHelper) { - recipeHelper.registerWorkingStations(INFUSER, EntryStack.create(EnergonRelics.INFUSER_BLOCK)); + recipeHelper.registerWorkingStations(INFUSING, EntryStack.create(EnergonRelics.INFUSER_BLOCK)); recipeHelper.registerWorkingStations(REACTOR_FUEL, EntryStack.create(EnergonRelics.REACTOR_INPUT_BLOCK)); + + recipeHelper.removeAutoCraftButton(INFUSING); + recipeHelper.removeAutoCraftButton(REACTOR_FUEL); } @Override diff --git a/src/main/java/com/thebrokenrail/energonrelics/client/rei/infuser/InfuserCategory.java b/src/main/java/com/thebrokenrail/energonrelics/client/rei/infuser/InfuserCategory.java index 96cfade..8c68bf3 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/client/rei/infuser/InfuserCategory.java +++ b/src/main/java/com/thebrokenrail/energonrelics/client/rei/infuser/InfuserCategory.java @@ -36,8 +36,8 @@ public class InfuserCategory implements RecipeCategory { Point startPoint = new Point(bounds.getCenterX() - 41, bounds.y + 10); List widgets = new ArrayList<>(); widgets.add(Widgets.createRecipeBase(bounds)); - widgets.add(Widgets.createLabel(new Point(bounds.x + bounds.width / 2, bounds.y + 9), new TranslatableText("category.rei." + EnergonRelics.NAMESPACE + ".infuser.chance", new DecimalFormat("###.##").format(display.successChance * 100d))).noShadow().centered().color(0xFF404040, 0xFFBBBBBB)); - widgets.add(Widgets.createLabel(new Point(bounds.x + bounds.width / 2, bounds.y + 18), new TranslatableText("category.rei." + EnergonRelics.NAMESPACE + ".infuser.cost", display.cost)).noShadow().centered().color(0xFF404040, 0xFFBBBBBB)); + widgets.add(Widgets.createLabel(new Point(bounds.x + bounds.width / 2, bounds.y + 9), new TranslatableText("category.rei." + EnergonRelics.NAMESPACE + ".infusing.chance", new DecimalFormat("###.##").format(display.successChance * 100d))).noShadow().centered().color(0xFF404040, 0xFFBBBBBB)); + widgets.add(Widgets.createLabel(new Point(bounds.x + bounds.width / 2, bounds.y + 18), new TranslatableText("category.rei." + EnergonRelics.NAMESPACE + ".infusing.cost", display.cost)).noShadow().centered().color(0xFF404040, 0xFFBBBBBB)); widgets.add(Widgets.createArrow(new Point(startPoint.x + 24, startPoint.y + 25)).animationDurationTicks(HardcodedConfig.INFUSER_TIME)); widgets.add(Widgets.createSlot(new Point(startPoint.x + 1, startPoint.y + 26)).entries(display.getInputEntries().get(0)).markInput()); @@ -47,8 +47,8 @@ public class InfuserCategory implements RecipeCategory { widgets.add(Widgets.createResultSlotBackground(new Point(startPoint.x + 61, startPoint.y + 26))); widgets.add(Widgets.createSlot(new Point(outputX, outputY)).entries(display.getResultingEntries().get(0)).disableBackground().markOutput()); } else { - Identifier outputID = Registry.ITEM.getId(display.getResultingEntries().get(0).get(0).getItem()); - Text text = new TranslatableText("category.rei." + EnergonRelics.NAMESPACE + ".infuser.display_item." + outputID.getNamespace() + "." + outputID.getPath()); + Identifier outputID = Registry.ITEM.getId(display.output.getItem()); + Text text = new TranslatableText("category.rei." + EnergonRelics.NAMESPACE + ".infusing.display_item." + outputID.getNamespace() + "." + outputID.getPath()); widgets.add(Widgets.createLabel(new Point(outputX - 7, outputY + 3), text).noShadow().leftAligned().color(0xFF404040, 0xFFBBBBBB)); } return widgets; @@ -61,7 +61,7 @@ public class InfuserCategory implements RecipeCategory { @Override public Identifier getIdentifier() { - return EnergonRelicsPlugin.INFUSER; + return EnergonRelicsPlugin.INFUSING; } @Override @@ -71,7 +71,7 @@ public class InfuserCategory implements RecipeCategory { @Override public String getCategoryName() { - return I18n.translate("category.rei." + EnergonRelics.NAMESPACE + ".infuser.name"); + return I18n.translate("category.rei." + EnergonRelics.NAMESPACE + ".infusing.name"); } public static void register(RecipeHelper recipeHelper) { diff --git a/src/main/java/com/thebrokenrail/energonrelics/client/rei/infuser/InfuserDisplay.java b/src/main/java/com/thebrokenrail/energonrelics/client/rei/infuser/InfuserDisplay.java index b46ad10..8e41aac 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/client/rei/infuser/InfuserDisplay.java +++ b/src/main/java/com/thebrokenrail/energonrelics/client/rei/infuser/InfuserDisplay.java @@ -15,7 +15,7 @@ import java.util.List; @Environment(EnvType.CLIENT) public class InfuserDisplay implements RecipeDisplay { private final EntryStack input; - private final EntryStack output; + public final EntryStack output; public final boolean outputsItem; public final double successChance; public final long cost; @@ -35,12 +35,16 @@ public class InfuserDisplay implements RecipeDisplay { @Override public List> getResultingEntries() { - return Collections.singletonList(Collections.singletonList(output)); + if (outputsItem) { + return Collections.singletonList(Collections.singletonList(output)); + } else { + return Collections.emptyList(); + } } @Override public Identifier getRecipeCategory() { - return EnergonRelicsPlugin.INFUSER; + return EnergonRelicsPlugin.INFUSING; } @Override diff --git a/src/main/java/com/thebrokenrail/energonrelics/client/rei/reactor/ReactorFuelCategory.java b/src/main/java/com/thebrokenrail/energonrelics/client/rei/reactor/ReactorFuelCategory.java index d8c082a..5d71220 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/client/rei/reactor/ReactorFuelCategory.java +++ b/src/main/java/com/thebrokenrail/energonrelics/client/rei/reactor/ReactorFuelCategory.java @@ -8,11 +8,15 @@ import me.shedaniel.math.Rectangle; import me.shedaniel.rei.api.EntryStack; import me.shedaniel.rei.api.RecipeCategory; import me.shedaniel.rei.api.RecipeHelper; +import me.shedaniel.rei.api.widgets.Slot; +import me.shedaniel.rei.api.widgets.Tooltip; import me.shedaniel.rei.api.widgets.Widgets; +import me.shedaniel.rei.gui.entries.RecipeEntry; import me.shedaniel.rei.gui.widget.Widget; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.resource.language.I18n; +import net.minecraft.client.util.math.MatrixStack; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.text.Text; @@ -58,6 +62,33 @@ public class ReactorFuelCategory implements RecipeCategory { return I18n.translate("category.rei." + EnergonRelics.NAMESPACE + ".reactor_fuel.name"); } + @Override + public RecipeEntry getSimpleRenderer(ReactorFuelDisplay recipe) { + Slot slot = Widgets.createSlot(new Point(0, 0)).entries(recipe.getInputEntries().get(0)).disableBackground().disableHighlight(); + return new RecipeEntry() { + @Override + public int getHeight() { + return 22; + } + + @Override + public Tooltip getTooltip(Point point) { + if (slot.containsMouse(point)) { + return slot.getCurrentTooltip(point); + } else { + return null; + } + } + + @Override + public void render(MatrixStack matrices, Rectangle bounds, int mouseX, int mouseY, float delta) { + slot.setZ(getZ() + 50); + slot.getBounds().setLocation(bounds.x + bounds.width / 2 - 10, bounds.y + 2); + slot.render(matrices, mouseX, mouseY, delta); + } + }; + } + public static void register(RecipeHelper recipeHelper) { for (Map.Entry entry : ReactorFuelRegistry.entrySet()) { recipeHelper.registerDisplay(new ReactorFuelDisplay(new ItemStack(entry.getKey()), entry.getValue())); diff --git a/src/main/resources/assets/energonrelics/lang/en_us.json b/src/main/resources/assets/energonrelics/lang/en_us.json index c91f409..6a7494c 100644 --- a/src/main/resources/assets/energonrelics/lang/en_us.json +++ b/src/main/resources/assets/energonrelics/lang/en_us.json @@ -50,16 +50,16 @@ "text.energonrelics.infuser_progress": "Infusion Progress: %s%%", "text.energonrelics.battery_core_tooltip": "%s Energon", "text.energonrelics.multimeter_separator": ", ", - "category.rei.energonrelics.infuser.chance": "%s%% Chance", - "category.rei.energonrelics.infuser.cost": "%s Energon", - "category.rei.energonrelics.infuser.name": "Infusing", + "category.rei.energonrelics.infusing.chance": "%s%% Chance", + "category.rei.energonrelics.infusing.cost": "%s Energon", + "category.rei.energonrelics.infusing.name": "Infusing", "item.energonrelics.veridium_orb": "Veridium Orb", "block.energonrelics.energy_projector": "Energy Projector", "block.energonrelics.energy_beam": "Energy Beam", "block.energonrelics.energy_portal": "Energy Portal", "block.energonrelics.energized_obsidian": "Energized Obsidian", - "category.rei.energonrelics.infuser.display_item.minecraft.tnt": "Explosion", - "category.rei.energonrelics.infuser.display_item.minecraft.fire_charge": "Nothing", + "category.rei.energonrelics.infusing.display_item.minecraft.tnt": "Explosion", + "category.rei.energonrelics.infusing.display_item.minecraft.fire_charge": "Nothing", "category.rei.energonrelics.reactor_fuel.name": "Reactor Fuel", "category.rei.energonrelics.reactor_fuel.multiplier": "%sx Reaction" } \ No newline at end of file diff --git a/src/main/resources/data/energonrelics/recipes/multimeter.json b/src/main/resources/data/energonrelics/recipes/multimeter.json index fd0ef49..15eb45e 100644 --- a/src/main/resources/data/energonrelics/recipes/multimeter.json +++ b/src/main/resources/data/energonrelics/recipes/multimeter.json @@ -10,7 +10,7 @@ "item": "energonrelics:circuit_board" }, "I": { - "item": "minecraft:iron_ingot" + "item": "minecraft:iron_nugget" }, "G": { "item": "minecraft:gold_ingot"