map.lua 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. --------------------------------------------------------------
  2. --MAP
  3. --------------------------------------------------------------
  4. -- Cache creative mode setting
  5. local creative_mode_cache = minetest.settings:get_bool("creative_mode")
  6. -- Update HUD flags
  7. local function update_hud_flags(player)
  8. local creative_enabled =
  9. (creative and creative.is_enabled_for(player:get_player_name())) or
  10. creative_mode_cache
  11. local minimap_enabled = creative_enabled or
  12. player:get_inventory():contains_item("main", "artifacts:mapping_kit")
  13. --local radar_enabled = creative_enabled
  14. player:hud_set_flags({
  15. minimap = minimap_enabled,
  16. minimap_radar = minimap_enabled
  17. })
  18. end
  19. -- Set HUD flags 'on joinplayer'
  20. minetest.register_on_joinplayer(function(player)
  21. update_hud_flags(player)
  22. end)
  23. -- Cyclic update of HUD flags
  24. local function cyclic_update()
  25. for _, player in ipairs(minetest.get_connected_players()) do
  26. update_hud_flags(player)
  27. end
  28. minetest.after(5.3, cyclic_update)
  29. end
  30. minetest.after(5.3, cyclic_update)
  31. -- Mapping kit item
  32. minetest.register_craftitem("artifacts:mapping_kit", {
  33. description = "Geosurveyor".. "\n" .. "Use with 'Minimap' key",
  34. inventory_image = "artifacts_mapping_kit.png",
  35. stack_max = 1,
  36. --groups = {flammable = 1},
  37. on_use = function(itemstack, user, pointed_thing)
  38. update_hud_flags(user)
  39. end,
  40. })