add waypoint_compass.make_compass function that makes compass w/meta

This commit is contained in:
whosit 2021-06-21 00:10:56 +03:00
parent a1a5c874df
commit 63bcd595ec

View File

@ -52,6 +52,8 @@ end
local function set_compass_meta_color(meta, color)
meta:set_int("waypoint_compass:color", color)
-- thanks to Boot@YL for suggesting this
meta:set_string("color", ("#%06X"):format(color))
end
@ -334,8 +336,6 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
color = math.max(math.min(color, 0xFFFFFF), 0x0) -- for some reason seems to work fine without this
set_compass_meta_color(meta, color)
-- print(dump(meta:to_table()))
-- thanks to Boot@YL for suggesting this
meta:set_string("color", ("#%06X"):format(color))
end
local coords = coords_from_string(fields.coords)
@ -435,3 +435,33 @@ end
minetest.register_on_craft(waypoint_compass_copy_meta)
minetest.register_craft_predict(waypoint_compass_copy_meta)
-- pos is {x=0,y=0,z=0}
-- owner_name is str
-- label is str
-- color is int in range [0,0xFFFFFF]
local error_val = nil --ItemStack('apple') -- used this for testing with //lua
local function make_compass(pos, owner_name, label, color)
local itemstack = ItemStack("waypoint_compass:compass")
local meta = itemstack:get_meta()
if not (pos or {}).x or
(type(owner_name) ~= 'string') or
(type(label) ~= 'string') then
return error_val
end
if not color or type(color) ~= 'number' or color < 0 or color > 0xFFFFFF then
return error_val
end
set_compass_meta_pos(meta, pos)
set_compass_meta_owner(meta, owner_name)
set_compass_meta_label(meta, label)
set_compass_meta_color(meta, color)
return itemstack
end
waypoint_compass = {
make_compass = make_compass,
}
return waypoint_compass