From 42d238a2f8b794a7c41866bba16227b27ae219a3 Mon Sep 17 00:00:00 2001 From: Clevertop <41929769+Clevertop@users.noreply.github.com> Date: Sat, 18 May 2024 21:43:09 +1000 Subject: [PATCH] gizmo semi functional? --- levels/jenga.tscn | 39 ++++++++++++++++++++++++++++++++------- materials/Blue.tres | 2 +- materials/Green.tres | 1 + scripts/JengaManager.gd | 4 ++++ scripts/PivotMover.gd | 4 ++++ scripts/PlayerHand.gd | 11 +++++------ twitch/jengacommands.gd | 2 +- 7 files changed, 48 insertions(+), 15 deletions(-) diff --git a/levels/jenga.tscn b/levels/jenga.tscn index 38680be..267709b 100644 --- a/levels/jenga.tscn +++ b/levels/jenga.tscn @@ -102,9 +102,10 @@ script = ExtResource("1_so2ke") jenga_manager = NodePath("..") scopes = Array[String](["chat:edit", "chat:read", "moderator:read:followers"]) -[node name="CameraPivot" type="Node3D" parent="."] +[node name="CameraPivot" type="Node3D" parent="." node_paths=PackedStringArray("gizmo_pivot")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3.445, 0) script = ExtResource("3_7e1m6") +gizmo_pivot = NodePath("../UserInterface/SubViewportContainer/SubViewport/VCamPivot") [node name="Camera3D" type="Camera3D" parent="CameraPivot"] transform = Transform3D(1, 0, 0, 0, 0.819152, 0.573576, 0, -0.573576, 0.819152, 0, 0, 4.12) @@ -126,12 +127,13 @@ mesh = SubResource("PlaneMesh_kyck2") skeleton = NodePath("../..") surface_material_override/0 = SubResource("ShaderMaterial_avbpb") -[node name="PlayerHand" type="Node3D" parent="." node_paths=PackedStringArray("blocks_node")] +[node name="PlayerHand" type="Node3D" parent="." node_paths=PackedStringArray("blocks_node", "gizmo_node")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.28028, 0) script = ExtResource("4_kq4yo") moveScale = 0.5 block_scene = ExtResource("5_mn8hr") blocks_node = NodePath("../Blocks") +gizmo_node = NodePath("../UserInterface/SubViewportContainer/SubViewport/TransformGizmo") [node name="Blocks" type="Node3D" parent="."] @@ -182,13 +184,11 @@ grow_horizontal = 0 stretch = true [node name="SubViewport" type="SubViewport" parent="UserInterface/SubViewportContainer"] +transparent_bg = true +handle_input_locally = false size = Vector2i(128, 128) size_2d_override = Vector2i(225, 190) - -[node name="Camera3D" type="Camera3D" parent="UserInterface/SubViewportContainer/SubViewport"] -transform = Transform3D(1, 0, 0, 0, 0.819152, 0.573576, 0, -0.573576, 0.819152, 0, 52.925, 4.12) -cull_mask = 524288 -fov = 28.2 +render_target_update_mode = 4 [node name="TransformGizmo" type="Node3D" parent="UserInterface/SubViewportContainer/SubViewport"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 50, 0) @@ -258,6 +258,31 @@ material_override = ExtResource("8_2httq") polygon = PackedVector2Array(0, 0, 0.2, 0.4, -0.2, 0.4) depth = 0.2 +[node name="VCamPivot" type="Node3D" parent="UserInterface/SubViewportContainer/SubViewport"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 52.925, 0) + +[node name="Camera3D" type="Camera3D" parent="UserInterface/SubViewportContainer/SubViewport/VCamPivot"] +transform = Transform3D(1, 0, 0, 0, 0.819152, 0.573576, 0, -0.573576, 0.819152, 0, 0, 4.12) +cull_mask = 524288 +fov = 28.2 + +[node name="VBoxContainer" type="VBoxContainer" parent="UserInterface"] +layout_mode = 0 +offset_left = 991.0 +offset_top = 1.0 +offset_right = 1023.0 +offset_bottom = 125.0 + +[node name="Label" type="RichTextLabel" parent="UserInterface/VBoxContainer"] +layout_mode = 2 +bbcode_enabled = true +text = "[b][font_size=30][color=red]X[/color] +[color=green]Y[/color] +[color=blue]Z[/color] +[/font_size][/b]" +fit_content = true + +[connection signal="dropBlock" from="TwitchLink" to="." method="_on_twitch_link_drop_block"] [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"] diff --git a/materials/Blue.tres b/materials/Blue.tres index 6eee999..aff60a7 100644 --- a/materials/Blue.tres +++ b/materials/Blue.tres @@ -1,4 +1,4 @@ [gd_resource type="StandardMaterial3D" format=3 uid="uid://bipwt04wjyv6v"] [resource] -albedo_color = Color(0, 0.792157, 0.172549, 1) +albedo_color = Color(0, 0.72549, 0.882353, 1) diff --git a/materials/Green.tres b/materials/Green.tres index dd545f0..d18f2be 100644 --- a/materials/Green.tres +++ b/materials/Green.tres @@ -1,3 +1,4 @@ [gd_resource type="StandardMaterial3D" format=3 uid="uid://dd5vcwp8smlnt"] [resource] +albedo_color = Color(0, 0.768627, 0.231373, 1) diff --git a/scripts/JengaManager.gd b/scripts/JengaManager.gd index c3e6d16..0b531db 100644 --- a/scripts/JengaManager.gd +++ b/scripts/JengaManager.gd @@ -56,3 +56,7 @@ func _process(delta): #endregion + + +func _on_twitch_link_drop_block(): + turn_timer = 0 diff --git a/scripts/PivotMover.gd b/scripts/PivotMover.gd index c53b46d..723f6c1 100644 --- a/scripts/PivotMover.gd +++ b/scripts/PivotMover.gd @@ -15,6 +15,9 @@ extends Node3D @export var rotation_speed : float = 20 #degrees per second @export var height_speed : float = 0.5 # m per second +@export_group("Node References") +@export var gizmo_pivot : Node3D + #Onready Variables #Other Variables (please try to separate and organise!) @@ -37,6 +40,7 @@ func _process(delta): else: rotation_degrees.y -= rotation_speed * delta pass + gizmo_pivot.rotation_degrees.y = rotation_degrees.y #endregion #region Signal methods diff --git a/scripts/PlayerHand.gd b/scripts/PlayerHand.gd index 722966d..39f7bbf 100644 --- a/scripts/PlayerHand.gd +++ b/scripts/PlayerHand.gd @@ -18,6 +18,7 @@ extends Node3D @export var block_scene : PackedScene @export_group("Node References") @export var blocks_node : Node3D +@export var gizmo_node : Node3D #Onready Variables @@ -51,13 +52,11 @@ func _on_twitch_link_move_block(direction, amount): 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 + "x": dir = Vector3.RIGHT + "y" : dir = Vector3.UP + "z" : dir = Vector3.BACK rotation_degrees += dir * amount + gizmo_node.rotation_degrees = rotation_degrees func _on_twitch_link_drop_block(): current_block.freeze = false diff --git a/twitch/jengacommands.gd b/twitch/jengacommands.gd index 85a6906..8868b9c 100644 --- a/twitch/jengacommands.gd +++ b/twitch/jengacommands.gd @@ -183,7 +183,7 @@ func move(cmd_info : CommandInfo, arg_ary : PackedStringArray) -> void: 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"] + var validDirections = ["x","y","z"] if(validDirections.has(chosenDirection)): rotateBlock.emit(arg_ary[0],float(arg_ary[1])) chat("rotating block " + arg_ary[0] + " by " + arg_ary[1] + " degrees")