Mouse Zoom Essentials

This commit is contained in:
bleeptrack 2020-09-15 18:41:06 +02:00
parent 5558823de1
commit a07deac051
5 changed files with 43 additions and 9 deletions

View file

@ -11,6 +11,7 @@ var held = false
var arrow = preload("res://arrow.tscn") var arrow = preload("res://arrow.tscn")
func _ready(): func _ready():
pass pass
@ -25,8 +26,8 @@ func apply_forces():
var offset = Vector2(0, 80) var offset = Vector2(0, 80)
for c in children.keys(): for c in children.keys():
if get_node("..").objects.has(c): if repository.objects.has(c):
var other = get_node("..").objects[c] var other = repository.objects[c]
if other.visible: if other.visible:
var d = other.position.distance_to(position+offset) var d = other.position.distance_to(position+offset)
var dir = (other.position - (position+offset)).normalized() var dir = (other.position - (position+offset)).normalized()

View file

@ -65,6 +65,16 @@ click={
"events": [ Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"button_mask":0,"position":Vector2( 0, 0 ),"global_position":Vector2( 0, 0 ),"factor":1.0,"button_index":1,"pressed":false,"doubleclick":false,"script":null) "events": [ Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"button_mask":0,"position":Vector2( 0, 0 ),"global_position":Vector2( 0, 0 ),"factor":1.0,"button_index":1,"pressed":false,"doubleclick":false,"script":null)
] ]
} }
zoom_in={
"deadzone": 0.5,
"events": [ Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"button_mask":0,"position":Vector2( 0, 0 ),"global_position":Vector2( 0, 0 ),"factor":1.0,"button_index":4,"pressed":false,"doubleclick":false,"script":null)
]
}
zoom_out={
"deadzone": 0.5,
"events": [ Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"button_mask":0,"position":Vector2( 0, 0 ),"global_position":Vector2( 0, 0 ),"factor":1.0,"button_index":5,"pressed":false,"doubleclick":false,"script":null)
]
}
[network] [network]

View file

@ -7,16 +7,26 @@ var node = preload("res://node.tscn")
var shell = Shell.new() var shell = Shell.new()
var objects = {} var objects = {}
var mouse_inside = false
var _simplified_view = false var _simplified_view = false
func _ready(): func _ready():
$Nodes.rect_pivot_offset = $Nodes.rect_size / 2
print($Nodes.rect_pivot_offset)
pass pass
func _process(_delta): func _process(_delta):
if path: if path:
apply_forces() apply_forces()
func _input(event):
if mouse_inside:
if event.is_action_pressed("zoom_out") and $Nodes.rect_scale.x > 0.3:
$Nodes.rect_scale -= Vector2(0.05, 0.05)
if event.is_action_pressed("zoom_in") and $Nodes.rect_scale.x < 2:
$Nodes.rect_scale += Vector2(0.05, 0.05)
func update_everything(): func update_everything():
update_head() update_head()
update_refs() update_refs()
@ -79,7 +89,7 @@ func update_objects():
n.children = tag_target(o) n.children = tag_target(o)
n.position = find_position(n) n.position = find_position(n)
add_child(n) $Nodes.add_child(n)
objects[o] = n objects[o] = n
func update_refs(): func update_refs():
@ -93,7 +103,7 @@ func update_refs():
objects[r] = n objects[r] = n
n.children = {ref_target(r): ""} n.children = {ref_target(r): ""}
n.position = find_position(n) n.position = find_position(n)
add_child(n) $Nodes.add_child(n)
var n = objects[r] var n = objects[r]
n.children = {ref_target(r): ""} n.children = {ref_target(r): ""}
@ -151,7 +161,7 @@ func update_head():
n.position = find_position(n) n.position = find_position(n)
objects["HEAD"] = n objects["HEAD"] = n
add_child(n) $Nodes.add_child(n)
var n = objects["HEAD"] var n = objects["HEAD"]
n.children = {ref_target("HEAD"): ""} n.children = {ref_target("HEAD"): ""}
@ -244,3 +254,9 @@ func remove_gone_stuff():
if not all.has(o): if not all.has(o):
objects[o].queue_free() objects[o].queue_free()
objects.erase(o) objects.erase(o)
func _on_mouse_entered():
mouse_inside = true
func _on_mouse_exited():
mouse_inside = false

View file

@ -64,5 +64,12 @@ margin_right = 24.0
margin_bottom = 24.0 margin_bottom = 24.0
custom_fonts/font = ExtResource( 2 ) custom_fonts/font = ExtResource( 2 )
text = "Hide trees and blobs" text = "Hide trees and blobs"
[node name="Nodes" type="Control" parent="."]
anchor_right = 1.0
anchor_bottom = 1.0
mouse_filter = 2
[connection signal="mouse_entered" from="." to="." method="_on_mouse_entered"]
[connection signal="mouse_exited" from="." to="." method="_on_mouse_exited"]
[connection signal="pressed" from="Button" to="." method="update_everything"] [connection signal="pressed" from="Button" to="." method="update_everything"]
[connection signal="toggled" from="SimplifyCheckbox" to="." method="simplify_view"] [connection signal="toggled" from="SimplifyCheckbox" to="." method="simplify_view"]

View file

@ -4,10 +4,10 @@
[ext_resource path="res://terminal.gd" type="Script" id=2] [ext_resource path="res://terminal.gd" type="Script" id=2]
[ext_resource path="res://styles/terminal_input.tres" type="StyleBox" id=3] [ext_resource path="res://styles/terminal_input.tres" type="StyleBox" id=3]
[sub_resource type="StyleBoxFlat" id=2] [sub_resource type="StyleBoxFlat" id=1]
bg_color = Color( 0, 0, 0, 1 ) bg_color = Color( 0, 0, 0, 1 )
[sub_resource type="StyleBoxFlat" id=1] [sub_resource type="StyleBoxFlat" id=2]
content_margin_left = 10.0 content_margin_left = 10.0
content_margin_right = 10.0 content_margin_right = 10.0
content_margin_top = 10.0 content_margin_top = 10.0
@ -35,8 +35,8 @@ margin_right = 1920.0
margin_bottom = 1039.0 margin_bottom = 1039.0
focus_mode = 2 focus_mode = 2
size_flags_vertical = 3 size_flags_vertical = 3
custom_styles/focus = SubResource( 2 ) custom_styles/focus = SubResource( 1 )
custom_styles/normal = SubResource( 1 ) custom_styles/normal = SubResource( 2 )
custom_fonts/normal_font = ExtResource( 1 ) custom_fonts/normal_font = ExtResource( 1 )
custom_colors/selection_color = Color( 0.14902, 0.368627, 0.168627, 0.690196 ) custom_colors/selection_color = Color( 0.14902, 0.368627, 0.168627, 0.690196 )
scroll_following = true scroll_following = true