diff options
| -rw-r--r-- | client/gui/menus/book/book.gd | 2 | ||||
| -rw-r--r-- | client/gui/menus/book/book.tscn | 2 | ||||
| -rw-r--r-- | client/gui/menus/book/diagram.gd | 22 |
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) |