From 1aa785c08ad12eede982d5801339cb93a738227c Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi Date: Sun, 14 Apr 2024 04:07:35 +0200 Subject: [PATCH] Specify return type of `MainGame.get_ancestor` --- behaviours/move_towards_mouse.gd | 3 ++- entities/gold.gd | 19 ++++--------------- entities/gold.tscn | 16 ++++++---------- scenes/game/menu_game.gd | 2 +- scenes/game/menu_game.tscn | 4 ++-- 5 files changed, 15 insertions(+), 29 deletions(-) diff --git a/behaviours/move_towards_mouse.gd b/behaviours/move_towards_mouse.gd index 3306d2b..8ab38fd 100644 --- a/behaviours/move_towards_mouse.gd +++ b/behaviours/move_towards_mouse.gd @@ -9,6 +9,7 @@ signal captured @export_range(-500, 500, 1) var speed: float = 100.0 @onready var viewport: Viewport = get_viewport() +@onready var camera: GameCamera = GameCamera.get_ancestor(self) enum State { STILL, CAPTURED } @@ -17,7 +18,7 @@ var state: State = State.STILL func get_relative_mouse_position(): - var viewport_position: Vector2 = viewport.position + var camera: Camera var viewport_mouse_position: Vector2 = viewport.get_mouse_position() var global_mouse_position: Vector2 = viewport_position + viewport_mouse_position var relative_mouse_position: Vector2 = global_mouse_position - global_position diff --git a/entities/gold.gd b/entities/gold.gd index 777e39f..3fd6240 100644 --- a/entities/gold.gd +++ b/entities/gold.gd @@ -1,18 +1,7 @@ extends Node2D - -## Emitted when the player hoveres the nugget -signal hovered - -# Called when the node enters the scene tree for the first time. -func _ready(): - pass # Replace with function body. +class_name Gold -# Called every frame. 'delta' is the elapsed time since the previous frame. -func _process(delta): - pass - - -func _on_area_2d_mouse_entered(): - hovered.emit() - print("Hovered") +func _on_move(movement: Vector2) -> void: + Log.p(self, "%s" % movement) + position += movement diff --git a/entities/gold.tscn b/entities/gold.tscn index b280903..362cff7 100644 --- a/entities/gold.tscn +++ b/entities/gold.tscn @@ -1,21 +1,17 @@ [gd_scene load_steps=4 format=3 uid="uid://uoxwjpmgg27a"] [ext_resource type="Script" path="res://entities/gold.gd" id="1_lbls1"] -[ext_resource type="Texture2D" uid="uid://d3o13ebmcux2d" path="res://media/nugget.png" id="2_d322a"] +[ext_resource type="PackedScene" uid="uid://bvrxvrjlo5130" path="res://behaviours/move_towards_mouse.tscn" id="2_lso1v"] -[sub_resource type="CircleShape2D" id="CircleShape2D_bjgas"] -radius = 16.4012 +[sub_resource type="PlaceholderTexture2D" id="PlaceholderTexture2D_1f58t"] [node name="Gold" type="Node2D"] script = ExtResource("1_lbls1") [node name="Nugget" type="Sprite2D" parent="."] -position = Vector2(1, 0) -texture = ExtResource("2_d322a") +scale = Vector2(12, 12) +texture = SubResource("PlaceholderTexture2D_1f58t") -[node name="Area2D" type="Area2D" parent="."] +[node name="MoveTowardsMouse" parent="." instance=ExtResource("2_lso1v")] -[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"] -shape = SubResource("CircleShape2D_bjgas") - -[connection signal="mouse_entered" from="Area2D" to="." method="_on_area_2d_mouse_entered"] +[connection signal="move" from="MoveTowardsMouse" to="." method="_on_move"] diff --git a/scenes/game/menu_game.gd b/scenes/game/menu_game.gd index 2b0880e..c868f82 100644 --- a/scenes/game/menu_game.gd +++ b/scenes/game/menu_game.gd @@ -3,7 +3,7 @@ class_name MainGame ## Get the first possible [MainGame] instance by climbing the scene tree one ancestor at a time. -static func get_ancestor(start: Node): +static func get_ancestor(start: Node) -> MainGame: var current = start while current is Node: if current is MainGame: diff --git a/scenes/game/menu_game.tscn b/scenes/game/menu_game.tscn index e231feb..b393f62 100644 --- a/scenes/game/menu_game.tscn +++ b/scenes/game/menu_game.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=5 format=3 uid="uid://cxj5aud02f40j"] -[ext_resource type="Script" path="res://scenes/game/menu_game.gd" id="1_vrqkh"] +[ext_resource type="Script" path="res://scenes/game/menu_game.gd" id="1_x18yb"] [ext_resource type="PackedScene" uid="uid://brvbtvt4em32" path="res://behaviours/counter.tscn" id="2_7flt7"] [sub_resource type="TileSet" id="TileSet_g2dkm"] @@ -9,7 +9,7 @@ size = Vector2(1280, 720) [node name="MainGame" type="Node2D"] -script = ExtResource("1_vrqkh") +script = ExtResource("1_x18yb") [node name="TileMap" type="TileMap" parent="."] tile_set = SubResource("TileSet_g2dkm")