Reformat whitespace

master
Robert Munafo 2015-10-07 01:10:56 -04:00
commit 79d2117f38
9 changed files with 677 additions and 0 deletions

39
README.txt Normal file
View File

@ -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)

329
init.lua Executable file
View File

@ -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,
})

View File

@ -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

View File

@ -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

View File

@ -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

BIN
textures/.DS_Store vendored Normal file

Binary file not shown.

BIN
textures/portalgun_blue.png Normal file

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