fix: use registry for cat variants
This commit is contained in:
parent
d4c3b1e4e9
commit
30bd847ac0
1 changed files with 36 additions and 14 deletions
|
|
@ -1,5 +1,7 @@
|
||||||
package me.tofaa.entitylib.meta.mobs.tameable;
|
package me.tofaa.entitylib.meta.mobs.tameable;
|
||||||
|
|
||||||
|
import com.github.retrooper.packetevents.protocol.entity.cat.CatVariant;
|
||||||
|
import com.github.retrooper.packetevents.protocol.entity.cat.CatVariants;
|
||||||
import com.github.retrooper.packetevents.protocol.entity.data.EntityDataTypes;
|
import com.github.retrooper.packetevents.protocol.entity.data.EntityDataTypes;
|
||||||
import me.tofaa.entitylib.extras.DyeColor;
|
import me.tofaa.entitylib.extras.DyeColor;
|
||||||
import me.tofaa.entitylib.meta.Metadata;
|
import me.tofaa.entitylib.meta.Metadata;
|
||||||
|
|
@ -20,11 +22,12 @@ public class CatMeta extends TameableMeta {
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public CatMeta.Variant getVariant() {
|
public CatMeta.Variant getVariant() {
|
||||||
return super.metadata.getIndex(OFFSET, Variant.BLACK);
|
final CatVariant catVariant = super.metadata.getIndex(OFFSET, CatVariants.BLACK);
|
||||||
|
return Variant.fromCatVariant(catVariant);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setVariant(@NotNull CatMeta.Variant value) {
|
public void setVariant(@NotNull CatMeta.Variant value) {
|
||||||
super.metadata.setIndex(OFFSET, EntityDataTypes.CAT_VARIANT, value.ordinal());
|
super.metadata.setIndex(OFFSET, EntityDataTypes.TYPED_CAT_VARIANT, value.getCatVariant());
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isLying() {
|
public boolean isLying() {
|
||||||
|
|
@ -51,21 +54,40 @@ public class CatMeta extends TameableMeta {
|
||||||
super.metadata.setIndex(offset(OFFSET, 3), EntityDataTypes.INT, value.ordinal());
|
super.metadata.setIndex(offset(OFFSET, 3), EntityDataTypes.INT, value.ordinal());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public enum Variant {
|
public enum Variant {
|
||||||
TABBY,
|
ALL_BLACK(CatVariants.ALL_BLACK),
|
||||||
BLACK,
|
BLACK(CatVariants.BLACK),
|
||||||
RED,
|
BRITISH_SHORTHAIR(CatVariants.BRITISH_SHORTHAIR),
|
||||||
SIAMESE,
|
CALICO(CatVariants.CALICO),
|
||||||
BRITISH_SHORTHAIR,
|
JELLIE(CatVariants.JELLIE),
|
||||||
CALICO,
|
PERSIAN(CatVariants.PERSIAN),
|
||||||
PERSIAN,
|
RAGDOLL(CatVariants.RAGDOLL),
|
||||||
RAGDOLL,
|
RED(CatVariants.RED),
|
||||||
WHITE,
|
SIAMESE(CatVariants.SIAMESE),
|
||||||
JELLIE,
|
TABBY(CatVariants.TABBY),
|
||||||
ALL_BLACK;
|
WHITE(CatVariants.WHITE);
|
||||||
|
|
||||||
|
private final CatVariant catVariant;
|
||||||
|
|
||||||
|
Variant(final CatVariant catVariant) {
|
||||||
|
this.catVariant = catVariant;
|
||||||
|
}
|
||||||
|
|
||||||
private static final Variant[] VALUES = values();
|
private static final Variant[] VALUES = values();
|
||||||
|
|
||||||
|
public CatVariant getCatVariant() {
|
||||||
|
return catVariant;
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
public static Variant fromCatVariant(@NotNull final CatVariant catVariant) {
|
||||||
|
for (final Variant variant : VALUES) {
|
||||||
|
if (variant.getCatVariant().equals(catVariant)) {
|
||||||
|
return variant;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return BLACK;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue