9
0
mirror of https://github.com/Xiao-MoMi/craft-engine.git synced 2025-12-19 15:09:15 +00:00

补全盔甲架数据

This commit is contained in:
jhqwqmc
2025-12-07 07:16:16 +08:00
parent 6e8515c3a7
commit fae874646c
2 changed files with 39 additions and 0 deletions

View File

@@ -1,8 +1,16 @@
package net.momirealms.craftengine.bukkit.entity.data; package net.momirealms.craftengine.bukkit.entity.data;
import net.momirealms.craftengine.bukkit.plugin.reflection.minecraft.CoreReflections;
public class ArmorStandData<T> extends LivingEntityData<T> { public class ArmorStandData<T> extends LivingEntityData<T> {
public static final ArmorStandData<Byte> ArmorStandFlags = new ArmorStandData<>(ArmorStandData.class, EntityDataValue.Serializers$BYTE, (byte) 0); public static final ArmorStandData<Byte> ArmorStandFlags = new ArmorStandData<>(ArmorStandData.class, EntityDataValue.Serializers$BYTE, (byte) 0);
// rotations // rotations
public static final ArmorStandData<Object> HeadPose = new ArmorStandData<>(ArmorStandData.class, EntityDataValue.Serializers$ROTATIONS, CoreReflections.instance$ArmorStand$DEFAULT_HEAD_POSE);
public static final ArmorStandData<Object> BodyPose = new ArmorStandData<>(ArmorStandData.class, EntityDataValue.Serializers$ROTATIONS, CoreReflections.instance$ArmorStand$DEFAULT_BODY_POSE);
public static final ArmorStandData<Object> LeftArmPose = new ArmorStandData<>(ArmorStandData.class, EntityDataValue.Serializers$ROTATIONS, CoreReflections.instance$ArmorStand$DEFAULT_LEFT_ARM_POSE);
public static final ArmorStandData<Object> RightArmPose = new ArmorStandData<>(ArmorStandData.class, EntityDataValue.Serializers$ROTATIONS, CoreReflections.instance$ArmorStand$DEFAULT_RIGHT_ARM_POSE);
public static final ArmorStandData<Object> LeftLegPose = new ArmorStandData<>(ArmorStandData.class, EntityDataValue.Serializers$ROTATIONS, CoreReflections.instance$ArmorStand$DEFAULT_LEFT_LEG_POSE);
public static final ArmorStandData<Object> RightLegPose = new ArmorStandData<>(ArmorStandData.class, EntityDataValue.Serializers$ROTATIONS, CoreReflections.instance$ArmorStand$DEFAULT_RIGHT_LEG_POSE);
public ArmorStandData(Class<?> clazz, Object serializer, T defaultValue) { public ArmorStandData(Class<?> clazz, Object serializer, T defaultValue) {
super(clazz, serializer, defaultValue); super(clazz, serializer, defaultValue);

View File

@@ -4644,4 +4644,35 @@ public final class CoreReflections {
"world.scores.PlayerTeam" "world.scores.PlayerTeam"
) )
); );
public static final Class<?> clazz$Rotations = requireNonNull(
BukkitReflectionUtils.findReobfOrMojmapClass(
"core.Vector3f",
"core.Rotations"
)
);
public static final Constructor<?> constructor$Rotations = requireNonNull(
ReflectionUtils.getConstructor(clazz$Rotations, float.class, float.class, float.class)
);
public static final Object instance$ArmorStand$DEFAULT_HEAD_POSE;
public static final Object instance$ArmorStand$DEFAULT_BODY_POSE;
public static final Object instance$ArmorStand$DEFAULT_LEFT_ARM_POSE;
public static final Object instance$ArmorStand$DEFAULT_RIGHT_ARM_POSE;
public static final Object instance$ArmorStand$DEFAULT_LEFT_LEG_POSE;
public static final Object instance$ArmorStand$DEFAULT_RIGHT_LEG_POSE;
static {
try {
instance$ArmorStand$DEFAULT_HEAD_POSE = constructor$Rotations.newInstance(0.0F, 0.0F, 0.0F);
instance$ArmorStand$DEFAULT_BODY_POSE = constructor$Rotations.newInstance(0.0F, 0.0F, 0.0F);
instance$ArmorStand$DEFAULT_LEFT_ARM_POSE = constructor$Rotations.newInstance(-10.0F, 0.0F, -10.0F);
instance$ArmorStand$DEFAULT_RIGHT_ARM_POSE = constructor$Rotations.newInstance(-15.0F, 0.0F, 10.0F);
instance$ArmorStand$DEFAULT_LEFT_LEG_POSE = constructor$Rotations.newInstance(-1.0F, 0.0F, -1.0F);
instance$ArmorStand$DEFAULT_RIGHT_LEG_POSE = constructor$Rotations.newInstance(1.0F, 0.0F, 1.0F);
} catch (ReflectiveOperationException e) {
throw new ReflectionInitException("Failed to init ArmorStand", e);
}
}
} }