dlg_delete_world.lua 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. -- Luanti
  2. -- Copyright (C) 2014 sapier
  3. -- SPDX-License-Identifier: LGPL-2.1-or-later
  4. local function delete_world_formspec(dialogdata)
  5. return confirmation_formspec(
  6. fgettext("Delete World \"$1\"?", dialogdata.delete_name),
  7. 'world_delete_confirm', fgettext("Delete"),
  8. 'world_delete_cancel', fgettext("Cancel"))
  9. end
  10. local function delete_world_buttonhandler(this, fields)
  11. if fields["world_delete_confirm"] then
  12. if this.data.delete_index > 0 and
  13. this.data.delete_index <= #menudata.worldlist:get_raw_list() then
  14. core.delete_world(this.data.delete_index)
  15. menudata.worldlist:refresh()
  16. end
  17. this:delete()
  18. return true
  19. end
  20. if fields["world_delete_cancel"] then
  21. this:delete()
  22. return true
  23. end
  24. return false
  25. end
  26. function create_delete_world_dlg(name_to_del, index_to_del)
  27. assert(name_to_del ~= nil and type(name_to_del) == "string" and name_to_del ~= "")
  28. assert(index_to_del ~= nil and type(index_to_del) == "number")
  29. local retval = dialog_create("delete_world",
  30. delete_world_formspec,
  31. delete_world_buttonhandler,
  32. nil)
  33. retval.data.delete_name = name_to_del
  34. retval.data.delete_index = index_to_del
  35. return retval
  36. end