71 lines
2.1 KiB
GDScript
71 lines
2.1 KiB
GDScript
## VERTICAL SLICE - NOT FOR PRODUCTION
|
|
## B 区结算明细带壳——结算期逐行文字列表退役后保留挖掘期摘要位与冒险流程叙述行承载(append_bb)。
|
|
class_name BattleLogView
|
|
extends PanelContainer
|
|
|
|
|
|
var _db
|
|
var _band_h_dig := 0
|
|
var _band_h_settle := 0
|
|
var _log: RichTextLabel
|
|
var _summary: Label
|
|
var _hint: Label
|
|
var _mode := "dig" # dig = 收起摘要 / settle = 展开空带(模式归组合根驱动;逐行流退役后 settle 态无逐行内容)
|
|
|
|
|
|
func _init(db_ref, layout: BattleLayoutTable) -> void:
|
|
_db = db_ref
|
|
_band_h_dig = layout.log_band_h_dig
|
|
_band_h_settle = layout.log_band_h_settle
|
|
custom_minimum_size = Vector2(0, _band_h_dig)
|
|
size_flags_vertical = Control.SIZE_SHRINK_END
|
|
var vb := VBoxContainer.new()
|
|
vb.add_theme_constant_override("separation", 2)
|
|
add_child(vb)
|
|
var head := HBoxContainer.new()
|
|
vb.add_child(head)
|
|
# 明细条灰字对深灰底实测 2.63:1 → 暗底双色墨制=暖白族
|
|
_summary = UiKit.label("",UiKit.FS_BODY, false, UiKit.WARM)
|
|
_summary.custom_minimum_size = Vector2(0, _band_h_dig - 4)
|
|
_summary.clip_text = true
|
|
_summary.text_overrun_behavior = TextServer.OVERRUN_TRIM_ELLIPSIS
|
|
head.add_child(_summary)
|
|
_hint = UiKit.label("上轮摘要(回看归「生涯」)",UiKit.FS_HINT, false, UiKit.WARM) # 辅助提示(≥14 辅助档)随上暖白
|
|
_hint.size_flags_horizontal = Control.SIZE_SHRINK_END
|
|
head.add_child(_hint)
|
|
_log = RichTextLabel.new()
|
|
_log.bbcode_enabled = true
|
|
_log.scroll_following = true
|
|
_log.custom_minimum_size = Vector2(0, _band_h_settle - 26)
|
|
_log.clip_contents = true
|
|
_log.scroll_active = true
|
|
vb.add_child(_log)
|
|
_log.visible = false
|
|
|
|
|
|
func set_mode(mode: String) -> void:
|
|
if _mode == mode:
|
|
return
|
|
_mode = mode
|
|
var settle := mode == "settle"
|
|
_log.visible = settle
|
|
_summary.visible = not settle
|
|
custom_minimum_size = Vector2(0, _band_h_settle if settle else _band_h_dig)
|
|
|
|
|
|
func mode() -> String:
|
|
return _mode
|
|
|
|
|
|
func clear() -> void:
|
|
_log.clear()
|
|
_summary.text = ""
|
|
|
|
|
|
func append_bb(bb: String) -> void:
|
|
_log.append_text(bb + "\n")
|
|
|
|
|
|
func parsed_text() -> String:
|
|
return _log.get_parsed_text()
|