aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--client/gui/menus/book/book.gd2
-rw-r--r--client/gui/menus/book/book.tscn2
-rw-r--r--client/gui/menus/book/diagram.gd22
3 files changed, 16 insertions, 10 deletions
diff --git a/client/gui/menus/book/book.gd b/client/gui/menus/book/book.gd
index 7574a76e..00837e9a 100644
--- a/client/gui/menus/book/book.gd
+++ b/client/gui/menus/book/book.gd
@@ -48,6 +48,8 @@ func _ready():
build_page()
func build_page() -> void:
+ $Margin/HBoxContainer/Previous.disabled = current_page == 0
+ $Margin/HBoxContainer/Next.disabled = current_page == pages.size() - 1
for c: Node in first.get_children():
c.queue_free()
for c: Node in second.get_children():
diff --git a/client/gui/menus/book/book.tscn b/client/gui/menus/book/book.tscn
index 982d1635..cc36104c 100644
--- a/client/gui/menus/book/book.tscn
+++ b/client/gui/menus/book/book.tscn
@@ -60,6 +60,7 @@ layout_mode = 2
texture_normal = ExtResource("2_x03iu")
texture_pressed = ExtResource("3_raafv")
texture_hover = ExtResource("4_ee6vw")
+texture_disabled = ExtResource("3_raafv")
texture_focused = ExtResource("5_0j5mt")
stretch_mode = 3
flip_h = true
@@ -101,6 +102,7 @@ layout_mode = 2
texture_normal = ExtResource("2_x03iu")
texture_pressed = ExtResource("3_raafv")
texture_hover = ExtResource("4_ee6vw")
+texture_disabled = ExtResource("3_raafv")
texture_focused = ExtResource("5_0j5mt")
stretch_mode = 3
diff --git a/client/gui/menus/book/diagram.gd b/client/gui/menus/book/diagram.gd
index abd22a01..2fa657f1 100644
--- a/client/gui/menus/book/diagram.gd
+++ b/client/gui/menus/book/diagram.gd
@@ -48,7 +48,8 @@ func _init(raw_: Dictionary, game: Game) -> void:
raw = raw_
nodes = raw["nodes"].map(func(r): return DiagramNode.new(r, game))
edges = raw["edges"].map(func(r): return DiagramEdge.new(r))
- draw_nodes = nodes
+ # ugh
+ draw_nodes = raw["nodes"].map(func(r): return DiagramNode.new(r, game))
func _ready() -> void:
redraw_images()
@@ -74,19 +75,20 @@ func redraw_images() -> void:
func scale(bounds: Rect2) -> void:
var current := Rect2(Vector2(INF, INF), Vector2(-INF, -INF))
- for n: DiagramNode in draw_nodes:
+ for n: DiagramNode in nodes:
current.position = current.position.min(n.position)
current.end = current.end.max(n.position)
var s = Vector2.ONE.min(bounds.size / current.size)
- for n: DiagramNode in nodes:
- var p := n.position
- p -= current.position
- p *= s
- n.position = p + bounds.position
+ for i in nodes.size():
+ var dn: DiagramNode = draw_nodes[i]
+ var n: DiagramNode = nodes[i]
+ dn.position = n.position - current.position
+ dn.position *= s
+ dn.position += bounds.position
redraw_images()
func _draw() -> void:
- for n: DiagramNode in nodes:
+ for n: DiagramNode in draw_nodes:
match n.style:
"intermediate_product":
draw_circle(n.position, HSIZE, Color("#555"), true, -1., true)
@@ -100,8 +102,8 @@ func _draw() -> void:
draw_rect(Rect2(n.position - Vector2(HSIZE, HSIZE), Vector2(SIZE, SIZE)), Color("#5452d8"))
for e: DiagramEdge in edges:
- var src_node: DiagramNode = nodes[e.src]
- var dst_node: DiagramNode = nodes[e.dst]
+ var src_node: DiagramNode = draw_nodes[e.src]
+ var dst_node: DiagramNode = draw_nodes[e.dst]
var src := node_edge_connect_pos(src_node, dst_node)
var dst := node_edge_connect_pos(dst_node, src_node)