change minimap to use a formula for position multi

This commit is contained in:
Antti Hakkarainen 2023-02-14 23:55:32 +02:00
parent 14aa4f0e9a
commit 7805b02f0d
3 changed files with 11 additions and 5 deletions

View file

@ -128,8 +128,8 @@ texture_repeat = 1
centered = false centered = false
[connection signal="set_camera_position" from="." to="CameraZoom2D" method="_on_set_camera_position"] [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="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" 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_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_commercial" to="UILayer/Control" method="_on_button_commercial_pressed"]

View file

@ -20,7 +20,7 @@ var map_filenames:Array = [
"res://maps/tampere_256px.png", "res://maps/tampere_256px.png",
"res://maps/tampere_10x10km_4096px.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 var _world_generator:WorldGenerator

View file

@ -7,6 +7,8 @@ signal set_camera_position(pos:Vector2)
@onready var sprite:Sprite2D @onready var sprite:Sprite2D
var is_mouse_inside_minimap:bool = false var is_mouse_inside_minimap:bool = false
var position_multiplier
# Called when the node enters the scene tree for the first time. # Called when the node enters the scene tree for the first time.
func _ready(): func _ready():
@ -22,8 +24,8 @@ func _draw():
func _process(_delta): func _process(_delta):
if !is_mouse_inside_minimap: if !is_mouse_inside_minimap:
Globals.camera_marker.position = Vector2i( Globals.camera_marker.position = Vector2i(
Globals.CAMERA_POSITION.x / 8, Globals.CAMERA_POSITION.x / position_multiplier, # 8 on 256 size map. need a forumla to calculate this
Globals.CAMERA_POSITION.y / 8, Globals.CAMERA_POSITION.y / position_multiplier, # 8 on 256 size map
) )
@ -32,6 +34,10 @@ func _on_main_worldgen_ready():
self.set_minimap() self.set_minimap()
self.setup_camera_marker() 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(): func _on_mouse_entered():
is_mouse_inside_minimap = true is_mouse_inside_minimap = true
@ -46,7 +52,7 @@ func _unhandled_input(event) -> void:
Globals.camera_marker.position = get_local_mouse_position() Globals.camera_marker.position = get_local_mouse_position()
emit_signal( emit_signal(
"set_camera_position", "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
) )