From 17d2b39d0dd2d94065fbe848e0dbf85e4a80ca66 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Wed, 15 May 2024 12:12:24 -0400 Subject: Send checked paintings to server --- Archipelago/mypainting.gd | 113 +++++++++++++++++++++++----------------------- 1 file changed, 56 insertions(+), 57 deletions(-) (limited to 'Archipelago/mypainting.gd') diff --git a/Archipelago/mypainting.gd b/Archipelago/mypainting.gd index 999b122..7aee434 100644 --- a/Archipelago/mypainting.gd +++ b/Archipelago/mypainting.gd @@ -30,66 +30,65 @@ func movePainting(): func _looked_at(body, painting): - if ( - target != null - and body.is_in_group("player") - and (painting.get_name() == self.get_parent().get_name()) - ): - var target_dir = _dir_to_int(target.orientation) - var source_dir = _dir_to_int(orientation) - var rotate = target_dir - source_dir - if rotate < 0: - rotate += 4 - rotate *= 90 + if body.is_in_group("player") and (painting.get_name() == self.get_parent().get_name()): + var apclient = global.get_node("Archipelago") + apclient.checkPainting(painting.get_name()) - var target_painting = target.get_parent() + if target != null: + var target_dir = _dir_to_int(target.orientation) + var source_dir = _dir_to_int(orientation) + var rotate = target_dir - source_dir + if rotate < 0: + rotate += 4 + rotate *= 90 - # this is ACW - if rotate == 0: - body.translation.x = ( - target_painting.translation.x + (body.translation.x - painting.translation.x) - ) - body.translation.y = ( - target_painting.translation.y + (body.translation.y - painting.translation.y) - ) - body.translation.z = ( - target_painting.translation.z + (body.translation.z - painting.translation.z) - ) - elif rotate == 180: - body.translation.x = ( - target_painting.translation.x - (body.translation.x - painting.translation.x) - ) - body.translation.y = ( - target_painting.translation.y + (body.translation.y - painting.translation.y) - ) - body.translation.z = ( - target_painting.translation.z - (body.translation.z - painting.translation.z) - ) - body.rotate_y(PI) - body.velocity = body.velocity.rotated(Vector3(0, 1, 0), PI) - elif rotate == 90: - var diff_x = body.translation.x - painting.translation.x - var diff_y = body.translation.y - painting.translation.y - var diff_z = body.translation.z - painting.translation.z - body.translation.x = target_painting.translation.x + diff_z - body.translation.y = target_painting.translation.y + diff_y - body.translation.z = target_painting.translation.z - diff_x - body.rotate_y(PI / 2) - body.velocity = body.velocity.rotated(Vector3(0, 1, 0), PI / 2) - elif rotate == 270: - var diff_x = body.translation.x - painting.translation.x - var diff_y = body.translation.y - painting.translation.y - var diff_z = body.translation.z - painting.translation.z - body.translation.x = target_painting.translation.x - diff_z - body.translation.y = target_painting.translation.y + diff_y - body.translation.z = target_painting.translation.z + diff_x - body.rotate_y(3 * PI / 2) - body.velocity = body.velocity.rotated(Vector3(0, 1, 0), 3 * PI / 2) + var target_painting = target.get_parent() - var apclient = global.get_node("Archipelago") - if !apclient._pilgrimage_allows_paintings: - global.sunwarp = 1 - body.get_node("pivot/camera/sunwarp_background").visible = false + # this is ACW + if rotate == 0: + body.translation.x = ( + target_painting.translation.x + (body.translation.x - painting.translation.x) + ) + body.translation.y = ( + target_painting.translation.y + (body.translation.y - painting.translation.y) + ) + body.translation.z = ( + target_painting.translation.z + (body.translation.z - painting.translation.z) + ) + elif rotate == 180: + body.translation.x = ( + target_painting.translation.x - (body.translation.x - painting.translation.x) + ) + body.translation.y = ( + target_painting.translation.y + (body.translation.y - painting.translation.y) + ) + body.translation.z = ( + target_painting.translation.z - (body.translation.z - painting.translation.z) + ) + body.rotate_y(PI) + body.velocity = body.velocity.rotated(Vector3(0, 1, 0), PI) + elif rotate == 90: + var diff_x = body.translation.x - painting.translation.x + var diff_y = body.translation.y - painting.translation.y + var diff_z = body.translation.z - painting.translation.z + body.translation.x = target_painting.translation.x + diff_z + body.translation.y = target_painting.translation.y + diff_y + body.translation.z = target_painting.translation.z - diff_x + body.rotate_y(PI / 2) + body.velocity = body.velocity.rotated(Vector3(0, 1, 0), PI / 2) + elif rotate == 270: + var diff_x = body.translation.x - painting.translation.x + var diff_y = body.translation.y - painting.translation.y + var diff_z = body.translation.z - painting.translation.z + body.translation.x = target_painting.translation.x - diff_z + body.translation.y = target_painting.translation.y + diff_y + body.translation.z = target_painting.translation.z + diff_x + body.rotate_y(3 * PI / 2) + body.velocity = body.velocity.rotated(Vector3(0, 1, 0), 3 * PI / 2) + + if !apclient._pilgrimage_allows_paintings: + global.sunwarp = 1 + body.get_node("pivot/camera/sunwarp_background").visible = false func _dir_to_int(dir): -- cgit 1.4.1