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 --- display_api/API.md | 91 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 display_api/API.md (limited to 'display_api/API.md') diff --git a/display_api/API.md b/display_api/API.md new file mode 100644 index 0000000..b133c8a --- /dev/null +++ b/display_api/API.md @@ -0,0 +1,91 @@ +# Display Lib API +This document describes Display Lib API. Display Lib allows to add a dynamic display on a node. Display Lib limits node rotations. For wallmounted, only vertical positionning is available, and for facedir, only first four position are availabel (those with default axis). + +## Provided methods +### update\_entities +**display\_lib.update\_entities(pos)** + +This method triggers entities update for the display node at pos. Actual entity update is made by `on_display_update` callback associated to the entity. + +`pos`: Position of the node +### register\_display\_entity +**display\_lib.register\_display\_entity(entity_name)** + +This is a helper to register entities used for display. + +`entity_name`: Name of the entity to register. +## Provided callback implementations +### on_place +**display\_lib.on\_place(itemstack, placer, pointed\_thing)** + +`on_place` node callback implementation. Display nodes should have this callback (avoid placement of horizontal display node). +### on_construct +**display\_lib.on\_construct(pos)** + +`on_construct` node callback implementation. Display nodes should have this callback (creates, places and updates display entities on node construction). +### on_destruct +**display\_lib.on_destruct(pos)** + +`on_destruct` node callback implementation. Display nodes should have this callback (removes display entities on node destruction). +### on_rotate +**display\_lib.on\_rotate(pos, node, user, mode, new_param2)** + +`on_rotate` node callback implementation. Display nodes should have this callback (restricts rotations and rotates display entities associated with node). +### on_activate +**display\_lib.on_activate(entity, staticdata)** + +`On_activate` entity callback implementation for display entities. No need of this method if display entities have been registered using `register_display_entity` (callback is already set). + +## Howto register a display node +* Register display entities with `register_display_entity` + +* Register node with : + - `on_place`, `on_construct`, `on_destruct` and `on_rotate` callbacks using display_api callbacks. +  + - `display_modpack_node` group. This will make this node have their entities updated as soon as the mapblock is loaded (Useful after /clearobjects). +  + - a `display_entities` field in node definition containing a entity name indexed table. See below for description of each display_entities fields. + +### Display_entities fields +`on_display_update` is a callback in charge of setting up entity texture. If not set, entity will have no texture and will be displayed as unknown item. + +`depth`, `right` and `heigh` : Entity position regarding to node facedir/wallmounted main axis. Values for these fields can be any number between -0.5 and 0.5 (default value is 0). Position 0,0,0 is the center of the node. `depth` goes from front (-0.5) to rear (0.5), `height` goes from bottom (-0.5) to top (0.5) and `right` goes from left (-0.5) to right (0.5). + +In order to avoid flickering text, it's better to have text a little behind node surface. A good spacing value is given by `display_api.entity_spacing` variable. + +### Example + + display_api.register_display_entity("mymod:entity1") + display_api.register_display_entity("mymod:entity2") + + function my_display_update1(pos, objref) + objref:set_properties({ textures= {"mytexture1.png"}, + visual_size = {x=1, y=1} }) + end + + function my_display_update2(pos, objref) + objref:set_properties({ textures= {"mytexture2.png"}, +                         visual_size = {x=1, y=1} }) + end + + minetest.register_node("mymod:test_display_node", { + ... + paramtype2 = "facedir", + ... + groups = { display_modpack_node = 1, ... }, + ... + display_entities = { + ["mymod:entity1"] = { + depth = 0.3, + on_display_update = my_display_update1 }, + ["mymod:entity1"] = { + depth = 0.2, height = 0.1, + on_display_update = my_display_update2 }, + }, + ... + on_place = display_api.on_place, + on_construct = display_api.on_construct, + on_destruct = display_api.on_destruct, + on_rotate = display_api.on_rotate, + ... + }) -- cgit v1.2.3 From ec48743fb9a51b9e88914ad231af6b99fa0cd2ec Mon Sep 17 00:00:00 2001 From: Thomas--S Date: Thu, 15 Feb 2018 17:26:59 +0100 Subject: Allow a greater object offset This allows e.g. polemounted signs. Required for display_modpack to be usable in the streets mod. Backwards compatible. --- display_api/API.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'display_api/API.md') diff --git a/display_api/API.md b/display_api/API.md index b133c8a..0d52e29 100644 --- a/display_api/API.md +++ b/display_api/API.md @@ -49,7 +49,10 @@ This is a helper to register entities used for display. ### Display_entities fields `on_display_update` is a callback in charge of setting up entity texture. If not set, entity will have no texture and will be displayed as unknown item. -`depth`, `right` and `heigh` : Entity position regarding to node facedir/wallmounted main axis. Values for these fields can be any number between -0.5 and 0.5 (default value is 0). Position 0,0,0 is the center of the node. `depth` goes from front (-0.5) to rear (0.5), `height` goes from bottom (-0.5) to top (0.5) and `right` goes from left (-0.5) to right (0.5). +`depth`, `right` and `height` : Entity position regarding to node facedir/wallmounted main axis. +Values for these fields can be any number between -1.5 and 1.5 (default value is 0). +Position 0,0,0 is the center of the node. +`depth` goes from front (-0.5) to rear (0.5), `height` goes from bottom (-0.5) to top (0.5) and `right` goes from left (-0.5) to right (0.5). In order to avoid flickering text, it's better to have text a little behind node surface. A good spacing value is given by `display_api.entity_spacing` variable. -- cgit v1.2.3 From 12b556e92907e934a029297b6c6cc8db0bed2c70 Mon Sep 17 00:00:00 2001 From: Pierre-Yves Rollo Date: Fri, 21 Sep 2018 19:37:38 +0200 Subject: Turned display_api into a submodule --- display_api | 1 + display_api/API.md | 94 ------------------------------------------------------ 2 files changed, 1 insertion(+), 94 deletions(-) create mode 160000 display_api delete mode 100644 display_api/API.md (limited to 'display_api/API.md') diff --git a/display_api b/display_api new file mode 160000 index 0000000..246b7f9 --- /dev/null +++ b/display_api @@ -0,0 +1 @@ +Subproject commit 246b7f958863e7f6b7f604b09361696226928a7b diff --git a/display_api/API.md b/display_api/API.md deleted file mode 100644 index 0d52e29..0000000 --- a/display_api/API.md +++ /dev/null @@ -1,94 +0,0 @@ -# Display Lib API -This document describes Display Lib API. Display Lib allows to add a dynamic display on a node. Display Lib limits node rotations. For wallmounted, only vertical positionning is available, and for facedir, only first four position are availabel (those with default axis). - -## Provided methods -### update\_entities -**display\_lib.update\_entities(pos)** - -This method triggers entities update for the display node at pos. Actual entity update is made by `on_display_update` callback associated to the entity. - -`pos`: Position of the node -### register\_display\_entity -**display\_lib.register\_display\_entity(entity_name)** - -This is a helper to register entities used for display. - -`entity_name`: Name of the entity to register. -## Provided callback implementations -### on_place -**display\_lib.on\_place(itemstack, placer, pointed\_thing)** - -`on_place` node callback implementation. Display nodes should have this callback (avoid placement of horizontal display node). -### on_construct -**display\_lib.on\_construct(pos)** - -`on_construct` node callback implementation. Display nodes should have this callback (creates, places and updates display entities on node construction). -### on_destruct -**display\_lib.on_destruct(pos)** - -`on_destruct` node callback implementation. Display nodes should have this callback (removes display entities on node destruction). -### on_rotate -**display\_lib.on\_rotate(pos, node, user, mode, new_param2)** - -`on_rotate` node callback implementation. Display nodes should have this callback (restricts rotations and rotates display entities associated with node). -### on_activate -**display\_lib.on_activate(entity, staticdata)** - -`On_activate` entity callback implementation for display entities. No need of this method if display entities have been registered using `register_display_entity` (callback is already set). - -## Howto register a display node -* Register display entities with `register_display_entity` - -* Register node with : - - `on_place`, `on_construct`, `on_destruct` and `on_rotate` callbacks using display_api callbacks. -  - - `display_modpack_node` group. This will make this node have their entities updated as soon as the mapblock is loaded (Useful after /clearobjects). -  - - a `display_entities` field in node definition containing a entity name indexed table. See below for description of each display_entities fields. - -### Display_entities fields -`on_display_update` is a callback in charge of setting up entity texture. If not set, entity will have no texture and will be displayed as unknown item. - -`depth`, `right` and `height` : Entity position regarding to node facedir/wallmounted main axis. -Values for these fields can be any number between -1.5 and 1.5 (default value is 0). -Position 0,0,0 is the center of the node. -`depth` goes from front (-0.5) to rear (0.5), `height` goes from bottom (-0.5) to top (0.5) and `right` goes from left (-0.5) to right (0.5). - -In order to avoid flickering text, it's better to have text a little behind node surface. A good spacing value is given by `display_api.entity_spacing` variable. - -### Example - - display_api.register_display_entity("mymod:entity1") - display_api.register_display_entity("mymod:entity2") - - function my_display_update1(pos, objref) - objref:set_properties({ textures= {"mytexture1.png"}, - visual_size = {x=1, y=1} }) - end - - function my_display_update2(pos, objref) - objref:set_properties({ textures= {"mytexture2.png"}, -                         visual_size = {x=1, y=1} }) - end - - minetest.register_node("mymod:test_display_node", { - ... - paramtype2 = "facedir", - ... - groups = { display_modpack_node = 1, ... }, - ... - display_entities = { - ["mymod:entity1"] = { - depth = 0.3, - on_display_update = my_display_update1 }, - ["mymod:entity1"] = { - depth = 0.2, height = 0.1, - on_display_update = my_display_update2 }, - }, - ... - on_place = display_api.on_place, - on_construct = display_api.on_construct, - on_destruct = display_api.on_destruct, - on_rotate = display_api.on_rotate, - ... - }) -- cgit v1.2.3 From d22362a4acfffa2853974a0682b953a8f867e4e4 Mon Sep 17 00:00:00 2001 From: Pierre-Yves Rollo Date: Fri, 21 Sep 2018 21:19:48 +0200 Subject: Reverting submodule change until zip file does not include submodule --- display_api | 1 - display_api/API.md | 94 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 94 insertions(+), 1 deletion(-) delete mode 160000 display_api create mode 100644 display_api/API.md (limited to 'display_api/API.md') diff --git a/display_api b/display_api deleted file mode 160000 index 246b7f9..0000000 --- a/display_api +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 246b7f958863e7f6b7f604b09361696226928a7b diff --git a/display_api/API.md b/display_api/API.md new file mode 100644 index 0000000..0d52e29 --- /dev/null +++ b/display_api/API.md @@ -0,0 +1,94 @@ +# Display Lib API +This document describes Display Lib API. Display Lib allows to add a dynamic display on a node. Display Lib limits node rotations. For wallmounted, only vertical positionning is available, and for facedir, only first four position are availabel (those with default axis). + +## Provided methods +### update\_entities +**display\_lib.update\_entities(pos)** + +This method triggers entities update for the display node at pos. Actual entity update is made by `on_display_update` callback associated to the entity. + +`pos`: Position of the node +### register\_display\_entity +**display\_lib.register\_display\_entity(entity_name)** + +This is a helper to register entities used for display. + +`entity_name`: Name of the entity to register. +## Provided callback implementations +### on_place +**display\_lib.on\_place(itemstack, placer, pointed\_thing)** + +`on_place` node callback implementation. Display nodes should have this callback (avoid placement of horizontal display node). +### on_construct +**display\_lib.on\_construct(pos)** + +`on_construct` node callback implementation. Display nodes should have this callback (creates, places and updates display entities on node construction). +### on_destruct +**display\_lib.on_destruct(pos)** + +`on_destruct` node callback implementation. Display nodes should have this callback (removes display entities on node destruction). +### on_rotate +**display\_lib.on\_rotate(pos, node, user, mode, new_param2)** + +`on_rotate` node callback implementation. Display nodes should have this callback (restricts rotations and rotates display entities associated with node). +### on_activate +**display\_lib.on_activate(entity, staticdata)** + +`On_activate` entity callback implementation for display entities. No need of this method if display entities have been registered using `register_display_entity` (callback is already set). + +## Howto register a display node +* Register display entities with `register_display_entity` + +* Register node with : + - `on_place`, `on_construct`, `on_destruct` and `on_rotate` callbacks using display_api callbacks. +  + - `display_modpack_node` group. This will make this node have their entities updated as soon as the mapblock is loaded (Useful after /clearobjects). +  + - a `display_entities` field in node definition containing a entity name indexed table. See below for description of each display_entities fields. + +### Display_entities fields +`on_display_update` is a callback in charge of setting up entity texture. If not set, entity will have no texture and will be displayed as unknown item. + +`depth`, `right` and `height` : Entity position regarding to node facedir/wallmounted main axis. +Values for these fields can be any number between -1.5 and 1.5 (default value is 0). +Position 0,0,0 is the center of the node. +`depth` goes from front (-0.5) to rear (0.5), `height` goes from bottom (-0.5) to top (0.5) and `right` goes from left (-0.5) to right (0.5). + +In order to avoid flickering text, it's better to have text a little behind node surface. A good spacing value is given by `display_api.entity_spacing` variable. + +### Example + + display_api.register_display_entity("mymod:entity1") + display_api.register_display_entity("mymod:entity2") + + function my_display_update1(pos, objref) + objref:set_properties({ textures= {"mytexture1.png"}, + visual_size = {x=1, y=1} }) + end + + function my_display_update2(pos, objref) + objref:set_properties({ textures= {"mytexture2.png"}, +                         visual_size = {x=1, y=1} }) + end + + minetest.register_node("mymod:test_display_node", { + ... + paramtype2 = "facedir", + ... + groups = { display_modpack_node = 1, ... }, + ... + display_entities = { + ["mymod:entity1"] = { + depth = 0.3, + on_display_update = my_display_update1 }, + ["mymod:entity1"] = { + depth = 0.2, height = 0.1, + on_display_update = my_display_update2 }, + }, + ... + on_place = display_api.on_place, + on_construct = display_api.on_construct, + on_destruct = display_api.on_destruct, + on_rotate = display_api.on_rotate, + ... + }) -- cgit v1.2.3