From c9a7e252e74b5de388e0a24489fda27ae78c9334 Mon Sep 17 00:00:00 2001 From: Clevertop <41929769+Clevertop@users.noreply.github.com> Date: Sun, 19 May 2024 00:16:53 +1000 Subject: [PATCH] dynamic spawn position based on tower i *think* its working now --- README.md | 3 ++- levels/jenga.tscn | 15 +++++++++++++-- scripts/JengaManager.gd | 3 ++- scripts/PivotMover.gd | 1 + scripts/PlayerHand.gd | 23 ++++++++++++++++++++++- 5 files changed, 40 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index c94cbac..e2b1517 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,3 @@ # TwitchPlaysReverseJenga -a chaotic idea +a chaotic little game that I play with friends and turned intoa twitch plays asa challenge! +Official Channel: https://www.twitch.tv/twitchplaysreversejenga diff --git a/levels/jenga.tscn b/levels/jenga.tscn index f1788b1..d5b879b 100644 --- a/levels/jenga.tscn +++ b/levels/jenga.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=32 format=3 uid="uid://bdtfounpnyaoo"] +[gd_scene load_steps=33 format=3 uid="uid://bdtfounpnyaoo"] [ext_resource type="Script" path="res://twitch/jengacommands.gd" id="1_so2ke"] [ext_resource type="Script" path="res://scripts/JengaManager.gd" id="1_xtpjd"] @@ -87,6 +87,9 @@ shader_parameter/wave_b = SubResource("NoiseTexture2D_2unhc") shader_parameter/surface_normals_a = SubResource("NoiseTexture2D_ptjyb") shader_parameter/surface_normals_b = SubResource("NoiseTexture2D_r4a3k") +[sub_resource type="BoxShape3D" id="BoxShape3D_dk6bf"] +size = Vector3(1, 0.59, 3) + [sub_resource type="BoxShape3D" id="BoxShape3D_gmpx6"] size = Vector3(1, 10, 3) @@ -154,13 +157,20 @@ mesh = SubResource("PlaneMesh_kyck2") skeleton = NodePath("../..") surface_material_override/0 = SubResource("ShaderMaterial_avbpb") -[node name="PlayerHand" type="Node3D" parent="." node_paths=PackedStringArray("blocks_node", "gizmo_node")] +[node name="PlayerHand" type="Node3D" parent="." node_paths=PackedStringArray("blocks_node", "gizmo_node", "shape_cast", "camera_pivot")] 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") +shape_cast = NodePath("ShapeCast3D") +camera_pivot = NodePath("../CameraPivot") + +[node name="ShapeCast3D" type="ShapeCast3D" parent="PlayerHand"] +shape = SubResource("BoxShape3D_dk6bf") +target_position = Vector3(0, 0, 0) +debug_shape_custom_color = Color(1, 0, 0, 1) [node name="Blocks" type="Node3D" parent="."] @@ -355,6 +365,7 @@ label_settings = SubResource("LabelSettings_4ta2f") horizontal_alignment = 1 vertical_alignment = 1 +[connection signal="new_player_up" from="." to="PlayerHand" method="_on_jenga_new_player_up"] [connection signal="panic_drop" from="." to="PlayerHand" method="_on_jenga_panic_drop"] [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"] diff --git a/scripts/JengaManager.gd b/scripts/JengaManager.gd index 91782a5..e1ea390 100644 --- a/scripts/JengaManager.gd +++ b/scripts/JengaManager.gd @@ -5,7 +5,7 @@ extends Node3D #region Variables #Signals signal panic_drop() - +signal new_player_up() #Enums #Constants @@ -51,6 +51,7 @@ func _process(delta): current_player = player_queue[0] player_queue.erase(current_player) turn_started = false + new_player_up.emit() turn_timer = accept_time_limit #debug_ui_label.text = "Current Player: " + current_player + "\nTurn Started?: " + str(turn_started) + "\nTime Left: " + str(round(turn_timer)) + "\nQueue Size: " + str(player_queue.size()) diff --git a/scripts/PivotMover.gd b/scripts/PivotMover.gd index 124474e..39da423 100644 --- a/scripts/PivotMover.gd +++ b/scripts/PivotMover.gd @@ -18,6 +18,7 @@ extends Node3D @export_group("Node References") @export var gizmo_pivot : Node3D + #Onready Variables #Other Variables (please try to separate and organise!) diff --git a/scripts/PlayerHand.gd b/scripts/PlayerHand.gd index 6d0f63d..eaa57ac 100644 --- a/scripts/PlayerHand.gd +++ b/scripts/PlayerHand.gd @@ -19,6 +19,8 @@ extends Node3D @export_group("Node References") @export var blocks_node : Node3D @export var gizmo_node : Node3D +@export var shape_cast : ShapeCast3D +@export var camera_pivot : Node3D #Onready Variables @@ -42,6 +44,8 @@ func _process(delta): rotation_degrees = lerp(rotation_degrees, tar_rotation, 0.1) position = lerp(position, tar_position, 0.1) gizmo_node.rotation_degrees = rotation_degrees + + #endregion @@ -74,13 +78,22 @@ func _on_twitch_link_rotate_block(direction, amount): func _on_twitch_link_drop_block(): current_block.freeze = false current_block.reparent(blocks_node) + + func _on_twitch_link_start_turn(): - position = Vector3(0,2.28,0) + #var spawn_pos : Vector3 = Vector3(0,3,0) + + position.x = 0 + position.y = 0 rotation_degrees = Vector3(0,0,0) + tar_position.x = 0 + tar_rotation.y = 0 + tar_rotation = Vector3(0,0,0) current_block = block_scene.instantiate() current_block.freeze = true + add_child(current_block) func _on_jenga_panic_drop(): @@ -101,3 +114,11 @@ func _on_jenga_panic_drop(): + + +func _on_jenga_new_player_up(): + if(shape_cast.get_collision_count()>0): + position.y += 1 + tar_position.y += 1 + camera_pivot.target_height += position.y + 1.5 + pass # Replace with function body.