diff options
| author | shedaniel <daniel@shedaniel.me> | 2021-05-31 00:14:21 +0800 |
|---|---|---|
| committer | shedaniel <daniel@shedaniel.me> | 2021-05-31 00:14:21 +0800 |
| commit | 82e9655e3786f58c32e2b6584732bb40f9508c1c (patch) | |
| tree | c045169783ff60013c5d063dbe8ec03b97cdc2a9 /api | |
| parent | 82cb8e2ac9f87375998e5962f1ffe8a9c05bafb0 (diff) | |
| download | RoughlyEnoughItems-82e9655e3786f58c32e2b6584732bb40f9508c1c.tar.gz RoughlyEnoughItems-82e9655e3786f58c32e2b6584732bb40f9508c1c.tar.bz2 RoughlyEnoughItems-82e9655e3786f58c32e2b6584732bb40f9508c1c.zip | |
Fix rendering issues with overlays, REIHelper -> REIRuntime
Diffstat (limited to 'api')
42 files changed, 163 insertions, 57 deletions
diff --git a/api/src/main/java/me/shedaniel/rei/api/client/REIHelper.java b/api/src/main/java/me/shedaniel/rei/api/client/REIRuntime.java index afe34317e..354c1ce19 100644 --- a/api/src/main/java/me/shedaniel/rei/api/client/REIHelper.java +++ b/api/src/main/java/me/shedaniel/rei/api/client/REIRuntime.java @@ -36,18 +36,17 @@ import net.fabricmc.api.Environment; import net.minecraft.client.gui.screens.Screen; import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen; import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.item.ItemStack; import org.jetbrains.annotations.Nullable; import java.util.Optional; @Environment(EnvType.CLIENT) -public interface REIHelper extends Reloadable<REIClientPlugin> { +public interface REIRuntime extends Reloadable<REIClientPlugin> { /** - * @return the instance of {@link REIHelper} + * @return the instance of {@link REIRuntime} */ - static REIHelper getInstance() { - return PluginManager.getClientInstance().get(REIHelper.class); + static REIRuntime getInstance() { + return PluginManager.getClientInstance().get(REIRuntime.class); } boolean isOverlayVisible(); diff --git a/api/src/main/java/me/shedaniel/rei/api/client/entry/renderer/AbstractEntryRenderer.java b/api/src/main/java/me/shedaniel/rei/api/client/entry/renderer/AbstractEntryRenderer.java index 388d2c19d..28d88ce98 100644 --- a/api/src/main/java/me/shedaniel/rei/api/client/entry/renderer/AbstractEntryRenderer.java +++ b/api/src/main/java/me/shedaniel/rei/api/client/entry/renderer/AbstractEntryRenderer.java @@ -23,7 +23,10 @@ package me.shedaniel.rei.api.client.entry.renderer; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; import net.minecraft.client.gui.GuiComponent; +@Environment(EnvType.CLIENT) public abstract class AbstractEntryRenderer<T> extends GuiComponent implements EntryRenderer<T> { } diff --git a/api/src/main/java/me/shedaniel/rei/api/client/entry/renderer/BatchedEntryRenderer.java b/api/src/main/java/me/shedaniel/rei/api/client/entry/renderer/BatchedEntryRenderer.java index 7944285fc..d02a43506 100644 --- a/api/src/main/java/me/shedaniel/rei/api/client/entry/renderer/BatchedEntryRenderer.java +++ b/api/src/main/java/me/shedaniel/rei/api/client/entry/renderer/BatchedEntryRenderer.java @@ -26,6 +26,8 @@ package me.shedaniel.rei.api.client.entry.renderer; import com.mojang.blaze3d.vertex.PoseStack; import me.shedaniel.math.Rectangle; import me.shedaniel.rei.api.common.entry.EntryStack; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.MultiBufferSource; @@ -35,6 +37,7 @@ import net.minecraft.client.renderer.MultiBufferSource; * @param <T> the entry type * @param <E> the type of extra data returned in {@link #getExtraData(EntryStack)} */ +@Environment(EnvType.CLIENT) public interface BatchedEntryRenderer<T, E> extends EntryRenderer<T> { default boolean isBatched(EntryStack<T> entry) { return true; @@ -57,9 +60,7 @@ public interface BatchedEntryRenderer<T, E> extends EntryRenderer<T> { * @param extraData the extra data returned from {@link #getExtraData(EntryStack)} * @return the batch identifier */ - default int getBatchIdentifier(EntryStack<T> entry, Rectangle bounds, E extraData) { - return getClass().hashCode(); - } + int getBatchIdentifier(EntryStack<T> entry, Rectangle bounds, E extraData); /** * Modifies the {@link PoseStack} passed tp various batch rendering methods. @@ -83,6 +84,8 @@ public interface BatchedEntryRenderer<T, E> extends EntryRenderer<T> { void renderBase(EntryStack<T> entry, E extraData, PoseStack matrices, MultiBufferSource.BufferSource immediate, Rectangle bounds, int mouseX, int mouseY, float delta); + void afterBase(EntryStack<T> entry, E extraData, PoseStack matrices, float delta); + void renderOverlay(EntryStack<T> entry, E extraData, PoseStack matrices, MultiBufferSource.BufferSource immediate, Rectangle bounds, int mouseX, int mouseY, float delta); /** diff --git a/api/src/main/java/me/shedaniel/rei/api/client/entry/renderer/EntryRenderer.java b/api/src/main/java/me/shedaniel/rei/api/client/entry/renderer/EntryRenderer.java index 95a85d77a..3943a76eb 100644 --- a/api/src/main/java/me/shedaniel/rei/api/client/entry/renderer/EntryRenderer.java +++ b/api/src/main/java/me/shedaniel/rei/api/client/entry/renderer/EntryRenderer.java @@ -41,6 +41,7 @@ import org.jetbrains.annotations.Nullable; * @param <T> the entry type * @see BatchedEntryRenderer */ +@Environment(EnvType.CLIENT) public interface EntryRenderer<T> { static <T> EntryRenderer<T> empty() { return ClientInternals.getEmptyEntryRenderer(); diff --git a/api/src/main/java/me/shedaniel/rei/api/client/entry/type/BuiltinClientEntryTypes.java b/api/src/main/java/me/shedaniel/rei/api/client/entry/type/BuiltinClientEntryTypes.java index dc352ec47..1f4d4558a 100644 --- a/api/src/main/java/me/shedaniel/rei/api/client/entry/type/BuiltinClientEntryTypes.java +++ b/api/src/main/java/me/shedaniel/rei/api/client/entry/type/BuiltinClientEntryTypes.java @@ -25,10 +25,13 @@ package me.shedaniel.rei.api.client.entry.type; import me.shedaniel.rei.api.client.gui.Renderer; import me.shedaniel.rei.api.common.entry.type.EntryType; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; import net.minecraft.resources.ResourceLocation; import org.jetbrains.annotations.ApiStatus; @ApiStatus.NonExtendable +@Environment(EnvType.CLIENT) public interface BuiltinClientEntryTypes { ResourceLocation RENDERING_ID = new ResourceLocation("rendering"); diff --git a/api/src/main/java/me/shedaniel/rei/api/client/favorites/CompoundFavoriteRenderer.java b/api/src/main/java/me/shedaniel/rei/api/client/favorites/CompoundFavoriteRenderer.java index 21e397350..e9ce917dd 100644 --- a/api/src/main/java/me/shedaniel/rei/api/client/favorites/CompoundFavoriteRenderer.java +++ b/api/src/main/java/me/shedaniel/rei/api/client/favorites/CompoundFavoriteRenderer.java @@ -30,12 +30,15 @@ import me.shedaniel.math.Rectangle; import me.shedaniel.rei.api.client.gui.AbstractRenderer; import me.shedaniel.rei.api.client.gui.Renderer; import me.shedaniel.rei.api.common.util.Animator; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; import net.minecraft.Util; import java.util.List; import java.util.function.IntFunction; import java.util.function.IntSupplier; +@Environment(EnvType.CLIENT) public class CompoundFavoriteRenderer extends AbstractRenderer { protected Animator offset = new Animator(0); protected Rectangle scissorArea = new Rectangle(); @@ -59,7 +62,7 @@ public class CompoundFavoriteRenderer extends AbstractRenderer { this(false, renderers, supplier); } - public CompoundFavoriteRenderer(boolean showcase, List<Renderer> renderers, IntSupplier supplier) { + protected CompoundFavoriteRenderer(boolean showcase, List<Renderer> renderers, IntSupplier supplier) { this(showcase, renderers.size(), renderers::get, supplier); } diff --git a/api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteEntry.java b/api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteEntry.java index c2d2d65b9..1957b2ef1 100644 --- a/api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteEntry.java +++ b/api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteEntry.java @@ -26,6 +26,8 @@ package me.shedaniel.rei.api.client.favorites; import me.shedaniel.rei.api.client.gui.Renderer; import me.shedaniel.rei.api.common.entry.EntryStack; import me.shedaniel.rei.impl.ClientInternals; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; import net.minecraft.nbt.CompoundTag; import net.minecraft.resources.ResourceLocation; import org.jetbrains.annotations.Nullable; @@ -36,6 +38,7 @@ import java.util.Optional; import java.util.UUID; import java.util.function.Supplier; +@Environment(EnvType.CLIENT) public abstract class FavoriteEntry { public static final String TYPE_KEY = "type"; private final UUID uuid = UUID.randomUUID(); diff --git a/api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteEntryType.java b/api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteEntryType.java index b60083a54..fd05c2bbd 100644 --- a/api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteEntryType.java +++ b/api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteEntryType.java @@ -27,6 +27,8 @@ import me.shedaniel.rei.api.client.plugins.REIClientPlugin; import me.shedaniel.rei.api.common.entry.EntryStack; import me.shedaniel.rei.api.common.plugins.PluginManager; import me.shedaniel.rei.api.common.registry.Reloadable; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; @@ -35,6 +37,7 @@ import org.jetbrains.annotations.Nullable; import java.util.List; +@Environment(EnvType.CLIENT) public interface FavoriteEntryType<T extends FavoriteEntry> { /** * A builtin type of favorites, wrapping a {@link EntryStack}. diff --git a/api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteMenuEntry.java b/api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteMenuEntry.java index 12bc873ea..bc9b810b8 100644 --- a/api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteMenuEntry.java +++ b/api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteMenuEntry.java @@ -24,9 +24,12 @@ package me.shedaniel.rei.api.client.favorites; import me.shedaniel.rei.api.client.gui.widgets.Widget; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.Nullable; +@Environment(EnvType.CLIENT) public abstract class FavoriteMenuEntry extends Widget { @Nullable @ApiStatus.Internal diff --git a/api/src/main/java/me/shedaniel/rei/api/client/gui/AbstractContainerEventHandler.java b/api/src/main/java/me/shedaniel/rei/api/client/gui/AbstractContainerEventHandler.java index 49bca05bd..5e9ff3e47 100644 --- a/api/src/main/java/me/shedaniel/rei/api/client/gui/AbstractContainerEventHandler.java +++ b/api/src/main/java/me/shedaniel/rei/api/client/gui/AbstractContainerEventHandler.java @@ -30,7 +30,7 @@ import net.minecraft.client.gui.components.events.ContainerEventHandler; import net.minecraft.client.gui.components.events.GuiEventListener; import org.jetbrains.annotations.Nullable; -@Environment(value = EnvType.CLIENT) +@Environment(EnvType.CLIENT) public abstract class AbstractContainerEventHandler extends GuiComponent implements ContainerEventHandler { @Nullable private GuiEventListener focused; diff --git a/api/src/main/java/me/shedaniel/rei/api/client/gui/AbstractRenderer.java b/api/src/main/java/me/shedaniel/rei/api/client/gui/AbstractRenderer.java index bb3b7732b..377bdaab7 100644 --- a/api/src/main/java/me/shedaniel/rei/api/client/gui/AbstractRenderer.java +++ b/api/src/main/java/me/shedaniel/rei/api/client/gui/AbstractRenderer.java @@ -23,8 +23,11 @@ package me.shedaniel.rei.api.client.gui; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; import net.minecraft.client.gui.GuiComponent; +@Environment(EnvType.CLIENT) public abstract class AbstractRenderer extends GuiComponent implements Renderer { @Override public int getZ() { diff --git a/api/src/main/java/me/shedaniel/rei/api/client/gui/DisplayRenderer.java b/api/src/main/java/me/shedaniel/rei/api/client/gui/DisplayRenderer.java index ee1f174de..de1da0e1b 100644 --- a/api/src/main/java/me/shedaniel/rei/api/client/gui/DisplayRenderer.java +++ b/api/src/main/java/me/shedaniel/rei/api/client/gui/DisplayRenderer.java @@ -25,10 +25,13 @@ package me.shedaniel.rei.api.client.gui; import me.shedaniel.math.Point; import me.shedaniel.rei.api.client.gui.widgets.Tooltip; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.Nullable; @ApiStatus.OverrideOnly +@Environment(EnvType.CLIENT) public abstract class DisplayRenderer extends AbstractRenderer { public abstract int getHeight(); diff --git a/api/src/main/java/me/shedaniel/rei/api/client/gui/DrawableConsumer.java b/api/src/main/java/me/shedaniel/rei/api/client/gui/DrawableConsumer.java index eac41631c..9def64c29 100644 --- a/api/src/main/java/me/shedaniel/rei/api/client/gui/DrawableConsumer.java +++ b/api/src/main/java/me/shedaniel/rei/api/client/gui/DrawableConsumer.java @@ -24,11 +24,14 @@ package me.shedaniel.rei.api.client.gui; import com.mojang.blaze3d.vertex.PoseStack; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; import net.minecraft.client.gui.GuiComponent; /** - * Consumer of a {@link DrawableHelper} and information of mouse and delta. + * Consumer of a {@link GuiComponent} and information of mouse and delta. */ +@Environment(EnvType.CLIENT) public interface DrawableConsumer { void render(GuiComponent helper, PoseStack matrices, int mouseX, int mouseY, float delta); } diff --git a/api/src/main/java/me/shedaniel/rei/api/client/gui/SimpleDisplayRenderer.java b/api/src/main/java/me/shedaniel/rei/api/client/gui/SimpleDisplayRenderer.java index aeec0b99c..95fc9ef6b 100644 --- a/api/src/main/java/me/shedaniel/rei/api/client/gui/SimpleDisplayRenderer.java +++ b/api/src/main/java/me/shedaniel/rei/api/client/gui/SimpleDisplayRenderer.java @@ -64,7 +64,7 @@ public class SimpleDisplayRenderer extends DisplayRenderer implements WidgetHold this.widgets = Stream.concat(inputWidgets.stream(), outputWidgets.stream()).collect(Collectors.toList()); } - private Slot createSlot(EntryIngredient ingredient) { + protected Slot createSlot(EntryIngredient ingredient) { return Widgets.createSlot(new Point(0, 0)) .entries(CollectionUtils.filterToList(ingredient, stack -> !stack.isEmpty())) .disableBackground() diff --git a/api/src/main/java/me/shedaniel/rei/api/client/gui/drag/DraggingContext.java b/api/src/main/java/me/shedaniel/rei/api/client/gui/drag/DraggingContext.java index d6548359e..626d9aa29 100644 --- a/api/src/main/java/me/shedaniel/rei/api/client/gui/drag/DraggingContext.java +++ b/api/src/main/java/me/shedaniel/rei/api/client/gui/drag/DraggingContext.java @@ -24,7 +24,7 @@ package me.shedaniel.rei.api.client.gui.drag; import me.shedaniel.math.Point; -import me.shedaniel.rei.api.client.REIHelper; +import me.shedaniel.rei.api.client.REIRuntime; import net.minecraft.client.gui.screens.Screen; import org.jetbrains.annotations.Nullable; @@ -41,7 +41,7 @@ import java.util.function.Supplier; */ public interface DraggingContext<S extends Screen> { static DraggingContext<?> getInstance() { - return REIHelper.getInstance().getOverlay().get().getDraggingContext(); + return REIRuntime.getInstance().getOverlay().get().getDraggingContext(); } /** diff --git a/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/Label.java b/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/Label.java index 2e2de9bae..0c634b114 100644 --- a/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/Label.java +++ b/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/Label.java @@ -25,7 +25,7 @@ package me.shedaniel.rei.api.client.gui.widgets; import com.mojang.blaze3d.vertex.PoseStack; import me.shedaniel.math.Point; -import me.shedaniel.rei.api.client.REIHelper; +import me.shedaniel.rei.api.client.REIRuntime; import net.minecraft.network.chat.FormattedText; import org.jetbrains.annotations.Nullable; @@ -233,7 +233,7 @@ public abstract class Label extends WidgetWithBounds { public abstract void setColor(int color); public final Label color(int lightModeColor, int darkModeColor) { - return color(REIHelper.getInstance().isDarkThemeEnabled() ? darkModeColor : lightModeColor); + return color(REIRuntime.getInstance().isDarkThemeEnabled() ? darkModeColor : lightModeColor); } public final Label color(int color) { @@ -246,7 +246,7 @@ public abstract class Label extends WidgetWithBounds { public abstract void setHoveredColor(int hoveredColor); public final Label hoveredColor(int lightModeColor, int darkModeColor) { - return hoveredColor(REIHelper.getInstance().isDarkThemeEnabled() ? darkModeColor : lightModeColor); + return hoveredColor(REIRuntime.getInstance().isDarkThemeEnabled() ? darkModeColor : lightModeColor); } public final Label hoveredColor(int color) { diff --git a/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/Panel.java b/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/Panel.java index 578e3e4a9..181a938ee 100644 --- a/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/Panel.java +++ b/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/Panel.java @@ -23,7 +23,7 @@ package me.shedaniel.rei.api.client.gui.widgets; -import me.shedaniel.rei.api.client.REIHelper; +import me.shedaniel.rei.api.client.REIRuntime; import java.util.function.Predicate; @@ -56,7 +56,7 @@ public abstract class Panel extends WidgetWithBounds { } public final Panel color(int lightColor, int darkColor) { - return color(REIHelper.getInstance().isDarkThemeEnabled() ? darkColor : lightColor); + return color(REIRuntime.getInstance().isDarkThemeEnabled() ? darkColor : lightColor); } public abstract Predicate<Panel> getRendering(); diff --git a/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/Tooltip.java b/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/Tooltip.java index 867bd3b1e..16d329002 100644 --- a/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/Tooltip.java +++ b/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/Tooltip.java @@ -25,7 +25,7 @@ package me.shedaniel.rei.api.client.gui.widgets; import dev.architectury.utils.EnvExecutor; import me.shedaniel.math.Point; -import me.shedaniel.rei.api.client.REIHelper; +import me.shedaniel.rei.api.client.REIRuntime; import me.shedaniel.rei.impl.ClientInternals; import net.fabricmc.api.EnvType; import net.minecraft.network.chat.Component; @@ -59,6 +59,6 @@ public interface Tooltip { List<Component> getText(); default void queue() { - EnvExecutor.runInEnv(EnvType.CLIENT, () -> () -> REIHelper.getInstance().queueTooltip(this)); + EnvExecutor.runInEnv(EnvType.CLIENT, () -> () -> REIRuntime.getInstance().queueTooltip(this)); } } diff --git a/api/src/main/java/me/shedaniel/rei/api |
