parent
dc59ab7abf
commit
58b7efa839
4 changed files with 56 additions and 0 deletions
@ -0,0 +1,55 @@ |
||||
local ipairs |
||||
= ipairs |
||||
|
||||
local minetest, vector |
||||
= minetest, vector |
||||
|
||||
local player_huds = {} |
||||
|
||||
local function do_player_rotating_checks(player) |
||||
local name = player:get_player_name() |
||||
|
||||
local hud_index = player_huds[name] |
||||
if hud_index then |
||||
player:hud_remove(hud_index) |
||||
player_huds[name] = nil |
||||
end |
||||
|
||||
local look_dir = player:get_look_dir() |
||||
local player_pos = vector.copy(player:get_pos()) |
||||
local eye_offset = vector.divide(player:get_eye_offset(), 10) |
||||
local eye_height = player:get_properties().eye_height; |
||||
local eye_pos = player_pos + eye_offset + vector.new(0, eye_height, 0) |
||||
|
||||
local default_reach = minetest.registered_items[""].range or 4 |
||||
local wielded_reach = player:get_wielded_item():get_definition().reach |
||||
local reach = wielded_reach or default_reach |
||||
|
||||
local node = nil |
||||
local ray = minetest.raycast(eye_pos, eye_pos + look_dir * reach, false, false) |
||||
for pointed_thing in ray do node = pointed_thing end |
||||
|
||||
if node then |
||||
hud_index = player:hud_add({ |
||||
hud_elem_type = "image", |
||||
name = "rotation hint", |
||||
text = "nc_extended_rotating_hud_rotate_clockwise.png", |
||||
position = { x = 0.5, y = 0.5 }, |
||||
offset = { x = 0, y = 0 }, |
||||
alignment = { x = 0, y = 0 }, |
||||
scale = { x = 1, y = 1 }, |
||||
}) |
||||
player_huds[name] = hud_index |
||||
end |
||||
end |
||||
|
||||
minetest.register_globalstep(function(delta_time) |
||||
for _, player in ipairs(minetest.get_connected_players()) do |
||||
do_player_rotating_checks(player) |
||||
end |
||||
end) |
||||
|
||||
minetest.register_on_leaveplayer(function(player) |
||||
local name = player:get_player_name() |
||||
player_huds[name] = nil |
||||
end) |
After Width: | Height: | Size: 4.6 KiB |
After Width: | Height: | Size: 4.6 KiB |
Loading…
Reference in new issue