From 221608a1e3922b9efbd7e9f22a22db011864426b Mon Sep 17 00:00:00 2001 From: tommy-l-ngo Date: Mon, 1 Nov 2021 20:40:31 -0500 Subject: [PATCH] Rotation only works on board now letting the ships be able to be rotated while not on the board caused a few bugs, so I just made it so that you can't rotate the pieces unless it's on board --- godot_ship/script/game/moveShip.gd | 69 +++++++++++++++++++----------- 1 file changed, 43 insertions(+), 26 deletions(-) diff --git a/godot_ship/script/game/moveShip.gd b/godot_ship/script/game/moveShip.gd index 9969071..8450222 100644 --- a/godot_ship/script/game/moveShip.gd +++ b/godot_ship/script/game/moveShip.gd @@ -7,9 +7,11 @@ var held = false var originalPos var snapOriginalPos = false var vertical = true +var startingPos # Called when the node enters the scene tree for the first time. func _ready(): + startingPos = position pass var click_radius = 16 @@ -99,13 +101,19 @@ func _input(event): position = event.position; if event.is_action_pressed("ui_rotate"): - if(event.position - position).length() < click_radius: - if vertical == true: - rotate(-PI/2) - vertical = false - else: - rotate(PI/2) - vertical = true + if checkOriginalPos(): + return + else: + if originalPos == null: + if position == originalPos: + return + elif(event.position - position).length() < click_radius: + if vertical == true: + rotate(-PI/2) + vertical = false + else: + rotate(PI/2) + vertical = true if(position.x > 17.4 and position.x < 337.5) and (position.y > 20.2 and position.y < 335.5): # 2-Ship @@ -142,39 +150,42 @@ func _input(event): # 4-Ship if (get_parent().get_node("4Ship").rotation_degrees == 0): - if (get_parent().get_node("4Ship").position.y > 276.8): - get_parent().get_node("4Ship").position.y -= 32 - if (get_parent().get_node("4Ship").position.y > 308.8): - get_parent().get_node("4Ship").position.y -= 32 + if (get_parent().get_node("4Ship").position.y > 308.8): + get_parent().get_node("4Ship").position.y -= 64; + elif (get_parent().get_node("4Ship").position.y > 276.8): + get_parent().get_node("4Ship").position.y -= 32; if (get_parent().get_node("4Ship").position.y < 52): get_parent().get_node("4Ship").position.y += 32 if (get_parent().get_node("4Ship").rotation_degrees == -90): - if (get_parent().get_node("4Ship").position.x > 276.8): + if (get_parent().get_node("4Ship").position.x > 308.8): + get_parent().get_node("4Ship").position.x -= 64 + elif (get_parent().get_node("4Ship").position.x > 276.8): get_parent().get_node("4Ship").position.x -= 32 - if (get_parent().get_node("4Ship").position.y > 308.8): - get_parent().get_node("4Ship").position.x -= 32 if (get_parent().get_node("4Ship").position.x < 52): get_parent().get_node("4Ship").position.x += 32 # 5-Ship if (get_parent().get_node("5Ship").rotation_degrees == 0): - if (get_parent().get_node("5Ship").position.y > 276.8): + if (get_parent().get_node("5Ship").position.y > 308.8): + get_parent().get_node("5Ship").position.y -= 64 + elif (get_parent().get_node("5Ship").position.y > 276.8): get_parent().get_node("5Ship").position.y -= 32 - if (get_parent().get_node("5Ship").position.y > 308.8): - get_parent().get_node("5Ship").position.y -= 32 - if (get_parent().get_node("5Ship").position.y < 84.8): + + if (get_parent().get_node("5Ship").position.y < 52): + get_parent().get_node("5Ship").position.y += 64 + elif (get_parent().get_node("5Ship").position.y < 84.8): get_parent().get_node("5Ship").position.y += 32 - if (get_parent().get_node("5Ship").position.y < 52): - get_parent().get_node("5Ship").position.y += 32 + if (get_parent().get_node("5Ship").rotation_degrees == -90): - if (get_parent().get_node("5Ship").position.x > 276.8): + if (get_parent().get_node("5Ship").position.x > 308.8): + get_parent().get_node("5Ship").position.x -= 64 + elif (get_parent().get_node("5Ship").position.x > 276.8): get_parent().get_node("5Ship").position.x -= 32 - if (get_parent().get_node("5Ship").position.x > 308.8): - get_parent().get_node("5Ship").position.x -= 32 - if (get_parent().get_node("5Ship").position.x < 84.8): + + if (get_parent().get_node("5Ship").position.x < 52): + get_parent().get_node("5Ship").position.x += 64 + elif (get_parent().get_node("5Ship").position.x < 84.8): get_parent().get_node("5Ship").position.x += 32 - if (get_parent().get_node("5Ship").position.x < 52): - get_parent().get_node("5Ship").position.x += 32 # Called every frame. 'delta' is the elapsed time since the previous frame. #func _process(delta): @@ -192,3 +203,9 @@ func drop(impulse=Vector2.ZERO): apply_central_impulse(impulse) held = false snapOriginalPos = false + +func checkOriginalPos(): + if position == startingPos: + return true + else: + return false