From 6d092d7599d27748abd8dc50b0c87e7fdba689cd Mon Sep 17 00:00:00 2001 From: shedaniel Date: Thu, 28 Apr 2022 14:03:31 +0800 Subject: REI 8.2 - Display History - Draggable Component - Multi Select Filtering Screen - Better Craftable Filter - Fix #850 - Fix #845 - Fix #832 - Fix #731 - Fix #839 - Fix #804 - Fix EvilCraft --- .../rei/plugin/client/entry/ItemEntryDefinition.java | 17 ++++++++++++++++- .../client/runtime/DefaultClientRuntimePlugin.java | 12 ++++++------ 2 files changed, 22 insertions(+), 7 deletions(-) (limited to 'runtime/src/main/java/me/shedaniel/rei/plugin') diff --git a/runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/ItemEntryDefinition.java b/runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/ItemEntryDefinition.java index f5efc2e4e..b18b9c14a 100644 --- a/runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/ItemEntryDefinition.java +++ b/runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/ItemEntryDefinition.java @@ -256,7 +256,14 @@ public class ItemEntryDefinition implements EntryDefinition, EntrySer modelViewStack.popPose(); RenderSystem.applyModelViewMatrix(); } + PoseStack modelViewStack = RenderSystem.getModelViewStack(); + modelViewStack.pushPose(); + modelViewStack.mulPoseMatrix(matrices.last().pose()); + modelViewStack.translate(bounds.x, bounds.y, 0); + modelViewStack.scale(bounds.width / 16f, (bounds.getWidth() + bounds.getHeight()) / 2f / 16f, 1.0F); + RenderSystem.applyModelViewMatrix(); renderOverlay(entry, bounds); + modelViewStack.popPose(); endGL(entry, model); RenderSystem.applyModelViewMatrix(); } @@ -307,13 +314,21 @@ public class ItemEntryDefinition implements EntryDefinition, EntrySer @Override public void renderOverlay(EntryStack entry, BakedModel model, PoseStack matrices, MultiBufferSource.BufferSource immediate, Rectangle bounds, int mouseX, int mouseY, float delta) { + PoseStack modelViewStack = RenderSystem.getModelViewStack(); + modelViewStack.pushPose(); + modelViewStack.mulPoseMatrix(matrices.last().pose()); + modelViewStack.translate(bounds.x, bounds.y, 0); + modelViewStack.scale(bounds.width / 16f, (bounds.getWidth() + bounds.getHeight()) / 2f / 16f, 1.0F); + RenderSystem.applyModelViewMatrix(); renderOverlay(entry, bounds); + modelViewStack.popPose(); + RenderSystem.applyModelViewMatrix(); } public void renderOverlay(EntryStack entry, Rectangle bounds) { if (!entry.isEmpty()) { Minecraft.getInstance().getItemRenderer().blitOffset = entry.getZ(); - Minecraft.getInstance().getItemRenderer().renderGuiItemDecorations(Minecraft.getInstance().font, entry.getValue(), bounds.x, bounds.y, null); + Minecraft.getInstance().getItemRenderer().renderGuiItemDecorations(Minecraft.getInstance().font, entry.getValue(), 0, 0, null); Minecraft.getInstance().getItemRenderer().blitOffset = 0.0F; } } diff --git a/runtime/src/main/java/me/shedaniel/rei/plugin/client/runtime/DefaultClientRuntimePlugin.java b/runtime/src/main/java/me/shedaniel/rei/plugin/client/runtime/DefaultClientRuntimePlugin.java index fd398d1f8..c0e0fc30e 100644 --- a/runtime/src/main/java/me/shedaniel/rei/plugin/client/runtime/DefaultClientRuntimePlugin.java +++ b/runtime/src/main/java/me/shedaniel/rei/plugin/client/runtime/DefaultClientRuntimePlugin.java @@ -38,8 +38,8 @@ import me.shedaniel.rei.api.client.favorites.FavoriteEntryType; import me.shedaniel.rei.api.client.gui.AbstractRenderer; import me.shedaniel.rei.api.client.gui.Renderer; import me.shedaniel.rei.api.client.gui.config.ItemCheatingMode; -import me.shedaniel.rei.api.client.gui.drag.DraggableStackProviderWidget; -import me.shedaniel.rei.api.client.gui.drag.DraggableStackVisitorWidget; +import me.shedaniel.rei.api.client.gui.drag.component.DraggableComponentProviderWidget; +import me.shedaniel.rei.api.client.gui.drag.component.DraggableComponentVisitorWidget; import me.shedaniel.rei.api.client.gui.screen.DisplayScreen; import me.shedaniel.rei.api.client.gui.widgets.Panel; import me.shedaniel.rei.api.client.gui.widgets.Tooltip; @@ -141,13 +141,13 @@ public class DefaultClientRuntimePlugin implements REIClientPlugin { } return Collections.emptyList(); }); - registry.registerDraggableStackProvider(DraggableStackProviderWidget.from(context -> { + registry.registerDraggableComponentProvider(DraggableComponentProviderWidget.from(context -> { if (RoughlyEnoughItemsCoreClient.shouldReturn(context.getScreen()) || !REIRuntime.getInstance().isOverlayVisible()) return Collections.emptyList(); - return Widgets.walk(REIRuntime.getInstance().getOverlay().get().children(), DraggableStackProviderWidget.class::isInstance); + return Widgets.walk(REIRuntime.getInstance().getOverlay().get().children(), DraggableComponentProviderWidget.class::isInstance); })); - registry.registerDraggableStackVisitor(DraggableStackVisitorWidget.from(context -> { + registry.registerDraggableComponentVisitor(DraggableComponentVisitorWidget.from(context -> { if (RoughlyEnoughItemsCoreClient.shouldReturn(context.getScreen()) || !REIRuntime.getInstance().isOverlayVisible()) return Collections.emptyList(); - return Widgets.walk(REIRuntime.getInstance().getOverlay().get().children(), DraggableStackVisitorWidget.class::isInstance); + return Widgets.walk(REIRuntime.getInstance().getOverlay().get().children(), DraggableComponentVisitorWidget.class::isInstance); })); } -- cgit