diff options
| author | shedaniel <daniel@shedaniel.me> | 2021-04-14 19:32:28 +0800 |
|---|---|---|
| committer | shedaniel <daniel@shedaniel.me> | 2021-04-14 19:32:28 +0800 |
| commit | a92c5492155f1bd12853acea98a235d3bb78839e (patch) | |
| tree | a8cb71de497f732265b7c1567f8e9393bb92eb87 /runtime/src/main/java/me/shedaniel/rei/plugin/client | |
| parent | 76b81a28284a8bcfb073b4386d823a73d605b971 (diff) | |
| parent | d892547a9b8a8ae85655900c08b6cc97c6aa2050 (diff) | |
| download | RoughlyEnoughItems-a92c5492155f1bd12853acea98a235d3bb78839e.tar.gz RoughlyEnoughItems-a92c5492155f1bd12853acea98a235d3bb78839e.tar.bz2 RoughlyEnoughItems-a92c5492155f1bd12853acea98a235d3bb78839e.zip | |
Merge remote-tracking branch 'origin/6.x' into 6.x-1.17
# Conflicts:
# api/src/main/java/me/shedaniel/rei/api/common/util/EntryStacks.java
# runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/FluidEntryDefinition.java
# runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/ItemEntryDefinition.java
Diffstat (limited to 'runtime/src/main/java/me/shedaniel/rei/plugin/client')
| -rw-r--r-- | runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/FluidEntryDefinition.java | 12 | ||||
| -rw-r--r-- | runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/ItemEntryDefinition.java | 23 |
2 files changed, 28 insertions, 7 deletions
diff --git a/runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/FluidEntryDefinition.java b/runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/FluidEntryDefinition.java index 964567c42..9356c3bc5 100644 --- a/runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/FluidEntryDefinition.java +++ b/runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/FluidEntryDefinition.java @@ -29,6 +29,8 @@ import me.shedaniel.architectury.fluid.FluidStack; import me.shedaniel.architectury.hooks.FluidStackHooks; import me.shedaniel.architectury.platform.Platform; import me.shedaniel.math.Point; +import me.shedaniel.architectury.utils.Env; +import me.shedaniel.architectury.utils.EnvExecutor; import me.shedaniel.math.Rectangle; import me.shedaniel.rei.api.client.entry.renderer.AbstractEntryRenderer; import me.shedaniel.rei.api.client.entry.renderer.EntryRenderer; @@ -40,6 +42,8 @@ import me.shedaniel.rei.api.common.entry.comparison.ComparisonContext; import me.shedaniel.rei.api.common.entry.type.EntryDefinition; import me.shedaniel.rei.api.common.entry.type.EntryType; import me.shedaniel.rei.api.common.entry.type.VanillaEntryTypes; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; import net.minecraft.ChatFormatting; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.MultiBufferSource; @@ -68,7 +72,12 @@ import java.util.stream.Stream; public class FluidEntryDefinition implements EntryDefinition<FluidStack>, EntrySerializer<FluidStack> { private static final String FLUID_AMOUNT = Platform.isForge() ? "tooltip.rei.fluid_amount.forge" : "tooltip.rei.fluid_amount"; - private final EntryRenderer<FluidStack> renderer = new FluidEntryRenderer(); + @Environment(EnvType.CLIENT) + private EntryRenderer<FluidStack> renderer; + + public FluidEntryDefinition() { + EnvExecutor.runInEnv(Env.CLIENT, () -> () -> renderer = new FluidEntryRenderer()); + } @Override public Class<FluidStack> getValueType() { @@ -81,6 +90,7 @@ public class FluidEntryDefinition implements EntryDefinition<FluidStack>, EntryS } @Override + @Environment(EnvType.CLIENT) public EntryRenderer<FluidStack> getRenderer() { return renderer; } 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 dcbb7e030..fd1fec222 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 @@ -30,6 +30,8 @@ import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.PoseStack; import it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet; import it.unimi.dsi.fastutil.objects.ReferenceSet; +import me.shedaniel.architectury.utils.Env; +import me.shedaniel.architectury.utils.EnvExecutor; import me.shedaniel.math.Point; import me.shedaniel.math.Rectangle; import me.shedaniel.rei.api.client.entry.renderer.AbstractEntryRenderer; @@ -44,6 +46,8 @@ import me.shedaniel.rei.api.common.entry.type.EntryDefinition; import me.shedaniel.rei.api.common.entry.type.EntryType; import me.shedaniel.rei.api.common.entry.type.VanillaEntryTypes; import me.shedaniel.rei.api.common.util.ImmutableTextComponent; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.block.model.ItemTransforms; @@ -67,7 +71,12 @@ import java.util.Collections; import java.util.List; public class ItemEntryDefinition implements EntryDefinition<ItemStack>, EntrySerializer<ItemStack> { - private final EntryRenderer<ItemStack> renderer = new ItemEntryRenderer(); + @Environment(EnvType.CLIENT) + private EntryRenderer<ItemStack> renderer; + + public ItemEntryDefinition() { + EnvExecutor.runInEnv(Env.CLIENT, () -> () -> renderer = new ItemEntryRenderer()); + } @Override public Class<ItemStack> getValueType() { @@ -80,6 +89,7 @@ public class ItemEntryDefinition implements EntryDefinition<ItemStack>, EntrySer } @Override + @Environment(EnvType.CLIENT) public EntryRenderer<ItemStack> getRenderer() { return renderer; } @@ -184,6 +194,7 @@ public class ItemEntryDefinition implements EntryDefinition<ItemStack>, EntrySer return Lists.newArrayList(asFormattedText(entry, value)); } + @Environment(EnvType.CLIENT) public class ItemEntryRenderer extends AbstractEntryRenderer<ItemStack> implements BatchedEntryRenderer<ItemStack, BakedModel> { private static final float SCALE = 20.0F; public static final int ITEM_LIGHT = 0xf000f0; @@ -194,11 +205,6 @@ public class ItemEntryDefinition implements EntryDefinition<ItemStack>, EntrySer } @Override - public int getBatchIdentifier(EntryStack<ItemStack> entry, Rectangle bounds, BakedModel model) { - return 1738923 + (model.usesBlockLight() ? 1 : 0); - } - - @Override public void render(EntryStack<ItemStack> entry, PoseStack matrices, Rectangle bounds, int mouseX, int mouseY, float delta) { BakedModel model = getExtraData(entry); setupGL(entry, model); @@ -226,6 +232,11 @@ public class ItemEntryDefinition implements EntryDefinition<ItemStack>, EntrySer } @Override + public int getBatchIdentifier(EntryStack<ItemStack> entry, Rectangle bounds, BakedModel model) { + return 1738923 + (model.usesBlockLight() ? 1 : 0); + } + + @Override public void startBatch(EntryStack<ItemStack> entry, BakedModel model, PoseStack matrices, float delta) { setupGL(entry, model); PoseStack modelViewStack = RenderSystem.getModelViewStack(); |
