From bcb17faaed489c981b5278ad44a87028df0be161 Mon Sep 17 00:00:00 2001 From: Clevertop <41929769+Clevertop@users.noreply.github.com> Date: Sat, 18 May 2024 18:14:05 +1000 Subject: [PATCH] block rotation --- levels/jenga.tscn | 1 + scripts/PlayerHand.gd | 14 ++++++++++++++ twitch/jengacommands.gd | 12 ++++++++++++ 3 files changed, 27 insertions(+) diff --git a/levels/jenga.tscn b/levels/jenga.tscn index d229396..017772e 100644 --- a/levels/jenga.tscn +++ b/levels/jenga.tscn @@ -167,4 +167,5 @@ label_settings = SubResource("LabelSettings_y2xp5") [connection signal="dropBlock" from="TwitchLink" to="PlayerHand" method="_on_twitch_link_drop_block"] [connection signal="moveBlock" from="TwitchLink" to="PlayerHand" method="_on_twitch_link_move_block"] +[connection signal="rotateBlock" from="TwitchLink" to="PlayerHand" method="_on_twitch_link_rotate_block"] [connection signal="startTurn" from="TwitchLink" to="PlayerHand" method="_on_twitch_link_start_turn"] diff --git a/scripts/PlayerHand.gd b/scripts/PlayerHand.gd index c852eda..5411ac8 100644 --- a/scripts/PlayerHand.gd +++ b/scripts/PlayerHand.gd @@ -49,6 +49,17 @@ func _on_twitch_link_move_block(direction, amount): position += dir * amount * moveScale +func _on_twitch_link_rotate_block(direction, amount): + var dir : Vector3 + match direction: + "up": dir = Vector3.UP + "down" : dir = Vector3.DOWN + "north" : dir = Vector3.FORWARD + "east" : dir = Vector3.RIGHT + "south" : dir = Vector3.BACK + "west" : dir = Vector3.LEFT + rotation_degrees += dir * amount + func _on_twitch_link_drop_block(): current_block.freeze = false current_block.reparent(blocks_node) @@ -70,3 +81,6 @@ func _on_twitch_link_start_turn(): + + + diff --git a/twitch/jengacommands.gd b/twitch/jengacommands.gd index 6efcaea..745d536 100644 --- a/twitch/jengacommands.gd +++ b/twitch/jengacommands.gd @@ -1,6 +1,7 @@ extends Gift signal moveBlock(direction : String, amount : float) +signal rotateBlock(direction : String, amount : float) signal dropBlock() signal startTurn() @@ -72,6 +73,7 @@ func _ready() -> void: #move block commands - !move north 10 add_command("move", move, 2,2) + add_command("rotate", rotate, 2,2) add_command("drop", drop) @@ -166,6 +168,16 @@ func move(cmd_info : CommandInfo, arg_ary : PackedStringArray) -> void: else: chat("invalid direction :(") +func rotate(cmd_info : CommandInfo, arg_ary : PackedStringArray) -> void: + if(cmd_info.sender_data.tags["display-name"] == jenga_manager.current_player and jenga_manager.turn_started) : + var chosenDirection = arg_ary[0].to_lower() + var validDirections = ["up","down","north","south","east","west"] + if(validDirections.has(chosenDirection)): + rotateBlock.emit(arg_ary[0],float(arg_ary[1])) + chat("rotating block " + arg_ary[0] + " by " + arg_ary[1] + " degrees") + else: + chat("invalid direction :(") + func drop(cmd_info : CommandInfo): #make block child of world and unfreeze the rb if(cmd_info.sender_data.tags["display-name"] == jenga_manager.current_player and jenga_manager.turn_started) :