Исправление. "Блок-В": Экземпляры уровней из разных "блок-в" находятся в одной группе
This commit is contained in:
@@ -11,7 +11,7 @@
|
||||
|
||||
[sub_resource type="GDScript" id="GDScript_oj3k3"]
|
||||
script/source = "@tool
|
||||
extends PanelContainer
|
||||
class_name blok_v extends PanelContainer
|
||||
|
||||
@export var textures: Array
|
||||
|
||||
@@ -21,10 +21,8 @@ signal pressed(control: PanelContainer)
|
||||
## Значения уровней
|
||||
@export var value0: Array:
|
||||
set(v):
|
||||
value0 = v
|
||||
if not is_inside_tree():
|
||||
return
|
||||
var items: Array[Node] = get_tree().get_nodes_in_group('уровни')
|
||||
value0.assign(v)
|
||||
var items: Array = get_level_nodes()
|
||||
var count: int = min(items.size(), v.size())
|
||||
for i in count:
|
||||
items[i].value = v[i]
|
||||
@@ -42,7 +40,8 @@ signal pressed(control: PanelContainer)
|
||||
@export var min_value0: float:
|
||||
set(v):
|
||||
min_value0 = v
|
||||
set_group_param('уровни', 'min_value', v)
|
||||
var items: = get_level_nodes()
|
||||
set_group_param(items, 'min_value', v)
|
||||
|
||||
|
||||
@export var min_value1: float:
|
||||
@@ -56,7 +55,8 @@ signal pressed(control: PanelContainer)
|
||||
@export var max_value0: float:
|
||||
set(v):
|
||||
max_value0 = v
|
||||
set_group_param('уровни', 'max_value', v)
|
||||
var items: = get_level_nodes()
|
||||
set_group_param(items, 'max_value', v)
|
||||
|
||||
|
||||
@export var max_value1: float:
|
||||
@@ -70,7 +70,8 @@ signal pressed(control: PanelContainer)
|
||||
@export var step0: float:
|
||||
set(v):
|
||||
step0 = v
|
||||
set_group_param('уровни', 'step', v)
|
||||
var items: = get_level_nodes()
|
||||
set_group_param(items, 'step', v)
|
||||
|
||||
|
||||
@export var step1: float:
|
||||
@@ -84,7 +85,8 @@ signal pressed(control: PanelContainer)
|
||||
@export var value_name0: String:
|
||||
set(v):
|
||||
value_name0 = v
|
||||
set_group_param('названия', 'text', v)
|
||||
var items: Array = get_name_nodes()
|
||||
set_group_param(items, 'text', v)
|
||||
|
||||
|
||||
@export var value_name1: String:
|
||||
@@ -122,47 +124,80 @@ signal pressed(control: PanelContainer)
|
||||
@export var alignment: int:
|
||||
set(v):
|
||||
alignment = v
|
||||
if not is_inside_tree():
|
||||
if is_inside_tree():
|
||||
return
|
||||
$margin/vbox.alignment = v
|
||||
|
||||
|
||||
func _on_button_pressed(): emit_signal('pressed', self)
|
||||
func _enter_tree() -> void: call_deferred('_enter_tree_defered')
|
||||
func set_value0(value: Array): value0 = value
|
||||
func set_value0(value: Array): value0.assign(value)
|
||||
|
||||
|
||||
func set_group_param(group: StringName, param: StringName, v) -> void:
|
||||
func set_group_param(items: Array, param: StringName, v) -> void:
|
||||
if not is_inside_tree():
|
||||
return
|
||||
var items: Array[Node] = get_tree().get_nodes_in_group(group)
|
||||
if not get_tree():
|
||||
return
|
||||
for i in items.size():
|
||||
items[i].set(param, v)
|
||||
|
||||
|
||||
func set_value0_by_index(index: int, value: float) -> void:
|
||||
var items: Array[Node] = get_tree().get_nodes_in_group('уровни')
|
||||
var items: Array = get_level_nodes()
|
||||
items[index].value = value
|
||||
|
||||
|
||||
func _enter_tree_defered():
|
||||
var items: Array[Node] = get_tree().get_nodes_in_group('уровни')
|
||||
var items: Array = get_level_nodes()
|
||||
var count: int = min(items.size(), value0.size())
|
||||
for i in count:
|
||||
items[i].value = value0[i]
|
||||
items[i].min_value = min_value0
|
||||
items[i].max_value = max_value0
|
||||
items[i].step = step0
|
||||
$margin/vbox/grid1/level7.value = value1
|
||||
$margin/vbox/grid1/level7.min_value = min_value1
|
||||
$margin/vbox/grid1/level7.max_value = max_value1
|
||||
$margin/vbox/grid1/level7.step = step1
|
||||
$margin/vbox/grid2/lbl7.text = value_name1
|
||||
$margin/vbox.alignment = alignment
|
||||
$margin/vbox/grid0/rname.text = rname
|
||||
$margin/vbox/grid0/fname.text = fname
|
||||
$margin/vbox/grid0/state.texture = textures[state]
|
||||
set_group_param('названия', 'text', value_name0)
|
||||
items = get_name_nodes()
|
||||
set_group_param(items, 'text', value_name0)
|
||||
if is_inside_tree():
|
||||
$margin/vbox/grid1/level7.value = value1
|
||||
$margin/vbox/grid1/level7.min_value = min_value1
|
||||
$margin/vbox/grid1/level7.max_value = max_value1
|
||||
$margin/vbox/grid1/level7.step = step1
|
||||
$margin/vbox/grid2/lbl7.text = value_name1
|
||||
$margin/vbox.alignment = alignment
|
||||
$margin/vbox/grid0/rname.text = rname
|
||||
$margin/vbox/grid0/fname.text = fname
|
||||
$margin/vbox/grid0/state.texture = textures[state]
|
||||
else:
|
||||
push_warning('%s - вне дерева' % self)
|
||||
|
||||
|
||||
func get_level_nodes() -> Array:
|
||||
if not is_inside_tree():
|
||||
return []
|
||||
if not get_tree():
|
||||
return []
|
||||
return [
|
||||
$margin/vbox/grid1/level1,
|
||||
$margin/vbox/grid1/level2,
|
||||
$margin/vbox/grid1/level3,
|
||||
$margin/vbox/grid1/level4,
|
||||
$margin/vbox/grid1/level5,
|
||||
$margin/vbox/grid1/level6 ]
|
||||
|
||||
|
||||
func get_name_nodes() -> Array:
|
||||
if not is_inside_tree():
|
||||
return []
|
||||
if not get_tree():
|
||||
return []
|
||||
return [
|
||||
$margin/vbox/grid2/lbl1,
|
||||
$margin/vbox/grid2/lbl2,
|
||||
$margin/vbox/grid2/lbl3,
|
||||
$margin/vbox/grid2/lbl4,
|
||||
$margin/vbox/grid2/lbl5,
|
||||
$margin/vbox/grid2/lbl6 ]
|
||||
"
|
||||
|
||||
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_rceim"]
|
||||
|
||||
Reference in New Issue
Block a user