From 7bfe46d3885a1b9bd160798017fe776790f02826 Mon Sep 17 00:00:00 2001 From: ObeseTermite Date: Sat, 5 Oct 2024 20:40:00 -0700 Subject: [PATCH] added telescope --- project.godot | 1 + scenes/sign.tscn | 2 +- scenes/telescope.tscn | 35 +++++ scripts/MapCamera2D.gd | 252 +++++++++++++++++++++++++++++++++++ scripts/player.gd | 32 +++-- scripts/telescope.gd | 33 +++++ sprites/telescope.png | Bin 0 -> 37087 bytes sprites/telescope.png.import | 34 +++++ 8 files changed, 375 insertions(+), 14 deletions(-) create mode 100644 scenes/telescope.tscn create mode 100644 scripts/MapCamera2D.gd create mode 100644 scripts/telescope.gd create mode 100644 sprites/telescope.png create mode 100644 sprites/telescope.png.import diff --git a/project.godot b/project.godot index 8b29468..1cc327f 100644 --- a/project.godot +++ b/project.godot @@ -28,6 +28,7 @@ enabled=PackedStringArray() player="" "delivery spot"="valid for spawning in contracts" +"Telescope Label"="This label will be visible in the telescope" [gui] diff --git a/scenes/sign.tscn b/scenes/sign.tscn index f5f66eb..c6a500e 100644 --- a/scenes/sign.tscn +++ b/scenes/sign.tscn @@ -15,7 +15,7 @@ script = ExtResource("1_rtygf") scale = Vector2(0.4, 0.4) texture = ExtResource("1_6ooja") -[node name="Dialogue" parent="." instance=ExtResource("2_yp6hc")] +[node name="Dialogue" parent="." groups=["Telescope Label"] instance=ExtResource("2_yp6hc")] offset_top = -185.445 offset_bottom = -145.445 diff --git a/scenes/telescope.tscn b/scenes/telescope.tscn new file mode 100644 index 0000000..c91dc8c --- /dev/null +++ b/scenes/telescope.tscn @@ -0,0 +1,35 @@ +[gd_scene load_steps=7 format=3 uid="uid://8t14gs1yhyox"] + +[ext_resource type="Texture2D" uid="uid://ddjktr536c58t" path="res://sprites/telescope.png" id="1_k0xkm"] +[ext_resource type="Script" path="res://scripts/telescope.gd" id="1_xa4e0"] +[ext_resource type="Script" path="res://scripts/MapCamera2D.gd" id="3_87vjt"] +[ext_resource type="PackedScene" uid="uid://dpwqurhly8osd" path="res://scenes/interactible_manager.tscn" id="3_los3i"] +[ext_resource type="PackedScene" uid="uid://sk2uc8hcxhcj" path="res://scenes/physical_dialogue.tscn" id="4_u4gnh"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_gpdtu"] +radius = 123.26 + +[node name="Telescope" type="Area2D"] +script = ExtResource("1_xa4e0") + +[node name="Sprite2D" type="Sprite2D" parent="."] +scale = Vector2(0.5, 0.5) +texture = ExtResource("1_k0xkm") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource("CircleShape2D_gpdtu") + +[node name="Camera2D" type="Camera2D" parent="."] +script = ExtResource("3_87vjt") +zoom_max = 1.0 + +[node name="InteractibleManager" parent="." node_paths=PackedStringArray("ItemShown") instance=ExtResource("3_los3i")] +ItemShown = NodePath("../Dialogue") + +[node name="Dialogue" parent="." instance=ExtResource("4_u4gnh")] +offset_top = -195.08 +offset_bottom = -155.08 +DefaultText = "Telescope to see around the map" + +[connection signal="body_entered" from="." to="InteractibleManager" method="_on_body_entered"] +[connection signal="body_exited" from="." to="InteractibleManager" method="_on_body_exited"] diff --git a/scripts/MapCamera2D.gd b/scripts/MapCamera2D.gd new file mode 100644 index 0000000..de6c8cf --- /dev/null +++ b/scripts/MapCamera2D.gd @@ -0,0 +1,252 @@ +class_name MapCamera2D +extends Camera2D +## A node that adds mouse, keyboard and gesture zooming, panning and dragging to [Camera2D]. + +## Zoom speed: multiplies [member Camera2D.zoom] each mouse wheel scroll (set to 1 to disable zooming). +@export_range(0.1, 10) var zoom_factor := 1.25 +## Minimum [member Camera2D.zoom]. +@export_range(0.01, 100) var zoom_min := 0.1 +## Maximum [member Camera2D.zoom]. +@export_range(0.01, 100) var zoom_max := 10.0 +## If [code]true[/code], [member MapCamera2D.zoom_min] is effectively increased (up to [member MapCamera2D.zoom_max]) to stay within limits. +@export var zoom_limited := true +## If [code]true[/code], mouse zooming is done relative to the cursor (instead of to the center of the screen). +@export var zoom_relative := true +## If [code]true[/code], zooming can also be done with the plus and minus keys. +@export var zoom_keyboard := true + +## Pan speed: adds to [member Camera2D.offset] while the cursor is near the viewport's edges (set to 0 to disable panning). +@export_range(0, 10000) var pan_speed := 250.0 +## Maximum number of pixels away from the viewport's edges for the cursor to be considered near. +@export_range(0, 1000) var pan_margin := 25.0 +## If [code]true[/code], panning can also be done with the arrow keys (and space bar for centering). +@export var pan_keyboard := true + +## If [code]true[/code], the map can be dragged while holding the left mouse button. +@export var drag := true +## Slide after dragging: multiplies the final drag movement each second (set to 0 to stop immediately). +@export_range(0, 1) var drag_inertia := 0.1 + +var _tween_offset +var _tween_zoom +var _pan_direction: set = _set_pan_direction +var _pan_direction_mouse = Vector2.ZERO +var _dragging = false +var _drag_movement = Vector2() + +@onready var _target_zoom = zoom + +func _ready(): + _pan_direction = Vector2.ZERO + + change_zoom() + + get_viewport().size_changed.connect(change_zoom) + +func _process(delta): + if _drag_movement == Vector2.ZERO: + clamp_offset(_pan_direction * pan_speed * delta / zoom) + else: + _drag_movement *= drag_inertia ** delta + + clamp_offset(-_drag_movement / zoom) + + if _drag_movement.length_squared() < 0.01: + set_process(false) + set_physics_process(false) + +func _physics_process(delta): + _process(delta) + +func _unhandled_input(event): + if event is InputEventMagnifyGesture: + change_zoom(1 + ((zoom_factor if zoom_factor > 1 else 1 / zoom_factor) - 1) * (event.factor - 1) * 2.5) + elif event is InputEventPanGesture: + change_zoom(1 + (1 / zoom_factor - 1) * event.delta.y / 7.5) + elif event is InputEventMouseButton: + if event.pressed: + match event.button_index: + MOUSE_BUTTON_WHEEL_UP: + change_zoom(zoom_factor) + MOUSE_BUTTON_WHEEL_DOWN: + change_zoom(1 / zoom_factor) + MOUSE_BUTTON_LEFT: + if drag: + Input.set_default_cursor_shape(Input.CURSOR_DRAG) # delete to disable drag cursor + + _dragging = true + _drag_movement = Vector2() + + set_process(false) + set_physics_process(false) + elif event.button_index == MOUSE_BUTTON_LEFT and _dragging: + Input.set_default_cursor_shape(Input.CURSOR_ARROW) + + _dragging = false + + if _drag_movement != Vector2.ZERO || _pan_direction != Vector2.ZERO: + set_process(process_callback == CAMERA2D_PROCESS_IDLE) + set_physics_process(process_callback == CAMERA2D_PROCESS_PHYSICS) + elif event is InputEventMouseMotion: + if _pan_direction_mouse != Vector2.ZERO: + _pan_direction -= _pan_direction_mouse + + _pan_direction_mouse = Vector2() + + if _dragging: + if _tween_offset != null: + _tween_offset.kill() + + clamp_offset(-event.relative / zoom) + + _drag_movement = event.relative + elif pan_margin > 0: + var camera_size = get_viewport_rect().size + + if event.position.x < pan_margin: + _pan_direction_mouse.x -= 1 + + if event.position.x >= camera_size.x - pan_margin: + _pan_direction_mouse.x += 1 + + if event.position.y < pan_margin: + _pan_direction_mouse.y -= 1 + + if event.position.y >= camera_size.y - pan_margin: + _pan_direction_mouse.y += 1 + + if _pan_direction_mouse != Vector2.ZERO: + _pan_direction += _pan_direction_mouse + elif event is InputEventKey: + if zoom_keyboard && event.pressed: + match event.keycode: + KEY_MINUS: + change_zoom(zoom_factor if zoom_factor < 1 else 1 / zoom_factor, false) + KEY_EQUAL: + change_zoom(zoom_factor if zoom_factor > 1 else 1 / zoom_factor, false) + + if pan_keyboard && !event.echo: + match event.keycode: + KEY_LEFT: + _pan_direction -= Vector2(1 if event.pressed else -1, 0) + KEY_RIGHT: + _pan_direction += Vector2(1 if event.pressed else -1, 0) + KEY_UP: + _pan_direction -= Vector2(0, 1 if event.pressed else -1) + KEY_DOWN: + _pan_direction += Vector2(0, 1 if event.pressed else -1) + KEY_SPACE: # delete to disable keyboard centering + if event.pressed: + if _tween_offset != null: + _tween_offset.kill() + + offset = Vector2.ZERO + +func _set_pan_direction(value): + _pan_direction = value + + if _pan_direction == Vector2.ZERO || _dragging: + set_process(false) + set_physics_process(false) + elif pan_speed > 0: + set_process(process_callback == CAMERA2D_PROCESS_IDLE) + set_physics_process(process_callback == CAMERA2D_PROCESS_PHYSICS) + + _drag_movement = Vector2() + + if _tween_offset != null: + _tween_offset.kill() + +## After changing the node's global position, set [code]offset = offset[/code] then call this to stay within limits. +func clamp_offset(relative := Vector2()): + var camera_size = get_viewport_rect().size / zoom + var camera_rect = Rect2(get_screen_center_position() + relative - camera_size / 2, camera_size) + + if camera_rect.position.x < limit_left: + _drag_movement.x = 0 + relative.x += limit_left - camera_rect.position.x + camera_rect.end.x += limit_left - camera_rect.position.x + + if camera_rect.end.x > limit_right: + _drag_movement.x = 0 + relative.x -= camera_rect.end.x - limit_right + + if camera_rect.end.y > limit_bottom: + _drag_movement.y = 0 + relative.y -= camera_rect.end.y - limit_bottom + camera_rect.position.y -= camera_rect.end.y - limit_bottom + + if camera_rect.position.y < limit_top: + _drag_movement.y = 0 + relative.y += limit_top - camera_rect.position.y + + if relative != Vector2.ZERO: + offset += relative + +## After changing the node's limits, call this without arguments to stay within limits. +func change_zoom(factor = null, with_cursor = true): + var limited_zoom_min = zoom_min + + if zoom_limited: + var min_zoom_within_limits = get_viewport_rect().size / Vector2(limit_right - limit_left, limit_bottom - limit_top) + + limited_zoom_min = min(max(zoom_min, min_zoom_within_limits.x, min_zoom_within_limits.y), zoom_max) + + if factor != null: + if factor < 1: + if _target_zoom.x < limited_zoom_min || is_equal_approx(_target_zoom.x, limited_zoom_min): + return + + if _target_zoom.y < limited_zoom_min || is_equal_approx(_target_zoom.y, limited_zoom_min): + return + elif factor > 1: + if _target_zoom.x > zoom_max || is_equal_approx(_target_zoom.x, zoom_max): + return + + if _target_zoom.y > zoom_max || is_equal_approx(_target_zoom.y, zoom_max): + return + else: + return + + _target_zoom *= factor + + var clamped_zoom = _target_zoom + + clamped_zoom *= max(1, limited_zoom_min / _target_zoom.x, limited_zoom_min / _target_zoom.y) + clamped_zoom *= min(1, zoom_max / _target_zoom.x, zoom_max / _target_zoom.y) + + if factor == null: + _set_zoom_level(clamped_zoom) + + _target_zoom = zoom + elif position_smoothing_enabled && position_smoothing_speed > 0: + if zoom_relative && with_cursor && !is_processing() && !is_physics_processing(): + var relative_position = get_global_mouse_position() - global_position - offset + var relative = relative_position - relative_position * zoom / clamped_zoom + + if _tween_offset != null: + _tween_offset.kill() + + _tween_offset = create_tween().set_trans(Tween.TRANS_QUAD).set_ease(Tween.EASE_OUT).set_process_mode(process_callback as Tween.TweenProcessMode) + _tween_offset.tween_property(self, 'offset', offset + relative, 2.5 / position_smoothing_speed) + + if _tween_zoom != null: + _tween_zoom.kill() + + _tween_zoom = create_tween().set_trans(Tween.TRANS_QUAD).set_ease(Tween.EASE_OUT).set_process_mode(process_callback as Tween.TweenProcessMode) + _tween_zoom.tween_method(func(value): _set_zoom_level(Vector2.ONE / value), Vector2.ONE / zoom, Vector2.ONE / clamped_zoom, 2.5 / position_smoothing_speed) + else: + if zoom_relative && with_cursor: + var relative_position = get_global_mouse_position() - global_position - offset + var relative = relative_position - relative_position * zoom / clamped_zoom + + zoom = clamped_zoom + + clamp_offset(relative) + else: + _set_zoom_level(clamped_zoom) + +func _set_zoom_level(value): + zoom = value + + clamp_offset() diff --git a/scripts/player.gd b/scripts/player.gd index c02786e..990f75c 100644 --- a/scripts/player.gd +++ b/scripts/player.gd @@ -10,8 +10,12 @@ var ActiveContract : Node2D var Money : int = 0 +var Frozen = false + @onready var PackageSprite = $PackageSprite +@onready var Camera = $Camera2D + # Called when the node enters the scene tree for the first time. func _ready() -> void: pass # Replace with function body. @@ -20,20 +24,22 @@ func _ready() -> void: # Called every frame. 'delta' is the elapsed time since the previous frame. func _physics_process(delta: float) -> void: - var direction = Vector2(0,0) + if not Frozen: - if Input.is_action_pressed("up"): - direction.y -= 1 - if Input.is_action_pressed("down"): - direction.y += 1 - if Input.is_action_pressed("left"): - direction.x -= 1 - if Input.is_action_pressed("right"): - direction.x += 1 - - direction = direction.normalized() - - velocity += direction * Speed * delta + var direction = Vector2(0,0) + + if Input.is_action_pressed("up"): + direction.y -= 1 + if Input.is_action_pressed("down"): + direction.y += 1 + if Input.is_action_pressed("left"): + direction.x -= 1 + if Input.is_action_pressed("right"): + direction.x += 1 + + direction = direction.normalized() + + velocity += direction * Speed * delta velocity = velocity.move_toward(Vector2(0,0), delta * clamp(velocity.length() * FrictionMult, 1000, 10000)) diff --git a/scripts/telescope.gd b/scripts/telescope.gd new file mode 100644 index 0000000..c1135ec --- /dev/null +++ b/scripts/telescope.gd @@ -0,0 +1,33 @@ +extends Area2D + +@export var Player : Node2D + +@onready var InteractibleManager = $InteractibleManager + +@onready var Camera : Camera2D = $Camera2D + +var selected = false + +# Called when the node enters the scene tree for the first time. +func _ready() -> void: + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta: float) -> void: + if Input.is_action_just_pressed("interact") and InteractibleManager.selected: + if not selected: + Camera.enabled = true + Player.Camera.enabled = false + Player.Frozen = true + selected = true + + get_tree().call_group("Telescope Label", "show") + + else: + Camera.enabled = false + Player.Camera.enabled = true + Player.Frozen = false + selected = false + + get_tree().call_group("Telescope Label", "hide") diff --git a/sprites/telescope.png b/sprites/telescope.png new file mode 100644 index 0000000000000000000000000000000000000000..658607627031c8b7fdfd9c45b4b5252448f0aa25 GIT binary patch literal 37087 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 AlK=n! literal 0 HcmV?d00001 diff --git a/sprites/telescope.png.import b/sprites/telescope.png.import new file mode 100644 index 0000000..7c140f7 --- /dev/null +++ b/sprites/telescope.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ddjktr536c58t" +path="res://.godot/imported/telescope.png-ae14fb22b824c1abbd817dcdf812dee8.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://sprites/telescope.png" +dest_files=["res://.godot/imported/telescope.png-ae14fb22b824c1abbd817dcdf812dee8.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1