spin-web/WebTest/spine.js

836 lines
39 KiB
JavaScript
Raw Normal View History

2023-11-06 01:53:33 +08:00
let i = new Object()
function e(e, t) {
for (var n = 0; n < t.length; n++) {
var r = t[n];
r.enumerable = r.enumerable || !1,
r.configurable = !0,
"value"in r && (r.writable = !0),
Object.defineProperty(e, r.key, r)
}
}
const a = function(t, n, r) {
return n && e(t.prototype, n),
r && e(t, r),
t
}
const d = function() {
function e() {
u(this, e),
this.current = null,
this.previous = null,
this.currentTrackName = ""
}
return a(e, [{
key: "check",
value: function(e, t) {
e !== this.currentTrackName && (this.previous = this.current,
this.current = t.createHistory(),
this.currentTrackName = e)
}
}]),
e
}()
function u(e, t) {
if (!(e instanceof t)){}
//throw new TypeError("Cannot call a class as a function")
}
i.throttle = function (e, t) {
var n = !1
, r = void 0
, a = void 0;
return function i() {
for (var o = arguments.length, s = Array(o), l = 0; l < o; l++)
s[l] = arguments[l];
if (n)
return r = s,
void (a = this);
n = !0,
e.apply(this, s),
setTimeout((function () {
n = !1,
r && (i.apply(a, r),
r = null,
a = null)
}
), t)
}
}, i.isAvailable = function (e) {
var t = void 0 === e ? "undefined" : r(e);
return "undefined" !== t && ("number" === t || "bigint" === t ? !Number.isNaN(e) : "string" === t ? 0 !== e.length : "boolean" === t || "function" === t || "symbol" === t || ("object" === t ? null !== e && (e instanceof Array ? 0 !== e.length : e instanceof Map || e instanceof Set ? 0 !== e.size : e instanceof HTMLElement || 0 !== Object.keys(e).length) : void 0))
}, i.fromEntries = function (e) {
return [].concat(function (e) {
if (Array.isArray(e)) {
for (var t = 0, n = Array(e.length); t < e.length; t++)
n[t] = e[t];
return n
}
return Array.from(e)
}(e)).reduce((function (e, t) {
var n = function (e, t) {
if (Array.isArray(e))
return e;
if (Symbol.iterator in Object(e))
return function (e, t) {
var n = []
, r = !0
, a = !1
, i = void 0;
try {
for (var o, s = e[Symbol.iterator](); !(r = (o = s.next()).done) && (n.push(o.value),
2 !== n.length); r = !0)
;
} catch (e) {
a = !0,
i = e
} finally {
try {
!r && s.return && s.return()
} finally {
if (a)
throw i
}
}
return n
}(e);
throw new TypeError("Invalid attempt to destructure non-iterable instance")
}(t)
, r = n[0]
, a = n[1];
return e[r] = a,
e
}
), {})
}
const f = function (t) {
u(this, e);
var n = t || {}
, r = n.mode
, a = void 0 === r ? 1 : r
, i = n.name
, o = void 0 === i ? "" : i;
this.mode = a,
this.name = o
}
function l(e, t) {
if ("function" != typeof t && null !== t)
throw new TypeError("Super expression must either be null or a function, not " + typeof t);
e.prototype = Object.create(t && t.prototype, {
constructor: {
value: e,
enumerable: !1,
writable: !0,
configurable: !0
}
}),
t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
}
function s(e, t) {
if (!e)
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
return !t || "object" != typeof t && "function" != typeof t ? e : t
}
const p = function (e) {
function t(e) {
u(this, t);
var n = s(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e));
return n.copy(e),
n
}
return l(t, e),
a(t, [{
key: "copy",
value: function (e) {
var t = e || {}
, n = t.rotateOffset
, r = void 0 === n ? 0 : n
, a = t.rotateTime
, i = void 0 === a ? 2 : a
, o = t.rotateRange
, s = void 0 === o ? 10 : o
, l = t.rotateCenter
, u = void 0 === l ? 0 : l
, c = t.childOffset
, f = void 0 === c ? .25 : c
, d = t.spring
, h = void 0 === d ? 0 : d
, p = t.affectByLevel
, m = void 0 === p ? .1 : p
, v = t.springLevel
, g = void 0 === v ? 0 : v
, y = t.scaleYRange
, A = void 0 === y ? 0 : y
, b = t.scaleYTime
, x = void 0 === b ? 2 : b
, _ = t.scaleYCenter
, w = void 0 === _ ? 0 : _
, k = t.scaleYOffset
, S = void 0 === k ? 0 : k
, E = t.scaleYChildOffset
, C = void 0 === E ? .25 : E
, T = t.scaleYSpring
, B = void 0 === T ? 0 : T
, M = t.scaleYAffectByLevel
, I = void 0 === M ? .1 : M
, O = t.scaleXRange
, R = void 0 === O ? 0 : O
, L = t.scaleXTime
, P = void 0 === L ? 2 : L
, D = t.scaleXCenter
, F = void 0 === D ? 0 : D
, N = t.scaleXOffset
, j = void 0 === N ? 0 : N
, U = t.scaleXChildOffset
, z = void 0 === U ? .25 : U
, X = t.scaleXSpring
, Q = void 0 === X ? 0 : X
, Y = t.scaleXAffectByLevel
, H = void 0 === Y ? .1 : Y;
this.rotateOffset = r,
this.rotateCenter = u,
this.rotateTime = i,
this.rotateRange = s,
this.affectByLevel = m,
this.springLevel = g,
this.spring = h,
this.childOffset = f,
this.scaleYRange = A,
this.scaleYCenter = w,
this.scaleYTime = x,
this.scaleYOffset = S,
this.scaleYChildOffset = C,
this.scaleYSpring = B,
this.scaleYAffectByLevel = I,
this.scaleXRange = R,
this.scaleXCenter = F,
this.scaleXTime = P,
this.scaleXOffset = j,
this.scaleXChildOffset = z,
this.scaleXSpring = Q,
this.scaleXAffectByLevel = H,
this.sinScaleXSameAsY = R === A && w === F && P === x && j === S && z === C && Q === B && I === H
}
}]),
t
}(f)
const h = function (e) {
function t(e) {
u(this, t);
var n = s(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e));
return n.copy(e),
n
}
return l(t, e),
a(t, [{
key: "copy",
value: function (e) {
var t = e || {}
, n = t.delay
, r = void 0 === n ? .1 : n
, a = t.speed
, i = void 0 === a ? .1 : a
, o = t.spring
, s = void 0 === o ? 0 : o
, l = t.affectByRange
, u = void 0 === l ? 1 : l
, c = t.affectByX
, f = void 0 === c ? 1 : c
, d = t.affectByY
, h = void 0 === d ? 1 : d
, p = t.rotateMoveRange
, m = void 0 === p ? 1 : p
, v = t.affectByLevel
, g = void 0 === v ? 0 : v
, y = t.springLevel
, A = void 0 === y ? 0 : y
, b = t.limitRange
, x = void 0 === b ? 10 : b;
this.delay = r,
this.speed = i,
this.affectByRange = u,
this.affectByX = f,
this.affectByY = h,
this.rotateMoveRange = m,
this.spring = s,
this.affectByLevel = g,
this.springLevel = A,
this.limitRange = x
}
}, {
key: "createHistory",
value: function () {
return {
speedX: 0,
speedY: 0,
buffer: []
}
}
}]),
t
}(f)
const m = function (e) {
function t(e) {
u(this, t);
var n = s(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e));
return n.copy(e),
n
}
return l(t, e),
a(t, [{
key: "copy",
value: function (e) {
var t = e || {}
, n = t.moveXFreq
, r = void 0 === n ? 1 : n
, a = t.moveXAmp
, i = void 0 === a ? 0 : a
, o = t.moveXOctaves
, s = void 0 === o ? 0 : o
, l = t.moveXDelay
, u = void 0 === l ? 0 : l
, c = t.moveXCenter
, f = void 0 === c ? 0 : c
, d = t.moveXSeed
, h = void 0 === d ? Math.floor(1e4 * Math.random()) : d
, p = t.moveYFreq
, m = void 0 === p ? r : p
, v = t.moveYAmp
, g = void 0 === v ? i : v
, y = t.moveYOctaves
, A = void 0 === y ? s : y
, b = t.moveYDelay
, x = void 0 === b ? u : b
, _ = t.moveYCenter
, w = void 0 === _ ? f : _
, k = t.scaleXFreq
, S = void 0 === k ? 1 : k
, E = t.scaleXAmp
, C = void 0 === E ? 0 : E
, T = t.scaleXOctaves
, B = void 0 === T ? 0 : T
, M = t.scaleXDelay
, I = void 0 === M ? 0 : M
, O = t.scaleXCenter
, R = void 0 === O ? 0 : O
, L = t.scaleYFreq
, P = void 0 === L ? S : L
, D = t.scaleYAmp
, F = void 0 === D ? C : D
, N = t.scaleYOctaves
, j = void 0 === N ? B : N
, U = t.scaleYDelay
, z = void 0 === U ? I : U
, X = t.scaleYCenter
, Q = void 0 === X ? R : X
, Y = t.rotateSpeed
, H = void 0 === Y ? 0 : Y
, G = t.rotateFreq
, V = void 0 === G ? 1 : G
, q = t.rotateAmp
, W = void 0 === q ? 0 : q
, J = t.rotateOctaves
, Z = void 0 === J ? 0 : J
, K = t.rotateDelay
, $ = void 0 === K ? 0 : K
, ee = t.rotateCenter
, te = void 0 === ee ? 0 : ee
, ne = t.rotateFollowLimit
, re = void 0 === ne ? 0 : ne
, ae = t.rotateFollowSpeed
, ie = void 0 === ae ? .1 : ae
, oe = t.rotateFollowFlip
, se = void 0 === oe ? 0 : oe
, le = t.rotateFollowXMax
, ue = void 0 === le ? 20 : le
, ce = t.rotateFollowYMax
, fe = void 0 === ce ? 20 : ce;
this.moveXFreq = r,
this.moveXAmp = i,
this.moveXOctaves = s,
this.moveXDelay = u,
this.moveXCenter = f,
this.moveXSeed = h,
this.moveYFreq = m,
this.moveYAmp = g,
this.moveYOctaves = A,
this.moveYDelay = x,
this.moveYCenter = w,
this.moveYSameAsX = r === m && i === g && s === A && u === x && f === w,
this.scaleXFreq = S,
this.scaleXAmp = C,
this.scaleXOctaves = B,
this.scaleXDelay = I,
this.scaleXCenter = R,
this.scaleYFreq = P,
this.scaleYAmp = F,
this.scaleYOctaves = j,
this.scaleYDelay = z,
this.scaleYCenter = Q,
this.scaleYSameAsX = S === P && C === F && B === j && I === z && R === Q,
this.rotateSpeed = H,
this.rotateFreq = V,
this.rotateAmp = W,
this.rotateOctaves = Z,
this.rotateDelay = $,
this.rotateCenter = te,
this.rotateFollowEnable = 0 !== re,
this.rotateFollowLimit = re,
this.rotateFollowSpeed = ie,
this.rotateFollowFlip = se,
this.rotateFollowXMax = ue,
this.rotateFollowYMax = fe
}
}]),
t
}(f)
const v = function (e) {
function t(e) {
u(this, t);
var n = s(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e));
return n.copy(e),
n
}
return l(t, e),
a(t, [{
key: "copy",
value: function (e) {
var t = e || {}
, n = t.delay
, r = void 0 === n ? .1 : n
, a = t.speed
, i = void 0 === a ? .1 : a
, o = t.spring
, s = void 0 === o ? 0 : o
, l = t.springRot
, u = void 0 === l ? 0 : l
, c = t.affectByLevel
, f = void 0 === c ? 0 : c
, d = t.springLevel
, h = void 0 === d ? 0 : d
, p = t.limitRange
, m = void 0 === p ? 80 : p
, v = t.rotateOffset
, g = void 0 === v ? 0 : v
, y = t.friction
, A = void 0 === y ? .7 : y
, b = t.springUseTarget
, x = void 0 !== b && b
, _ = t.windX
, w = void 0 === _ ? 0 : _
, k = t.windY
, S = void 0 === k ? 0 : k
, E = t.windFreq
, C = void 0 === E ? 1 : E
, T = t.windOctaves
, B = void 0 === T ? 0 : T
, M = t.windAccel
, I = void 0 === M ? 1 : M
, O = t.windDelay
, R = void 0 === O ? 0 : O
, L = t.gravityX
, P = void 0 === L ? 0 : L
, D = t.gravityY
, F = void 0 === D ? 0 : D;
this.delay = r,
this.speed = i,
this.spring = s,
this.springRot = u,
this.affectByLevel = f,
this.springLevel = h,
this.limitRange = m,
this.rotateOffset = g,
this.friction = A,
this.springUseTarget = x,
this.windX = w,
this.windY = S,
this.windFreq = C,
this.windAccel = I,
this.windDelay = R,
this.windOctaves = B,
this.gravityX = P,
this.gravityY = F,
this.hasWindForce = w || S
}
}]),
t
}(f)
const g = function (e) {
function t(e) {
u(this, t);
var n = s(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e));
return n.copy(e),
n
}
return l(t, e),
a(t, [{
key: "copy",
value: function (e) {
var t = e || {}
, n = t.elasticSpring
, r = void 0 === n ? .4 : n
, a = t.elasticFriction
, i = void 0 === a ? .6 : a
, o = t.elasticSoftness
, s = void 0 === o ? 1 : o
, l = t.elasticSpringY
, u = void 0 === l ? r : l
, c = t.elasticFrictionY
, f = void 0 === c ? i : c
, d = t.elasticSoftnessY
, h = void 0 === d ? s : d;
this.elasticSpring = r,
this.elasticFriction = i,
this.elasticSoftness = s,
this.elasticSpringY = u,
this.elasticFrictionY = f,
this.elasticSoftnessY = h
}
}]),
t
}(f)
const y = function (e) {
function t(e) {
u(this, t);
var n = s(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e));
return n.copy(e),
n
}
return l(t, e),
a(t, [{
key: "copy",
value: function (e) {
var t = e || {}
, n = t.delay
, r = void 0 === n ? 0 : n
, a = t.xFrames
, i = void 0 === a ? [] : a
, s = t.yFrames
, l = void 0 === s ? [] : s
, u = t.sxFrames
, c = void 0 === u ? [] : u
, f = t.syFrames
, d = void 0 === f ? [] : f;
this.delay = r,
this.xFrames = i.map((function (e) {
return new o.default(e)
}
)),
this.xFramesEnd = this.xFrames.length ? this.xFrames[this.xFrames.length - 1].start : 0,
this.yFrames = l.map((function (e) {
return new o.default(e)
}
)),
this.yFramesEnd = this.yFrames.length ? this.yFrames[this.yFrames.length - 1].start : 0,
this.sxFrames = c.map((function (e) {
return new o.default(e)
}
)),
this.sxFramesEnd = this.sxFrames.length ? this.sxFrames[this.sxFrames.length - 1].start : 0,
this.sYSameAsSX = 0 === d.length,
this.sYSameAsSX ? (this.syFrames = [],
this.syFramesEnd = 0) : (this.syFrames = d.map((function (e) {
return new o.default(e)
}
)),
this.syFramesEnd = this.syFrames.length ? this.syFrames[this.syFrames.length - 1].start : 0)
}
}]),
t
}(f);
const AutoBone = function () {
function e(t, n) {
u(this, e);
var r = t || {}, a = r.animation, o = void 0 === a ? {} : a, s = r.rootBoneName, l = void 0 === s ? "" : s,
c = r.endBoneName, f = void 0 === c ? [] : c, h = r.targetBoneName, p = void 0 === h ? "" : h,
m = r.targetEndBoneName, v = void 0 === m ? "" : m, g = r.targetWeight, y = void 0 === g ? 1 : g;
this.animation = (0, i.fromEntries)(Object.keys(o).map((function (e) {
return [e, o[e]]
})).map((function (t) {
var n = function (e, t) {
if (Array.isArray(e)) return e;
if (Symbol.iterator in Object(e)) return function (e, t) {
var n = [], r = !0, a = !1, i = void 0;
try {
for (var o, s = e[Symbol.iterator](); !(r = (o = s.next()).done) && (n.push(o.value), 2 !== n.length); r = !0) ;
} catch (e) {
a = !0, i = e
} finally {
try {
!r && s.return && s.return()
} finally {
if (a) throw i
}
}
return n
}(e);
throw new TypeError("Invalid attempt to destructure non-iterable instance")
}(t), r = n[0], a = n[1];
return [r, e.createAnimation(a)]
}))), this.rootMovement = 0, this.rootBoneName = l, this.endBoneName = Array.isArray(f) ? f : [f].filter((function (e) {
return "" !== e
})), this.targetBoneName = p, this.targetEndBoneName = v, this.targetWeight = y, this.history = new d, this.bind(n)
}
return a(e, [{
key: "bind", value: function (e) {
this.spineObj = e, this.rootBone = e.skeleton.findBone(this.rootBoneName), "" !== this.targetBoneName && (this.targetBone = e.skeleton.findBone(this.targetBoneName)), this.init(this.rootBone)
}
}, {
key: "init", value: function (e) {
var t = this, n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0;
e.initX = e.x, e.initY = e.y, e.initWorldX = e.worldX, e.initWorldY = e.worldY, e.initScaleX = e.scaleX, e.initScaleY = e.scaleY, e.initRotation = e.rotation, e.autoMovePrevWorldX = e.worldX, e.autoMovePrevWorldY = e.worldY, e.autoMoveSpeedX = 0, e.autoMoveSpeedY = 0, e.autoMoveFriction = 0, e.followRotation = 0, e.elasticSpeedX = 0, e.elasticSpeedY = 0, e.children.forEach((function (e) {
t.init(e, n + 1)
})), 0 === e.children.length && (e.tailAutoMovePrevWorldX = e.y * e.b + e.worldX, e.tailAutoMovePrevWorldY = e.y * e.d + e.worldY)
}
}, {
key: "reset", value: function () {
this.rootMovement = 0, this.resetBone()
}
}, {
key: "resetBone", value: function () {
var e = this, t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.rootBone;
t.worldX = t.initWorldX, t.worldY = t.initWorldY, t.scaleX = t.initScaleX, t.scaleY = t.initScaleY, t.rotation = t.initRotation, this.endBoneName.includes(t.name) || t.children.forEach((function (t) {
e.resetBone(t)
}))
}
}, {
key: "render", value: function (e, t, n, r) {
var a = null, i = this.currentAnimation, o = this.currentTrackName, s = 1;
this.history.current || this.history.check(this.currentTrackName, i), r && o !== r && (a = this.animation[r] || this.defaultAnimation, this.history.check(this.currentTrackName, i)), a && 1 !== n && (s = n, this.renderAutoBone(a, this.history.previous, e, t, 1)), this.renderAutoBone(i, this.history.current, e, t, s)
}
}, {
key: "renderAutoBone", value: function (e, t, n, r, a) {
var i = e.mode;
if (1 === i) this.updateSineMode(e, r, this.rootBone, this.targetBone, 0, a); else if (2 === i) this.updatePhysicMode(e, t, this.rootBone, r, n, a); else if (3 === i) {
var o = e.moveXFreq, s = e.moveXAmp, l = e.moveXOctaves, u = e.moveXDelay, f = e.moveXCenter,
d = e.moveYSameAsX, h = e.moveXSeed, p = 0 === s ? 0 : this.updateWiggleMode(o, s, l, r, u) + f;
if (this.rootBone.x = this.mixValue(this.rootBone.x, this.rootBone.initX + p, a), d) p = 0 === s ? 0 : this.updateWiggleMode(o, s, l, r, u + h) + f, this.rootBone.y = this.mixValue(this.rootBone.y, this.rootBone.initY + p, a); else {
var m = e.moveYFreq, v = e.moveYAmp, g = e.moveYOctaves, y = e.moveYDelay, A = e.moveYCenter;
p = 0 === v ? 0 : this.updateWiggleMode(m, v, g, r, y) + A, this.rootBone.y = this.mixValue(this.rootBone.y, this.rootBone.initY + p, a)
}
var b = e.scaleXFreq, x = e.scaleXAmp, _ = e.scaleXOctaves, w = e.scaleXDelay, k = e.scaleXCenter,
S = e.scaleYSameAsX;
if (p = 0 === x ? 0 : this.updateWiggleMode(b, x, _, r, w) + k, this.rootBone.scaleX = this.mixValue(this.rootBone.scaleX, this.rootBone.initScaleX + p, a), S) this.rootBone.scaleY = this.mixValue(this.rootBone.scaleY, this.rootBone.initScaleY + p, a); else {
var E = e.scaleYFreq, C = e.scaleYAmp, T = e.scaleYOctaves, B = e.scaleYDelay, M = e.scaleYCenter;
p = 0 === C ? 0 : this.updateWiggleMode(E, C, T, r, B) + M, this.rootBone.scaleY = this.mixValue(this.rootBone.scaleY, this.rootBone.initScaleY + p, a)
}
var I = e.rotateSpeed, O = e.rotateFreq, R = e.rotateAmp, L = e.rotateOctaves, P = e.rotateDelay,
D = e.rotateCenter, F = e.rotateFollowEnable, N = e.rotateFollowLimit, j = e.rotateFollowSpeed,
U = e.rotateFollowFlip, z = e.rotateFollowXMax, X = e.rotateFollowYMax;
if (p = this.rootBone.initRotation + r * I * 360 + D, p += 0 === R ? 0 : this.updateWiggleMode(O, R, L, r, P), F) {
var Q = this.rootBone.worldX - this.rootBone.autoMovePrevWorldX,
Y = this.rootBone.worldY - this.rootBone.autoMovePrevWorldY, H = void 0,
G = (H = 1 === U ? -N * Math.max(-1, Math.min(1, Q / z)) - N * Math.max(-1, Math.min(1, Y / X)) : (Math.atan2(Y, Q) * c + 360) % 360) - this.rootBone.followRotation;
G >= 180 ? H -= 360 : G <= -180 && (H += 360), this.rootBone.followRotation += Math.min(N, Math.max(-N, H - this.rootBone.followRotation)) * j, this.rootBone.followRotation = (this.rootBone.followRotation + 360) % 360, 2 === U && Math.abs(this.rootBone.followRotation - 180) < 90 && (this.rootBone.scaleY *= -1), p += this.rootBone.followRotation
}
this.rootBone.autoMovePrevWorldX = this.rootBone.worldX, this.rootBone.autoMovePrevWorldY = this.rootBone.worldY, this.rootBone.rotation = this.mixValue(this.rootBone.rotation, p, a)
} else if (4 === i) {
var V = this.rootBone.getWorldScale(), q = V.x, W = V.y, J = e.hasWindForce, Z = e.gravityX,
K = e.gravityY;
if (e.forceX = -Z, e.forceY = -K, J) {
var $ = .5 + .5 * this.updateWiggleMode(1 / e.windFreq, 1, e.windOctaves, r, e.windDelay, .8);
e.forceX += e.windX * $, e.forceY += e.windY * $
}
this.updateSpringMagic(e, this.rootBone, this.targetBone, r, n, 0, a, q * W < 0 ? -1 : 1)
} else 5 === i ? this.updateElasic(e, this.rootBone, n, a) : 6 === i && this.updateKeyFrameMode(e, this.rootBone, r, a)
}
}, {
key: "getHistoryRotate", value: function (e, t) {
for (var n = t.length - 1; n > -1; n--) {
var r = t[n];
if (r.time > e) {
for (var a = n - 1; a > -1; a--) {
var i = t[a];
if (e >= i.time) return i.delta + (r.delta - i.delta) * (e - i.time) / (r.time - i.time)
}
return 0
}
}
return 0
}
}, {
key: "mixValue", value: function (e, t, n) {
return e + (t - e) * n
}
}, {
key: "updateSineMode", value: function (e, t) {
var n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : this.rootBone,
r = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : this.targetBone, a = this,
i = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : 0, o = arguments[5];
if (!this.endBoneName.includes(n.data.name)) {
var s = r && r.data.name !== this.targetEndBoneName,
l = s ? this.mixValue(n.initRotation, r.rotation, this.targetWeight) : n.initRotation;
n.rotation = this.mixValue(n.rotation, l + Math.sin((e.rotateOffset - Math.pow(e.childOffset * i, 1 + e.spring) + t) * Math.PI * 2 / e.rotateTime) * e.rotateRange * Math.pow(1 + i * e.affectByLevel, 1 + e.springLevel) + e.rotateCenter, o);
var u = 0;
if (0 !== e.scaleYRange) {
var c = s ? this.mixValue(n.initScaleY, r.scaleY, this.targetWeight) : n.initScaleY;
if (u = Math.sin((e.scaleYOffset - Math.pow(e.scaleYChildOffset * i, 1 + e.scaleYSpring) + t) * Math.PI * 2 / e.scaleYTime) * e.scaleYRange * Math.pow(1 + i * e.scaleYAffectByLevel, 1 + e.springLevel) + e.scaleYCenter, n.scaleY = this.mixValue(n.scaleY, c + u, o), e.sinScaleXSameAsY) {
var f = s ? this.mixValue(n.initScaleX, r.scaleX, this.targetWeight) : n.initScaleX;
n.scaleX = this.mixValue(n.scaleX, f + u, o)
}
}
if (!e.sinScaleXSameAsY && 0 !== e.scaleXRange) {
var d = s ? this.mixValue(n.initScaleX, r.scaleX, this.targetWeight) : n.initScaleX;
u = Math.sin((e.scaleXOffset - Math.pow(e.scaleXChildOffset * i, 1 + e.scaleXSpring) + t) * Math.PI * 2 / e.scaleXTime) * e.scaleXRange * Math.pow(1 + i * e.scaleXAffectByLevel, 1 + e.springLevel) + e.scaleXCenter, n.scaleX = this.mixValue(n.scaleX, d + u, o)
}
n.children.forEach((function (n, l) {
var u = s ? r.children[l] : null;
a.updateSineMode(e, t, n, u, i + 1, o)
}))
}
}
}, {
key: "updateWiggleMode", value: function (e, t, n, r, a) {
for (var i = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : .5, o = 0, s = 1, l = n + 1, u = 1 / (2 - 1 / Math.pow(2, l - 1)), c = u, f = 0, d = 0; d < l; d++) o += s * Math.sin(r * c * Math.PI * 2 / e + a), c = u * Math.pow(1.5, d + 1), f += s, s *= i;
return o / f * t
}
}, {
key: "updatePhysicMode", value: function (e, t, n, r, a, i) {
var o = this, s = Math.min(e.limitRange, Math.max(-e.limitRange, n.autoMovePrevWorldX - n.worldX)),
l = Math.min(e.limitRange, Math.max(-e.limitRange, n.autoMovePrevWorldY - n.worldY));
t.speedX += (e.affectByX * s - t.speedX) * e.speed * a, t.speedY += (e.affectByY * l - t.speedY) * e.speed * a, n.autoMovePrevWorldX = n.worldX, n.autoMovePrevWorldY = n.worldY;
var u = e.affectByRange * (-t.speedX * n.c + t.speedY * n.d);
n.rotation = this.mixValue(n.rotation, u + n.initRotation, i), t.buffer.push({
time: r, delta: u
}), t.buffer.length > 300 && t.buffer.shift(), n.children.forEach((function (n) {
o.updateFollowMode(e, t, n, r, 1, i)
}))
}
}, {
key: "updateFollowMode", value: function (e, t, n, r, a, i) {
var o = this;
this.endBoneName.includes(n.data.name) || (n.rotation = this.mixValue(n.rotation, n.initRotation + this.getHistoryRotate(r - e.delay * (1 + a * e.spring), t.buffer) * e.rotateMoveRange * Math.pow(1 + a * e.affectByLevel, 1 + e.springLevel), i), n.children.forEach((function (n) {
o.updateFollowMode(e, t, n, r, a + 1, i)
})))
}
}, {
key: "updateSpringMagic", value: function (e, t, n, r, a, i, o, s) {
var l = this;
if (!this.endBoneName.includes(t.data.name)) {
t.updateWorldTransform(), t.autoMovePrevWorldX = t.worldX, t.autoMovePrevWorldY = t.worldY;
var u = n && n.data.name !== this.targetEndBoneName,
f = u ? this.mixValue(t.initRotation, n.rotation, this.targetWeight) : t.initRotation,
d = e.springUseTarget && n ? n : t, h = 1 + i * e.affectByLevel, p = Math.pow(h, 1 + e.springLevel),
m = e.delay * p * (1 + e.springRot * h) * a * (0 === i ? 1 + e.spring : 1), v = e.friction,
g = e.forceX, y = e.forceY, A = 1 - e.windAccel;
if (t.children.length > 0) t.children.forEach((function (h, p) {
if (0 === p) {
var b = h.x, x = h.y, _ = b * d.a + x * d.b + t.worldX, w = b * d.c + x * d.d + t.worldY;
_ = (_ - h.autoMovePrevWorldX) * m, w = (w - h.autoMovePrevWorldY) * m, t.autoMoveSpeedX += _, t.autoMoveSpeedY += w, t.autoMoveSpeedX *= v, t.autoMoveSpeedY *= v, t.autoMoveSpeedX += g * e.windAccel, t.autoMoveSpeedY += y * e.windAccel;
var k = h.autoMovePrevWorldX + t.autoMoveSpeedX + g * A,
S = h.autoMovePrevWorldY + t.autoMoveSpeedY + y * A,
E = t.worldToLocalRotation(s * Math.atan2(S - t.worldY, s * (k - t.worldX)) * c + (0 === i ? e.rotateOffset : 0)),
C = Math.min(e.limitRange, Math.max(-e.limitRange, E - f)) + f;
t.rotation = l.mixValue(t.rotation, f * e.speed + (1 - e.speed) * C, o * t.autoMoveFriction), t.updateWorldTransform()
}
var T = u ? n.children[p] : null;
l.updateSpringMagic(e, h, T, r, a, i + 1, o, s)
})); else {
var b = t.x, x = t.y, _ = b * d.a + x * d.b + t.worldX, w = b * d.c + x * d.d + t.worldY;
_ = (_ - t.tailAutoMovePrevWorldX) * m, w = (w - t.tailAutoMovePrevWorldY) * m, t.autoMoveSpeedX += _, t.autoMoveSpeedY += w, t.autoMoveSpeedX *= v, t.autoMoveSpeedY *= v, t.autoMoveSpeedX += g * e.windAccel, t.autoMoveSpeedY += y * e.windAccel;
var k = t.tailAutoMovePrevWorldX + t.autoMoveSpeedX + g * A,
S = t.tailAutoMovePrevWorldY + t.autoMoveSpeedY + y * A,
E = t.worldToLocalRotation(s * Math.atan2(S - t.worldY, s * (k - t.worldX)) * c + (0 === i ? e.rotateOffset : 0)),
C = Math.min(e.limitRange, Math.max(-e.limitRange, E - f)) + f;
t.rotation = this.mixValue(t.rotation, f * e.speed + (1 - e.speed) * C, o * t.autoMoveFriction), t.updateWorldTransform(), t.tailAutoMovePrevWorldX = b * t.a + x * t.b + t.worldX, t.tailAutoMovePrevWorldY = b * t.c + x * t.d + t.worldY
}
t.autoMoveFriction += .1 * (1 - t.autoMoveFriction) * a
}
}
}, {
key: "updateElasic", value: function (e, t, n, r) {
if (!this.endBoneName.includes(t.data.name)) {
var a = t.parent, i = t.initX, o = t.initY, s = i * a.a + o * a.b + a.worldX,
l = i * a.c + o * a.d + a.worldY, u = (s - t.autoMovePrevWorldX) * e.elasticSpring * n,
c = (l - t.autoMovePrevWorldY) * e.elasticSpringY * n;
t.elasticSpeedX += u, t.elasticSpeedX *= e.elasticFriction, t.elasticSpeedY += c, t.elasticSpeedY *= e.elasticFrictionY, t.autoMovePrevWorldX += t.elasticSpeedX, t.autoMovePrevWorldY += t.elasticSpeedY;
var f = a.worldToLocal({
x: t.autoMovePrevWorldX, y: t.autoMovePrevWorldY
}), d = f.x, h = f.y;
isNaN(d) || isNaN(h) || (t.x = this.mixValue(t.x, d * e.elasticSoftness + (1 - e.elasticSoftness) * t.initX, r * t.autoMoveFriction), t.y = this.mixValue(t.y, h * e.elasticSoftness + (1 - e.elasticSoftnessY) * t.initY, r * t.autoMoveFriction), t.autoMoveFriction += .1 * (1 - t.autoMoveFriction) * n)
}
}
}, {
key: "updateKeyFrameMode", value: function (e, t, n, r) {
var a = n + e.delay + 1e3, i = void 0, s = void 0, l = void 0, u = void 0, c = void 0, f = void 0,
d = void 0;
e.xFramesEnd > 0 && (i = a % e.xFramesEnd, l = (s = o.default.getBlock(e.xFrames, i)).start.value, u = s.end.value, c = s.start.start, f = s.end.start, d = s.end.easeFunc, t.x = this.mixValue(t.x, (u - l) * d((i - c) / (f - c)) + l, r)), e.yFramesEnd > 0 && (i = a % e.yFramesEnd, l = (s = o.default.getBlock(e.yFrames, i)).start.value, u = s.end.value, c = s.start.start, f = s.end.start, d = s.end.easeFunc, t.y = this.mixValue(t.y, (u - l) * d((i - c) / (f - c)) + l, r)), e.sxFramesEnd > 0 && (i = a % e.sxFramesEnd, l = (s = o.default.getBlock(e.sxFrames, i)).start.value, u = s.end.value, c = s.start.start, f = s.end.start, d = s.end.easeFunc, t.scaleX = this.mixValue(t.scaleX, (u - l) * d((i - c) / (f - c)) + l, r), e.sYSameAsSX ? t.scaleY = t.scaleX : e.syFramesEnd > 0 && (i = a % e.syFramesEnd, l = (s = o.default.getBlock(e.syFrames, i)).start.value, u = s.end.value, c = s.start.start, f = s.end.start, d = s.end.easeFunc, t.scaleY = this.mixValue(t.scaleY, (u - l) * d((i - c) / (f - c)) + l, r)))
}
}, {
key: "currentTrackName", get: function () {
return this.spineObj.state.tracks.length ? this.spineObj.state.tracks[0].animation.name : ""
}
}, {
key: "currentAnimation", get: function () {
var e = this.spineObj.state.tracks[0].animation.name;
return this.animation[e] || this.defaultAnimation
}
}, {
key: "defaultAnimation", get: function () {
return this.animation.default
}
}], [{
key: "createAnimation", value: function (e) {
switch (e.mode) {
case 1:
return new p(e);
case 2:
return new h(e);
case 3:
return new m(e);
case 4:
return new v(e);
case 5:
return new g(e);
case 6:
return new y(e);
default:
return new f(e)
}
}
}]), e
}()
console.log(new AutoBone({
"rootBoneName": "hair_05",
"animation": {
"default": {
"name": "default",
"mode": 1,
"rotateCenter": 0,
"rotateTime": 2,
"rotateRange": 2,
"rotateOffset": 0,
"childOffset": 0.25,
"spring": 0,
"affectByLevel": 0.1,
"springLevel": 0
}
}
}, {}))