extends Node var objmgr onready var currObj = get_node("CurrentObject") onready var tabs = get_node("Tabs") func reset_itemlist_models(search=""): var ilist = get_node("ItemList") ilist.clear() var done = [] var f2 = File.new() f2.open("res://objlist.txt", File.READ) var a = true while a: a = f2.get_line() var arr = a.split("\t") if len(arr) >= 3: if not done.has(arr[0]): var parts = arr[2].split(" ") if len(parts) > 0: if not search or (search and search in parts[0]): ilist.add_item(arr[0] + " " + parts[0]) done.append(arr[0]) f2.close() func _on_Node_ready(): tabs.add_tab("Models") tabs.add_tab("Textures") tabs.current_tab = 0 var giantsscript = load("res://objectmanager.gd") var f1 = File.new() f1.open("res://dir.txt", File.READ) var dir = f1.get_as_text() f1.close() objmgr = giantsscript.ObjectManager.new() objmgr.GIANTS_PATH = dir objmgr.build() reset_itemlist_models() var tlist = get_node("TextureList") for t in objmgr.index: if t.ends_with(".tga"): tlist.add_item(t) func _on_ViewportContainer_mouse_entered(): get_node("ViewportContainer/Viewport/Player").capture_mouse = true print("capture true") func _on_ViewportContainer_mouse_exited(): get_node("ViewportContainer/Viewport/Player").capture_mouse = false print("capture false") func _on_ItemList_item_selected(index): print("Showing") get_node("Loader").show() yield(get_tree(),"idle_frame") yield(get_tree(),"idle_frame") var text = get_node("ItemList").get_item_text(index) var model = text.split(" ")[1] + ".gbs" print("Loading "+model) var m = objmgr.load_model(model) var meshinstance = objmgr.load_model_mesh(m) remove_child(currObj) add_child(meshinstance) currObj = meshinstance print("Hiding") get_node("Loader").hide() func _on_Tabs_tab_changed(tab): var ilist = get_node("ItemList") var vpcontainer = get_node("ViewportContainer") var sprite = get_node("Sprite") var texturelist = get_node("TextureList") var search = get_node("SearchModel") if tab == 0: # model ilist.visible = true vpcontainer.visible = true search.visible = true texturelist.visible = false sprite.visible = false else: ilist.visible = false vpcontainer.visible = false search.visible = false texturelist.visible = true sprite.visible = true func _on_TextureList_item_selected(index): var sprite = get_node("Sprite") var text = get_node("TextureList").get_item_text(index) var texture = objmgr.load_texture(text) sprite.texture = texture var max_height = 685 var max_width = 700 var height_scale = max_height / texture.get_height() var width_scale = max_width / texture.get_width() var final_scale = min(height_scale, width_scale) sprite.scale = Vector2(final_scale, final_scale) func _on_SearchModel_text_changed(new_text): reset_itemlist_models(new_text)