Initial commit.
40
README.md
Normal file
@ -0,0 +1,40 @@
|
||||
HUD Compass [hud_compass]
|
||||
-------------------------
|
||||
|
||||
A Minetest mod to optionally place a HUD compass in the bottom right corner of the screen.
|
||||
|
||||
By David G (kestral246)
|
||||
|
||||
![HUD Compass Screenshot](screenshot.jpeg "hud_compass")
|
||||
|
||||
How to enable
|
||||
-------------
|
||||
|
||||
This mod defaults to not displaying compass. To enable, use the chat command:
|
||||
|
||||
> "/compass"
|
||||
|
||||
Repeated use of this command will toggle the compass display off and on.
|
||||
|
||||
Local mod storage is used to maintain state of hud_compass display between sessions, per user.
|
||||
|
||||
|
||||
Licenses
|
||||
--------
|
||||
Source code
|
||||
|
||||
> The MIT License (MIT)
|
||||
|
||||
Media (textures)
|
||||
|
||||
> Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)
|
||||
|
||||
> (Textures were copied from my realcompass mod, which were originally based on the textures created by tacotexmex for the ccompass mod.)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
67
init.lua
Normal file
@ -0,0 +1,67 @@
|
||||
-- hud_compass
|
||||
-- Optionally place a compass on the screen.
|
||||
-- A HUD version of my realcompass mod.
|
||||
-- By David_G (kestral246@gmail.com)
|
||||
-- 2019-10-28
|
||||
|
||||
local hud_compass = {}
|
||||
local storage = minetest.get_mod_storage()
|
||||
|
||||
minetest.register_on_joinplayer(function(player)
|
||||
local pname = player:get_player_name()
|
||||
local is_enabled = false
|
||||
if storage:get(pname) and storage:get(pname) == "1" then
|
||||
is_enabled = true
|
||||
end
|
||||
hud_compass[pname] = {
|
||||
id = player:hud_add({
|
||||
hud_elem_type = "image",
|
||||
text = "",
|
||||
position = {x=1.0, y=1.0},
|
||||
scale = {x=4, y=4},
|
||||
alignment = {x=-1, y=-1},
|
||||
offset = {x=-8, y=-4}
|
||||
}),
|
||||
last_image = -1,
|
||||
enabled = is_enabled,
|
||||
}
|
||||
end)
|
||||
|
||||
minetest.register_chatcommand("compass", {
|
||||
params = "",
|
||||
description = "Toggle display of hud compass.",
|
||||
privs = {},
|
||||
func = function(pname, param)
|
||||
local player = minetest.get_player_by_name(pname)
|
||||
if hud_compass[pname].enabled == true then -- is enabled
|
||||
hud_compass[pname].enabled = false -- toggle to disabled
|
||||
player:hud_change(hud_compass[pname].id, "text", "") -- blank hud
|
||||
storage:set_string(pname, "0")
|
||||
else -- is disabled
|
||||
hud_compass[pname].enabled = true -- toggle to enabled
|
||||
storage:set_string(pname, "1")
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_on_leaveplayer(function(player)
|
||||
local pname = player:get_player_name()
|
||||
if hud_compass[pname] then
|
||||
hud_compass[pname] = nil
|
||||
end
|
||||
end)
|
||||
|
||||
minetest.register_globalstep(function(dtime)
|
||||
local players = minetest.get_connected_players()
|
||||
for i,player in ipairs(players) do
|
||||
local pname = player:get_player_name()
|
||||
local dir = player:get_look_horizontal()
|
||||
local angle_relative = math.deg(dir)
|
||||
local image = math.floor((angle_relative/22.5) + 0.5)%16
|
||||
|
||||
if hud_compass[pname].enabled and image ~= hud_compass[pname].last_image then
|
||||
player:hud_change(hud_compass[pname].id, "text", "realcompass_"..image..".png")
|
||||
hud_compass[pname].last_image = image
|
||||
end
|
||||
end
|
||||
end)
|
2
mod.conf
Normal file
@ -0,0 +1,2 @@
|
||||
name = hud_compass
|
||||
description = Optionally place a HUD compass on the screen.
|
BIN
screenshot.jpeg
Normal file
After Width: | Height: | Size: 141 KiB |
BIN
textures/realcompass_0.png
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
textures/realcompass_1.png
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
textures/realcompass_10.png
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
textures/realcompass_11.png
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
textures/realcompass_12.png
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
textures/realcompass_13.png
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
textures/realcompass_14.png
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
textures/realcompass_15.png
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
textures/realcompass_2.png
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
textures/realcompass_3.png
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
textures/realcompass_4.png
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
textures/realcompass_5.png
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
textures/realcompass_6.png
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
textures/realcompass_7.png
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
textures/realcompass_8.png
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
textures/realcompass_9.png
Normal file
After Width: | Height: | Size: 2.5 KiB |