Skip to content

Commit

Permalink
Fixed some states not calling moreculling$resetTranslucencyCache on n…
Browse files Browse the repository at this point in the history
…eoforge.
  • Loading branch information
1foxy2 committed Oct 5, 2024
1 parent 0733bb7 commit d0515b4
Show file tree
Hide file tree
Showing 5 changed files with 61 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,6 @@
import ca.fxco.moreculling.utils.VertexUtils;
import com.mojang.blaze3d.platform.NativeImage;
import net.minecraft.client.renderer.block.model.BakedQuad;
import net.minecraft.client.renderer.block.model.ItemOverrides;
import net.minecraft.client.renderer.block.model.ItemTransforms;
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
import net.minecraft.client.resources.model.SimpleBakedModel;
import net.minecraft.core.Direction;
import net.minecraft.world.level.block.state.BlockState;
Expand All @@ -19,11 +16,10 @@
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.Unique;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

import java.util.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

@Mixin(SimpleBakedModel.class)
public abstract class SimpleBakedModel_cacheMixin implements BakedOpacity {
Expand Down Expand Up @@ -84,15 +80,4 @@ public abstract class SimpleBakedModel_cacheMixin implements BakedOpacity {
public boolean moreculling$canSetCullingShape() {
return true;
}

@Inject(
method = "<init>",
at = @At("RETURN")
)
private void moreculling$onInit(List<BakedQuad> quads, Map<Direction, List<BakedQuad>> faceQuads, boolean usesAo,
boolean isSideLit, boolean hasDepth, TextureAtlasSprite sprite,
ItemTransforms transformation, ItemOverrides itemOverrides,
CallbackInfo ci) {
moreculling$resetTranslucencyCache();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package ca.fxco.moreculling.mixin.models;

import ca.fxco.moreculling.api.model.BakedOpacity;
import net.minecraft.client.renderer.block.model.BakedQuad;
import net.minecraft.client.renderer.block.model.ItemOverrides;
import net.minecraft.client.renderer.block.model.ItemTransforms;
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
import net.minecraft.client.resources.model.SimpleBakedModel;
import net.minecraft.core.Direction;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

import java.util.List;
import java.util.Map;

@Mixin(SimpleBakedModel.class)
public abstract class SimpleBakedModel_fabricCacheMixin implements BakedOpacity {
@Inject(
method = "<init>",
at = @At("RETURN")
)
private void moreculling$onInit(List<BakedQuad> quads, Map<Direction, List<BakedQuad>> faceQuads, boolean usesAo,
boolean isSideLit, boolean hasDepth, TextureAtlasSprite sprite,
ItemTransforms transformation, ItemOverrides itemOverrides,
CallbackInfo ci) {
moreculling$resetTranslucencyCache();
}
}
1 change: 1 addition & 0 deletions fabric/src/main/resources/moreculling.fabric.mixins.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
"client": [
"models.ForwardingBakedModel_compatMixin",
"models.MultiPartBakedModel_cacheMixin",
"models.SimpleBakedModel_fabricCacheMixin",
"models.WeightedBakedModel_cacheMixin",
"renderers.ItemRenderer_fabricFaceCullingMixin"
],
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package ca.fxco.moreculling.mixin.models;

import ca.fxco.moreculling.api.model.BakedOpacity;
import net.minecraft.client.renderer.block.model.ItemOverrides;
import net.minecraft.client.renderer.block.model.ItemTransforms;
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
import net.minecraft.client.resources.model.SimpleBakedModel;
import net.neoforged.neoforge.client.RenderTypeGroup;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

import java.util.List;
import java.util.Map;

@Mixin(SimpleBakedModel.class)
public abstract class SimpleBakedModel_neoforgeCacheMixin implements BakedOpacity {
@Inject(
method = "<init>(Ljava/util/List;Ljava/util/Map;ZZZLnet/minecraft/client/renderer/texture/TextureAtlasSprite;Lnet/minecraft/client/renderer/block/model/ItemTransforms;Lnet/minecraft/client/renderer/block/model/ItemOverrides;Lnet/neoforged/neoforge/client/RenderTypeGroup;)V",
at = @At("RETURN")
)
private void moreculling$onInit(List unculledFaces, Map culledFaces, boolean hasAmbientOcclusion, boolean usesBlockLight, boolean isGui3d, TextureAtlasSprite particleIcon, ItemTransforms transforms, ItemOverrides overrides, RenderTypeGroup renderTypes, CallbackInfo ci) {
moreculling$resetTranslucencyCache();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
"client": [
"models.BakedModelWrapper_compatMixin",
"models.MultiPartBakedModel_cacheMixin",
"models.SimpleBakedModel_neoforgeCacheMixin",
"models.WeightedBakedModel_cacheMixin",
"renderers.ItemRenderer_neoforgeFaceCullingMixin"
],
Expand Down

0 comments on commit d0515b4

Please sign in to comment.