Skip to content

Commit 598d71f

Browse files
authored
Merge pull request #43 from steveb05/fix/use-variant-registry
Use registry for cat and wolf variant
2 parents d4c3b1e + b7b69c3 commit 598d71f

File tree

2 files changed

+49
-15
lines changed

2 files changed

+49
-15
lines changed

api/src/main/java/me/tofaa/entitylib/meta/mobs/tameable/CatMeta.java

Lines changed: 36 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package me.tofaa.entitylib.meta.mobs.tameable;
22

3+
import com.github.retrooper.packetevents.protocol.entity.cat.CatVariant;
4+
import com.github.retrooper.packetevents.protocol.entity.cat.CatVariants;
35
import com.github.retrooper.packetevents.protocol.entity.data.EntityDataTypes;
46
import me.tofaa.entitylib.extras.DyeColor;
57
import me.tofaa.entitylib.meta.Metadata;
@@ -20,11 +22,12 @@ public CatMeta(int entityId, Metadata metadata) {
2022

2123
@NotNull
2224
public CatMeta.Variant getVariant() {
23-
return super.metadata.getIndex(OFFSET, Variant.BLACK);
25+
final CatVariant catVariant = super.metadata.getIndex(OFFSET, CatVariants.BLACK);
26+
return Variant.fromCatVariant(catVariant);
2427
}
2528

2629
public void setVariant(@NotNull CatMeta.Variant value) {
27-
super.metadata.setIndex(OFFSET, EntityDataTypes.CAT_VARIANT, value.ordinal());
30+
super.metadata.setIndex(OFFSET, EntityDataTypes.TYPED_CAT_VARIANT, value.getCatVariant());
2831
}
2932

3033
public boolean isLying() {
@@ -51,21 +54,40 @@ public void setCollarColor(@NotNull DyeColor value) {
5154
super.metadata.setIndex(offset(OFFSET, 3), EntityDataTypes.INT, value.ordinal());
5255
}
5356

54-
5557
public enum Variant {
56-
TABBY,
57-
BLACK,
58-
RED,
59-
SIAMESE,
60-
BRITISH_SHORTHAIR,
61-
CALICO,
62-
PERSIAN,
63-
RAGDOLL,
64-
WHITE,
65-
JELLIE,
66-
ALL_BLACK;
58+
ALL_BLACK(CatVariants.ALL_BLACK),
59+
BLACK(CatVariants.BLACK),
60+
BRITISH_SHORTHAIR(CatVariants.BRITISH_SHORTHAIR),
61+
CALICO(CatVariants.CALICO),
62+
JELLIE(CatVariants.JELLIE),
63+
PERSIAN(CatVariants.PERSIAN),
64+
RAGDOLL(CatVariants.RAGDOLL),
65+
RED(CatVariants.RED),
66+
SIAMESE(CatVariants.SIAMESE),
67+
TABBY(CatVariants.TABBY),
68+
WHITE(CatVariants.WHITE);
69+
70+
private final CatVariant catVariant;
71+
72+
Variant(final CatVariant catVariant) {
73+
this.catVariant = catVariant;
74+
}
6775

6876
private static final Variant[] VALUES = values();
77+
78+
public CatVariant getCatVariant() {
79+
return catVariant;
80+
}
81+
82+
@NotNull
83+
public static Variant fromCatVariant(@NotNull final CatVariant catVariant) {
84+
for (final Variant variant : VALUES) {
85+
if (variant.getCatVariant().equals(catVariant)) {
86+
return variant;
87+
}
88+
}
89+
return BLACK;
90+
}
6991
}
7092

7193
}

api/src/main/java/me/tofaa/entitylib/meta/mobs/tameable/WolfMeta.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,31 @@
11
package me.tofaa.entitylib.meta.mobs.tameable;
22

33
import com.github.retrooper.packetevents.protocol.entity.data.EntityDataTypes;
4+
import com.github.retrooper.packetevents.protocol.entity.wolfvariant.WolfVariant;
5+
import com.github.retrooper.packetevents.protocol.entity.wolfvariant.WolfVariants;
46
import me.tofaa.entitylib.extras.DyeColor;
57
import me.tofaa.entitylib.meta.Metadata;
68
import me.tofaa.entitylib.meta.types.TameableMeta;
9+
import org.jetbrains.annotations.NotNull;
710

811
public class WolfMeta extends TameableMeta {
912

1013
public static final byte OFFSET = TameableMeta.MAX_OFFSET;
11-
public static final byte MAX_OFFSET = OFFSET + 3;
14+
public static final byte MAX_OFFSET = OFFSET + 5;
1215

1316
public WolfMeta(int entityId, Metadata metadata) {
1417
super(entityId, metadata);
1518
}
1619

20+
@NotNull
21+
public WolfVariant getVariant() {
22+
return super.metadata.getIndex(offset(OFFSET, 3), WolfVariants.PALE);
23+
}
24+
25+
public void setVariant(@NotNull WolfVariant value) {
26+
super.metadata.setIndex(offset(OFFSET, 3), EntityDataTypes.TYPED_WOLF_VARIANT, value);
27+
}
28+
1729
public boolean isBegging() {
1830
return super.metadata.getIndex(OFFSET, false);
1931
}

0 commit comments

Comments
 (0)