Merge branch 'sign'

This commit is contained in:
Wuzzy 2017-07-26 16:03:18 +02:00
commit 2e5d9bba1b
13 changed files with 463 additions and 61 deletions

@ -27,6 +27,13 @@ local NUMBER_OF_LINES = 4
local LINE_HEIGHT = 14 local LINE_HEIGHT = 14
local CHAR_WIDTH = 5 local CHAR_WIDTH = 5
-- Helper functions
local function round(num, idp)
local mult = 10^(idp or 0)
return math.floor(num * mult + 0.5) / mult
end
local string_to_array = function(str) local string_to_array = function(str)
local tab = {} local tab = {}
for i=1,string.len(str) do for i=1,string.len(str) do
@ -103,9 +110,14 @@ local generate_line = function(s, ypos)
return texture return texture
end end
local generate_texture = function(lines) local generate_texture = function(lines, signnodename)
local texture = "[combine:"..SIGN_WIDTH.."x"..SIGN_WIDTH local texture = "[combine:"..SIGN_WIDTH.."x"..SIGN_WIDTH
local ypos = 9 local ypos
if signnodename == "mcl_signs:wall_sign" then
ypos = 29
else
ypos = -2
end
for i = 1, #lines do for i = 1, #lines do
texture = texture..generate_line(lines[i], ypos) texture = texture..generate_line(lines[i], ypos)
ypos = ypos + LINE_HEIGHT ypos = ypos + LINE_HEIGHT
@ -113,23 +125,35 @@ local generate_texture = function(lines)
return texture return texture
end end
local n = 7/16 - 1/128 local n = 23/56 - 1/128
local signs = { local signtext_info_wall = {
{delta = {x = 0, y = 0, z = n}, yaw = 0}, {delta = {x = 0, y = 0, z = n}, yaw = 0},
{delta = {x = n, y = 0, z = 0}, yaw = math.pi / -2}, {delta = {x = n, y = 0, z = 0}, yaw = math.pi / -2},
{delta = {x = 0, y = 0, z = -n}, yaw = math.pi}, {delta = {x = 0, y = 0, z = -n}, yaw = math.pi},
{delta = {x = -n, y = 0, z = 0}, yaw = math.pi / 2}, {delta = {x = -n, y = 0, z = 0}, yaw = math.pi / 2},
} }
local m = 1/32 + 1/128 local signtext_info_standing = {}
local signs_yard = { local m = -1/16 + 1/64
{delta = {x = 0, y = 0, z = -m}, yaw = 0}, for rot=0, 15 do
{delta = {x = -m, y = 0, z = 0}, yaw = math.pi / -2}, local yaw = math.pi*2 - (((math.pi*2) / 16) * rot)
{delta = {x = 0, y = 0, z = m}, yaw = math.pi}, local delta = vector.multiply(minetest.yaw_to_dir(yaw), m)
{delta = {x = m, y = 0, z = 0}, yaw = math.pi / 2}, table.insert(signtext_info_standing, { delta = delta, yaw = yaw })
} end
local function get_rotation_level(facedir, nodename)
local rl = facedir * 4
if nodename == "mcl_signs:standing_sign22_5" then
rl = rl + 1
elseif nodename == "mcl_signs:standing_sign45" then
rl = rl + 2
elseif nodename == "mcl_signs:standing_sign67_5" then
rl = rl + 3
end
return rl
end
local sign_groups = {handy=1,axey=1, flammable=1, deco_block=1, material_wood=1, attached_node=1} local sign_groups = {handy=1,axey=1, flammable=1, deco_block=1, material_wood=1, attached_node=1}
@ -158,24 +182,36 @@ local update_sign = function(pos, fields, sender)
local objects = minetest.get_objects_inside_radius(pos, 0.5) local objects = minetest.get_objects_inside_radius(pos, 0.5)
for _, v in ipairs(objects) do for _, v in ipairs(objects) do
if v:get_entity_name() == "mcl_signs:text" then if v:get_entity_name() == "mcl_signs:text" then
v:set_properties({textures={generate_texture(create_lines(text))}}) v:set_properties({textures={generate_texture(create_lines(text), v:get_luaentity()._signnodename)}})
return return
end end
end end
-- if there is no entity -- if there is no entity
local sign_info local sign_info
if minetest.get_node(pos).name == "mcl_signs:standing_sign" then local n = minetest.get_node(pos)
sign_info = signs_yard[minetest.get_node(pos).param2 + 1] local nn = n.name
elseif minetest.get_node(pos).name == "mcl_signs:wall_sign" then if nn == "mcl_signs:standing_sign" or nn == "mcl_signs:standing_sign22_5" or nn == "mcl_signs:standing_sign45" or nn == "mcl_signs:standing_sign67_5" then
sign_info = signs[minetest.get_node(pos).param2 + 1] sign_info = signtext_info_standing[get_rotation_level(n.param2, nn) + 1]
elseif nn == "mcl_signs:wall_sign" then
sign_info = signtext_info_wall[n.param2 + 1]
end end
if sign_info == nil then if sign_info == nil then
return return
end end
local text_entity = minetest.add_entity({x = pos.x + sign_info.delta.x, local text_entity = minetest.add_entity({
y = pos.y + sign_info.delta.y, x = pos.x + sign_info.delta.x,
z = pos.z + sign_info.delta.z}, "mcl_signs:text") y = pos.y + sign_info.delta.y,
z = pos.z + sign_info.delta.z}, "mcl_signs:text")
if nn == "mcl_signs:standing_sign22_5" then
sign_info.yaw = sign_info.yaw + math.pi / 8
elseif nn == "mcl_signs:standing_sign45" then
sign_info.yaw = sign_info.yaw + 2 * (math.pi / 8)
elseif nn == "mcl_signs:standing_sign67_5" then
sign_info.yaw = sign_info.yaw + 3 * (math.pi / 8)
end
text_entity:get_luaentity()._signnodename = nn
text_entity:setyaw(sign_info.yaw) text_entity:setyaw(sign_info.yaw)
end end
@ -210,9 +246,10 @@ minetest.register_node("mcl_signs:wall_sign", {
paramtype = "light", paramtype = "light",
sunlight_propagates = true, sunlight_propagates = true,
paramtype2 = "wallmounted", paramtype2 = "wallmounted",
drawtype = "nodebox", drawtype = "mesh",
node_box = {type = "wallmounted", wall_side = {-0.499, -1/16, -7/16, -7/16, 7/16, 7/16}}, mesh = "mcl_signs_signonwallmount.obj",
tiles = {"signs_wall.png"}, selection_box = {type = "wallmounted", wall_side = {-0.5, -7/28, -0.5, -23/56, 7/28, 0.5}},
tiles = {"mcl_signs_sign.png"},
groups = sign_groups, groups = sign_groups,
stack_max = 16, stack_max = 16,
sounds = mcl_sounds.node_sound_wood_defaults(), sounds = mcl_sounds.node_sound_wood_defaults(),
@ -222,16 +259,14 @@ minetest.register_node("mcl_signs:wall_sign", {
local under = pointed_thing.under local under = pointed_thing.under
-- Use pointed node's on_rightclick function first, if present -- Use pointed node's on_rightclick function first, if present
local node = minetest.get_node(under) local node_under = minetest.get_node(under)
if placer and not placer:get_player_control().sneak then if placer and not placer:get_player_control().sneak then
if minetest.registered_nodes[node.name] and minetest.registered_nodes[node.name].on_rightclick then if minetest.registered_nodes[node_under.name] and minetest.registered_nodes[node_under.name].on_rightclick then
return minetest.registered_nodes[node.name].on_rightclick(pointed_thing.under, node, placer, itemstack) or itemstack return minetest.registered_nodes[node_under.name].on_rightclick(under, node_under, placer, itemstack) or itemstack
end end
end end
local dir = {x = under.x - above.x, local dir = vector.subtract(under, above)
y = under.y - above.y,
z = under.z - above.z}
-- Only build when it's legal -- Only build when it's legal
local abovenodedef = minetest.registered_nodes[minetest.get_node(above).name] local abovenodedef = minetest.registered_nodes[minetest.get_node(above).name]
@ -242,44 +277,73 @@ minetest.register_node("mcl_signs:wall_sign", {
local wdir = minetest.dir_to_wallmounted(dir) local wdir = minetest.dir_to_wallmounted(dir)
local placer_pos = placer:getpos() local placer_pos = placer:getpos()
if placer_pos then
dir = {
x = above.x - placer_pos.x,
y = above.y - placer_pos.y,
z = above.z - placer_pos.z
}
end
local fdir = minetest.dir_to_facedir(dir) local fdir = minetest.dir_to_facedir(dir)
local sign_info local sign_info
local place_pos local nodeitem = ItemStack(itemstack)
-- Ceiling
if wdir == 0 then if wdir == 0 then
--how would you add sign to ceiling? --how would you add sign to ceiling?
return itemstack return itemstack
-- Floor
elseif wdir == 1 then elseif wdir == 1 then
place_pos = above -- Standing sign
local stand = ItemStack(itemstack)
stand:set_name("mcl_signs:standing_sign") -- Determine the sign rotation based on player's yaw
local _, success = minetest.item_place_node(stand, placer, pointed_thing, fdir) local yaw = math.pi*2 - placer:get_look_horizontal()
-- Select one of 16 possible rotations (0-15)
local rotation_level = round((yaw / (math.pi*2)) * 16)
if rotation_level > 15 then
rotation_level = 0
elseif rotation_level < 0 then
rotation_level = 15
end
-- The actual rotation is a combination of predefined mesh and facedir (see node definition)
if rotation_level % 4 == 0 then
nodeitem:set_name("mcl_signs:standing_sign")
elseif rotation_level % 4 == 1 then
nodeitem:set_name("mcl_signs:standing_sign22_5")
elseif rotation_level % 4 == 2 then
nodeitem:set_name("mcl_signs:standing_sign45")
elseif rotation_level % 4 == 3 then
nodeitem:set_name("mcl_signs:standing_sign67_5")
end
fdir = math.floor(rotation_level / 4)
-- Place the node!
local _, success = minetest.item_place_node(nodeitem, placer, pointed_thing, fdir)
if not success then if not success then
return itemstack return itemstack
end end
sign_info = signs_yard[fdir + 1] sign_info = signtext_info_standing[rotation_level + 1]
-- Side
else else
place_pos = above -- Wall sign
local _, success = minetest.item_place_node(itemstack, placer, pointed_thing, wdir) local _, success = minetest.item_place_node(itemstack, placer, pointed_thing, wdir)
if not success then if not success then
return itemstack return itemstack
end end
sign_info = signs[fdir + 1] sign_info = signtext_info_wall[fdir + 1]
end end
local text = minetest.add_entity({ -- Determine spawn position of entity
local place_pos
if minetest.registered_nodes[node_under.name].buildable_to then
place_pos = under
else
place_pos = above
end
local text_entity = minetest.add_entity({
x = place_pos.x + sign_info.delta.x, x = place_pos.x + sign_info.delta.x,
y = place_pos.y + sign_info.delta.y, y = place_pos.y + sign_info.delta.y,
z = place_pos.z + sign_info.delta.z}, "mcl_signs:text") z = place_pos.z + sign_info.delta.z}, "mcl_signs:text")
text:setyaw(sign_info.yaw) text_entity:setyaw(sign_info.yaw)
text_entity:get_luaentity()._signnodename = nodeitem:get_name()
if not minetest.setting_getbool("creative_mode") then if not minetest.setting_getbool("creative_mode") then
itemstack:take_item() itemstack:take_item()
@ -300,19 +364,23 @@ minetest.register_node("mcl_signs:wall_sign", {
_mcl_blast_resistance = 5, _mcl_blast_resistance = 5,
}) })
minetest.register_node("mcl_signs:standing_sign", {
-- Standing sign nodes.
-- 4 rotations at 0°, 22.5°, 45° and 67.5°.
-- These are 4 out of 16 possible rotations.
-- With facedir the remaining 12 rotations are constructed.
-- 0°
local ssign = {
paramtype = "light", paramtype = "light",
sunlight_propagates = true, sunlight_propagates = true,
walkable = false, walkable = false,
is_ground_content = false, is_ground_content = false,
paramtype2 = "facedir", paramtype2 = "facedir",
drawtype = "nodebox", drawtype = "mesh",
node_box = {type = "fixed", fixed = { mesh = "mcl_signs_1sign0.obj",
{-7/16, -1/16, -1/32, 7/16, 7/16, 1/32}, selection_box = {type = "fixed", fixed = {-0.2, -0.5, -0.2, 0.2, 0.5, 0.2}},
{-1/16, -0.5, -1/32, 1/16, -1/16, 1/32}, tiles = {"mcl_signs_sign.png"},
}},
selection_box = {type = "fixed", fixed = {-7/16, -0.5, -1/32, 7/16, 7/16, 1/32}},
tiles = {"signs_top.png", "signs_bottom.png", "signs_side.png", "signs_side.png", "signs_back.png", "signs_front.png"},
groups = sign_groups, groups = sign_groups,
drop = "mcl_signs:wall_sign", drop = "mcl_signs:wall_sign",
stack_max = 16, stack_max = 16,
@ -327,7 +395,24 @@ minetest.register_node("mcl_signs:standing_sign", {
end, end,
_mcl_hardness = 1, _mcl_hardness = 1,
_mcl_blast_resistance = 5, _mcl_blast_resistance = 5,
}) }
-- 22.5°
minetest.register_node("mcl_signs:standing_sign", ssign)
local ssign22_5 = table.copy(ssign)
ssign22_5.mesh = "mcl_signs_1sign22.5.obj"
-- 45°
minetest.register_node("mcl_signs:standing_sign22_5", ssign22_5)
local ssign45 = table.copy(ssign)
ssign45.mesh = "mcl_signs_1sign45.obj"
minetest.register_node("mcl_signs:standing_sign45", ssign45)
-- 67.5°
local ssign67 = table.copy(ssign)
ssign67.mesh = "mcl_signs_1sign67.5.obj"
minetest.register_node("mcl_signs:standing_sign67_5", ssign67)
minetest.register_entity("mcl_signs:text", { minetest.register_entity("mcl_signs:text", {
collisionbox = { 0, 0, 0, 0, 0, 0 }, collisionbox = { 0, 0, 0, 0, 0, 0 },
@ -336,20 +421,28 @@ minetest.register_entity("mcl_signs:text", {
physical = false, physical = false,
collide_with_objects = false, collide_with_objects = false,
on_activate = function(self) _signnodename = nil, -- node name of sign node to which the text belongs
on_activate = function(self, staticdata)
if staticdata ~= nil and staticdata ~= "" then
local des = minetest.deserialize(staticdata)
if des then
self._signnodename = des._signnodename
end
end
local meta = minetest.get_meta(self.object:getpos()) local meta = minetest.get_meta(self.object:getpos())
local text = meta:get_string("text") local text = meta:get_string("text")
self.object:set_properties({ self.object:set_properties({
textures={generate_texture(create_lines(text))}, textures={generate_texture(create_lines(text), self._signnodename)},
}) })
self.object:set_armor_groups({ immortal = 1 }) self.object:set_armor_groups({ immortal = 1 })
end end,
get_staticdata = function(self)
local out = { _signnodename = self._signnodename }
return minetest.serialize(out)
end,
}) })
if minetest.setting_get("log_mods") then
minetest.log("action", "[mcl_signs] loaded")
end
minetest.register_craft({ minetest.register_craft({
type = "fuel", type = "fuel",
recipe = "mcl_signs:wall_sign", recipe = "mcl_signs:wall_sign",
@ -371,3 +464,8 @@ end
minetest.register_alias("signs:sign_wall", "mcl_signs:wall_sign") minetest.register_alias("signs:sign_wall", "mcl_signs:wall_sign")
minetest.register_alias("signs:sign_yard", "mcl_signs:standing_sign") minetest.register_alias("signs:sign_yard", "mcl_signs:standing_sign")
if minetest.setting_get("log_mods") then
minetest.log("action", "[mcl_signs] loaded")
end

@ -0,0 +1,66 @@
# Blender v2.76 (sub 0) OBJ File: '1sign0.blend'
# www.blender.org
mtllib 1sign0.mtl
o wood_Cube.001
v 0.461724 0.038277 -0.038477
v 0.461724 0.500000 -0.038477
v 0.461724 0.038277 0.038477
v 0.461724 0.500000 0.038477
v -0.461724 0.038277 -0.038477
v -0.461724 0.500000 -0.038477
v -0.461724 0.038277 0.038477
v -0.461724 0.500000 0.038477
v 0.038477 -0.499999 -0.038477
v 0.038477 0.038679 -0.038477
v 0.038477 -0.499999 0.038477
v 0.038477 0.038679 0.038477
v -0.038477 -0.499999 -0.038477
v -0.038477 0.038679 -0.038477
v -0.038477 -0.499999 0.038477
v -0.038477 0.038679 0.038477
vt 0.031250 0.562500
vt 0.031250 0.937500
vt 0.000000 0.937500
vt 0.000000 0.562500
vt 0.812500 0.562500
vt 0.812500 0.937500
vt 0.437500 0.937500
vt 0.437500 0.562500
vt 0.406250 0.937500
vt 0.406250 0.562500
vt 0.406250 1.000000
vt 0.781250 1.000000
vt 0.781250 0.937500
vt 0.031250 1.000000
vt 0.031250 0.062500
vt 0.031250 0.500000
vt 0.000000 0.500000
vt 0.000000 0.062500
vt 0.125000 0.062500
vt 0.125000 0.500000
vt 0.093750 0.500000
vt 0.093750 0.062500
vt 0.062500 0.500000
vt 0.062500 0.062500
vt 0.093750 0.562500
vt 0.062500 0.562500
vn 1.000000 0.000000 0.000000
vn -0.000000 0.000000 1.000000
vn -1.000000 0.000000 0.000000
vn 0.000000 0.000000 -1.000000
vn 0.000000 -1.000000 0.000000
vn 0.000000 1.000000 0.000000
usemtl None
s off
f 1/1/1 2/2/1 4/3/1 3/4/1
f 3/5/2 4/6/2 8/7/2 7/8/2
f 7/8/3 8/7/3 6/9/3 5/10/3
f 5/10/4 6/9/4 2/2/4 1/1/4
f 3/11/5 7/12/5 5/13/5 1/9/5
f 8/11/6 4/14/6 2/2/6 6/9/6
f 9/15/1 10/16/1 12/17/1 11/18/1
f 11/19/2 12/20/2 16/21/2 15/22/2
f 15/22/3 16/21/3 14/23/3 13/24/3
f 13/24/4 14/23/4 10/16/4 9/15/4
f 11/23/5 15/21/5 13/25/5 9/26/5
f 16/16/6 12/23/6 10/26/6 14/1/6

@ -0,0 +1,66 @@
# Blender v2.76 (sub 0) OBJ File: '1sign22.5.blend'
# www.blender.org
mtllib 1sign22.5.mtl
o wood_Cube.001
v 0.441302 0.038277 0.141146
v 0.441302 0.500000 0.141146
v 0.411853 0.038277 0.212242
v 0.411853 0.500000 0.212242
v -0.411853 0.038277 -0.212242
v -0.411853 0.500000 -0.212242
v -0.441302 0.038277 -0.141146
v -0.441302 0.500000 -0.141146
v 0.050273 -0.499999 -0.020824
v 0.050273 0.038679 -0.020824
v 0.020824 -0.499999 0.050273
v 0.020824 0.038679 0.050273
v -0.020824 -0.499999 -0.050273
v -0.020824 0.038679 -0.050273
v -0.050273 -0.499999 0.020824
v -0.050273 0.038679 0.020824
vt 0.031250 0.562500
vt 0.031250 0.937500
vt 0.000000 0.937500
vt 0.000000 0.562500
vt 0.812500 0.562500
vt 0.812500 0.937500
vt 0.437500 0.937500
vt 0.437500 0.562500
vt 0.406250 0.937500
vt 0.406250 0.562500
vt 0.406250 1.000000
vt 0.781250 1.000000
vt 0.781250 0.937500
vt 0.031250 1.000000
vt 0.031250 0.062500
vt 0.031250 0.500000
vt 0.000000 0.500000
vt 0.000000 0.062500
vt 0.125000 0.062500
vt 0.125000 0.500000
vt 0.093750 0.500000
vt 0.093750 0.062500
vt 0.062500 0.500000
vt 0.062500 0.062500
vt 0.093750 0.562500
vt 0.062500 0.562500
vn 0.923900 0.000000 0.382700
vn -0.382700 0.000000 0.923900
vn -0.923900 0.000000 -0.382700
vn 0.382700 0.000000 -0.923900
vn 0.000000 -1.000000 0.000000
vn 0.000000 1.000000 0.000000
usemtl None
s off
f 1/1/1 2/2/1 4/3/1 3/4/1
f 3/5/2 4/6/2 8/7/2 7/8/2
f 7/8/3 8/7/3 6/9/3 5/10/3
f 5/10/4 6/9/4 2/2/4 1/1/4
f 3/11/5 7/12/5 5/13/5 1/9/5
f 8/11/6 4/14/6 2/2/6 6/9/6
f 9/15/1 10/16/1 12/17/1 11/18/1
f 11/19/2 12/20/2 16/21/2 15/22/2
f 15/22/3 16/21/3 14/23/3 13/24/3
f 13/24/4 14/23/4 10/16/4 9/15/4
f 11/23/5 15/21/5 13/25/5 9/26/5
f 16/16/6 12/23/6 10/26/6 14/1/6

@ -0,0 +1,66 @@
# Blender v2.76 (sub 0) OBJ File: '1sign45.blend'
# www.blender.org
mtllib 1sign45.mtl
o wood_Cube.001
v 0.353695 0.038277 0.299281
v 0.353695 0.500000 0.299281
v 0.299281 0.038277 0.353696
v 0.299281 0.500000 0.353696
v -0.299281 0.038277 -0.353696
v -0.299281 0.500000 -0.353696
v -0.353695 0.038277 -0.299281
v -0.353695 0.500000 -0.299281
v 0.054415 -0.499999 0.000000
v 0.054415 0.038679 0.000000
v -0.000000 -0.499999 0.054415
v -0.000000 0.038679 0.054415
v 0.000000 -0.499999 -0.054415
v 0.000000 0.038679 -0.054415
v -0.054415 -0.499999 -0.000000
v -0.054415 0.038679 -0.000000
vt 0.031250 0.562500
vt 0.031250 0.937500
vt 0.000000 0.937500
vt 0.000000 0.562500
vt 0.812500 0.562500
vt 0.812500 0.937500
vt 0.437500 0.937500
vt 0.437500 0.562500
vt 0.406250 0.937500
vt 0.406250 0.562500
vt 0.406250 1.000000
vt 0.781250 1.000000
vt 0.781250 0.937500
vt 0.031250 1.000000
vt 0.031250 0.062500
vt 0.031250 0.500000
vt 0.000000 0.500000
vt 0.000000 0.062500
vt 0.125000 0.062500
vt 0.125000 0.500000
vt 0.093750 0.500000
vt 0.093750 0.062500
vt 0.062500 0.500000
vt 0.062500 0.062500
vt 0.093750 0.562500
vt 0.062500 0.562500
vn 0.707100 0.000000 0.707100
vn -0.707100 0.000000 0.707100
vn -0.707100 0.000000 -0.707100
vn 0.707100 0.000000 -0.707100
vn 0.000000 -1.000000 0.000000
vn 0.000000 1.000000 0.000000
usemtl None
s off
f 1/1/1 2/2/1 4/3/1 3/4/1
f 3/5/2 4/6/2 8/7/2 7/8/2
f 7/8/3 8/7/3 6/9/3 5/10/3
f 5/10/4 6/9/4 2/2/4 1/1/4
f 3/11/5 7/12/5 5/13/5 1/9/5
f 8/11/6 4/14/6 2/2/6 6/9/6
f 9/15/1 10/16/1 12/17/1 11/18/1
f 11/19/2 12/20/2 16/21/2 15/22/2
f 15/22/3 16/21/3 14/23/3 13/24/3
f 13/24/4 14/23/4 10/16/4 9/15/4
f 11/23/5 15/21/5 13/25/5 9/26/5
f 16/16/6 12/23/6 10/26/6 14/1/6

@ -0,0 +1,66 @@
# Blender v2.76 (sub 0) OBJ File: '1sign67.5.blend'
# www.blender.org
mtllib 1sign67.5.mtl
o wood_Cube.001
v 0.212242 0.038277 0.411853
v 0.212242 0.500000 0.411853
v 0.141146 0.038277 0.441302
v 0.141146 0.500000 0.441302
v -0.141146 0.038277 -0.441302
v -0.141146 0.500000 -0.441302
v -0.212242 0.038277 -0.411853
v -0.212242 0.500000 -0.411853
v 0.050273 -0.499999 0.020824
v 0.050273 0.038679 0.020824
v -0.020824 -0.499999 0.050273
v -0.020824 0.038679 0.050273
v 0.020824 -0.499999 -0.050273
v 0.020824 0.038679 -0.050273
v -0.050273 -0.499999 -0.020824
v -0.050273 0.038679 -0.020824
vt 0.031250 0.562500
vt 0.031250 0.937500
vt 0.000000 0.937500
vt 0.000000 0.562500
vt 0.812500 0.562500
vt 0.812500 0.937500
vt 0.437500 0.937500
vt 0.437500 0.562500
vt 0.406250 0.937500
vt 0.406250 0.562500
vt 0.406250 1.000000
vt 0.781250 1.000000
vt 0.781250 0.937500
vt 0.031250 1.000000
vt 0.031250 0.062500
vt 0.031250 0.500000
vt 0.000000 0.500000
vt 0.000000 0.062500
vt 0.125000 0.062500
vt 0.125000 0.500000
vt 0.093750 0.500000
vt 0.093750 0.062500
vt 0.062500 0.500000
vt 0.062500 0.062500
vt 0.093750 0.562500
vt 0.062500 0.562500
vn 0.382700 0.000000 0.923900
vn -0.923900 0.000000 0.382700
vn -0.382700 0.000000 -0.923900
vn 0.923900 0.000000 -0.382700
vn 0.000000 -1.000000 -0.000000
vn 0.000000 1.000000 0.000000
usemtl None
s off
f 1/1/1 2/2/1 4/3/1 3/4/1
f 3/5/2 4/6/2 8/7/2 7/8/2
f 7/8/3 8/7/3 6/9/3 5/10/3
f 5/10/4 6/9/4 2/2/4 1/1/4
f 3/11/5 7/12/5 5/13/5 1/9/5
f 8/11/6 4/14/6 2/2/6 6/9/6
f 9/15/1 10/16/1 12/17/1 11/18/1
f 11/19/2 12/20/2 16/21/2 15/22/2
f 15/22/3 16/21/3 14/23/3 13/24/3
f 13/24/4 14/23/4 10/16/4 9/15/4
f 11/23/5 15/21/5 13/25/5 9/26/5
f 16/16/6 12/23/6 10/26/6 14/1/6

@ -0,0 +1,40 @@
# Blender v2.76 (sub 0) OBJ File: 'signonwallmount.blend'
# www.blender.org
mtllib signonwallmount.mtl
o wood_Cube.001
v 0.499985 -0.416668 -0.249992
v 0.499985 -0.416668 0.249993
v 0.499985 -0.499999 -0.249992
v 0.499985 -0.499999 0.249993
v -0.499985 -0.416668 -0.249993
v -0.499985 -0.416668 0.249992
v -0.499985 -0.499999 -0.249993
v -0.499985 -0.499999 0.249992
vt 0.031250 0.562500
vt 0.031250 0.937500
vt 0.000000 0.937500
vt 0.000000 0.562500
vt 0.812500 0.562500
vt 0.812500 0.937500
vt 0.437500 0.937500
vt 0.437500 0.562500
vt 0.406250 0.937500
vt 0.406250 0.562500
vt 0.406250 1.000000
vt 0.781250 1.000000
vt 0.781250 0.937500
vt 0.031250 1.000000
vn 1.000000 0.000000 0.000000
vn 0.000000 -1.000000 -0.000000
vn -1.000000 0.000000 -0.000000
vn -0.000000 1.000000 0.000000
vn 0.000000 0.000000 -1.000000
vn -0.000000 -0.000000 1.000000
usemtl None
s off
f 1/1/1 2/2/1 4/3/1 3/4/1
f 3/5/2 4/6/2 8/7/2 7/8/2
f 7/8/3 8/7/3 6/9/3 5/10/3
f 5/10/4 6/9/4 2/2/4 1/1/4
f 3/11/5 7/12/5 5/13/5 1/9/5
f 8/11/6 4/14/6 2/2/6 6/9/6

Binary file not shown.

After

Width:  |  Height:  |  Size: 571 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 219 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 143 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 219 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 158 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 124 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 256 B