mirror of
https://github.com/GTNewHorizons/Angelica.git
synced 2026-10-25 20:22:22 +00:00
Fix plascrete/cleanroom trophy rendering (#1957)
This commit is contained in:
1 parent
8cf0296284
commit
d1c6677caf
3 files changed
+27
No files matched your search
+5
@@ -27,6 +27,7 @@ package com.gtnewhorizons.angelica.mixins.early.angelica.itemrenderer;
|
||||
|
||||
import com.gtnewhorizon.gtnhlib.client.renderer.DirectTessellator;
|
||||
import com.gtnewhorizon.gtnhlib.client.renderer.TessellatorManager;
|
||||
import com.gtnewhorizons.angelica.glsm.GLStateManager;
|
||||
import com.gtnewhorizons.angelica.rendering.items.ItemRenderListManager;
|
||||
import com.llamalad7.mixinextras.injector.wrapmethod.WrapMethod;
|
||||
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
|
||||
@@ -43,6 +44,10 @@ public abstract class MixinItemRenderer {
|
||||
|
||||
@WrapMethod(method = "renderItemIn2D")
|
||||
private static void angelica$cacheItem(Tessellator tessellator, float minU, float minV, float maxU, float maxV, int widthSubdivisions, int heightSubdivisions, float thickness, Operation<Void> original) {
|
||||
if (GLStateManager.isRecordingDisplayList() || TessellatorManager.isCurrentlyCapturing() || TessellatorManager.shouldInterceptDraw(Tessellator.instance)) {
|
||||
original.call(tessellator, minU, minV, maxU, maxV, widthSubdivisions, heightSubdivisions, thickness);
|
||||
return;
|
||||
}
|
||||
final ItemRenderListManager.CachedVBO vbo = ItemRenderListManager.pre(minU, minV, maxU, maxV, widthSubdivisions, heightSubdivisions, thickness);
|
||||
if (vbo != null) {
|
||||
final DirectTessellator tess = TessellatorManager.startCapturingDirect();
|
||||
|
||||
+17
@@ -1,12 +1,15 @@
|
||||
package com.gtnewhorizons.angelica.mixins.early.angelica.itemrenderer;
|
||||
|
||||
import com.gtnewhorizon.gtnhlib.client.renderer.TessellatorManager;
|
||||
import com.gtnewhorizons.angelica.glsm.GLStateManager;
|
||||
import com.gtnewhorizons.angelica.rendering.items.BlockRenderListManager;
|
||||
import com.llamalad7.mixinextras.injector.wrapmethod.WrapMethod;
|
||||
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.client.renderer.RenderBlocks;
|
||||
import net.minecraft.client.renderer.Tessellator;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Shadow;
|
||||
|
||||
@@ -23,6 +26,15 @@ public abstract class MixinRenderBlocks {
|
||||
@Shadow
|
||||
public IIcon overrideBlockTexture;
|
||||
|
||||
@Shadow public IBlockAccess blockAccess;
|
||||
|
||||
@Shadow public int uvRotateEast;
|
||||
@Shadow public int uvRotateWest;
|
||||
@Shadow public int uvRotateSouth;
|
||||
@Shadow public int uvRotateNorth;
|
||||
@Shadow public int uvRotateTop;
|
||||
@Shadow public int uvRotateBottom;
|
||||
|
||||
@WrapMethod(method = "renderBlockAsItem")
|
||||
private void angelica$cacheBlockItemRenderer(Block block, int meta, float brightness, Operation<Void> original) {
|
||||
if (BlockRenderListManager.isISBRH(block.getRenderType())
|
||||
@@ -30,6 +42,11 @@ public abstract class MixinRenderBlocks {
|
||||
|| this.overrideBlockTexture != null
|
||||
|| brightness != 1.0F
|
||||
|| !this.useInventoryTint
|
||||
|| this.blockAccess != null
|
||||
|| (uvRotateEast | uvRotateWest | uvRotateSouth | uvRotateNorth | uvRotateTop | uvRotateBottom) != 0
|
||||
|| GLStateManager.isRecordingDisplayList()
|
||||
|| TessellatorManager.isCurrentlyCapturing()
|
||||
|| TessellatorManager.shouldInterceptDraw(Tessellator.instance)
|
||||
) {
|
||||
// Do not cache those
|
||||
original.call(block, meta, brightness);
|
||||
|
||||
+5
@@ -248,4 +248,9 @@ public abstract class MixinRenderBlocks implements ExtCeleritasRenderBlocks {
|
||||
private void compactCtm_resetAfterBlock(Block block, int x, int y, int z, CallbackInfoReturnable<Boolean> cir) {
|
||||
CTMUtils.clearCurrentCompact();
|
||||
}
|
||||
|
||||
@Inject(method = "renderBlockAsItem", at = @At("HEAD"))
|
||||
private void compactCtm_resetBeforeItem(Block block, int meta, float brightness, CallbackInfo ci) {
|
||||
CTMUtils.clearCurrentCompact();
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user