implement camera display marker to minimap

This commit is contained in:
Antti Hakkarainen 2023-02-15 17:04:06 +02:00
parent d0f0d8c009
commit e2fb7638c8
6 changed files with 96 additions and 47 deletions

28
scenes/CameraMarker.gd Normal file
View file

@ -0,0 +1,28 @@
extends Sprite2D
var size_multiplier
var w_s
var previous_camera_zoom
# draws a box represnting the camera view in minimap
func _draw():
draw_rect(Rect2(-w_s.x/2, -w_s.y/2, w_s.x, w_s.y), Color.GREEN, false, -3.0)
# rotates the box if camera is rotated
func _on_camera_zoom_2d_camera_rotation_changed(new_rotation):
self.rotation = new_rotation
# redraws the box to a different size if amera is zoomed
func _on_camera_zoom_2d_camera_zoom_changed(new_zoom_factor):
w_s = (DisplayServer.window_get_size(0) / size_multiplier)
w_s.x /= new_zoom_factor
w_s.y /= new_zoom_factor
queue_redraw()
# Sets the initial size of the camera box, after game is loaded
func _on_main_worldgen_ready() -> void:
size_multiplier = Globals.map_size / 32
w_s = (DisplayServer.window_get_size(0) / size_multiplier)

View file

@ -6,7 +6,7 @@
[ext_resource type="PackedScene" uid="uid://2we3txfr812u" path="res://scenes/Camera_zoom_2d.tscn" id="4_rx82t"]
[ext_resource type="Script" path="res://scripts/EntityPlacer.gd" id="5_8jju5"]
[ext_resource type="Script" path="res://scripts/Minimap.gd" id="5_rg28x"]
[ext_resource type="Texture2D" uid="uid://cxn2fno1j7vf5" path="res://icon.svg" id="7_w68w7"]
[ext_resource type="Script" path="res://scenes/CameraMarker.gd" id="7_0s6ed"]
[node name="Main" type="Node2D"]
script = ExtResource("1_ysxum")
@ -123,7 +123,8 @@ script = ExtResource("5_rg28x")
[node name="CameraMarker" type="Sprite2D" parent="UILayer/Control/Minimap"]
z_index = 1
position = Vector2(-32, 0)
texture = ExtResource("7_w68w7")
centered = false
script = ExtResource("7_0s6ed")
[node name="MinimapSprite" type="Sprite2D" parent="UILayer/Control/Minimap"]
texture_repeat = 1
@ -133,6 +134,9 @@ centered = false
[connection signal="worldgen_ready" from="." to="ChunkHandler" method="_on_main_worldgen_ready"]
[connection signal="worldgen_ready" from="." to="CameraZoom2D" method="_on_main_worldgen_ready"]
[connection signal="worldgen_ready" from="." to="UILayer/Control/Minimap" method="_on_main_worldgen_ready"]
[connection signal="worldgen_ready" from="." to="UILayer/Control/Minimap/CameraMarker" method="_on_main_worldgen_ready"]
[connection signal="camera_rotation_changed" from="CameraZoom2D" to="UILayer/Control/Minimap/CameraMarker" method="_on_camera_zoom_2d_camera_rotation_changed"]
[connection signal="camera_zoom_changed" from="CameraZoom2D" to="UILayer/Control/Minimap/CameraMarker" method="_on_camera_zoom_2d_camera_zoom_changed"]
[connection signal="pressed" from="UILayer/Control/ConstructionPanel/button_residental" to="UILayer/Control" method="_on_button_residental_pressed"]
[connection signal="pressed" from="UILayer/Control/ConstructionPanel/button_commercial" to="UILayer/Control" method="_on_button_commercial_pressed"]
[connection signal="pressed" from="UILayer/Control/ConstructionPanel/button_industrial" to="UILayer/Control" method="_on_button_industrial_pressed"]

View file

@ -0,0 +1,26 @@
[gd_scene load_steps=4 format=3 uid="uid://b3onvgtcvpk3q"]
[sub_resource type="Gradient" id="Gradient_fu8gh"]
interpolation_mode = 2
[sub_resource type="FastNoiseLite" id="FastNoiseLite_54wht"]
noise_type = 5
frequency = 0.034
fractal_type = 0
fractal_octaves = 1
fractal_lacunarity = 204.627
fractal_gain = 2.103
fractal_weighted_strength = 0.32
cellular_distance_function = 1
cellular_jitter = 0.884
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_kpv1q"]
generate_mipmaps = false
color_ramp = SubResource("Gradient_fu8gh")
noise = SubResource("FastNoiseLite_54wht")
[node name="ParcelNoiseTesting" type="Sprite2D"]
position = Vector2(1480, 700)
rotation = 0.523598
scale = Vector2(2.6875, 2.60938)
texture = SubResource("NoiseTexture2D_kpv1q")