Browse Source

API changes to allow for more mounting styles

NODE NAMES:

The base name of a node can be whatever you want.  The basic wall sign
will keep the node name you give, while its hanging, on-pole, and yard
variants will, where applicable, use the same name, with "_onpole",
"_hanging", or "_yard" appended.

One exception:

If your node has "_wall" in its name, that bit will be stripped-out when
generating the above node variations.  For example:

"default:sign_wall_wood"

...will become...

"default:sign_wood_onpole"
"default:sign_wood_hanging"
"default:sign_wood_yard"

MODELS:

The base sign model and entity files must now be named:

sign:   mymod_foosign_wall.obj
        mymod_foosign_facedir_wall.obj

entity: mymod_foosign_entity_wall.obj

their other variants, where applicable, must be:

mymod_foosign_onpole.obj
mymod_foosign_hanging.obj
mymod_foosign_yard.obj

mymod_foosign_entity_onpole.obj
mymod_foosign_entity_hanging.obj
mymod_foosign_entity_yard.obj

For `facedir` signs, the "_facedir" in the base sign model filename is
automatically stripped from the name when generating the entity model
filename, as entities don't have a concept of wallmounted/facedir/etc.
For example:

"mymod_foosign_facedir_wall.obj"

...will become...

"mymod_foosign_entity_wall.obj"

* allow passing custom onpole, hanging, and yard sign models, for
situations where the filename(s) thereof can't be derived from the base
sign model filename.

* allow passing a custom pole mount, hanging, and yard sign stick
textures as the third, fourth, and fifth tiles{} entries, respectively
(independent of the above model file option)

