add waypoint_compass.make_compass function that makes compass w/meta
This commit is contained in:
parent
a1a5c874df
commit
63bcd595ec
34
init.lua
34
init.lua
@ -52,6 +52,8 @@ end
|
|||||||
|
|
||||||
local function set_compass_meta_color(meta, color)
|
local function set_compass_meta_color(meta, color)
|
||||||
meta:set_int("waypoint_compass:color", color)
|
meta:set_int("waypoint_compass:color", color)
|
||||||
|
-- thanks to Boot@YL for suggesting this
|
||||||
|
meta:set_string("color", ("#%06X"):format(color))
|
||||||
end
|
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
|
color = math.max(math.min(color, 0xFFFFFF), 0x0) -- for some reason seems to work fine without this
|
||||||
set_compass_meta_color(meta, color)
|
set_compass_meta_color(meta, color)
|
||||||
-- print(dump(meta:to_table()))
|
-- print(dump(meta:to_table()))
|
||||||
-- thanks to Boot@YL for suggesting this
|
|
||||||
meta:set_string("color", ("#%06X"):format(color))
|
|
||||||
end
|
end
|
||||||
|
|
||||||
local coords = coords_from_string(fields.coords)
|
local coords = coords_from_string(fields.coords)
|
||||||
@ -435,3 +435,33 @@ end
|
|||||||
minetest.register_on_craft(waypoint_compass_copy_meta)
|
minetest.register_on_craft(waypoint_compass_copy_meta)
|
||||||
|
|
||||||
minetest.register_craft_predict(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
|
||||||
|
Loading…
Reference in New Issue
Block a user