Phase 0 compile progress (70% reduction). Core data model compile :
Refs yesman.epicfight strippées (hors 4 javadocs) :
- AnimationProperty : combat properties EXTRA_DAMAGE, STUN_TYPE, PARTICLE
- ClientAnimator : playAnimationAt(..., AnimatorControlPacket.Layer, Priority)
- ClothSimulator : OBBCollider -> fork geometry-only dans rig/collider/
- InstantiateInvoker : Collider, ColliderPreset, Armatures, DatapackEditScreen
- MoveCoordFunctions : GrapplingAttackAnimation
- SimulationTypes : InverseKinematicsSimulator (path rewrite)
Stubs patch/ :
- EntityPatch<T> abstract — getOriginal, isLogicalClient, getMatrix, getAngleTo
- LivingEntityPatch<T> abstract — getAnimator, getArmature, getTarget, getYRot*
- MobPatch<T extends Mob> — instanceof check only
- item/CapabilityItem — type marker
Forks utilitaires :
- rig/collider/OBBCollider — geometry only (strip Entity collision, drawInternal)
- anim/types/StateSpectrum — identique EF, imports rewrités
- util/PacketBufferCodec — StreamCodec backport
- util/TimePairList — identique EF
- util/HitEntityList — shell pour Priority enum uniquement
- util/ExtendableEnum + ExtendableEnumManager — register/assign enum
Fix package declarations :
- armature/Joint.java + JointTransform.java : package rig.anim -> rig.armature
- Imports JointTransform ajoutés dans anim/{Pose,Keyframe,TransformSheet}
Residu 135 errors = cluster rendering (Phase 2) :
- render/TiedUpRenderTypes (17) : CompositeState package-private MC
- event/PatchedRenderersEvent (11) : missing PatchedEntityRenderer
- mesh/SkinnedMesh (13) : VanillaMeshPartDefinition, compute shader fields
- asset/JsonAssetLoader (6), anim/LivingMotion (5)
50 lines
1.2 KiB
Java
50 lines
1.2 KiB
Java
/*
|
|
* Derived from Epic Fight (https://github.com/Epic-Fight/epicfight)
|
|
* by the Epic Fight Team, licensed under GPLv3.
|
|
* Modifications © 2026 TiedUp! Remake Contributors, distributed under GPLv3.
|
|
*/
|
|
|
|
package com.tiedup.remake.rig.anim;
|
|
|
|
import com.tiedup.remake.rig.armature.JointTransform;
|
|
|
|
public class Keyframe {
|
|
private float timeStamp;
|
|
private final JointTransform transform;
|
|
|
|
public Keyframe(float timeStamp, JointTransform trasnform) {
|
|
this.timeStamp = timeStamp;
|
|
this.transform = trasnform;
|
|
}
|
|
|
|
public Keyframe(Keyframe original) {
|
|
this.transform = JointTransform.empty();
|
|
this.copyFrom(original);
|
|
}
|
|
|
|
public void copyFrom(Keyframe target) {
|
|
this.timeStamp = target.timeStamp;
|
|
this.transform.copyFrom(target.transform);
|
|
}
|
|
|
|
public float time() {
|
|
return this.timeStamp;
|
|
}
|
|
|
|
public void setTime(float time) {
|
|
this.timeStamp = time;
|
|
}
|
|
|
|
public JointTransform transform() {
|
|
return this.transform;
|
|
}
|
|
|
|
public String toString() {
|
|
return "Keyframe[Time: " + this.timeStamp + ", " + (this.transform == null ? "null" : this.transform.toString()) + "]";
|
|
}
|
|
|
|
public static Keyframe empty() {
|
|
return new Keyframe(0.0F, JointTransform.empty());
|
|
}
|
|
}
|