Add files via upload
274
craft.lua
Normal file
@ -0,0 +1,274 @@
|
||||
minetest.register_craft({
|
||||
output = "portalgun:turretgun",
|
||||
recipe = {
|
||||
{"", "portalgun:secam_off", ""},
|
||||
{"", "default:mese_crystal",""},
|
||||
{"default:steel_ingot", "dye:white", "default:steel_ingot"},
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
minetest.register_craft({
|
||||
output = "portalgun:cplps1",
|
||||
recipe = {{"default:mese_crystal_fragment","dye:grey","dye:grey"},
|
||||
{"portalgun:apb","dye:grey","dye:grey"},
|
||||
{"default:mese_crystal_fragment","dye:grey","dye:grey"},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "portalgun:sign_numa1 3",
|
||||
recipe = {{"dye:black","dye:black","dye:white"},
|
||||
{"portalgun:testblock","dye:black","dye:white"},
|
||||
{"dye:white","dye:black","dye:white"},
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
|
||||
minetest.register_craft({
|
||||
output = "portalgun:sign_x 2",
|
||||
recipe = {{"dye:blue","portalgun:testblock","dye:blue"},
|
||||
{"default:glass","dye:blue","default:glass"},
|
||||
{"dye:blue","default:mese_crystal_fragment","dye:blue"},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "portalgun:warntape 3",
|
||||
recipe = {{"dye:black","dye:yellow","dye:black"},
|
||||
{"default:stick","default:stick","default:stick"},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "portalgun:door_1",
|
||||
recipe = {{"","portalgun:testblock","portalgun:testblock"},
|
||||
{"","portalgun:testblock","portalgun:testblock"},
|
||||
{"default:mese_crystal_fragment","portalgun:testblock","portalgun:testblock"},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "portalgun:toxwater_1 9",
|
||||
recipe = {{"default:dirt","default:dirt","default:dirt"},
|
||||
{"default:dirt","bucket:bucket_lava","default:dirt"},
|
||||
{"default:dirt","default:dirt","default:dirt"},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "portalgun:portaltarget_1",
|
||||
recipe = {{"","portalgun:testblock",""},
|
||||
{"default:mese_crystal_fragment","dye:blue","default:mese_crystal_fragment"},
|
||||
}
|
||||
})
|
||||
minetest.register_craft({
|
||||
output = "portalgun:portaltarget_2",
|
||||
recipe = {{"","portalgun:testblock",""},
|
||||
{"default:mese_crystal_fragment","dye:orange","default:mese_crystal_fragment"},
|
||||
}
|
||||
})
|
||||
minetest.register_craft({
|
||||
output = "portalgun:sign2",
|
||||
recipe = {{"","portalgun:testblock",""},
|
||||
{"dye:white","dye:black","dye:orange"},
|
||||
}
|
||||
})
|
||||
minetest.register_craft({
|
||||
output = "portalgun:sign1",
|
||||
recipe = {{"","portalgun:testblock",""},
|
||||
{"dye:white","dye:black","dye:blue"},
|
||||
}
|
||||
})
|
||||
minetest.register_craft({
|
||||
output = "portalgun:planthole",
|
||||
recipe = {
|
||||
{"portalgun:testblock", "portalgun:testblock", "portalgun:testblock"},
|
||||
{"portalgun:testblock", "portalgun:plantform1_1", "portalgun:testblock"},
|
||||
{"portalgun:testblock", "portalgun:testblock", "portalgun:testblock"}
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "portalgun:delayer",
|
||||
recipe = {
|
||||
{"dye:yellow", "default:mese_crystal", "dye:yellow"},
|
||||
{"default:stone", "portalgun:testblock", "default:stone"},
|
||||
{"dye:yellow", "default:steel_ingot", "dye:yellow"},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "portalgun:testblocks 2",
|
||||
recipe = {
|
||||
{"portalgun:testblock", "default:mese_crystal"},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "portalgun:hard_glass",
|
||||
recipe = {
|
||||
{"default:glass", "default:glass"},
|
||||
{"default:glass", "default:glass"},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "portalgun:apg",
|
||||
recipe = {
|
||||
{"default:glass", "dye:white"},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "portalgun:powerballspawner2",
|
||||
recipe = {
|
||||
{"portalgun:powerballspawner", "default:mese_crystal"},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "portalgun:objdestroyer_1",
|
||||
recipe = {
|
||||
{"default:obsidian_glass", "default:obsidian_glass", "portalgun:dmgblock_1"},
|
||||
{"default:obsidian_glass", "default:obsidian_glass", ""},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "portalgun:dmgblock_1",
|
||||
recipe = {
|
||||
{"default:obsidian_glass", "default:obsidian_glass", "default:mese_crystal"},
|
||||
{"default:obsidian_glass", "default:obsidian_glass", ""},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "portalgun:button",
|
||||
recipe = {
|
||||
{"", "dye:red", ""},
|
||||
{"", "portalgun:testblock", ""},
|
||||
{"", "portalgun:testblock", ""},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "portalgun:cake",
|
||||
recipe = {
|
||||
{"dye:red", "portalgun:testblock", "dye:red"},
|
||||
{"default:dirt", "default:torch", "default:dirt"},
|
||||
{"dye:red", "default:dirt", "dye:red"},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "portalgun:powerdoor1_1",
|
||||
recipe = {
|
||||
{"default:obsidian_glass", "default:mese_crystal", "default:obsidian_glass"},
|
||||
{"default:obsidian_glass", "default:obsidian", "default:obsidian_glass"},
|
||||
{"default:obsidian_glass", "default:mese_crystal", "default:obsidian_glass"},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "portalgun:autocheckpoint",
|
||||
recipe = {
|
||||
{"default:mese_crystal", "default:mese_crystal","default:mese_crystal"},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "portalgun:testblock 3",
|
||||
recipe = {
|
||||
{"default:steel_ingot", "default:steel_ingot"},
|
||||
{"default:steel_ingot", "dye:white"},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "portalgun:apb",
|
||||
recipe = {
|
||||
{"default:stonebrick", "dye:white"},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "portalgun:secam_off",
|
||||
recipe = {
|
||||
{"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"},
|
||||
{"dye:black", "default:glass", "dye:black"},
|
||||
{"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "portalgun:powerballspawner",
|
||||
recipe = {
|
||||
{"default:steel_ingot", "", "default:steel_ingot"},
|
||||
{"dye:yellow", "default:mese_crystal", "dye:yellow"},
|
||||
{"default:steel_ingot", "", "default:steel_ingot"},
|
||||
}
|
||||
})
|
||||
minetest.register_craft({
|
||||
output = "portalgun:powerballtarget",
|
||||
recipe = {
|
||||
{"portalgun:powerballspawner"},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({output = "portalgun:wscspawner2",
|
||||
recipe = {{"portalgun:wscspawner1"}}})
|
||||
minetest.register_craft({output = "portalgun:wscspawner3",
|
||||
recipe = {{"portalgun:wscspawner2"}}})
|
||||
minetest.register_craft({output = "portalgun:wscspawner4",
|
||||
recipe = {{"portalgun:wscspawner3"}}})
|
||||
minetest.register_craft({output = "portalgun:wscspawner1",
|
||||
recipe = {{"portalgun:wscspawner4"}}})
|
||||
minetest.register_craft({
|
||||
output = "portalgun:wscspawner1",
|
||||
recipe = {
|
||||
{"", "default:steel_ingot", ""},
|
||||
{"default:steel_ingot", "default:mese_crystal", "default:steel_ingot"},
|
||||
{"", "default:steel_ingot", ""},}})
|
||||
|
||||
minetest.register_craft({output = "portalgun:wscspawner2_2",
|
||||
recipe = {{"portalgun:wscspawner2_1"}}})
|
||||
minetest.register_craft({output = "portalgun:wscspawner2_3",
|
||||
recipe = {{"portalgun:wscspawner2_2"}}})
|
||||
minetest.register_craft({output = "portalgun:wscspawner2_4",
|
||||
recipe = {{"portalgun:wscspawner2_3"}}})
|
||||
minetest.register_craft({output = "portalgun:wscspawner2_1",
|
||||
recipe = {{"portalgun:wscspawner2_4"}}})
|
||||
minetest.register_craft({
|
||||
output = "portalgun:wscspawner2_1",
|
||||
recipe = {
|
||||
{"", "default:steel_ingot", "default:steel_ingot"},
|
||||
{"default:steel_ingot", "default:mese_crystal", "default:steel_ingot"},
|
||||
{"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"},}})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "portalgun:plantform1_1",
|
||||
recipe = {
|
||||
{"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"},
|
||||
{"default:steel_ingot", "default:mese_crystal", "default:steel_ingot"},
|
||||
{"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"},}})
|
||||
minetest.register_craft({output = "portalgun:plantform1_2",
|
||||
recipe = {{"portalgun:plantform1_1"}}})
|
||||
minetest.register_craft({output = "portalgun:plantform1_3",
|
||||
recipe = {{"portalgun:plantform1_2"}}})
|
||||
minetest.register_craft({output = "portalgun:plantform1_4",
|
||||
recipe = {{"portalgun:plantform1_3"}}})
|
||||
minetest.register_craft({output = "portalgun:plantform_nu1",
|
||||
recipe = {{"portalgun:plantform1_4"}}})
|
||||
minetest.register_craft({output = "portalgun:plantform1_1",
|
||||
recipe = {{"portalgun:plantform_nu1"}}})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "portalgun:gun",
|
||||
recipe = {
|
||||
{"", "default:diamond", ""},
|
||||
{"default:diamond", "default:mese", "default:mese"},
|
||||
{"", "default:steel_ingot", "default:steel_ingot"},
|
||||
},
|
||||
})
|
BIN
craft2.JPG
Normal file
After Width: | Height: | Size: 273 KiB |
2
depends.txt
Normal file
@ -0,0 +1,2 @@
|
||||
default
|
||||
mesecons?
|
1
description.txt
Normal file
@ -0,0 +1 @@
|
||||
Portals and stuff
|
153
gravityuse.lua
Normal file
@ -0,0 +1,153 @@
|
||||
-- Code by UjEdwin
|
||||
|
||||
portalgun_power={}
|
||||
portalgun_power_tmp_power=0
|
||||
|
||||
function portalgun_gravity(itemstack, user, pointed_thing)
|
||||
local ob=pointed_thing.ref
|
||||
if ob:get_luaentity() and ob:get_luaentity().portalgun_power then
|
||||
ob:get_luaentity().target:set_detach()
|
||||
if ob:get_luaentity().target:get_luaentity() and (ob:get_luaentity().target:get_luaentity().itemstring or ob:get_luaentity().target:get_luaentity().wsc) then
|
||||
ob:get_luaentity().target:set_velocity({x=0, y=-1, z=0})
|
||||
ob:get_luaentity().target:set_acceleration({x=0, y=-8, z=0})
|
||||
end
|
||||
return itemstack
|
||||
end
|
||||
if not ob:get_attach() and (ob:is_player() or (ob:get_luaentity() and ob:get_luaentity().powerball~=1)) then
|
||||
portalgun_power.user=user
|
||||
portalgun_power.target=ob
|
||||
if ob:is_player() then portalgun_power.player=1 end
|
||||
local m=minetest.add_entity(ob:get_pos(), "portalgun:power")
|
||||
ob:set_attach(m, "", {x=0,y=0,z=0}, {x=0,y=0,z=0})
|
||||
return itemstack
|
||||
end
|
||||
return itemstack
|
||||
end
|
||||
|
||||
minetest.register_entity("portalgun:power",{
|
||||
hp_max = 100,
|
||||
physical = false,
|
||||
weight = 0,
|
||||
collisionbox = {-0.2,-0.2,-0.2, 0.2,0.2,0.2},
|
||||
visual = "sprite",
|
||||
visual_size = {x=1, y=1},
|
||||
textures = {"portalgun_gravity.png"},
|
||||
spritediv = {x=1, y=1},
|
||||
is_visible = true,
|
||||
makes_footstep_sound = false,
|
||||
automatic_rotate = false,
|
||||
timer=0,
|
||||
time=0.1,
|
||||
portalgun_power=1,
|
||||
portalgun=1,
|
||||
lifelime=100,
|
||||
on_activate=function(self, staticdata)
|
||||
if portalgun_power.user then
|
||||
self.user=portalgun_power.user
|
||||
self.target=portalgun_power.target
|
||||
self.player=portalgun_power.player
|
||||
portalgun_power={}
|
||||
else
|
||||
self.object:remove()
|
||||
end
|
||||
end,
|
||||
on_punch=function(self, puncher, time_from_last_punch, tool_capabilities, dir)
|
||||
if self.target and self.target:get_attach() then
|
||||
self.target:set_detach()
|
||||
self.target:set_hp(0)
|
||||
self.target:punch(self.object, {full_punch_interval=1.0,damage_groups={fleshy=4}}, "default:bronze_pick", nil)
|
||||
end
|
||||
|
||||
end,
|
||||
on_step= function(self, dtime)
|
||||
self.timer=self.timer+dtime
|
||||
if self.timer<self.time then return self end
|
||||
self.timer=0
|
||||
if self.target==nil or (not self.target:get_attach()) then
|
||||
self.object:set_hp(0)
|
||||
self.object:punch(self.object, {full_punch_interval=1.0,damage_groups={fleshy=4}}, "default:bronze_pick", nil)
|
||||
if self.sound then minetest.sound_stop(self.sound) end
|
||||
end
|
||||
if self.player then
|
||||
self.lifelime=self.lifelime-1
|
||||
if self.lifelime<0 then
|
||||
self.target:set_detach()
|
||||
return self
|
||||
end
|
||||
end
|
||||
local pos = self.user:get_pos()
|
||||
if pos==nil then return self end
|
||||
pos.y=pos.y+1.6
|
||||
local dir = self.user:get_look_dir()
|
||||
local npos={x=pos.x+(dir.x*2), y=pos.y+(dir.y*2), z=pos.z+(dir.z*2)}
|
||||
if minetest.registered_nodes[minetest.get_node(npos).name].walkable then
|
||||
return self
|
||||
end
|
||||
self.object:move_to(npos)
|
||||
return self
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_entity("portalgun:power2",{
|
||||
hp_max = 100,
|
||||
physical = true,
|
||||
weight = 10,
|
||||
collisionbox = {-0.35,0,-0.35, 0.35,1,0.35},
|
||||
visual = "sprite",
|
||||
visual_size = {x=1, y=1},
|
||||
textures = {"portalgun_gravity.png"},
|
||||
spritediv = {x=1, y=1},
|
||||
is_visible = true,
|
||||
makes_footstep_sound = false,
|
||||
automatic_rotate = false,
|
||||
timer=0,
|
||||
time=0.025,
|
||||
portalgun_power=1,
|
||||
portalgun=1,
|
||||
lifelime=1000,
|
||||
v=0.3,
|
||||
ltime=0,
|
||||
on_activate=function(self, staticdata)
|
||||
if portalgun_power.user then
|
||||
self.user=portalgun_power.user
|
||||
self.target=portalgun_power.target
|
||||
self.ltime=portalgun_power_tmp_power
|
||||
portalgun_power={}
|
||||
else
|
||||
self.object:remove()
|
||||
end
|
||||
end,
|
||||
on_step= function(self, dtime)
|
||||
local pos=self.object:get_pos()
|
||||
local v=self.object:get_velocity()
|
||||
local v2={x=v.x-self.v,y=(v.y-self.v)*0.99,z=v.z-self.v}
|
||||
|
||||
if v2.x<0.5 and v2.x>-0.5 then v2.x=0 end
|
||||
if v2.y<0.5 and v2.y>-0.5 then v2.y=0 end
|
||||
if v2.z<0.5 and v2.z>-0.5 then v2.z=0 end
|
||||
|
||||
self.object:set_velocity(v2)
|
||||
self.ltime=self.ltime-self.v
|
||||
|
||||
if self.ltime<self.v or (v2.x+v2.y+v2.z==0) then
|
||||
self.lifelime=-1
|
||||
end
|
||||
|
||||
local nexpos={x=pos.x+(v.x*0.05),y=pos.y+(v.y*0.05)+1,z=pos.z+(v.z*0.05)}
|
||||
if minetest.registered_nodes[minetest.get_node(nexpos).name].walkable then
|
||||
self.lifelime=-1
|
||||
end
|
||||
|
||||
self.lifelime=self.lifelime-1
|
||||
if self.lifelime<0 then
|
||||
self.target:set_detach()
|
||||
end
|
||||
|
||||
if self.target==nil or (not self.target:get_attach()) then
|
||||
self.object:set_hp(0)
|
||||
self.object:punch(self.object, {full_punch_interval=1.0,damage_groups={fleshy=4}}, "default:bronze_pick", nil)
|
||||
return self
|
||||
end
|
||||
return self
|
||||
end,
|
||||
})
|
583
init.lua
Normal file
@ -0,0 +1,583 @@
|
||||
disable_portal_stuff=false
|
||||
|
||||
portalgun={new=0,checkpoints={}}
|
||||
dofile(minetest.get_modpath("portalgun") .. "/gravityuse.lua") -- the gravity part of portalgun
|
||||
dofile(minetest.get_modpath("portalgun") .. "/craft.lua")
|
||||
dofile(minetest.get_modpath("portalgun") .. "/stuff.lua") -- security cam
|
||||
if disable_portal_stuff==false and minetest.get_modpath("mesecons")~=nil then
|
||||
dofile(minetest.get_modpath("portalgun") .. "/weightedstoragecube.lua") -- weighted storage cube
|
||||
dofile(minetest.get_modpath("portalgun") .. "/powerball.lua") -- the poweball
|
||||
dofile(minetest.get_modpath("portalgun") .. "/other.lua")
|
||||
end
|
||||
|
||||
portalgun_portal={}
|
||||
portalgun_portal_tmp_user_abort=0
|
||||
portalgun_portal_tmp_user=""
|
||||
local portalgun_timer=1.2
|
||||
local portalgun_time=0
|
||||
portalgun_lifelime=1200 --deletes portals that not used after a while
|
||||
portalgun_max_rage=100
|
||||
portalgun_max_use_per_secund_time=4 --destroys the portal if excessive used
|
||||
portalgun_max_use_per_secund=25 --4 & 25 is default = teleported (teleported 25 times in 4 sec)
|
||||
|
||||
|
||||
function portalgun_param2(pos,param2,r)
|
||||
local pos2={x=pos.x,y=pos.y,z=pos.z}
|
||||
if r then
|
||||
if param2==0 then
|
||||
pos2.x=pos2.x-1
|
||||
elseif param2==1 then pos2.z=pos2.z+1
|
||||
elseif param2==2 then pos2.x=pos2.x+1
|
||||
elseif param2==3 then pos2.z=pos2.z-1
|
||||
end
|
||||
else
|
||||
if param2==0 then
|
||||
pos2.x=pos2.x+1
|
||||
elseif param2==1 then pos2.z=pos2.z-1
|
||||
elseif param2==2 then pos2.x=pos2.x-1
|
||||
elseif param2==3 then pos2.z=pos2.z+1
|
||||
end
|
||||
end
|
||||
return pos2
|
||||
end
|
||||
|
||||
|
||||
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
|
||||
|
||||
function portal_delete(name,n) -- using set_hp & :punch instand of :remove ... no risk for crash if something attach it
|
||||
if portalgun_portal[name]==nil then return end
|
||||
if (n==1 or n==0) and portalgun_portal[name].portal1~=nil then
|
||||
if n==0 then
|
||||
local pos=portalgun_portal[name].portal1:get_pos()
|
||||
if pos~=nil then minetest.sound_play("portalgun_closeportals", {pos=pos,max_hear_distance = 20, gain = 1}) end
|
||||
end
|
||||
portalgun_portal[name].portal1_active=false
|
||||
portalgun_portal[name].portal1:set_hp(0)
|
||||
portalgun_portal[name].portal1:punch(portalgun_portal[name].portal1, {full_punch_interval=1.0,damage_groups={fleshy=9000}}, "default:bronze_pick", nil)
|
||||
end
|
||||
if (n==2 or n==0) and portalgun_portal[name].portal2~=nil then
|
||||
if n==0 then
|
||||
local pos=portalgun_portal[name].portal2:get_pos()
|
||||
if pos~=nil then minetest.sound_play("portalgun_closeportals", {pos=pos,max_hear_distance = 20, gain = 1}) end
|
||||
end
|
||||
portalgun_portal[name].portal2_active=false
|
||||
portalgun_portal[name].portal2:set_hp(0)
|
||||
portalgun_portal[name].portal2:punch(portalgun_portal[name].portal2, {full_punch_interval=1.0,damage_groups={fleshy=9000}}, "default:bronze_pick", nil)
|
||||
end
|
||||
if n==0 then portalgun_portal[name]=nil end
|
||||
end
|
||||
|
||||
minetest.register_on_leaveplayer(function(player)-- deletes user the profile (saveing memory)
|
||||
local name=player:get_player_name()
|
||||
portal_delete(name,0)
|
||||
portalgun_portal[name]=nil
|
||||
end)
|
||||
minetest.register_on_dieplayer(function(player)
|
||||
local name=player:get_player_name()
|
||||
portal_delete(name,0)
|
||||
portalgun_portal[name]=nil
|
||||
end)
|
||||
|
||||
|
||||
portalgun_on_step=function(self, dtime)
|
||||
local name=self.user
|
||||
|
||||
if portalgun_portal[self.user]==nil then
|
||||
self.object:remove()
|
||||
return self
|
||||
end
|
||||
|
||||
if (self.project==1 and self.use~=portalgun_portal[self.user].portal1_use)
|
||||
or (self.project==2 and self.use~=portalgun_portal[self.user].portal2_use) then
|
||||
self.object:remove()
|
||||
return self
|
||||
end
|
||||
|
||||
if portalgun_portal[name].lifelime<0 then
|
||||
portal_delete(name,0)
|
||||
return self
|
||||
end
|
||||
|
||||
if portalgun_portal[name].portal1_active and portalgun_portal[name].portal2_active then -- makes lifetime equal when both is acive, or it will be half
|
||||
portalgun_portal[name].lifelime=portalgun_portal[name].lifelime-0.5
|
||||
else
|
||||
portalgun_portal[name].lifelime=portalgun_portal[name].lifelime-1
|
||||
return self -- abort when only 1 is active (saves cpu)
|
||||
end
|
||||
|
||||
if portalgun_portal[name].timer>0 then -- makes teleported stuff wont move back at same time (bug fix)
|
||||
portalgun_portal[name].timer=portalgun_portal[name].timer-dtime
|
||||
return self
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
if self.portal_max_use>0 then -- makes teleported stuff wont move back at same time (bug fix)
|
||||
self.portal_max_use_time=self.portal_max_use_time+dtime
|
||||
if self.portal_max_use>=portalgun_max_use_per_secund then
|
||||
portal_delete(name,self.project)
|
||||
return self
|
||||
elseif self.portal_max_use_time>=portalgun_max_use_per_secund_time then
|
||||
self.portal_max_use_time=0
|
||||
self.portal_max_use=0
|
||||
end
|
||||
end
|
||||
|
||||
local pos1=0
|
||||
local pos2=0
|
||||
local d1=0
|
||||
local d2=0
|
||||
|
||||
if self.project==1 then
|
||||
pos1=portalgun_portal[name].portal1_pos
|
||||
pos2=portalgun_portal[name].portal2_pos
|
||||
d1=portalgun_portal[name].portal1_dir
|
||||
d2=portalgun_portal[name].portal2_dir
|
||||
else
|
||||
pos1=portalgun_portal[name].portal2_pos
|
||||
pos2=portalgun_portal[name].portal1_pos
|
||||
d1=portalgun_portal[name].portal2_dir
|
||||
d2=portalgun_portal[name].portal1_dir
|
||||
end
|
||||
|
||||
|
||||
if pos2~=0 and pos1~=0 then
|
||||
for ii, ob in pairs(minetest.get_objects_inside_radius(pos1, self.area)) do
|
||||
if pos2~=0 then
|
||||
if (ob:is_player() ) or (ob:get_luaentity() and ob:get_luaentity().portalgun~=1 and ob:get_luaentity().name:find(":text",4)==nil) then
|
||||
|
||||
|
||||
if ob:get_attach() then
|
||||
ob:set_detach()
|
||||
ob:set_acceleration({x=0, y=-10, z=0})
|
||||
end
|
||||
--set velocity then teleport
|
||||
local p=pos2
|
||||
local x=0
|
||||
local y=0
|
||||
local z=0
|
||||
local dis=2
|
||||
if p==nil or p.x==nil then
|
||||
return self
|
||||
end
|
||||
|
||||
|
||||
if ob:is_player() then
|
||||
local v=ob:get_player_velocity()
|
||||
local player_name=ob:get_player_name()
|
||||
portalgun_power.user=player_name
|
||||
portalgun_power.target=ob
|
||||
local vv={x=v.x,y=v.y,z=v.z}
|
||||
-- get the highest velocity
|
||||
dis=2
|
||||
if vv.x+vv.y+vv.z<=0.3 then
|
||||
if self.small==true then
|
||||
vv.x=1.4
|
||||
else
|
||||
vv.x=2
|
||||
end
|
||||
end
|
||||
if vv.x+vv.y+vv.z==0 then vv.x=2 end
|
||||
if vv.x<0 then vv.x=vv.x*-1 end
|
||||
if vv.y<0 then vv.y=vv.y*-1 end
|
||||
if vv.z<0 then vv.z=vv.z*-1 end
|
||||
if vv.x>vv.z then vv.a=vv.x else vv.a=vv.z end
|
||||
if vv.a<vv.y then vv.a=vv.y end
|
||||
portalgun_power_tmp_power=vv.a
|
||||
local m=minetest.add_entity(ob:get_pos(), "portalgun:power2")
|
||||
ob:set_attach(m, "", {x=0,y=0,z=0}, {x=0,y=0,z=0})
|
||||
m:set_velocity(v)
|
||||
m:set_acceleration({x=0,y=-10,z=0})
|
||||
ob=m
|
||||
|
||||
end
|
||||
|
||||
if ob:is_player()==false then
|
||||
local v=ob:get_velocity()
|
||||
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 highest 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:set_velocity({x=v.x, y=v.y, z=v.z})
|
||||
end
|
||||
if d2=="x+" then x=2
|
||||
elseif d2=="x-" then x=-dis
|
||||
elseif d2=="y+" then y=dis
|
||||
elseif d2=="y-" then y=-dis
|
||||
elseif d2=="z+" then z=dis
|
||||
elseif d2=="z-" then z=-dis
|
||||
end
|
||||
local obpos={x=p.x+x,y=p.y+y,z=p.z+z}
|
||||
portalgun_portal[name].timer=0.2
|
||||
self.portal_max_use=self.portal_max_use+1
|
||||
ob:move_to(obpos,false)
|
||||
portalgun_portal[name].lifelime=portalgun_lifelime
|
||||
minetest.sound_play("portalgun_teleport", {pos=portalgun_portal[name].portal1_pos,max_hear_distance = 10, gain = 30})
|
||||
minetest.sound_play("portalgun_teleport", {pos=portalgun_portal[name].portal2_pos,max_hear_distance = 10, gain = 30})
|
||||
end --end of set velocity part then teleport
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
minetest.register_entity("portalgun:portal",{ -- the portals
|
||||
hp_max=10000,
|
||||
visual = "mesh",
|
||||
mesh = "portalgun_portal_xp.obj",
|
||||
physical = false,
|
||||
textures ={"portalgun_blue.png"},
|
||||
visual_size = {x=1, y=1},
|
||||
spritediv = {x=7, y=0},
|
||||
collisionbox = {0,0,0,0,0,0},
|
||||
timer=0,
|
||||
user="",
|
||||
project=1,
|
||||
portalgun=1,
|
||||
portal_max_use=0,
|
||||
portal_max_use_time=0,
|
||||
area=2,
|
||||
small=false,
|
||||
get_staticdata = function(self)
|
||||
return minetest.serialize({
|
||||
user= self.user,
|
||||
project=self.project,
|
||||
use=self.use
|
||||
})
|
||||
end,
|
||||
on_activate= function(self, staticdata)
|
||||
local data=minetest.deserialize(staticdata)
|
||||
if data and type(data) == "table" then
|
||||
self.user = data.user
|
||||
self.project = data.project
|
||||
self.use=data.use
|
||||
if portalgun_portal[self.user]==nil then
|
||||
self.object:remove()
|
||||
return self
|
||||
end
|
||||
if (self.project==1 and self.use~=portalgun_portal[self.user].portal1_use)
|
||||
or (self.project==2 and self.use~=portalgun_portal[self.user].portal2_use) then
|
||||
self.object:remove()
|
||||
return self
|
||||
end
|
||||
elseif portalgun_portal_tmp_user~="" then
|
||||
self.user=portalgun_portal_tmp_user
|
||||
portalgun_portal_tmp_user=""
|
||||
self.project=portalgun_portal[self.user].project
|
||||
|
||||
if self.project==1 then-- if inactivated then activated and another portal is created: remove
|
||||
self.use=portalgun_portal[self.user].portal1_use
|
||||
else
|
||||
self.use=portalgun_portal[self.user].portal2_use
|
||||
end
|
||||
|
||||
else
|
||||
self.object:remove()
|
||||
return self
|
||||
end
|
||||
|
||||
if portalgun_portal[self.user]==nil then
|
||||
self.object:remove()
|
||||
return self
|
||||
end
|
||||
|
||||
local d=""
|
||||
if self.project==1 then
|
||||
d=portalgun_portal[self.user].portal1_dir
|
||||
self.object:set_properties({textures = {"portalgun_blue.png"}})
|
||||
else
|
||||
d=portalgun_portal[self.user].portal2_dir
|
||||
self.object:set_properties({textures = {"portalgun_orange.png"}})
|
||||
end
|
||||
if d=="x+" then self.object:set_yaw(math.pi * 0)
|
||||
elseif d=="x-" then self.object:set_yaw(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:set_yaw(math.pi * 0.5)
|
||||
elseif d=="z-" then self.object:set_yaw(math.pi * 1.5)
|
||||
end
|
||||
if d=="y+" then
|
||||
local pos1={}
|
||||
if self.project==1 then
|
||||
pos1=portalgun_portal[self.user].portal1_pos
|
||||
else
|
||||
pos1=portalgun_portal[self.user].portal2_pos
|
||||
end
|
||||
if portalgun_portal[self.user].y>8 then
|
||||
pos1.y=pos1.y+1
|
||||
end
|
||||
if portalgun_portal[self.user].y>12 then
|
||||
pos1.y=pos1.y+1
|
||||
end
|
||||
if self.project==1 then
|
||||
portalgun_portal[self.user].portal1_pos=pos1
|
||||
else
|
||||
portalgun_portal[self.user].portal2_pos=pos1
|
||||
end
|
||||
elseif string.find(d,"y",1)==nil and (portalgun_portal[self.user].x+portalgun_portal[self.user].z<2.5) then
|
||||
self.area=1.2
|
||||
self.small=true
|
||||
self.object:set_properties({visual_size = {x=0.7, y=0.7},})
|
||||
end
|
||||
end,
|
||||
on_step=portalgun_on_step,
|
||||
})
|
||||
|
||||
|
||||
minetest.register_tool("portalgun:gun1", {
|
||||
description = "Portalgun (blue)",
|
||||
inventory_image = "portalgun_gun_blue.png",
|
||||
range = 5,
|
||||
wield_image = "portalgun_gun_blue.png",
|
||||
groups = {not_in_creative_inventory=1},
|
||||
on_place=function(itemstack, user, pointed_thing)
|
||||
portalgun_mode(itemstack, user, pointed_thing)
|
||||
return itemstack
|
||||
end,
|
||||
on_use = function(itemstack, user, pointed_thing)
|
||||
portalgun_onuse(itemstack, user, pointed_thing)
|
||||
return itemstack
|
||||
end
|
||||
})
|
||||
minetest.register_tool("portalgun:gun2", {
|
||||
description = "Portalgun (orange)",
|
||||
inventory_image = "portalgun_gun_orange.png",
|
||||
range = 5,
|
||||
wield_image = "portalgun_gun_orange.png",
|
||||
groups = {not_in_creative_inventory=1},
|
||||
on_place=function(itemstack, user, pointed_thing)
|
||||
portalgun_mode(itemstack, user, pointed_thing)
|
||||
return itemstack
|
||||
end,
|
||||
on_use = function(itemstack, user, pointed_thing)
|
||||
portalgun_onuse(itemstack, user, pointed_thing)
|
||||
return itemstack
|
||||
end
|
||||
})
|
||||
|
||||
minetest.register_tool("portalgun:gun", {
|
||||
description = "Portalgun",
|
||||
inventory_image = "portalgun_gun.png",
|
||||
range = 5,
|
||||
wield_image = "portalgun_gun.png",
|
||||
groups = {not_in_creative_inventory=0},
|
||||
on_place=function(itemstack, user, pointed_thing)
|
||||
portalgun_mode(itemstack, user, pointed_thing)
|
||||
return itemstack
|
||||
end,
|
||||
on_use = function(itemstack, user, pointed_thing)
|
||||
portalgun_onuse(itemstack, user, pointed_thing)
|
||||
return itemstack
|
||||
end
|
||||
})
|
||||
|
||||
|
||||
function portalgun_mode(itemstack, user, pointed_thing) -- change modes
|
||||
local item=itemstack:to_table()
|
||||
local meta=minetest.deserialize(item["metadata"])
|
||||
local mode=0
|
||||
if meta==nil then
|
||||
meta={}
|
||||
mode=1
|
||||
minetest.chat_send_player(user:get_player_name(), "<Portalgun> PLACE to change portal mode (or LEFT+RIGHTCLICK to use the other)")
|
||||
minetest.chat_send_player(user:get_player_name(), "<Portalgun> LEFTCLICK on an object to carry it, CLICK AGAIN to release")
|
||||
minetest.chat_send_player(user:get_player_name(), "<Portalgun> SHIFT+LEFTCLICK to close both portals (or wait 40sec until it removes it self)")
|
||||
end
|
||||
if meta.mode==nil then meta.mode=2 end
|
||||
mode=(meta.mode)
|
||||
if mode==1 then
|
||||
mode=2
|
||||
else
|
||||
mode=1
|
||||
end
|
||||
meta.mode=mode
|
||||
item.name="portalgun:gun"..mode
|
||||
item.metadata=minetest.serialize(meta)
|
||||
itemstack:replace(item)
|
||||
minetest.sound_play("portalgun_mode", {pos=user:get_pos(),max_hear_distance = 5, gain = 1})
|
||||
end
|
||||
|
||||
|
||||
local function rnd(r)
|
||||
return math.floor(r+ 0.5)
|
||||
end
|
||||
|
||||
function portalgun_onuse(itemstack, user, pointed_thing) -- using the gun
|
||||
|
||||
if pointed_thing.type=="object" then
|
||||
portalgun_gravity(itemstack, user, pointed_thing)
|
||||
return itemstack
|
||||
end
|
||||
|
||||
local pos = user:get_pos()
|
||||
local dir = user:get_look_dir()
|
||||
local key = user:get_player_control()
|
||||
local name=user:get_player_name()
|
||||
local exist=0
|
||||
|
||||
local item=itemstack:to_table()
|
||||
local mode=minetest.deserialize(item["metadata"])
|
||||
if mode==nil then
|
||||
portalgun_mode(itemstack, user, pointed_thing)
|
||||
return itemstack
|
||||
else
|
||||
mode=mode.mode
|
||||
end
|
||||
|
||||
local ob={}
|
||||
ob.project=1
|
||||
ob.lifelime=portalgun_lifelime
|
||||
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()
|
||||
|
||||
if portalgun_portal[name]==nil then -- new portal profile
|
||||
portalgun_portal[name]={lifelime=portalgun_lifelime,project=1,timer=0,portal1_active=false,portal2_active=false,portal1_use=0,portal2_use=0}
|
||||
end
|
||||
|
||||
if key.RMB and mode==2 then -- hold rmbutton to use the other one (like diplazer)
|
||||
mode=1
|
||||
elseif key.RMB and mode==1 then
|
||||
mode=2
|
||||
end
|
||||
|
||||
if key.sneak then
|
||||
portal_delete(name,0)
|
||||
return itemstack
|
||||
end
|
||||
|
||||
pos.y=pos.y+1.5
|
||||
|
||||
-- the project
|
||||
|
||||
for i=1, portalgun_max_rage,0.5 do
|
||||
local nname=minetest.get_node({x=pos.x+(dir.x*i), y=pos.y+(dir.y*i), z=pos.z+(dir.z*i)}).name
|
||||
if minetest.registered_nodes[nname].walkable then
|
||||
portalgun_portal[name].lifelime=portalgun_lifelime
|
||||
|
||||
|
||||
|
||||
if minetest.get_node_group(nname, "antiportal")>0 then
|
||||
minetest.sound_play("portalgun_error", {pos=pos,max_hear_distance = 5, gain = 3})
|
||||
return itemstack
|
||||
end
|
||||
|
||||
if minetest.registered_nodes[minetest.get_node({x=rnd(pos.x+(dir.x*i)), y=rnd(pos.y+(dir.y*i)+1), z=rnd(pos.z+(dir.z*i))}).name].walkable==false and rnd(user:get_pos().y)>rnd(pos.y+(dir.y*i)) then
|
||||
portalgun_setportal(pos,name,dir,i,mode,"y+")
|
||||
return itemstack
|
||||
elseif minetest.registered_nodes[minetest.get_node({x=rnd(pos.x+(dir.x*i)), y=rnd(pos.y+(dir.y*i)-1), z=rnd(pos.z+(dir.z*i))}).name].walkable==false and rnd(user:get_pos().y)<rnd(pos.y+(dir.y*i)) then
|
||||
portalgun_setportal(pos,name,dir,i,mode,"y-")
|
||||
return itemstack
|
||||
elseif minetest.registered_nodes[minetest.get_node({x=rnd(pos.x+(dir.x*i)-1), y=rnd(pos.y+(dir.y*i)), z=rnd(pos.z+(dir.z*i))}).name].walkable==false and rnd(user:get_pos().x)<rnd(pos.x+(dir.x*i)) then
|
||||
portalgun_setportal(pos,name,dir,i,mode,"x-")
|
||||
return itemstack
|
||||
elseif minetest.registered_nodes[minetest.get_node({x=rnd(pos.x+(dir.x*i))+1, y=rnd(pos.y+(dir.y*i)), z=rnd(pos.z+(dir.z*i))}).name].walkable==false and rnd(user:get_pos().x)>rnd(pos.x+(dir.x*i)) then
|
||||
portalgun_setportal(pos,name,dir,i,mode,"x+")
|
||||
return itemstack
|
||||
elseif minetest.registered_nodes[minetest.get_node({x=rnd(pos.x+(dir.x*i)), y=rnd(pos.y+(dir.y*i)), z=rnd(pos.z+(dir.z*i)-1)}).name].walkable==false and rnd(user:get_pos().z)<rnd(pos.z+(dir.z*i)) then
|
||||
portalgun_setportal(pos,name,dir,i,mode,"z-")
|
||||
return itemstack
|
||||
elseif minetest.registered_nodes[minetest.get_node({x=rnd(pos.x+(dir.x*i)), y=rnd(pos.y+(dir.y*i)), z=rnd(pos.z+(dir.z*i)+1)}).name].walkable==false and rnd(user:get_pos().z)>rnd(pos.z+(dir.z*i)) then
|
||||
portalgun_setportal(pos,name,dir,i,mode,"z+")
|
||||
return itemstack
|
||||
end
|
||||
minetest.sound_play("portalgun_error", {pos=pos,max_hear_distance = 20, gain = 3})
|
||||
return itemstack
|
||||
end
|
||||
end
|
||||
return itemstack
|
||||
end
|
||||
|
||||
|
||||
|
||||
function portalgun_setportal(pos,name,dir,i,mode,portal_dir)
|
||||
local lpos={x=pos.x+(dir.x*(i-1)), y=pos.y+(dir.y*(i-1)), z=pos.z+(dir.z*(i-1))} -- last pos
|
||||
local cpos={x=pos.x+(dir.x*i), y=pos.y+(dir.y*i), z=pos.z+(dir.z*i)} -- corrent poss
|
||||
|
||||
if portal_dir=="y+" then cpos.y=(math.floor(cpos.y+ 0.5))+0.524
|
||||
elseif portal_dir=="y-" then cpos.y=(math.floor(cpos.y+ 0.5))-0.524
|
||||
elseif portal_dir=="z+" then cpos.z=(math.floor(cpos.z+ 0.5))+0.524
|
||||
elseif portal_dir=="z-" then cpos.z=(math.floor(cpos.z+ 0.5))-0.524
|
||||
elseif portal_dir=="x+" then cpos.x=(math.floor(cpos.x+ 0.5))+0.524
|
||||
elseif portal_dir=="x-" then cpos.x=(math.floor(cpos.x+ 0.5))-0.524
|
||||
end
|
||||
|
||||
if portal_dir=="x+" or portal_dir=="x-" then -- auto correct (place in center)
|
||||
cpos.y=(math.floor(cpos.y+ 0.5))
|
||||
cpos.z=(math.floor(cpos.z+ 0.5))
|
||||
elseif portal_dir=="y+" or portal_dir=="y-" then
|
||||
cpos.x=(math.floor(cpos.x+ 0.5))
|
||||
cpos.z=(math.floor(cpos.z+ 0.5))
|
||||
elseif portal_dir=="z+" or portal_dir=="z-" then
|
||||
cpos.x=(math.floor(cpos.x+ 0.5))
|
||||
cpos.y=(math.floor(cpos.y+ 0.5))
|
||||
end
|
||||
|
||||
if minetest.registered_nodes[minetest.get_node(cpos).name].walkable then
|
||||
minetest.sound_play("portalgun_error", {pos=pos,max_hear_distance = 5, gain = 3})
|
||||
return false
|
||||
end
|
||||
|
||||
if string.find(portal_dir,"x",1) or string.find(portal_dir,"z",1) then-- auto correct (move from bottom / top)
|
||||
local testpos1={x=cpos.x,y=cpos.y-1,z=cpos.z}
|
||||
local testpos2={x=cpos.x,y=cpos.y+1,z=cpos.z}
|
||||
if minetest.registered_nodes[minetest.get_node(testpos1).name].walkable
|
||||
and minetest.registered_nodes[minetest.get_node(testpos2).name].walkable==false then
|
||||
cpos.y=cpos.y+0.5
|
||||
elseif minetest.registered_nodes[minetest.get_node(testpos2).name].walkable
|
||||
and minetest.registered_nodes[minetest.get_node(testpos1).name].walkable==false then
|
||||
cpos.y=cpos.y-0.5
|
||||
end
|
||||
end
|
||||
|
||||
portalgun_portal_tmp_user=name
|
||||
portalgun_portal[name].x=pos.x-lpos.x
|
||||
portalgun_portal[name].y=pos.y-lpos.y
|
||||
portalgun_portal[name].z=pos.z-lpos.z
|
||||
portalgun_portal[name].project=mode
|
||||
|
||||
if portalgun_portal[name].x<0 then
|
||||
portalgun_portal[name].x=portalgun_portal[name].x*-1
|
||||
end
|
||||
if portalgun_portal[name].z<0 then
|
||||
portalgun_portal[name].z=portalgun_portal[name].z*-1
|
||||
end
|
||||
|
||||
if mode==1 then
|
||||
portal_delete(name,1)
|
||||
portalgun_portal[name].portal1_use=portalgun_portal[name].portal1_use+1
|
||||
portalgun_portal[name].portal1_dir=portal_dir
|
||||
portalgun_portal[name].portal1_pos=cpos
|
||||
portalgun_portal[name].portal1=minetest.add_entity(cpos, "portalgun:portal")
|
||||
portalgun_portal[name].portal1_active=true
|
||||
minetest.sound_play("portalgun_portalblue", {pos=cpos, max_hear_distance = 20, gain = 1})
|
||||
else
|
||||
portal_delete(name,2)
|
||||
portalgun_portal[name].portal2_use=portalgun_portal[name].portal2_use+1
|
||||
portalgun_portal[name].portal2_dir=portal_dir
|
||||
portalgun_portal[name].portal2_pos=cpos
|
||||
portalgun_portal[name].portal2=minetest.add_entity(cpos, "portalgun:portal")
|
||||
portalgun_portal[name].portal2_active=true
|
||||
minetest.sound_play("portalgun_portalorange", {pos=cpos,max_hear_distance = 20, gain = 1})
|
||||
end
|
||||
end
|
233
models/portalgun_portal_xp.obj
Normal file
@ -0,0 +1,233 @@
|
||||
# Blender v2.78 (sub 0) OBJ File: 'portalgun_portal_ym.blend'
|
||||
# www.blender.org
|
||||
mtllib portalgun_portal_ym.mtl
|
||||
o Plane
|
||||
v 0.000000 0.000000 0.000000
|
||||
v -0.000000 1.652609 0.000000
|
||||
v -0.000000 3.305217 0.000000
|
||||
v -0.000000 4.957826 0.000000
|
||||
v -0.000000 0.000000 -1.652609
|
||||
v -0.000000 0.000000 -3.305217
|
||||
v -0.000000 0.000000 -4.957826
|
||||
v 0.000000 -1.652609 -0.000000
|
||||
v 0.000000 -3.305217 -0.000000
|
||||
v 0.000000 -4.957826 -0.000000
|
||||
v 0.000000 -0.000000 1.652609
|
||||
v 0.000000 -0.000000 3.305217
|
||||
v 0.000000 -0.000000 4.957826
|
||||
v 0.000000 1.624598 1.624598
|
||||
v -0.000000 3.249197 1.554573
|
||||
v -0.000000 4.873795 1.456536
|
||||
v 0.000000 1.554573 3.249197
|
||||
v 0.000000 3.102143 3.102143
|
||||
v -0.000000 4.635707 2.885062
|
||||
v 0.000000 1.456536 4.873795
|
||||
v 0.000000 2.885062 4.635707
|
||||
v 0.000000 4.257568 4.257568
|
||||
v -0.000000 1.624598 -1.624598
|
||||
v -0.000000 1.554573 -3.249197
|
||||
v -0.000000 1.456536 -4.873795
|
||||
v -0.000000 3.249197 -1.554573
|
||||
v -0.000000 3.102143 -3.102143
|
||||
v -0.000000 2.885062 -4.635707
|
||||
v -0.000000 4.873795 -1.456536
|
||||
v -0.000000 4.635707 -2.885062
|
||||
v -0.000000 4.257568 -4.257568
|
||||
v 0.000000 -1.624598 -1.624598
|
||||
v 0.000000 -3.249197 -1.554573
|
||||
v 0.000000 -4.873795 -1.456536
|
||||
v -0.000000 -1.554573 -3.249197
|
||||
v 0.000000 -3.102143 -3.102143
|
||||
v 0.000000 -4.635707 -2.885062
|
||||
v -0.000000 -1.456536 -4.873795
|
||||
v -0.000000 -2.885062 -4.635707
|
||||
v 0.000000 -4.257568 -4.257568
|
||||
v 0.000000 -1.624598 1.624598
|
||||
v 0.000000 -1.554573 3.249197
|
||||
v 0.000000 -1.456536 4.873795
|
||||
v 0.000000 -3.249197 1.554573
|
||||
v 0.000000 -3.102143 3.102143
|
||||
v 0.000000 -2.885062 4.635707
|
||||
v 0.000000 -4.873795 1.456536
|
||||
v 0.000000 -4.635707 2.885062
|
||||
v 0.000000 -4.257568 4.257568
|
||||
v 0.000000 -3.809403 5.602063
|
||||
v 0.000000 -2.632970 6.162270
|
||||
v 0.000000 -1.344495 6.498394
|
||||
v 0.000000 -0.000000 6.610435
|
||||
v 0.000000 1.344495 6.498394
|
||||
v 0.000000 2.632970 6.162270
|
||||
v 0.000000 3.809403 5.602063
|
||||
v -0.000000 5.602063 3.809403
|
||||
v -0.000000 6.162270 2.632970
|
||||
v -0.000000 6.498394 1.344495
|
||||
v -0.000000 6.610435 0.000000
|
||||
v -0.000000 6.498394 -1.344495
|
||||
v -0.000000 6.162270 -2.632970
|
||||
v -0.000000 5.602063 -3.809403
|
||||
v -0.000000 3.809403 -5.602063
|
||||
v -0.000000 2.632970 -6.162270
|
||||
v -0.000000 1.344495 -6.498394
|
||||
v -0.000000 0.000000 -6.610435
|
||||
v -0.000000 -1.344495 -6.498394
|
||||
v -0.000000 -2.632970 -6.162270
|
||||
v -0.000000 -3.809403 -5.602063
|
||||
v 0.000000 -5.602063 -3.809403
|
||||
v 0.000000 -6.162270 -2.632970
|
||||
v 0.000000 -6.498394 -1.344495
|
||||
v 0.000000 -6.610435 -0.000000
|
||||
v 0.000000 -6.498394 1.344495
|
||||
v 0.000000 -6.162270 2.632970
|
||||
v 0.000000 -5.602063 3.809403
|
||||
v 0.000000 4.817774 4.817774
|
||||
v -0.000000 4.817774 -4.817774
|
||||
v 0.000000 -4.817774 4.817774
|
||||
v 0.000000 -4.817774 -4.817774
|
||||
vt 0.5000 0.5000
|
||||
vt 0.3757 0.5000
|
||||
vt 0.3778 0.3778
|
||||
vt 0.5000 0.3757
|
||||
vt 0.3831 0.2556
|
||||
vt 0.5000 0.2514
|
||||
vt 0.3904 0.1334
|
||||
vt 0.5000 0.1270
|
||||
vt 0.3989 0.0111
|
||||
vt 0.5000 0.0027
|
||||
vt 0.2514 0.5000
|
||||
vt 0.2556 0.3831
|
||||
vt 0.2666 0.2666
|
||||
vt 0.2830 0.1513
|
||||
vt 0.3019 0.0364
|
||||
vt 0.1270 0.5000
|
||||
vt 0.1334 0.3904
|
||||
vt 0.1513 0.2830
|
||||
vt 0.1797 0.1797
|
||||
vt 0.2134 0.0786
|
||||
vt 0.0027 0.5000
|
||||
vt 0.0111 0.3989
|
||||
vt 0.0364 0.3019
|
||||
vt 0.0786 0.2134
|
||||
vt 0.1376 0.1376
|
||||
vt 0.6222 0.3778
|
||||
vt 0.6243 0.5000
|
||||
vt 0.7444 0.3831
|
||||
vt 0.7486 0.5000
|
||||
vt 0.8666 0.3904
|
||||
vt 0.8730 0.5000
|
||||
vt 0.9889 0.3989
|
||||
vt 0.9973 0.5000
|
||||
vt 0.6169 0.2556
|
||||
vt 0.7334 0.2666
|
||||
vt 0.8487 0.2830
|
||||
vt 0.9636 0.3019
|
||||
vt 0.6096 0.1334
|
||||
vt 0.7170 0.1513
|
||||
vt 0.8203 0.1797
|
||||
vt 0.9214 0.2134
|
||||
vt 0.6011 0.0111
|
||||
vt 0.6981 0.0364
|
||||
vt 0.7866 0.0786
|
||||
vt 0.8624 0.1376
|
||||
vt 0.6222 0.6222
|
||||
vt 0.5000 0.6243
|
||||
vt 0.6169 0.7444
|
||||
vt 0.5000 0.7486
|
||||
vt 0.6096 0.8666
|
||||
vt 0.5000 0.8730
|
||||
vt 0.6011 0.9889
|
||||
vt 0.5000 0.9973
|
||||
vt 0.7444 0.6169
|
||||
vt 0.7334 0.7334
|
||||
vt 0.7170 0.8487
|
||||
vt 0.6981 0.9636
|
||||
vt 0.8666 0.6096
|
||||
vt 0.8487 0.7170
|
||||
vt 0.8203 0.8203
|
||||
vt 0.7866 0.9214
|
||||
vt 0.9889 0.6011
|
||||
vt 0.9636 0.6981
|
||||
vt 0.9214 0.7866
|
||||
vt 0.8624 0.8624
|
||||
vt 0.3778 0.6222
|
||||
vt 0.2556 0.6169
|
||||
vt 0.1334 0.6096
|
||||
vt 0.0111 0.6011
|
||||
vt 0.3831 0.7444
|
||||
vt 0.2666 0.7334
|
||||
vt 0.1513 0.7170
|
||||
vt 0.0364 0.6981
|
||||
vt 0.3904 0.8666
|
||||
vt 0.2830 0.8487
|
||||
vt 0.1797 0.8203
|
||||
vt 0.0786 0.7866
|
||||
vt 0.3989 0.9889
|
||||
vt 0.3019 0.9636
|
||||
vt 0.2134 0.9214
|
||||
vt 0.1376 0.8624
|
||||
vn -1.0000 0.0000 0.0000
|
||||
usemtl None
|
||||
s 1
|
||||
f 1/1/1 11/2/1 14/3/1 2/4/1
|
||||
f 2/4/1 14/3/1 15/5/1 3/6/1
|
||||
f 3/6/1 15/5/1 16/7/1 4/8/1
|
||||
f 4/8/1 16/7/1 59/9/1 60/10/1
|
||||
f 11/2/1 12/11/1 17/12/1 14/3/1
|
||||
f 14/3/1 17/12/1 18/13/1 15/5/1
|
||||
f 15/5/1 18/13/1 19/14/1 16/7/1
|
||||
f 16/7/1 19/14/1 58/15/1 59/9/1
|
||||
f 12/11/1 13/16/1 20/17/1 17/12/1
|
||||
f 17/12/1 20/17/1 21/18/1 18/13/1
|
||||
f 18/13/1 21/18/1 22/19/1 19/14/1
|
||||
f 19/14/1 22/19/1 57/20/1 58/15/1
|
||||
f 13/16/1 53/21/1 54/22/1 20/17/1
|
||||
f 20/17/1 54/22/1 55/23/1 21/18/1
|
||||
f 21/18/1 55/23/1 56/24/1 22/19/1
|
||||
f 22/19/1 56/24/1 78/25/1 57/20/1
|
||||
f 1/1/1 2/4/1 23/26/1 5/27/1
|
||||
f 5/27/1 23/26/1 24/28/1 6/29/1
|
||||
f 6/29/1 24/28/1 25/30/1 7/31/1
|
||||
f 7/31/1 25/30/1 66/32/1 67/33/1
|
||||
f 2/4/1 3/6/1 26/34/1 23/26/1
|
||||
f 23/26/1 26/34/1 27/35/1 24/28/1
|
||||
f 24/28/1 27/35/1 28/36/1 25/30/1
|
||||
f 25/30/1 28/36/1 65/37/1 66/32/1
|
||||
f 3/6/1 4/8/1 29/38/1 26/34/1
|
||||
f 26/34/1 29/38/1 30/39/1 27/35/1
|
||||
f 27/35/1 30/39/1 31/40/1 28/36/1
|
||||
f 28/36/1 31/40/1 64/41/1 65/37/1
|
||||
f 4/8/1 60/10/1 61/42/1 29/38/1
|
||||
f 29/38/1 61/42/1 62/43/1 30/39/1
|
||||
f 30/39/1 62/43/1 63/44/1 31/40/1
|
||||
f 31/40/1 63/44/1 79/45/1 64/41/1
|
||||
f 1/1/1 5/27/1 32/46/1 8/47/1
|
||||
f 8/47/1 32/46/1 33/48/1 9/49/1
|
||||
f 9/49/1 33/48/1 34/50/1 10/51/1
|
||||
f 10/51/1 34/50/1 73/52/1 74/53/1
|
||||
f 5/27/1 6/29/1 35/54/1 32/46/1
|
||||
f 32/46/1 35/54/1 36/55/1 33/48/1
|
||||
f 33/48/1 36/55/1 37/56/1 34/50/1
|
||||
f 34/50/1 37/56/1 72/57/1 73/52/1
|
||||
f 6/29/1 7/31/1 38/58/1 35/54/1
|
||||
f 35/54/1 38/58/1 39/59/1 36/55/1
|
||||
f 36/55/1 39/59/1 40/60/1 37/56/1
|
||||
f 37/56/1 40/60/1 71/61/1 72/57/1
|
||||
f 7/31/1 67/33/1 68/62/1 38/58/1
|
||||
f 38/58/1 68/62/1 69/63/1 39/59/1
|
||||
f 39/59/1 69/63/1 70/64/1 40/60/1
|
||||
f 40/60/1 70/64/1 81/65/1 71/61/1
|
||||
f 1/1/1 8/47/1 41/66/1 11/2/1
|
||||
f 11/2/1 41/66/1 42/67/1 12/11/1
|
||||
f 12/11/1 42/67/1 43/68/1 13/16/1
|
||||
f 13/16/1 43/68/1 52/69/1 53/21/1
|
||||
f 8/47/1 9/49/1 44/70/1 41/66/1
|
||||
f 41/66/1 44/70/1 45/71/1 42/67/1
|
||||
f 42/67/1 45/71/1 46/72/1 43/68/1
|
||||
f 43/68/1 46/72/1 51/73/1 52/69/1
|
||||
f 9/49/1 10/51/1 47/74/1 44/70/1
|
||||
f 44/70/1 47/74/1 48/75/1 45/71/1
|
||||
f 45/71/1 48/75/1 49/76/1 46/72/1
|
||||
f 46/72/1 49/76/1 50/77/1 51/73/1
|
||||
f 10/51/1 74/53/1 75/78/1 47/74/1
|
||||
f 47/74/1 75/78/1 76/79/1 48/75/1
|
||||
f 48/75/1 76/79/1 77/80/1 49/76/1
|
||||
f 49/76/1 77/80/1 80/81/1 50/77/1
|
233
models/portalgun_portal_ym.obj
Normal file
@ -0,0 +1,233 @@
|
||||
# Blender v2.78 (sub 0) OBJ File: 'portalgun_portal_ym.blend'
|
||||
# www.blender.org
|
||||
mtllib portalgun_portal_ym.mtl
|
||||
o Plane
|
||||
v 0.000000 0.000000 0.000000
|
||||
v -0.000000 -0.000000 1.652609
|
||||
v -0.000000 -0.000001 3.305217
|
||||
v -0.000000 -0.000001 4.957826
|
||||
v -1.652609 0.000000 0.000000
|
||||
v -3.305217 0.000000 0.000000
|
||||
v -4.957826 0.000001 0.000000
|
||||
v 0.000000 0.000000 -1.652609
|
||||
v 0.000000 0.000001 -3.305217
|
||||
v 0.000000 0.000001 -4.957826
|
||||
v 1.652609 -0.000000 -0.000000
|
||||
v 3.305217 -0.000000 -0.000000
|
||||
v 4.957826 -0.000001 -0.000000
|
||||
v 1.624598 -0.000001 1.624598
|
||||
v 1.554573 -0.000001 3.249197
|
||||
v 1.456536 -0.000002 4.873795
|
||||
v 3.249197 -0.000001 1.554573
|
||||
v 3.102143 -0.000001 3.102143
|
||||
v 2.885062 -0.000002 4.635707
|
||||
v 4.873795 -0.000001 1.456536
|
||||
v 4.635707 -0.000001 2.885062
|
||||
v 4.257568 -0.000002 4.257568
|
||||
v -1.624598 -0.000000 1.624598
|
||||
v -3.249197 0.000000 1.554573
|
||||
v -4.873795 0.000000 1.456536
|
||||
v -1.554573 -0.000001 3.249197
|
||||
v -3.102143 -0.000000 3.102143
|
||||
v -4.635707 -0.000000 2.885062
|
||||
v -1.456536 -0.000001 4.873795
|
||||
v -2.885062 -0.000001 4.635707
|
||||
v -4.257568 -0.000001 4.257568
|
||||
v -1.624598 0.000001 -1.624598
|
||||
v -1.554573 0.000001 -3.249197
|
||||
v -1.456536 0.000002 -4.873795
|
||||
v -3.249197 0.000001 -1.554573
|
||||
v -3.102143 0.000001 -3.102143
|
||||
v -2.885062 0.000002 -4.635707
|
||||
v -4.873795 0.000001 -1.456536
|
||||
v -4.635707 0.000001 -2.885062
|
||||
v -4.257568 0.000002 -4.257568
|
||||
v 1.624598 0.000000 -1.624598
|
||||
v 3.249197 -0.000000 -1.554573
|
||||
v 4.873795 -0.000000 -1.456536
|
||||
v 1.554573 0.000001 -3.249197
|
||||
v 3.102143 0.000000 -3.102143
|
||||
v 4.635707 0.000000 -2.885062
|
||||
v 1.456536 0.000001 -4.873795
|
||||
v 2.885062 0.000001 -4.635707
|
||||
v 4.257568 0.000001 -4.257568
|
||||
v 5.602063 0.000000 -3.809403
|
||||
v 6.162270 -0.000000 -2.632970
|
||||
v 6.498394 -0.000001 -1.344495
|
||||
v 6.610435 -0.000001 -0.000000
|
||||
v 6.498394 -0.000001 1.344495
|
||||
v 6.162270 -0.000002 2.632970
|
||||
v 5.602063 -0.000002 3.809403
|
||||
v 3.809403 -0.000002 5.602063
|
||||
v 2.632970 -0.000002 6.162270
|
||||
v 1.344495 -0.000002 6.498394
|
||||
v -0.000000 -0.000002 6.610435
|
||||
v -1.344495 -0.000002 6.498394
|
||||
v -2.632970 -0.000001 6.162270
|
||||
v -3.809403 -0.000001 5.602063
|
||||
v -5.602063 -0.000000 3.809403
|
||||
v -6.162270 0.000000 2.632970
|
||||
v -6.498394 0.000001 1.344495
|
||||
v -6.610435 0.000001 0.000000
|
||||
v -6.498394 0.000001 -1.344495
|
||||
v -6.162270 0.000002 -2.632970
|
||||
v -5.602063 0.000002 -3.809403
|
||||
v -3.809403 0.000002 -5.602063
|
||||
v -2.632970 0.000002 -6.162270
|
||||
v -1.344495 0.000002 -6.498394
|
||||
v 0.000000 0.000002 -6.610435
|
||||
v 1.344495 0.000002 -6.498394
|
||||
v 2.632970 0.000001 -6.162270
|
||||
v 3.809403 0.000001 -5.602063
|
||||
v 4.817774 -0.000002 4.817774
|
||||
v -4.817774 -0.000001 4.817774
|
||||
v 4.817774 0.000001 -4.817774
|
||||
v -4.817774 0.000002 -4.817774
|
||||
vt 0.5000 0.5000
|
||||
vt 0.3757 0.5000
|
||||
vt 0.3778 0.3778
|
||||
vt 0.5000 0.3757
|
||||
vt 0.3831 0.2556
|
||||
vt 0.5000 0.2514
|
||||
vt 0.3904 0.1334
|
||||
vt 0.5000 0.1270
|
||||
vt 0.3989 0.0111
|
||||
vt 0.5000 0.0027
|
||||
vt 0.2514 0.5000
|
||||
vt 0.2556 0.3831
|
||||
vt 0.2666 0.2666
|
||||
vt 0.2830 0.1513
|
||||
vt 0.3019 0.0364
|
||||
vt 0.1270 0.5000
|
||||
vt 0.1334 0.3904
|
||||
vt 0.1513 0.2830
|
||||
vt 0.1797 0.1797
|
||||
vt 0.2134 0.0786
|
||||
vt 0.0027 0.5000
|
||||
vt 0.0111 0.3989
|
||||
vt 0.0364 0.3019
|
||||
vt 0.0786 0.2134
|
||||
vt 0.1376 0.1376
|
||||
vt 0.6222 0.3778
|
||||
vt 0.6243 0.5000
|
||||
vt 0.7444 0.3831
|
||||
vt 0.7486 0.5000
|
||||
vt 0.8666 0.3904
|
||||
vt 0.8730 0.5000
|
||||
vt 0.9889 0.3989
|
||||
vt 0.9973 0.5000
|
||||
vt 0.6169 0.2556
|
||||
vt 0.7334 0.2666
|
||||
vt 0.8487 0.2830
|
||||
vt 0.9636 0.3019
|
||||
vt 0.6096 0.1334
|
||||
vt 0.7170 0.1513
|
||||
vt 0.8203 0.1797
|
||||
vt 0.9214 0.2134
|
||||
vt 0.6011 0.0111
|
||||
vt 0.6981 0.0364
|
||||
vt 0.7866 0.0786
|
||||
vt 0.8624 0.1376
|
||||
vt 0.6222 0.6222
|
||||
vt 0.5000 0.6243
|
||||
vt 0.6169 0.7444
|
||||
vt 0.5000 0.7486
|
||||
vt 0.6096 0.8666
|
||||
vt 0.5000 0.8730
|
||||
vt 0.6011 0.9889
|
||||
vt 0.5000 0.9973
|
||||
vt 0.7444 0.6169
|
||||
vt 0.7334 0.7334
|
||||
vt 0.7170 0.8487
|
||||
vt 0.6981 0.9636
|
||||
vt 0.8666 0.6096
|
||||
vt 0.8487 0.7170
|
||||
vt 0.8203 0.8203
|
||||
vt 0.7866 0.9214
|
||||
vt 0.9889 0.6011
|
||||
vt 0.9636 0.6981
|
||||
vt 0.9214 0.7866
|
||||
vt 0.8624 0.8624
|
||||
vt 0.3778 0.6222
|
||||
vt 0.2556 0.6169
|
||||
vt 0.1334 0.6096
|
||||
vt 0.0111 0.6011
|
||||
vt 0.3831 0.7444
|
||||
vt 0.2666 0.7334
|
||||
vt 0.1513 0.7170
|
||||
vt 0.0364 0.6981
|
||||
vt 0.3904 0.8666
|
||||
vt 0.2830 0.8487
|
||||
vt 0.1797 0.8203
|
||||
vt 0.0786 0.7866
|
||||
vt 0.3989 0.9889
|
||||
vt 0.3019 0.9636
|
||||
vt 0.2134 0.9214
|
||||
vt 0.1376 0.8624
|
||||
vn 0.0000 -1.0000 0.0000
|
||||
usemtl None
|
||||
s 1
|
||||
f 1/1/1 11/2/1 14/3/1 2/4/1
|
||||
f 2/4/1 14/3/1 15/5/1 3/6/1
|
||||
f 3/6/1 15/5/1 16/7/1 4/8/1
|
||||
f 4/8/1 16/7/1 59/9/1 60/10/1
|
||||
f 11/2/1 12/11/1 17/12/1 14/3/1
|
||||
f 14/3/1 17/12/1 18/13/1 15/5/1
|
||||
f 15/5/1 18/13/1 19/14/1 16/7/1
|
||||
f 16/7/1 19/14/1 58/15/1 59/9/1
|
||||
f 12/11/1 13/16/1 20/17/1 17/12/1
|
||||
f 17/12/1 20/17/1 21/18/1 18/13/1
|
||||
f 18/13/1 21/18/1 22/19/1 19/14/1
|
||||
f 19/14/1 22/19/1 57/20/1 58/15/1
|
||||
f 13/16/1 53/21/1 54/22/1 20/17/1
|
||||
f 20/17/1 54/22/1 55/23/1 21/18/1
|
||||
f 21/18/1 55/23/1 56/24/1 22/19/1
|
||||
f 22/19/1 56/24/1 78/25/1 57/20/1
|
||||
f 1/1/1 2/4/1 23/26/1 5/27/1
|
||||
f 5/27/1 23/26/1 24/28/1 6/29/1
|
||||
f 6/29/1 24/28/1 25/30/1 7/31/1
|
||||
f 7/31/1 25/30/1 66/32/1 67/33/1
|
||||
f 2/4/1 3/6/1 26/34/1 23/26/1
|
||||
f 23/26/1 26/34/1 27/35/1 24/28/1
|
||||
f 24/28/1 27/35/1 28/36/1 25/30/1
|
||||
f 25/30/1 28/36/1 65/37/1 66/32/1
|
||||
f 3/6/1 4/8/1 29/38/1 26/34/1
|
||||
f 26/34/1 29/38/1 30/39/1 27/35/1
|
||||
f 27/35/1 30/39/1 31/40/1 28/36/1
|
||||
f 28/36/1 31/40/1 64/41/1 65/37/1
|
||||
f 4/8/1 60/10/1 61/42/1 29/38/1
|
||||
f 29/38/1 61/42/1 62/43/1 30/39/1
|
||||
f 30/39/1 62/43/1 63/44/1 31/40/1
|
||||
f 31/40/1 63/44/1 79/45/1 64/41/1
|
||||
f 1/1/1 5/27/1 32/46/1 8/47/1
|
||||
f 8/47/1 32/46/1 33/48/1 9/49/1
|
||||
f 9/49/1 33/48/1 34/50/1 10/51/1
|
||||
f 10/51/1 34/50/1 73/52/1 74/53/1
|
||||
f 5/27/1 6/29/1 35/54/1 32/46/1
|
||||
f 32/46/1 35/54/1 36/55/1 33/48/1
|
||||
f 33/48/1 36/55/1 37/56/1 34/50/1
|
||||
f 34/50/1 37/56/1 72/57/1 73/52/1
|
||||
f 6/29/1 7/31/1 38/58/1 35/54/1
|
||||
f 35/54/1 38/58/1 39/59/1 36/55/1
|
||||
f 36/55/1 39/59/1 40/60/1 37/56/1
|
||||
f 37/56/1 40/60/1 71/61/1 72/57/1
|
||||
f 7/31/1 67/33/1 68/62/1 38/58/1
|
||||
f 38/58/1 68/62/1 69/63/1 39/59/1
|
||||
f 39/59/1 69/63/1 70/64/1 40/60/1
|
||||
f 40/60/1 70/64/1 81/65/1 71/61/1
|
||||
f 1/1/1 8/47/1 41/66/1 11/2/1
|
||||
f 11/2/1 41/66/1 42/67/1 12/11/1
|
||||
f 12/11/1 42/67/1 43/68/1 13/16/1
|
||||
f 13/16/1 43/68/1 52/69/1 53/21/1
|
||||
f 8/47/1 9/49/1 44/70/1 41/66/1
|
||||
f 41/66/1 44/70/1 45/71/1 42/67/1
|
||||
f 42/67/1 45/71/1 46/72/1 43/68/1
|
||||
f 43/68/1 46/72/1 51/73/1 52/69/1
|
||||
f 9/49/1 10/51/1 47/74/1 44/70/1
|
||||
f 44/70/1 47/74/1 48/75/1 45/71/1
|
||||
f 45/71/1 48/75/1 49/76/1 46/72/1
|
||||
f 46/72/1 49/76/1 50/77/1 51/73/1
|
||||
f 10/51/1 74/53/1 75/78/1 47/74/1
|
||||
f 47/74/1 75/78/1 76/79/1 48/75/1
|
||||
f 48/75/1 76/79/1 77/80/1 49/76/1
|
||||
f 49/76/1 77/80/1 80/81/1 50/77/1
|
233
models/portalgun_portal_yp.obj
Normal file
@ -0,0 +1,233 @@
|
||||
# Blender v2.78 (sub 0) OBJ File: 'portalgun_portal_ym.blend'
|
||||
# www.blender.org
|
||||
mtllib portalgun_portal_ym.mtl
|
||||
o Plane
|
||||
v 0.000000 0.000000 0.000000
|
||||
v 0.000000 0.000000 1.652609
|
||||
v 0.000000 0.000000 3.305217
|
||||
v 0.000000 0.000000 4.957826
|
||||
v 1.652609 0.000000 0.000000
|
||||
v 3.305217 0.000000 0.000000
|
||||
v 4.957826 0.000000 0.000000
|
||||
v 0.000000 0.000000 -1.652609
|
||||
v 0.000000 0.000000 -3.305217
|
||||
v 0.000000 0.000000 -4.957826
|
||||
v -1.652609 0.000000 0.000000
|
||||
v -3.305217 0.000000 0.000000
|
||||
v -4.957826 0.000000 0.000000
|
||||
v -1.624598 0.000000 1.624598
|
||||
v -1.554573 0.000000 3.249197
|
||||
v -1.456536 0.000000 4.873795
|
||||
v -3.249197 0.000000 1.554573
|
||||
v -3.102143 0.000000 3.102143
|
||||
v -2.885062 0.000000 4.635707
|
||||
v -4.873795 0.000000 1.456536
|
||||
v -4.635707 0.000000 2.885062
|
||||
v -4.257568 0.000000 4.257568
|
||||
v 1.624598 0.000000 1.624598
|
||||
v 3.249197 0.000000 1.554573
|
||||
v 4.873795 0.000000 1.456536
|
||||
v 1.554573 0.000000 3.249197
|
||||
v 3.102143 0.000000 3.102143
|
||||
v 4.635707 0.000000 2.885062
|
||||
v 1.456536 0.000000 4.873795
|
||||
v 2.885062 0.000000 4.635707
|
||||
v 4.257568 0.000000 4.257568
|
||||
v 1.624598 0.000000 -1.624598
|
||||
v 1.554573 0.000000 -3.249197
|
||||
v 1.456536 0.000000 -4.873795
|
||||
v 3.249197 0.000000 -1.554573
|
||||
v 3.102143 0.000000 -3.102143
|
||||
v 2.885062 0.000000 -4.635707
|
||||
v 4.873795 0.000000 -1.456536
|
||||
v 4.635707 0.000000 -2.885062
|
||||
v 4.257568 0.000000 -4.257568
|
||||
v -1.624598 0.000000 -1.624598
|
||||
v -3.249197 0.000000 -1.554573
|
||||
v -4.873795 0.000000 -1.456536
|
||||
v -1.554573 0.000000 -3.249197
|
||||
v -3.102143 0.000000 -3.102143
|
||||
v -4.635707 0.000000 -2.885062
|
||||
v -1.456536 0.000000 -4.873795
|
||||
v -2.885062 0.000000 -4.635707
|
||||
v -4.257568 0.000000 -4.257568
|
||||
v -5.602063 0.000000 -3.809403
|
||||
v -6.162270 0.000000 -2.632970
|
||||
v -6.498394 0.000000 -1.344495
|
||||
v -6.610435 0.000000 0.000000
|
||||
v -6.498394 0.000000 1.344495
|
||||
v -6.162270 0.000000 2.632970
|
||||
v -5.602063 0.000000 3.809403
|
||||
v -3.809403 0.000000 5.602063
|
||||
v -2.632970 0.000000 6.162270
|
||||
v -1.344495 0.000000 6.498394
|
||||
v 0.000000 0.000000 6.610435
|
||||
v 1.344495 0.000000 6.498394
|
||||
v 2.632970 0.000000 6.162270
|
||||
v 3.809403 0.000000 5.602063
|
||||
v 5.602063 0.000000 3.809403
|
||||
v 6.162270 0.000000 2.632970
|
||||
v 6.498394 0.000000 1.344495
|
||||
v 6.610435 0.000000 0.000000
|
||||
v 6.498394 0.000000 -1.344495
|
||||
v 6.162270 0.000000 -2.632970
|
||||
v 5.602063 0.000000 -3.809403
|
||||
v 3.809403 0.000000 -5.602063
|
||||
v 2.632970 0.000000 -6.162270
|
||||
v 1.344495 0.000000 -6.498394
|
||||
v 0.000000 0.000000 -6.610435
|
||||
v -1.344495 0.000000 -6.498394
|
||||
v -2.632970 0.000000 -6.162270
|
||||
v -3.809403 0.000000 -5.602063
|
||||
v -4.817774 0.000000 4.817774
|
||||
v 4.817774 0.000000 4.817774
|
||||
v -4.817774 0.000000 -4.817774
|
||||
v 4.817774 0.000000 -4.817774
|
||||
vt 0.5000 0.5000
|
||||
vt 0.3757 0.5000
|
||||
vt 0.3778 0.3778
|
||||
vt 0.5000 0.3757
|
||||
vt 0.3831 0.2556
|
||||
vt 0.5000 0.2514
|
||||
vt 0.3904 0.1334
|
||||
vt 0.5000 0.1270
|
||||
vt 0.3989 0.0111
|
||||
vt 0.5000 0.0027
|
||||
vt 0.2514 0.5000
|
||||
vt 0.2556 0.3831
|
||||
vt 0.2666 0.2666
|
||||
vt 0.2830 0.1513
|
||||
vt 0.3019 0.0364
|
||||
vt 0.1270 0.5000
|
||||
vt 0.1334 0.3904
|
||||
vt 0.1513 0.2830
|
||||
vt 0.1797 0.1797
|
||||
vt 0.2134 0.0786
|
||||
vt 0.0027 0.5000
|
||||
vt 0.0111 0.3989
|
||||
vt 0.0364 0.3019
|
||||
vt 0.0786 0.2134
|
||||
vt 0.1376 0.1376
|
||||
vt 0.6222 0.3778
|
||||
vt 0.6243 0.5000
|
||||
vt 0.7444 0.3831
|
||||
vt 0.7486 0.5000
|
||||
vt 0.8666 0.3904
|
||||
vt 0.8730 0.5000
|
||||
vt 0.9889 0.3989
|
||||
vt 0.9973 0.5000
|
||||
vt 0.6169 0.2556
|
||||
vt 0.7334 0.2666
|
||||
vt 0.8487 0.2830
|
||||
vt 0.9636 0.3019
|
||||
vt 0.6096 0.1334
|
||||
vt 0.7170 0.1513
|
||||
vt 0.8203 0.1797
|
||||
vt 0.9214 0.2134
|
||||
vt 0.6011 0.0111
|
||||
vt 0.6981 0.0364
|
||||
vt 0.7866 0.0786
|
||||
vt 0.8624 0.1376
|
||||
vt 0.6222 0.6222
|
||||
vt 0.5000 0.6243
|
||||
vt 0.6169 0.7444
|
||||
vt 0.5000 0.7486
|
||||
vt 0.6096 0.8666
|
||||
vt 0.5000 0.8730
|
||||
vt 0.6011 0.9889
|
||||
vt 0.5000 0.9973
|
||||
vt 0.7444 0.6169
|
||||
vt 0.7334 0.7334
|
||||
vt 0.7170 0.8487
|
||||
vt 0.6981 0.9636
|
||||
vt 0.8666 0.6096
|
||||
vt 0.8487 0.7170
|
||||
vt 0.8203 0.8203
|
||||
vt 0.7866 0.9214
|
||||
vt 0.9889 0.6011
|
||||
vt 0.9636 0.6981
|
||||
vt 0.9214 0.7866
|
||||
vt 0.8624 0.8624
|
||||
vt 0.3778 0.6222
|
||||
vt 0.2556 0.6169
|
||||
vt 0.1334 0.6096
|
||||
vt 0.0111 0.6011
|
||||
vt 0.3831 0.7444
|
||||
vt 0.2666 0.7334
|
||||
vt 0.1513 0.7170
|
||||
vt 0.0364 0.6981
|
||||
vt 0.3904 0.8666
|
||||
vt 0.2830 0.8487
|
||||
vt 0.1797 0.8203
|
||||
vt 0.0786 0.7866
|
||||
vt 0.3989 0.9889
|
||||
vt 0.3019 0.9636
|
||||
vt 0.2134 0.9214
|
||||
vt 0.1376 0.8624
|
||||
vn 0.0000 1.0000 0.0000
|
||||
usemtl None
|
||||
s 1
|
||||
f 1/1/1 11/2/1 14/3/1 2/4/1
|
||||
f 2/4/1 14/3/1 15/5/1 3/6/1
|
||||
f 3/6/1 15/5/1 16/7/1 4/8/1
|
||||
f 4/8/1 16/7/1 59/9/1 60/10/1
|
||||
f 11/2/1 12/11/1 17/12/1 14/3/1
|
||||
f 14/3/1 17/12/1 18/13/1 15/5/1
|
||||
f 15/5/1 18/13/1 19/14/1 16/7/1
|
||||
f 16/7/1 19/14/1 58/15/1 59/9/1
|
||||
f 12/11/1 13/16/1 20/17/1 17/12/1
|
||||
f 17/12/1 20/17/1 21/18/1 18/13/1
|
||||
f 18/13/1 21/18/1 22/19/1 19/14/1
|
||||
f 19/14/1 22/19/1 57/20/1 58/15/1
|
||||
f 13/16/1 53/21/1 54/22/1 20/17/1
|
||||
f 20/17/1 54/22/1 55/23/1 21/18/1
|
||||
f 21/18/1 55/23/1 56/24/1 22/19/1
|
||||
f 22/19/1 56/24/1 78/25/1 57/20/1
|
||||
f 1/1/1 2/4/1 23/26/1 5/27/1
|
||||
f 5/27/1 23/26/1 24/28/1 6/29/1
|
||||
f 6/29/1 24/28/1 25/30/1 7/31/1
|
||||
f 7/31/1 25/30/1 66/32/1 67/33/1
|
||||
f 2/4/1 3/6/1 26/34/1 23/26/1
|
||||
f 23/26/1 26/34/1 27/35/1 24/28/1
|
||||
f 24/28/1 27/35/1 28/36/1 25/30/1
|
||||
f 25/30/1 28/36/1 65/37/1 66/32/1
|
||||
f 3/6/1 4/8/1 29/38/1 26/34/1
|
||||
f 26/34/1 29/38/1 30/39/1 27/35/1
|
||||
f 27/35/1 30/39/1 31/40/1 28/36/1
|
||||
f 28/36/1 31/40/1 64/41/1 65/37/1
|
||||
f 4/8/1 60/10/1 61/42/1 29/38/1
|
||||
f 29/38/1 61/42/1 62/43/1 30/39/1
|
||||
f 30/39/1 62/43/1 63/44/1 31/40/1
|
||||
f 31/40/1 63/44/1 79/45/1 64/41/1
|
||||
f 1/1/1 5/27/1 32/46/1 8/47/1
|
||||
f 8/47/1 32/46/1 33/48/1 9/49/1
|
||||
f 9/49/1 33/48/1 34/50/1 10/51/1
|
||||
f 10/51/1 34/50/1 73/52/1 74/53/1
|
||||
f 5/27/1 6/29/1 35/54/1 32/46/1
|
||||
f 32/46/1 35/54/1 36/55/1 33/48/1
|
||||
f 33/48/1 36/55/1 37/56/1 34/50/1
|
||||
f 34/50/1 37/56/1 72/57/1 73/52/1
|
||||
f 6/29/1 7/31/1 38/58/1 35/54/1
|
||||
f 35/54/1 38/58/1 39/59/1 36/55/1
|
||||
f 36/55/1 39/59/1 40/60/1 37/56/1
|
||||
f 37/56/1 40/60/1 71/61/1 72/57/1
|
||||
f 7/31/1 67/33/1 68/62/1 38/58/1
|
||||
f 38/58/1 68/62/1 69/63/1 39/59/1
|
||||
f 39/59/1 69/63/1 70/64/1 40/60/1
|
||||
f 40/60/1 70/64/1 81/65/1 71/61/1
|
||||
f 1/1/1 8/47/1 41/66/1 11/2/1
|
||||
f 11/2/1 41/66/1 42/67/1 12/11/1
|
||||
f 12/11/1 42/67/1 43/68/1 13/16/1
|
||||
f 13/16/1 43/68/1 52/69/1 53/21/1
|
||||
f 8/47/1 9/49/1 44/70/1 41/66/1
|
||||
f 41/66/1 44/70/1 45/71/1 42/67/1
|
||||
f 42/67/1 45/71/1 46/72/1 43/68/1
|
||||
f 43/68/1 46/72/1 51/73/1 52/69/1
|
||||
f 9/49/1 10/51/1 47/74/1 44/70/1
|
||||
f 44/70/1 47/74/1 48/75/1 45/71/1
|
||||
f 45/71/1 48/75/1 49/76/1 46/72/1
|
||||
f 46/72/1 49/76/1 50/77/1 51/73/1
|
||||
f 10/51/1 74/53/1 75/78/1 47/74/1
|
||||
f 47/74/1 75/78/1 76/79/1 48/75/1
|
||||
f 48/75/1 76/79/1 77/80/1 49/76/1
|
||||
f 49/76/1 77/80/1 80/81/1 50/77/1
|
BIN
models/torret.blend
Normal file
792
models/torret1.obj
Normal file
@ -0,0 +1,792 @@
|
||||
# Blender v2.79 (sub 0) OBJ File: 'torret2.blend'
|
||||
# www.blender.org
|
||||
mtllib torret1.mtl
|
||||
o Cube.003_Cube.006
|
||||
v 0.189895 0.163143 -0.372653
|
||||
v 0.189895 0.201097 -0.378580
|
||||
v 0.080336 0.159674 -0.394870
|
||||
v 0.080336 0.197628 -0.400796
|
||||
v 0.242297 0.123751 -0.624923
|
||||
v 0.242297 0.161705 -0.630850
|
||||
v 0.132738 0.120282 -0.647140
|
||||
v 0.132738 0.158236 -0.653066
|
||||
v -0.132041 0.120282 -0.647140
|
||||
v -0.241600 0.161705 -0.630850
|
||||
v -0.241600 0.123751 -0.624923
|
||||
v -0.079638 0.197628 -0.400796
|
||||
v -0.079638 0.159674 -0.394870
|
||||
v -0.189198 0.201097 -0.378580
|
||||
v -0.189198 0.163143 -0.372653
|
||||
v -0.132041 0.158236 -0.653066
|
||||
v 0.063142 0.001380 0.512074
|
||||
v 0.063142 0.035815 0.538953
|
||||
v -0.064046 0.001380 0.512074
|
||||
v -0.064046 0.035815 0.538953
|
||||
v 0.063142 0.183763 0.278415
|
||||
v 0.063142 0.218199 0.305294
|
||||
v -0.064046 0.183763 0.278415
|
||||
v -0.064046 0.218199 0.305294
|
||||
v -0.132739 0.274292 0.122505
|
||||
v -0.132738 0.815413 0.122505
|
||||
v -0.194069 0.274292 0.122505
|
||||
v -0.194069 0.815413 0.122505
|
||||
v -0.132739 0.274292 -0.191426
|
||||
v -0.132739 0.815413 -0.191426
|
||||
v -0.194069 0.274292 -0.191426
|
||||
v -0.194069 0.815413 -0.191426
|
||||
v 0.128914 0.144853 0.197599
|
||||
v 0.128914 0.944853 0.197599
|
||||
v -0.133743 0.144853 0.197599
|
||||
v -0.133743 0.944853 0.197599
|
||||
v 0.128913 0.144853 -0.266520
|
||||
v 0.128914 0.944853 -0.266520
|
||||
v -0.133743 0.144853 -0.266520
|
||||
v -0.133743 0.944853 -0.266520
|
||||
v 0.189656 0.274292 0.122505
|
||||
v 0.189656 0.815413 0.122505
|
||||
v 0.128325 0.274292 0.122505
|
||||
v 0.128325 0.815413 0.122505
|
||||
v 0.189656 0.274292 -0.191426
|
||||
v 0.189656 0.815413 -0.191426
|
||||
v 0.128325 0.274292 -0.191426
|
||||
v 0.128325 0.815413 -0.191426
|
||||
v -0.058777 0.548149 -0.265845
|
||||
v -0.058777 0.548149 -0.273879
|
||||
v -0.043146 0.510413 -0.265845
|
||||
v -0.043146 0.510413 -0.273879
|
||||
v -0.005410 0.494783 -0.265845
|
||||
v -0.005410 0.494783 -0.273879
|
||||
v 0.032325 0.510413 -0.265845
|
||||
v 0.032325 0.510413 -0.273879
|
||||
v 0.047956 0.548149 -0.265845
|
||||
v 0.047956 0.548149 -0.273879
|
||||
v 0.032325 0.585884 -0.265845
|
||||
v 0.032325 0.585884 -0.273879
|
||||
v -0.005410 0.601515 -0.265845
|
||||
v -0.005410 0.601515 -0.273879
|
||||
v -0.043146 0.585884 -0.265845
|
||||
v -0.043146 0.585884 -0.273879
|
||||
v -0.000109 0.149264 -0.268848
|
||||
v -0.000109 0.940441 -0.268848
|
||||
v -0.004799 0.149264 -0.268848
|
||||
v -0.004799 0.940441 -0.268848
|
||||
v -0.000109 0.149264 -0.260088
|
||||
v -0.000109 0.940441 -0.260088
|
||||
v -0.004799 0.149264 -0.260088
|
||||
v -0.004799 0.940441 -0.260088
|
||||
v 0.119911 0.086846 -0.114011
|
||||
v 0.111512 0.130445 -0.112341
|
||||
v 0.038877 0.064643 -0.136101
|
||||
v 0.030478 0.108242 -0.134431
|
||||
v 0.209056 0.123944 -0.552177
|
||||
v 0.200657 0.167543 -0.550507
|
||||
v 0.128022 0.101741 -0.574268
|
||||
v 0.138016 0.145340 -0.572597
|
||||
v 0.048662 0.033870 0.495340
|
||||
v 0.048662 0.022144 0.452483
|
||||
v -0.053491 0.033870 0.495340
|
||||
v -0.053491 0.022144 0.452483
|
||||
v 0.048662 -0.476361 0.634943
|
||||
v 0.048662 -0.488087 0.592086
|
||||
v -0.053491 -0.476361 0.634943
|
||||
v -0.053491 -0.488087 0.592086
|
||||
v 0.209056 0.123944 -0.552177
|
||||
v 0.128022 0.101741 -0.574268
|
||||
v 0.219790 0.123944 -0.595985
|
||||
v 0.211391 0.167543 -0.594315
|
||||
v 0.157149 0.101741 -0.618075
|
||||
v 0.148750 0.145340 -0.616405
|
||||
v 0.312716 -0.500601 -0.680111
|
||||
v 0.231681 -0.496988 -0.702201
|
||||
v 0.323449 -0.500601 -0.723919
|
||||
v 0.242415 -0.496988 -0.746009
|
||||
v 0.080352 0.075744 -0.125056
|
||||
v 0.094276 0.014385 -0.314219
|
||||
v 0.169496 0.112843 -0.563222
|
||||
v 0.175310 0.036588 -0.292129
|
||||
v 0.135751 0.025487 -0.303174
|
||||
v 0.071953 0.119343 -0.123386
|
||||
v 0.085877 0.057984 -0.312549
|
||||
v 0.161097 0.156442 -0.561552
|
||||
v 0.166911 0.080187 -0.290458
|
||||
v 0.127351 0.069086 -0.301503
|
||||
v -0.124589 0.086846 -0.114011
|
||||
v -0.116189 0.130445 -0.112341
|
||||
v -0.043554 0.064643 -0.136101
|
||||
v -0.035155 0.108242 -0.134431
|
||||
v -0.213733 0.123944 -0.552177
|
||||
v -0.205334 0.167543 -0.550507
|
||||
v -0.132699 0.101741 -0.574268
|
||||
v -0.124300 0.145340 -0.572597
|
||||
v -0.213733 0.123944 -0.552177
|
||||
v -0.132699 0.101741 -0.574268
|
||||
v -0.224467 0.123944 -0.595985
|
||||
v -0.216068 0.167543 -0.594315
|
||||
v -0.143433 0.101741 -0.618075
|
||||
v -0.135034 0.145340 -0.616405
|
||||
v -0.317393 -0.500601 -0.680111
|
||||
v -0.236359 -0.496988 -0.702201
|
||||
v -0.328127 -0.500601 -0.723919
|
||||
v -0.247093 -0.496988 -0.746009
|
||||
v -0.085029 0.075744 -0.125056
|
||||
v -0.098953 0.014385 -0.314219
|
||||
v -0.174174 0.112843 -0.563222
|
||||
v -0.179988 0.036588 -0.292129
|
||||
v -0.140428 0.025487 -0.303174
|
||||
v -0.076630 0.119343 -0.123386
|
||||
v -0.090554 0.057984 -0.312549
|
||||
v -0.165774 0.156442 -0.561552
|
||||
v -0.171588 0.080187 -0.290458
|
||||
v -0.132029 0.069086 -0.301504
|
||||
v 0.048662 0.269229 0.190763
|
||||
v 0.048662 0.257503 0.147906
|
||||
v -0.053491 0.269229 0.190763
|
||||
v -0.053491 0.257503 0.147906
|
||||
v 0.119911 0.086846 -0.114011
|
||||
v 0.111512 0.130445 -0.112341
|
||||
v 0.038877 0.064643 -0.136101
|
||||
v 0.030478 0.108242 -0.134431
|
||||
v -0.124589 0.086846 -0.114011
|
||||
v -0.116189 0.130445 -0.112341
|
||||
v -0.043554 0.064643 -0.136101
|
||||
v -0.035155 0.108242 -0.134431
|
||||
v 0.080352 0.075744 -0.125056
|
||||
v 0.071953 0.119343 -0.123386
|
||||
v -0.085029 0.075744 -0.125056
|
||||
v -0.076630 0.119343 -0.123386
|
||||
v 0.119911 0.086846 -0.114011
|
||||
v 0.111512 0.130445 -0.112341
|
||||
v 0.038877 0.064643 -0.136101
|
||||
v 0.030478 0.108242 -0.134431
|
||||
v -0.124589 0.086846 -0.114011
|
||||
v -0.116189 0.130445 -0.112341
|
||||
v -0.043554 0.064643 -0.136101
|
||||
v -0.035155 0.108242 -0.134431
|
||||
v -0.124589 0.171454 -0.009180
|
||||
v -0.116189 0.215053 -0.007510
|
||||
v -0.043554 0.149251 -0.031270
|
||||
v -0.035155 0.192850 -0.029600
|
||||
v -0.085029 0.160352 -0.020225
|
||||
v -0.076630 0.203951 -0.018555
|
||||
v 0.119911 0.157397 -0.053308
|
||||
v 0.111512 0.200996 -0.051637
|
||||
v 0.038877 0.135194 -0.075398
|
||||
v 0.030478 0.178793 -0.073728
|
||||
v 0.080352 0.146295 -0.064353
|
||||
v 0.071953 0.189894 -0.062682
|
||||
vt 0.489132 0.748949
|
||||
vt 0.489132 0.718137
|
||||
vt 0.519717 0.718145
|
||||
vt 0.519717 0.748957
|
||||
vt 0.090171 0.693043
|
||||
vt 0.090171 0.723854
|
||||
vt 0.061402 0.723899
|
||||
vt 0.061402 0.693087
|
||||
vt 0.210985 0.718395
|
||||
vt 0.210985 0.749207
|
||||
vt 0.180404 0.749215
|
||||
vt 0.180404 0.718403
|
||||
vt 0.246514 0.722337
|
||||
vt 0.246514 0.753149
|
||||
vt 0.217065 0.753184
|
||||
vt 0.217065 0.722372
|
||||
vt 0.000000 0.693043
|
||||
vt 0.030701 0.693043
|
||||
vt 0.030701 0.723855
|
||||
vt 0.000000 0.723855
|
||||
vt 0.030701 0.693043
|
||||
vt 0.061402 0.693043
|
||||
vt 0.061402 0.723855
|
||||
vt 0.030701 0.723855
|
||||
vt 0.113868 0.693092
|
||||
vt 0.144569 0.693034
|
||||
vt 0.144569 0.729449
|
||||
vt 0.113868 0.729507
|
||||
vt 0.028567 0.723863
|
||||
vt 0.028567 0.754674
|
||||
vt 0.000000 0.754666
|
||||
vt 0.000000 0.723855
|
||||
vt 0.057131 0.723855
|
||||
vt 0.057131 0.754666
|
||||
vt 0.028567 0.754674
|
||||
vt 0.028567 0.723863
|
||||
vt 0.144569 0.693102
|
||||
vt 0.175270 0.693034
|
||||
vt 0.175270 0.728196
|
||||
vt 0.144569 0.728264
|
||||
vt 0.113868 0.693034
|
||||
vt 0.113868 0.733059
|
||||
vt 0.090234 0.749387
|
||||
vt 0.090234 0.709362
|
||||
vt 0.453595 0.706535
|
||||
vt 0.429961 0.690207
|
||||
vt 0.429961 0.730233
|
||||
vt 0.453595 0.746561
|
||||
vt 0.491495 0.718137
|
||||
vt 0.489132 0.694236
|
||||
vt 0.523439 0.692892
|
||||
vt 0.525802 0.716793
|
||||
vt 0.690895 0.620228
|
||||
vt 0.683350 0.597128
|
||||
vt 0.683350 0.421757
|
||||
vt 0.690895 0.444858
|
||||
vt 0.180404 0.543450
|
||||
vt 0.182758 0.519548
|
||||
vt 0.217065 0.520887
|
||||
vt 0.214711 0.544789
|
||||
vt 0.797976 0.023111
|
||||
vt 0.805454 0.000000
|
||||
vt 0.805454 0.175364
|
||||
vt 0.797976 0.198475
|
||||
vt 0.182758 0.717056
|
||||
vt 0.217065 0.718395
|
||||
vt 0.525802 0.519284
|
||||
vt 0.491495 0.520628
|
||||
vt 0.666799 0.889843
|
||||
vt 0.653710 0.461156
|
||||
vt 0.670262 0.460793
|
||||
vt 0.683350 0.889480
|
||||
vt 0.573487 0.421757
|
||||
vt 0.573487 0.850735
|
||||
vt 0.533024 0.888570
|
||||
vt 0.533024 0.459592
|
||||
vt 0.292521 0.928144
|
||||
vt 0.305565 0.499455
|
||||
vt 0.322117 0.499817
|
||||
vt 0.309072 0.928506
|
||||
vt 0.613599 0.850721
|
||||
vt 0.613599 0.421757
|
||||
vt 0.653710 0.459650
|
||||
vt 0.653710 0.888614
|
||||
vt 0.305565 0.967176
|
||||
vt 0.322117 0.967538
|
||||
vt 0.683350 0.421757
|
||||
vt 0.666799 0.422120
|
||||
vt 0.019350 0.693043
|
||||
vt 0.000000 0.059266
|
||||
vt 0.070884 0.057711
|
||||
vt 0.090234 0.691487
|
||||
vt 0.348156 0.690141
|
||||
vt 0.348156 0.055936
|
||||
vt 0.407978 0.000000
|
||||
vt 0.407978 0.634205
|
||||
vt 0.090234 0.633779
|
||||
vt 0.109519 0.000000
|
||||
vt 0.180404 0.001550
|
||||
vt 0.161119 0.635328
|
||||
vt 0.407978 0.634186
|
||||
vt 0.407978 0.000000
|
||||
vt 0.467279 0.056021
|
||||
vt 0.467279 0.690207
|
||||
vt 0.109519 0.691484
|
||||
vt 0.180404 0.693034
|
||||
vt 0.090234 0.000000
|
||||
vt 0.019350 0.001555
|
||||
vt 0.927182 0.678965
|
||||
vt 0.914094 0.250278
|
||||
vt 0.930645 0.249915
|
||||
vt 0.943734 0.678602
|
||||
vt 0.863881 0.210879
|
||||
vt 0.863881 0.639856
|
||||
vt 0.823417 0.677691
|
||||
vt 0.823417 0.248714
|
||||
vt 0.262925 0.928144
|
||||
vt 0.275969 0.499455
|
||||
vt 0.292521 0.499817
|
||||
vt 0.279476 0.928506
|
||||
vt 0.573487 0.850721
|
||||
vt 0.573487 0.421757
|
||||
vt 0.613599 0.459650
|
||||
vt 0.613599 0.888614
|
||||
vt 0.275969 0.967176
|
||||
vt 0.292521 0.967538
|
||||
vt 0.943734 0.210879
|
||||
vt 0.927182 0.211242
|
||||
vt 0.526837 0.561436
|
||||
vt 0.525802 0.562405
|
||||
vt 0.526922 0.532534
|
||||
vt 0.527957 0.531566
|
||||
vt 0.529626 0.520252
|
||||
vt 0.530662 0.519284
|
||||
vt 0.261228 0.519548
|
||||
vt 0.262254 0.520518
|
||||
vt 0.260242 0.532918
|
||||
vt 0.259216 0.531948
|
||||
vt 0.259409 0.562836
|
||||
vt 0.258382 0.561866
|
||||
vt 0.260242 0.592746
|
||||
vt 0.259216 0.591777
|
||||
vt 0.262254 0.605128
|
||||
vt 0.261228 0.604158
|
||||
vt 0.737396 0.137634
|
||||
vt 0.745741 0.166619
|
||||
vt 0.745741 0.196863
|
||||
vt 0.737396 0.210649
|
||||
vt 0.725595 0.199902
|
||||
vt 0.717250 0.170917
|
||||
vt 0.717250 0.140673
|
||||
vt 0.725595 0.126887
|
||||
vt 0.530662 0.603896
|
||||
vt 0.529626 0.604865
|
||||
vt 0.526922 0.592365
|
||||
vt 0.527957 0.591397
|
||||
vt 0.401848 0.734172
|
||||
vt 0.393503 0.763157
|
||||
vt 0.381702 0.773903
|
||||
vt 0.373357 0.760116
|
||||
vt 0.373357 0.729872
|
||||
vt 0.381702 0.700888
|
||||
vt 0.393503 0.690141
|
||||
vt 0.401848 0.703928
|
||||
vt 0.994427 0.211965
|
||||
vt 0.996089 0.839044
|
||||
vt 0.994823 0.839036
|
||||
vt 0.993161 0.211957
|
||||
vt 0.998881 0.838070
|
||||
vt 0.998881 0.210879
|
||||
vt 1.000000 0.211936
|
||||
vt 1.000000 0.839128
|
||||
vt 0.997751 0.210879
|
||||
vt 0.997355 0.837960
|
||||
vt 0.996089 0.837970
|
||||
vt 0.996485 0.210889
|
||||
vt 0.998881 0.210879
|
||||
vt 0.998881 0.838089
|
||||
vt 0.997751 0.839145
|
||||
vt 0.997751 0.211935
|
||||
vt 0.993557 0.210879
|
||||
vt 0.994823 0.210887
|
||||
vt 0.997751 0.839037
|
||||
vt 0.996485 0.839048
|
||||
vt 0.419228 0.746897
|
||||
vt 0.407978 0.755091
|
||||
vt 0.407978 0.706561
|
||||
vt 0.419228 0.698367
|
||||
vt 0.698133 0.347193
|
||||
vt 0.699215 0.312870
|
||||
vt 0.717830 0.331470
|
||||
vt 0.749646 0.231355
|
||||
vt 0.749881 0.265758
|
||||
vt 0.716748 0.365793
|
||||
vt 0.527891 0.514099
|
||||
vt 0.526949 0.479752
|
||||
vt 0.532082 0.484937
|
||||
vt 0.533024 0.519284
|
||||
vt 0.494398 0.414124
|
||||
vt 0.474975 0.432859
|
||||
vt 0.474033 0.398513
|
||||
vt 0.493456 0.379778
|
||||
vt 0.729140 0.108574
|
||||
vt 0.729140 0.007234
|
||||
vt 0.740514 0.000000
|
||||
vt 0.740514 0.101340
|
||||
vt 0.714070 0.736164
|
||||
vt 0.691363 0.739897
|
||||
vt 0.691363 0.728510
|
||||
vt 0.714070 0.724777
|
||||
vt 0.889098 0.635769
|
||||
vt 0.894914 0.632147
|
||||
vt 0.914094 0.858058
|
||||
vt 0.908277 0.861681
|
||||
vt 0.863881 0.436785
|
||||
vt 0.869749 0.440407
|
||||
vt 0.889098 0.861661
|
||||
vt 0.883230 0.858039
|
||||
vt 0.531090 0.632539
|
||||
vt 0.525802 0.634527
|
||||
vt 0.525802 0.606852
|
||||
vt 0.531090 0.604865
|
||||
vt 0.908277 0.214502
|
||||
vt 0.914094 0.210879
|
||||
vt 0.782198 0.435213
|
||||
vt 0.789035 0.856782
|
||||
vt 0.761467 0.857408
|
||||
vt 0.754630 0.435839
|
||||
vt 0.823417 0.211502
|
||||
vt 0.816603 0.633071
|
||||
vt 0.789035 0.632448
|
||||
vt 0.795849 0.210879
|
||||
vt 0.717250 0.014459
|
||||
vt 0.717250 0.014459
|
||||
vt 0.740514 0.000000
|
||||
vt 0.974576 0.259453
|
||||
vt 0.973975 0.225057
|
||||
vt 0.992560 0.210879
|
||||
vt 0.993161 0.245275
|
||||
vt 0.753548 0.260468
|
||||
vt 0.754630 0.719567
|
||||
vt 0.749646 0.724777
|
||||
vt 0.746721 0.223758
|
||||
vt 0.742617 0.216089
|
||||
vt 0.747601 0.210879
|
||||
vt 0.754630 0.226145
|
||||
vt 0.992000 0.730186
|
||||
vt 0.969399 0.723737
|
||||
vt 0.970561 0.718371
|
||||
vt 0.993161 0.724820
|
||||
vt 0.527891 0.000000
|
||||
vt 0.533024 0.005185
|
||||
vt 0.345667 0.978998
|
||||
vt 0.334150 0.971992
|
||||
vt 0.322117 0.965006
|
||||
vt 0.323063 0.505903
|
||||
vt 0.345667 0.499455
|
||||
vt 0.061471 0.735801
|
||||
vt 0.084178 0.739534
|
||||
vt 0.084178 0.750921
|
||||
vt 0.061471 0.747188
|
||||
vt 0.061402 0.723899
|
||||
vt 0.084109 0.727632
|
||||
vt 0.717250 0.115799
|
||||
vt 0.756487 0.007782
|
||||
vt 0.751525 0.109002
|
||||
vt 0.740514 0.101220
|
||||
vt 0.745477 0.000000
|
||||
vt 0.763052 0.015426
|
||||
vt 0.763052 0.116800
|
||||
vt 0.714001 0.748065
|
||||
vt 0.691294 0.751799
|
||||
vt 0.217065 0.543224
|
||||
vt 0.229350 0.547359
|
||||
vt 0.239504 0.600770
|
||||
vt 0.227219 0.596635
|
||||
vt 0.273697 0.117994
|
||||
vt 0.274601 0.083610
|
||||
vt 0.300568 0.103478
|
||||
vt 0.341486 0.004919
|
||||
vt 0.340582 0.039303
|
||||
vt 0.299664 0.137862
|
||||
vt 0.256530 0.514540
|
||||
vt 0.255685 0.480181
|
||||
vt 0.262080 0.485189
|
||||
vt 0.262925 0.519548
|
||||
vt 0.217130 0.415552
|
||||
vt 0.192246 0.435023
|
||||
vt 0.191402 0.400664
|
||||
vt 0.216286 0.381193
|
||||
vt 0.788994 0.009371
|
||||
vt 0.788994 0.112674
|
||||
vt 0.780519 0.121944
|
||||
vt 0.780519 0.018640
|
||||
vt 0.244691 0.719359
|
||||
vt 0.229677 0.694175
|
||||
vt 0.241808 0.691006
|
||||
vt 0.256822 0.716189
|
||||
vt 0.797976 0.103304
|
||||
vt 0.797976 0.103304
|
||||
vt 0.780519 0.121944
|
||||
vt 0.947478 0.258507
|
||||
vt 0.947551 0.224056
|
||||
vt 0.969399 0.210879
|
||||
vt 0.969325 0.245330
|
||||
vt 0.347253 0.034384
|
||||
vt 0.348156 0.494536
|
||||
vt 0.341486 0.499455
|
||||
vt 0.256822 0.663851
|
||||
vt 0.256859 0.653076
|
||||
vt 0.256822 0.642815
|
||||
vt 0.262650 0.638760
|
||||
vt 0.262651 0.659797
|
||||
vt 0.348156 0.000000
|
||||
vt 0.964146 0.731052
|
||||
vt 0.943734 0.723818
|
||||
vt 0.948987 0.718813
|
||||
vt 0.969399 0.726048
|
||||
vt 0.256530 0.000000
|
||||
vt 0.262925 0.005008
|
||||
vt 0.489132 1.000000
|
||||
vt 0.478463 0.993392
|
||||
vt 0.467279 0.986825
|
||||
vt 0.468717 0.526520
|
||||
vt 0.489132 0.519284
|
||||
vt 0.246593 0.523683
|
||||
vt 0.258382 0.527964
|
||||
vt 0.241139 0.551640
|
||||
vt 0.234309 0.519548
|
||||
vt 0.797976 0.000000
|
||||
vt 0.772039 0.112663
|
||||
vt 0.772039 0.009368
|
||||
vt 0.780519 0.018635
|
||||
vt 0.780519 0.121930
|
||||
vt 0.763052 0.103295
|
||||
vt 0.763052 0.000000
|
||||
vt 0.232080 0.722337
|
||||
vt 0.217065 0.697153
|
||||
vt 0.531090 0.664189
|
||||
vt 0.525802 0.662201
|
||||
vt 0.525802 0.634527
|
||||
vt 0.531090 0.636514
|
||||
vt 0.823417 0.857402
|
||||
vt 0.795849 0.856779
|
||||
vt 0.761467 0.211505
|
||||
vt 0.789035 0.210879
|
||||
vt 0.883230 0.210879
|
||||
vt 0.889098 0.214501
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.251293 0.605051
|
||||
vt 0.258382 0.638760
|
||||
vt 0.246593 0.634479
|
||||
vt 0.234309 0.630343
|
||||
vt 0.262925 0.062943
|
||||
vt 0.263829 0.028558
|
||||
vt 0.181248 0.489979
|
||||
vt 0.180404 0.455620
|
||||
vt 0.244691 0.641929
|
||||
vt 0.256822 0.638760
|
||||
vt 0.232080 0.644908
|
||||
vt 0.348156 0.724456
|
||||
vt 0.350583 0.690141
|
||||
vt 0.361712 0.697753
|
||||
vt 0.373357 0.705372
|
||||
vt 0.370930 0.739687
|
||||
vt 0.359285 0.732067
|
||||
vt 0.361712 0.780537
|
||||
vt 0.350583 0.772925
|
||||
vt 0.429961 0.738737
|
||||
vt 0.429961 0.690207
|
||||
vt 0.691294 0.298430
|
||||
vt 0.692376 0.264107
|
||||
vt 0.468221 0.481611
|
||||
vt 0.467279 0.447264
|
||||
vt 0.373357 0.788156
|
||||
vn -0.2010 0.1511 0.9679
|
||||
vn -0.9796 -0.0310 -0.1986
|
||||
vn 0.2010 -0.1511 -0.9679
|
||||
vn 0.9796 0.0310 0.1986
|
||||
vn -0.0000 -0.9880 0.1543
|
||||
vn -0.0000 0.9880 -0.1543
|
||||
vn -0.9796 0.0310 0.1986
|
||||
vn -0.2010 -0.1511 -0.9679
|
||||
vn 0.2010 0.1511 0.9679
|
||||
vn 0.9796 -0.0310 -0.1986
|
||||
vn 0.0000 -0.6153 0.7883
|
||||
vn -1.0000 -0.0000 0.0000
|
||||
vn 0.0000 0.6153 -0.7883
|
||||
vn 1.0000 0.0000 -0.0000
|
||||
vn 0.0000 -0.7883 -0.6153
|
||||
vn 0.0000 0.7883 0.6153
|
||||
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 -0.9239 -0.3827 -0.0000
|
||||
vn -0.3827 -0.9239 0.0000
|
||||
vn 0.3827 -0.9239 -0.0000
|
||||
vn 0.9239 -0.3827 -0.0000
|
||||
vn 0.9239 0.3827 0.0000
|
||||
vn 0.3827 0.9239 0.0000
|
||||
vn -0.3827 0.9239 -0.0000
|
||||
vn -0.9239 0.3827 0.0000
|
||||
vn 0.0273 0.6520 -0.7577
|
||||
vn -0.9793 -0.0575 -0.1940
|
||||
vn 0.9562 0.1752 0.2343
|
||||
vn 0.9614 0.1771 0.2106
|
||||
vn 0.3279 -0.9076 -0.2623
|
||||
vn -0.1732 0.9325 -0.3170
|
||||
vn 0.0000 -0.9645 0.2639
|
||||
vn -0.0000 0.2639 0.9645
|
||||
vn 0.0000 -0.2639 -0.9645
|
||||
vn 0.0000 0.7053 -0.7089
|
||||
vn 0.3012 0.0944 -0.9489
|
||||
vn -0.9088 -0.0550 -0.4135
|
||||
vn -0.3003 0.9484 -0.1018
|
||||
vn -0.9097 0.0325 -0.4139
|
||||
vn -0.0418 -0.9991 -0.0102
|
||||
vn 0.9652 0.1118 0.2365
|
||||
vn -0.2303 -0.2363 0.9440
|
||||
vn 0.2576 0.2358 -0.9370
|
||||
vn 0.1732 -0.9325 0.3170
|
||||
vn 0.1661 -0.9343 0.3153
|
||||
vn 0.3146 -0.9114 -0.2653
|
||||
vn -0.3279 0.9076 0.2623
|
||||
vn -0.3872 0.8914 0.2355
|
||||
vn -0.1661 0.9343 -0.3153
|
||||
vn 0.0410 0.7775 -0.6275
|
||||
vn -0.9614 0.1771 0.2106
|
||||
vn 0.9562 -0.1752 -0.2343
|
||||
vn 0.9614 -0.1771 -0.2106
|
||||
vn 0.3279 0.9076 0.2623
|
||||
vn -0.1732 -0.9325 0.3170
|
||||
vn -0.0001 -0.7054 0.7089
|
||||
vn 0.2407 -0.0834 0.9670
|
||||
vn -0.9647 0.1165 0.2364
|
||||
vn -0.2490 -0.9668 0.0583
|
||||
vn -0.9562 0.1752 0.2343
|
||||
vn -0.0418 0.9991 0.0102
|
||||
vn 0.9652 -0.1118 -0.2365
|
||||
vn -0.2303 0.2363 -0.9440
|
||||
vn 0.2302 -0.2365 0.9440
|
||||
vn 0.1732 0.9325 -0.3170
|
||||
vn 0.1661 0.9343 -0.3153
|
||||
vn 0.3146 0.9114 0.2653
|
||||
vn -0.3279 -0.9076 -0.2623
|
||||
vn -0.3146 -0.9114 -0.2653
|
||||
vn -0.1661 -0.9343 0.3153
|
||||
vn 0.0000 0.9645 -0.2639
|
||||
vn 0.0000 -0.7913 -0.6115
|
||||
vn -0.0000 0.7913 0.6115
|
||||
vn -0.2407 0.0834 -0.9670
|
||||
vn -0.9689 0.1926 -0.1555
|
||||
vn 0.9689 -0.1926 0.1555
|
||||
vn -0.0430 -0.7775 0.6275
|
||||
vn -0.0410 -0.7775 0.6275
|
||||
vn 0.0430 0.7775 -0.6275
|
||||
vn -0.2407 -0.0834 0.9670
|
||||
vn -0.0286 -0.6520 0.7577
|
||||
vn 0.0286 0.6520 -0.7577
|
||||
vn -0.9554 -0.1926 0.2239
|
||||
vn 0.9554 0.1926 -0.2239
|
||||
vn -0.0273 -0.6520 0.7577
|
||||
usemtl Material.001
|
||||
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/9/3 8/10/3 6/11/3 5/12/3
|
||||
f 5/13/4 6/14/4 2/15/4 1/16/4
|
||||
f 3/17/5 7/18/5 5/19/5 1/20/5
|
||||
f 8/21/6 4/22/6 2/23/6 6/24/6
|
||||
f 13/25/7 12/26/7 16/27/7 9/28/7
|
||||
f 15/29/8 14/30/8 12/31/8 13/32/8
|
||||
f 9/33/9 16/34/9 10/35/9 11/36/9
|
||||
f 11/37/10 10/38/10 14/39/10 15/40/10
|
||||
f 13/41/6 9/42/6 11/43/6 15/44/6
|
||||
f 16/45/6 10/46/6 14/47/6 12/48/6
|
||||
f 17/49/11 18/50/11 20/51/11 19/52/11
|
||||
f 19/53/12 20/54/12 24/55/12 23/56/12
|
||||
f 23/57/13 24/58/13 22/59/13 21/60/13
|
||||
f 21/61/14 22/62/14 18/63/14 17/64/14
|
||||
f 19/65/15 23/57/15 21/60/15 17/66/15
|
||||
f 24/67/16 20/51/16 18/50/16 22/68/16
|
||||
f 25/69/17 26/70/17 28/71/17 27/72/17
|
||||
f 27/73/12 28/74/12 32/75/12 31/76/12
|
||||
f 31/77/18 32/78/18 30/79/18 29/80/18
|
||||
f 29/81/14 30/82/14 26/83/14 25/84/14
|
||||
f 27/85/19 31/77/19 29/80/19 25/86/19
|
||||
f 32/87/20 28/71/20 26/70/20 30/88/20
|
||||
f 33/89/17 34/90/17 36/91/17 35/92/17
|
||||
f 35/93/12 36/94/12 40/95/12 39/96/12
|
||||
f 39/97/18 40/98/18 38/99/18 37/100/18
|
||||
f 37/101/14 38/102/14 34/103/14 33/104/14
|
||||
f 35/105/19 39/97/19 37/100/19 33/106/19
|
||||
f 40/107/20 36/91/20 34/90/20 38/108/20
|
||||
f 41/109/17 42/110/17 44/111/17 43/112/17
|
||||
f 43/113/12 44/114/12 48/115/12 47/116/12
|
||||
f 47/117/18 48/118/18 46/119/18 45/120/18
|
||||
f 45/121/14 46/122/14 42/123/14 41/124/14
|
||||
f 43/125/19 47/117/19 45/120/19 41/126/19
|
||||
f 48/127/20 44/111/20 42/110/20 46/128/20
|
||||
f 49/129/21 50/130/21 52/131/21 51/132/21
|
||||
f 51/132/22 52/131/22 54/133/22 53/134/22
|
||||
f 53/135/23 54/136/23 56/137/23 55/138/23
|
||||
f 55/138/24 56/137/24 58/139/24 57/140/24
|
||||
f 57/140/25 58/139/25 60/141/25 59/142/25
|
||||
f 59/142/26 60/141/26 62/143/26 61/144/26
|
||||
f 52/145/18 50/146/18 64/147/18 62/148/18 60/149/18 58/150/18 56/151/18 54/152/18
|
||||
f 61/153/27 62/154/27 64/155/27 63/156/27
|
||||
f 63/156/28 64/155/28 50/130/28 49/129/28
|
||||
f 49/157/17 51/158/17 53/159/17 55/160/17 57/161/17 59/162/17 61/163/17 63/164/17
|
||||
f 65/165/17 66/166/17 68/167/17 67/168/17
|
||||
f 67/169/14 68/170/14 72/171/14 71/172/14
|
||||
f 71/173/18 72/174/18 70/175/18 69/176/18
|
||||
f 69/177/12 70/178/12 66/179/12 65/180/12
|
||||
f 67/168/20 71/181/20 69/182/20 65/165/20
|
||||
f 72/174/19 68/183/19 66/184/19 70/175/19
|
||||
f 104/185/29 76/186/29 170/187/29 172/188/29
|
||||
f 75/189/30 76/190/30 105/191/30 80/192/30 79/193/30 100/194/30
|
||||
f 78/195/31 77/196/31 91/197/31 92/198/31
|
||||
f 77/196/32 78/195/32 107/199/32 74/200/32 73/201/32 102/202/32
|
||||
f 103/203/33 101/204/33 77/205/33 102/206/33
|
||||
f 108/207/34 104/208/34 74/209/34 107/210/34
|
||||
f 81/211/14 82/212/14 138/213/14 137/214/14
|
||||
f 83/215/12 84/216/12 88/217/12 87/218/12
|
||||
f 87/219/35 88/220/35 86/221/35 85/222/35
|
||||
f 85/223/14 86/224/14 82/212/14 81/211/14
|
||||
f 83/225/36 87/226/36 85/227/36 81/228/36
|
||||
f 88/229/37 84/230/37 82/231/37 86/232/37
|
||||
f 77/205/38 101/204/38 79/233/38 90/234/38 89/235/38
|
||||
f 93/236/39 94/237/39 92/238/39 91/239/39
|
||||
f 79/193/40 93/240/40 98/241/40 96/242/40
|
||||
f 80/192/41 106/243/41 78/244/41 92/245/41 94/246/41
|
||||
f 79/193/42 80/192/42 94/246/42 93/240/42
|
||||
f 95/247/43 96/248/43 98/249/43 97/250/43
|
||||
f 91/197/44 77/196/44 95/251/44 97/252/44
|
||||
f 77/253/45 101/254/45 79/255/45 96/256/45 95/257/45
|
||||
f 93/236/46 91/239/46 97/250/46 98/249/46
|
||||
f 99/258/47 103/259/47 102/260/47 73/261/47
|
||||
f 75/262/48 100/263/48 103/259/48 99/258/48
|
||||
f 100/264/49 79/233/49 101/204/49 103/203/49
|
||||
f 106/265/50 108/266/50 107/267/50 78/268/50
|
||||
f 80/269/51 105/270/51 108/266/51 106/265/51
|
||||
f 105/271/52 76/272/52 104/208/52 108/207/52
|
||||
f 111/273/53 127/274/53 165/275/53 163/276/53
|
||||
f 111/277/54 112/278/54 133/279/54 116/280/54 115/281/54 128/282/54
|
||||
f 114/283/55 113/284/55 119/285/55 120/286/55
|
||||
f 113/284/56 114/283/56 135/287/56 110/288/56 109/289/56 130/290/56
|
||||
f 131/291/57 129/292/57 113/293/57 130/294/57
|
||||
f 136/295/58 132/296/58 110/297/58 135/298/58
|
||||
f 113/293/59 129/292/59 115/299/59 118/300/59 117/301/59
|
||||
f 121/302/60 122/303/60 120/304/60 119/305/60
|
||||
f 115/281/61 121/306/61 126/307/61 124/308/61
|
||||
f 116/309/62 134/310/62 114/311/62 120/312/62 122/313/62
|
||||
f 115/281/63 116/280/63 122/314/63 121/306/63
|
||||
f 123/315/64 124/316/64 126/317/64 125/318/64
|
||||
f 119/285/65 113/284/65 123/319/65 125/320/65
|
||||
f 113/321/66 129/322/66 115/323/66 124/324/66 123/325/66
|
||||
f 121/302/67 119/305/67 125/318/67 126/317/67
|
||||
f 127/274/68 131/326/68 130/327/68 109/328/68
|
||||
f 111/273/69 128/329/69 131/326/69 127/274/69
|
||||
f 128/330/70 115/299/70 129/292/70 131/291/70
|
||||
f 134/331/71 136/332/71 135/333/71 114/334/71
|
||||
f 116/335/72 133/336/72 136/332/72 134/331/72
|
||||
f 133/337/73 112/338/73 132/296/73 136/295/73
|
||||
f 137/339/74 138/340/74 140/341/74 139/342/74
|
||||
f 82/231/75 84/230/75 140/343/75 138/344/75
|
||||
f 83/225/76 81/228/76 137/345/76 139/346/76
|
||||
f 84/216/12 83/215/12 139/347/12 140/348/12
|
||||
f 112/349/17 111/350/17 147/351/17 148/352/17
|
||||
f 109/353/17 110/354/17 146/355/17 145/356/17
|
||||
f 76/357/17 75/358/17 143/359/17 144/360/17
|
||||
f 73/361/17 74/362/17 142/363/17 141/364/17
|
||||
f 148/352/17 147/351/17 159/365/17 160/366/17
|
||||
f 144/360/17 143/359/17 155/367/17 156/368/17
|
||||
f 145/356/17 146/355/17 158/369/17 157/370/17
|
||||
f 141/364/17 142/363/17 154/371/17 153/372/17
|
||||
f 161/373/77 162/374/77 166/375/77 164/376/77 163/276/77 165/275/77
|
||||
f 112/278/78 111/277/78 163/377/78 164/378/78
|
||||
f 109/289/79 110/288/79 162/379/79 161/380/79
|
||||
f 110/297/80 132/296/80 166/381/80 162/382/80
|
||||
f 132/296/81 112/338/81 164/383/81 166/381/81
|
||||
f 127/274/82 109/328/82 161/373/82 165/275/82
|
||||
f 167/384/83 168/385/83 172/386/83 170/387/83 169/388/83 171/389/83
|
||||
f 99/390/84 73/391/84 167/384/84 171/389/84
|
||||
f 74/392/85 104/185/85 172/188/85 168/393/85
|
||||
f 76/190/86 75/189/86 169/394/86 170/395/86
|
||||
f 73/201/87 74/200/87 168/396/87 167/397/87
|
||||
f 75/398/88 99/390/88 171/389/88 169/388/88
|
||||
l 132 152
|
||||
l 104 150
|
||||
l 127 151
|
||||
l 99 149
|
826
models/torret2.obj
Normal file
@ -0,0 +1,826 @@
|
||||
# Blender v2.79 (sub 0) OBJ File: 'torret2.blend'
|
||||
# www.blender.org
|
||||
mtllib torret2.mtl
|
||||
o Cube.003_Cube.006
|
||||
v 0.189895 0.163143 -0.372653
|
||||
v 0.189895 0.201097 -0.378580
|
||||
v 0.080336 0.159674 -0.394870
|
||||
v 0.080336 0.197628 -0.400796
|
||||
v 0.242297 0.123751 -0.624923
|
||||
v 0.242297 0.161705 -0.630850
|
||||
v 0.132738 0.120282 -0.647140
|
||||
v 0.132738 0.158236 -0.653066
|
||||
v -0.132041 0.120282 -0.647140
|
||||
v -0.241600 0.161705 -0.630850
|
||||
v -0.241600 0.123751 -0.624923
|
||||
v -0.079638 0.197628 -0.400796
|
||||
v -0.079638 0.159674 -0.394870
|
||||
v -0.189198 0.201097 -0.378580
|
||||
v -0.189198 0.163143 -0.372653
|
||||
v -0.132041 0.158236 -0.653066
|
||||
v 0.063142 0.001380 0.512074
|
||||
v 0.063142 0.035815 0.538953
|
||||
v -0.064046 0.001380 0.512074
|
||||
v -0.064046 0.035815 0.538953
|
||||
v 0.063142 0.183763 0.278415
|
||||
v 0.063142 0.218199 0.305294
|
||||
v -0.064046 0.183763 0.278415
|
||||
v -0.064046 0.218199 0.305294
|
||||
v -0.286162 0.274292 0.122505
|
||||
v -0.286162 0.815413 0.122505
|
||||
v -0.347493 0.274292 0.122505
|
||||
v -0.347493 0.815413 0.122505
|
||||
v -0.286162 0.274292 -0.191426
|
||||
v -0.286162 0.815413 -0.191426
|
||||
v -0.347493 0.274292 -0.191426
|
||||
v -0.347493 0.815413 -0.191426
|
||||
v 0.128914 0.144853 0.197599
|
||||
v 0.128914 0.944853 0.197599
|
||||
v -0.133743 0.144853 0.197599
|
||||
v -0.133743 0.944853 0.197599
|
||||
v 0.128913 0.144853 -0.266520
|
||||
v 0.128914 0.944853 -0.266520
|
||||
v -0.133743 0.144853 -0.266520
|
||||
v -0.133743 0.944853 -0.266520
|
||||
v 0.339758 0.274292 0.122505
|
||||
v 0.339758 0.815413 0.122505
|
||||
v 0.278427 0.274292 0.122505
|
||||
v 0.278427 0.815413 0.122505
|
||||
v 0.339758 0.274292 -0.191426
|
||||
v 0.339758 0.815413 -0.191426
|
||||
v 0.278427 0.274292 -0.191426
|
||||
v 0.278427 0.815413 -0.191426
|
||||
v 0.282464 0.419685 0.016073
|
||||
v 0.282464 0.670021 0.016073
|
||||
v -0.287293 0.419685 0.016073
|
||||
v -0.287293 0.670021 0.016073
|
||||
v 0.282464 0.419685 -0.084994
|
||||
v 0.282464 0.670021 -0.084994
|
||||
v -0.287293 0.419685 -0.084994
|
||||
v -0.287293 0.670021 -0.084994
|
||||
v -0.058777 0.548149 -0.265845
|
||||
v -0.058777 0.548149 -0.273879
|
||||
v -0.043146 0.510413 -0.265845
|
||||
v -0.043146 0.510413 -0.273879
|
||||
v -0.005410 0.494783 -0.265845
|
||||
v -0.005410 0.494783 -0.273879
|
||||
v 0.032325 0.510413 -0.265845
|
||||
v 0.032325 0.510413 -0.273879
|
||||
v 0.047956 0.548149 -0.265845
|
||||
v 0.047956 0.548149 -0.273879
|
||||
v 0.032325 0.585884 -0.265845
|
||||
v 0.032325 0.585884 -0.273879
|
||||
v -0.005410 0.601515 -0.265845
|
||||
v -0.005410 0.601515 -0.273879
|
||||
v -0.043146 0.585884 -0.265845
|
||||
v -0.043146 0.585884 -0.273879
|
||||
v -0.000109 0.149264 -0.268848
|
||||
v -0.000109 0.940441 -0.268848
|
||||
v -0.004799 0.149264 -0.268848
|
||||
v -0.004799 0.940441 -0.268848
|
||||
v -0.000109 0.149264 -0.260088
|
||||
v -0.000109 0.940441 -0.260088
|
||||
v -0.004799 0.149264 -0.260088
|
||||
v -0.004799 0.940441 -0.260088
|
||||
v 0.119911 0.086846 -0.114011
|
||||
v 0.111512 0.130445 -0.112341
|
||||
v 0.038877 0.064643 -0.136101
|
||||
v 0.030478 0.108242 -0.134431
|
||||
v 0.209056 0.123944 -0.552177
|
||||
v 0.200657 0.167543 -0.550507
|
||||
v 0.128022 0.101741 -0.574268
|
||||
v 0.138016 0.145340 -0.572597
|
||||
v 0.048662 0.033870 0.495340
|
||||
v 0.048662 0.022144 0.452483
|
||||
v -0.053491 0.033870 0.495340
|
||||
v -0.053491 0.022144 0.452483
|
||||
v 0.048662 -0.476361 0.634943
|
||||
v 0.048662 -0.488087 0.592086
|
||||
v -0.053491 -0.476361 0.634943
|
||||
v -0.053491 -0.488087 0.592086
|
||||
v 0.209056 0.123944 -0.552177
|
||||
v 0.128022 0.101741 -0.574268
|
||||
v 0.219790 0.123944 -0.595985
|
||||
v 0.211391 0.167543 -0.594315
|
||||
v 0.157149 0.101741 -0.618075
|
||||
v 0.148750 0.145340 -0.616405
|
||||
v 0.312716 -0.500601 -0.680111
|
||||
v 0.231681 -0.496988 -0.702201
|
||||
v 0.323449 -0.500601 -0.723919
|
||||
v 0.242415 -0.496988 -0.746009
|
||||
v 0.080352 0.075744 -0.125056
|
||||
v 0.094276 0.014385 -0.314219
|
||||
v 0.169496 0.112843 -0.563222
|
||||
v 0.175310 0.036588 -0.292129
|
||||
v 0.135751 0.025487 -0.303174
|
||||
v 0.071953 0.119343 -0.123386
|
||||
v 0.085877 0.057984 -0.312549
|
||||
v 0.161097 0.156442 -0.561552
|
||||
v 0.166911 0.080187 -0.290458
|
||||
v 0.127351 0.069086 -0.301503
|
||||
v -0.124589 0.086846 -0.114011
|
||||
v -0.116189 0.130445 -0.112341
|
||||
v -0.043554 0.064643 -0.136101
|
||||
v -0.035155 0.108242 -0.134431
|
||||
v -0.213733 0.123944 -0.552177
|
||||
v -0.205334 0.167543 -0.550507
|
||||
v -0.132699 0.101741 -0.574268
|
||||
v -0.124300 0.145340 -0.572597
|
||||
v -0.213733 0.123944 -0.552177
|
||||
v -0.132699 0.101741 -0.574268
|
||||
v -0.224467 0.123944 -0.595985
|
||||
v -0.216068 0.167543 -0.594315
|
||||
v -0.143433 0.101741 -0.618075
|
||||
v -0.135034 0.145340 -0.616405
|
||||
v -0.317393 -0.500601 -0.680111
|
||||
v -0.236359 -0.496988 -0.702201
|
||||
v -0.328127 -0.500601 -0.723919
|
||||
v -0.247093 -0.496988 -0.746009
|
||||
v -0.085029 0.075744 -0.125056
|
||||
v -0.098953 0.014385 -0.314219
|
||||
v -0.174174 0.112843 -0.563222
|
||||
v -0.179988 0.036588 -0.292129
|
||||
v -0.140428 0.025487 -0.303174
|
||||
v -0.076630 0.119343 -0.123386
|
||||
v -0.090554 0.057984 -0.312549
|
||||
v -0.165774 0.156442 -0.561552
|
||||
v -0.171588 0.080187 -0.290458
|
||||
v -0.132029 0.069086 -0.301504
|
||||
v 0.048662 0.269229 0.190763
|
||||
v 0.048662 0.257503 0.147906
|
||||
v -0.053491 0.269229 0.190763
|
||||
v -0.053491 0.257503 0.147906
|
||||
v 0.119911 0.086846 -0.114011
|
||||
v 0.111512 0.130445 -0.112341
|
||||
v 0.038877 0.064643 -0.136101
|
||||
v 0.030478 0.108242 -0.134431
|
||||
v -0.124589 0.086846 -0.114011
|
||||
v -0.116189 0.130445 -0.112341
|
||||
v -0.043554 0.064643 -0.136101
|
||||
v -0.035155 0.108242 -0.134431
|
||||
v 0.080352 0.075744 -0.125056
|
||||
v 0.071953 0.119343 -0.123386
|
||||
v -0.085029 0.075744 -0.125056
|
||||
v -0.076630 0.119343 -0.123386
|
||||
v 0.119911 0.086846 -0.114011
|
||||
v 0.111512 0.130445 -0.112341
|
||||
v 0.038877 0.064643 -0.136101
|
||||
v 0.030478 0.108242 -0.134431
|
||||
v -0.124589 0.086846 -0.114011
|
||||
v -0.116189 0.130445 -0.112341
|
||||
v -0.043554 0.064643 -0.136101
|
||||
v -0.035155 0.108242 -0.134431
|
||||
v -0.124589 0.171454 -0.009180
|
||||
v -0.116189 0.215053 -0.007510
|
||||
v -0.043554 0.149251 -0.031270
|
||||
v -0.035155 0.192850 -0.029600
|
||||
v -0.085029 0.160352 -0.020225
|
||||
v -0.076630 0.203951 -0.018555
|
||||
v 0.119911 0.157397 -0.053308
|
||||
v 0.111512 0.200996 -0.051637
|
||||
v 0.038877 0.135194 -0.075398
|
||||
v 0.030478 0.178793 -0.073728
|
||||
v 0.080352 0.146295 -0.064353
|
||||
v 0.071953 0.189894 -0.062682
|
||||
vt 0.489132 0.748949
|
||||
vt 0.489132 0.718137
|
||||
vt 0.519717 0.718145
|
||||
vt 0.519717 0.748957
|
||||
vt 0.090171 0.693043
|
||||
vt 0.090171 0.723854
|
||||
vt 0.061402 0.723899
|
||||
vt 0.061402 0.693087
|
||||
vt 0.210985 0.718395
|
||||
vt 0.210985 0.749207
|
||||
vt 0.180404 0.749215
|
||||
vt 0.180404 0.718403
|
||||
vt 0.246514 0.722337
|
||||
vt 0.246514 0.753149
|
||||
vt 0.217065 0.753184
|
||||
vt 0.217065 0.722372
|
||||
vt 0.000000 0.693043
|
||||
vt 0.030701 0.693043
|
||||
vt 0.030701 0.723855
|
||||
vt 0.000000 0.723855
|
||||
vt 0.030701 0.693043
|
||||
vt 0.061402 0.693043
|
||||
vt 0.061402 0.723855
|
||||
vt 0.030701 0.723855
|
||||
vt 0.113868 0.693092
|
||||
vt 0.144569 0.693034
|
||||
vt 0.144569 0.729449
|
||||
vt 0.113868 0.729507
|
||||
vt 0.028567 0.723863
|
||||
vt 0.028567 0.754674
|
||||
vt 0.000000 0.754666
|
||||
vt 0.000000 0.723855
|
||||
vt 0.057131 0.723855
|
||||
vt 0.057131 0.754666
|
||||
vt 0.028567 0.754674
|
||||
vt 0.028567 0.723863
|
||||
vt 0.144569 0.693102
|
||||
vt 0.175270 0.693034
|
||||
vt 0.175270 0.728196
|
||||
vt 0.144569 0.728264
|
||||
vt 0.113868 0.693034
|
||||
vt 0.113868 0.733059
|
||||
vt 0.090234 0.749387
|
||||
vt 0.090234 0.709362
|
||||
vt 0.453595 0.706535
|
||||
vt 0.429961 0.690207
|
||||
vt 0.429961 0.730233
|
||||
vt 0.453595 0.746561
|
||||
vt 0.491495 0.718137
|
||||
vt 0.489132 0.694236
|
||||
vt 0.523439 0.692892
|
||||
vt 0.525802 0.716793
|
||||
vt 0.690895 0.620228
|
||||
vt 0.683350 0.597128
|
||||
vt 0.683350 0.421757
|
||||
vt 0.690895 0.444858
|
||||
vt 0.180404 0.543450
|
||||
vt 0.182758 0.519548
|
||||
vt 0.217065 0.520887
|
||||
vt 0.214711 0.544789
|
||||
vt 0.797976 0.023111
|
||||
vt 0.805454 0.000000
|
||||
vt 0.805454 0.175364
|
||||
vt 0.797976 0.198475
|
||||
vt 0.182758 0.717056
|
||||
vt 0.217065 0.718395
|
||||
vt 0.525802 0.519284
|
||||
vt 0.491495 0.520628
|
||||
vt 0.666799 0.889843
|
||||
vt 0.653710 0.461156
|
||||
vt 0.670262 0.460793
|
||||
vt 0.683350 0.889480
|
||||
vt 0.573487 0.421757
|
||||
vt 0.573487 0.850735
|
||||
vt 0.533024 0.888570
|
||||
vt 0.533024 0.459592
|
||||
vt 0.292521 0.928144
|
||||
vt 0.305565 0.499455
|
||||
vt 0.322117 0.499817
|
||||
vt 0.309072 0.928506
|
||||
vt 0.613599 0.850721
|
||||
vt 0.613599 0.421757
|
||||
vt 0.653710 0.459650
|
||||
vt 0.653710 0.888614
|
||||
vt 0.305565 0.967176
|
||||
vt 0.322117 0.967538
|
||||
vt 0.683350 0.421757
|
||||
vt 0.666799 0.422120
|
||||
vt 0.019350 0.693043
|
||||
vt 0.000000 0.059266
|
||||
vt 0.070884 0.057711
|
||||
vt 0.090234 0.691487
|
||||
vt 0.348156 0.690141
|
||||
vt 0.348156 0.055936
|
||||
vt 0.407978 0.000000
|
||||
vt 0.407978 0.634205
|
||||
vt 0.090234 0.633779
|
||||
vt 0.109519 0.000000
|
||||
vt 0.180404 0.001550
|
||||
vt 0.161119 0.635328
|
||||
vt 0.407978 0.634186
|
||||
vt 0.407978 0.000000
|
||||
vt 0.467279 0.056021
|
||||
vt 0.467279 0.690207
|
||||
vt 0.109519 0.691484
|
||||
vt 0.180404 0.693034
|
||||
vt 0.090234 0.000000
|
||||
vt 0.019350 0.001555
|
||||
vt 0.927182 0.678965
|
||||
vt 0.914094 0.250278
|
||||
vt 0.930645 0.249915
|
||||
vt 0.943734 0.678602
|
||||
vt 0.863881 0.210879
|
||||
vt 0.863881 0.639856
|
||||
vt 0.823417 0.677691
|
||||
vt 0.823417 0.248714
|
||||
vt 0.262925 0.928144
|
||||
vt 0.275969 0.499455
|
||||
vt 0.292521 0.499817
|
||||
vt 0.279476 0.928506
|
||||
vt 0.573487 0.850721
|
||||
vt 0.573487 0.421757
|
||||
vt 0.613599 0.459650
|
||||
vt 0.613599 0.888614
|
||||
vt 0.275969 0.967176
|
||||
vt 0.292521 0.967538
|
||||
vt 0.943734 0.210879
|
||||
vt 0.927182 0.211242
|
||||
vt 0.534758 0.210879
|
||||
vt 0.533024 0.012472
|
||||
vt 0.686823 0.012472
|
||||
vt 0.688558 0.210879
|
||||
vt 0.704336 0.000000
|
||||
vt 0.704336 0.198456
|
||||
vt 0.691310 0.210636
|
||||
vt 0.691310 0.012181
|
||||
vt 0.691294 0.223350
|
||||
vt 0.689565 0.421757
|
||||
vt 0.535765 0.421757
|
||||
vt 0.537495 0.223350
|
||||
vt 0.717250 0.012199
|
||||
vt 0.717250 0.210649
|
||||
vt 0.704336 0.198450
|
||||
vt 0.704336 0.000000
|
||||
vt 0.686823 0.210879
|
||||
vt 0.533024 0.210879
|
||||
vt 0.691310 0.000000
|
||||
vt 0.537510 0.000000
|
||||
vt 0.526837 0.561436
|
||||
vt 0.525802 0.562405
|
||||
vt 0.526922 0.532534
|
||||
vt 0.527957 0.531566
|
||||
vt 0.529626 0.520252
|
||||
vt 0.530662 0.519284
|
||||
vt 0.261228 0.519548
|
||||
vt 0.262254 0.520518
|
||||
vt 0.260242 0.532918
|
||||
vt 0.259216 0.531948
|
||||
vt 0.259409 0.562836
|
||||
vt 0.258382 0.561866
|
||||
vt 0.260242 0.592746
|
||||
vt 0.259216 0.591777
|
||||
vt 0.262254 0.605128
|
||||
vt 0.261228 0.604158
|
||||
vt 0.737396 0.137634
|
||||
vt 0.745741 0.166619
|
||||
vt 0.745741 0.196863
|
||||
vt 0.737396 0.210649
|
||||
vt 0.725595 0.199902
|
||||
vt 0.717250 0.170917
|
||||
vt 0.717250 0.140673
|
||||
vt 0.725595 0.126887
|
||||
vt 0.530662 0.603896
|
||||
vt 0.529626 0.604865
|
||||
vt 0.526922 0.592365
|
||||
vt 0.527957 0.591397
|
||||
vt 0.401848 0.734172
|
||||
vt 0.393503 0.763157
|
||||
vt 0.381702 0.773903
|
||||
vt 0.373357 0.760116
|
||||
vt 0.373357 0.729872
|
||||
vt 0.381702 0.700888
|
||||
vt 0.393503 0.690141
|
||||
vt 0.401848 0.703928
|
||||
vt 0.994427 0.211965
|
||||
vt 0.996089 0.839044
|
||||
vt 0.994823 0.839036
|
||||
vt 0.993161 0.211957
|
||||
vt 0.998881 0.838070
|
||||
vt 0.998881 0.210879
|
||||
vt 1.000000 0.211936
|
||||
vt 1.000000 0.839128
|
||||
vt 0.997751 0.210879
|
||||
vt 0.997355 0.837960
|
||||
vt 0.996089 0.837970
|
||||
vt 0.996485 0.210889
|
||||
vt 0.998881 0.210879
|
||||
vt 0.998881 0.838089
|
||||
vt 0.997751 0.839145
|
||||
vt 0.997751 0.211935
|
||||
vt 0.993557 0.210879
|
||||
vt 0.994823 0.210887
|
||||
vt 0.997751 0.839037
|
||||
vt 0.996485 0.839048
|
||||
vt 0.419228 0.746897
|
||||
vt 0.407978 0.755091
|
||||
vt 0.407978 0.706561
|
||||
vt 0.419228 0.698367
|
||||
vt 0.698133 0.347193
|
||||
vt 0.699215 0.312870
|
||||
vt 0.717830 0.331470
|
||||
vt 0.749646 0.231355
|
||||
vt 0.749881 0.265758
|
||||
vt 0.716748 0.365793
|
||||
vt 0.527891 0.514099
|
||||
vt 0.526949 0.479752
|
||||
vt 0.532082 0.484937
|
||||
vt 0.533024 0.519284
|
||||
vt 0.494398 0.414124
|
||||
vt 0.474975 0.432859
|
||||
vt 0.474033 0.398513
|
||||
vt 0.493456 0.379778
|
||||
vt 0.729140 0.108574
|
||||
vt 0.729140 0.007234
|
||||
vt 0.740514 0.000000
|
||||
vt 0.740514 0.101340
|
||||
vt 0.714070 0.736164
|
||||
vt 0.691363 0.739897
|
||||
vt 0.691363 0.728510
|
||||
vt 0.714070 0.724777
|
||||
vt 0.889098 0.635769
|
||||
vt 0.894914 0.632147
|
||||
vt 0.914094 0.858058
|
||||
vt 0.908277 0.861681
|
||||
vt 0.863881 0.436785
|
||||
vt 0.869749 0.440407
|
||||
vt 0.889098 0.861661
|
||||
vt 0.883230 0.858039
|
||||
vt 0.531090 0.632539
|
||||
vt 0.525802 0.634527
|
||||
vt 0.525802 0.606852
|
||||
vt 0.531090 0.604865
|
||||
vt 0.908277 0.214502
|
||||
vt 0.914094 0.210879
|
||||
vt 0.782198 0.435213
|
||||
vt 0.789035 0.856782
|
||||
vt 0.761467 0.857408
|
||||
vt 0.754630 0.435839
|
||||
vt 0.823417 0.211502
|
||||
vt 0.816603 0.633071
|
||||
vt 0.789035 0.632448
|
||||
vt 0.795849 0.210879
|
||||
vt 0.717250 0.014459
|
||||
vt 0.717250 0.014459
|
||||
vt 0.740514 0.000000
|
||||
vt 0.974576 0.259453
|
||||
vt 0.973975 0.225057
|
||||
vt 0.992560 0.210879
|
||||
vt 0.993161 0.245275
|
||||
vt 0.753548 0.260468
|
||||
vt 0.754630 0.719567
|
||||
vt 0.749646 0.724777
|
||||
vt 0.746721 0.223758
|
||||
vt 0.742617 0.216089
|
||||
vt 0.747601 0.210879
|
||||
vt 0.754630 0.226145
|
||||
vt 0.992000 0.730186
|
||||
vt 0.969399 0.723737
|
||||
vt 0.970561 0.718371
|
||||
vt 0.993161 0.724820
|
||||
vt 0.527891 0.000000
|
||||
vt 0.533024 0.005185
|
||||
vt 0.345667 0.978998
|
||||
vt 0.334150 0.971992
|
||||
vt 0.322117 0.965006
|
||||
vt 0.323063 0.505903
|
||||
vt 0.345667 0.499455
|
||||
vt 0.061471 0.735801
|
||||
vt 0.084178 0.739534
|
||||
vt 0.084178 0.750921
|
||||
vt 0.061471 0.747188
|
||||
vt 0.061402 0.723899
|
||||
vt 0.084109 0.727632
|
||||
vt 0.717250 0.115799
|
||||
vt 0.756487 0.007782
|
||||
vt 0.751525 0.109002
|
||||
vt 0.740514 0.101220
|
||||
vt 0.745477 0.000000
|
||||
vt 0.763052 0.015426
|
||||
vt 0.763052 0.116800
|
||||
vt 0.714001 0.748065
|
||||
vt 0.691294 0.751799
|
||||
vt 0.217065 0.543224
|
||||
vt 0.229350 0.547359
|
||||
vt 0.239504 0.600770
|
||||
vt 0.227219 0.596635
|
||||
vt 0.273697 0.117994
|
||||
vt 0.274601 0.083610
|
||||
vt 0.300568 0.103478
|
||||
vt 0.341486 0.004919
|
||||
vt 0.340582 0.039303
|
||||
vt 0.299664 0.137862
|
||||
vt 0.256530 0.514540
|
||||
vt 0.255685 0.480181
|
||||
vt 0.262080 0.485189
|
||||
vt 0.262925 0.519548
|
||||
vt 0.217130 0.415552
|
||||
vt 0.192246 0.435023
|
||||
vt 0.191402 0.400664
|
||||
vt 0.216286 0.381193
|
||||
vt 0.788994 0.009371
|
||||
vt 0.788994 0.112674
|
||||
vt 0.780519 0.121944
|
||||
vt 0.780519 0.018640
|
||||
vt 0.244691 0.719359
|
||||
vt 0.229677 0.694175
|
||||
vt 0.241808 0.691006
|
||||
vt 0.256822 0.716189
|
||||
vt 0.797976 0.103304
|
||||
vt 0.797976 0.103304
|
||||
vt 0.780519 0.121944
|
||||
vt 0.947478 0.258507
|
||||
vt 0.947551 0.224056
|
||||
vt 0.969399 0.210879
|
||||
vt 0.969325 0.245330
|
||||
vt 0.347253 0.034384
|
||||
vt 0.348156 0.494536
|
||||
vt 0.341486 0.499455
|
||||
vt 0.256822 0.663851
|
||||
vt 0.256859 0.653076
|
||||
vt 0.256822 0.642815
|
||||
vt 0.262650 0.638760
|
||||
vt 0.262651 0.659797
|
||||
vt 0.348156 0.000000
|
||||
vt 0.964146 0.731052
|
||||
vt 0.943734 0.723818
|
||||
vt 0.948987 0.718813
|
||||
vt 0.969399 0.726048
|
||||
vt 0.256530 0.000000
|
||||
vt 0.262925 0.005008
|
||||
vt 0.489132 1.000000
|
||||
vt 0.478463 0.993392
|
||||
vt 0.467279 0.986825
|
||||
vt 0.468717 0.526520
|
||||
vt 0.489132 0.519284
|
||||
vt 0.246593 0.523683
|
||||
vt 0.258382 0.527964
|
||||
vt 0.241139 0.551640
|
||||
vt 0.234309 0.519548
|
||||
vt 0.797976 0.000000
|
||||
vt 0.772039 0.112663
|
||||
vt 0.772039 0.009368
|
||||
vt 0.780519 0.018635
|
||||
vt 0.780519 0.121930
|
||||
vt 0.763052 0.103295
|
||||
vt 0.763052 0.000000
|
||||
vt 0.232080 0.722337
|
||||
vt 0.217065 0.697153
|
||||
vt 0.531090 0.664189
|
||||
vt 0.525802 0.662201
|
||||
vt 0.525802 0.634527
|
||||
vt 0.531090 0.636514
|
||||
vt 0.823417 0.857402
|
||||
vt 0.795849 0.856779
|
||||
vt 0.761467 0.211505
|
||||
vt 0.789035 0.210879
|
||||
vt 0.883230 0.210879
|
||||
vt 0.889098 0.214501
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.251293 0.605051
|
||||
vt 0.258382 0.638760
|
||||
vt 0.246593 0.634479
|
||||
vt 0.234309 0.630343
|
||||
vt 0.262925 0.062943
|
||||
vt 0.263829 0.028558
|
||||
vt 0.181248 0.489979
|
||||
vt 0.180404 0.455620
|
||||
vt 0.244691 0.641929
|
||||
vt 0.256822 0.638760
|
||||
vt 0.232080 0.644908
|
||||
vt 0.348156 0.724456
|
||||
vt 0.350583 0.690141
|
||||
vt 0.361712 0.697753
|
||||
vt 0.373357 0.705372
|
||||
vt 0.370930 0.739687
|
||||
vt 0.359285 0.732067
|
||||
vt 0.361712 0.780537
|
||||
vt 0.350583 0.772925
|
||||
vt 0.429961 0.738737
|
||||
vt 0.429961 0.690207
|
||||
vt 0.691294 0.298430
|
||||
vt 0.692376 0.264107
|
||||
vt 0.468221 0.481611
|
||||
vt 0.467279 0.447264
|
||||
vt 0.373357 0.788156
|
||||
vn -0.2010 0.1511 0.9679
|
||||
vn -0.9796 -0.0310 -0.1986
|
||||
vn 0.2010 -0.1511 -0.9679
|
||||
vn 0.9796 0.0310 0.1986
|
||||
vn -0.0000 -0.9880 0.1543
|
||||
vn -0.0000 0.9880 -0.1543
|
||||
vn -0.9796 0.0310 0.1986
|
||||
vn -0.2010 -0.1511 -0.9679
|
||||
vn 0.2010 0.1511 0.9679
|
||||
vn 0.9796 -0.0310 -0.1986
|
||||
vn 0.0000 -0.6153 0.7883
|
||||
vn -1.0000 -0.0000 0.0000
|
||||
vn 0.0000 0.6153 -0.7883
|
||||
vn 1.0000 0.0000 -0.0000
|
||||
vn 0.0000 -0.7883 -0.6153
|
||||
vn 0.0000 0.7883 0.6153
|
||||
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 -0.9239 -0.3827 -0.0000
|
||||
vn -0.3827 -0.9239 0.0000
|
||||
vn 0.3827 -0.9239 -0.0000
|
||||
vn 0.9239 -0.3827 -0.0000
|
||||
vn 0.9239 0.3827 0.0000
|
||||
vn 0.3827 0.9239 0.0000
|
||||
vn -0.3827 0.9239 -0.0000
|
||||
vn -0.9239 0.3827 0.0000
|
||||
vn 0.0273 0.6520 -0.7577
|
||||
vn -0.9793 -0.0575 -0.1940
|
||||
vn 0.9562 0.1752 0.2343
|
||||
vn 0.9614 0.1771 0.2106
|
||||
vn 0.3279 -0.9076 -0.2623
|
||||
vn -0.1732 0.9325 -0.3170
|
||||
vn 0.0000 -0.9645 0.2639
|
||||
vn -0.0000 0.2639 0.9645
|
||||
vn 0.0000 -0.2639 -0.9645
|
||||
vn 0.0000 0.7053 -0.7089
|
||||
vn 0.3012 0.0944 -0.9489
|
||||
vn -0.9088 -0.0550 -0.4135
|
||||
vn -0.3003 0.9484 -0.1018
|
||||
vn -0.9097 0.0325 -0.4139
|
||||
vn -0.0418 -0.9991 -0.0102
|
||||
vn 0.9652 0.1118 0.2365
|
||||
vn -0.2303 -0.2363 0.9440
|
||||
vn 0.2576 0.2358 -0.9370
|
||||
vn 0.1732 -0.9325 0.3170
|
||||
vn 0.1661 -0.9343 0.3153
|
||||
vn 0.3146 -0.9114 -0.2653
|
||||
vn -0.3279 0.9076 0.2623
|
||||
vn -0.3872 0.8914 0.2355
|
||||
vn -0.1661 0.9343 -0.3153
|
||||
vn 0.0410 0.7775 -0.6275
|
||||
vn -0.9614 0.1771 0.2106
|
||||
vn 0.9562 -0.1752 -0.2343
|
||||
vn 0.9614 -0.1771 -0.2106
|
||||
vn 0.3279 0.9076 0.2623
|
||||
vn -0.1732 -0.9325 0.3170
|
||||
vn -0.0001 -0.7054 0.7089
|
||||
vn 0.2407 -0.0834 0.9670
|
||||
vn -0.9647 0.1165 0.2364
|
||||
vn -0.2490 -0.9668 0.0583
|
||||
vn -0.9562 0.1752 0.2343
|
||||
vn -0.0418 0.9991 0.0102
|
||||
vn 0.9652 -0.1118 -0.2365
|
||||
vn -0.2303 0.2363 -0.9440
|
||||
vn 0.2302 -0.2365 0.9440
|
||||
vn 0.1732 0.9325 -0.3170
|
||||
vn 0.1661 0.9343 -0.3153
|
||||
vn 0.3146 0.9114 0.2653
|
||||
vn -0.3279 -0.9076 -0.2623
|
||||
vn -0.3146 -0.9114 -0.2653
|
||||
vn -0.1661 -0.9343 0.3153
|
||||
vn 0.0000 0.9645 -0.2639
|
||||
vn 0.0000 -0.7913 -0.6115
|
||||
vn -0.0000 0.7913 0.6115
|
||||
vn -0.2407 0.0834 -0.9670
|
||||
vn -0.9689 0.1926 -0.1555
|
||||
vn 0.9689 -0.1926 0.1555
|
||||
vn -0.0430 -0.7775 0.6275
|
||||
vn -0.0410 -0.7775 0.6275
|
||||
vn 0.0430 0.7775 -0.6275
|
||||
vn -0.2407 -0.0834 0.9670
|
||||
vn -0.0286 -0.6520 0.7577
|
||||
vn 0.0286 0.6520 -0.7577
|
||||
vn -0.9554 -0.1926 0.2239
|
||||
vn 0.9554 0.1926 -0.2239
|
||||
vn -0.0273 -0.6520 0.7577
|
||||
usemtl Material.001
|
||||
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/9/3 8/10/3 6/11/3 5/12/3
|
||||
f 5/13/4 6/14/4 2/15/4 1/16/4
|
||||
f 3/17/5 7/18/5 5/19/5 1/20/5
|
||||
f 8/21/6 4/22/6 2/23/6 6/24/6
|
||||
f 13/25/7 12/26/7 16/27/7 9/28/7
|
||||
f 15/29/8 14/30/8 12/31/8 13/32/8
|
||||
f 9/33/9 16/34/9 10/35/9 11/36/9
|
||||
f 11/37/10 10/38/10 14/39/10 15/40/10
|
||||
f 13/41/6 9/42/6 11/43/6 15/44/6
|
||||
f 16/45/6 10/46/6 14/47/6 12/48/6
|
||||
f 17/49/11 18/50/11 20/51/11 19/52/11
|
||||
f 19/53/12 20/54/12 24/55/12 23/56/12
|
||||
f 23/57/13 24/58/13 22/59/13 21/60/13
|
||||
f 21/61/14 22/62/14 18/63/14 17/64/14
|
||||
f 19/65/15 23/57/15 21/60/15 17/66/15
|
||||
f 24/67/16 20/51/16 18/50/16 22/68/16
|
||||
f 25/69/17 26/70/17 28/71/17 27/72/17
|
||||
f 27/73/12 28/74/12 32/75/12 31/76/12
|
||||
f 31/77/18 32/78/18 30/79/18 29/80/18
|
||||
f 29/81/14 30/82/14 26/83/14 25/84/14
|
||||
f 27/85/19 31/77/19 29/80/19 25/86/19
|
||||
f 32/87/20 28/71/20 26/70/20 30/88/20
|
||||
f 33/89/17 34/90/17 36/91/17 35/92/17
|
||||
f 35/93/12 36/94/12 40/95/12 39/96/12
|
||||
f 39/97/18 40/98/18 38/99/18 37/100/18
|
||||
f 37/101/14 38/102/14 34/103/14 33/104/14
|
||||
f 35/105/19 39/97/19 37/100/19 33/106/19
|
||||
f 40/107/20 36/91/20 34/90/20 38/108/20
|
||||
f 41/109/17 42/110/17 44/111/17 43/112/17
|
||||
f 43/113/12 44/114/12 48/115/12 47/116/12
|
||||
f 47/117/18 48/118/18 46/119/18 45/120/18
|
||||
f 45/121/14 46/122/14 42/123/14 41/124/14
|
||||
f 43/125/19 47/117/19 45/120/19 41/126/19
|
||||
f 48/127/20 44/111/20 42/110/20 46/128/20
|
||||
f 49/129/17 50/130/17 52/131/17 51/132/17
|
||||
f 51/133/12 52/134/12 56/135/12 55/136/12
|
||||
f 55/137/18 56/138/18 54/139/18 53/140/18
|
||||
f 53/141/14 54/142/14 50/143/14 49/144/14
|
||||
f 51/145/19 55/137/19 53/140/19 49/146/19
|
||||
f 56/147/20 52/131/20 50/130/20 54/148/20
|
||||
f 57/149/21 58/150/21 60/151/21 59/152/21
|
||||
f 59/152/22 60/151/22 62/153/22 61/154/22
|
||||
f 61/155/23 62/156/23 64/157/23 63/158/23
|
||||
f 63/158/24 64/157/24 66/159/24 65/160/24
|
||||
f 65/160/25 66/159/25 68/161/25 67/162/25
|
||||
f 67/162/26 68/161/26 70/163/26 69/164/26
|
||||
f 60/165/18 58/166/18 72/167/18 70/168/18 68/169/18 66/170/18 64/171/18 62/172/18
|
||||
f 69/173/27 70/174/27 72/175/27 71/176/27
|
||||
f 71/176/28 72/175/28 58/150/28 57/149/28
|
||||
f 57/177/17 59/178/17 61/179/17 63/180/17 65/181/17 67/182/17 69/183/17 71/184/17
|
||||
f 73/185/17 74/186/17 76/187/17 75/188/17
|
||||
f 75/189/14 76/190/14 80/191/14 79/192/14
|
||||
f 79/193/18 80/194/18 78/195/18 77/196/18
|
||||
f 77/197/12 78/198/12 74/199/12 73/200/12
|
||||
f 75/188/20 79/201/20 77/202/20 73/185/20
|
||||
f 80/194/19 76/203/19 74/204/19 78/195/19
|
||||
f 112/205/29 84/206/29 178/207/29 180/208/29
|
||||
f 83/209/30 84/210/30 113/211/30 88/212/30 87/213/30 108/214/30
|
||||
f 86/215/31 85/216/31 99/217/31 100/218/31
|
||||
f 85/216/32 86/215/32 115/219/32 82/220/32 81/221/32 110/222/32
|
||||
f 111/223/33 109/224/33 85/225/33 110/226/33
|
||||
f 116/227/34 112/228/34 82/229/34 115/230/34
|
||||
f 89/231/14 90/232/14 146/233/14 145/234/14
|
||||
f 91/235/12 92/236/12 96/237/12 95/238/12
|
||||
f 95/239/35 96/240/35 94/241/35 93/242/35
|
||||
f 93/243/14 94/244/14 90/232/14 89/231/14
|
||||
f 91/245/36 95/246/36 93/247/36 89/248/36
|
||||
f 96/249/37 92/250/37 90/251/37 94/252/37
|
||||
f 85/225/38 109/224/38 87/253/38 98/254/38 97/255/38
|
||||
f 101/256/39 102/257/39 100/258/39 99/259/39
|
||||
f 87/213/40 101/260/40 106/261/40 104/262/40
|
||||
f 88/212/41 114/263/41 86/264/41 100/265/41 102/266/41
|
||||
f 87/213/42 88/212/42 102/266/42 101/260/42
|
||||
f 103/267/43 104/268/43 106/269/43 105/270/43
|
||||
f 99/217/44 85/216/44 103/271/44 105/272/44
|
||||
f 85/273/45 109/274/45 87/275/45 104/276/45 103/277/45
|
||||
f 101/256/46 99/259/46 105/270/46 106/269/46
|
||||
f 107/278/47 111/279/47 110/280/47 81/281/47
|
||||
f 83/282/48 108/283/48 111/279/48 107/278/48
|
||||
f 108/284/49 87/253/49 109/224/49 111/223/49
|
||||
f 114/285/50 116/286/50 115/287/50 86/288/50
|
||||
f 88/289/51 113/290/51 116/286/51 114/285/51
|
||||
f 113/291/52 84/292/52 112/228/52 116/227/52
|
||||
f 119/293/53 135/294/53 173/295/53 171/296/53
|
||||
f 119/297/54 120/298/54 141/299/54 124/300/54 123/301/54 136/302/54
|
||||
f 122/303/55 121/304/55 127/305/55 128/306/55
|
||||
f 121/304/56 122/303/56 143/307/56 118/308/56 117/309/56 138/310/56
|
||||
f 139/311/57 137/312/57 121/313/57 138/314/57
|
||||
f 144/315/58 140/316/58 118/317/58 143/318/58
|
||||
f 121/313/59 137/312/59 123/319/59 126/320/59 125/321/59
|
||||
f 129/322/60 130/323/60 128/324/60 127/325/60
|
||||
f 123/301/61 129/326/61 134/327/61 132/328/61
|
||||
f 124/329/62 142/330/62 122/331/62 128/332/62 130/333/62
|
||||
f 123/301/63 124/300/63 130/334/63 129/326/63
|
||||
f 131/335/64 132/336/64 134/337/64 133/338/64
|
||||
f 127/305/65 121/304/65 131/339/65 133/340/65
|
||||
f 121/341/66 137/342/66 123/343/66 132/344/66 131/345/66
|
||||
f 129/322/67 127/325/67 133/338/67 134/337/67
|
||||
f 135/294/68 139/346/68 138/347/68 117/348/68
|
||||
f 119/293/69 136/349/69 139/346/69 135/294/69
|
||||
f 136/350/70 123/319/70 137/312/70 139/311/70
|
||||
f 142/351/71 144/352/71 143/353/71 122/354/71
|
||||
f 124/355/72 141/356/72 144/352/72 142/351/72
|
||||
f 141/357/73 120/358/73 140/316/73 144/315/73
|
||||
f 145/359/74 146/360/74 148/361/74 147/362/74
|
||||
f 90/251/75 92/250/75 148/363/75 146/364/75
|
||||
f 91/245/76 89/248/76 145/365/76 147/366/76
|
||||
f 92/236/12 91/235/12 147/367/12 148/368/12
|
||||
f 120/369/17 119/370/17 155/371/17 156/372/17
|
||||
f 117/373/17 118/374/17 154/375/17 153/376/17
|
||||
f 84/377/17 83/378/17 151/379/17 152/380/17
|
||||
f 81/381/17 82/382/17 150/383/17 149/384/17
|
||||
f 156/372/17 155/371/17 167/385/17 168/386/17
|
||||
f 152/380/17 151/379/17 163/387/17 164/388/17
|
||||
f 153/376/17 154/375/17 166/389/17 165/390/17
|
||||
f 149/384/17 150/383/17 162/391/17 161/392/17
|
||||
f 169/393/77 170/394/77 174/395/77 172/396/77 171/296/77 173/295/77
|
||||
f 120/298/78 119/297/78 171/397/78 172/398/78
|
||||
f 117/309/79 118/308/79 170/399/79 169/400/79
|
||||
f 118/317/80 140/316/80 174/401/80 170/402/80
|
||||
f 140/316/81 120/358/81 172/403/81 174/401/81
|
||||
f 135/294/82 117/348/82 169/393/82 173/295/82
|
||||
f 175/404/83 176/405/83 180/406/83 178/407/83 177/408/83 179/409/83
|
||||
f 107/410/84 81/411/84 175/404/84 179/409/84
|
||||
f 82/412/85 112/205/85 180/208/85 176/413/85
|
||||
f 84/210/86 83/209/86 177/414/86 178/415/86
|
||||
f 81/221/87 82/220/87 176/416/87 175/417/87
|
||||
f 83/418/88 107/410/88 179/409/88 177/408/88
|
||||
l 140 160
|
||||
l 112 158
|
||||
l 135 159
|
||||
l 107 157
|
603
other.lua
Normal file
@ -0,0 +1,603 @@
|
||||
local pgad_rules={{x = 1, y = 0, z = 0},{x =-1, y = 0, z = 0},{x = 0, y = 1, z = 0},{x = 0, y =-1, z = 0},{x = 0, y = 0, z = 1},{x = 0, y = 0, z =-1}}
|
||||
|
||||
|
||||
minetest.register_node("portalgun:cplps1", {
|
||||
description = "Close player portal",
|
||||
tiles = {"portalgun_gray.png"},
|
||||
groups = {mesecon=2,snappy = 3, not_in_creative_inventory=0},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
is_ground_content = false,
|
||||
mesecons = {effector = {
|
||||
action_on = function (pos, node)
|
||||
for i, ob in pairs(minetest.get_objects_inside_radius(pos, 6)) do
|
||||
if ob and ob:is_player() then
|
||||
portal_delete(ob:get_player_name(),0)
|
||||
end
|
||||
end
|
||||
minetest.swap_node(pos, {name="portalgun:cplps2"})
|
||||
minetest.after((2), function(pos)
|
||||
minetest.swap_node(pos, {name="portalgun:cplps1"})
|
||||
end, pos)
|
||||
|
||||
|
||||
return false
|
||||
end,
|
||||
}}
|
||||
})
|
||||
|
||||
|
||||
|
||||
minetest.register_node("portalgun:cplps2", {
|
||||
description = "Close player portal",
|
||||
tiles = {"portalgun_gray.png^[colorize:#ffe85977"},
|
||||
groups = {mesecon=2,snappy = 3, not_in_creative_inventory=1},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
is_ground_content = false,
|
||||
paramtype = "light",
|
||||
light_source = 4,
|
||||
})
|
||||
|
||||
|
||||
|
||||
minetest.register_node("portalgun:sign_v", {
|
||||
description = "Sign V",
|
||||
tiles = {"portalgun_v.png"},
|
||||
inventory_image = "portalgun_v.png",
|
||||
drop="portalgun:sign_x",
|
||||
drawtype = "nodebox",
|
||||
groups = {mesecon=2,snappy = 3, not_in_creative_inventory=1},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
is_ground_content = false,
|
||||
paramtype2 = "facedir",
|
||||
paramtype = "light",
|
||||
light_source = 5,
|
||||
node_box = {
|
||||
type="fixed",
|
||||
fixed={-0.5,-0.5,0.45,0.5,0.5,0.5}},
|
||||
mesecons = {effector = {
|
||||
action_off = function (pos, node)
|
||||
minetest.swap_node(pos, {name="portalgun:sign_x", param2=minetest.get_node(pos).param2})
|
||||
end,
|
||||
}}
|
||||
})
|
||||
|
||||
|
||||
minetest.register_node("portalgun:sign_x", {
|
||||
description = "Sign X",
|
||||
tiles = {"portalgun_x.png"},
|
||||
inventory_image = "portalgun_x.png",
|
||||
drawtype = "nodebox",
|
||||
groups = {mesecon=2,snappy = 3, not_in_creative_inventory=0},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
is_ground_content = false,
|
||||
paramtype2 = "facedir",
|
||||
paramtype = "light",
|
||||
light_source = 3,
|
||||
node_box = {
|
||||
type="fixed",
|
||||
fixed={-0.5,-0.5,0.45,0.5,0.5,0.5}},
|
||||
mesecons = {effector = {
|
||||
action_on = function (pos, node)
|
||||
minetest.swap_node(pos, {name="portalgun:sign_v", param2=minetest.get_node(pos).param2})
|
||||
end,
|
||||
}}
|
||||
})
|
||||
|
||||
|
||||
local portaltarget_sig={
|
||||
{1,"portalgun_blue.png"},
|
||||
{2,"portalgun_orange.png"},
|
||||
}
|
||||
|
||||
for ii = 1, #portaltarget_sig, 1 do
|
||||
|
||||
minetest.register_node("portalgun:portaltarget_" .. portaltarget_sig[ii][1], {
|
||||
description = "Portal target " .. portaltarget_sig[ii][1] ,
|
||||
tiles = {"portalgun_testblock.png^" .. portaltarget_sig[ii][2]},
|
||||
groups = {mesecon = 2,cracky=2},
|
||||
mesecons = {receptor = {state = "off"}},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
is_ground_content = false,
|
||||
paramtype2 = "facedir",
|
||||
paramtype = "light",
|
||||
on_timer = function (pos, elapsed)
|
||||
for i, ob in pairs(minetest.get_objects_inside_radius(pos, 2)) do
|
||||
if ob:get_luaentity() and ob:get_luaentity().portalgun and ob:get_luaentity().project==portaltarget_sig[ii][1] then
|
||||
mesecon.receptor_on(pos)
|
||||
|
||||
return true
|
||||
end
|
||||
end
|
||||
mesecon.receptor_off(pos)
|
||||
return true
|
||||
end,
|
||||
on_construct = function(pos)
|
||||
if not mesecon then return false end
|
||||
minetest.get_node_timer(pos):start(2)
|
||||
end,
|
||||
})
|
||||
end
|
||||
|
||||
|
||||
|
||||
minetest.register_node("portalgun:button", {
|
||||
description = "Button",
|
||||
tiles = {"portalgun_bu.png"},
|
||||
groups = {cracky = 3,mesecon=1},
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
sunlight_propagates = true,
|
||||
selection_box = {type = "fixed",fixed = { -0.2, -0.5, -0.2, 0.2, 0.85, 0.2 }},
|
||||
sounds = default.node_sound_defaults(),
|
||||
mesecons = {receptor = {state = "off"}},
|
||||
on_rightclick = function(pos, node, clicker)
|
||||
mesecon.receptor_on(pos)
|
||||
minetest.get_node_timer(pos):start(2)
|
||||
minetest.sound_play("default_dig_dig_immediate", {pos=pos,max_hear_distance = 10, gain = 1})
|
||||
end,
|
||||
on_timer = function (pos, elapsed)
|
||||
mesecon.receptor_off(pos)
|
||||
end,
|
||||
drawtype = "nodebox",
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.25, -0.5, -0.25, 0.25, 0.7, 0.25},
|
||||
{-0.125, 0.5, -0.125, 0.125, 0.77, 0.125},
|
||||
}}
|
||||
|
||||
|
||||
|
||||
})
|
||||
|
||||
minetest.register_node("portalgun:dmgblock_1", {
|
||||
description = "Damage block (hurts when not active)",
|
||||
tiles = {"portalgun_powerwall.png"},
|
||||
groups = {cracky = 1,mesecon=2},
|
||||
drawtype="glasslike",
|
||||
paramtype="light",
|
||||
alpha = 50,
|
||||
sunlight_propagates = true,
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
walkable=false,
|
||||
damage_per_second = 5,
|
||||
mesecons = {conductor = {
|
||||
state = mesecon.state.off,
|
||||
onstate = "portalgun:dmgblock_2",
|
||||
rules = pgad_rules
|
||||
}},
|
||||
})
|
||||
minetest.register_node("portalgun:dmgblock_2", {
|
||||
description = "Damage block",
|
||||
tiles = {"portalgun_gravity.png"},
|
||||
groups = {mesecon=2,not_in_creative_inventory=1},
|
||||
drawtype="airlike",
|
||||
pointable=false,
|
||||
sunlight_propagates = true,
|
||||
drop="portalgun:dmgblock_1",
|
||||
paramtype="light",
|
||||
walkable=false,
|
||||
mesecons = {conductor = {
|
||||
state = mesecon.state.on,
|
||||
offstate = "portalgun:dmgblock_1",
|
||||
rules = pgad_rules
|
||||
}},
|
||||
})
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
minetest.register_on_respawnplayer(function(player)
|
||||
local name=player:get_player_name()
|
||||
minetest.after(1, function(name)
|
||||
if portalgun.checkpoints[name]~=nil then
|
||||
player:move_to(portalgun.checkpoints[name])
|
||||
end
|
||||
end, name)
|
||||
|
||||
end)
|
||||
minetest.register_on_leaveplayer(function(player)
|
||||
local name=player:get_player_name()
|
||||
if portalgun.checkpoints[name]~=nil then
|
||||
portalgun.checkpoints[name]=nil
|
||||
end
|
||||
end)
|
||||
minetest.register_node("portalgun:autocheckpoint", {
|
||||
description = "Checkpoint (teleports to here on death)",
|
||||
tiles = {"portalgun_checkpoint.png"},
|
||||
groups = {cracky = 3,not_in_creative_inventory=0},
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
light_source = 5,
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
drawtype="nodebox",
|
||||
node_box = {
|
||||
type="fixed",
|
||||
fixed={-0.5,-0.5,-0.5,0.5,-0.4,0.5}},
|
||||
on_construct = function(pos)
|
||||
minetest.get_meta(pos):set_string("infotext","Checkpoint")
|
||||
minetest.get_node_timer(pos):start(2)
|
||||
end,
|
||||
on_timer = function (pos, elapsed)
|
||||
for i, ob in pairs(minetest.get_objects_inside_radius(pos, 1.5)) do
|
||||
if ob:is_player() then
|
||||
local name=ob:get_player_name()
|
||||
if portalgun.checkpoints[name]~=nil then
|
||||
local cp=portalgun.checkpoints[name]
|
||||
if cp.x==pos.x and cp.y==pos.y and cp.z==pos.z then
|
||||
return true
|
||||
end
|
||||
end
|
||||
portal_delete(name,0)
|
||||
portalgun_portal[name]=nil
|
||||
portalgun.checkpoints[name]=pos
|
||||
minetest.sound_play("portalgun_checkpoint", {pos=pos,max_hear_distance = 5, gain = 1})
|
||||
minetest.chat_send_player(name, "<Portalgun> You will spawn here next time you die")
|
||||
end
|
||||
end
|
||||
return true
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_node("portalgun:powerdoor1_1", {
|
||||
description = "Power door",
|
||||
inventory_image = "portalgun_powerwall.png",
|
||||
wield_image = "portalgun_powerwall.png",
|
||||
groups = {mesecon=1,unbreakable = 1,not_in_creative_inventory=0},
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
sunlight_propagates = true,
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
drawtype="nodebox",
|
||||
alpha = 160,
|
||||
node_box = {
|
||||
type="fixed",
|
||||
fixed={-0.5,-0.5,0.4,0.5,0.5,0.5}},
|
||||
tiles = {
|
||||
{
|
||||
name = "portalgun_powerwall1.png",
|
||||
animation = {
|
||||
type = "vertical_frames",
|
||||
aspect_w = 16,
|
||||
aspect_h = 16,
|
||||
length = 0.2,
|
||||
},
|
||||
},
|
||||
},
|
||||
after_place_node = function(pos, placer, itemstack)
|
||||
local name=placer:get_player_name()
|
||||
minetest.get_meta(pos):set_string("owner",name)
|
||||
local p2=minetest.get_node(pos)
|
||||
pos.y=pos.y+1
|
||||
local n=minetest.get_node(pos)
|
||||
if n.name=="air" then
|
||||
minetest.set_node(pos,{name="portalgun:powerdoor1_2",param2=p2.param2})
|
||||
minetest.get_meta(pos):set_string("owner",name)
|
||||
end
|
||||
end,
|
||||
on_punch = function(pos, node, player, pointed_thing)
|
||||
local meta = minetest.get_meta(pos);
|
||||
if meta:get_string("owner")==player:get_player_name() then
|
||||
minetest.node_dig(pos,minetest.get_node(pos),player)
|
||||
pos.y=pos.y+1
|
||||
local un=minetest.get_node(pos).name
|
||||
if un=="portalgun:powerdoor1_2" then
|
||||
minetest.set_node(pos,{name="air"})
|
||||
end
|
||||
pos.y=pos.y-1
|
||||
return true
|
||||
end
|
||||
end,
|
||||
mesecons = {conductor = {
|
||||
state = mesecon.state.off,
|
||||
onstate = "portalgun:powerdoor2_1",
|
||||
rules = pgad_rules
|
||||
}},
|
||||
})
|
||||
|
||||
minetest.register_node("portalgun:powerdoor1_2", {
|
||||
description = "Power door",
|
||||
inventory_image = "portalgun_powerwall.png",
|
||||
groups = {mesecon=1,unbreakable = 1,not_in_creative_inventory=1},
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
sunlight_propagates = true,
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
drawtype="nodebox",
|
||||
alpha = 160,
|
||||
node_box = {
|
||||
type="fixed",
|
||||
fixed={-0.5,-0.5,0.4,0.5,0.5,0.5}},
|
||||
tiles = {
|
||||
{
|
||||
name = "portalgun_powerwall1.png",
|
||||
animation = {
|
||||
type = "vertical_frames",
|
||||
aspect_w = 16,
|
||||
aspect_h = 16,
|
||||
length = 0.2,
|
||||
},
|
||||
},
|
||||
},
|
||||
on_punch = function(pos, node, player, pointed_thing)
|
||||
local meta = minetest.get_meta(pos);
|
||||
if meta:get_string("owner")==player:get_player_name() then
|
||||
minetest.set_node(pos,{name="air"})
|
||||
pos.y=pos.y-1
|
||||
local un=minetest.get_node(pos).name
|
||||
if un=="portalgun:powerdoor1_1" then
|
||||
minetest.node_dig(pos,minetest.get_node(pos),player)
|
||||
end
|
||||
pos.y=pos.y+1
|
||||
return true
|
||||
end
|
||||
end,
|
||||
mesecons = {conductor = {
|
||||
state = mesecon.state.off,
|
||||
onstate = "portalgun:powerdoor2_2",
|
||||
rules = pgad_rules
|
||||
}},
|
||||
})
|
||||
|
||||
minetest.register_node("portalgun:powerdoor2_1", {
|
||||
description = "Power door",
|
||||
inventory_image = "portalgun_powerwall.png",
|
||||
groups = {unbreakable=1,mesecon=1,not_in_creative_inventory=1},
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
drawtype="airlike",
|
||||
walkable = false,
|
||||
pointable = false,
|
||||
diggable = false,
|
||||
mesecons = {conductor = {
|
||||
state = mesecon.state.on,
|
||||
offstate = "portalgun:powerdoor1_1",
|
||||
rules = pgad_rules
|
||||
}},
|
||||
})
|
||||
|
||||
minetest.register_node("portalgun:powerdoor2_2", {
|
||||
description = "Power door",
|
||||
inventory_image = "portalgun_powerwall.png",
|
||||
groups = {unbreakable=1,mesecon=1,not_in_creative_inventory=1},
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
drawtype="airlike",
|
||||
walkable = false,
|
||||
pointable = false,
|
||||
diggable = false,
|
||||
mesecons = {conductor = {
|
||||
state = mesecon.state.on,
|
||||
offstate = "portalgun:powerdoor1_2",
|
||||
rules = pgad_rules
|
||||
}},
|
||||
})
|
||||
|
||||
|
||||
minetest.register_node("portalgun:delayer", {
|
||||
description = "Delayer (Punsh to change time)",
|
||||
tiles = {"portalgun_delayer.png","portalgun_testblock.png"},
|
||||
groups = {dig_immediate = 2,mesecon=1},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
drawtype="nodebox",
|
||||
node_box = {
|
||||
type="fixed",
|
||||
fixed={-0.5,-0.5,-0.5,0.5,-0.4,0.5}},
|
||||
on_punch = function(pos, node, player, pointed_thing)
|
||||
if minetest.is_protected(pos, player:get_player_name())==false then
|
||||
local meta = minetest.get_meta(pos)
|
||||
local time=meta:get_int("time")
|
||||
if time>=10 then time=0 end
|
||||
meta:set_int("time",time+1)
|
||||
meta:set_string("infotext","Delayer (" .. (time+1) ..")")
|
||||
end
|
||||
end,
|
||||
|
||||
|
||||
on_construct = function(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_int("time",1)
|
||||
meta:set_string("infotext","Delayer (1)")
|
||||
meta:set_int("case",0)
|
||||
end,
|
||||
on_timer = function (pos, elapsed)
|
||||
local meta = minetest.get_meta(pos)
|
||||
if meta:get_int("case")==2 then
|
||||
meta:set_int("case",0)
|
||||
mesecon.receptor_off(pos)
|
||||
end
|
||||
if meta:get_int("case")==1 then
|
||||
meta:set_int("case",2)
|
||||
mesecon.receptor_on(pos)
|
||||
minetest.get_node_timer(pos):start(meta:get_int("time"))
|
||||
end
|
||||
return false
|
||||
end,
|
||||
|
||||
mesecons = {effector = {
|
||||
action_on = function (pos, node)
|
||||
local meta = minetest.get_meta(pos)
|
||||
if meta:get_int("case")==0 then
|
||||
meta:set_int("case",1)
|
||||
minetest.get_node_timer(pos):start(meta:get_int("time"))
|
||||
end
|
||||
|
||||
end,
|
||||
}}
|
||||
})
|
||||
|
||||
|
||||
minetest.register_node("portalgun:testblocks", {
|
||||
description = "Trapblock",
|
||||
tiles = {"portalgun_testblock.png"},
|
||||
groups = {cracky = 1,mesecon=2},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
mesecons = {conductor = {
|
||||
state = mesecon.state.off,
|
||||
onstate = "portalgun:testblocks2",
|
||||
rules = pgad_rules
|
||||
}},
|
||||
})
|
||||
minetest.register_node("portalgun:testblocks2", {
|
||||
description = "Damage block",
|
||||
tiles = {"portalgun_gravity.png"},
|
||||
groups = {mesecon=2,not_in_creative_inventory=1},
|
||||
drawtype="airlike",
|
||||
pointable=false,
|
||||
sunlight_propagates = true,
|
||||
drop="portalgun:testblocks",
|
||||
paramtype="light",
|
||||
walkable=false,
|
||||
mesecons = {conductor = {
|
||||
state = mesecon.state.on,
|
||||
offstate = "portalgun:testblocks",
|
||||
rules = pgad_rules
|
||||
}},
|
||||
})
|
||||
|
||||
minetest.register_node("portalgun:door_1", {
|
||||
description = "Mesecon Door",
|
||||
drop="portalgun:door_1",
|
||||
drawtype = "nodebox",
|
||||
paramtype = "light",
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.5, -0.5, -0.125, 0.5, 0.5, 0.125},
|
||||
}
|
||||
},
|
||||
tiles = {"portalgun_testblock.png"},
|
||||
groups = {mesecon=1,cracky = 1, level = 2, not_in_creative_inventory=0},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
sunlight_propagates = true,
|
||||
is_ground_content = false,
|
||||
after_place_node = function(pos, placer, itemstack, pointed_thing)
|
||||
local p={x=pos.x,y=pos.y+1,z=pos.z}
|
||||
if minetest.registered_nodes[minetest.get_node(p).name].walkable then
|
||||
return false
|
||||
else
|
||||
minetest.set_node(p, {name = "portalgun:door_2",param2=minetest.get_node(pos).param2})
|
||||
end
|
||||
end,
|
||||
|
||||
|
||||
|
||||
mesecons = {effector = {
|
||||
action_on = function (pos, node)
|
||||
local p={x=pos.x,y=pos.y+1,z=pos.z}
|
||||
minetest.swap_node(p, {name="portalgun:door_open_2", param2=minetest.get_node(pos).param2})
|
||||
minetest.swap_node(pos, {name="portalgun:door_open_1", param2=minetest.get_node(pos).param2})
|
||||
minetest.sound_play("portalgun_door", {pos=pos, gain = 1, max_hear_distance = 5})
|
||||
end,
|
||||
}},
|
||||
after_dig_node = function (pos, name, digger)
|
||||
minetest.set_node({x=pos.x,y=pos.y+1,z=pos.z}, {name = "air"})
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_node("portalgun:door_2", {
|
||||
description = "Door 2-1",
|
||||
drawtype = "nodebox",
|
||||
drop="portalgun:door_1",
|
||||
paramtype = "light",
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.5, -0.5, -0.125, 0.5, 0.5, 0.125},
|
||||
}
|
||||
},
|
||||
tiles = {"portalgun_testblock.png"},
|
||||
groups = {mesecon=1,cracky = 1, level = 2, not_in_creative_inventory=1},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
sunlight_propagates = true,
|
||||
is_ground_content = false,
|
||||
mesecons = {effector = {
|
||||
action_on = function (pos, node)
|
||||
local p={x=pos.x,y=pos.y-1,z=pos.z}
|
||||
minetest.swap_node(p, {name="portalgun:door_open_1", param2=minetest.get_node(pos).param2})
|
||||
minetest.swap_node(pos, {name="portalgun:door_open_2", param2=minetest.get_node(pos).param2})
|
||||
minetest.sound_play("portalgun_door", {pos=pos, gain = 1, max_hear_distance = 5})
|
||||
|
||||
end,
|
||||
}},
|
||||
after_dig_node = function (pos, name, digger)
|
||||
minetest.set_node({x=pos.x,y=pos.y-1,z=pos.z}, {name = "air"})
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_node("portalgun:door_open_1", {
|
||||
description = "Door (open) 2-o-1",
|
||||
drop="portalgun:door_1",
|
||||
drawtype = "nodebox",
|
||||
paramtype = "light",
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{0.41, -0.5, -0.124, 1.41, 0.5, 0.125},
|
||||
}
|
||||
},
|
||||
tiles = {"portalgun_testblock.png"},
|
||||
groups = {mesecon=1,cracky = 1, level = 2, not_in_creative_inventory=1},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
sunlight_propagates = true,
|
||||
is_ground_content = false,
|
||||
after_dig_node = function (pos, name, digger)
|
||||
minetest.set_node({x=pos.x,y=pos.y+1,z=pos.z}, {name = "air"})
|
||||
end,
|
||||
mesecons = {effector = {
|
||||
action_off = function (pos, node)
|
||||
local p={x=pos.x,y=pos.y+1,z=pos.z}
|
||||
minetest.sound_play("portalgun_door", {pos=pos, gain = 1, max_hear_distance = 5})
|
||||
minetest.swap_node(p, {name="portalgun:door_2", param2=minetest.get_node(pos).param2})
|
||||
minetest.swap_node(pos, {name="portalgun:door_1", param2=minetest.get_node(pos).param2})
|
||||
end,
|
||||
}}
|
||||
})
|
||||
|
||||
minetest.register_node("portalgun:door_open_2", {
|
||||
description = "Door (open) 2-o-1",
|
||||
drawtype = "nodebox",
|
||||
drop="portalgun:door_1",
|
||||
paramtype = "light",
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{0.41, -0.5, -0.124, 1.41, 0.5, 0.125},
|
||||
}
|
||||
},
|
||||
tiles = {"portalgun_testblock.png"},
|
||||
groups = {mesecon=1,cracky = 1, level = 2, not_in_creative_inventory=1},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
sunlight_propagates = true,
|
||||
is_ground_content = false,
|
||||
after_dig_node = function (pos, name, digger)
|
||||
minetest.set_node({x=pos.x,y=pos.y-1,z=pos.z}, {name = "air"})
|
||||
end,
|
||||
mesecons = {effector = {
|
||||
action_off = function (pos, node)
|
||||
local p={x=pos.x,y=pos.y-1,z=pos.z}
|
||||
minetest.sound_play("portalgun_door", {pos=pos, gain = 1, max_hear_distance = 5})
|
||||
minetest.swap_node(p, {name="portalgun:door_1", param2=minetest.get_node(pos).param2})
|
||||
minetest.swap_node(pos, {name="portalgun:door_2", param2=minetest.get_node(pos).param2})
|
||||
end,
|
||||
}}
|
||||
})
|
137
powerball.lua
Normal file
@ -0,0 +1,137 @@
|
||||
minetest.register_node("portalgun:powerballspawner", {
|
||||
description = "Power ball spawner" ,
|
||||
tiles = {"default_steel_block.png","default_steel_block.png","default_steel_block.png","default_steel_block.png","default_steel_block.png","portalgun_powerballspawner.png"},
|
||||
groups = {cracky=2},
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
is_ground_content = false,
|
||||
paramtype2 = "facedir",
|
||||
on_place = minetest.rotate_node,
|
||||
on_construct = function(pos)
|
||||
minetest.get_node_timer(pos):start(10)
|
||||
end,
|
||||
on_timer = function (pos, elapsed)
|
||||
local dir=minetest.get_node(pos).param2
|
||||
local v={x=0, y=0, z=0}
|
||||
if dir==0 then v.z=-1
|
||||
elseif dir==1 then v.x=-1
|
||||
elseif dir==2 then v.z=1
|
||||
elseif dir==3 then v.x=1
|
||||
elseif dir==8 then v.y=-1
|
||||
elseif dir==4 then v.y=1
|
||||
end
|
||||
local pv={x=pos.x+v.x, y=pos.y+v.y, z=pos.z+v.z}
|
||||
portalgun.new=1
|
||||
local m=minetest.add_entity(pv, "portalgun:powerball")
|
||||
m:set_velocity({x=v.x*4, y=v.y*4, z=v.z*4})
|
||||
return true
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_node("portalgun:powerballspawner2", {
|
||||
description = "Power ball spawner (spawn on activate)" ,
|
||||
tiles = {"default_steel_block.png","default_steel_block.png","default_steel_block.png","default_steel_block.png","default_steel_block.png","portalgun_powerballspawner.png^[colorize:#aaaa0055"},
|
||||
groups = {cracky=2,mesecon=1},
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
is_ground_content = false,
|
||||
paramtype2 = "facedir",
|
||||
on_place = minetest.rotate_node,
|
||||
mesecons = {effector = {
|
||||
action_on = function (pos, node)
|
||||
local dir=minetest.get_node(pos).param2
|
||||
local v={x=0, y=0, z=0}
|
||||
if dir==0 then v.z=-1
|
||||
elseif dir==1 then v.x=-1
|
||||
elseif dir==2 then v.z=1
|
||||
elseif dir==3 then v.x=1
|
||||
elseif dir==8 then v.y=-1
|
||||
elseif dir==4 then v.y=1
|
||||
end
|
||||
local pv={x=pos.x+v.x, y=pos.y+v.y, z=pos.z+v.z}
|
||||
portalgun.new=1
|
||||
local m=minetest.add_entity(pv, "portalgun:powerball")
|
||||
m:set_velocity({x=v.x*4, y=v.y*4, z=v.z*4})
|
||||
end
|
||||
}}
|
||||
})
|
||||
|
||||
|
||||
minetest.register_entity("portalgun:powerball",{
|
||||
hp_max = 1000,
|
||||
physical = true,
|
||||
weight = 0,
|
||||
collisionbox = {-0.4,-0.4,-0.4, 0.4,0.4,0.4},
|
||||
visual = "sprite",
|
||||
visual_size = {x=1.1, y=1.1},
|
||||
textures = {"portalgun_powrball.png"},
|
||||
initial_sprite_basepos = {x=0, y=0},
|
||||
is_visible = true,
|
||||
makes_footstep_sound = false,
|
||||
automatic_rotate = false,
|
||||
portalgun=2,
|
||||
powerball=1,
|
||||
on_activate= function(self, staticdata)
|
||||
if portalgun.new==0 then
|
||||
self.object:remove()
|
||||
return self
|
||||
end
|
||||
portalgun.new=0
|
||||
local pos=self.object:get_pos()
|
||||
self.sound=minetest.sound_play("portalgun_powerball", {pos=pos,max_hear_distance = 10, gain = 0.5})
|
||||
minetest.sound_play("portalgun_powerballbonce", {pos=pos,max_hear_distance = 10, gain = 1})
|
||||
end,
|
||||
on_step= function(self, dtime)
|
||||
self.timer=self.timer+dtime
|
||||
if self.timer<0.2 then return self end
|
||||
self.timer=0
|
||||
local pos=self.object:get_pos()
|
||||
for i, ob in pairs(minetest.get_objects_inside_radius(pos, 2)) do
|
||||
if ob:is_player() or (ob:get_luaentity() and ob:get_luaentity().portalgun~=1 and ob:get_luaentity().wsc==nil and ob:get_luaentity().powerball~=1) then
|
||||
ob:set_hp(0)
|
||||
ob:punch(ob, {full_punch_interval=1.0,damage_groups={fleshy=9000}}, "default:bronze_pick", nil)
|
||||
|
||||
end
|
||||
end
|
||||
self.timer2=self.timer2+1
|
||||
self.timer3=self.timer3+1
|
||||
if self.timer3>=9 then
|
||||
self.timer3=0
|
||||
minetest.sound_stop(self.sound)
|
||||
self.sound=minetest.sound_play("portalgun_powerball", {pos=pos,max_hear_distance = 10, gain = 0.5})
|
||||
end
|
||||
if self.timer2>40 then
|
||||
minetest.sound_stop(self.sound)
|
||||
self.object:set_hp(0)
|
||||
self.object:punch(self.object, {full_punch_interval=1.0,damage_groups={fleshy=9000}}, "default:bronze_pick", nil)
|
||||
return self
|
||||
end
|
||||
local v=self.object:get_velocity()
|
||||
local nextn={x=pos.x+(v.x)/3, y=pos.y+(v.y)/3, z=pos.z+(v.z)/3}
|
||||
local nname=minetest.get_node(nextn).name
|
||||
if minetest.registered_nodes[nname].walkable then
|
||||
|
||||
if nname=="portalgun:powerballtarget" and mesecon then
|
||||
mesecon.receptor_on(nextn)
|
||||
minetest.get_node_timer(nextn):start(5)
|
||||
end
|
||||
self.object:set_velocity({x=v.x*-1, y=v.y*-1, z=v.z*-1})
|
||||
minetest.sound_play("portalgun_powerballbonce", {pos=pos,max_hear_distance = 10, gain = 1})
|
||||
end
|
||||
end,
|
||||
timer=0,
|
||||
timer2=0,
|
||||
timer3=0,
|
||||
sound={}
|
||||
})
|
||||
|
||||
minetest.register_node("portalgun:powerballtarget", {
|
||||
description = "Power ball target" ,
|
||||
tiles = {"portalgun_powerballstarget.png"},
|
||||
groups = {mesecon = 2,cracky=2},
|
||||
mesecons = {receptor = {state = "off"}},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
is_ground_content = false,
|
||||
on_timer = function (pos, elapsed)
|
||||
mesecon.receptor_off(pos)
|
||||
return false
|
||||
end,
|
||||
})
|
BIN
screenshot.png
Normal file
After Width: | Height: | Size: 45 KiB |
BIN
sounds/portalgun_bullet1.ogg
Normal file
BIN
sounds/portalgun_checkpoint.ogg
Normal file
BIN
sounds/portalgun_closeportals.ogg
Normal file
BIN
sounds/portalgun_door.ogg
Normal file
BIN
sounds/portalgun_error.ogg
Normal file
BIN
sounds/portalgun_mode.ogg
Normal file
BIN
sounds/portalgun_portalblue.ogg
Normal file
BIN
sounds/portalgun_portalorange.ogg
Normal file
BIN
sounds/portalgun_powerball.ogg
Normal file
BIN
sounds/portalgun_powerballbonce.ogg
Normal file
BIN
sounds/portalgun_teleport.ogg
Normal file
549
stuff.lua
Normal file
@ -0,0 +1,549 @@
|
||||
local snuma=1
|
||||
for ii = 0, 9, 1 do
|
||||
if ii==1 then snuma=0 end
|
||||
minetest.register_node("portalgun:sign_numa".. ii, {
|
||||
description = "Sign number (" .. ii ..")",
|
||||
tiles = {"portalgun_snum" .. ii ..".png"},
|
||||
drop="portalgun:sign_numa1",
|
||||
drawtype = "nodebox",
|
||||
groups = {mesecon=2,portalnuma=1,dig_immediate = 3, not_in_creative_inventory=snuma},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
is_ground_content = false,
|
||||
paramtype2 = "facedir",
|
||||
paramtype = "light",
|
||||
light_source = 3,
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.5, -0.5, 0.4375, 0, 0.5, 0.5},
|
||||
}
|
||||
},
|
||||
after_place_node = function(pos, placer, itemstack)
|
||||
local param2=minetest.get_node(pos).param2
|
||||
local pos2=portalgun_param2(pos,param2)
|
||||
if minetest.get_node(pos2) and minetest.get_node(pos2).name=="air" then
|
||||
minetest.set_node(pos2,{name="portalgun:sign_numb1",param2=param2})
|
||||
minetest.swap_node(pos, {name="portalgun:sign_numa0", param2=minetest.get_node(pos).param2})
|
||||
end
|
||||
end,
|
||||
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
|
||||
if not minetest.is_protected(pos,clicker:get_player_name()) then
|
||||
local iin=ii+1
|
||||
if iin==10 then iin=0 end
|
||||
minetest.swap_node(pos, {name="portalgun:sign_numa".. iin, param2=minetest.get_node(pos).param2})
|
||||
end
|
||||
end,
|
||||
on_punch = function(pos, node, player, pointed_thing)
|
||||
local param2=minetest.get_node(pos).param2
|
||||
local pos2=portalgun_param2(pos,param2)
|
||||
local node=minetest.get_node(pos2)
|
||||
if node and minetest.get_node_group(node.name, "portalnumb")>0 then
|
||||
minetest.set_node(pos2, {name = "air"})
|
||||
end
|
||||
end,
|
||||
|
||||
|
||||
})
|
||||
if snuma==0 then snuma=1 end
|
||||
minetest.register_node("portalgun:sign_numb".. ii, {
|
||||
description = "Sign number",
|
||||
tiles = {"portalgun_snum" .. ii ..".png"},
|
||||
drop="portalgun:sign_numa1",
|
||||
drawtype = "nodebox",
|
||||
groups = {mesecon=2,portalnumb=1,dig_immediate = 3, not_in_creative_inventory=1},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
is_ground_content = false,
|
||||
paramtype2 = "facedir",
|
||||
paramtype = "light",
|
||||
light_source = 3,
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-1, -0.5, 0.4375, -0.5, 0.5, 0.5},
|
||||
}
|
||||
},
|
||||
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
|
||||
if not minetest.is_protected(pos,clicker:get_player_name()) then
|
||||
local iin=ii+1
|
||||
if iin==10 then iin=0 end
|
||||
minetest.swap_node(pos, {name="portalgun:sign_numb".. iin, param2=minetest.get_node(pos).param2})
|
||||
end
|
||||
end,
|
||||
on_punch = function(pos, node, player, pointed_thing)
|
||||
local param2=minetest.get_node(pos).param2
|
||||
local pos2=portalgun_param2(pos,param2,true)
|
||||
local node=minetest.get_node(pos2)
|
||||
if node and minetest.get_node_group(node.name, "portalnuma")>0 then
|
||||
minetest.set_node(pos2, {name = "air"})
|
||||
end
|
||||
end,
|
||||
})
|
||||
end
|
||||
|
||||
minetest.register_node("portalgun:turretgun2", {
|
||||
description = "Sentry turret",
|
||||
groups = {cracky=3,not_in_creative_inventory=1},
|
||||
drop="portalgun:turretgun",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
sunlight_propagates = true,
|
||||
sounds = default.node_sound_defaults(),
|
||||
tiles = {"portalgun_sentry_turret.png"},
|
||||
drawtype = "mesh",
|
||||
mesh="torret2.obj",
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.3, -0.5, -0.3, 0.3, 1,0.3},
|
||||
}
|
||||
},
|
||||
on_timer=function(pos, elapsed)
|
||||
local p=minetest.get_node(pos).param2
|
||||
local pos1={x=pos.x,y=pos.y+0.5,z=pos.z}
|
||||
local d
|
||||
for i, ob in pairs(minetest.get_objects_inside_radius(pos, 10)) do
|
||||
if portalgun_visiable(pos1,ob) and (ob:is_player() or (ob:get_luaentity() and (ob:get_luaentity().type or ob:get_luaentity().portalgun==nil))) then
|
||||
local a=ob:get_pos()
|
||||
if a.y<pos.y+2 and a.y>pos.y-1 then
|
||||
a={x=math.floor(a.x),y=math.floor(a.y),z=math.floor(a.z)}
|
||||
if p==3 and a.x>pos.x and a.z==pos.z then
|
||||
d={x=20,y=0,z=0}
|
||||
break
|
||||
elseif p==1 and a.x<pos.x and a.z==pos.z then
|
||||
d={x=-20,y=0,z=0}
|
||||
break
|
||||
elseif p==2 and a.z>pos.z and a.x==pos.x then
|
||||
d={x=0,y=0,z=20}
|
||||
break
|
||||
elseif p==0 and a.z<pos.z and a.x==pos.x then
|
||||
d={x=0,y=0,z=-20}
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
local m=minetest.get_meta(pos)
|
||||
if d then
|
||||
m:set_int("stop",0)
|
||||
minetest.add_entity(pos1, "portalgun:bullet1"):set_velocity(d)
|
||||
minetest.sound_play("portalgun_bullet1", {pos=pos, gain = 1, max_hear_distance = 15})
|
||||
for i=2,5,1 do
|
||||
minetest.after(i*0.1, function(pos,d)
|
||||
minetest.add_entity(pos1, "portalgun:bullet1"):set_velocity(d)
|
||||
minetest.sound_play("portalgun_bullet1", {pos=pos, gain = 1, max_hear_distance = 15})
|
||||
end, pos,d)
|
||||
end
|
||||
else
|
||||
if m:get_int("stop")==1 then
|
||||
minetest.set_node(pos,{name="portalgun:turretgun",param2=p})
|
||||
minetest.get_node_timer(pos):start(0.2)
|
||||
else
|
||||
m:set_int("stop",1)
|
||||
end
|
||||
end
|
||||
return true
|
||||
end
|
||||
})
|
||||
|
||||
|
||||
minetest.register_node("portalgun:turretgun", {
|
||||
description = "Sentry turret",
|
||||
groups = {cracky=3},
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
sunlight_propagates = true,
|
||||
sounds = default.node_sound_defaults(),
|
||||
tiles = {"portalgun_sentry_turret.png"},
|
||||
drawtype = "mesh",
|
||||
mesh="torret1.obj",
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.3, -0.5, -0.3, 0.3, 1,0.3},
|
||||
}
|
||||
},
|
||||
on_construct = function(pos)
|
||||
minetest.get_node_timer(pos):start(0.2)
|
||||
end,
|
||||
on_timer=function(pos, elapsed)
|
||||
local p=minetest.get_node(pos).param2
|
||||
local pos1={x=pos.x,y=pos.y+0.5,z=pos.z}
|
||||
local d
|
||||
for i, ob in pairs(minetest.get_objects_inside_radius(pos1, 10)) do
|
||||
if portalgun_visiable(pos1,ob) and (ob:is_player() or (ob:get_luaentity() and (ob:get_luaentity().type or ob:get_luaentity().portalgun==nil))) then
|
||||
local a=ob:get_pos()
|
||||
if a.y<pos.y+2 and a.y>pos.y-1 then
|
||||
a={x=math.floor(a.x),y=math.floor(a.y),z=math.floor(a.z)}
|
||||
if p==3 and a.x>pos.x and a.z==pos.z then
|
||||
d={x=20,y=0,z=0}
|
||||
break
|
||||
elseif p==1 and a.x<pos.x and a.z==pos.z then
|
||||
d={x=-20,y=0,z=0}
|
||||
break
|
||||
elseif p==2 and a.z>pos.z and a.x==pos.x then
|
||||
d={x=0,y=0,z=20}
|
||||
break
|
||||
elseif p==0 and a.z<pos.z and a.x==pos.x then
|
||||
d={x=0,y=0,z=-20}
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if d then
|
||||
minetest.add_entity(pos1, "portalgun:bullet1"):set_velocity(d)
|
||||
minetest.set_node(pos,{name="portalgun:turretgun2",param2=p})
|
||||
minetest.get_node_timer(pos):start(1)
|
||||
minetest.sound_play("portalgun_bullet1", {pos=pos, gain = 1, max_hear_distance = 15})
|
||||
for i=2,5,1 do
|
||||
minetest.after(i*0.1, function(pos,d)
|
||||
minetest.add_entity(pos1, "portalgun:bullet1"):set_velocity(d)
|
||||
minetest.sound_play("portalgun_bullet1", {pos=pos, gain = 1, max_hear_distance = 15})
|
||||
end, pos,d)
|
||||
end
|
||||
end
|
||||
return true
|
||||
end
|
||||
})
|
||||
|
||||
|
||||
minetest.register_node("portalgun:warntape", {
|
||||
description = "Warntape",
|
||||
groups = {dig_immediate = 3,not_in_creative_inventory=0},
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
sunlight_propagates = true,
|
||||
sounds = default.node_sound_defaults(),
|
||||
tiles = {"portalgun_warntape.png",},
|
||||
walkable = false,
|
||||
drawtype = "nodebox",
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.5, -0.5, 0.3125, 0.5, -0.4375, 0.5},
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
minetest.register_node("portalgun:toxwater_1", {
|
||||
description = "Toxic water",
|
||||
drawtype = "liquid",
|
||||
tiles = {"portalgun_toxwat.png"},
|
||||
post_effect_color = {a = 200, r = 119, g = 70, b = 16},
|
||||
alpha = 190,
|
||||
paramtype = "light",
|
||||
walkable = false,
|
||||
pointable = false,
|
||||
diggable = false,
|
||||
buildable_to = true,
|
||||
is_ground_content = false,
|
||||
drop = "",
|
||||
drowning = 1,
|
||||
damage_per_second = 20,
|
||||
liquidtype = "source",
|
||||
liquid_alternative_flowing = "portalgun:toxwater_2",
|
||||
liquid_alternative_source = "portalgun:toxwater_1",
|
||||
liquid_viscosity = 2,
|
||||
liquid_renewable = false,
|
||||
liquid_range = 3,
|
||||
post_effect_color = {a = 200, r = 119, g = 70, b = 16},
|
||||
groups = {water = 3, liquid = 3},
|
||||
sounds = default.node_sound_water_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node("portalgun:toxwater_2", {
|
||||
description = "Toxic water 2",
|
||||
drawtype = "flowingliquid",
|
||||
tiles = {"portalgun_toxwat.png"},
|
||||
tiles = {name = "portalgun_toxwat.png",backface_culling=false},
|
||||
special_tiles = {{name = "portalgun_toxwat.png",backface_culling=true},{name = "portalgun_toxwat.png",backface_culling=false}},
|
||||
alpha = 190,
|
||||
paramtype = "light",
|
||||
paramtype2 = "flowingliquid",
|
||||
walkable = false,
|
||||
pointable = false,
|
||||
diggable = false,
|
||||
buildable_to = true,
|
||||
is_ground_content = false,
|
||||
drop = "",
|
||||
drowning = 1,
|
||||
damage_per_second = 4,
|
||||
liquidtype = "flowing",
|
||||
liquid_alternative_flowing = "portalgun:toxwater_2",
|
||||
liquid_alternative_source = "portalgun:toxwater_1",
|
||||
liquid_viscosity = 2,
|
||||
liquid_renewable = false,
|
||||
liquid_range = 3,
|
||||
post_effect_color = {a = 200, r = 119, g = 70, b = 16},
|
||||
groups = {water = 3, liquid = 3, not_in_creative_inventory = 1},
|
||||
sounds = default.node_sound_water_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_tool("portalgun:ed", {
|
||||
description = "Entity Destroyer",
|
||||
inventory_image = "portalgun_edestroyer.png",
|
||||
range = 15,
|
||||
on_use = function(itemstack, user, pointed_thing)
|
||||
local pos=user:get_pos()
|
||||
if pointed_thing.type=="node" then
|
||||
pos=pointed_thing.above
|
||||
end
|
||||
if pointed_thing.type=="object" then
|
||||
pos=pointed_thing.ref:get_pos()
|
||||
end
|
||||
local name=user:get_player_name()
|
||||
if minetest.check_player_privs(name, {kick=true})==false then
|
||||
minetest.chat_send_player(name, "You need the kick privilege to use this tool!")
|
||||
return itemstack
|
||||
end
|
||||
for ii, ob in pairs(minetest.get_objects_inside_radius(pos, 7)) do
|
||||
if ob:get_luaentity() then
|
||||
ob:set_hp(0)
|
||||
ob:punch(ob, {full_punch_interval=1.0,damage_groups={fleshy=9000}}, "default:bronze_pick", nil)
|
||||
end
|
||||
end
|
||||
return itemstack
|
||||
end
|
||||
})
|
||||
|
||||
minetest.register_node("portalgun:cake", {
|
||||
description = "Cake",
|
||||
groups = {dig_immediate = 3,not_in_creative_inventory=0},
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
selection_box = {type = "fixed",fixed = { -0.3, -0.5, -0.3, 0.3, 0, 0.3 }},
|
||||
sounds = default.node_sound_defaults(),
|
||||
tiles = {
|
||||
"default_dirt.png^portalgun_cake1.png",
|
||||
"default_dirt.png^portalgun_cake2.png",
|
||||
},
|
||||
drawtype = "nodebox",
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.3125, -0.5, 0.375, 0.3125, -0.125, 0.4375},
|
||||
{-0.3125, -0.5, -0.4375, 0.3125, -0.125, -0.375},
|
||||
{-0.4375, -0.5, -0.3125, -0.375, -0.125, 0.3125},
|
||||
{0.375, -0.5, -0.3125, 0.4375, -0.125, 0.3125},
|
||||
{-0.375, -0.5, -0.375, 0.375, -0.125, 0.375},
|
||||
{-0.25, -0.5, 0.4375, 0.25, -0.125, 0.5},
|
||||
{-0.25, -0.5, -0.5, 0.25, -0.125, -0.4375},
|
||||
{0.4375, -0.5, -0.25, 0.5, -0.125, 0.25},
|
||||
{-0.5, -0.5, -0.25, -0.4375, -0.125, 0.25},
|
||||
{0, -0.125, -0.0625, 0.0625, 0.1875, 0},
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
minetest.register_node("portalgun:testblock", {
|
||||
description = "Test block",
|
||||
tiles = {"portalgun_testblock.png"},
|
||||
groups = {cracky = 1},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node("portalgun:apb", {
|
||||
description = "Anti portal block",
|
||||
tiles = {"portalgun_testblock.png^[colorize:#ffffffaa"},
|
||||
groups = {cracky = 3,antiportal=1},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node("portalgun:apg", {
|
||||
description = "Anti portal glass",
|
||||
drawtype="glasslike",
|
||||
paramtype="light",
|
||||
sunlight_propagates = true,
|
||||
tiles = {"default_glass.png^[colorize:#ffffffaa"},
|
||||
groups = {cracky = 1,antiportal=1},
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
})
|
||||
minetest.register_node("portalgun:hard_glass", {
|
||||
description = "Hard glass",
|
||||
drawtype="glasslike",
|
||||
paramtype="light",
|
||||
sunlight_propagates = true,
|
||||
tiles = {"default_glass.png^[colorize:#ddddddaa"},
|
||||
groups = {cracky = 1},
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
})
|
||||
|
||||
function portalgun_visiable(pos,ob)
|
||||
if ob==nil or ob:get_pos()==nil or ob:get_pos().y==nil then return false end
|
||||
local ta=ob:get_pos()
|
||||
local v = {x = pos.x - ta.x, y = pos.y - ta.y-1, z = pos.z - ta.z}
|
||||
v.y=v.y-1
|
||||
local amount = (v.x ^ 2 + v.y ^ 2 + v.z ^ 2) ^ 0.5
|
||||
local d=math.sqrt((pos.x-ta.x)*(pos.x-ta.x) + (pos.y-ta.y)*(pos.y-ta.y)+(pos.z-ta.z)*(pos.z-ta.z))
|
||||
v.x = (v.x / amount)*-1
|
||||
v.y = (v.y / amount)*-1
|
||||
v.z = (v.z / amount)*-1
|
||||
for i=1,d,1 do
|
||||
local node=minetest.registered_nodes[minetest.get_node({x=pos.x+(v.x*i),y=pos.y+(v.y*i),z=pos.z+(v.z*i)}).name]
|
||||
if node.walkable then
|
||||
return false
|
||||
end
|
||||
end
|
||||
return true
|
||||
end
|
||||
|
||||
function portalgun_round(x)
|
||||
if x%2 ~= 0.5 then
|
||||
return math.floor(x+0.5)
|
||||
end
|
||||
return x-0.5
|
||||
end
|
||||
|
||||
|
||||
function portalgun_ra2shoot(pos,ob)
|
||||
local op=ob:get_pos()
|
||||
local m=minetest.get_meta(pos)
|
||||
local x=m:get_int("x")
|
||||
local y=m:get_int("y")
|
||||
local z=m:get_int("z")
|
||||
local ox=portalgun_round(op.x)
|
||||
local oy=portalgun_round(op.y)
|
||||
local oz=portalgun_round(op.z)
|
||||
if x==1 and ox==pos.x and oz<=pos.z then
|
||||
return true
|
||||
end
|
||||
if x==-1 and ox==pos.x and oz>=pos.z then
|
||||
return true
|
||||
end
|
||||
if z==-1 and oz==pos.z and ox<=pos.x then
|
||||
return true
|
||||
end
|
||||
if z==1 and oz==pos.z and ox>=pos.x then
|
||||
return true
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
minetest.register_node("portalgun:secam_off", {
|
||||
description = "Security cam (off)" ,
|
||||
tiles = {"portalgun_scam.png"},
|
||||
drawtype = "nodebox",
|
||||
walkable=false,
|
||||
groups = {dig_immediate = 3},
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
is_ground_content = false,
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
node_box = {type="fixed",
|
||||
fixed={ {-0.2, -0.5, -0.2, 0.2, -0.4, 0.2},
|
||||
{-0.1, -0.2, -0.1, 0.1, -0.4, 0.1}}
|
||||
},
|
||||
on_place = minetest.rotate_node,
|
||||
on_construct = function(pos)
|
||||
minetest.get_meta(pos):set_string("infotext","click to activate")
|
||||
end,
|
||||
on_rightclick = function(pos, node, player, itemstack, pointed_thing)
|
||||
minetest.set_node(pos, {name ="portalgun:secam", param1 = node.param1, param2 = node.param2})
|
||||
minetest.get_node_timer(pos):start(1)
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_node("portalgun:secam", {
|
||||
description = "Security cam",
|
||||
tiles = {"portalgun_scam.png"},
|
||||
drawtype = "nodebox",
|
||||
walkable=false,
|
||||
groups = {dig_immediate = 3,stone=1,not_in_creative_inventory=1},
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
is_ground_content = false,
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
drop="portalgun:secam_off",
|
||||
node_box = {type="fixed",
|
||||
fixed={ {-0.2, -0.5, -0.2, 0.2, -0.4, 0.2},
|
||||
{-0.1, -0.2, -0.1, 0.1, -0.4, 0.1}}
|
||||
},
|
||||
on_timer=function(pos, elapsed)
|
||||
for i, ob in pairs(minetest.get_objects_inside_radius(pos, 10)) do
|
||||
if ob:is_player() or (ob:get_luaentity() and ob:get_luaentity().itemstring==nil and ob:get_luaentity().portalgun==nil) then
|
||||
if portalgun_visiable(pos,ob) then
|
||||
local v=ob:get_pos()
|
||||
if not ob:get_luaentity() then v.y=v.y+1 end
|
||||
local s={x=(v.x-pos.x)*3,y=(v.y-pos.y)*3,z=(v.z-pos.z)*3}
|
||||
local m=minetest.add_entity(pos, "portalgun:bullet1")
|
||||
m:set_velocity(s)
|
||||
m:set_acceleration(s)
|
||||
minetest.sound_play("portalgun_bullet1", {pos=pos, gain = 1, max_hear_distance = 15,})
|
||||
minetest.after((math.random(1,9)*0.1), function(pos,s,v)
|
||||
local m=minetest.add_entity(pos, "portalgun:bullet1")
|
||||
m:set_velocity(s)
|
||||
m:set_acceleration(s)
|
||||
minetest.sound_play("portalgun_bullet1", {pos=pos, gain = 1, max_hear_distance = 15,})
|
||||
end, pos,s,v)
|
||||
end
|
||||
end
|
||||
end
|
||||
return true
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_entity("portalgun:bullet1",{
|
||||
hp_max = 1,
|
||||
--physical = true,
|
||||
--collisionbox={-0.01,-0.01,-0.01,0.01,0.01,0.01},
|
||||
pointable=false,
|
||||
visual = "sprite",
|
||||
visual_size = {x=0.1, y=0.1},
|
||||
textures = {"default_mese_block.png"},
|
||||
initial_sprite_basepos = {x=0, y=0},
|
||||
portalgun=2,
|
||||
bullet=1,
|
||||
on_step= function(self, dtime)
|
||||
self.timer=self.timer+dtime
|
||||
self.timer2=self.timer2+dtime
|
||||
local pos=self.object:get_pos()
|
||||
local n=minetest.registered_nodes[minetest.get_node(self.object:get_pos()).name]
|
||||
if self.timer>1 or (n and n.walkable) then
|
||||
self.object:remove()
|
||||
return
|
||||
end
|
||||
for i, ob in pairs(minetest.get_objects_inside_radius(pos, 1.5)) do
|
||||
if ob:is_player() or (ob:get_luaentity() and ob:get_luaentity().bullet~=1) then
|
||||
ob:set_hp(ob:get_hp()-7)
|
||||
ob:punch(self.object, 1,{full_punch_interval=1.0,damage_groups={fleshy=4}}, "default:bronze_pick", nil)
|
||||
self.object:remove()
|
||||
return
|
||||
end
|
||||
end
|
||||
end,
|
||||
timer=0,
|
||||
timer2=0,
|
||||
})
|
||||
|
||||
minetest.register_node("portalgun:sign1", {
|
||||
description = "Portal sign blue",
|
||||
tiles = {"portalgun_testblock.png^portalgun_sign1.png"},
|
||||
inventory_image = "portalgun_testblock.png^portalgun_sign1.png",
|
||||
drawtype = "nodebox",
|
||||
groups = {snappy = 3, not_in_creative_inventory=0},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
is_ground_content = false,
|
||||
paramtype2 = "facedir",
|
||||
paramtype = "light",
|
||||
node_box = {
|
||||
type="fixed",
|
||||
fixed={-0.5,-0.5,0.45,0.5,0.5,0.5}},
|
||||
})
|
||||
|
||||
minetest.register_node("portalgun:sign2", {
|
||||
description = "Portal sign orange",
|
||||
tiles = {"portalgun_testblock.png^portalgun_sign2.png"},
|
||||
inventory_image = "portalgun_testblock.png^portalgun_sign2.png",
|
||||
drawtype = "nodebox",
|
||||
groups = {snappy = 3, not_in_creative_inventory=0},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
is_ground_content = false,
|
||||
paramtype2 = "facedir",
|
||||
paramtype = "light",
|
||||
node_box = {
|
||||
type="fixed",
|
||||
fixed={-0.5,-0.5,0.45,0.5,0.5,0.5}},
|
||||
})
|
BIN
textures/portalgun_blue.png
Normal file
After Width: | Height: | Size: 744 B |
BIN
textures/portalgun_bu.png
Normal file
After Width: | Height: | Size: 222 B |
BIN
textures/portalgun_cake1.png
Normal file
After Width: | Height: | Size: 278 B |
BIN
textures/portalgun_cake2.png
Normal file
After Width: | Height: | Size: 173 B |
BIN
textures/portalgun_checkpoint.png
Normal file
After Width: | Height: | Size: 821 B |
BIN
textures/portalgun_delayer.png
Normal file
After Width: | Height: | Size: 856 B |
BIN
textures/portalgun_edestroyer.png
Normal file
After Width: | Height: | Size: 370 B |
BIN
textures/portalgun_gravity.png
Normal file
After Width: | Height: | Size: 128 B |
BIN
textures/portalgun_gray.png
Normal file
After Width: | Height: | Size: 551 B |
BIN
textures/portalgun_gun.png
Normal file
After Width: | Height: | Size: 643 B |
BIN
textures/portalgun_gun_blue.png
Normal file
After Width: | Height: | Size: 648 B |
BIN
textures/portalgun_gun_orange.png
Normal file
After Width: | Height: | Size: 661 B |
BIN
textures/portalgun_orange.png
Normal file
After Width: | Height: | Size: 723 B |
BIN
textures/portalgun_powerballspawner.png
Normal file
After Width: | Height: | Size: 894 B |
BIN
textures/portalgun_powerballstarget.png
Normal file
After Width: | Height: | Size: 986 B |
BIN
textures/portalgun_powerwall.png
Normal file
After Width: | Height: | Size: 347 B |
BIN
textures/portalgun_powerwall1.png
Normal file
After Width: | Height: | Size: 366 B |
BIN
textures/portalgun_powrball.png
Normal file
After Width: | Height: | Size: 962 B |
BIN
textures/portalgun_presplat.png
Normal file
After Width: | Height: | Size: 220 B |
BIN
textures/portalgun_presplat2.png
Normal file
After Width: | Height: | Size: 218 B |
BIN
textures/portalgun_presplat3.png
Normal file
After Width: | Height: | Size: 220 B |
BIN
textures/portalgun_presplat4.png
Normal file
After Width: | Height: | Size: 220 B |
BIN
textures/portalgun_presplat5.png
Normal file
After Width: | Height: | Size: 220 B |
BIN
textures/portalgun_scam.png
Normal file
After Width: | Height: | Size: 272 B |
BIN
textures/portalgun_sentry_turret.png
Normal file
After Width: | Height: | Size: 22 KiB |
BIN
textures/portalgun_sign1.png
Normal file
After Width: | Height: | Size: 374 B |
BIN
textures/portalgun_sign2.png
Normal file
After Width: | Height: | Size: 376 B |
BIN
textures/portalgun_snum0.png
Normal file
After Width: | Height: | Size: 214 B |
BIN
textures/portalgun_snum1.png
Normal file
After Width: | Height: | Size: 195 B |
BIN
textures/portalgun_snum2.png
Normal file
After Width: | Height: | Size: 211 B |
BIN
textures/portalgun_snum3.png
Normal file
After Width: | Height: | Size: 216 B |
BIN
textures/portalgun_snum4.png
Normal file
After Width: | Height: | Size: 198 B |
BIN
textures/portalgun_snum5.png
Normal file
After Width: | Height: | Size: 216 B |
BIN
textures/portalgun_snum6.png
Normal file
After Width: | Height: | Size: 234 B |
BIN
textures/portalgun_snum7.png
Normal file
After Width: | Height: | Size: 198 B |
BIN
textures/portalgun_snum8.png
Normal file
After Width: | Height: | Size: 191 B |
BIN
textures/portalgun_snum9.png
Normal file
After Width: | Height: | Size: 220 B |
BIN
textures/portalgun_testblock.png
Normal file
After Width: | Height: | Size: 216 B |
BIN
textures/portalgun_toxwat.png
Normal file
After Width: | Height: | Size: 611 B |
BIN
textures/portalgun_turret.png
Normal file
After Width: | Height: | Size: 4.9 KiB |
BIN
textures/portalgun_v.png
Normal file
After Width: | Height: | Size: 354 B |
BIN
textures/portalgun_warntape.png
Normal file
After Width: | Height: | Size: 435 B |
BIN
textures/portalgun_x.png
Normal file
After Width: | Height: | Size: 358 B |
BIN
textures/weightedstoragecube.png
Normal file
After Width: | Height: | Size: 2.9 KiB |
BIN
textures/weightedstoragecube2.png
Normal file
After Width: | Height: | Size: 3.0 KiB |
BIN
textures/weightedstoragecube3.png
Normal file
After Width: | Height: | Size: 3.0 KiB |
BIN
textures/weightedstoragecube4.png
Normal file
After Width: | Height: | Size: 3.0 KiB |
354
weightedstoragecube.lua
Normal file
@ -0,0 +1,354 @@
|
||||
|
||||
local ptgwsc={
|
||||
{"weightedstoragecube.png","portalgun_presplat.png","(blue)"},
|
||||
{"weightedstoragecube2.png","portalgun_presplat2.png","(orange)"},
|
||||
{"weightedstoragecube3.png","portalgun_presplat3.png","(yellow)"},
|
||||
{"weightedstoragecube4.png","portalgun_presplat4.png","(green)"},
|
||||
}
|
||||
|
||||
|
||||
for ii = 1, #ptgwsc, 1 do
|
||||
|
||||
|
||||
minetest.register_craftitem("portalgun:wscube" ..ii, {
|
||||
description = "Weighted storage cube " .. ptgwsc[ii][3],
|
||||
inventory_image = minetest.inventorycube(ptgwsc[ii][1]),
|
||||
on_place=function(itemstack, user, pointed_thing)
|
||||
if pointed_thing.type=="node" then
|
||||
portalgun.new=1
|
||||
local m=minetest.add_entity(pointed_thing.above, "portalgun:wsc"..ii)
|
||||
m:set_acceleration({x=0,y=-10,z=0})
|
||||
itemstack:take_item()
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_node("portalgun:wscspawner2_" .. ii, {
|
||||
description = "Weighted storage cube spawner2 " ..ptgwsc[ii][3],
|
||||
tiles = {"default_steel_block.png","default_steel_block.png","default_steel_block.png","default_steel_block.png","default_steel_block.png",ptgwsc[ii][1]},
|
||||
groups = {cracky=2,mesecon_receptor_off = 1, mesecon_effector_off = 1},
|
||||
mesecons = {receptor = {state = "off"}},
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
is_ground_content = false,
|
||||
paramtype2 = "facedir",
|
||||
mesecons = {effector = {
|
||||
action_on = function (pos, node)
|
||||
local dir=minetest.get_node(pos).param2
|
||||
local v={x=0, y=0, z=0}
|
||||
if dir==0 then v.z=-1
|
||||
elseif dir==1 then v.x=-1.2
|
||||
elseif dir==2 then v.z=1.2
|
||||
elseif dir==3 then v.x=1.2
|
||||
elseif dir==8 then v.y=-1.2
|
||||
elseif dir==4 then v.y=1.2
|
||||
end
|
||||
local pv={x=pos.x+v.x, y=pos.y+v.y, z=pos.z+v.z}
|
||||
portalgun.new=1
|
||||
local m=minetest.add_entity(pv, "portalgun:wsc" ..ii)
|
||||
m:set_acceleration({x=0, y=-10, z=0})
|
||||
end
|
||||
}}
|
||||
})
|
||||
|
||||
minetest.register_entity("portalgun:wsc" ..ii,{
|
||||
hp_max = 100,
|
||||
physical = true,
|
||||
weight = 5,
|
||||
collisionbox = {-0.6,-0.6,-0.6, 0.6,0.6,0.6},
|
||||
visual = "cube",
|
||||
visual_size = {x=1.1, y=1.1},
|
||||
textures = {ptgwsc[ii][1],ptgwsc[ii][1],ptgwsc[ii][1],ptgwsc[ii][1],ptgwsc[ii][1],ptgwsc[ii][1]},
|
||||
initial_sprite_basepos = {x=0, y=0},
|
||||
is_visible = true,
|
||||
makes_footstep_sound = true,
|
||||
automatic_rotate = false,
|
||||
portalgun=2,
|
||||
wsc=ii,
|
||||
on_activate= function(self, staticdata)
|
||||
if portalgun.new==0 then
|
||||
self.object:remove()
|
||||
return self
|
||||
end
|
||||
portalgun.new=0
|
||||
end,
|
||||
on_step= function(self, dtime)
|
||||
self.timer=self.timer+dtime
|
||||
if self.timer<1 then return self end
|
||||
self.timer=0
|
||||
self.object:set_acceleration({x=0, y=-10, z=0})
|
||||
self.timer2=self.timer2+1
|
||||
if self.timer2>10 then
|
||||
self.timer2=0
|
||||
for i, ob in pairs(minetest.get_objects_inside_radius(self.object:get_pos(), 20)) do
|
||||
if ob:is_player() then
|
||||
return true
|
||||
end
|
||||
end
|
||||
self.object:set_hp(0)
|
||||
self.object:punch(self.object, 1, "default:bronze_pick", nil)
|
||||
end
|
||||
end,
|
||||
timer=0,
|
||||
timer2=0,
|
||||
})
|
||||
|
||||
minetest.register_node("portalgun:wscspawner"..ii, {
|
||||
description = "Weighted storage cube spawner " ..ptgwsc[ii][3],
|
||||
tiles = {ptgwsc[ii][1]},
|
||||
groups = {cracky = 1, not_in_creative_inventory=0},
|
||||
paramtype = "light",
|
||||
paramtype2="facedir",
|
||||
sunlight_propagates = true,
|
||||
light_source = default.LIGHT_MAX - 1,
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
drawtype="nodebox",
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.7, -0.5, -0.7, 0.7, -0.375, 0.7},
|
||||
{0.7, -0.5, -0.1875, 0.9, -0.4375, 0.1875},
|
||||
{-0.9, -0.5, -0.1875, -0.7, -0.4375, 0.1875},
|
||||
{-0.1875, -0.5, -0.9, 0.1875, -0.4375, -0.7},
|
||||
{-0.1875, -0.5, 0.7, 0.1875, -0.4375, 0.9},
|
||||
}
|
||||
},
|
||||
on_construct = function(pos)
|
||||
minetest.get_node_timer(pos):start(5)
|
||||
end,
|
||||
on_timer = function (pos, elapsed)
|
||||
for i, ob in pairs(minetest.get_objects_inside_radius(pos, 40)) do
|
||||
if ob:get_luaentity() and ob:get_luaentity().wsc==ii then
|
||||
return true
|
||||
end
|
||||
end
|
||||
portalgun.new=1
|
||||
local m=minetest.add_entity(pos, "portalgun:wsc" ..ii)
|
||||
m:set_acceleration({x=0,y=-10,z=0})
|
||||
return true
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_node("portalgun:plantform1_" ..ii, {
|
||||
description = "Pressure platform " .. ptgwsc[ii][3],
|
||||
tiles = {ptgwsc[ii][2],"default_cloud.png","default_cloud.png","default_cloud.png","default_cloud.png","default_cloud.png"},
|
||||
groups = {mesecon = 2,cracky = 1, not_in_creative_inventory=0},
|
||||
mesecons = {receptor = {state = "off"}},
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
drawtype="nodebox",
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.7, -0.5, -0.7, 0.7, -0.375, 0.7},
|
||||
{0.7, -0.5, -0.1875, 0.9, -0.4375, 0.1875},
|
||||
{-0.9, -0.5, -0.1875, -0.7, -0.4375, 0.1875},
|
||||
{-0.1875, -0.5, -0.9, 0.1875, -0.4375, -0.7},
|
||||
{-0.1875, -0.5, 0.7, 0.1875, -0.4375, 0.9},
|
||||
{-0.5, -0.5, -0.5, 0.5, -0.3125, 0.5},
|
||||
}
|
||||
},
|
||||
on_construct = function(pos)
|
||||
minetest.get_node_timer(pos):start(2)
|
||||
end,
|
||||
on_timer = function (pos, elapsed)
|
||||
if not mesecon then return false end
|
||||
for i, ob in pairs(minetest.get_objects_inside_radius(pos, 1)) do
|
||||
if ob:get_luaentity() and ob:get_luaentity().wsc==ii then
|
||||
local node=minetest.get_node(pos)
|
||||
mesecon.receptor_on(pos)
|
||||
minetest.set_node(pos, {name ="portalgun:plantform2_"..ii, param1 = node.param1, param2 = node.param2})
|
||||
end
|
||||
return true
|
||||
end
|
||||
return true
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_node("portalgun:plantform2_"..ii, {
|
||||
description = "Pressure platform",
|
||||
tiles = {ptgwsc[ii][2],"default_cloud.png","default_cloud.png","default_cloud.png","default_cloud.png","default_cloud.png"},
|
||||
drop="portalgun:plantform1_"..ii,
|
||||
groups = {mesecon = 2,cracky = 1, not_in_creative_inventory=1},
|
||||
mesecons = {receptor = {state = "on"}},
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
light_source = default.LIGHT_MAX - 1,
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
drawtype="nodebox",
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.7, -0.5, -0.7, 0.7, -0.375, 0.7},
|
||||
{0.7, -0.5, -0.1875, 0.9, -0.4375, 0.1875},
|
||||
{-0.9, -0.5, -0.1875, -0.7, -0.4375, 0.1875},
|
||||
{-0.1875, -0.5, -0.9, 0.1875, -0.4375, -0.7},
|
||||
{-0.1875, -0.5, 0.7, 0.1875, -0.4375, 0.9},
|
||||
}
|
||||
},
|
||||
on_construct = function(pos)
|
||||
minetest.get_node_timer(pos):start(2)
|
||||
end,
|
||||
on_timer = function (pos, elapsed)
|
||||
for i, ob in pairs(minetest.get_objects_inside_radius(pos, 1)) do
|
||||
if ob:get_luaentity() and ob:get_luaentity().wsc==ii then
|
||||
return true
|
||||
end
|
||||
end
|
||||
mesecon.receptor_off(pos)
|
||||
local node=minetest.get_node(pos)
|
||||
minetest.set_node(pos, {name ="portalgun:plantform1_"..ii, param1 = node.param1, param2 = node.param2})
|
||||
return true
|
||||
end,
|
||||
})
|
||||
|
||||
|
||||
end -- of for #
|
||||
|
||||
|
||||
minetest.register_node("portalgun:plantform_nu1", {
|
||||
description = "Pressure platform (player or cube)",
|
||||
tiles = {"portalgun_presplat5.png","default_cloud.png","default_cloud.png","default_cloud.png","default_cloud.png","default_cloud.png"},
|
||||
groups = {mesecon = 2,cracky = 1, not_in_creative_inventory=0},
|
||||
mesecons = {receptor = {state = "off"}},
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
drawtype="nodebox",
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.7, -0.5, -0.7, 0.7, -0.375, 0.7},
|
||||
{0.7, -0.5, -0.1875, 0.9, -0.4375, 0.1875},
|
||||
{-0.9, -0.5, -0.1875, -0.7, -0.4375, 0.1875},
|
||||
{-0.1875, -0.5, -0.9, 0.1875, -0.4375, -0.7},
|
||||
{-0.1875, -0.5, 0.7, 0.1875, -0.4375, 0.9},
|
||||
{-0.5, -0.5, -0.5, 0.5, -0.3125, 0.5},
|
||||
}
|
||||
},
|
||||
on_construct = function(pos)
|
||||
minetest.get_node_timer(pos):start(2)
|
||||
end,
|
||||
on_timer = function (pos, elapsed)
|
||||
if not mesecon then return false end
|
||||
for i, ob in pairs(minetest.get_objects_inside_radius(pos, 1)) do
|
||||
if ob:is_player() or (ob:get_luaentity() and ob:get_luaentity().wsc) then
|
||||
local node=minetest.get_node(pos)
|
||||
mesecon.receptor_on(pos)
|
||||
minetest.set_node(pos, {name ="portalgun:plantform_nu2", param1 = node.param1, param2 = node.param2})
|
||||
end
|
||||
return true
|
||||
end
|
||||
return true
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_node("portalgun:plantform_nu2", {
|
||||
description = "Pressure platform",
|
||||
tiles = {"portalgun_presplat5.png","default_cloud.png","default_cloud.png","default_cloud.png","default_cloud.png","default_cloud.png"},
|
||||
drop="portalgun:plantform_nu1",
|
||||
groups = {mesecon = 2,cracky = 1, not_in_creative_inventory=1},
|
||||
mesecons = {receptor = {state = "on"}},
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
light_source = default.LIGHT_MAX - 1,
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
drawtype="nodebox",
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.7, -0.5, -0.7, 0.7, -0.375, 0.7},
|
||||
{0.7, -0.5, -0.1875, 0.9, -0.4375, 0.1875},
|
||||
{-0.9, -0.5, -0.1875, -0.7, -0.4375, 0.1875},
|
||||
{-0.1875, -0.5, -0.9, 0.1875, -0.4375, -0.7},
|
||||
{-0.1875, -0.5, 0.7, 0.1875, -0.4375, 0.9},
|
||||
}
|
||||
},
|
||||
on_construct = function(pos)
|
||||
minetest.get_node_timer(pos):start(2)
|
||||
end,
|
||||
on_timer = function (pos, elapsed)
|
||||
for i, ob in pairs(minetest.get_objects_inside_radius(pos, 1)) do
|
||||
if ob:is_player() or (ob:get_luaentity() and ob:get_luaentity().wsc) then
|
||||
return true
|
||||
end
|
||||
end
|
||||
mesecon.receptor_off(pos)
|
||||
local node=minetest.get_node(pos)
|
||||
minetest.set_node(pos, {name ="portalgun:plantform_nu1", param1 = node.param1, param2 = node.param2})
|
||||
return true
|
||||
end,
|
||||
})
|
||||
|
||||
|
||||
minetest.register_node("portalgun:planthole", {
|
||||
description = "Plathole (activate by any cube, 2 blocks under)",
|
||||
tiles = {"default_cloud.png"},
|
||||
groups = {mesecon = 2,cracky = 1},
|
||||
mesecons = {receptor = {state = "off"}},
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
drawtype="nodebox",
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-1.5, -0.5, -1.5, 0.5, -0.25, -1.3},
|
||||
{-1.5, -0.5, 0.3, 0.5, -0.25, 0.5},
|
||||
{0.3, -0.5, -1.5, 0.5, -0.25, 0.5},
|
||||
{-1.5, -0.5, -1.5, -1.3, -0.25, 0.5},
|
||||
{0.5, -0.5, -0.9, 0.7, -0.375, -0.0625},
|
||||
{-1.7, -0.5, -0.9, -1.5, -0.3125, -0.0625},
|
||||
{-0.9, -0.5, -1.7, -0.0625, -0.375, -1.5},
|
||||
{-1, -0.5, 0.5, -0.0625, -0.375, 0.7},
|
||||
}
|
||||
},
|
||||
on_construct = function(pos)
|
||||
minetest.get_node_timer(pos):start(5)
|
||||
end,
|
||||
on_timer = function (pos, elapsed)
|
||||
local pos2={x=pos.x,y=pos.y-2,z=pos.z}
|
||||
for i, ob in pairs(minetest.get_objects_inside_radius(pos2, 1)) do
|
||||
if ob:get_luaentity() and ob:get_luaentity().wsc then
|
||||
mesecon.receptor_on(pos)
|
||||
return true
|
||||
end
|
||||
end
|
||||
mesecon.receptor_off(pos)
|
||||
return true
|
||||
end,
|
||||
})
|
||||
|
||||
|
||||
|
||||
minetest.register_node("portalgun:objdestroyer_1", {
|
||||
description = "Object destroyer (destroys on active)",
|
||||
tiles = {"portalgun_testblock.png^[colorize:#FF0000aa"},
|
||||
groups = {cracky = 2,mesecon=1},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
mesecons = {effector = {
|
||||
action_on = function (pos, node)
|
||||
minetest.set_node(pos, {name ="portalgun:objdestroyer_2"})
|
||||
for i, ob in pairs(minetest.get_objects_inside_radius(pos, 5)) do
|
||||
if ob:get_luaentity() then
|
||||
ob:set_hp(0)
|
||||
ob:punch(ob, {full_punch_interval=1.0,damage_groups={fleshy=9000}}, "default:bronze_pick", nil)
|
||||
end
|
||||
end
|
||||
end
|
||||
}}
|
||||
})
|
||||
minetest.register_node("portalgun:objdestroyer_2", {
|
||||
description = "Obj destroyer",
|
||||
tiles = {"portalgun_testblock.png^[colorize:#FF0000cc"},
|
||||
groups = {cracky=2,mesecon=1,not_in_creative_inventory=1},
|
||||
sunlight_propagates = true,
|
||||
drop="portalgun:objdestroyer_1",
|
||||
paramtype="light",
|
||||
light_source = default.LIGHT_MAX - 1,
|
||||
mesecons = {conductor = {
|
||||
state = mesecon.state.on,
|
||||
offstate = "portalgun:objdestroyer_1",
|
||||
}},
|
||||
})
|