minerender 2.1.0-alpha.65 → 2.1.0-alpha.66
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/index.js +26 -10
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/index.mjs +26 -10
- package/dist/browser/index.mjs.map +1 -1
- package/dist/bundle.js +26 -10
- package/dist/bundle.js.map +1 -1
- package/dist/node/index.js +26 -10
- package/dist/node/index.js.map +1 -1
- package/dist/node/index.mjs +26 -10
- package/dist/node/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/bundle.js
CHANGED
|
@@ -78598,16 +78598,17 @@ ${key}` : key;
|
|
|
78598
78598
|
positions[textureKey] = [x4, y5];
|
|
78599
78599
|
const [width, height] = sizes[textureKey];
|
|
78600
78600
|
const sequence = frames[textureKey];
|
|
78601
|
-
const
|
|
78601
|
+
const getFrameData = (index) => {
|
|
78602
78602
|
const columns = texture.width / width;
|
|
78603
|
-
|
|
78603
|
+
return texture.getSectionData(
|
|
78604
78604
|
index % columns * width,
|
|
78605
78605
|
Math.floor(index / columns) * height,
|
|
78606
78606
|
width,
|
|
78607
78607
|
height
|
|
78608
|
-
)
|
|
78608
|
+
);
|
|
78609
78609
|
};
|
|
78610
|
-
|
|
78610
|
+
const firstFrame = getFrameData(sequence?.[0].index ?? 0);
|
|
78611
|
+
image.putData(firstFrame, x4, y5);
|
|
78611
78612
|
if (texture.hasTransparency) {
|
|
78612
78613
|
hasTransparency = true;
|
|
78613
78614
|
}
|
|
@@ -78615,13 +78616,28 @@ ${key}` : key;
|
|
|
78615
78616
|
hasAnimation = true;
|
|
78616
78617
|
let t5 = 0;
|
|
78617
78618
|
let f4 = 0;
|
|
78619
|
+
const interpolated = metaMap[textureKey]?.animation?.interpolate ? image.context.createImageData(width, height) : void 0;
|
|
78620
|
+
let currentFrame = firstFrame;
|
|
78621
|
+
let nextFrame = interpolated ? getFrameData(sequence[1].index) : firstFrame;
|
|
78618
78622
|
animatorFunctions[textureKey] = () => {
|
|
78619
|
-
if (++t5
|
|
78620
|
-
|
|
78621
|
-
|
|
78622
|
-
|
|
78623
|
-
|
|
78624
|
-
|
|
78623
|
+
if (++t5 >= sequence[f4].time) {
|
|
78624
|
+
t5 = 0;
|
|
78625
|
+
const previous = sequence[f4].index;
|
|
78626
|
+
f4 = (f4 + 1) % sequence.length;
|
|
78627
|
+
if (interpolated) {
|
|
78628
|
+
currentFrame = nextFrame;
|
|
78629
|
+
nextFrame = getFrameData(sequence[(f4 + 1) % sequence.length].index);
|
|
78630
|
+
}
|
|
78631
|
+
if (sequence[f4].index === previous) return false;
|
|
78632
|
+
image.putData(interpolated ? currentFrame : getFrameData(sequence[f4].index), x4, y5);
|
|
78633
|
+
return true;
|
|
78634
|
+
}
|
|
78635
|
+
if (!interpolated || sequence[f4].index === sequence[(f4 + 1) % sequence.length].index) return false;
|
|
78636
|
+
const progress = Math.floor(Math.fround(Math.fround(t5 / sequence[f4].time) * 1e3)) / 1e3;
|
|
78637
|
+
for (let i4 = 0; i4 < interpolated.data.length; i4++) {
|
|
78638
|
+
interpolated.data[i4] = currentFrame.data[i4] + (nextFrame.data[i4] - currentFrame.data[i4]) * progress;
|
|
78639
|
+
}
|
|
78640
|
+
image.putData(interpolated, x4, y5);
|
|
78625
78641
|
return true;
|
|
78626
78642
|
};
|
|
78627
78643
|
}
|