From ea36ed50d886677c79ec7ddf056c9815f040835e Mon Sep 17 00:00:00 2001 From: Pierre-Yves Rollo Date: Thu, 18 Jan 2018 21:46:10 +0100 Subject: Added display_lib.entity_spacing variable to centralize entity spacing. --- signs/common.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'signs/common.lua') diff --git a/signs/common.lua b/signs/common.lua index 49c6dd4..b49716e 100644 --- a/signs/common.lua +++ b/signs/common.lua @@ -158,7 +158,7 @@ function signs.register_sign(mod, name, model) display_entities = { ["signs:display_text"] = { on_display_update = font_lib.on_display_update, - depth = 0.499 - model.depth, + depth = 0.5 - display_lib.entity_spacing - model.depth, size = { x = model.width, y = model.height }, resolution = { x = 64, y = 64 }, maxlines = 1, -- cgit v1.2.3 From 1c1be8a7c13cb664551503b88516c75b189aed87 Mon Sep 17 00:00:00 2001 From: Thomas--S Date: Sat, 27 Jan 2018 17:40:42 +0100 Subject: Update the entities as soon as mapblock is loaded Useful e.g. after /clearobjects Introduces the group `display_lib_node` --- signs/common.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'signs/common.lua') diff --git a/signs/common.lua b/signs/common.lua index b49716e..8e899ef 100644 --- a/signs/common.lua +++ b/signs/common.lua @@ -153,7 +153,7 @@ function signs.register_sign(mod, name, model) fixed = {-model.width/2, -model.height/2, 0.5, model.width/2, model.height/2, 0.5 - model.depth}, }, - groups = {choppy=2, dig_immediate=2, not_blocking_trains = 1}, + groups = {choppy=2, dig_immediate=2, not_blocking_trains = 1, display_lib_node = 1}, sounds = default.node_sound_defaults(), display_entities = { ["signs:display_text"] = { -- cgit v1.2.3 From 3483f34fa9ac7c537f2ccf1d52b52f147e736659 Mon Sep 17 00:00:00 2001 From: Thomas--S Date: Wed, 31 Jan 2018 21:13:03 +0100 Subject: Use default formspec style --- signs/common.lua | 2 ++ 1 file changed, 2 insertions(+) (limited to 'signs/common.lua') diff --git a/signs/common.lua b/signs/common.lua index 8e899ef..3665ab5 100644 --- a/signs/common.lua +++ b/signs/common.lua @@ -37,6 +37,7 @@ function signs.set_formspec(pos) if maxlines == 1 then formspec = "size[6,3]".. + default.gui_bg .. default.gui_bg_img .. default.gui_slots .. "field[0.5,0.7;5.5,1;display_text;"..F("Text")..";${display_text}]".. "button_exit[2,2;2,1;ok;"..F("Write").."]" else @@ -46,6 +47,7 @@ function signs.set_formspec(pos) end formspec = "size[6,4]".. + default.gui_bg .. default.gui_bg_img .. default.gui_slots .. "textarea[0.5,0.7;5.5,2;display_text;"..F("Text")..""..extralabel..";${display_text}]".. "button_exit[2,3;2,1;ok;"..F("Write").."]" end -- cgit v1.2.3 From f3970f641eb60bf92492b6715084273cc1bceb74 Mon Sep 17 00:00:00 2001 From: Thomas--S Date: Thu, 1 Feb 2018 16:54:55 +0100 Subject: Seperate signs API from signs definitions Change modnames from *_lib to *_api --- signs/common.lua | 173 +++++++------------------------------------------------ 1 file changed, 22 insertions(+), 151 deletions(-) (limited to 'signs/common.lua') diff --git a/signs/common.lua b/signs/common.lua index 3665ab5..2b40db2 100644 --- a/signs/common.lua +++ b/signs/common.lua @@ -21,113 +21,40 @@ local S = signs.intllib local F = function(...) return minetest.formspec_escape(S(...)) end -function signs.set_display_text(pos,text) - local meta = minetest.get_meta(pos) - meta:set_string("display_text", text) - meta:set_string("infotext", "\""..text.."\"") - display_lib.update_entities(pos) -end -function signs.set_formspec(pos) - local meta = minetest.get_meta(pos) - local ndef = minetest.registered_nodes[minetest.get_node(pos).name] - if ndef and ndef.display_entities and ndef.display_entities["signs:display_text"] then - local maxlines = ndef.display_entities["signs:display_text"].maxlines - local formspec - - if maxlines == 1 then - formspec = "size[6,3]".. - default.gui_bg .. default.gui_bg_img .. default.gui_slots .. - "field[0.5,0.7;5.5,1;display_text;"..F("Text")..";${display_text}]".. - "button_exit[2,2;2,1;ok;"..F("Write").."]" - else - local extralabel = "" - if maxlines then - extralabel = F(" (first %s lines only)"):format(maxlines) - end - - formspec = "size[6,4]".. - default.gui_bg .. default.gui_bg_img .. default.gui_slots .. - "textarea[0.5,0.7;5.5,2;display_text;"..F("Text")..""..extralabel..";${display_text}]".. - "button_exit[2,3;2,1;ok;"..F("Write").."]" - end +--Backwards compatibility functions - meta:set_string("formspec", formspec) - end +signs.set_display_text = function(...) + minetest.log("warning", "signs.set_display_text() is deprecated, please use signs_api.set_display_text() instead.") + return signs_api.set_display_text(...) end -function signs.on_receive_fields(pos, formname, fields, player) - if not minetest.is_protected(pos, player:get_player_name()) then - if fields and (fields.ok or fields.key_enter) then - signs.set_display_text(pos, fields.display_text) - end - end +signs.set_formspec = function(...) + minetest.log("warning", "signs.set_formspec() is deprecated, please use signs_api.set_formspec() instead.") + return signs_api.set_formspec(...) end --- On place callback for direction signs --- (chooses which sign according to look direction) -function signs.on_place_direction(itemstack, placer, pointed_thing) - local name = itemstack:get_name() - local ndef = minetest.registered_nodes[name] - - local bdir = {x = pointed_thing.under.x - pointed_thing.above.x, - y = pointed_thing.under.y - pointed_thing.above.y, - z = pointed_thing.under.z - pointed_thing.above.z} - local pdir = placer:get_look_dir() - - local ndir, test - - if ndef.paramtype2 == "facedir" then - if bdir.x == 0 and bdir.z == 0 then - -- Ceiling or floor pointed (facedir chosen from player dir) - ndir = minetest.dir_to_facedir({x=pdir.x, y=0, z=pdir.z}) - else - -- Wall pointed - ndir = minetest.dir_to_facedir(bdir) - end - - test = {[0]=-pdir.x, pdir.z, pdir.x, -pdir.z} - end - - if ndef.paramtype2 == "wallmounted" then - ndir = minetest.dir_to_wallmounted(bdir) - if ndir == 0 or ndir == 1 then - -- Ceiling or floor - ndir = minetest.dir_to_wallmounted({x=pdir.x, y=0, z=pdir.z}) - end - - test = {0, pdir.z, -pdir.z, -pdir.x, pdir.x} - end +signs.on_receive_fields = function(...) + minetest.log("warning", "signs.on_receive_fields() is deprecated, please use signs_api.on_receive_fields() instead.") + return signs_api.on_receive_fields(...) +end - -- Only for direction signs - if ndef.signs_other_dir then - if test[ndir] > 0 then - itemstack:set_name(ndef.signs_other_dir) - end - itemstack = minetest.item_place(itemstack, placer, pointed_thing, ndir) - itemstack:set_name(name) +signs.on_place_direction = function(...) + minetest.log("warning", "signs.on_place_direction() is deprecated, please use signs_api.on_place_direction() instead.") + return signs_api.on_place_direction(...) +end - return itemstack - else - return minetest.item_place(itemstack, placer, pointed_thing, ndir) - end +signs.on_rotate = function(...) + minetest.log("warning", "signs.on_rotate() is deprecated, please use signs_api.on_rotate() instead.") + return signs_api.on_rotate(...) end --- Handles screwdriver rotation. Direction is affected for direction signs -function signs.on_rotate(pos, node, player, mode, new_param2) - if mode == 2 then - local ndef = minetest.registered_nodes[node.name] - if ndef.signs_other_dir then - minetest.swap_node(pos, {name = ndef.signs_other_dir, - param1 = node.param1, param2 = node.param2}) - display_lib.update_entities(pos) - end - else - display_lib.on_rotate(pos, node, user, mode, new_param2) - end - return false; +signs.register_sign = function(...) + minetest.log("warning", "signs.register_sign() is deprecated, please use signs_api.register_sign() instead.") + return signs_api.register_sign(...) end + -- Generic callback for show_formspec displayed formspecs of "sign" mod minetest.register_on_player_receive_fields(function(player, formname, fields) @@ -142,59 +69,3 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) end end end) - -function signs.register_sign(mod, name, model) - -- Default fields - local fields = { - sunlight_propagates = true, - paramtype = "light", - paramtype2 = "facedir", - drawtype = "nodebox", - node_box = { - type = "fixed", - fixed = {-model.width/2, -model.height/2, 0.5, - model.width/2, model.height/2, 0.5 - model.depth}, - }, - groups = {choppy=2, dig_immediate=2, not_blocking_trains = 1, display_lib_node = 1}, - sounds = default.node_sound_defaults(), - display_entities = { - ["signs:display_text"] = { - on_display_update = font_lib.on_display_update, - depth = 0.5 - display_lib.entity_spacing - model.depth, - size = { x = model.width, y = model.height }, - resolution = { x = 64, y = 64 }, - maxlines = 1, - }, - - }, - on_place = display_lib.on_place, - on_construct = function(pos) - signs.set_formspec(pos) - display_lib.on_construct(pos) - end, - on_destruct = display_lib.on_destruct, - on_rotate = signs.on_rotate, - on_receive_fields = signs.on_receive_fields, - on_punch = function(pos, node, player, pointed_thing) display_lib.update_entities(pos) end, - } - - -- Node fields override - for key, value in pairs(model.node_fields) do - if key == "groups" then - for key2, value2 in pairs(value) do - fields[key][key2] = value2 - end - else - fields[key] = value - end - end - - if not fields.wield_image then fields.wield_image = fields.inventory_image end - - -- Entity fields override - for key, value in pairs(model.entity_fields) do - fields.display_entities["signs:display_text"][key] = value - end - - minetest.register_node(mod..":"..name, fields) -end -- cgit v1.2.3 From 4eb72f0c3f3bdbd7cd6f2320f508d4376b6ce3b5 Mon Sep 17 00:00:00 2001 From: Pierre-Yves Rollo Date: Sun, 18 Nov 2018 15:31:53 +0100 Subject: Moved compatibility functions to compatibility.lua --- signs/common.lua | 34 ---------------------------------- 1 file changed, 34 deletions(-) (limited to 'signs/common.lua') diff --git a/signs/common.lua b/signs/common.lua index 2b40db2..733a44c 100644 --- a/signs/common.lua +++ b/signs/common.lua @@ -21,40 +21,6 @@ local S = signs.intllib local F = function(...) return minetest.formspec_escape(S(...)) end - ---Backwards compatibility functions - -signs.set_display_text = function(...) - minetest.log("warning", "signs.set_display_text() is deprecated, please use signs_api.set_display_text() instead.") - return signs_api.set_display_text(...) -end - -signs.set_formspec = function(...) - minetest.log("warning", "signs.set_formspec() is deprecated, please use signs_api.set_formspec() instead.") - return signs_api.set_formspec(...) -end - -signs.on_receive_fields = function(...) - minetest.log("warning", "signs.on_receive_fields() is deprecated, please use signs_api.on_receive_fields() instead.") - return signs_api.on_receive_fields(...) -end - -signs.on_place_direction = function(...) - minetest.log("warning", "signs.on_place_direction() is deprecated, please use signs_api.on_place_direction() instead.") - return signs_api.on_place_direction(...) -end - -signs.on_rotate = function(...) - minetest.log("warning", "signs.on_rotate() is deprecated, please use signs_api.on_rotate() instead.") - return signs_api.on_rotate(...) -end - -signs.register_sign = function(...) - minetest.log("warning", "signs.register_sign() is deprecated, please use signs_api.register_sign() instead.") - return signs_api.register_sign(...) -end - - -- Generic callback for show_formspec displayed formspecs of "sign" mod minetest.register_on_player_receive_fields(function(player, formname, fields) -- cgit v1.2.3