@@ -55,7 +55,7 @@ dmodels_spawn_model:
5555 # Supposedly it's 25.6 according to external docs (16 * 1.6), but that also is wrong in my testing.
5656 - define offset <location[<[part.origin] > ] .div[25.6] >
5757 - define rots <[part.rotation] .split[,] .parse[to_radians] >
58- - define pose <[rots] .get[1] .mul[-1] > ,<[rots] .get[2] > ,<[rots] .get[3] >
58+ - define pose <[rots] .get[1] .mul[-1] > ,<[rots] .get[2] .mul [-1] > ,<[rots] .get[3] >
5959 - spawn dmodel_part_stand[equipment=[helmet=<[part.item] > ] ;armor_pose=[head=<[pose] > ]] <[location] .add[<[offset] > ] > save:spawned
6060 - flag <entry[spawned] .spawned_entity> dmodel_def_pose:<[pose] >
6161 - flag <entry[spawned] .spawned_entity> dmodel_def_offset:<[offset] >
@@ -147,25 +147,26 @@ dmodels_move_to_frame:
147147 - define data <[before_frame.data] >
148148 - define framedata.<[channel] > <[data] >
149149 - define this_part <[model_data.<[part_id] > ] >
150+ - define this_rots <[this_part.rotation] .split[,] .parse[to_radians] >
151+ - define pose <[this_rots] .get[1] .mul[-1] > ,<[this_rots] .get[2] .mul[-1] > ,<[this_rots] .get[3] >
150152 - define parent_id <[this_part.parent] >
151153 - define parent_pos <location[<[parentage.<[parent_id] > .position] ||0,0,0> ] >
152154 - define parent_rot <location[<[parentage.<[parent_id] > .rotation] ||0,0,0> ] >
153155 - define parent_offset <location[<[parentage.<[parent_id] > .offset] ||0,0,0> ] >
154- - define rel_offset <location[<[this_part.origin] > ] .sub[<[parent_offset] > ] >
156+ - define parent_raw_offset <[model_data.<[parent_id] > .origin] ||0,0,0>
157+ - define rel_offset <location[<[this_part.origin] > ] .sub[<[parent_raw_offset] > ] >
155158 - define rot_offset <[rel_offset] .proc[dmodels_rot_proc] .context[<[parent_rot] > ] >
156- - define pos_shift <[rot_offset] .sub[<[rel_offset] > ] >
157- - define new_pos <[framedata.position] .as_location.proc[dmodels_rot_proc] .context[<[parent_rot] > ] .add[<[pos_shift] > ] .add[<[parent_pos] > ] >
159+ - define new_pos <[framedata.position] .as_location.proc[dmodels_rot_proc] .context[<[parent_rot] > ] .add[<[rot_offset] > ] .add[<[parent_pos] > ] >
158160 - define new_rot <[framedata.rotation] .as_location.add[<[parent_rot] > ] >
159161 - define parentage.<[part_id] > .position:<[new_pos] >
160162 - define parentage.<[part_id] > .rotation:<[new_rot] >
161163 - define parentage.<[part_id] > .offset:<[rot_offset] .add[<[parent_offset] > ] >
162- - if <[part_id] .starts_with[823a7148] > :
163- - debug log "[DB] rel <[rel_offset] .round_to[2] > rot <[rot_offset] .round_to[2] > par <[parent_offset] .round_to[2] > fram <[framedata.position] .as_location.round_to[2] > shift <[pos_shift] .round_to[2] > "
164164 - foreach <[root_entity] .flag[dmodel_anim_part.<[part_id] > ] ||<list> > as:ent:
165- - teleport <[ent] > <[root_entity] .location.add[<[ent] .flag[dmodel_def_offset] .add[<[new_pos] .div[25.6] > ] > ] >
166- - define radian_rot <[new_rot] .xyz.split[,] >
167- - define pose <[radian_rot] .get[1] .mul[-1] > ,<[radian_rot] .get[2] > ,<[radian_rot] .get[3] >
168- - adjust <[ent] > armor_pose:[head=<[ent] .flag[dmodel_def_pose] .as_location.add[<[pose] > ] .xyz> ]
165+ #- teleport <[ent]> <[root_entity].location.add[<[ent].flag[dmodel_def_offset].add[<[new_pos].div[25.6]>]>]>
166+ - teleport <[ent] > <[root_entity] .location.add[<[new_pos] .div[25.6] > ] >
167+ - define radian_rot <[new_rot] .add[<[pose] > ] .xyz.split[,] >
168+ - define pose <[radian_rot] .get[1] > ,<[radian_rot] .get[2] > ,<[radian_rot] .get[3] >
169+ - adjust <[ent] > armor_pose:[head=<[pose] > ]
169170
170171dmodels_rot_proc :
171172 type : procedure
0 commit comments