Update REI support.

This commit is contained in:
modmuss50 2023-05-31 16:39:45 +01:00 committed by modmuss
parent 82c84c7a88
commit 0171ef9778
3 changed files with 15 additions and 22 deletions

View file

@ -194,7 +194,7 @@ dependencies {
include project(":RebornCore") include project(":RebornCore")
optionalClientDependency("me.shedaniel:RoughlyEnoughItems-fabric:${project.rei_version}", false) optionalClientDependency("me.shedaniel:RoughlyEnoughItems-fabric:${project.rei_version}", true)
// Use groovy for datagen/gametest, if you are copying this you prob dont want it. // Use groovy for datagen/gametest, if you are copying this you prob dont want it.
gametestImplementation 'org.apache.groovy:groovy:4.0.10' gametestImplementation 'org.apache.groovy:groovy:4.0.10'

View file

@ -14,4 +14,4 @@ fapi_version=0.83.0+1.20
# Dependencies # Dependencies
energy_version=3.0.0 energy_version=3.0.0
rei_version=11.0.597 rei_version=12.0.613

View file

@ -28,9 +28,8 @@ import com.mojang.blaze3d.systems.RenderSystem;
import dev.architectury.event.CompoundEventResult; import dev.architectury.event.CompoundEventResult;
import dev.architectury.fluid.FluidStack; import dev.architectury.fluid.FluidStack;
import me.shedaniel.math.Rectangle; import me.shedaniel.math.Rectangle;
import me.shedaniel.rei.api.client.entry.renderer.AbstractEntryRenderer;
import me.shedaniel.rei.api.client.entry.renderer.EntryRenderer; import me.shedaniel.rei.api.client.entry.renderer.EntryRenderer;
import me.shedaniel.rei.api.client.gui.AbstractRenderer; import me.shedaniel.rei.api.client.gui.Renderer;
import me.shedaniel.rei.api.client.gui.widgets.Tooltip; import me.shedaniel.rei.api.client.gui.widgets.Tooltip;
import me.shedaniel.rei.api.client.gui.widgets.TooltipContext; import me.shedaniel.rei.api.client.gui.widgets.TooltipContext;
import me.shedaniel.rei.api.client.gui.widgets.Widget; import me.shedaniel.rei.api.client.gui.widgets.Widget;
@ -52,7 +51,6 @@ import net.fabricmc.fabric.api.client.render.fluid.v1.FluidRenderHandlerRegistry
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.texture.Sprite; import net.minecraft.client.texture.Sprite;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.fluid.Fluid; import net.minecraft.fluid.Fluid;
import net.minecraft.item.ItemConvertible; import net.minecraft.item.ItemConvertible;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
@ -96,11 +94,6 @@ import java.util.stream.Stream;
public class ReiPlugin implements REIClientPlugin { public class ReiPlugin implements REIClientPlugin {
public static final Map<RebornRecipeType<?>, ItemConvertible> iconMap = new HashMap<>(); public static final Map<RebornRecipeType<?>, ItemConvertible> iconMap = new HashMap<>();
@Deprecated(forRemoval = true)
public static DrawContext drawContext() {
throw new IllegalStateException("TODO 1.20 port!");
}
public ReiPlugin() { public ReiPlugin() {
iconMap.put(ModRecipes.ALLOY_SMELTER, Machine.ALLOY_SMELTER); iconMap.put(ModRecipes.ALLOY_SMELTER, Machine.ALLOY_SMELTER);
iconMap.put(ModRecipes.ASSEMBLING_MACHINE, Machine.ASSEMBLY_MACHINE); iconMap.put(ModRecipes.ASSEMBLING_MACHINE, Machine.ASSEMBLY_MACHINE);
@ -276,7 +269,7 @@ public class ReiPlugin implements REIClientPlugin {
} }
public static Widget createProgressBar(int x, int y, double animationDuration, GuiBuilder.ProgressDirection direction) { public static Widget createProgressBar(int x, int y, double animationDuration, GuiBuilder.ProgressDirection direction) {
return Widgets.createDrawableWidget((drawContext, matrices, mouseX, mouseY, delta) -> { return Widgets.createDrawableWidget((drawContext, mouseX, mouseY, delta) -> {
drawContext.drawTexture(GuiBuilder.defaultTextureSheet, x, y, direction.x, direction.y, direction.width, direction.height); drawContext.drawTexture(GuiBuilder.defaultTextureSheet, x, y, direction.x, direction.y, direction.width, direction.height);
int j = (int) ((System.currentTimeMillis() / animationDuration) % 1.0 * 16.0); int j = (int) ((System.currentTimeMillis() / animationDuration) % 1.0 * 16.0);
if (j < 0) { if (j < 0) {
@ -304,7 +297,7 @@ public class ReiPlugin implements REIClientPlugin {
return Widgets.createSlot(bounds).entry(copy); return Widgets.createSlot(bounds).entry(copy);
} }
private static class EnergyEntryRenderer extends AbstractRenderer { private static class EnergyEntryRenderer implements Renderer {
private final EntryAnimation animation; private final EntryAnimation animation;
private final Function<TooltipContext, Tooltip> tooltipBuilder; private final Function<TooltipContext, Tooltip> tooltipBuilder;
@ -314,20 +307,20 @@ public class ReiPlugin implements REIClientPlugin {
} }
@Override @Override
public void render(MatrixStack matrices, Rectangle bounds, int mouseX, int mouseY, float delta) { public void render(DrawContext drawContext, Rectangle bounds, int mouseX, int mouseY, float delta) {
int width = bounds.width + 2; int width = bounds.width + 2;
int height = bounds.height + 2; int height = bounds.height + 2;
int innerHeight = height - 2; int innerHeight = height - 2;
PowerSystem.EnergySystem displayPower = PowerSystem.getDisplayPower(); PowerSystem.EnergySystem displayPower = PowerSystem.getDisplayPower();
drawContext().drawTexture(GuiBuilder.defaultTextureSheet, bounds.x - 1, bounds.y - 1, displayPower.xBar - 15, displayPower.yBar - 1, width, height); drawContext.drawTexture(GuiBuilder.defaultTextureSheet, bounds.x - 1, bounds.y - 1, displayPower.xBar - 15, displayPower.yBar - 1, width, height);
int innerDisplayHeight; int innerDisplayHeight;
if (animation.animationType != EntryAnimationType.NONE) { if (animation.animationType != EntryAnimationType.NONE) {
innerDisplayHeight = MathHelper.ceil((System.currentTimeMillis() / (animation.duration / (float) innerHeight) % innerHeight)); innerDisplayHeight = MathHelper.ceil((System.currentTimeMillis() / (animation.duration / (float) innerHeight) % innerHeight));
if (animation.animationType == EntryAnimationType.DOWNWARDS) if (animation.animationType == EntryAnimationType.DOWNWARDS)
innerDisplayHeight = innerHeight - innerDisplayHeight; innerDisplayHeight = innerHeight - innerDisplayHeight;
} else innerDisplayHeight = innerHeight; } else innerDisplayHeight = innerHeight;
drawContext().drawTexture(GuiBuilder.defaultTextureSheet, bounds.x, bounds.y + innerHeight - innerDisplayHeight, displayPower.xBar, innerHeight + displayPower.yBar - innerDisplayHeight, width - 2, innerDisplayHeight); drawContext.drawTexture(GuiBuilder.defaultTextureSheet, bounds.x, bounds.y + innerHeight - innerDisplayHeight, displayPower.xBar, innerHeight + displayPower.yBar - innerDisplayHeight, width - 2, innerDisplayHeight);
} }
@Override @Override
@ -337,7 +330,7 @@ public class ReiPlugin implements REIClientPlugin {
} }
} }
private static class FluidStackRenderer extends AbstractEntryRenderer<FluidStack> { private static class FluidStackRenderer implements EntryRenderer<FluidStack> {
private final EntryAnimation animation; private final EntryAnimation animation;
private final EntryRenderer<FluidStack> parent; private final EntryRenderer<FluidStack> parent;
@ -347,22 +340,22 @@ public class ReiPlugin implements REIClientPlugin {
} }
@Override @Override
public void render(EntryStack<FluidStack> entry, MatrixStack matrices, Rectangle bounds, int mouseX, int mouseY, float delta) { public void render(EntryStack<FluidStack> entry, DrawContext drawContext, Rectangle bounds, int mouseX, int mouseY, float delta) {
int width = bounds.width; int width = bounds.width;
int height = bounds.height; int height = bounds.height;
drawContext().drawTexture(GuiBuilder.defaultTextureSheet, bounds.x - 4, bounds.y - 4, 194, 26, width + 8, height + 8); drawContext.drawTexture(GuiBuilder.defaultTextureSheet, bounds.x - 4, bounds.y - 4, 194, 26, width + 8, height + 8);
drawContext().drawTexture(GuiBuilder.defaultTextureSheet, bounds.x - 1, bounds.y - 1, 194, 82, width + 2, height + 2); drawContext.drawTexture(GuiBuilder.defaultTextureSheet, bounds.x - 1, bounds.y - 1, 194, 82, width + 2, height + 2);
int innerDisplayHeight; int innerDisplayHeight;
if (animation.animationType != EntryAnimationType.NONE) { if (animation.animationType != EntryAnimationType.NONE) {
innerDisplayHeight = MathHelper.ceil((System.currentTimeMillis() / (animation.duration / (float) height) % height)); innerDisplayHeight = MathHelper.ceil((System.currentTimeMillis() / (animation.duration / (float) height) % height));
if (animation.animationType == EntryAnimationType.DOWNWARDS) if (animation.animationType == EntryAnimationType.DOWNWARDS)
innerDisplayHeight = height - innerDisplayHeight; innerDisplayHeight = height - innerDisplayHeight;
} else innerDisplayHeight = height; } else innerDisplayHeight = height;
drawFluid(matrices, entry.getValue().getFluid(), innerDisplayHeight, bounds.x, bounds.y, width, height); drawFluid(drawContext, entry.getValue().getFluid(), innerDisplayHeight, bounds.x, bounds.y, width, height);
} }
public void drawFluid(MatrixStack matrixStack, Fluid fluid, int drawHeight, int x, int y, int width, int height) { public void drawFluid(DrawContext drawContext, Fluid fluid, int drawHeight, int x, int y, int width, int height) {
RenderSystem.setShaderTexture(0, PlayerScreenHandler.BLOCK_ATLAS_TEXTURE); RenderSystem.setShaderTexture(0, PlayerScreenHandler.BLOCK_ATLAS_TEXTURE);
y += height; y += height;
@ -385,7 +378,7 @@ public class ReiPlugin implements REIClientPlugin {
while (offsetHeight != 0) { while (offsetHeight != 0) {
final int curHeight = Math.min(offsetHeight, iconHeight); final int curHeight = Math.min(offsetHeight, iconHeight);
drawContext().drawSprite(x, y - offsetHeight, 0, width, curHeight, sprite); drawContext.drawSprite(x, y - offsetHeight, 0, width, curHeight, sprite);
offsetHeight -= curHeight; offsetHeight -= curHeight;
iteration++; iteration++;
if (iteration > 50) { if (iteration > 50) {