extends Control var dir = Directory.new() # Called when the node enters the scene tree for the first time. func _ready(): OS.request_permissions() $ImportDialog.current_dir = OS.get_system_dir(OS.SYSTEM_DIR_DOWNLOADS) $ExportDialog.current_dir = OS.get_system_dir(OS.SYSTEM_DIR_DOWNLOADS) if OS.get_name() == "HTML5": $pm/opts/save.hide() $pm/opts/delete.hide() get_tree().connect("files_dropped",self,"_on_file_drop") func _on_List_item_selected(index): #update buttons if to be clickable. var preyname = $pm/List.get_item_text(index) var dat = Global.preydata[preyname] #print(dat) $pm/opts/delete.disabled = (dat.get('file') == null) $pm/opts/remove.disabled = false $pm/opts/save.disabled = (dat.get('file') != null) $pm/opts/edit.disabled = false $pm/opts/copy.disabled = false $pm/opts/export.disabled = false func _on_List_nothing_selected(): #print("nothing selected") $pm/opts/delete.disabled = true $pm/opts/remove.disabled = true $pm/opts/save.disabled = true $pm/opts/edit.disabled = true $pm/opts/copy.disabled = true $pm/opts/export.disabled = true func _on_remove_pressed(): var index = $pm/List.get_selected_items()[0] var preyname = $pm/List.get_item_text(index) Global.preydata.erase(preyname) $pm/List.remove_item(index) _on_List_nothing_selected() func _on_delete_pressed(): $DelConf.popup_centered() func _on_save_pressed(): $SaveConf.popup_centered() func _on_DelConf_confirmed(): #delete prey file from disk var index = $pm/List.get_selected_items()[0] var preyname = $pm/List.get_item_text(index) dir.remove(Global.preydata[preyname]['file']) Global.preydata[preyname]['file'] = null $pm/opts/save.disabled = false $pm/opts/delete.disabled = true func _on_edit_pressed(): var preyname = $pm/List.prey_selected() Global.preytoedit = preyname get_tree().change_scene("res://PreyEdit.tscn") func _on_add_pressed(): if OS.get_name() == "HTML5": OS.alert("To import prey in the browser, drag and drop a PNG image or .prey file into the Prey Manager.") else: $ImportDialog.popup_centered() func _on_ImportDialog_file_selected(path): if Global.import_prey(path,true): $pm/List.refresh() else: print("err") func _on_SaveConf_confirmed(): var preyname = $pm/List.prey_selected() print("selected is ",preyname) var fname = "user://prey/"+preyname+".prey" Global.save_prey(fname,preyname) Global.preydata[preyname]['file'] = fname $pm/opts/save.disabled = true $pm/opts/delete.disabled = false func _on_export_pressed(): var preyname = $pm/List.prey_selected() if OS.get_name() == "HTML5": Global.save_prey("/tmp/prey",preyname) var temp = File.new() temp.open("/tmp/prey",File.READ) JavaScript.download_buffer(temp.get_buffer(temp.get_len()),preyname+".prey") temp.close() else: $ExportDialog.popup_centered() func _on_file_drop(files:PoolStringArray,from_screen): for file in files: Global.import_prey(file,true) $pm/List.refresh() func _on_copy_pressed(): var preyname = $pm/List.prey_selected() var newprey:String = preyname+" Copy " var i:int = 1 while Global.preydata.has(newprey+str(i)): i+=1 newprey += str(i) Global.preydata[newprey] = Global.preydata[preyname].duplicate(true) Global.preydata[newprey]["file"] = null #make sure new prey is only in memory Global.preydata[newprey]["shape"] = Global.preydata[preyname]["shape"].duplicate() $pm/List.refresh() func _on_ExportDialog_file_selected(path): var preyname = $pm/List.prey_selected() Global.save_prey(path,preyname)