@@ 1088,13 1088,12 @@ fn load_savefile(
.motor_position(0., 150., 10.)
.limits([0., 50. / SCALE])
.build();
- let mut suspension = commands.spawn_empty();
- suspension
- .insert(PartBundle {
+ let mut suspension = commands
+ .spawn(PartBundle {
transform: TransformBundle::from(
Transform::from_xyz(
- (p_pos.x + offset.x * angle.cos()) / SCALE,
- (p_pos.y + offset.y * angle.sin()) / SCALE,
+ p_pos.x + offset.x / SCALE * angle.cos() - offset.y / SCALE * angle.sin(),
+ p_pos.y + offset.x / SCALE * angle.sin() + offset.y / SCALE * angle.cos(),
0.,
)
.with_rotation(Quat::from_euler(
@@ 1105,9 1104,9 @@ fn load_savefile(
)),
),
part_type: PartType::LandingThrusterSuspension,
- flags: PartFlags { attached: false },
- })
- .insert(RigidBody::Dynamic)
+ flags: PartFlags { attached: true},
+ });
+ suspension.insert(RigidBody::Dynamic)
.with_children(|children| {
children
.spawn(Collider::cuboid(PART_HALF_SIZE / SCALE, 1. / SCALE))
@@ 1134,9 1133,10 @@ fn load_savefile(
});
let suspension_id = suspension.id();
let mut module = commands.entity(module_id);
+ module.remove::<Attach>();
module.insert(Attach {
associated_player: Some(player_id),
- parent: Some(module.id()),
+ parent: Some(parent),
children: [None, None, Some(suspension_id), None],
});
}