deserializer.lua 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. magic_compass.items = {}
  2. local S = minetest.get_translator("magic_compass")
  3. local locations_dir = minetest.get_modpath("magic_compass") .. "/locations"
  4. local locations_content = minetest.get_dir_list(locations_dir)
  5. for _, file_name in pairs(locations_content) do
  6. -- estrapolo le info dal file
  7. local file = io.open(locations_dir .. "/" .. file_name, "r")
  8. local data = string.split(file:read("*all"), "\n")
  9. file:close()
  10. local i_ID = string.match(file_name, "(%d+)_")
  11. local i_desc = data[1]
  12. local i_texture = data[2]
  13. local i_pos = data[3]
  14. local i_cooldown
  15. local i_privileges
  16. local i_hide
  17. if data[4] and tonumber(data[4]) ~= -1 then
  18. i_cooldown = tonumber(data[4])
  19. end
  20. if data[5] then
  21. i_privileges = data[5]
  22. end
  23. if data[6] and data[6] == "HIDE" then
  24. i_hide = true
  25. end
  26. -- creo l'oggetto
  27. minetest.register_tool("magic_compass:" .. i_ID, {
  28. description = S(i_desc),
  29. inventory_image = i_texture,
  30. groups = {not_in_creative_inventory = 1, oddly_breakable_by_hand = 2}
  31. })
  32. magic_compass.items[tonumber(i_ID)] = {desc = i_desc, pos = i_pos, cooldown = i_cooldown, privs = i_privileges, hide = i_hide}
  33. end