]> git.lizzy.rs Git - signs_lib.git/commitdiff
Add necessary bits to allow signs to be placed onto horizontal poles
authorVanessa Dannenberg <vanessa.e.dannenberg@gmail.com>
Sat, 21 Sep 2019 19:45:48 +0000 (15:45 -0400)
committerVanessa Dannenberg <vanessa.e.dannenberg@gmail.com>
Sat, 21 Sep 2019 19:45:48 +0000 (15:45 -0400)
(both wooden and steel signs)

only streets mod's "bigpole" supported for now.

Model changes:

To make a sign support horizontal mounting, make a single "_onpole"
model, with two copies of the pole mount, one rotated by 90°.  Make sure
the second copy appears has its own material entry, and that it is last
in the materials list in the exported .obj (`grep "g " file.obj` to
check).

When registered, signs_lib will set the "_onpole" and "_onpole_horiz"
tiles{} to reveal one mount or the other: entry 3 will expose the
vertical mount, entry 4 is the horizontal copy, with the opposite entry
being set to the "blank" image.

api.lua
models/signs_lib_standard_wall_sign_facedir_onpole.obj
models/signs_lib_standard_wall_sign_onpole.obj
standard_signs.lua
textures/signs_lib_blank.png [new file with mode: 0644]

diff --git a/api.lua b/api.lua
index 788cb2ec622f86fe4b210e16428157cf26d1630a..e3238626585da097b041818a49147522e0384c4c 100644 (file)
--- a/api.lua
+++ b/api.lua
@@ -63,6 +63,20 @@ signs_lib.wall_fdir_to_back = {
        {  1,  0 },
 }
 
+signs_lib.fdir_flip_to_back = {
+       [0] = {  0,  2 },
+       [1] = {  2,  0 },
+       [2] = {  0, -2 },
+       [3] = { -2,  0 }
+}
+
+signs_lib.wall_fdir_flip_to_back = {
+       [2] = {  2,  0 },
+       [3] = { -2,  0 },
+       [4] = {  0,  2 },
+       [5] = {  0, -2 },
+}
+
 signs_lib.fdir_to_back_left = {
        [0] = { -1,  1 },
        [1] = {  1,  1 },
@@ -114,6 +128,25 @@ signs_lib.rotate_facedir_simple = {
        [5] = 0
 }
 
+signs_lib.flip_facedir = {
+       [0] = 2,
+       [1] = 3,
+       [2] = 0,
+       [3] = 1,
+       [4] = 6,
+       [5] = 4,
+       [6] = 4
+}
+
+signs_lib.flip_walldir = {
+       [0] = 1,
+       [1] = 0,
+       [2] = 3,
+       [3] = 2,
+       [4] = 5,
+       [5] = 4
+}
+
 -- Initialize character texture cache
 local ctexcache = {}
 
@@ -205,30 +238,44 @@ function signs_lib.handle_rotation(pos, node, user, mode)
        local def = minetest.registered_items[node.name]
 
        if string.match(node.name, "_onpole") then
-               local newparam2 = signs_lib.rotate_walldir_simple[node.param2] or 4
-               local t = signs_lib.wall_fdir_to_back_left
+               if not string.match(node.name, "_horiz") then
+                       newparam2 = signs_lib.rotate_walldir_simple[node.param2] or 4
+                       local t = signs_lib.wall_fdir_to_back_left
 
-               if def.paramtype2 ~= "wallmounted" then
-                       newparam2 = signs_lib.rotate_facedir_simple[node.param2] or 0
-                       t  = signs_lib.fdir_to_back_left
-               end
+                       if def.paramtype2 ~= "wallmounted" then
+                               newparam2 = signs_lib.rotate_facedir_simple[node.param2] or 0
+                               t  = signs_lib.fdir_to_back_left
+                       end
 
-               tpos = {
-                       x = pos.x + t[node.param2][1],
-                       y = pos.y,
-                       z = pos.z + t[node.param2][2]
-               }
+                       tpos = {
+                               x = pos.x + t[node.param2][1],
+                               y = pos.y,
+                               z = pos.z + t[node.param2][2]
+                       }
+               else
+                       -- flip the sign to the other side of the horizontal pole
+                       newparam2 = signs_lib.flip_walldir[node.param2] or 4
+                       local t = signs_lib.wall_fdir_flip_to_back
 
+                       if def.paramtype2 ~= "wallmounted" then
+                               newparam2 = signs_lib.flip_facedir[node.param2] or 0
+                               t  = signs_lib.fdir_flip_to_back
+                       end
+
+                       tpos = {
+                               x = pos.x + t[node.param2][1],
+                               y = pos.y,
+                               z = pos.z + t[node.param2][2]
+                       }
+               end
                local node2 = minetest.get_node(tpos)
                local def2 = minetest.registered_items[node2.name]
                if not def2 or not def2.buildable_to then return true end -- undefined, or not buildable_to.
 
-
                minetest.set_node(tpos, {name = node.name, param2 = newparam2})
                minetest.get_meta(tpos):from_table(minetest.get_meta(pos):to_table())
                minetest.remove_node(pos)
                signs_lib.delete_objects(pos)
-
        elseif string.match(node.name, "_hanging") or string.match(node.name, "yard") then
                minetest.swap_node(tpos, { name = node.name, param2 = signs_lib.rotate_facedir_simple[node.param2] or 0 })
        elseif minetest.registered_items[node.name].paramtype2 == "wallmounted" then
@@ -551,7 +598,11 @@ end
 local function make_widefont_nodename(name)
        if string.find(name, "_widefont") then return name end
        if string.find(name, "_onpole")  then
-               return string.gsub(name, "_onpole", "_widefont_onpole")
+               if string.find(name, "_horiz") then
+                       return string.gsub(name, "_onpole_horiz", "_widefont_onpole_horiz")
+               else
+                       return string.gsub(name, "_onpole", "_widefont_onpole")
+               end
        elseif string.find(name, "_hanging") then
                return string.gsub(name, "_hanging", "_widefont_hanging")
        else
@@ -701,20 +752,38 @@ function signs_lib.check_for_pole(pos, pointed_thing)
        local pdef = minetest.registered_items[pnode.name]
 
        if (signs_lib.allowed_poles[pnode.name]
-                 or (pdef and pdef.drawtype == "fencelike")
-                 or string.find(pnode.name, "default:fence_")
-                 or string.find(pnode.name, "_post")
-                 or string.find(pnode.name, "fencepost")
-                 or string.find(pnode.name, "streets:streetlamp_basic_top")
-                 or (pnode.name == "streets:bigpole" and pnode.param2 < 4)
-                 or (pnode.name == "streets:bigpole" and pnode.param2 > 19 and pnode.param2 < 24)
-               )
-         and
-               (pos.x ~= ppos.x or pos.z ~= ppos.z) then
+         or (pdef and pdef.drawtype == "fencelike")
+         or string.find(pnode.name, "default:fence_")
+         or string.find(pnode.name, "_post")
+         or string.find(pnode.name, "fencepost")
+         or string.find(pnode.name, "streets:streetlamp_basic_top")
+         or (pnode.name == "streets:bigpole" and pnode.param2 < 4)
+         or (pnode.name == "streets:bigpole" and pnode.param2 > 19 and pnode.param2 < 24) )
+         and (pos.x ~= ppos.x or pos.z ~= ppos.z) then
                return true
        end
 end
 
