9456f639d4
* Simplified the UV loader concept: We only need it to make quads "unlit" which means that the lighting system is not applied to them. They always render at their full brightness. * More documentation and slight cleanups.
38 lines
1.5 KiB
Java
38 lines
1.5 KiB
Java
package appeng.mixins.unlitquad;
|
|
|
|
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.CallbackInfoReturnable;
|
|
|
|
import net.minecraft.client.renderer.model.BakedQuad;
|
|
import net.minecraft.client.renderer.model.BlockModel;
|
|
import net.minecraft.client.renderer.model.BlockPart;
|
|
import net.minecraft.client.renderer.model.BlockPartFace;
|
|
import net.minecraft.client.renderer.model.IModelTransform;
|
|
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
|
|
import net.minecraft.util.Direction;
|
|
import net.minecraft.util.ResourceLocation;
|
|
|
|
import appeng.hooks.UnlitQuadHooks;
|
|
|
|
/**
|
|
* This mixin hooks into conversion from {@link BlockPartFace} to
|
|
* {@link BakedQuad} to apply our unlit extensions if the block part face is an
|
|
* instance of our marker class
|
|
* {@link appeng.hooks.UnlitQuadHooks.UnlitBlockPartFace}.
|
|
*/
|
|
@Mixin(BlockModel.class)
|
|
public class BlockModelMixin {
|
|
|
|
@Inject(method = "bakeFace", at = @At("RETURN"), cancellable = true, require = 1, allow = 1)
|
|
private static void onBakeFace(BlockPart partIn, BlockPartFace partFaceIn, TextureAtlasSprite spriteIn,
|
|
Direction directionIn, IModelTransform transformIn, ResourceLocation locationIn,
|
|
CallbackInfoReturnable<BakedQuad> cri) {
|
|
if (partFaceIn instanceof UnlitQuadHooks.UnlitBlockPartFace) {
|
|
cri.setReturnValue(UnlitQuadHooks.makeUnlit(cri.getReturnValue()));
|
|
}
|
|
}
|
|
|
|
}
|