Reformat whitespace
commit
79d2117f38
|
@ -0,0 +1,39 @@
|
|||
portalgun
|
||||
Originally by UjEdwin (Ver 0.5)
|
||||
Posted to forums at forum.minetest.net/viewtopic.php?f=9&t=12772
|
||||
on 2015 July 9th
|
||||
Heavily modified by Robert Munafo (mrob27)
|
||||
|
||||
HOW TO INSTALL THIS MOD:
|
||||
1. Find your minetest folder, and create it if there isn't one yet (like if this is your first time installing a mod)
|
||||
Linux: It depends on what type of install you did.
|
||||
"RUN_IN_PLACE" installation, the path is:
|
||||
<directory where you insalled Minetest/mods
|
||||
If you have a normal "globally installed" Minetest, then the path is:
|
||||
<your home directory>/.minetest/mods
|
||||
Windows:
|
||||
<directory where you insalled Minetest/mods
|
||||
MacOS X:
|
||||
<your home directory>/Library/Application Support/minetest/mods
|
||||
2. If you didn't find a folder in step 1, you have to create the folder. If this your first time installing a mod?
|
||||
3. Make a folder inside your "mods" folder called "portalgun". All the portalgun files go in that folder.
|
||||
|
||||
|
||||
REVISION HISTORY
|
||||
20150709 UjEdwin: Version 0.5. This is not a complitle version, so
|
||||
still missing functions :)
|
||||
Feel Free to use the code and make a better version, I dont care :)
|
||||
|
||||
20151006 mrob27: Reformat everything (spaces, tabs, indentation,
|
||||
etc.). Use right-click for shooting orange portals. You can now only
|
||||
shoot portals onto steel blocks.
|
||||
|
||||
HOW TO PLAY:
|
||||
At present the only way to get a portal gun is to play Creative mode
|
||||
and get one in the inventory screen, or give one to yourself using
|
||||
"/giveme portalgun:gun"
|
||||
left-click to shoot blue portal
|
||||
right-click to shoot orange portal
|
||||
shift+left-click to close both portals
|
||||
Portals may only be anchored on steel blocks (which sort of look like
|
||||
the walls of the Aperture Science test chambers)
|
|
@ -0,0 +1,329 @@
|
|||
-- Code by UjEdwin and mrob27
|
||||
-- License, revision history and instructions are in README.txt
|
||||
|
||||
local portalgun_portals={}
|
||||
local nxt_id = 0
|
||||
local portalgun_timer=0.1
|
||||
local portalgun_time=0
|
||||
local portalgun_lifetime=5000 --deletes portals that not used after a while
|
||||
local portalgun_running=0
|
||||
local portalgun_max_rage=50
|
||||
|
||||
local function portalgun_getLength(a)-- get length of an array / table
|
||||
local count = 0
|
||||
for _ in pairs(a) do count = count + 1 end
|
||||
return count
|
||||
end
|
||||
|
||||
-- return a node definition for the node at pos, with a fallback in case
|
||||
-- that pos is not presently loaded
|
||||
local function node_ok(pos)
|
||||
local fallback = "default:dirt"
|
||||
local nd = minetest.get_node_or_nil(pos)
|
||||
if not nd then
|
||||
-- pos is outside the area currently loaded
|
||||
return minetest.registered_nodes[fallback]
|
||||
end
|
||||
-- use the node's name to find the node definition
|
||||
local nodef = minetest.registered_nodes[nd.name]
|
||||
if nodef then
|
||||
return nodef
|
||||
end
|
||||
return minetest.registered_nodes[fallback]
|
||||
end
|
||||
|
||||
minetest.register_on_leaveplayer(
|
||||
-- when a player leaves the game, delete their portals
|
||||
function(user)
|
||||
for i=1, portalgun_getLength(portalgun_portals),1 do
|
||||
if portalgun_portals[i]~=0 and portalgun_portals[i].user==user:get_player_name() then
|
||||
portalgun_portals[i].lifetime=-1
|
||||
return 0
|
||||
end
|
||||
end
|
||||
end
|
||||
)
|
||||
|
||||
|
||||
local function portalgun_teleport(portal,id)-- teleport stuff
|
||||
if portalgun_portals[id]==0 then
|
||||
return 0
|
||||
end
|
||||
portalgun_portals[id].lifetime=portalgun_portals[id].lifetime-1
|
||||
if portalgun_portals[id].lifetime<0 then
|
||||
if portalgun_portals[id].portal1~=0 then
|
||||
portalgun_portals[id].portal1:remove()
|
||||
end
|
||||
if portalgun_portals[id].portal2~=0 then
|
||||
portalgun_portals[id].portal2:remove()
|
||||
end
|
||||
portalgun_portals[id]=0
|
||||
return 0
|
||||
end
|
||||
|
||||
local pos1=0
|
||||
local pos2=0
|
||||
local d1=0
|
||||
local d2=0
|
||||
|
||||
if portal==1 then
|
||||
pos1=portalgun_portals[id].portal1_pos
|
||||
pos2=portalgun_portals[id].portal2_pos
|
||||
d1=portalgun_portals[id].portal1_dir
|
||||
d2=portalgun_portals[id].portal2_dir
|
||||
else
|
||||
pos1=portalgun_portals[id].portal2_pos
|
||||
pos2=portalgun_portals[id].portal1_pos
|
||||
d1=portalgun_portals[id].portal2_dir
|
||||
d2=portalgun_portals[id].portal1_dir
|
||||
end
|
||||
|
||||
|
||||
if pos2~=0 and pos1~=0 then
|
||||
|
||||
for ii, ob in pairs(minetest.get_objects_inside_radius(pos1, 1.5)) do
|
||||
if pos2~=0 then
|
||||
|
||||
if ob:get_luaentity() and ob:get_luaentity().name=="portalgun:portal" then
|
||||
else
|
||||
-- ======= set velocity then teleport
|
||||
local p=pos2
|
||||
local x=0
|
||||
local y=0
|
||||
local z=0
|
||||
|
||||
if ob:is_player()==false then
|
||||
local v=ob:getvelocity()
|
||||
|
||||
if v.x<0 then v.x=v.x*-1 end
|
||||
if v.y<0 then v.y=v.y*-1 end
|
||||
if v.z<0 then v.z=v.z*-1 end
|
||||
|
||||
local vv=0 -- get the biggest velocity
|
||||
if v.x>v.z then vv=v.x else vv=v.z end
|
||||
if vv<v.y then vv=v.y end
|
||||
|
||||
v.x=0
|
||||
v.y=0
|
||||
v.z=0
|
||||
|
||||
if d2=="x+" then v.x=vv end
|
||||
if d2=="x-" then v.x=vv*-1 end
|
||||
if d2=="y+" then v.y=vv end
|
||||
if d2=="y-" then v.y=vv*-1 end
|
||||
if d2=="z+" then v.z=vv end
|
||||
if d2=="z-" then v.z=vv*-1 end
|
||||
|
||||
ob:setvelocity({x=v.x, y=v.y, z=v.z})
|
||||
end
|
||||
|
||||
if d2=="x+" then x=2
|
||||
elseif d2=="x-" then x=-2
|
||||
elseif d2=="y+" then y=2
|
||||
elseif d2=="y-" then y=-2
|
||||
elseif d2=="z+" then z=2
|
||||
elseif d2=="z-" then z=-2
|
||||
end
|
||||
|
||||
ob:moveto({x=p.x+x,y=p.y+y,z=p.z+z},false)
|
||||
portalgun_portals[id].lifetime=portalgun_lifetime
|
||||
|
||||
-- ======= end of set velocity part then teleport
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
return 1
|
||||
end
|
||||
|
||||
minetest.register_globalstep(
|
||||
-- call "see if someone inside a portal"
|
||||
function(dtime)
|
||||
if portalgun_running==0 then return 0 end
|
||||
|
||||
portalgun_time=portalgun_time+dtime
|
||||
if portalgun_time<portalgun_timer then return end
|
||||
portalgun_time=0
|
||||
local use=0
|
||||
|
||||
for i=1, portalgun_getLength(portalgun_portals),1 do
|
||||
|
||||
if portalgun_portals~=0 then
|
||||
use=use+portalgun_teleport(1,i)
|
||||
use=use+portalgun_teleport(2,i)
|
||||
end
|
||||
end
|
||||
if use==0 and portalgun_getLength(portalgun_portals)>0 then portalgun_portals={} portalgun_running=0 end
|
||||
end
|
||||
)
|
||||
|
||||
portalgun_portal={ -- the portals
|
||||
visual = "mesh",
|
||||
mesh = "portalgun_portal_xp.obj",
|
||||
id=0,
|
||||
physical = false,
|
||||
textures ={"portalgun_blue.png"},
|
||||
visual_size = {x=1, y=1},
|
||||
-- automatic_rotate = math.pi * 2.9,
|
||||
spritediv = {x=7, y=0},
|
||||
collisionbox = {0,0,0,0,0,0},
|
||||
on_activate = function(self, staticdata)
|
||||
self.id = nxt_id
|
||||
if not portalgun_portals[self.id] then self.object:remove() return end
|
||||
local d=""
|
||||
if portalgun_portals[self.id].project==1 then
|
||||
d=portalgun_portals[self.id].portal1_dir
|
||||
self.object:set_properties({textures = {"portalgun_blue.png"},})
|
||||
else
|
||||
d=portalgun_portals[self.id].portal2_dir
|
||||
self.object:set_properties({textures = {"portalgun_orange.png"},})
|
||||
end
|
||||
|
||||
if d=="x+" then self.object:setyaw(math.pi * 0)
|
||||
elseif d=="x-" then self.object:setyaw(math.pi * 1)
|
||||
elseif d=="y+" then self.object:set_properties({mesh = "portalgun_portal_yp.obj",}) -- becaouse there is no "setpitch"
|
||||
elseif d=="y-" then self.object:set_properties({mesh = "portalgun_portal_ym.obj",}) -- becaouse there is no "setpitch"
|
||||
elseif d=="z+" then self.object:setyaw(math.pi * 0.5)
|
||||
elseif d=="z-" then self.object:setyaw(math.pi * 1.5)
|
||||
self.object:set_hp(1000)
|
||||
end
|
||||
end,
|
||||
}
|
||||
|
||||
minetest.register_entity("portalgun:portal",portalgun_portal) -- the portalgun
|
||||
|
||||
local function portal_useproc(itemstack, user, pointed_thing, RMB, remove)
|
||||
if pointed_thing.type ~= "node" then
|
||||
print "[portals] useproc: pt.type is not a node"
|
||||
return itemstack
|
||||
end
|
||||
local pos = pointed_thing.under
|
||||
local node = node_ok(pos)
|
||||
local nn = node.name
|
||||
if not string.find(nn, "default:steel") then
|
||||
return itemstack
|
||||
end
|
||||
|
||||
pos = user:getpos()
|
||||
local dir = user:get_look_dir()
|
||||
local name=user:get_player_name()
|
||||
local found = false
|
||||
local len=portalgun_getLength(portalgun_portals)
|
||||
|
||||
-- in my mods is as default I set 0 or false in a array when not
|
||||
-- using anymore, then clear the array when not used, that saves much.
|
||||
|
||||
-- this check if you can hold shift+leftclick to clear your user-portals,
|
||||
-- lifetime=0 means the portals will die to next run.
|
||||
for i=1, len,1 do
|
||||
if portalgun_portals[i]~=0
|
||||
and portalgun_portals[i]~=nil
|
||||
and portalgun_portals[i].user==name
|
||||
then
|
||||
if not RMB then
|
||||
-- left mouse button
|
||||
if remove then
|
||||
portalgun_portals[i].lifetime=0
|
||||
return itemstack
|
||||
end
|
||||
end
|
||||
found = true
|
||||
nxt_id = i
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
if not found then
|
||||
-- this user hasn't made any portals yet
|
||||
|
||||
-- create a new set of portals, to add to the global list in the event
|
||||
-- this is the first time this player has used the gun
|
||||
local ob={}
|
||||
ob.project=1
|
||||
ob.lifetime=portalgun_lifetime
|
||||
ob.portal1=0
|
||||
ob.portal2=0
|
||||
ob.portal1_dir=0
|
||||
ob.portal2_dir=0
|
||||
ob.portal2_pos=0
|
||||
ob.portal1_pos=0
|
||||
ob.user = user:get_player_name()
|
||||
|
||||
table.insert(portalgun_portals, ob)
|
||||
nxt_id = len+1
|
||||
end
|
||||
|
||||
portalgun_running = 1
|
||||
nxt_id = portalgun_getLength(portalgun_portals)
|
||||
pos.y = pos.y+1.5
|
||||
|
||||
-- the project
|
||||
for i = 1,portalgun_max_rage,1 do
|
||||
if minetest.get_node({x=pos.x+(dir.x*i), y=pos.y+(dir.y*i), z=pos.z+(dir.z*i)}).name~="air" then
|
||||
local id = nxt_id
|
||||
if portalgun_portals[id]==0 then return itemstack end
|
||||
portalgun_portals[id].lifelim=portalgun_lifetime
|
||||
local lpos={x=pos.x+(dir.x*(i-1)), y=pos.y+(dir.y*(i-1)), z=pos.z+(dir.z*(i-1))}
|
||||
local cpos={x=pos.x+(dir.x*i), y=pos.y+(dir.y*i), z=pos.z+(dir.z*i)}
|
||||
local x=math.floor((lpos.x-cpos.x)+ 0.5)
|
||||
local y=math.floor((lpos.y-cpos.y)+ 0.5)
|
||||
local z=math.floor((lpos.z-cpos.z)+ 0.5)
|
||||
local portal_dir=0
|
||||
|
||||
-- the rotation & poss of the portals
|
||||
|
||||
if x>0 then portal_dir="x+" cpos.x=(math.floor(cpos.x+ 0.5))+0.504 end
|
||||
if x<0 then portal_dir="x-" cpos.x=(math.floor(cpos.x+ 0.5))-0.504 end
|
||||
if y>0 then portal_dir="y+" cpos.y=(math.floor(cpos.y+ 0.5))+0.504 end
|
||||
if y<0 then portal_dir="y-" cpos.y=(math.floor(cpos.y+ 0.5))-0.504 end
|
||||
if z>0 then portal_dir="z+" cpos.z=(math.floor(cpos.z+ 0.5))+0.504 end
|
||||
if z<0 then portal_dir="z-" cpos.z=(math.floor(cpos.z+ 0.5))-0.504 end
|
||||
|
||||
if RMB then
|
||||
portalgun_portals[id].project=2
|
||||
portalgun_portals[id].portal2_dir=portal_dir
|
||||
portalgun_portals[id].portal2_pos=cpos
|
||||
if portalgun_portals[id].portal2~=0 then portalgun_portals[id].portal2:remove() end
|
||||
portalgun_portals[id].portal2=minetest.env:add_entity(cpos, "portalgun:portal")
|
||||
else
|
||||
portalgun_portals[id].project=1
|
||||
portalgun_portals[id].portal1_dir=portal_dir
|
||||
portalgun_portals[id].portal1_pos=cpos
|
||||
if portalgun_portals[id].portal1~=0 then portalgun_portals[id].portal1:remove() end
|
||||
portalgun_portals[id].portal1=minetest.env:add_entity(cpos, "portalgun:portal")
|
||||
end
|
||||
-- minetest.sound_play("portalgun_open", {pos=pos})
|
||||
return itemstack
|
||||
end
|
||||
end
|
||||
return itemstack
|
||||
end
|
||||
|
||||
minetest.register_tool("portalgun:gun", {
|
||||
description = "Portalgun",
|
||||
inventory_image = "portalgun_gun_blue.png",
|
||||
range = 27,
|
||||
wield_image = "portalgun_gun_blue.png",
|
||||
-- groups = { not_in_creative_inventory = 0 },
|
||||
on_use = function(itemstack, user, pointed_thing)
|
||||
local key = user:get_player_control()
|
||||
if (key.sneak) then
|
||||
-- remove both portals
|
||||
return portal_useproc(itemstack, user, pointed_thing, false, true)
|
||||
else
|
||||
-- place blue portal
|
||||
return portal_useproc(itemstack, user, pointed_thing, false, false)
|
||||
end
|
||||
end,
|
||||
|
||||
on_place = function(itemstack, user, pointed_thing)
|
||||
local key = user:get_player_control()
|
||||
if (key.sneak) then
|
||||
-- remove both portals
|
||||
return portal_useproc(itemstack, user, pointed_thing, false, true)
|
||||
else
|
||||
-- place orange portal
|
||||
return portal_useproc(itemstack, user, pointed_thing, true, false)
|
||||
end
|
||||
end,
|
||||
})
|
|
@ -0,0 +1,103 @@
|
|||
# Alias Wavefront OBJ File Exported from SketchUp
|
||||
# with OBJexporter (c) 2010/2011 TIG
|
||||
# Units = meters
|
||||
|
||||
mtllib AutoSave_Untitled.mtl
|
||||
|
||||
g AutoSave_Untitled_c_Component_1-Material1
|
||||
usemtl Material1
|
||||
v 0.006100 7.311069 -0.767201
|
||||
v 0.002700 6.873573 2.947733
|
||||
v 0.004374 7.336861 1.119065
|
||||
v 0.007761 6.797954 -2.582518
|
||||
v 0.001194 5.952776 4.594183
|
||||
v 0.009244 5.832485 -4.203176
|
||||
v -0.000044 4.637222 5.946212
|
||||
v 0.010448 4.480455 -5.518730
|
||||
v -0.000927 3.016563 6.911682
|
||||
v 0.011290 2.834004 -6.439526
|
||||
v -0.001397 1.201245 7.424796
|
||||
v 0.011714 1.005335 -6.902814
|
||||
v -0.001420 -0.685022 7.450588
|
||||
v 0.011691 -0.880931 -6.877022
|
||||
v -0.000996 -2.513691 6.987300
|
||||
v 0.011221 -2.696249 -6.363908
|
||||
v -0.000154 -4.160141 6.066504
|
||||
v 0.010338 -4.316908 -5.398438
|
||||
v 0.001050 -5.512171 4.750950
|
||||
v 0.009100 -5.632462 -4.046409
|
||||
v 0.002533 -6.477641 3.130292
|
||||
v 0.007594 -6.553259 -2.399959
|
||||
v 0.004194 -6.990756 1.314975
|
||||
v 0.005920 -7.016548 -0.571291
|
||||
vn -1.000000 -0.000000 -0.000915
|
||||
vn -1.000000 -0.000000 -0.000915
|
||||
vn -1.000000 -0.000000 -0.000915
|
||||
vn -1.000000 -0.000000 -0.000915
|
||||
vn -1.000000 -0.000000 -0.000915
|
||||
vn -1.000000 -0.000000 -0.000915
|
||||
vn -1.000000 -0.000000 -0.000915
|
||||
vn -1.000000 -0.000000 -0.000915
|
||||
vn -1.000000 -0.000000 -0.000915
|
||||
vn -1.000000 -0.000000 -0.000915
|
||||
vn -1.000000 -0.000000 -0.000915
|
||||
vn -1.000000 -0.000000 -0.000915
|
||||
vn -1.000000 -0.000000 -0.000915
|
||||
vn -1.000000 -0.000000 -0.000915
|
||||
vn -1.000000 -0.000000 -0.000915
|
||||
vn -1.000000 -0.000000 -0.000915
|
||||
vn -1.000000 -0.000000 -0.000915
|
||||
vn -1.000000 -0.000000 -0.000915
|
||||
vn -1.000000 -0.000000 -0.000915
|
||||
vn -1.000000 -0.000000 -0.000915
|
||||
vn -1.000000 -0.000000 -0.000915
|
||||
vn -1.000000 -0.000000 -0.000915
|
||||
vn -1.000000 -0.000000 -0.000915
|
||||
vn -1.000000 -0.000000 -0.000915
|
||||
vt 0.888527 0.556112
|
||||
vt 0.864605 0.352976
|
||||
vt 0.889938 0.452969
|
||||
vt 0.860470 0.655374
|
||||
vt 0.814255 0.262947
|
||||
vt 0.807677 0.743993
|
||||
vt 0.742320 0.189018
|
||||
vt 0.733747 0.815928
|
||||
vt 0.653701 0.136225
|
||||
vt 0.643718 0.866278
|
||||
vt 0.554438 0.108168
|
||||
vt 0.543726 0.891611
|
||||
vt 0.451296 0.106757
|
||||
vt 0.440583 0.890201
|
||||
vt 0.351303 0.132090
|
||||
vt 0.341320 0.862143
|
||||
vt 0.261274 0.182440
|
||||
vt 0.252702 0.809351
|
||||
vt 0.187344 0.254375
|
||||
vt 0.180766 0.735421
|
||||
vt 0.134551 0.342994
|
||||
vt 0.130417 0.645392
|
||||
vt 0.106494 0.442257
|
||||
vt 0.105084 0.545399
|
||||
f 1/1/1 2/2/2 3/3/3
|
||||
f 2/2/2 1/1/1 4/4/4
|
||||
f 2/2/2 4/4/4 5/5/5
|
||||
f 5/5/5 4/4/4 6/6/6
|
||||
f 5/5/5 6/6/6 7/7/7
|
||||
f 7/7/7 6/6/6 8/8/8
|
||||
f 7/7/7 8/8/8 9/9/9
|
||||
f 9/9/9 8/8/8 10/10/10
|
||||
f 9/9/9 10/10/10 11/11/11
|
||||
f 11/11/11 10/10/10 12/12/12
|
||||
f 11/11/11 12/12/12 13/13/13
|
||||
f 13/13/13 12/12/12 14/14/14
|
||||
f 13/13/13 14/14/14 15/15/15
|
||||
f 15/15/15 14/14/14 16/16/16
|
||||
f 15/15/15 16/16/16 17/17/17
|
||||
f 17/17/17 16/16/16 18/18/18
|
||||
f 17/17/17 18/18/18 19/19/19
|
||||
f 19/19/19 18/18/18 20/20/20
|
||||
f 19/19/19 20/20/20 21/21/21
|
||||
f 21/21/21 20/20/20 22/22/22
|
||||
f 21/21/21 22/22/22 23/23/23
|
||||
f 23/23/23 22/22/22 24/24/24
|
||||
|
|
@ -0,0 +1,103 @@
|
|||
# Alias Wavefront OBJ File Exported from SketchUp
|
||||
# with OBJexporter (c) 2010/2011 TIG
|
||||
# Units = meters
|
||||
|
||||
mtllib Untitled.mtl
|
||||
|
||||
g Untitled_c_Component_1-Material1
|
||||
usemtl Material1
|
||||
v -7.095873 0.000000 -1.168380
|
||||
v -6.658376 0.000000 2.546556
|
||||
v -7.121665 0.000000 0.717887
|
||||
v -6.582758 0.000000 -2.983698
|
||||
v -5.737580 0.000000 4.193006
|
||||
v -5.617288 0.000000 -4.604357
|
||||
v -4.422025 0.000000 5.545036
|
||||
v -4.265259 0.000000 -5.919911
|
||||
v -2.801367 0.000000 6.510506
|
||||
v -2.618808 0.000000 -6.840708
|
||||
v -0.986049 0.000000 7.023620
|
||||
v -0.790139 0.000000 -7.303996
|
||||
v 0.900218 0.000000 7.049412
|
||||
v 1.096127 0.000000 -7.278204
|
||||
v 2.728887 0.000000 6.586124
|
||||
v 2.911446 0.000000 -6.765089
|
||||
v 4.375338 0.000000 5.665327
|
||||
v 4.532104 0.000000 -5.799620
|
||||
v 5.727367 0.000000 4.349773
|
||||
v 5.847658 0.000000 -4.447590
|
||||
v 6.692837 0.000000 2.729114
|
||||
v 6.768455 0.000000 -2.801139
|
||||
v 7.205952 0.000000 0.913796
|
||||
v 7.231744 0.000000 -0.972470
|
||||
vn 0.000000 -1.000000 -0.000000
|
||||
vn 0.000000 -1.000000 -0.000000
|
||||
vn 0.000000 -1.000000 -0.000000
|
||||
vn 0.000000 -1.000000 -0.000000
|
||||
vn 0.000000 -1.000000 -0.000000
|
||||
vn 0.000000 -1.000000 -0.000000
|
||||
vn 0.000000 -1.000000 -0.000000
|
||||
vn 0.000000 -1.000000 -0.000000
|
||||
vn 0.000000 -1.000000 -0.000000
|
||||
vn 0.000000 -1.000000 -0.000000
|
||||
vn 0.000000 -1.000000 -0.000000
|
||||
vn 0.000000 -1.000000 -0.000000
|
||||
vn 0.000000 -1.000000 -0.000000
|
||||
vn 0.000000 -1.000000 -0.000000
|
||||
vn 0.000000 -1.000000 -0.000000
|
||||
vn 0.000000 -1.000000 -0.000000
|
||||
vn 0.000000 -1.000000 -0.000000
|
||||
vn 0.000000 -1.000000 -0.000000
|
||||
vn 0.000000 -1.000000 -0.000000
|
||||
vn 0.000000 -1.000000 -0.000000
|
||||
vn 0.000000 -1.000000 -0.000000
|
||||
vn 0.000000 -1.000000 -0.000000
|
||||
vn 0.000000 -1.000000 -0.000000
|
||||
vn 0.000000 -1.000000 -0.000000
|
||||
vt 0.888527 0.556112
|
||||
vt 0.864605 0.352976
|
||||
vt 0.889938 0.452969
|
||||
vt 0.860470 0.655374
|
||||
vt 0.814255 0.262947
|
||||
vt 0.807677 0.743993
|
||||
vt 0.742320 0.189018
|
||||
vt 0.733747 0.815928
|
||||
vt 0.653701 0.136225
|
||||
vt 0.643718 0.866278
|
||||
vt 0.554438 0.108168
|
||||
vt 0.543726 0.891611
|
||||
vt 0.451296 0.106757
|
||||
vt 0.440583 0.890201
|
||||
vt 0.351303 0.132090
|
||||
vt 0.341320 0.862143
|
||||
vt 0.261274 0.182440
|
||||
vt 0.252702 0.809351
|
||||
vt 0.187344 0.254375
|
||||
vt 0.180766 0.735421
|
||||
vt 0.134551 0.342994
|
||||
vt 0.130417 0.645392
|
||||
vt 0.106494 0.442257
|
||||
vt 0.105084 0.545399
|
||||
f 1/1/1 2/2/2 3/3/3
|
||||
f 2/2/2 1/1/1 4/4/4
|
||||
f 2/2/2 4/4/4 5/5/5
|
||||
f 5/5/5 4/4/4 6/6/6
|
||||
f 5/5/5 6/6/6 7/7/7
|
||||
f 7/7/7 6/6/6 8/8/8
|
||||
f 7/7/7 8/8/8 9/9/9
|
||||
f 9/9/9 8/8/8 10/10/10
|
||||
f 9/9/9 10/10/10 11/11/11
|
||||
f 11/11/11 10/10/10 12/12/12
|
||||
f 11/11/11 12/12/12 13/13/13
|
||||
f 13/13/13 12/12/12 14/14/14
|
||||
f 13/13/13 14/14/14 15/15/15
|
||||
f 15/15/15 14/14/14 16/16/16
|
||||
f 15/15/15 16/16/16 17/17/17
|
||||
f 17/17/17 16/16/16 18/18/18
|
||||
f 17/17/17 18/18/18 19/19/19
|
||||
f 19/19/19 18/18/18 20/20/20
|
||||
f 19/19/19 20/20/20 21/21/21
|
||||
f 21/21/21 20/20/20 22/22/22
|
||||
f 21/21/21 22/22/22 23/23/23
|
||||
f 23/23/23 22/22/22 24/24/24
|
||||
|
|
@ -0,0 +1,103 @@
|
|||
# Alias Wavefront OBJ File Exported from SketchUp
|
||||
# with OBJexporter (c) 2010/2011 TIG
|
||||
# Units = meters
|
||||
|
||||
mtllib Untitled.mtl
|
||||
|
||||
g Untitled_c_Component_1-Material1
|
||||
usemtl Material1
|
||||
v 7.373765 0.000000 -1.168380
|
||||
v 6.936269 0.000000 2.546556
|
||||
v 7.399557 0.000000 0.717887
|
||||
v 6.860650 0.000000 -2.983698
|
||||
v 6.015472 0.000000 4.193006
|
||||
v 5.895181 0.000000 -4.604357
|
||||
v 4.699918 0.000000 5.545036
|
||||
v 4.543151 0.000000 -5.919911
|
||||
v 3.079259 0.000000 6.510506
|
||||
v 2.896700 0.000000 -6.840708
|
||||
v 1.263941 0.000000 7.023620
|
||||
v 1.068031 0.000000 -7.303996
|
||||
v -0.622326 -0.000000 7.049412
|
||||
v -0.818235 -0.000000 -7.278204
|
||||
v -2.450995 -0.000000 6.586124
|
||||
v -2.633553 -0.000000 -6.765089
|
||||
v -4.097445 -0.000000 5.665327
|
||||
v -4.254212 -0.000000 -5.799620
|
||||
v -5.449475 -0.000000 4.349773
|
||||
v -5.569766 -0.000000 -4.447590
|
||||
v -6.414945 -0.000000 2.729114
|
||||
v -6.490563 -0.000000 -2.801139
|
||||
v -6.928059 -0.000000 0.913796
|
||||
v -6.953851 -0.000000 -0.972470
|
||||
vn -0.000000 1.000000 -0.000000
|
||||
vn -0.000000 1.000000 -0.000000
|
||||
vn -0.000000 1.000000 -0.000000
|
||||
vn -0.000000 1.000000 -0.000000
|
||||
vn -0.000000 1.000000 -0.000000
|
||||
vn -0.000000 1.000000 -0.000000
|
||||
vn -0.000000 1.000000 -0.000000
|
||||
vn -0.000000 1.000000 -0.000000
|
||||
vn -0.000000 1.000000 -0.000000
|
||||
vn -0.000000 1.000000 -0.000000
|
||||
vn -0.000000 1.000000 -0.000000
|
||||
vn -0.000000 1.000000 -0.000000
|
||||
vn -0.000000 1.000000 -0.000000
|
||||
vn -0.000000 1.000000 -0.000000
|
||||
vn -0.000000 1.000000 -0.000000
|
||||
vn -0.000000 1.000000 -0.000000
|
||||
vn -0.000000 1.000000 -0.000000
|
||||
vn -0.000000 1.000000 -0.000000
|
||||
vn -0.000000 1.000000 -0.000000
|
||||
vn -0.000000 1.000000 -0.000000
|
||||
vn -0.000000 1.000000 -0.000000
|
||||
vn -0.000000 1.000000 -0.000000
|
||||
vn -0.000000 1.000000 -0.000000
|
||||
vn -0.000000 1.000000 -0.000000
|
||||
vt 0.888527 0.556112
|
||||
vt 0.864605 0.352976
|
||||
vt 0.889938 0.452969
|
||||
vt 0.860470 0.655374
|
||||
vt 0.814255 0.262947
|
||||
vt 0.807677 0.743993
|
||||
vt 0.742320 0.189018
|
||||
vt 0.733747 0.815928
|
||||
vt 0.653701 0.136225
|
||||
vt 0.643718 0.866278
|
||||
vt 0.554438 0.108168
|
||||
vt 0.543726 0.891611
|
||||
vt 0.451296 0.106757
|
||||
vt 0.440583 0.890201
|
||||
vt 0.351303 0.132090
|
||||
vt 0.341320 0.862143
|
||||
vt 0.261274 0.182440
|
||||
vt 0.252702 0.809351
|
||||
vt 0.187344 0.254375
|
||||
vt 0.180766 0.735421
|
||||
vt 0.134551 0.342994
|
||||
vt 0.130417 0.645392
|
||||
vt 0.106494 0.442257
|
||||
vt 0.105084 0.545399
|
||||
f 1/1/1 2/2/2 3/3/3
|
||||
f 2/2/2 1/1/1 4/4/4
|
||||
f 2/2/2 4/4/4 5/5/5
|
||||
f 5/5/5 4/4/4 6/6/6
|
||||
f 5/5/5 6/6/6 7/7/7
|
||||
f 7/7/7 6/6/6 8/8/8
|
||||
f 7/7/7 8/8/8 9/9/9
|
||||
f 9/9/9 8/8/8 10/10/10
|
||||
f 9/9/9 10/10/10 11/11/11
|
||||
f 11/11/11 10/10/10 12/12/12
|
||||
f 11/11/11 12/12/12 13/13/13
|
||||
f 13/13/13 12/12/12 14/14/14
|
||||
f 13/13/13 14/14/14 15/15/15
|
||||
f 15/15/15 14/14/14 16/16/16
|
||||
f 15/15/15 16/16/16 17/17/17
|
||||
f 17/17/17 16/16/16 18/18/18
|
||||
f 17/17/17 18/18/18 19/19/19
|
||||
f 19/19/19 18/18/18 20/20/20
|
||||
f 19/19/19 20/20/20 21/21/21
|
||||
f 21/21/21 20/20/20 22/22/22
|
||||
f 21/21/21 22/22/22 23/23/23
|
||||
f 23/23/23 22/22/22 24/24/24
|
||||
|
Binary file not shown.
Binary file not shown.
After Width: | Height: | Size: 843 B |
Binary file not shown.
After Width: | Height: | Size: 648 B |
Binary file not shown.
After Width: | Height: | Size: 847 B |
Loading…
Reference in New Issue