77import org .joml .Vector3f ;
88import org .joml .Vector3fc ;
99
10+ import doggytalents .api .registry .AccessoryInstance ;
11+ import doggytalents .api .registry .Accessory .AccessoryRenderType ;
1012import doggytalents .client .entity .model .dog .CustomDogModel ;
1113import doggytalents .client .entity .model .dog .DogModel ;
1214import doggytalents .client .entity .model .dog .GlowingEyeDogModel ;
1315import doggytalents .client .entity .model .util .DTNModelCodec .DogModelAccessoryProps ;
1416import doggytalents .client .entity .model .util .DTNModelCodec .DogModelProps ;
1517import doggytalents .client .entity .model .util .DTNModelCodec .ParsedModelResult ;
18+ import doggytalents .common .entity .Dog ;
1619import net .minecraft .util .Mth ;
1720
1821public class ParsedDogModel {
@@ -40,6 +43,11 @@ public static DogModel normal(ParsedModelResult result, DogModelProps props) {
4043 final var accessory_compat = accessory_props .compatabilityState ();
4144 final boolean use_default_model = accessory_props .useDefaultModel ();
4245
46+ final boolean accesory_render =
47+ accessory_compat != DogModel .AccessoryState .NON_COMPATIBLE ;
48+ final boolean only_model_accessory =
49+ accessory_compat == DogModel .AccessoryState .MODEL_ONLY ;
50+
4351 return new DogModel (baked , render_type ) {
4452 @ Override
4553 public @ Nullable Vector3f getCustomRootPivotPoint () {
@@ -70,7 +78,14 @@ public AccessoryState getAccessoryState() {
7078 @ Override
7179 public boolean useDefaultModelForAccessories () {
7280 return use_default_model ;
73- }
81+ }
82+ @ Override
83+ public boolean acessoryShouldRender (Dog dog , AccessoryInstance inst ) {
84+ if (!only_model_accessory )
85+ return inst .getAccessory ()
86+ .getAccessoryRenderType () == AccessoryRenderType .MODEL ;
87+ return accesory_render ;
88+ }
7489 };
7590 }
7691
@@ -91,6 +106,11 @@ public static DogModel glowingEyesLegacy(ParsedModelResult result, DogModelProps
91106 final var accessory_compat = accessory_props .compatabilityState ();
92107 final boolean use_default_model = accessory_props .useDefaultModel ();
93108
109+ final boolean accesory_render =
110+ accessory_compat != DogModel .AccessoryState .NON_COMPATIBLE ;
111+ final boolean only_model_accessory =
112+ accessory_compat == DogModel .AccessoryState .MODEL_ONLY ;
113+
94114 return new GlowingEyeDogModel (baked , render_type ) {
95115 @ Override
96116 public @ Nullable Vector3f getCustomRootPivotPoint () {
@@ -121,7 +141,14 @@ public AccessoryState getAccessoryState() {
121141 @ Override
122142 public boolean useDefaultModelForAccessories () {
123143 return use_default_model ;
124- }
144+ }
145+ @ Override
146+ public boolean acessoryShouldRender (Dog dog , AccessoryInstance inst ) {
147+ if (!only_model_accessory )
148+ return inst .getAccessory ()
149+ .getAccessoryRenderType () == AccessoryRenderType .MODEL ;
150+ return accesory_render ;
151+ }
125152 };
126153 }
127154
0 commit comments