diff --git a/scenes/Main.tscn b/scenes/Main.tscn index 9e7d04e..9606587 100644 --- a/scenes/Main.tscn +++ b/scenes/Main.tscn @@ -128,8 +128,8 @@ texture_repeat = 1 centered = false [connection signal="set_camera_position" from="." to="CameraZoom2D" method="_on_set_camera_position"] -[connection signal="worldgen_ready" from="." to="CameraZoom2D" method="_on_main_worldgen_ready"] [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="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"] diff --git a/scripts/Main.gd b/scripts/Main.gd index 78800a6..eb95332 100644 --- a/scripts/Main.gd +++ b/scripts/Main.gd @@ -20,7 +20,7 @@ var map_filenames:Array = [ "res://maps/tampere_256px.png", "res://maps/tampere_10x10km_4096px.png" ] -var map_filename:String = map_filenames[3] +var map_filename:String = map_filenames[2] var _world_generator:WorldGenerator diff --git a/scripts/Minimap.gd b/scripts/Minimap.gd index 8d9150a..e0e3088 100644 --- a/scripts/Minimap.gd +++ b/scripts/Minimap.gd @@ -7,6 +7,8 @@ signal set_camera_position(pos:Vector2) @onready var sprite:Sprite2D var is_mouse_inside_minimap:bool = false +var position_multiplier + # Called when the node enters the scene tree for the first time. func _ready(): @@ -22,8 +24,8 @@ func _draw(): func _process(_delta): if !is_mouse_inside_minimap: Globals.camera_marker.position = Vector2i( - Globals.CAMERA_POSITION.x / 8, - Globals.CAMERA_POSITION.y / 8, + Globals.CAMERA_POSITION.x / position_multiplier, # 8 on 256 size map. need a forumla to calculate this + Globals.CAMERA_POSITION.y / position_multiplier, # 8 on 256 size map ) @@ -32,6 +34,10 @@ func _on_main_worldgen_ready(): self.set_minimap() self.setup_camera_marker() + # log2(x) = log10(x) / log10(2) + var power = log(Globals.map_size) / log(2) - 8 + position_multiplier = 8 * pow(2, power) + func _on_mouse_entered(): is_mouse_inside_minimap = true @@ -46,7 +52,7 @@ func _unhandled_input(event) -> void: Globals.camera_marker.position = get_local_mouse_position() emit_signal( "set_camera_position", - get_local_mouse_position() * 8 + get_local_mouse_position() * position_multiplier # 8 on 256 size map. need a forumla to calculate this )