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 | |
| parent | 82cb8e2ac9f87375998e5962f1ffe8a9c05bafb0 (diff) | |
| download | RoughlyEnoughItems-82e9655e3786f58c32e2b6584732bb40f9508c1c.tar.gz RoughlyEnoughItems-82e9655e3786f58c32e2b6584732bb40f9508c1c.tar.bz2 RoughlyEnoughItems-82e9655e3786f58c32e2b6584732bb40f9508c1c.zip | |
Fix rendering issues with overlays, REIHelper -> REIRuntime
86 files changed, 452 insertions, 287 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"); |
