Merge branch '4.1-beta' into 4.1-beta-physics

This commit is contained in:
Nathan Sweet 2022-01-28 11:21:00 -04:00
commit 4bf5c690d0
3 changed files with 19 additions and 8 deletions

View File

@ -4,7 +4,7 @@ This folder contains formatter configuration files to be used with IDEs as well
You will need the following on your `PATH`:
- JDK 10+
- clang-format 12 (i.e. `brew install clang-format`). Also set the environment variable `CLANGFORMAT` to the path of the `clang-format` executable.
- clang-format 12.0.1 (i.e. `brew install clang-format`). Also set the environment variable `CLANGFORMAT` to the path of the `clang-format` executable.
- dotnet format (i.e. `dotnet tool install -g dotnet-format`, comes with dotnet 6 out of the box)
- tsfmt, (i.e. `npm install -g typescript-formatter`)

View File

@ -703,6 +703,9 @@ public class AnimationState {
entry.loop = loop;
entry.holdPrevious = false;
entry.reverse = false;
entry.shortestRotation = false;
entry.eventThreshold = 0;
entry.attachmentThreshold = 0;
entry.drawOrderThreshold = 0;
@ -720,9 +723,10 @@ public class AnimationState {
entry.timeScale = 1;
entry.alpha = 1;
entry.interruptAlpha = 1;
entry.mixTime = 0;
entry.mixDuration = last == null ? 0 : data.getMix(last.animation, animation);
entry.interruptAlpha = 1;
entry.totalAlpha = 0;
entry.mixBlend = MixBlend.replace;
return entry;
}

View File

@ -203,13 +203,14 @@ export class AnimationState {
} else {
let timelineMode = current.timelineMode;
let firstFrame = current.timelinesRotation.length != timelineCount << 1;
let shortestRotation = current.shortestRotation;
let firstFrame = !shortestRotation && current.timelinesRotation.length != timelineCount << 1;
if (firstFrame) current.timelinesRotation.length = timelineCount << 1;
for (let ii = 0; ii < timelineCount; ii++) {
let timeline = timelines[ii];
let timelineBlend = timelineMode[ii] == SUBSEQUENT ? blend : MixBlend.setup;
if (timeline instanceof RotateTimeline) {
if (!shortestRotation && timeline instanceof RotateTimeline) {
this.applyRotateTimeline(timeline, skeleton, applyTime, mix, timelineBlend, current.timelinesRotation, ii << 1, firstFrame);
} else if (timeline instanceof AttachmentTimeline) {
this.applyAttachmentTimeline(timeline, skeleton, applyTime, blend, true);
@ -276,8 +277,8 @@ export class AnimationState {
let timelineMode = from.timelineMode;
let timelineHoldMix = from.timelineHoldMix;
let firstFrame = from.timelinesRotation.length != timelineCount << 1;
if (firstFrame) from.timelinesRotation.length = timelineCount << 1;
let shortestRotation = from.shortestRotation;
let firstFrame = !shortestRotation && from.timelinesRotation.length != timelineCount << 1;
from.totalAlpha = 0;
for (let i = 0; i < timelineCount; i++) {
@ -311,7 +312,7 @@ export class AnimationState {
}
from.totalAlpha += alpha;
if (timeline instanceof RotateTimeline)
if (shortestRotation && timeline instanceof RotateTimeline)
this.applyRotateTimeline(timeline, skeleton, applyTime, alpha, timelineBlend, from.timelinesRotation, i << 1, firstFrame);
else if (timeline instanceof AttachmentTimeline)
this.applyAttachmentTimeline(timeline, skeleton, applyTime, timelineBlend, attachments);
@ -651,6 +652,9 @@ export class AnimationState {
entry.loop = loop;
entry.holdPrevious = false;
entry.reverse = false;
entry.shortestRotation = false;
entry.eventThreshold = 0;
entry.attachmentThreshold = 0;
entry.drawOrderThreshold = 0;
@ -668,9 +672,10 @@ export class AnimationState {
entry.timeScale = 1;
entry.alpha = 1;
entry.interruptAlpha = 1;
entry.mixTime = 0;
entry.mixDuration = !last ? 0 : this.data.getMix(last.animation, animation);
entry.interruptAlpha = 1;
entry.totalAlpha = 0;
entry.mixBlend = MixBlend.replace;
return entry;
}
@ -823,6 +828,8 @@ export class TrackEntry {
reverse: boolean = false;
shortestRotation: boolean = false;
/** When the mix percentage ({@link #mixTime} / {@link #mixDuration}) is less than the
* `eventThreshold`, event timelines are applied while this animation is being mixed out. Defaults to 0, so event
* timelines are not applied while this animation is being mixed out. */