Skip to content

Commit bd06d9c

Browse files
committed
determine whether accessory should render based on compat_state
1 parent 94da789 commit bd06d9c

File tree

1 file changed

+29
-2
lines changed

1 file changed

+29
-2
lines changed

src/main/java/doggytalents/client/entity/model/util/ParsedDogModel.java

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,15 @@
77
import org.joml.Vector3f;
88
import org.joml.Vector3fc;
99

10+
import doggytalents.api.registry.AccessoryInstance;
11+
import doggytalents.api.registry.Accessory.AccessoryRenderType;
1012
import doggytalents.client.entity.model.dog.CustomDogModel;
1113
import doggytalents.client.entity.model.dog.DogModel;
1214
import doggytalents.client.entity.model.dog.GlowingEyeDogModel;
1315
import doggytalents.client.entity.model.util.DTNModelCodec.DogModelAccessoryProps;
1416
import doggytalents.client.entity.model.util.DTNModelCodec.DogModelProps;
1517
import doggytalents.client.entity.model.util.DTNModelCodec.ParsedModelResult;
18+
import doggytalents.common.entity.Dog;
1619
import net.minecraft.util.Mth;
1720

1821
public 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

Comments
 (0)