1818
1919package gg .skytils .skytilsmod .mixins .transformers .renderer ;
2020
21+ import com .llamalad7 .mixinextras .expression .Definition ;
22+ import com .llamalad7 .mixinextras .expression .Expression ;
23+ import com .llamalad7 .mixinextras .sugar .Local ;
2124import gg .skytils .skytilsmod .features .impl .dungeons .MasterMode7Features ;
22- import net .minecraft .client .render .entity .model .EntityModel ;
25+ import gg .skytils .skytilsmod .mixins .extensions .ExtensionEntityRenderState ;
26+ import net .minecraft .client .render .RenderLayer ;
27+ import net .minecraft .client .render .VertexConsumerProvider ;
2328import net .minecraft .client .render .entity .EnderDragonEntityRenderer ;
24- import net .minecraft .client .render .entity .MobEntityRenderer ;
2529import net .minecraft .client .render .entity .EntityRenderDispatcher ;
30+ import net .minecraft .client .render .entity .MobEntityRenderer ;
31+ import net .minecraft .client .render .entity .model .EntityModel ;
32+ import net .minecraft .client .render .entity .state .EnderDragonEntityRenderState ;
33+ import net .minecraft .entity .Entity ;
2634import net .minecraft .entity .boss .dragon .EnderDragonEntity ;
2735import net .minecraft .util .Identifier ;
36+ import org .jetbrains .annotations .Nullable ;
2837import org .spongepowered .asm .mixin .Mixin ;
2938import org .spongepowered .asm .mixin .Unique ;
3039import org .spongepowered .asm .mixin .injection .At ;
3443import org .spongepowered .asm .mixin .injection .callback .CallbackInfoReturnable ;
3544
3645@ Mixin (EnderDragonEntityRenderer .class )
37- public abstract class MixinRenderDragon extends MobEntityRenderer < EnderDragonEntity > {
46+ public abstract class MixinRenderDragon {
3847 @ Unique
3948 private EnderDragonEntity lastDragon = null ;
4049
41- public MixinRenderDragon (EntityRenderDispatcher renderManager , EntityModel modelBase , float f ) {
42- super (renderManager , modelBase , f );
43- }
44-
4550 @ Inject (method = "render(Lnet/minecraft/entity/boss/dragon/EnderDragonEntity;FFFFFF)V" , at = @ At ("HEAD" ))
4651 private void onRenderModel (EnderDragonEntity entitylivingbaseIn , float f , float g , float h , float i , float j , float scaleFactor , CallbackInfo ci ) {
4752 lastDragon = entitylivingbaseIn ;
@@ -57,8 +62,19 @@ private void afterRenderHurtFrame(EnderDragonEntity entitylivingbaseIn, float f,
5762 MasterMode7Features .INSTANCE .afterRenderHurtFrame ((EnderDragonEntityRenderer ) (Object ) this , entitylivingbaseIn , f , g , h , i , j , scaleFactor , ci );
5863 }
5964
60- @ Inject (method = "getTexture" , at = @ At ("HEAD" ), cancellable = true )
61- private void replaceEntityTexture (EnderDragonEntity entity , CallbackInfoReturnable <Identifier > cir ) {
62- MasterMode7Features .INSTANCE .getEntityTexture (entity , cir );
65+ ///#if MC==10809
66+ //$$ @Inject(method = "getTexture", at = @At("HEAD"), cancellable = true)
67+ //$$ private void replaceEntityTexture(EnderDragonEntity entity, CallbackInfoReturnable<Identifier> cir) {
68+ //$$ MasterMode7Features.INSTANCE.getEntityTexture(entity, cir);
69+ //$$ }
70+ //#else
71+ @ Definition (id = "getBuffer" , method = "Lnet/minecraft/client/render/VertexConsumerProvider;getBuffer(Lnet/minecraft/client/render/RenderLayer;)Lnet/minecraft/client/render/VertexConsumer;" )
72+ @ Definition (id = "DRAGON_CUTOUT" , field = "Lnet/minecraft/client/render/entity/EnderDragonEntityRenderer;DRAGON_CUTOUT:Lnet/minecraft/client/render/RenderLayer;" )
73+ @ Expression ("?.getBuffer(DRAGON_CUTOUT)" )
74+ @ ModifyArg (method = "render(Lnet/minecraft/client/render/entity/state/EnderDragonEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;I)V" , at = @ At ("MIXINEXTRAS:EXPRESSION" ))
75+ private RenderLayer getDragonCutoutLayer (RenderLayer renderLayer , @ Local (argsOnly = true ) EnderDragonEntityRenderState state ) {
76+ @ Nullable Entity entity = ((ExtensionEntityRenderState ) state ).getSkytilsEntity ();
77+ return MasterMode7Features .INSTANCE .getDragonCutoutLayer (entity , renderLayer );
6378 }
79+ //#endif
6480}
0 commit comments