* fine-tuned the pole mount on the standard sign models to eliminate
overlapping faces (so it looks better with basic_signs' glass sign.

* Move basic_signs wooden yard sign back to signs_lib.
pull/6/head
Vanessa Dannenberg 3 years ago
parent
commit
3836215268
  1. 43
      API.md
  2. 22
      MODELS.md
  3. 2
      README.md
  4. 225
      api.lua
  5. BIN
      models/basic_signs wooden yard sign two sticks.blend
  6. 232
      models/signs_lib_standard_facedir_sign_onpole.obj
  7. 0
      models/signs_lib_standard_facedir_sign_wall.obj
  8. 0
      models/signs_lib_standard_sign_entity_hanging.obj
  9. 0
      models/signs_lib_standard_sign_entity_onpole.obj
  10. 0
      models/signs_lib_standard_sign_entity_wall.obj
  11. 15
      models/signs_lib_standard_sign_entity_yard.obj
  12. 0
      models/signs_lib_standard_sign_hanging.obj
  13. 232
      models/signs_lib_standard_sign_onpole.obj
  14. 0
      models/signs_lib_standard_sign_wall.obj
  15. 85
      models/signs_lib_standard_sign_yard.obj
  16. 110
      models/signs_lib_standard_sign_yard_two_sticks.obj
  17. 440
      models/signs_lib_standard_wall_sign_facedir_onpole.obj
  18. 440
      models/signs_lib_standard_wall_sign_onpole.obj
  19. BIN
      models/standard pole mount already positioned.blend
  20. BIN
      models/standard pole mount already positioned.blend1
  21. BIN
      models/standard wooden sign.blend
  22. BIN
      models/standard wooden sign.blend1
  23. BIN
      models/standard wooden yard sign.blend
  24. 27
      standard_signs.lua

43
API.md

@ -16,6 +16,17 @@ In this text, common terms such as `pos`, `node`, or `placer`/`digger` will not
Default: `"mesh"`
* `tiles = {table}`
Since this is a sign-specific library, this parameter behaves rather different from what you would normally use in `minetest.register_node()`. The first two entries are mandatory. The third, fourth and fifth entries are optional, depending on which mounting styles are enabled for a given node.
* entry 1: the front and back of the sign.
* entry 2: the sides/edges
* entry 3: texture for the pole mount. If unspecified, the standard pole mount image is used, if needed.
* entry 4: texture for the hanging part. If unspecified, the standard hanging chains image is used, if needed.
* entry 5: texture for the yard sign stick. If unspecified, "default_wood.png" is used, if needed.
* entry 6: ignored.
* `mesh = "string"`
Default: `"signs_lib_standard_wall_sign.obj"`.
@ -34,6 +45,11 @@ In this text, common terms such as `pos`, `node`, or `placer`/`digger` will not
Default: whatever the `inventory_image` is set to (if anything).
* `selection_box = {table}`
Works the same as usual. A helper function exists to create boxes by specifying only and X/Y size and offset:
`signs_lib.make_selection_boxes()` (see below).
* `groups = {table}`
Sets the sign's groups, as usual. In addition to whatever arbitrary groups you may have in mind, there are two presets available (both of which have `attached_node` removed, and `sign = 1` added):
@ -92,6 +108,23 @@ In this text, common terms such as `pos`, `node`, or `placer`/`digger` will not
Default: `signs_lib.update_sign`
* `onpole_mesh = "string"`
* `hanging_mesh = "string"`
* `yard_mesh = "string"`
If your node needs a custom model for its on-pole, hanging, and/or yard variants, specify them here, as needed. The materials and textures behave the same on these as on other sign models. All sign model filenames are still derived from the base sign model, when not overridden here (so these can be totally arbitrary filenames).
Default: the normal "_onpole", "_hanging", or "_yard" version of the model specified by `mesh`.
* `onpole_selection_box = {table}`
* `hanging_selection_box = {table}`
* `yard_selection_box = {table}`
* `onpole_node_box = {table}`
* `hanging_node_box = {table}`
* `yard_node_box = {table}`
If your node needs special handling for its onpole-, hanging-, or yard-mode selection boxes or for their collision info (which `signs_lib` always uses the node's `node_box` item for), you can specify them here. Same syntax as the regular `selection_box` setting.
* `default_color = "string"`
Sets the default text color for this sign, in hexadecimal (`0-9`, `a-f`), from the standard Linux/IRC/CGA color palette. Same as the colors shown in the sign's formspec.
@ -165,22 +198,26 @@ In this text, common terms such as `pos`, `node`, or `placer`/`digger` will not
* `allow_hanging = bool`
If `true`, allow the registration function to create a "hanging from the ceiling" version of the initial, base sign node.
If `true`, allow the registration function to create a "hanging from the ceiling" version of the initial, base sign node. Its name will be the same as the base node name, with "_wall" deleted from the name (if present), and "_hanging" appended. For example, "default:sign_wall_wood" becomes "default:sign_wood_hanging".
Default: `nil`
* `allow_onpole = bool`
Allow creation of an on-pole variant of the base sign.
Allow creation of an on-pole variant of the base sign, named the same as the base sign, with "_wall" deleted and "_onpole" appended. Example: "default:sign_wall_wood" becomes "default:sign_wood_onpole"
Default: `nil`
* `allow_onpole_horizontal = bool`
Allow creation of an on-horizontal-pole variant. This flag is independent of `allow_onpole`; the mod may specify either or both.
Allow creation of an on-horizontal-pole variant. This flag is independent of `allow_onpole`; the mod may specify either or both. Its name will be the base node name, with "_wall" deleted and "_onpole_horiz" appended. Example: "default:sign_wall_wood" becomes "default:sign_wood_onpole_horiz".
Default: `nil`
* `allow_yard = bool`
Allow creation of a yard sign variant, named the same as the base sign, with "_wall" deleted and "_yard" appended. Example: "default:sign_wall_wood" becomes "default:sign_wood_yard"
* `allow_widefont = bool`
Just what it says on the tin. If enabled, the formspec will have a little "on/off switch" left of the "Write" button, to select the font width.

22
MODELS.md

@ -2,9 +2,11 @@
In the model files:
* The base sign model should be designed to look like a flat board placed on one side of the node space. The first material entry in the model file must be assigned to the front and back faces of the sign, the second material must be the sign's edges. The filename should be something along the lines of `mymod_my_cool_sign.obj`.
* The base sign model should be designed to look like a flat board placed on one side of the node space. The first material entry in the model file must be assigned to the front and back faces of the sign, the second material must be the sign's edges. The filename should be something along the lines of `mymod_my_cool_sign_wall.obj`.
* For most signs that are allowed to sit on a vertical pole/post such as a fencepost, the pole-mounted model is just a copy of the base model, shifted back a bit, with a pole mount added to the back. In these models, the third material in the model file must be assigned to the pole mount. Name the model file the same as the base sign, but end the name with `_onpole`. For example, `mymod_my_cool_sign_onpole.obj`.
In each of the variants below, generally-speaking, the third material in the model must be assigned to whatever it is that that model uses for the sign's mounting method, and the mounting style will be the last word in the model filename.
* For most signs that are allowed to sit on a vertical pole/post such as a fencepost, the pole-mounted model is just a copy of the base model, shifted back a bit, with a pole mount added to the back. In these models, the third material in the model file must be assigned to the pole mount. Name the model file the same as the base sign, but end the name with `_onpole` instead of `_wall`. For example, `mymod_my_cool_sign_onpole.obj`.
For signs that allow mounting onto a horizontal pole (such as a Streets mod horizontal "bigpole"), the third material is still the vertical pole mount as above, but there must also be another the pole mount included, designed to wrap around such a pole/post, to which fourth material must be assigned. In most cases, this alternate mount will just be a copy of the vertical pole mount, but rotated by 90°, and explicitly centered vertically in the node space.
@ -12,20 +14,28 @@ In the model files:
* For hanging sign models, the third material must be assigned to whatever it is that makes the sign look like it's hanging from the ceiling (default signs have a simple, flat rectangle, meant to show an image of a simple pair of chains). The model file for these must be named the same as the base model, but ending with `_hanging`. For example, `mymod_my_cool_sign_hanging.obj`.
* For most signs, the sign entity will be a simple rectangle, sized just slightly smaller than the width and height of the sign, and centered relative to the sign face. Its UV map should cover the entire image area, so that the image is shrunk down to fit within the sign's intended text area. The rectangle must be positioned slightly in front of the sign (by 10 millimeters or so, due to engine position precision limitations).
* For yard sign models, the third material must be assigned to to the "stick" on the back of the sign that hold it up. The model for this type must be named the same as the base model, but ending with `_yard`. For example, `mymod_my_cool_sign_yard.obj`.
* For most signs, the sign entity (if applicable) will be a simple rectangle, sized just slightly smaller than the width and height of the sign, and centered relative to the sign face. Its UV map should cover the entire image area, so that the image is shrunk down to fit within the sign's intended text area. The rectangle must be positioned slightly in front of the sign (by 10 millimeters or so, due to engine position precision limitations).
The entity should be named the same as the corresponding wall, on-pole, hanging, and/or yard models, but with "_entity" added just before the mounting style. For example: a sign using `mymod_my_cool_sign_wall.obj` for the base model file should have an entity model file named `mymod_my_cool_sign_entity_wall.obj`.
In your code:
* For most sign types, `signs_lib` expects the first `tiles{}` entry in the sign definition to be the front-back texture (how the two textures are arranged within the image file is up to you, provided you match your sign model's UV map to the image layout). The texture for the edges is the second entry.
* The first `tiles{}` entry in the sign definition needs to be the front-back texture (how things are arranged within the image file is up to you, provided you match your sign model's UV map to the layout of your image). The second entry will be the texture for the sign's edges.
* For pole/post-mounted sign models, if applicable, the mod will ignore any further tile entries, and will directly set the third and fourth entries so that one of them is blank, while the other is set to the standard pole mount texture. Which one it sets to the pole mount texture is what controls whether the vertical or horizontal mount is visible.
* For signs that can be mounted on a pole/post, the third `tiles{}` specifies the pole mount image to use. When `signs_lib` goes to register the on-pole version of the base sign, it will rewrite the third and fourth `tiles{}` entries internally. one will be set to the texture you supplied, the other will be set to the standard empty image. Which one it sets to the pole mount texture is what controls whether the vertical or horizontal mount is visible. If you don't specify a pole mount image in the third `tiles{}` entry, `signs_lib` will use its standard pole mount texture.
* For sign models that hang from a ceiling, the third `tiles{}` entry must be set to a suitable image that fits whatever the parts are that suspend the sign from above.
* For signs that can hang from a ceiling, the fourth `tiles{}` entry specifies the image to apply to the part of the model that makes it look like it's hanging. If this entry is not set, `signs_lib` will use its standard hanging chains image.
* For signs that can stand up in the yard, the fifth `tiles{}` entry specifies the image to be wrapped around the "stick" that the sign's mounted on. If not set, it will default to "default_wood.png".
* Some signs may allow for more complex entity shapes, images, and UV mapping. For example, [street_signs](https://forum.minetest.net/viewtopic.php?t=20866) has a standard city street intersection sign, the entity mesh for which consists of four simple rectangles. Two of them are identically UV-mapped to the top portion of the texture image, and placed on either side of the upper half of the sign portion of the model. The other two rectangles are also identically UV-mapped, but point to a lower section of the texture, and are rotated by 90° and shifted down in the model, to place them on either side of the lower half of the sign. This causes the first line of text to appear on both sides of the upper half of the sign, with the second line of text appearing on both sides of the lower half.
Signs which don't use the simple models described above may not be compatible with the wall, ceiling, floor, or pole/post placement paradigm, but these things can be overridden/disabled in the node definition, if needed (as with the above intersection sign).
* `signs_lib` automatically blanks-out all redundant `tiles{}` entries for each node.
## Blender users
Start a new project, open the "Sidebar" (usually by pressing `N`), and scroll down to the Display section. Set the Grid floor to 5 lines, Scale to 0.5, and Subdivisions to 8.

2
README.md

@ -4,7 +4,7 @@ This is kaeza's and my signs library mod, originally forked from PilzAdam's vers
The purpose of PilzAdam's original mod was to just provide a no-frills way make default signs show their text, via an entity placed right in front. It was hacky, but it worked!
While still hacky, this library is a modernized, feature-enhanced version of his code, which not only has visible text, but which allows that text to be colored, and displayed at any reasonable size, with any reasonable amount of text (as configured in a given node definition), with two font resolutions available. Plus, almost any sign can be attached to almost any kind of suitable pole or fencepost, or hung from a ceiling, in addition to being flat on a wall, floor, or ceiling. Unlike previous incarnations of this code, signs' text is visible when the sign is flat on the floor or ceiling, as well as all other supported orientations.
While still hacky, this library is a modernized, feature-enhanced version of his code, which not only has visible text, but which allows that text to be colored, and displayed at any reasonable size, with any reasonable amount of text (as configured in a given node definition), with two font resolutions available. Plus, almost any sign can be attached to almost any kind of suitable pole or fencepost. Most signs that use the standard wall sign model can also be hung from a ceiling, or placed upright as a yard sign, in addition to being flat on a wall or floor. Unlike previous incarnations of this code, signs' text is visible when the sign is flat on the floor or ceiling, as well as all other supported orientations/mounting styles.
Without any other add-ons, this mod upgrades only the default wooden and steel signs.

225
api.lua

@ -809,11 +809,15 @@ end
function signs_lib.after_place_node(pos, placer, itemstack, pointed_thing, locked)
local playername = placer:get_player_name()
local def = minetest.registered_items[itemstack:get_name()]
local signname = itemstack:get_name()
local no_wall_name = string.gsub(signname, "_wall", "")
local def = minetest.registered_items[signname]
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 and signs_lib.check_for_pole(pos, pointed_thing) then
local newparam2
local lookdir = minetest.yaw_to_dir(placer:get_look_horizontal())
@ -823,7 +827,7 @@ function signs_lib.after_place_node(pos, placer, itemstack, pointed_thing, locke
newparam2 = minetest.dir_to_facedir(lookdir)
end
local node = minetest.get_node(pos)
minetest.swap_node(pos, {name = itemstack:get_name().."_onpole", param2 = newparam2})
minetest.swap_node(pos, {name = no_wall_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())
@ -833,15 +837,19 @@ function signs_lib.after_place_node(pos, placer, itemstack, pointed_thing, locke
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})
minetest.swap_node(pos, {name = no_wall_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)
minetest.swap_node(pos, {name = itemstack:get_name().."_hanging", param2 = newparam2})
minetest.swap_node(pos, {name = no_wall_name.."_hanging", param2 = newparam2})
elseif def.allow_yard and signs_lib.check_for_floor(pointed_thing) then
local newparam2 = minetest.dir_to_facedir(placer:get_look_dir())
local node = minetest.get_node(pos)
minetest.swap_node(pos, {name = no_wall_name.."_yard", param2 = newparam2})
elseif def.paramtype2 == "facedir" and signs_lib.check_for_ceiling(pointed_thing) then
minetest.swap_node(pos, {name = itemstack:get_name(), param2 = 6})
minetest.swap_node(pos, {name = signname, param2 = 6})
elseif def.paramtype2 == "facedir" and signs_lib.check_for_floor(pointed_thing) then
minetest.swap_node(pos, {name = itemstack:get_name(), param2 = 4})
minetest.swap_node(pos, {name = signname, param2 = 4})
end
if locked then
local meta = minetest.get_meta(pos)
@ -854,149 +862,194 @@ function signs_lib.register_fence_with_sign()
minetest.log("warning", "[signs_lib] ".."Attempt to call no longer used function signs_lib.register_fence_with_sign()")
end
function signs_lib.register_sign(name, rdef)
local def = table.copy(rdef)
function signs_lib.register_sign(name, raw_def)
local def = table.copy(raw_def)
if rdef.entity_info == "standard" then
if raw_def.entity_info == "standard" then
def.entity_info = {
mesh = "signs_lib_standard_wall_sign_entity.obj",
mesh = "signs_lib_standard_sign_entity_wall.obj",
yaw = signs_lib.wallmounted_yaw
}
elseif rdef.entity_info then
def.entity_info = rdef.entity_info
elseif raw_def.entity_info then
def.entity_info = raw_def.entity_info
end
def.after_place_node = rdef.after_place_node or signs_lib.after_place_node
if rdef.entity_info then
def.on_rightclick = rdef.on_rightclick or signs_lib.construct_sign
def.on_construct = rdef.on_construct or signs_lib.construct_sign
def.on_destruct = rdef.on_destruct or signs_lib.destruct_sign
def.on_receive_fields = rdef.on_receive_fields or signs_lib.receive_fields
def.on_punch = rdef.on_punch or signs_lib.update_sign
def.number_of_lines = rdef.number_of_lines or signs_lib.standard_lines
def.horiz_scaling = rdef.horiz_scaling or signs_lib.standard_hscale
def.vert_scaling = rdef.vert_scaling or signs_lib.standard_vscale
def.line_spacing = rdef.line_spacing or signs_lib.standard_lspace
def.font_size = rdef.font_size or signs_lib.standard_fsize
def.x_offset = rdef.x_offset or signs_lib.standard_xoffs
def.y_offset = rdef.y_offset or signs_lib.standard_yoffs
def.chars_per_line = rdef.chars_per_line or signs_lib.standard_cpl
def.default_color = rdef.default_color or "0"
if rdef.locked and not rdef.after_place_node then
def.after_place_node = raw_def.after_place_node or signs_lib.after_place_node
if raw_def.entity_info then
def.on_rightclick = raw_def.on_rightclick or signs_lib.construct_sign
def.on_construct = raw_def.on_construct or signs_lib.construct_sign
def.on_destruct = raw_def.on_destruct or signs_lib.destruct_sign
def.on_receive_fields = raw_def.on_receive_fields or signs_lib.receive_fields
def.on_punch = raw_def.on_punch or signs_lib.update_sign
def.number_of_lines = raw_def.number_of_lines or signs_lib.standard_lines
def.horiz_scaling = raw_def.horiz_scaling or signs_lib.standard_hscale
def.vert_scaling = raw_def.vert_scaling or signs_lib.standard_vscale
def.line_spacing = raw_def.line_spacing or signs_lib.standard_lspace
def.font_size = raw_def.font_size or signs_lib.standard_fsize
def.x_offset = raw_def.x_offset or signs_lib.standard_xoffs
def.y_offset = raw_def.y_offset or signs_lib.standard_yoffs
def.chars_per_line = raw_def.chars_per_line or signs_lib.standard_cpl
def.default_color = raw_def.default_color or "0"
if raw_def.locked and not raw_def.after_place_node then
def.after_place_node = function(pos, placer, itemstack, pointed_thing)
signs_lib.after_place_node(pos, placer, itemstack, pointed_thing, true)
end
end
end
def.paramtype = rdef.paramtype or "light"
def.drawtype = rdef.drawtype or "mesh"
def.mesh = rdef.mesh or "signs_lib_standard_wall_sign.obj"
def.wield_image = rdef.wield_image or def.inventory_image
def.drop = rdef.drop or name
def.sounds = rdef.sounds or signs_lib.standard_wood_sign_sounds
def.paramtype2 = rdef.paramtype2 or "wallmounted"
def.on_rotate = rdef.on_rotate or signs_lib.handle_rotation
if rdef.groups then
def.groups = rdef.groups
def.paramtype = raw_def.paramtype or "light"
def.drawtype = raw_def.drawtype or "mesh"
def.mesh = raw_def.mesh or "signs_lib_standard_sign_wall.obj"
def.wield_image = raw_def.wield_image or def.inventory_image
def.drop = raw_def.drop or name
def.sounds = raw_def.sounds or signs_lib.standard_wood_sign_sounds
def.paramtype2 = raw_def.paramtype2 or "wallmounted"
def.on_rotate = raw_def.on_rotate or signs_lib.handle_rotation
if raw_def.groups then
def.groups = raw_def.groups
else
def.groups = signs_lib.standard_wood_groups
end
local cbox = signs_lib.make_selection_boxes(35, 25)
def.selection_box = rdef.selection_box or cbox
def.node_box = table.copy(rdef.node_box or rdef.selection_box or cbox)
def.selection_box = raw_def.selection_box or cbox
def.node_box = table.copy(raw_def.node_box or raw_def.selection_box or cbox)
if def.sunlight_propagates ~= false then
def.sunlight_propagates = true
end
def.tiles[3] = "signs_lib_blank.png"
def.tiles[4] = "signs_lib_blank.png"
def.tiles[5] = "signs_lib_blank.png"
def.tiles[6] = "signs_lib_blank.png"
minetest.register_node(":"..name, def)
table.insert(signs_lib.lbm_restore_nodes, name)
local opdef = table.copy(def)
local no_wall_name = string.gsub(name, "_wall", "")
local othermounts_def = table.copy(def)
if rdef.allow_onpole or rdef.allow_onpole_horizontal then
if raw_def.allow_onpole or raw_def.allow_onpole_horizontal then
local offset = 0.3125
if opdef.uses_slim_pole_mount then
if othermounts_def.uses_slim_pole_mount then
offset = 0.35
end
opdef.selection_box = rdef.onpole_selection_box or opdef.selection_box
opdef.node_box = rdef.onpole_node_box or opdef.selection_box
othermounts_def.selection_box = raw_def.onpole_selection_box or othermounts_def.selection_box
othermounts_def.node_box = raw_def.onpole_node_box or othermounts_def.selection_box
if opdef.paramtype2 == "wallmounted" then
opdef.node_box.wall_side[1] = def.node_box.wall_side[1] - offset
opdef.node_box.wall_side[4] = def.node_box.wall_side[4] - offset
if othermounts_def.paramtype2 == "wallmounted" then
othermounts_def.node_box.wall_side[1] = def.node_box.wall_side[1] - offset
othermounts_def.node_box.wall_side[4] = def.node_box.wall_side[4] - offset
opdef.selection_box.wall_side[1] = def.selection_box.wall_side[1] - offset
opdef.selection_box.wall_side[4] = def.selection_box.wall_side[4] - offset
othermounts_def.selection_box.wall_side[1] = def.selection_box.wall_side[1] - offset
othermounts_def.selection_box.wall_side[4] = def.selection_box.wall_side[4] - offset
else
opdef.node_box.fixed[3] = def.node_box.fixed[3] + offset
opdef.node_box.fixed[6] = def.node_box.fixed[6] + offset
othermounts_def.node_box.fixed[3] = def.node_box.fixed[3] + offset
othermounts_def.node_box.fixed[6] = def.node_box.fixed[6] + offset
opdef.selection_box.fixed[3] = def.selection_box.fixed[3] + offset
opdef.selection_box.fixed[6] = def.selection_box.fixed[6] + offset
othermounts_def.selection_box.fixed[3] = def.selection_box.fixed[3] + offset
othermounts_def.selection_box.fixed[6] = def.selection_box.fixed[6] + offset
end
opdef.groups.not_in_creative_inventory = 1
opdef.mesh = string.gsub(opdef.mesh, ".obj$", "_onpole.obj")
othermounts_def.groups.not_in_creative_inventory = 1
othermounts_def.mesh = raw_def.onpole_mesh or string.gsub(othermounts_def.mesh, "wall.obj$", "onpole.obj")
if opdef.entity_info then
opdef.entity_info.mesh = string.gsub(opdef.entity_info.mesh, ".obj$", "_onpole.obj")
if othermounts_def.entity_info then
othermounts_def.entity_info.mesh = string.gsub(othermounts_def.entity_info.mesh, "entity_wall.obj$", "entity_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 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")
if raw_def.allow_onpole then
othermounts_def.tiles[3] = raw_def.tiles[3] or "signs_lib_pole_mount.png"
othermounts_def.tiles[4] = "signs_lib_blank.png"
othermounts_def.tiles[5] = "signs_lib_blank.png"
othermounts_def.tiles[6] = "signs_lib_blank.png"
minetest.register_node(":"..no_wall_name.."_onpole", othermounts_def)
table.insert(signs_lib.lbm_restore_nodes, no_wall_name.."_onpole")
end
local ophdef = table.copy(opdef)
if raw_def.allow_onpole_horizontal then
local onpole_horiz_def = table.copy(othermounts_def)
onpole_horiz_def.tiles[3] = "signs_lib_blank.png"
onpole_horiz_def.tiles[4] = raw_def.tiles[3] or "signs_lib_pole_mount.png"
onpole_horiz_def.tiles[5] = "signs_lib_blank.png"
onpole_horiz_def.tiles[6] = "signs_lib_blank.png"
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")
minetest.register_node(":"..no_wall_name.."_onpole_horiz", onpole_horiz_def)
table.insert(signs_lib.lbm_restore_nodes, no_wall_name.."_onpole_horiz")
end
if rdef.allow_hanging then
if raw_def.allow_hanging then
local hdef = table.copy(def)
hdef.paramtype2 = "facedir"
local hanging_def = table.copy(def)
hanging_def.paramtype2 = "facedir"
local hcbox = signs_lib.make_selection_boxes(35, 32, nil, 0, 3, -18.5, true)
hdef.selection_box = rdef.hanging_selection_box or hcbox
hdef.node_box = rdef.hanging_node_box or rdef.hanging_selection_box or hcbox
hanging_def.selection_box = raw_def.hanging_selection_box or hcbox
hanging_def.node_box = raw_def.hanging_node_box or raw_def.hanging_selection_box or hcbox
hanging_def.groups.not_in_creative_inventory = 1
hanging_def.tiles[3] = raw_def.tiles[5] or "signs_lib_hangers.png"
hanging_def.tiles[4] = "signs_lib_blank.png"
hanging_def.tiles[5] = "signs_lib_blank.png"
hanging_def.tiles[6] = "signs_lib_blank.png"
hanging_def.mesh = raw_def.hanging_mesh or string.gsub(string.gsub(hanging_def.mesh, "wall.obj$", "hanging.obj"), "_facedir", "")
if hanging_def.entity_info then
hanging_def.entity_info.mesh = string.gsub(string.gsub(hanging_def.entity_info.mesh, "entity_wall.obj$", "entity_hanging.obj"), "_facedir", "")
hanging_def.entity_info.yaw = signs_lib.standard_yaw
end
minetest.register_node(":"..no_wall_name.."_hanging", hanging_def)
table.insert(signs_lib.lbm_restore_nodes, no_wall_name.."_hanging")
end
if raw_def.allow_yard then
local ydef = table.copy(def)
ydef.paramtype2 = "facedir"
local ycbox = signs_lib.make_selection_boxes(35, 34.5, false, 0, -1.25, -19.69, true)
ydef.selection_box = raw_def.yard_selection_box or ycbox
ydef.tiles[3] = raw_def.tiles[6] or "default_wood.png"
ydef.tiles[4] = "signs_lib_blank.png"
ydef.tiles[5] = "signs_lib_blank.png"
ydef.tiles[6] = "signs_lib_blank.png"
ydef.node_box = raw_def.yard_node_box or raw_def.yard_selection_box or ycbox
hdef.groups.not_in_creative_inventory = 1
hdef.tiles[3] = "signs_lib_hangers.png"
hdef.mesh = string.gsub(string.gsub(hdef.mesh, "_facedir.obj", ".obj"), ".obj$", "_hanging.obj")
ydef.groups.not_in_creative_inventory = 1
ydef.mesh = raw_def.yard_mesh or string.gsub(string.gsub(ydef.mesh, "wall.obj$", "yard.obj"), "_facedir", "")
if hdef.entity_info then
hdef.entity_info.mesh = string.gsub(string.gsub(hdef.entity_info.mesh, "_facedir.obj", ".obj"), ".obj$", "_hanging.obj")
hdef.entity_info.yaw = signs_lib.standard_yaw
if ydef.entity_info then
ydef.entity_info.mesh = string.gsub(string.gsub(ydef.entity_info.mesh, "entity_wall.obj$", "entity_yard.obj"), "_facedir", "")
ydef.entity_info.yaw = signs_lib.standard_yaw
end
minetest.register_node(":"..name.."_hanging", hdef)
table.insert(signs_lib.lbm_restore_nodes, name.."_hanging")
minetest.register_node(":"..no_wall_name.."_yard", ydef)
table.insert(signs_lib.lbm_restore_nodes, no_wall_name.."_yard")
end
if rdef.allow_widefont then
if raw_def.allow_widefont then
table.insert(signs_lib.old_widefont_signs, name.."_widefont")
table.insert(signs_lib.old_widefont_signs, name.."_widefont_onpole")
table.insert(signs_lib.old_widefont_signs, name.."_widefont_hanging")
table.insert(signs_lib.old_widefont_signs, name.."_widefont_yard")
end
end

BIN
models/basic_signs wooden yard sign two sticks.blend

Binary file not shown.

232
models/signs_lib_standard_facedir_sign_onpole.obj

@ -0,0 +1,232 @@
# Blender v2.79 (sub 0) OBJ File: 'standard wooden sign.blend'
# www.blender.org
o facedir,_on_pole_Cube.005
v 0.437500 -0.312500 0.812500
v 0.437500 -0.312500 0.750000
v 0.437500 0.312500 0.750000
v -0.437500 -0.312500 0.812500
v -0.437500 -0.312500 0.750000
v -0.437500 0.312500 0.812500
v 0.437500 0.312500 0.812500
v -0.437500 0.312500 0.750000
v -0.125000 -0.187500 0.812500
v -0.125000 -0.187500 0.875000
v -0.125000 0.187500 0.875000
v 0.125000 -0.187500 0.812500
v 0.164062 -0.125000 1.164063
v -0.164063 -0.125000 1.164063
v 0.164062 -0.187500 1.164063
v -0.164063 -0.187500 1.164063
v 0.125000 0.125000 0.812500
v -0.125000 -0.125000 1.125000
v 0.164062 0.187500 0.812500
v 0.164062 0.187500 1.125000
v 0.164062 0.125000 0.812500
v 0.164062 0.125000 1.125000
v 0.125000 -0.125000 0.812500
v 0.125000 -0.125000 1.125000
v 0.164062 -0.125000 0.812500
v 0.164062 -0.187500 0.812500
v -0.164063 0.187500 0.812500
v -0.164063 0.125000 0.812500
v -0.125000 0.125000 0.812500
v -0.125000 0.125000 1.125000
v -0.164063 -0.125000 0.812500
v -0.164063 -0.125000 1.125000
v -0.164063 -0.187500 0.812500
v -0.164063 -0.187500 1.125000
v -0.125000 -0.125000 0.812500
v 0.125000 0.187500 0.875000
v 0.125000 -0.187500 0.875000
v 0.125000 0.187500 0.812500
v -0.125000 0.187500 0.812500
v 0.164062 -0.187500 1.125000
v 0.164062 -0.125000 1.125000
v -0.164063 0.125000 1.164063
v 0.164062 0.125000 1.164063
v -0.164063 0.187500 1.164063
v 0.164062 0.187500 1.164063
v -0.164063 0.125000 1.125000
v -0.164063 0.187500 1.125000
v 0.125000 -0.187500 1.125000
v 0.125000 0.187500 1.125000
v 0.125000 0.125000 1.125000
v -0.125000 0.187500 1.125000
v -0.125000 -0.187500 1.125000
v 0.125000 -0.125000 0.875000
v 0.125000 0.125000 0.875000
v -0.125000 0.125000 0.875000
v -0.125000 -0.125000 0.875000
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.453125 0.640625
vt 0.453125 0.593750
vt 0.312500 0.593750
vt 0.312500 0.640625
vt 0.234375 0.593750
vt 0.234375 0.640625
vt 0.093750 0.640625
vt 0.093750 0.593750
vt 0.312500 0.640625
vt 0.312500 0.921875
vt 0.453125 0.921875
vt 0.453125 0.640625
vt 0.703125 0.664062
vt 0.703125 0.992188
vt 0.781250 0.992188
vt 0.781250 0.664062
vt 0.484375 0.664062
vt 0.484375 0.992188
vt 0.562500 0.992188
vt 0.562500 0.664062
vt 0.921875 0.992188
vt 0.921875 0.664062
vt 0.453125 0.640625
vt 0.453125 0.593750
vt 0.312500 0.593750
vt 0.312500 0.640625
vt 0.234375 0.593750
vt 0.234375 0.640625
vt 0.093750 0.640625
vt 0.093750 0.593750
vt 0.703125 0.664062
vt 0.703125 0.992188
vt 0.781250 0.992188
vt 0.781250 0.664062
vt 0.484375 0.664062
vt 0.484375 0.992188
vt 0.562500 0.992188
vt 0.562500 0.664062
vt 0.234375 0.640625
vt 0.234375 0.921875
vt 0.093750 0.921875
vt 0.093750 0.640625
vt 0.921875 0.992188
vt 0.921875 0.664062
vt 0.093750 0.640625
vt 0.093750 0.992188
vt 0.015625 0.992188
vt 0.015625 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.921875
vt 0.093750 0.921875
vt 0.312500 0.992188
vt 0.453125 0.992188
vt 0.093750 0.992188
vt 0.015625 0.992188
vt 0.015625 0.640625
vt 0.234375 0.640625
vt 0.234375 0.992188
vt 0.312500 0.992188
vt 0.312500 0.640625
vt 0.312500 0.992188
vt 0.453125 0.992188
vt 0.093750 0.992188
vt 0.015625 0.992188
vt 0.015625 0.640625
vt 0.234375 0.992188
vt 0.234375 0.640625
vt 0.234375 0.992188
vt 0.312500 0.992188
vt 0.312500 0.640625
vt 0.093750 0.992188
vt 0.015625 0.992188
vt 0.015625 0.640625
vt 0.234375 0.992188
vt 0.234375 0.640625
vt 0.234375 0.992188
vt 0.312500 0.992188
vt 0.312500 0.640625
vt 0.703125 0.578125
vt 0.156250 0.578125
vt 0.156250 0.031250
vt 0.703125 0.031250
vt 0.312500 0.640625
vt 0.312500 0.921875
vt 0.453125 0.921875
vt 0.453125 0.640625
vt 0.703125 0.703125
vt 0.562500 0.703125
vt 0.562500 0.953125
vt 0.703125 0.953125
vt 0.703125 0.703125
vt 0.562500 0.703125
vt 0.562500 0.953125
vt 0.703125 0.953125
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
vn 1.0000 0.0000 0.0000
vn -1.0000 0.0000 0.0000
g facedir,_on_pole_Cube.005_front-back
s off
f 8/1/1 3/2/1 2/3/1 5/4/1
f 7/5/2 6/6/2 4/7/2 1/8/2
g facedir,_on_pole_Cube.005_edges
f 4/9/3 5/10/3 2/11/3 1/12/3
f 7/13/4 3/14/4 8/15/4 6/16/4
f 7/13/5 1/17/5 2/18/5 3/14/5
f 4/9/6 6/16/6 8/15/6 5/10/6
g facedir,_on_pole_Cube.005_pole_mount
f 9/19/6 10/20/6 11/21/6 39/22/6
f 12/23/5 38/24/5 36/25/5 37/26/5
f 20/27/5 45/28/5 43/29/5 22/30/5
f 44/31/6 47/32/6 46/33/6 42/34/6
f 52/35/5 10/36/5 56/37/5 18/38/5
f 46/39/3 22/40/3 43/41/3 42/42/3
f 44/43/4 45/44/4 20/45/4 47/46/4
f 42/42/2 43/41/2 45/47/2 44/48/2
f 41/49/5 13/50/5 15/51/5 40/52/5
f 14/53/6 32/54/6 34/55/6 16/56/6
f 34/57/3 40/58/3 15/59/3 16/60/3
f 14/61/4 13/62/4 41/63/4 32/64/4
f 24/65/6 53/66/6 37/67/6 48/68/6
f 16/60/2 15/59/2 13/69/2 14/70/2
f 50/71/3 17/72/3 21/73/3 22/74/3
f 20/75/4 19/76/4 38/77/4 49/78/4
f 49/79/6 36/80/6 54/81/6 50/71/6
f 22/30/5 21/82/5 19/83/5 20/27/5
f 48/68/3 12/84/3 26/85/3 40/86/3
f 41/87/4 25/88/4 23/89/4 24/90/4
f 40/52/5 26/91/5 25/92/5 41/49/5
f 46/33/3 28/93/3 29/94/3 30/95/3
f 47/32/6 27/96/6 28/93/6 46/33/6
f 51/97/4 39/98/4 27/99/4 47/100/4
f 34/55/3 33/101/3 9/102/3 52/103/3
f 32/54/6 31/104/6 33/101/6 34/55/6
f 18/105/4 35/106/4 31/107/4 32/108/4
f 10/20/2 37/26/2 36/25/2 11/21/2
f 9/109/3 12/110/3 37/26/3 10/20/3
f 11/21/4 36/25/4 38/111/4 39/112/4
f 30/113/5 55/114/5 11/115/5 51/116/5
f 52/117/1 18/118/1 24/119/1 48/120/1
f 30/121/1 51/122/1 49/123/1 50/124/1

0
models/signs_lib_standard_wall_sign_facedir.obj → models/signs_lib_standard_facedir_sign_wall.obj

0
models/signs_lib_standard_wall_sign_entity_hanging.obj → models/signs_lib_standard_sign_entity_hanging.obj

0
models/signs_lib_standard_wall_sign_entity_onpole.obj → models/signs_lib_standard_sign_entity_onpole.obj

0
models/signs_lib_standard_wall_sign_entity.obj → models/signs_lib_standard_sign_entity_wall.obj

15
models/signs_lib_standard_sign_entity_yard.obj

@ -0,0 +1,15 @@
# Blender v2.79 (sub 0) OBJ File: 'basic_signs wooden yard sign.blend'
# www.blender.org
o Plane
v 0.406250 -0.218750 -0.074219
v -0.406250 -0.218750 -0.074219
v 0.406250 0.343750 -0.074219
v -0.406250 0.343750 -0.074219
vt 0.000000 0.000000
vt 1.000000 0.000000
vt 1.000000 1.000000
vt 0.000000 1.000000
vn 0.0000 -0.0000 -1.0000
g Plane_Plane_None
s off
f 1/1/1 2/2/1 4/3/1 3/4/1

0
models/signs_lib_standard_wall_sign_hanging.obj → models/signs_lib_standard_sign_hanging.obj

232
models/signs_lib_standard_sign_onpole.obj

@ -0,0 +1,232 @@
# Blender v2.79 (sub 0) OBJ File: 'standard wooden sign.blend'
# www.blender.org
o wallmounted,_on_pole_Cube.002
v 0.437500 -0.812500 -0.312500
v 0.437500 -0.750000 -0.312500
v 0.437500 -0.750000 0.312500
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.812500 0.312500
v -0.437500 -0.750000 0.312500
v -0.125000 -0.812500 -0.187500
v -0.125000 -0.875000 -0.187500
v -0.125000 -0.875000 0.187500
v 0.125000 -0.812500 -0.187500
v 0.164062 -1.164063 -0.125000
v -0.164063 -1.164063 -0.125000
v 0.164062 -1.164063 -0.187500
v -0.164063 -1.164063 -0.187500
v 0.125000 -0.812500 0.125000
v -0.125000 -1.125000 -0.125000
v 0.164062 -0.812500 0.187500
v 0.164062 -1.125000 0.187500
v 0.164062 -0.812500 0.125000
v 0.164062 -1.125000 0.125000
v 0.125000 -0.812500 -0.125000
v 0.125000 -1.125000 -0.125000
v 0.164062 -0.812500 -0.125000
v 0.164062 -0.812500 -0.187500
v -0.164063 -0.812500 0.187500
v -0.164063 -0.812500 0.125000
v -0.125000 -0.812500 0.125000
v -0.125000 -1.125000 0.125000
v -0.164063 -0.812500 -0.125000
v -0.164063 -1.125000 -0.125000
v -0.164063 -0.812500 -0.187500
v -0.164063 -1.125000 -0.187500
v -0.125000 -0.812500 -0.125000
v 0.125000 -0.875000 0.187500
v 0.125000 -0.875000 -0.187500
v 0.125000 -0.812500 0.187500
v -0.125000 -0.812500 0.187500
v 0.164062 -1.125000 -0.187500
v 0.164062 -1.125000 -0.125000
v -0.164063 -1.164063 0.125000
v 0.164062 -1.164063 0.125000
v -0.164063 -1.164063 0.187500
v 0.164062 -1.164063 0.187500
v -0.164063 -1.125000 0.125000
v -0.164063 -1.125000 0.187500
v 0.125000 -1.125000 -0.187500
v 0.125000 -1.125000 0.187500
v 0.125000 -1.125000 0.125000
v -0.125000 -1.125000 0.187500
v -0.125000 -1.125000 -0.187500
v 0.125000 -0.875000 -0.125000
v 0.125000 -0.875000 0.125000
v -0.125000 -0.875000 0.125000
v -0.125000 -0.875000 -0.125000
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.453125 0.640625
vt 0.453125 0.593750
vt 0.312500 0.593750
vt 0.312500 0.640625
vt 0.234375 0.593750
vt 0.234375 0.640625
vt 0.093750 0.640625
vt 0.093750 0.593750
vt 0.312500 0.640625
vt 0.312500 0.921875
vt 0.453125 0.921875
vt 0.453125 0.640625
vt 0.703125 0.664062
vt 0.703125 0.992188
vt 0.781250 0.992188
vt 0.781250 0.664062
vt 0.484375 0.664062
vt 0.484375 0.992188
vt 0.562500 0.992188
vt 0.562500 0.664062
vt 0.921875 0.992188
vt 0.921875 0.664062
vt 0.453125 0.640625
vt 0.453125 0.593750
vt 0.312500 0.593750
vt 0.312500 0.640625
vt 0.234375 0.593750
vt 0.234375 0.640625
vt 0.093750 0.640625
vt 0.093750 0.593750
vt 0.703125 0.664062
vt 0.703125 0.992188
vt 0.781250 0.992188
vt 0.781250 0.664062
vt 0.484375 0.664062
vt 0.484375 0.992188
vt 0.562500 0.992188
vt 0.562500 0.664062
vt 0.234375 0.640625
vt 0.234375 0.921875
vt 0.093750 0.921875
vt 0.093750 0.640625
vt 0.921875 0.992188
vt 0.921875 0.664062
vt 0.093750 0.640625
vt 0.093750 0.992188
vt 0.015625 0.992188
vt 0.015625 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.921875
vt 0.093750 0.921875
vt 0.312500 0.992188
vt 0.453125 0.992188
vt 0.093750 0.992188
vt 0.015625 0.992188
vt 0.015625 0.640625
vt 0.234375 0.640625
vt 0.234375 0.992188
vt 0.312500 0.992188
vt 0.312500 0.640625
vt 0.312500 0.992188
vt 0.453125 0.992188
vt 0.093750 0.992188
vt 0.015625 0.992188
vt 0.015625 0.640625
vt 0.234375 0.992188
vt 0.234375 0.640625
vt 0.234375 0.992188
vt 0.312500 0.992188
vt 0.312500 0.640625
vt 0.093750 0.992188
vt 0.015625 0.992188
vt 0.015625 0.640625
vt 0.234375 0.992188
vt 0.234375 0.640625
vt 0.234375 0.992188
vt 0.312500 0.992188
vt 0.312500 0.640625
vt 0.703125 0.578125
vt 0.156250 0.578125
vt 0.156250 0.031250
vt 0.703125 0.031250
vt 0.312500 0.640625
vt 0.312500 0.921875
vt 0.453125 0.921875
vt 0.453125 0.640625
vt 0.703125 0.703125
vt 0.562500 0.703125
vt 0.562500 0.953125
vt 0.703125 0.953125
vt 0.703125 0.703125
vt 0.562500 0.703125
vt 0.562500 0.953125
vt 0.703125 0.953125
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 wallmounted,_on_pole_Cube.002_front-back
s off
f 8/1/1 3/2/1 2/3/1 5/4/1
f 7/5/2 6/6/2 4/7/2 1/8/2
g wallmounted,_on_pole_Cube.002_edges
f 4/9/3 5/10/3 2/11/3 1/12/3
f 7/13/4 3/14/4 8/15/4 6/16/4
f 7/13/5 1/17/5 2/18/5 3/14/5
f 4/9/6 6/16/6 8/15/6 5/10/6
g wallmounted,_on_pole_Cube.002_pole_mount
f 9/19/6 10/20/6 11/21/6 39/22/6
f 12/23/5 38/24/5 36/25/5 37/26/5
f 20/27/5 45/28/5 43/29/5 22/30/5
f 44/31/6 47/32/6 46/33/6 42/34/6
f 52/35/5 10/36/5 56/37/5 18/38/5
f 46/39/3 22/40/3 43/41/3 42/42/3
f 44/43/4 45/44/4 20/45/4 47/46/4
f 42/42/2 43/41/2 45/47/2 44/48/2
f 41/49/5 13/50/5 15/51/5 40/52/5
f 14/53/6 32/54/6 34/55/6 16/56/6
f 34/57/3 40/58/3 15/59/3 16/60/3
f 14/61/4 13/62/4 41/63/4 32/64/4
f 24/65/6 53/66/6 37/67/6 48/68/6
f 16/60/2 15/59/2 13/69/2 14/70/2
f 50/71/3 17/72/3 21/73/3 22/74/3
f 20/75/4 19/76/4 38/77/4 49/78/4
f 49/79/6 36/80/6 54/81/6 50/71/6
f 22/30/5 21/82/5 19/83/5 20/27/5
f 48/68/3 12/84/3 26/85/3 40/86/3
f 41/87/4 25/88/4 23/89/4 24/90/4
f 40/52/5 26/91/5 25/92/5 41/49/5
f 46/33/3 28/93/3 29/94/3 30/95/3
f 47/32/6 27/96/6 28/93/6 46/33/6
f 51/97/4 39/98/4 27/99/4 47/100/4
f 34/55/3 33/101/3 9/102/3 52/103/3
f 32/54/6 31/104/6 33/101/6 34/55/6
f 18/105/4 35/106/4 31/107/4 32/108/4
f 10/20/2 37/26/2 36/25/2 11/21/2
f 9/109/3 12/110/3 37/26/3 10/20/3
f 11/21/4 36/25/4 38/111/4 39/112/4
f 30/113/5 55/114/5 11/115/5 51/116/5
f 52/117/1 18/118/1 24/119/1 48/120/1
f 30/121/1 51/122/1 49/123/1 50/124/1

0
models/signs_lib_standard_wall_sign.obj → models/signs_lib_standard_sign_wall.obj

85
models/signs_lib_standard_sign_yard.obj

@ -0,0 +1,85 @@
# Blender v2.79 (sub 0) OBJ File: 'basic_signs wooden yard sign.blend'
# www.blender.org
o Cube
v 0.437500 -0.250000 -0.000000
v 0.437500 -0.250000 -0.062500
v 0.437500 0.375000 0.000000
v 0.437500 0.375000 -0.062500
v -0.437500 -0.250000 -0.000000
v -0.437500 -0.250000 -0.062500
v -0.437500 0.375000 0.000000
v -0.437500 0.375000 -0.062500
v 0.437500 -0.250000 -0.000000
v 0.437500 -0.250000 -0.062500
v 0.437500 0.375000 0.000000
v 0.437500 0.375000 -0.062500
v -0.437500 -0.250000 -0.000000
v -0.437500 -0.250000 -0.062500
v -0.437500 0.375000 0.000000
v -0.437500 0.375000 -0.062500
v 0.062500 -0.500000 0.000000
v 0.062500 0.250000 0.000000
v 0.062500 -0.500000 0.062500
v 0.062500 0.250000 0.062500
v -0.062500 -0.500000 0.000000
v -0.062500 0.250000 0.000000
v -0.062500 -0.500000 0.062500
v -0.062500 0.250000 0.062500
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.000000 0.750000
vt 2.000000 0.750000
vt 2.000000 0.875000
vt 0.000000 0.875000
vt 0.000000 0.125000
vt 2.000000 0.125000
vt 2.000000 0.375000
vt 0.000000 0.375000
vt 2.000000 0.500000
vt 0.000000 0.500000
vt 0.812500 0.875000
vt 0.562500 0.875000
vt 0.562500 1.000000
vt 0.812500 1.000000
vt 0.125000 0.875000
vt 0.375000 0.875000
vt 0.375000 1.000000
vt 0.125000 1.000000
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
vn 1.0000 0.0000 0.0000
vn -1.0000 0.0000 0.0000
g Cube_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_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
g Cube_Cube_default_wood
f 17/19/5 18/20/5 20/21/5 19/22/5
f 19/23/2 20/24/2 24/25/2 23/26/2
f 23/26/6 24/25/6 22/27/6 21/28/6
f 21/28/1 22/27/1 18/20/1 17/19/1
f 19/29/3 23/30/3 21/31/3 17/32/3
f 24/33/4 20/34/4 18/35/4 22/36/4

110
models/signs_lib_standard_sign_yard_two_sticks.obj

@ -0,0 +1,110 @@
# Blender v2.79 (sub 0) OBJ File: 'basic_signs wooden yard sign two sticks.blend'
# www.blender.org
o Cube
v 0.437500 -0.250000 -0.000000
v 0.437500 -0.250000 -0.062500
v 0.437500 0.375000 0.000000
v -0.437500 0.375000 0.000000
v -0.437500 0.375000 -0.062500
v 0.437500 0.375000 -0.062500
v -0.437500 -0.250000 -0.000000
v -0.437500 -0.250000 -0.062500
v 0.421875 -0.500000 0.000000
v 0.421875 0.250000 0.000000
v 0.421875 -0.500000 0.031250
v 0.390625 -0.500000 0.000000
v 0.390625 0.250000 0.000000
v 0.390625 -0.500000 0.031250
v -0.390625 -0.500000 0.000000
v -0.390625 -0.500000 0.031250
v -0.421875 -0.500000 0.000000
v -0.421875 0.250000 0.000000
v -0.421875 -0.500000 0.031250
v 0.421875 0.218750 0.031250
v 0.390625 0.218750 0.031250
v -0.390625 0.250000 0.000000
v -0.390625 0.218750 0.031250
v -0.421875 0.218750 0.031250
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.000000 0.375000
vt 1.437500 0.375000
vt 1.437500 0.437500
vt 0.000000 0.437500
vt 1.500000 0.500000
vt 0.000000 0.500000
vt 1.500000 0.562500
vt 0.000000 0.562500
vt 0.750000 0.875000
vt 0.625000 0.875000
vt 0.625000 1.000000
vt 0.750000 1.000000
vt 1.437500 0.625000
vt 0.000000 0.625000
vt 0.000000 0.375000
vt 1.437500 0.375000
vt 1.437500 0.437500
vt 0.000000 0.437500
vt 1.500000 0.500000
vt 0.000000 0.500000
vt 1.500000 0.562500
vt 0.000000 0.562500
vt 0.750000 0.875000
vt 0.625000 0.875000
vt 0.625000 1.000000
vt 0.750000 1.000000
vt 1.437500 0.625000
vt 0.000000 0.625000
vt 0.312500 1.000000
vt 0.187500 1.000000
vt 0.187500 0.875000
vt 0.312500 0.875000
vt 0.312500 1.000000
vt 0.187500 1.000000
vt 0.187500 0.875000
vt 0.312500 0.875000
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
vn 1.0000 -0.0000 0.0000
vn -1.0000 -0.0000 0.0000
vn 0.0000 0.7071 0.7071
g Cube_Cube_front-back
s off
f 5/1/1 6/2/1 2/3/1 8/4/1
f 3/5/2 4/6/2 7/7/2 1/8/2
g Cube_Cube_edges
f 7/9/3 8/10/3 2/11/3 1/12/3
f 3/13/4 6/14/4 5/15/4 4/16/4
f 3/13/5 1/17/5 2/18/5 6/14/5
f 7/9/6 4/16/6 5/15/6 8/10/6
g Cube_Cube_sticks
f 11/19/2 20/20/2 21/21/2 14/22/2
f 14/22/6 21/21/6 13/23/6 12/24/6
f 12/24/1 13/23/1 10/25/1 9/26/1
f 11/27/3 14/28/3 12/29/3 9/30/3
f 9/26/5 10/25/5 20/31/5 11/32/5
f 16/33/2 23/34/2 24/35/2 19/36/2
f 19/36/6 24/35/6 18/37/6 17/38/6
f 17/38/1 18/37/1 22/39/1 15/40/1
f 16/41/3 19/42/3 17/43/3 15/44/3
f 15/40/5 22/39/5 23/45/5 16/46/5
f 10/47/7 13/48/7 21/49/7 20/50/7
f 22/51/7 18/52/7 24/53/7 23/54/7

440
models/signs_lib_standard_wall_sign_facedir_onpole.obj

@ -1,440 +0,0 @@
# Blender v2.79 (sub 0) OBJ File: 'basic_signs wooden sign.blend'
# www.blender.org
o sign_on_pole.001_Cube.002
v 0.437500 -0.312500 0.812500
v 0.437500 -0.312500 0.750000
v 0.437500 0.312500 0.812500
v 0.437500 0.312500 0.750000
v -0.437500 -0.312500 0.812500
v -0.437500 -0.312500 0.750000
v -0.437500 0.312500 0.812500
v -0.437500 0.312500 0.750000
v 0.437500 -0.312500 0.812500
v 0.437500 -0.312500 0.750000
v 0.437500 0.312500 0.812500
v 0.437500 0.312500 0.750000
v -0.437500 -0.312500 0.812500
v -0.437500 -0.312500 0.750000
v -0.437500 0.312500 0.812500
v -0.437500 0.312500 0.750000
v -0.125000 -0.187500 0.812500
v -0.125000 -0.187500 0.875000
v -0.125000 0.187500 0.812500
v -0.125000 0.187500 0.875000
v 0.125000 0.187500 0.812500
v 0.125000 -0.187500 0.812500
v 0.125000 -0.187500 0.875000
v 0.125000 0.187500 0.875000
v -0.125000 -0.187500 1.125000
v -0.125000 -0.187500 0.812500
v -0.125000 -0.125000 1.125000
v -0.125000 -0.125000 0.812500
v -0.164063 -0.187500 1.125000
v -0.164063 -0.187500 0.812500
v -0.164063 -0.125000 1.125000
v -0.164063 -0.125000 0.812500
v -0.125000 0.125000 1.125000
v -0.125000 0.125000 0.812500
v -0.125000 0.187500 1.125000
v -0.125000 0.187500 0.812500
v -0.164063 0.125000 1.125000
v -0.164063 0.125000 0.812500
v -0.164063 0.187500 1.125000
v -0.164063 0.187500 0.812500
v 0.164062 -0.187500 1.125000
v 0.164062 -0.187500 0.812500
v 0.164062 -0.125000 1.125000
v 0.164062 -0.125000 0.812500
v 0.125000 -0.187500 1.125000
v 0.125000 -0.187500 0.812500
v 0.125000 -0.125000 1.125000
v 0.125000 -0.125000 0.812500
v 0.164062 0.125000 1.125000
v 0.164062 0.125000 0.812500
v 0.164062 0.187500 1.125000
v 0.164062 0.187500 0.812500
v 0.125000 0.125000 1.125000
v 0.125000 0.125000 0.812500
v 0.125000 0.187500 1.125000
v 0.125000 0.187500 0.812500
v -0.164063 -0.187500 1.164063
v 0.164062 -0.187500 1.164063
v -0.164063 -0.125000 1.164063
v 0.164062 -0.125000 1.164063
v -0.164063 -0.187500 1.125000
v 0.164062 -0.187500 1.125000
v -0.164063 -0.125000 1.125000
v 0.164062 -0.125000 1.125000
v -0.164063 0.125000 1.164063
v 0.164062 0.125000 1.164063
v -0.164063 0.187500 1.164063
v 0.164062 0.187500 1.164063
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
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
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
vn 0.0000 1.0000 0.0000
vn 1.0000 0.0000 0.0000
vn -1.0000 0.0000 0.0000
g sign_on_pole.001_Cube.002_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 sign_on_pole.001_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.001_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.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

440
models/signs_lib_standard_wall_sign_onpole.obj

@ -1,440 +0,0 @@
# Blender v2.79 (sub 0) OBJ File: 'basic_signs wooden sign.blend'
# www.blender.org
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
v 0.437500 -0.750000 0.312500
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
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
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
v -0.125000 -0.812500 -0.187500
v -0.125000 -0.875000 -0.187500
v -0.125000 -0.812500 0.187500
v -0.125000 -0.875000 0.187500
v 0.125000 -0.812500 0.187500
v 0.125000 -0.812500 -0.187500
v 0.125000 -0.875000 -0.187500
v 0.125000 -0.875000 0.187500
v -0.125000 -1.125000 -0.187500
v -0.125000 -0.812500 -0.187500
v -0.125000 -1.125000 -0.125000
v -0.125000 -0.812500 -0.125000
v -0.164063 -1.125000 -0.187500
v -0.164063 -0.812500 -0.187500
v -0.164063 -1.125000 -0.125000
v -0.164063 -0.812500 -0.125000
v -0.125000 -1.125000 0.125000
v -0.125000 -0.812500 0.125000
v -0.125000 -1.125000 0.187500
v -0.125000 -0.812500 0.187500
v -0.164063 -1.125000 0.125000
v -0.164063 -0.812500 0.125000
v -0.164063 -1.125000 0.187500
v -0.164063 -0.812500 0.187500
v 0.164062 -1.125000 -0.187500
v 0.164062 -0.812500 -0.187500
v 0.164062 -1.125000 -0.125000
v 0.164062 -0.812500 -0.125000
v 0.125000 -1.125000 -0.187500
v 0.125000 -0.812500 -0.187500
v 0.125000 -1.125000 -0.125000
v 0.125000 -0.812500 -0.125000
v 0.164062 -1.125000 0.125000
v 0.164062 -0.812500 0.125000
v 0.164062 -1.125000 0.187500
v 0.164062 -0.812500 0.187500
v 0.125000 -1.125000 0.125000
v 0.125000 -0.812500 0.125000
v 0.125000 -1.125000 0.187500
v 0.125000 -0.812500 0.187500
v -0.164063 -1.164063 -0.187500
v 0.164062 -1.164063 -0.187500
v -0.164063 -1.164063 -0.125000
v 0.164062 -1.164063 -0.125000
v -0.164063 -1.125000 -0.187500
v 0.164062 -1.125000 -0.187500
v -0.164063 -1.125000 -0.125000
v 0.164062 -1.125000 -0.125000
v -0.164063 -1.164063 0.125000
v 0.164062 -1.164063 0.125000
v -0.164063 -1.164063 0.187500
v 0.164062 -1.164063 0.187500
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