mirror of
https://github.com/git-learning-game/oh-my-git.git
synced 2024-11-22 16:20:19 +01:00
Mouse Zoom Essentials
This commit is contained in:
parent
5558823de1
commit
a07deac051
5 changed files with 43 additions and 9 deletions
5
node.gd
5
node.gd
|
@ -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()
|
||||||
|
|
|
@ -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]
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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"]
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue