mirror of
https://github.com/HarmonyHoney/tiny_crate.git
synced 2026-01-24 02:56:32 +00:00
73 lines
1.5 KiB
GDScript
73 lines
1.5 KiB
GDScript
|
|
extends Node2D
|
|
|
|
|
|
var label_list : RichTextLabel
|
|
var label_info : RichTextLabel
|
|
|
|
var map_list : String
|
|
var maps : PoolStringArray = []
|
|
var cursor := 0
|
|
var line_height = 9
|
|
|
|
var viewport : Viewport
|
|
|
|
|
|
|
|
func _ready():
|
|
label_list = $Control/List
|
|
label_info = $Control/Info
|
|
viewport = $Control/ViewportContainer/Viewport
|
|
|
|
map_list = ""
|
|
var dir = Directory.new()
|
|
if dir.open("res://Map") == OK:
|
|
dir.list_dir_begin(true, true)
|
|
var file_name = dir.get_next()
|
|
while file_name:
|
|
print(file_name.split(".")[0])
|
|
map_list += file_name.split(".")[0] + "\n"
|
|
file_name = dir.get_next()
|
|
dir.list_dir_end()
|
|
|
|
|
|
maps.append_array(map_list.split("\n", false))
|
|
label_list.text = map_list
|
|
|
|
scroll()
|
|
|
|
func _process(delta):
|
|
var btny = btn.p("down") - btn.p("up")
|
|
if btny:
|
|
scroll(btny)
|
|
|
|
if btn.p("action"):
|
|
Shared.map_name = maps[cursor]
|
|
get_tree().change_scene("res://Map/" + maps[cursor] + ".tscn")
|
|
|
|
|
|
func scroll(arg = 0):
|
|
cursor = clamp(cursor + arg, 0, maps.size() - 1)
|
|
label_list.rect_position.y = 90 - (cursor * line_height)
|
|
info()
|
|
view_map()
|
|
|
|
func info():
|
|
label_info.text = str(cursor) + " / " + maps[cursor] + "\n"
|
|
for i in Shared.stage_data:
|
|
if i.has("file") and i.file == "res://Map/" + maps[cursor] + ".tscn":
|
|
for j in i.size():
|
|
label_info.text += str(i.keys()[j]) + ": " + str(i.values()[j]) + "\n"
|
|
break
|
|
|
|
func view_map():
|
|
for i in viewport.get_children():
|
|
i.queue_free()
|
|
|
|
if ResourceLoader.exists("res://Map/" + maps[cursor] + ".tscn"):
|
|
var m = load("res://Map/" + maps[cursor] + ".tscn").instance()
|
|
viewport.add_child(m)
|
|
|
|
|
|
|
|
|