feat(designer): Core 电路边改行编辑器(去 JSON)

This commit is contained in:
2026-07-22 12:15:19 +08:00
parent 0d6d511c86
commit 3b4a5f674c
+13 -8
View File
@@ -22,7 +22,7 @@ var _mana_leech: SpinBox
var _feat: OptionButton
var _rows: SpinBox
var _cols: SpinBox
var _edges: TextEdit
var _edges
var _status: Label
func _ready() -> void:
@@ -49,9 +49,11 @@ func _ready() -> void:
_rows = _row("矩阵行(MATRIX)", UI.spin(1, 8, 1, 1))
_cols = _row("矩阵列(MATRIX)", UI.spin(1, 16, 1, 5))
add_child(Label.new())
var el := Label.new(); el.text = "电路边(CIRCUITJSON)"; add_child(el)
_edges = TextEdit.new(); _edges.custom_minimum_size = Vector2(0, 50)
_edges.placeholder_text = '[{"from":0,"to":1},{"from":0,"to":2}]'
var el := Label.new(); el.text = "电路边(CIRCUITfrom → to)"; add_child(el)
_edges = preload("res://addons/game_designer/tuple_list_editor.gd").new()
_edges.setup([
{"label": "from", "min": 0, "max": 63, "step": 1, "int": true},
{"label": "→ to", "min": 0, "max": 63, "step": 1, "int": true}], " 加边")
add_child(_edges)
add_child(HSeparator.new())
var srow := HBoxContainer.new(); add_child(srow)
@@ -93,15 +95,18 @@ func _on_select(idx: int) -> void:
_feat.selected = int(d.get("feature_tags", 0))
_rows.value = float(d.get("grid_rows", 1))
_cols.value = float(d.get("grid_cols", 5))
_edges.text = JSON.stringify(d.get("edges", []))
var erows := []
for e in d.get("edges", []):
erows.append([int(e.get("from", 0)), int(e.get("to", 0))])
_edges.set_values(erows)
func _on_apply() -> void:
var cid: String = _id.text.strip_edges()
if cid == "":
UI.set_status(_status, "✗ ID 不能为空", true); return
var edges = JSON.parse_string(_edges.text) if _edges.text.strip_edges() != "" else []
if not (edges is Array):
edges = []
var edges := []
for r in _edges.get_values():
edges.append({"from": r[0], "to": r[1]})
if _cur != "" and _cur != cid and _data.has(_cur):
_data.erase(_cur)
_data[cid] = {