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 |