Fix template select scene

This commit is contained in:
Vaillant Jeremy
2021-05-15 12:08:43 +02:00
parent d013e3130f
commit ae31945fd8
3 changed files with 114 additions and 37 deletions
+22 -34
View File
@@ -1,5 +1,7 @@
extends Control
export (PackedScene) var template = load("res://scenes/levels/Template.tscn")
onready var levels = Array()
func _ready():
@@ -33,7 +35,10 @@ func _apply_scenes():
if resource == null:
resource = _get_resource(index, table, datas)
_apply_scene(name, thumb, resource)
_apply_scene(_load_scene(name),
_load_texture(thumb),
_build_path(name),
_build_method(name))
name = null
thumb = null
resource = null
@@ -50,41 +55,24 @@ func _get_resource(index, table, datas):
if table.get_prop_at(index).get_prop_name() == "resource":
return datas[index].get_data()
func _apply_scene(name, thumb, resource):
$MarginContainer/HBoxContainer.add_child(_configure_margin_container())
_configure_button(thumb, $MarginContainer/HBoxContainer/MarginContainer, name)
$MarginContainer/HBoxContainer/MarginContainer.add_child(_configure_vbox())
$MarginContainer/HBoxContainer/MarginContainer/VBoxContainer.add_child(_configure_hbox())
$MarginContainer/HBoxContainer/MarginContainer/VBoxContainer/HBoxContainer.add_child(_configure_label("reset"))
$MarginContainer/HBoxContainer/MarginContainer/VBoxContainer/HBoxContainer.add_child(_configure_label("0 / 10"))
func _build_path(name):
return "MarginContainer/HBoxContainer/"+name+"/TextureRect"
func _configure_margin_container():
var margin = MarginContainer.new()
margin.set_name("MarginContainer")
func _build_method(name):
return "_on_"+name.to_lower()+"_pressed"
func _load_scene(name):
var template_instance = template.instance()
template_instance.set_name(name)
return margin
return template_instance
func _configure_hbox():
var hbox = HBoxContainer.new()
hbox.set_name("HBoxContainer")
return hbox
func _load_texture(thumbnail):
return load(thumbnail)
func _configure_vbox():
var vbox = VBoxContainer.new()
vbox.set_name("VBoxContainer")
return vbox
func _apply_scene(instance, thumb, node, method):
$MarginContainer/HBoxContainer.add_child(instance)
var button = get_node(node+"/TextureButton")
button.set_normal_texture(thumb)
button.connect("pressed", self, method)
func _configure_label(name):
var label = Label.new()
label.set_text(name)
return label
func _configure_button(thumb, parent, name):
var thumbnail = TextureButton.new()
parent.add_child(thumbnail)
# $MarginContainer/HBoxContainer/VBoxContainer.add_child(thumbnail)
thumbnail.set_normal_texture(load(thumb))
thumbnail.connect("pressed", self, "_on_"+name.to_lower()+"_pressed")
+17 -3
View File
@@ -1,31 +1,45 @@
[gd_scene load_steps=2 format=2]
[gd_scene load_steps=3 format=2]
[ext_resource path="res://scenes/UI/choose_scenes/ChooseScene.gd" type="Script" id=1]
[ext_resource path="res://scenes/levels/Template.tscn" type="PackedScene" id=2]
[node name="ChooseScene" type="CenterContainer"]
anchor_right = 1.0
anchor_bottom = 1.0
margin_left = 73.7365
margin_top = -67.0147
margin_right = 73.7366
margin_bottom = -67.0146
script = ExtResource( 1 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="MarginContainer" type="MarginContainer" parent="."]
margin_left = 712.0
margin_left = 705.0
margin_top = 435.0
margin_right = 727.0
margin_right = 735.0
margin_bottom = 465.0
size_flags_horizontal = 3
size_flags_vertical = 3
custom_constants/margin_right = 15
custom_constants/margin_top = 15
custom_constants/margin_left = 15
custom_constants/margin_bottom = 15
__meta__ = {
"_edit_use_anchors_": false
}
[node name="HBoxContainer" type="HBoxContainer" parent="MarginContainer"]
margin_left = 15.0
margin_top = 15.0
margin_right = 15.0
margin_bottom = 15.0
size_flags_horizontal = 3
size_flags_vertical = 3
custom_constants/separation = 120
[node name="example" parent="MarginContainer/HBoxContainer" instance=ExtResource( 2 )]
visible = false
[editable path="MarginContainer/HBoxContainer/example"]