Skip to content

Commit 7b7e73a

Browse files
committed
most tests are now working
1 parent b2fbd02 commit 7b7e73a

File tree

1 file changed

+11
-10
lines changed

1 file changed

+11
-10
lines changed

scripts/dmodels.dsc

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -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

170171
dmodels_rot_proc:
171172
type: procedure

0 commit comments

Comments
 (0)