123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- -- Mod global namespace
- map = {}
- -- Cache creative mode setting
- local creative_mode_cache = minetest.settings:get_bool("creative_mode")
- -- Update HUD flags
- -- Global to allow overriding
- function map.update_hud_flags(player)
- local creative_enabled =
- (creative and creative.is_enabled_for(player:get_player_name())) or
- creative_mode_cache
- local minimap_enabled = creative_enabled or
- player:get_inventory():contains_item("main", "map:mapping_kit")
- local radar_enabled = creative_enabled
- player:hud_set_flags({
- minimap = minimap_enabled,
- minimap_radar = radar_enabled
- })
- end
- -- Set HUD flags 'on joinplayer'
- minetest.register_on_joinplayer(function(player)
- map.update_hud_flags(player)
- end)
- -- Cyclic update of HUD flags
- local function cyclic_update()
- for _, player in ipairs(minetest.get_connected_players()) do
- map.update_hud_flags(player)
- end
- minetest.after(5.3, cyclic_update)
- end
- minetest.after(5.3, cyclic_update)
- -- Mapping kit item
- minetest.register_craftitem("map:mapping_kit", {
- description = "Mapping Kit\nUse with 'Minimap' key",
- inventory_image = "map_mapping_kit.png",
- stack_max = 1,
- groups = {flammable = 3},
- on_use = function(itemstack, user, pointed_thing)
- map.update_hud_flags(user)
- end,
- })
- -- Crafting
- minetest.register_craft({
- output = "map:mapping_kit",
- recipe = {
- {"default:steel_ingot", "dye:black", "default:stick"},
- {"default:paper", "default:paper", "default:paper"},
- }
- })
- -- Fuel
- minetest.register_craft({
- type = "fuel",
- recipe = "map:mapping_kit",
- burntime = 5,
- })
|