aboutsummaryrefslogtreecommitdiff
path: root/runtime/src/main/java/me/shedaniel/rei/plugin/client
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2024-12-13 19:21:00 +0800
committershedaniel <daniel@shedaniel.me>2024-12-13 19:39:24 +0800
commitd698ee2add0caacf484fbe8677aa7c6606623688 (patch)
tree3bc0731a4de3dc97c31f6aea5468431ad15fdda7 /runtime/src/main/java/me/shedaniel/rei/plugin/client
parent2eaaf02a116102cbc53e5707d5443d0c137055ff (diff)
downloadRoughlyEnoughItems-d698ee2add0caacf484fbe8677aa7c6606623688.tar.gz
RoughlyEnoughItems-d698ee2add0caacf484fbe8677aa7c6606623688.tar.bz2
RoughlyEnoughItems-d698ee2add0caacf484fbe8677aa7c6606623688.zip
Update to 1.21.4
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.java3
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/ItemEntryDefinition.java71
2 files changed, 37 insertions, 37 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 4480cda5b..d217e1000 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
@@ -69,7 +69,6 @@ import net.minecraft.network.codec.StreamCodec;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.tags.TagKey;
import net.minecraft.util.Mth;
-import net.minecraft.world.inventory.InventoryMenu;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.material.FlowingFluid;
@@ -282,7 +281,7 @@ public class FluidEntryDefinition implements EntryDefinition<FluidStack>, EntryS
.alpha(0xff)
.normal(graphics.pose().last().normal(), 0, 0, 0)
.position(graphics.pose().last().pose(), bounds.x, bounds.getMaxY() - bounds.height * Mth.clamp(entry.get(EntryStack.Settings.FLUID_RENDER_RATIO), 0, 1), bounds.getMaxX(), bounds.getMaxY(), 0)
- .next(InventoryMenu.BLOCK_ATLAS);
+ .next(TextureAtlas.LOCATION_BLOCKS);
immediate.endBatch();
}
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 a2c046e9f..963f6833b 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
@@ -53,10 +53,10 @@ import net.minecraft.CrashReportCategory;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiGraphics;
import net.minecraft.client.renderer.MultiBufferSource;
+import net.minecraft.client.renderer.item.ItemStackRenderState;
import net.minecraft.client.renderer.texture.OverlayTexture;
import net.minecraft.client.renderer.texture.TextureAtlas;
import net.minecraft.client.resources.language.I18n;
-import net.minecraft.client.resources.model.BakedModel;
import net.minecraft.core.component.DataComponentPatch;
import net.minecraft.core.component.DataComponents;
import net.minecraft.core.registries.BuiltInRegistries;
@@ -245,86 +245,87 @@ public class ItemEntryDefinition implements EntryDefinition<ItemStack>, EntrySer
}
@Environment(EnvType.CLIENT)
- public class ItemEntryRenderer implements BatchedEntryRenderer<ItemStack, BakedModel> {
+ public class ItemEntryRenderer implements BatchedEntryRenderer<ItemStack, ItemStackRenderState> {
private static final float SCALE = 20.0F;
public static final int ITEM_LIGHT = 0xf000f0;
@Override
- public BakedModel getExtraData(EntryStack<ItemStack> entry) {
+ public ItemStackRenderState getExtraData(EntryStack<ItemStack> entry) {
Minecraft minecraft = Minecraft.getInstance();
- return minecraft.getItemRenderer().getModel(entry.getValue(), minecraft.level, minecraft.player, 0);
+ ItemStackRenderState renderState = new ItemStackRenderState();
+ minecraft.getItemModelResolver().updateForTopItem(renderState, entry.getValue(), ItemDisplayContext.GUI, false, minecraft.level, minecraft.player, 0);
+ return renderState;
}
@Override
public void render(EntryStack<ItemStack> entry, GuiGraphics graphics, Rectangle bounds, int mouseX, int mouseY, float delta) {
- BakedModel model = getExtraData(entry);
- setupGL(entry, model);
if (!entry.isEmpty()) {
ItemStack value = entry.getValue();
+ ItemStackRenderState renderState = getExtraData(entry);
+ setupGL(entry, renderState);
graphics.pose().pushPose();
graphics.pose().translate(bounds.getCenterX(), bounds.getCenterY(), 0);
graphics.pose().mulPose(new Matrix4f().scaling(1.0F, -1.0F, 1.0F));
graphics.pose().scale(bounds.getWidth(), bounds.getHeight(), (bounds.getWidth() + bounds.getHeight()) / 2.0F);
MultiBufferSource.BufferSource immediate = graphics.bufferSource;
- Minecraft.getInstance().getItemRenderer().render(value, ItemDisplayContext.GUI, false, graphics.pose(), immediate,
- ITEM_LIGHT, OverlayTexture.NO_OVERLAY, model);
+ renderState.render(graphics.pose(), immediate, ITEM_LIGHT, OverlayTexture.NO_OVERLAY);
immediate.endBatch();
graphics.pose().popPose();
+
+ Matrix4fStack modelViewStack = RenderSystem.getModelViewStack();
+ modelViewStack.pushMatrix();
+ modelViewStack.mul(graphics.pose().last().pose());
+ modelViewStack.translate(bounds.x, bounds.y, 0);
+ modelViewStack.scale(bounds.width / 16f, (bounds.getWidth() + bounds.getHeight()) / 2f / 16f, 1.0F);
+ graphics.drawSpecial(source -> {
+ if (source instanceof MultiBufferSource.BufferSource multiBufferSource) {
+ renderOverlay(new GuiGraphics(Minecraft.getInstance(), multiBufferSource), entry, bounds);
+ }
+ });
+ modelViewStack.popMatrix();
+ endGL(entry, renderState);
}
- Matrix4fStack modelViewStack = RenderSystem.getModelViewStack();
- modelViewStack.pushMatrix();
- modelViewStack.mul(graphics.pose().last().pose());
- modelViewStack.translate(bounds.x, bounds.y, 0);
- modelViewStack.scale(bounds.width / 16f, (bounds.getWidth() + bounds.getHeight()) / 2f / 16f, 1.0F);
- graphics.drawSpecial(source -> {
- if (source instanceof MultiBufferSource.BufferSource multiBufferSource) {
- renderOverlay(new GuiGraphics(Minecraft.getInstance(), multiBufferSource), entry, bounds);
- }
- });
- modelViewStack.popMatrix();
- endGL(entry, model);
}
@Override
- public int getBatchIdentifier(EntryStack<ItemStack> entry, Rectangle bounds, BakedModel model) {
- return 1738923 + (model.usesBlockLight() ? 1 : 0);
+ public int getBatchIdentifier(EntryStack<ItemStack> entry, Rectangle bounds, ItemStackRenderState renderState) {
+ return 1738923 + (renderState.usesBlockLight() ? 1 : 0);
}
@Override
- public void startBatch(EntryStack<ItemStack> entry, BakedModel model, GuiGraphics graphics, float delta) {
- setupGL(entry, model);
+ public void startBatch(EntryStack<ItemStack> entry, ItemStackRenderState renderState, GuiGraphics graphics, float delta) {
+ setupGL(entry, renderState);
}
- public void setupGL(EntryStack<ItemStack> entry, BakedModel model) {
+ public void setupGL(EntryStack<ItemStack> entry, ItemStackRenderState renderState) {
Minecraft.getInstance().getTextureManager().getTexture(TextureAtlas.LOCATION_BLOCKS).setFilter(false, false);
RenderSystem.setShaderTexture(0, TextureAtlas.LOCATION_BLOCKS);
RenderSystem.enableBlend();
RenderSystem.blendFunc(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA);
RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F);
- boolean sideLit = model.usesBlockLight();
+ boolean sideLit = renderState.usesBlockLight();
if (!sideLit) Lighting.setupForFlatItems();
}
@Override
- public void renderBase(EntryStack<ItemStack> entry, BakedModel model, GuiGraphics graphics, MultiBufferSource.BufferSource immediate, Rectangle bounds, int mouseX, int mouseY, float delta) {
+ public void renderBase(EntryStack<ItemStack> entry, ItemStackRenderState renderState, GuiGraphics graphics, MultiBufferSource.BufferSource immediate, Rectangle bounds, int mouseX, int mouseY, float delta) {
if (!entry.isEmpty()) {
ItemStack value = entry.getValue();
graphics.pose().pushPose();
graphics.pose().translate(bounds.getCenterX(), bounds.getCenterY(), 0);
graphics.pose().scale(bounds.getWidth(), (bounds.getWidth() + bounds.getHeight()) / -2f, (bounds.getWidth() + bounds.getHeight()) / 2f);
- Minecraft.getInstance().getItemRenderer().render(value, ItemDisplayContext.GUI, false, graphics.pose(), immediate,
- ITEM_LIGHT, OverlayTexture.NO_OVERLAY, model);
+ renderState.render(graphics.pose(), immediate, ITEM_LIGHT, OverlayTexture.NO_OVERLAY);
graphics.pose().popPose();
}
}
@Override
- public void afterBase(EntryStack<ItemStack> entry, BakedModel model, GuiGraphics graphics, float delta) {
- endGL(entry, model);
+ public void afterBase(EntryStack<ItemStack> entry, ItemStackRenderState renderState, GuiGraphics graphics, float delta) {
+ endGL(entry, renderState);
}
@Override
- public void renderOverlay(EntryStack<ItemStack> entry, BakedModel model, GuiGraphics graphics, MultiBufferSource.BufferSource immediate, Rectangle bounds, int mouseX, int mouseY, float delta) {
+ public void renderOverlay(EntryStack<ItemStack> entry, ItemStackRenderState renderState, GuiGraphics graphics, MultiBufferSource.BufferSource immediate, Rectangle bounds, int mouseX, int mouseY, float delta) {
Matrix4fStack modelViewStack = RenderSystem.getModelViewStack();
modelViewStack.pushMatrix();
modelViewStack.mul(graphics.pose().last().pose());
@@ -345,12 +346,12 @@ public class ItemEntryDefinition implements EntryDefinition<ItemStack>, EntrySer
}
@Override
- public void endBatch(EntryStack<ItemStack> entry, BakedModel model, GuiGraphics graphics, float delta) {
+ public void endBatch(EntryStack<ItemStack> entry, ItemStackRenderState renderState, GuiGraphics graphics, float delta) {
}
- public void endGL(EntryStack<ItemStack> entry, BakedModel model) {
+ public void endGL(EntryStack<ItemStack> entry, ItemStackRenderState renderState) {
RenderSystem.enableDepthTest();
- boolean sideLit = model.usesBlockLight();
+ boolean sideLit = renderState.usesBlockLight();
if (!sideLit) Lighting.setupFor3DItems();
}