+function signs_lib.check_for_horizontal_pole(pos, pointed_thing)
+       local node = minetest.get_node(pos)
+       local def = minetest.registered_items[node.name]
+       local ppos = minetest.get_pointed_thing_position(pointed_thing)
+       local pnode = minetest.get_node(ppos)
+       if pnode.name == "streets:bigpole" then
+               if def.paramtype2 == "wallmounted" then
+                       if   ((node.param2 == 2 or node.param2 == 3) and (pnode.param2 > 3 and pnode.param2 < 12)) -- E/W
+                         or ((node.param2 == 4 or node.param2 == 5) and (pnode.param2 > 11 and pnode.param2 < 20)) -- N/S
+                               then return true
+                       end
+               else
+                       if   ((node.param2 == 1 or node.param2 == 3) and (pnode.param2 > 3 and pnode.param2 < 12)) -- E/W
+                         or ((node.param2 == 0 or node.param2 == 2) and (pnode.param2 > 11 and pnode.param2 < 20)) -- N/S
+                               then return true
+                       end
+               end
+       end
+end
+
 function signs_lib.check_for_ceiling(pointed_thing)
        if pointed_thing.above.x == pointed_thing.under.x
          and pointed_thing.above.z == pointed_thing.under.z
@@ -738,7 +807,6 @@ function signs_lib.after_place_node(pos, placer, itemstack, pointed_thing, locke
        local ppos = minetest.get_pointed_thing_position(pointed_thing)
        local pnode = minetest.get_node(ppos)
        local pdef = minetest.registered_items[pnode.name]
-
        if (def.allow_onpole ~= false) and signs_lib.check_for_pole(pos, pointed_thing) then
                local newparam2
                local lookdir = minetest.yaw_to_dir(placer:get_look_horizontal())
@@ -749,6 +817,16 @@ function signs_lib.after_place_node(pos, placer, itemstack, pointed_thing, locke
                end
                local node = minetest.get_node(pos)
                minetest.swap_node(pos, {name = itemstack:get_name().."_onpole", param2 = newparam2})
+       elseif def.allow_onpole_horizontal and signs_lib.check_for_horizontal_pole(pos, pointed_thing) then
+               local newparam2
+               local lookdir = minetest.yaw_to_dir(placer:get_look_horizontal())
+               if def.paramtype2 == "wallmounted" then
+                       newparam2 = minetest.dir_to_wallmounted(lookdir)
+               else
+                       newparam2 = minetest.dir_to_facedir(lookdir)
+               end
+               local node = minetest.get_node(pos)
+               minetest.swap_node(pos, {name = itemstack:get_name().."_onpole_horiz", param2 = newparam2})
        elseif def.allow_hanging and signs_lib.check_for_ceiling(pointed_thing) then
                local newparam2 = minetest.dir_to_facedir(placer:get_look_dir())
                local node = minetest.get_node(pos)
@@ -832,9 +910,9 @@ local function register_sign(name, rdef)
        minetest.register_node(":"..name, def)
        table.insert(signs_lib.lbm_restore_nodes, name)
 
-       if rdef.allow_onpole ~= false then
+       local opdef = table.copy(def)
 
-               local opdef = table.copy(def)
+       if rdef.allow_onpole ~= false or rdef.allow_onpole_horizontal then
 
                local offset = 0.3125
                if opdef.uses_slim_pole_mount then
@@ -859,16 +937,32 @@ local function register_sign(name, rdef)
                end
 
                opdef.groups.not_in_creative_inventory = 1
-               opdef.tiles[3] = "signs_lib_pole_mount.png"
                opdef.mesh = string.gsub(opdef.mesh, ".obj$", "_onpole.obj")
 
                if opdef.entity_info then
                        opdef.entity_info.mesh = string.gsub(opdef.entity_info.mesh, ".obj$", "_onpole.obj")
                end
+       end
+
+       -- setting one of item 3 or 4 to a texture and leaving the other "blank",
+       -- reveals either the vertical or horizontal pole mount part of the model
+
+       if rdef.allow_onpole ~= false then
+               opdef.tiles[3] = "signs_lib_pole_mount.png"
+               opdef.tiles[4] = "signs_lib_blank.png"
                minetest.register_node(":"..name.."_onpole", opdef)
                table.insert(signs_lib.lbm_restore_nodes, name.."_onpole")
        end
 
+       local ophdef = table.copy(opdef)
+
+       if rdef.allow_onpole_horizontal then
+               ophdef.tiles[3] = "signs_lib_blank.png"
+               ophdef.tiles[4] = "signs_lib_pole_mount.png"
+               minetest.register_node(":"..name.."_onpole_horiz", ophdef)
+               table.insert(signs_lib.lbm_restore_nodes, name.."_onpole_horiz")
+       end
+
        if rdef.allow_hanging then
 
                local hdef = table.copy(def)
index f3d9d477ebaf320733ed18c39a1d395e6c210ca0..23d54a7dacf54a70a7ec592a19dcf9c954218c6e 100644 (file)
@@ -73,6 +73,62 @@ v -0.164063 0.125000 1.125000
 v 0.164062 0.125000 1.125000
 v -0.164063 0.187500 1.125000
 v 0.164062 0.187500 1.125000
+v 0.187500 -0.125000 0.812500
+v 0.187500 -0.125000 0.875000
+v -0.187500 -0.125000 0.812500
+v -0.187500 -0.125000 0.875000
+v -0.187500 0.125000 0.812500
+v 0.187500 0.125000 0.812500
+v 0.187500 0.125000 0.875000
+v -0.187500 0.125000 0.875000
+v 0.187500 -0.125000 1.125000
+v 0.187500 -0.125000 0.812500
+v 0.125000 -0.125000 1.125000
+v 0.125000 -0.125000 0.812500
+v 0.187500 -0.164063 1.125000
+v 0.187500 -0.164063 0.812500
+v 0.125000 -0.164063 1.125000
+v 0.125000 -0.164063 0.812500
+v -0.125000 -0.125000 1.125000
+v -0.125000 -0.125000 0.812500
+v -0.187500 -0.125000 1.125000
+v -0.187500 -0.125000 0.812500
+v -0.125000 -0.164063 1.125000
+v -0.125000 -0.164063 0.812500
+v -0.187500 -0.164063 1.125000
+v -0.187500 -0.164063 0.812500
+v 0.187500 0.164062 1.125000
+v 0.187500 0.164062 0.812500
+v 0.125000 0.164062 1.125000
+v 0.125000 0.164062 0.812500
+v 0.187500 0.125000 1.125000
+v 0.187500 0.125000 0.812500
+v 0.125000 0.125000 1.125000
+v 0.125000 0.125000 0.812500
+v -0.125000 0.164062 1.125000
+v -0.125000 0.164062 0.812500
+v -0.187500 0.164062 1.125000
+v -0.187500 0.164062 0.812500
+v -0.125000 0.125000 1.125000
+v -0.125000 0.125000 0.812500
+v -0.187500 0.125000 1.125000
+v -0.187500 0.125000 0.812500
+v 0.187500 -0.164063 1.164063
+v 0.187500 0.164062 1.164063
+v 0.125000 -0.164063 1.164063
+v 0.125000 0.164062 1.164063
+v 0.187500 -0.164063 1.125000
+v 0.187500 0.164062 1.125000
+v 0.125000 -0.164063 1.125000
+v 0.125000 0.164062 1.125000
+v -0.125000 -0.164063 1.164063
+v -0.125000 0.164062 1.164063
+v -0.187500 -0.164063 1.164063
+v -0.187500 0.164062 1.164063
+v -0.125000 -0.164063 1.125000
+v -0.125000 0.164062 1.125000
+v -0.187500 -0.164063 1.125000
+v -0.187500 0.164062 1.125000
 vt 0.468750 0.812500
 vt 0.031250 0.812500
 vt 0.031250 0.187500
@@ -195,6 +251,110 @@ vt 0.453125 0.640625
 vt 0.453125 0.593750
 vt 0.312500 0.593750
 vt 0.312500 0.640625
+vt 0.843750 0.507812
+vt 0.703125 0.507812
+vt 0.703125 0.093750
+vt 0.843750 0.093750
+vt 0.015625 0.507812
+vt 0.015625 0.093750
+vt 0.156250 0.093750
+vt 0.156250 0.507812
+vt 0.156250 0.031250
+vt 0.703125 0.031250
+vt 0.703125 0.578125
+vt 0.156250 0.578125
+vt 0.312500 0.640625
+vt 0.312500 0.992188
+vt 0.453125 0.992188
+vt 0.453125 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.312500 0.992188
+vt 0.312500 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.093750 0.992188
+vt 0.093750 0.640625
+vt 0.015625 0.992188
+vt 0.015625 0.640625
+vt 0.312500 0.640625
+vt 0.312500 0.992188
+vt 0.453125 0.992188
+vt 0.453125 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.312500 0.992188
+vt 0.312500 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.093750 0.992188
+vt 0.093750 0.640625
+vt 0.015625 0.992188
+vt 0.015625 0.640625
+vt 0.312500 0.640625
+vt 0.312500 0.992188
+vt 0.453125 0.992188
+vt 0.453125 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.312500 0.992188
+vt 0.312500 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.093750 0.992188
+vt 0.093750 0.640625
+vt 0.015625 0.992188
+vt 0.015625 0.640625
+vt 0.312500 0.640625
+vt 0.312500 0.992188
+vt 0.453125 0.992188
+vt 0.453125 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.312500 0.992188
+vt 0.312500 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.093750 0.992188
+vt 0.093750 0.640625
+vt 0.015625 0.992188
+vt 0.015625 0.640625
+vt 0.781250 0.664062
+vt 0.781250 0.992188
+vt 0.921875 0.992188
+vt 0.921875 0.664062
+vt 0.484375 0.664062
+vt 0.484375 0.992188
+vt 0.562500 0.992188
+vt 0.562500 0.664062
+vt 0.703125 0.992188
+vt 0.703125 0.664062
+vt 0.234375 0.593750
+vt 0.234375 0.640625
+vt 0.093750 0.640625
+vt 0.093750 0.593750
+vt 0.453125 0.640625
+vt 0.453125 0.593750
+vt 0.312500 0.593750
+vt 0.312500 0.640625
+vt 0.781250 0.664062
+vt 0.781250 0.992188
+vt 0.921875 0.992188
+vt 0.921875 0.664062
+vt 0.484375 0.664062
+vt 0.484375 0.992188
+vt 0.562500 0.992188
+vt 0.562500 0.664062
+vt 0.703125 0.992188
+vt 0.703125 0.664062
+vt 0.234375 0.593750
+vt 0.234375 0.640625
+vt 0.093750 0.640625
+vt 0.093750 0.593750
+vt 0.453125 0.640625
+vt 0.453125 0.593750
+vt 0.312500 0.593750
+vt 0.312500 0.640625
 vn 0.0000 0.0000 -1.0000
 vn 0.0000 0.0000 1.0000
 vn 0.0000 -1.0000 0.0000
@@ -244,3 +404,37 @@ f 71/112/1 72/111/1 70/113/1 69/114/1
 f 69/114/3 70/113/3 66/106/3 65/105/3
 f 67/115/6 71/116/6 69/117/6 65/118/6
 f 72/119/5 68/120/5 66/121/5 70/122/5
+g sign_on_pole.001_Cube.002_pole_mount_horizontal
+f 73/123/3 74/124/3 76/125/3 75/126/3
+f 78/127/4 77/128/4 80/129/4 79/130/4
+f 76/125/6 80/129/6 77/131/6 75/132/6
+f 73/133/5 78/134/5 79/130/5 74/124/5
+f 74/124/2 79/130/2 80/129/2 76/125/2
+f 81/135/4 82/136/4 84/137/4 83/138/4
+f 83/139/6 84/140/6 88/141/6 87/142/6
+f 87/143/3 88/144/3 86/145/3 85/146/3
+f 85/146/5 86/145/5 82/147/5 81/148/5
+f 89/149/4 90/150/4 92/151/4 91/152/4
+f 91/153/6 92/154/6 96/155/6 95/156/6
+f 95/157/3 96/158/3 94/159/3 93/160/3
+f 93/160/5 94/159/5 90/161/5 89/162/5
+f 97/163/4 98/164/4 100/165/4 99/166/4
+f 99/167/6 100/168/6 104/169/6 103/170/6
+f 103/171/3 104/172/3 102/173/3 101/174/3
+f 101/174/5 102/173/5 98/175/5 97/176/5
+f 105/177/4 106/178/4 108/179/4 107/180/4
+f 107/181/6 108/182/6 112/183/6 111/184/6
+f 111/185/3 112/186/3 110/187/3 109/188/3
+f 109/188/5 110/187/5 106/189/5 105/190/5
+f 113/191/2 114/192/2 116/193/2 115/194/2
+f 115/195/6 116/196/6 120/197/6 119/198/6
+f 119/198/1 120/197/1 118/199/1 117/200/1
+f 117/200/5 118/199/5 114/192/5 113/191/5
+f 115/201/3 119/202/3 117/203/3 113/204/3
+f 120/205/4 116/206/4 114/207/4 118/208/4
+f 121/209/2 122/210/2 124/211/2 123/212/2
+f 123/213/6 124/214/6 128/215/6 127/216/6
+f 127/216/1 128/215/1 126/217/1 125/218/1
+f 125/218/5 126/217/5 122/210/5 121/209/5
+f 123/219/3 127/220/3 125/221/3 121/222/3
+f 128/223/4 124/224/4 122/225/4 126/226/4
index ac45fda05e3828fd96fef31dddc5164147c307f2..714c00a917cc1e21fd9dca0450cc95f2a821f455 100644 (file)
@@ -1,6 +1,6 @@
-# Blender v2.79 (sub 0) OBJ File: 'basic_signs wooden wall sign.blend'
+# Blender v2.79 (sub 0) OBJ File: 'basic_signs wooden sign.blend'
 # www.blender.org
-o Cube.003_Cube
+o sign_on_pole_Cube.002
 v 0.437500 -0.812500 -0.312500
 v 0.437500 -0.750000 -0.312500
 v 0.437500 -0.812500 0.312500
@@ -17,40 +17,6 @@ v -0.437500 -0.812500 -0.312500
 v -0.437500 -0.750000 -0.312500
 v -0.437500 -0.812500 0.312500
 v -0.437500 -0.750000 0.312500
-vt 0.468750 0.812500
-vt 0.031250 0.812500
-vt 0.031250 0.187500
-vt 0.468750 0.187500
-vt 0.531250 0.812500
-vt 0.968750 0.812500
-vt 0.968750 0.187500
-vt 0.531250 0.187500
-vt 0.234375 0.000000
-vt 0.234375 1.000000
-vt 0.015625 1.000000
-vt 0.015625 -0.000000
-vt 0.609375 -0.000000
-vt 0.609375 1.000000
-vt 0.390625 1.000000
-vt 0.390625 -0.000000
-vt 0.765625 0.000000
-vt 0.765625 1.000000
-vn 0.0000 1.0000 0.0000
-vn 0.0000 -1.0000 0.0000
-vn 0.0000 0.0000 -1.0000
-vn 0.0000 0.0000 1.0000
-vn 1.0000 0.0000 0.0000
-vn -1.0000 0.0000 0.0000
-g Cube.003_Cube_front-back
-s off
-f 8/1/1 4/2/1 2/3/1 6/4/1
-f 3/5/2 7/6/2 5/7/2 1/8/2
-g Cube.003_Cube_edges
-f 13/9/3 14/10/3 10/11/3 9/12/3
-f 11/13/4 12/14/4 16/15/4 15/16/4
-f 11/13/5 9/17/5 10/18/5 12/14/5
-f 13/9/6 15/16/6 16/15/6 14/10/6
-o Cube.001
 v -0.125000 -0.812500 -0.187500
 v -0.125000 -0.875000 -0.187500
 v -0.125000 -0.812500 0.187500
@@ -107,6 +73,184 @@ v -0.164063 -1.125000 0.125000
 v 0.164062 -1.125000 0.125000
 v -0.164063 -1.125000 0.187500
 v 0.164062 -1.125000 0.187500
+v 0.187500 -0.812500 -0.125000
+v 0.187500 -0.875000 -0.125000
+v -0.187500 -0.812500 -0.125000
+v -0.187500 -0.875000 -0.125000
+v -0.187500 -0.812500 0.125000
+v 0.187500 -0.812500 0.125000
+v 0.187500 -0.875000 0.125000
+v -0.187500 -0.875000 0.125000
+v 0.187500 -1.125000 -0.125000
+v 0.187500 -0.812500 -0.125000
+v 0.125000 -1.125000 -0.125000
+v 0.125000 -0.812500 -0.125000
+v 0.187500 -1.125000 -0.164063
+v 0.187500 -0.812500 -0.164063
+v 0.125000 -1.125000 -0.164063
+v 0.125000 -0.812500 -0.164063
+v -0.125000 -1.125000 -0.125000
+v -0.125000 -0.812500 -0.125000
+v -0.187500 -1.125000 -0.125000
+v -0.187500 -0.812500 -0.125000
+v -0.125000 -1.125000 -0.164063
+v -0.125000 -0.812500 -0.164063
+v -0.187500 -1.125000 -0.164063
+v -0.187500 -0.812500 -0.164063
+v 0.187500 -1.125000 0.164062
+v 0.187500 -0.812500 0.164062
+v 0.125000 -1.125000 0.164062
+v 0.125000 -0.812500 0.164062
+v 0.187500 -1.125000 0.125000
+v 0.187500 -0.812500 0.125000
+v 0.125000 -1.125000 0.125000
+v 0.125000 -0.812500 0.125000
+v -0.125000 -1.125000 0.164062
+v -0.125000 -0.812500 0.164062
+v -0.187500 -1.125000 0.164062
+v -0.187500 -0.812500 0.164062
+v -0.125000 -1.125000 0.125000
+v -0.125000 -0.812500 0.125000
+v -0.187500 -1.125000 0.125000
+v -0.187500 -0.812500 0.125000
+v 0.187500 -1.164063 -0.164063
+v 0.187500 -1.164063 0.164062
+v 0.125000 -1.164063 -0.164063
+v 0.125000 -1.164063 0.164062
+v 0.187500 -1.125000 -0.164063
+v 0.187500 -1.125000 0.164062
+v 0.125000 -1.125000 -0.164063
+v 0.125000 -1.125000 0.164062
+v -0.125000 -1.164063 -0.164063
+v -0.125000 -1.164063 0.164062
+v -0.187500 -1.164063 -0.164063
+v -0.187500 -1.164063 0.164062
+v -0.125000 -1.125000 -0.164063
+v -0.125000 -1.125000 0.164062
+v -0.187500 -1.125000 -0.164063
+v -0.187500 -1.125000 0.164062
+vt 0.468750 0.812500
+vt 0.031250 0.812500
+vt 0.031250 0.187500
+vt 0.468750 0.187500
+vt 0.531250 0.812500
+vt 0.968750 0.812500
+vt 0.968750 0.187500
+vt 0.531250 0.187500
+vt 0.234375 0.000000
+vt 0.234375 1.000000
+vt 0.015625 1.000000
+vt 0.015625 -0.000000
+vt 0.609375 -0.000000
+vt 0.609375 1.000000
+vt 0.390625 1.000000
+vt 0.390625 -0.000000
+vt 0.765625 0.000000
+vt 0.765625 1.000000
+vt 0.843750 0.507812
+vt 0.703125 0.507812
+vt 0.703125 0.093750
+vt 0.843750 0.093750
+vt 0.015625 0.507812
+vt 0.015625 0.093750
+vt 0.156250 0.093750
+vt 0.156250 0.507812
+vt 0.156250 0.031250
+vt 0.703125 0.031250
+vt 0.703125 0.578125
+vt 0.156250 0.578125
+vt 0.312500 0.640625
+vt 0.312500 0.992188
+vt 0.453125 0.992188
+vt 0.453125 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.312500 0.992188
+vt 0.312500 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.093750 0.992188
+vt 0.093750 0.640625
+vt 0.015625 0.992188
+vt 0.015625 0.640625
+vt 0.312500 0.640625
+vt 0.312500 0.992188
+vt 0.453125 0.992188
+vt 0.453125 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.312500 0.992188
+vt 0.312500 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.093750 0.992188
+vt 0.093750 0.640625
+vt 0.015625 0.992188
+vt 0.015625 0.640625
+vt 0.312500 0.640625
+vt 0.312500 0.992188
+vt 0.453125 0.992188
+vt 0.453125 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.312500 0.992188
+vt 0.312500 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.093750 0.992188
+vt 0.093750 0.640625
+vt 0.015625 0.992188
+vt 0.015625 0.640625
+vt 0.312500 0.640625
+vt 0.312500 0.992188
+vt 0.453125 0.992188
+vt 0.453125 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.312500 0.992188
+vt 0.312500 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.093750 0.992188
+vt 0.093750 0.640625
+vt 0.015625 0.992188
+vt 0.015625 0.640625
+vt 0.781250 0.664062
+vt 0.781250 0.992188
+vt 0.921875 0.992188
+vt 0.921875 0.664062
+vt 0.484375 0.664062
+vt 0.484375 0.992188
+vt 0.562500 0.992188
+vt 0.562500 0.664062
+vt 0.703125 0.992188
+vt 0.703125 0.664062
+vt 0.234375 0.593750
+vt 0.234375 0.640625
+vt 0.093750 0.640625
+vt 0.093750 0.593750
+vt 0.453125 0.640625
+vt 0.453125 0.593750
+vt 0.312500 0.593750
+vt 0.312500 0.640625
+vt 0.781250 0.664062
+vt 0.781250 0.992188
+vt 0.921875 0.992188
+vt 0.921875 0.664062
+vt 0.484375 0.664062
+vt 0.484375 0.992188
+vt 0.562500 0.992188
+vt 0.562500 0.664062
+vt 0.703125 0.992188
+vt 0.703125 0.664062
+vt 0.234375 0.593750
+vt 0.234375 0.640625
+vt 0.093750 0.640625
+vt 0.093750 0.593750
+vt 0.453125 0.640625
+vt 0.453125 0.593750
+vt 0.312500 0.593750
+vt 0.312500 0.640625
 vt 0.843750 0.507812
 vt 0.703125 0.507812
 vt 0.703125 0.093750
@@ -211,44 +355,86 @@ vt 0.453125 0.640625
 vt 0.453125 0.593750
 vt 0.312500 0.593750
 vt 0.312500 0.640625
-vn -1.0000 0.0000 0.0000
-vn 1.0000 0.0000 0.0000
-vn 0.0000 -0.0000 1.0000
-vn 0.0000 0.0000 -1.0000
-vn 0.0000 -1.0000 -0.0000
 vn 0.0000 1.0000 0.0000
-g Cube.001_Cube.001_pole_mount
+vn 0.0000 -1.0000 0.0000
+vn 0.0000 0.0000 -1.0000
+vn 0.0000 0.0000 1.0000
+vn 1.0000 0.0000 0.0000
+vn -1.0000 0.0000 0.0000
+g sign_on_pole_Cube.002_front-back
 s off
-f 17/19/7 18/20/7 20/21/7 19/22/7
-f 22/23/8 21/24/8 24/25/8 23/26/8
-f 20/21/9 24/25/9 21/27/9 19/28/9
-f 17/29/10 22/30/10 23/26/10 18/20/10
-f 18/20/11 23/26/11 24/25/11 20/21/11
-f 25/31/8 26/32/8 28/33/8 27/34/8
-f 27/35/9 28/36/9 32/37/9 31/38/9
-f 31/39/7 32/40/7 30/41/7 29/42/7
-f 29/42/10 30/41/10 26/43/10 25/44/10
-f 33/45/8 34/46/8 36/47/8 35/48/8
-f 35/49/9 36/50/9 40/51/9 39/52/9
-f 39/53/7 40/54/7 38/55/7 37/56/7
-f 37/56/10 38/55/10 34/57/10 33/58/10
-f 41/59/8 42/60/8 44/61/8 43/62/8
-f 43/63/9 44/64/9 48/65/9 47/66/9
-f 47/67/7 48/68/7 46/69/7 45/70/7
-f 45/70/10 46/69/10 42/71/10 41/72/10
-f 49/73/8 50/74/8 52/75/8 51/76/8
-f 51/77/9 52/78/9 56/79/9 55/80/9
-f 55/81/7 56/82/7 54/83/7 53/84/7
-f 53/84/10 54/83/10 50/85/10 49/86/10
-f 57/87/11 58/88/11 60/89/11 59/90/11
-f 59/91/9 60/92/9 64/93/9 63/94/9
-f 63/94/12 64/93/12 62/95/12 61/96/12
-f 61/96/10 62/95/10 58/88/10 57/87/10
-f 59/97/7 63/98/7 61/99/7 57/100/7
-f 64/101/8 60/102/8 58/103/8 62/104/8
-f 65/105/11 66/106/11 68/107/11 67/108/11
-f 67/109/9 68/110/9 72/111/9 71/112/9
-f 71/112/12 72/111/12 70/113/12 69/114/12
-f 69/114/10 70/113/10 66/106/10 65/105/10
-f 67/115/7 71/116/7 69/117/7 65/118/7
-f 72/119/8 68/120/8 66/121/8 70/122/8
+f 8/1/1 4/2/1 2/3/1 6/4/1
+f 3/5/2 7/6/2 5/7/2 1/8/2
+g sign_on_pole_Cube.002_edges
+f 13/9/3 14/10/3 10/11/3 9/12/3
+f 11/13/4 12/14/4 16/15/4 15/16/4
+f 11/13/5 9/17/5 10/18/5 12/14/5
+f 13/9/6 15/16/6 16/15/6 14/10/6
+g sign_on_pole_Cube.002_pole_mount
+f 17/19/6 18/20/6 20/21/6 19/22/6
+f 22/23/5 21/24/5 24/25/5 23/26/5
+f 20/21/4 24/25/4 21/27/4 19/28/4
+f 17/29/3 22/30/3 23/26/3 18/20/3
+f 18/20/2 23/26/2 24/25/2 20/21/2
+f 25/31/5 26/32/5 28/33/5 27/34/5
+f 27/35/4 28/36/4 32/37/4 31/38/4
+f 31/39/6 32/40/6 30/41/6 29/42/6
+f 29/42/3 30/41/3 26/43/3 25/44/3
+f 33/45/5 34/46/5 36/47/5 35/48/5
+f 35/49/4 36/50/4 40/51/4 39/52/4
+f 39/53/6 40/54/6 38/55/6 37/56/6
+f 37/56/3 38/55/3 34/57/3 33/58/3
+f 41/59/5 42/60/5 44/61/5 43/62/5
+f 43/63/4 44/64/4 48/65/4 47/66/4
+f 47/67/6 48/68/6 46/69/6 45/70/6
+f 45/70/3 46/69/3 42/71/3 41/72/3
+f 49/73/5 50/74/5 52/75/5 51/76/5
+f 51/77/4 52/78/4 56/79/4 55/80/4
+f 55/81/6 56/82/6 54/83/6 53/84/6
+f 53/84/3 54/83/3 50/85/3 49/86/3
+f 57/87/2 58/88/2 60/89/2 59/90/2
+f 59/91/4 60/92/4 64/93/4 63/94/4
+f 63/94/1 64/93/1 62/95/1 61/96/1
+f 61/96/3 62/95/3 58/88/3 57/87/3
+f 59/97/6 63/98/6 61/99/6 57/100/6
+f 64/101/5 60/102/5 58/103/5 62/104/5
+f 65/105/2 66/106/2 68/107/2 67/108/2
+f 67/109/4 68/110/4 72/111/4 71/112/4
+f 71/112/1 72/111/1 70/113/1 69/114/1
+f 69/114/3 70/113/3 66/106/3 65/105/3
+f 67/115/6 71/116/6 69/117/6 65/118/6
+f 72/119/5 68/120/5 66/121/5 70/122/5
+g sign_on_pole_Cube.002_pole_mount_horizontal
+f 73/123/3 74/124/3 76/125/3 75/126/3
+f 78/127/4 77/128/4 80/129/4 79/130/4
+f 76/125/6 80/129/6 77/131/6 75/132/6
+f 73/133/5 78/134/5 79/130/5 74/124/5
+f 74/124/2 79/130/2 80/129/2 76/125/2
+f 81/135/4 82/136/4 84/137/4 83/138/4
+f 83/139/6 84/140/6 88/141/6 87/142/6
+f 87/143/3 88/144/3 86/145/3 85/146/3
+f 85/146/5 86/145/5 82/147/5 81/148/5
+f 89/149/4 90/150/4 92/151/4 91/152/4
+f 91/153/6 92/154/6 96/155/6 95/156/6
+f 95/157/3 96/158/3 94/159/3 93/160/3
+f 93/160/5 94/159/5 90/161/5 89/162/5
+f 97/163/4 98/164/4 100/165/4 99/166/4
+f 99/167/6 100/168/6 104/169/6 103/170/6
+f 103/171/3 104/172/3 102/173/3 101/174/3
+f 101/174/5 102/173/5 98/175/5 97/176/5
+f 105/177/4 106/178/4 108/179/4 107/180/4
+f 107/181/6 108/182/6 112/183/6 111/184/6
+f 111/185/3 112/186/3 110/187/3 109/188/3
+f 109/188/5 110/187/5 106/189/5 105/190/5
+f 113/191/2 114/192/2 116/193/2 115/194/2
+f 115/195/6 116/196/6 120/197/6 119/198/6
+f 119/198/1 120/197/1 118/199/1 117/200/1
+f 117/200/5 118/199/5 114/192/5 113/191/5
+f 115/201/3 119/202/3 117/203/3 113/204/3
+f 120/205/4 116/206/4 114/207/4 118/208/4
+f 121/209/2 122/210/2 124/211/2 123/212/2
+f 123/213/6 124/214/6 128/215/6 127/216/6
+f 127/216/1 128/215/1 126/217/1 125/218/1
+f 125/218/5 126/217/5 122/210/5 121/209/5
+f 123/219/3 127/220/3 125/221/3 121/222/3
+f 128/223/4 124/224/4 122/225/4 126/226/4
index 8edef6f36d76d591ff173bf951779d3f89b855d7..7d961e9e59eed5d28bf92bdafdd583f8a364eb28 100644 (file)
@@ -9,7 +9,8 @@ signs_lib.register_sign("default:sign_wall_wood", {
        },
        entity_info = "standard",
        allow_hanging = true,
-       allow_widefont = true
+       allow_widefont = true,
+       allow_onpole_horizontal = true
 })
 
 signs_lib.register_sign("default:sign_wall_steel", {
@@ -24,7 +25,8 @@ signs_lib.register_sign("default:sign_wall_steel", {
        locked = true,
        entity_info = "standard",
        allow_hanging = true,
-       allow_widefont = true
+       allow_widefont = true,
+       allow_onpole_horizontal = true
 })
 
 minetest.register_alias("signs:sign_hanging", "default:sign_wall_wood_hanging")
diff --git a/textures/signs_lib_blank.png b/textures/signs_lib_blank.png
new file mode 100644 (file)
index 0000000..af367b9
Binary files /dev/null and b/textures/signs_lib_blank.png differ