You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Changed bone selection to full macro-UUID selection. 33% faster on average.
- Reduced the number of branches in the summon function.
- Brought back frame deduplication.
- Fixed tweening between animations not updating bones that only change on the first frame.
Copy file name to clipboardExpand all lines: src/lang/en.yml
+4-1Lines changed: 4 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -131,7 +131,10 @@ animated_java.dialog.blueprint_settings.teleportation_duration.title: Teleport D
131
131
animated_java.dialog.blueprint_settings.teleportation_duration.description: The duration of the teleportation between keyframes in ticks. This is the time over which the model will visually interpolate between it's old position to it's new position. Higher values will cause animations to lose precision.
132
132
133
133
animated_java.dialog.blueprint_settings.use_storage_for_animation.title: Use Storage for Animation
134
-
animated_java.dialog.blueprint_settings.use_storage_for_animation.description: Whether or not to use NBT storage to store animation data instead of functions. This will vastly reduce the number of functions in the generated Data Pack, but is 33% slower than the function method.
IF (['bone', 'text_display', 'item_display', 'block_display'].includes(node.type)) {
327
+
$execute on passengers run data modify entity @s[tag=<%TAGS.LOCAL_BONE(export_namespace, node.name)%>] {} merge from storage aj.<%export_namespace%>:animations list.<%animation.name%>.frames[$(frame)].<%node.name%>
328
+
}
329
+
}
330
+
execute on passengers run data modify entity @s[type=!marker] start_interpolation set value -1
331
+
}
320
332
function apply_frame {
321
333
#ARGS: {frame: int}
322
334
REPEAT (animation.includedNodes) as node {
@@ -329,12 +341,14 @@ dir <%export_namespace%> {
329
341
function set_frame {
330
342
# Sets the frame without interpolation
331
343
#ARGS: {frame: int}
332
-
$function ./frames/$(frame)
333
-
execute on passengers run data modify entity @s start_interpolation set value -1
344
+
$execute on passengers if entity @s[type=marker] run \
345
+
function ./frames/$(frame) with entity @s data.bones
346
+
execute on passengers run data modify entity @s[type=!marker] start_interpolation set value -1
334
347
}
335
348
function apply_frame {
336
349
#ARGS: {frame: int}
337
-
$function ./frames/$(frame)
350
+
$execute on passengers if entity @s[type=marker] run \
351
+
function ./frames/$(frame) with entity @s data.bones
338
352
<%%
339
353
// A record of node uuid to IAnimationNode.
340
354
// Keeps track of the last time a bone was updated.
execute as @e[type=item_display,tag=<%TAGS.NEW()%>,tag=<%TAGS.GLOBAL_CAMERA()%>,limit=1,distance=..0.01] run {
498
+
tag @s remove <%TAGS.NEW()%>
474
499
475
-
function *global/internal/gu/convert_uuid_array_to_string with entity @s
476
-
execute as @e[type=item_display,tag=<%TAGS.NEW()%>,limit=1,distance=..0.01] on passengers if entity @s[tag=<%TAGS.GLOBAL_DATA()%>] run {
477
-
data modify entity @s data.cameras.<%camera.name%>.uuid set from storage aj:uuid main.out
500
+
function *global/internal/gu/convert_uuid_array_to_string with entity @s
478
501
}
502
+
data modify entity @s data.cameras.<%camera.name%>.uuid set from storage aj:uuid main.out
503
+
}
504
+
505
+
REPEAT (Object.values(rig.nodeMap).filter(v => ['bone', 'text_display', 'item_display', 'block_display'].includes(v.type))) as bone {
506
+
execute on vehicle on passengers if entity @s[tag=<%TAGS.LOCAL_BONE(export_namespace, bone.name)%>] run \
507
+
function *global/internal/gu/convert_uuid_array_to_string with entity @s
508
+
data modify entity @s data.bones.<%bone.type + '_' + bone.name%> set from storage aj:uuid main.out
479
509
}
480
510
}
481
511
@@ -515,7 +545,7 @@ dir <%export_namespace%> {
515
545
}
516
546
# Attempt to apply the animation frame, if it fails, print an error.
517
547
execute store success score #success <%OBJECTIVES.I()%> run { with storage aj:temp args
518
-
$execute store success score #success <%OBJECTIVES.I()%> run function *<%export_namespace%>/animations/$(animation)/zzz/set_frame with storage aj:temp args
548
+
$execute store success score #success <%OBJECTIVES.I()%> run function *<%export_namespace%>/animations/$(animation)/set_frame with storage aj:temp args
519
549
execute if score #success <%OBJECTIVES.I()%> matches 1 run return 1
0 commit comments