Merge branch 'sign'
|
@ -27,6 +27,13 @@ local NUMBER_OF_LINES = 4
|
|||
local LINE_HEIGHT = 14
|
||||
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 tab = {}
|
||||
for i=1,string.len(str) do
|
||||
|
@ -103,9 +110,14 @@ local generate_line = function(s, ypos)
|
|||
return texture
|
||||
end
|
||||
|
||||
local generate_texture = function(lines)
|
||||
local generate_texture = function(lines, signnodename)
|
||||
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
|
||||
texture = texture..generate_line(lines[i], ypos)
|
||||
ypos = ypos + LINE_HEIGHT
|
||||
|
@ -113,23 +125,35 @@ local generate_texture = function(lines)
|
|||
return texture
|
||||
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 = n, y = 0, z = 0}, yaw = math.pi / -2},
|
||||
{delta = {x = 0, y = 0, z = -n}, yaw = math.pi},
|
||||
{delta = {x = -n, y = 0, z = 0}, yaw = math.pi / 2},
|
||||
}
|
||||
|
||||
local m = 1/32 + 1/128
|
||||
local signtext_info_standing = {}
|
||||
|
||||
local signs_yard = {
|
||||
{delta = {x = 0, y = 0, z = -m}, yaw = 0},
|
||||
{delta = {x = -m, y = 0, z = 0}, yaw = math.pi / -2},
|
||||
{delta = {x = 0, y = 0, z = m}, yaw = math.pi},
|
||||
{delta = {x = m, y = 0, z = 0}, yaw = math.pi / 2},
|
||||
}
|
||||
local m = -1/16 + 1/64
|
||||
for rot=0, 15 do
|
||||
local yaw = math.pi*2 - (((math.pi*2) / 16) * rot)
|
||||
local delta = vector.multiply(minetest.yaw_to_dir(yaw), m)
|
||||
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}
|
||||
|
||||
|
@ -158,24 +182,36 @@ local update_sign = function(pos, fields, sender)
|
|||
local objects = minetest.get_objects_inside_radius(pos, 0.5)
|
||||
for _, v in ipairs(objects) do
|
||||
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
|
||||
end
|
||||
end
|
||||
|
||||
-- if there is no entity
|
||||
local sign_info
|
||||
if minetest.get_node(pos).name == "mcl_signs:standing_sign" then
|
||||
sign_info = signs_yard[minetest.get_node(pos).param2 + 1]
|
||||
elseif minetest.get_node(pos).name == "mcl_signs:wall_sign" then
|
||||
sign_info = signs[minetest.get_node(pos).param2 + 1]
|
||||
local n = minetest.get_node(pos)
|
||||
local nn = n.name
|
||||
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 = 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
|
||||
if sign_info == nil then
|
||||
return
|
||||
end
|
||||
local text_entity = minetest.add_entity({x = pos.x + sign_info.delta.x,
|
||||
y = pos.y + sign_info.delta.y,
|
||||
z = pos.z + sign_info.delta.z}, "mcl_signs:text")
|
||||
local text_entity = minetest.add_entity({
|
||||
x = pos.x + sign_info.delta.x,
|
||||
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)
|
||||
end
|
||||
|
||||
|
@ -210,9 +246,10 @@ minetest.register_node("mcl_signs:wall_sign", {
|
|||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
paramtype2 = "wallmounted",
|
||||
drawtype = "nodebox",
|
||||
node_box = {type = "wallmounted", wall_side = {-0.499, -1/16, -7/16, -7/16, 7/16, 7/16}},
|
||||
tiles = {"signs_wall.png"},
|
||||
drawtype = "mesh",
|
||||
mesh = "mcl_signs_signonwallmount.obj",
|
||||
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,
|
||||
stack_max = 16,
|
||||
sounds = mcl_sounds.node_sound_wood_defaults(),
|
||||
|
@ -222,16 +259,14 @@ minetest.register_node("mcl_signs:wall_sign", {
|
|||
local under = pointed_thing.under
|
||||
|
||||
-- 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 minetest.registered_nodes[node.name] and minetest.registered_nodes[node.name].on_rightclick then
|
||||
return minetest.registered_nodes[node.name].on_rightclick(pointed_thing.under, node, placer, itemstack) or itemstack
|
||||
if minetest.registered_nodes[node_under.name] and minetest.registered_nodes[node_under.name].on_rightclick then
|
||||
return minetest.registered_nodes[node_under.name].on_rightclick(under, node_under, placer, itemstack) or itemstack
|
||||
end
|
||||
end
|
||||
|
||||
local dir = {x = under.x - above.x,
|
||||
y = under.y - above.y,
|
||||
z = under.z - above.z}
|
||||
local dir = vector.subtract(under, above)
|
||||
|
||||
-- Only build when it's legal
|
||||
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 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 sign_info
|
||||
local place_pos
|
||||
local nodeitem = ItemStack(itemstack)
|
||||
-- Ceiling
|
||||
if wdir == 0 then
|
||||
--how would you add sign to ceiling?
|
||||
return itemstack
|
||||
-- Floor
|
||||
elseif wdir == 1 then
|
||||
place_pos = above
|
||||
local stand = ItemStack(itemstack)
|
||||
stand:set_name("mcl_signs:standing_sign")
|
||||
local _, success = minetest.item_place_node(stand, placer, pointed_thing, fdir)
|
||||
-- Standing sign
|
||||
|
||||
-- Determine the sign rotation based on player's yaw
|
||||
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
|
||||
return itemstack
|
||||
end
|
||||
sign_info = signs_yard[fdir + 1]
|
||||
sign_info = signtext_info_standing[rotation_level + 1]
|
||||
-- Side
|
||||
else
|
||||
place_pos = above
|
||||
-- Wall sign
|
||||
local _, success = minetest.item_place_node(itemstack, placer, pointed_thing, wdir)
|
||||
if not success then
|
||||
return itemstack
|
||||
end
|
||||
sign_info = signs[fdir + 1]
|
||||
sign_info = signtext_info_wall[fdir + 1]
|
||||
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,
|
||||
y = place_pos.y + sign_info.delta.y,
|
||||
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
|
||||
itemstack:take_item()
|
||||
|
@ -300,19 +364,23 @@ minetest.register_node("mcl_signs:wall_sign", {
|
|||
_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",
|
||||
sunlight_propagates = true,
|
||||
walkable = false,
|
||||
is_ground_content = false,
|
||||
paramtype2 = "facedir",
|
||||
drawtype = "nodebox",
|
||||
node_box = {type = "fixed", fixed = {
|
||||
{-7/16, -1/16, -1/32, 7/16, 7/16, 1/32},
|
||||
{-1/16, -0.5, -1/32, 1/16, -1/16, 1/32},
|
||||
}},
|
||||
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"},
|
||||
drawtype = "mesh",
|
||||
mesh = "mcl_signs_1sign0.obj",
|
||||
selection_box = {type = "fixed", fixed = {-0.2, -0.5, -0.2, 0.2, 0.5, 0.2}},
|
||||
tiles = {"mcl_signs_sign.png"},
|
||||
groups = sign_groups,
|
||||
drop = "mcl_signs:wall_sign",
|
||||
stack_max = 16,
|
||||
|
@ -327,7 +395,24 @@ minetest.register_node("mcl_signs:standing_sign", {
|
|||
end,
|
||||
_mcl_hardness = 1,
|
||||
_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", {
|
||||
collisionbox = { 0, 0, 0, 0, 0, 0 },
|
||||
|
@ -336,20 +421,28 @@ minetest.register_entity("mcl_signs:text", {
|
|||
physical = 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 text = meta:get_string("text")
|
||||
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 })
|
||||
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({
|
||||
type = "fuel",
|
||||
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_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
|
After Width: | Height: | Size: 571 B |
Before Width: | Height: | Size: 219 B |
Before Width: | Height: | Size: 143 B |
Before Width: | Height: | Size: 219 B |
Before Width: | Height: | Size: 158 B |
Before Width: | Height: | Size: 124 B |
Before Width: | Height: | Size: 256 B |