Compare commits

..

3 Commits

Author SHA1 Message Date
bad55d19a0 test 2022-07-11 10:30:14 +02:00
dec116cc5e test 2022-07-11 10:30:06 +02:00
15640770f3 my first changes 2022-07-11 08:32:12 +02:00
30 changed files with 867 additions and 524 deletions

View File

@@ -1,4 +1,8 @@
# portalgun
original repo:https://github.com/AiTechEye/portalgun
Licenses: code: LGPL-2.1, media: CC BY-SA-4.0
For changes check git or compare to original repo
Remixed by: BRNSystems
https://forum.minetest.net/viewtopic.php?f=11&t=12772

285
craft.lua
View File

@@ -1,285 +0,0 @@
minetest.register_craft({
output = "portalgun:gun1_placed",
recipe = {{"portalgun:gun1"}}})
minetest.register_craft({
output = "portalgun:gun2_placed",
recipe = {{"portalgun:gun2"}}})
minetest.register_craft({
output = "portalgun:gun_placed",
recipe = {{"portalgun:gun"}}})
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"},
},
})

Binary file not shown.

Before

Width:  |  Height:  |  Size: 273 KiB

View File

@@ -42,7 +42,7 @@ minetest.register_entity("portalgun:power",{
spritediv = {x=1, y=1},
is_visible = true,
makes_footstep_sound = false,
automatic_rotate = false,
automatic_rotate = 0,
timer=0,
time=0.1,
portalgun_power=1,
@@ -62,7 +62,6 @@ 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,
@@ -72,7 +71,6 @@ on_step= function(self, dtime)
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
@@ -106,7 +104,7 @@ minetest.register_entity("portalgun:power2",{
spritediv = {x=1, y=1},
is_visible = true,
makes_footstep_sound = false,
automatic_rotate = false,
automatic_rotate = 0,
timer=0,
time=0.025,
portalgun_power=1,
@@ -152,7 +150,6 @@ on_step= function(self, dtime)
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

222
init.lua
View File

@@ -4,7 +4,6 @@ proportal_group_only = 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
@@ -58,7 +57,6 @@ function portal_delete(name,n) -- using set_hp & :punch instand of :remove ... n
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
@@ -67,7 +65,6 @@ function portal_delete(name,n) -- using set_hp & :punch instand of :remove ... n
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
@@ -340,157 +337,85 @@ on_activate= function(self, staticdata)
end,
on_step=portalgun_on_step,
})
minetest.register_node("portalgun:gun1", {
description = "Portalgun (blue)",
range = 5,
tiles={"portalgun_gun1.png"},
selection_box = {
type = "fixed",
fixed = {
{-0.3, -0.5, -0.3, 0.3, -0.1,0.3},
}
},
drawtype="mesh",
mesh="portalgun_gun_wearing.obj",
groups = {not_in_creative_inventory=1},
sunlight_propagates = true,
paramtype="light",
paramtype2="facedir",
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_node("portalgun:gun2", {
description = "Portalgun (orange)",
range = 5,
tiles={"portalgun_gun2.png"},
selection_box = {
type = "fixed",
fixed = {
{-0.3, -0.5, -0.3, 0.3, -0.1,0.3},
}
},
drawtype="mesh",
mesh="portalgun_gun_wearing.obj",
groups = {not_in_creative_inventory=1},
sunlight_propagates = true,
paramtype="light",
paramtype2="facedir",
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_node("portalgun:gun", {
minetest.register_craftitem("portalgun:gun", {
description = "Portalgun",
range = 5,
tiles={"portalgun_gun0.png"},
selection_box = {
type = "fixed",
fixed = {
{-0.3, -0.5, -0.3, 0.3, -0.1,0.3},
}
range = 100,
inventory_image = "portalgun_gun0_rndr.png",
wield_image = "portalgun_gun0_rndr.png",
tool_capabilities = {
full_punch_interval = 0.5,
max_drop_level = 3,
groupcaps = {
fleshy = {times={[2]=0.80, [3]=0.40}, uses=100, maxlevel=3},
oddly_breakable_by_hand = {times={[1]=1}, uses=100, maxlevel=1},
},
drawtype="mesh",
mesh="portalgun_gun_wearing.obj",
sunlight_propagates = true,
paramtype="light",
paramtype2="facedir",
on_place=function(itemstack, user, pointed_thing)
portalgun_mode(itemstack, user, pointed_thing)
damage_groups = {fleshy=1},
},
on_place=function(itemstack, user, pointed_thing)
portalgun_setmode(itemstack, user, pointed_thing, 2)
portalgun_onuse(itemstack, user, pointed_thing)
return itemstack
end,
on_use = function(itemstack, user, pointed_thing)
portalgun_setmode(itemstack, user, pointed_thing, 1)
portalgun_onuse(itemstack, user, pointed_thing)
return itemstack
end
})
minetest.register_craftitem("portalgun:gun1", {
description = "Portalgun (blue)",
range = 100,
groups = {not_in_creative_inventory=1},
inventory_image = "portalgun_gun1_rndr.png",
wield_image = "portalgun_gun1_rndr.png",
tool_capabilities = {
full_punch_interval = 0.5,
max_drop_level = 3,
groupcaps = {
fleshy = {times={[2]=0.80, [3]=0.40}, uses=100, maxlevel=3},
oddly_breakable_by_hand = {times={[1]=1}, uses=100, maxlevel=1},
},
damage_groups = {fleshy=1},
},
on_place=function(itemstack, user, pointed_thing)
portalgun_setmode(itemstack, user, pointed_thing, 2)
portalgun_onuse(itemstack, user, pointed_thing)
return itemstack
end,
on_use = function(itemstack, user, pointed_thing)
portalgun_setmode(itemstack, user, pointed_thing, 1)
portalgun_onuse(itemstack, user, pointed_thing)
return itemstack
end
})
minetest.register_node("portalgun:gun1_placed", {
description = "Portalgun (blue)",
range = 5,
tiles={"portalgun_gun1.png"},
selection_box = {
type = "fixed",
fixed = {
{-0.3, -0.5, -0.3, 0.3, -0.1,0.3},
}
},
drawtype="mesh",
mesh="portalgun_gun.obj",
sunlight_propagates = true,
paramtype="light",
paramtype2="facedir",
visual_scale=0.4,
groups = {not_in_creative_inventory=1,dig_immediate = 3},
on_use = function(itemstack, user, pointed_thing)
portalgun_onuse(itemstack, user, pointed_thing)
return itemstack
end
})
minetest.register_node("portalgun:gun2_placed", {
minetest.register_craftitem("portalgun:gun2", {
description = "Portalgun (orange)",
range = 5,
tiles={"portalgun_gun2.png"},
selection_box = {
type = "fixed",
fixed = {
{-0.3, -0.5, -0.3, 0.3, -0.1,0.3},
}
range = 100,
inventory_image = "portalgun_gun2_rndr.png",
wield_image = "portalgun_gun2_rndr.png",
tool_capabilities = {
full_punch_interval = 0.5,
max_drop_level = 3,
groupcaps = {
fleshy = {times={[2]=0.80, [3]=0.40}, uses=100, maxlevel=3},
oddly_breakable_by_hand = {times={[1]=1}, uses=100, maxlevel=1},
},
drawtype="mesh",
mesh="portalgun_gun.obj",
sunlight_propagates = true,
paramtype="light",
paramtype2="facedir",
visual_scale=0.4,
groups = {not_in_creative_inventory=1,dig_immediate = 3},
on_use = function(itemstack, user, pointed_thing)
damage_groups = {fleshy=1},
},
groups = {not_in_creative_inventory=1},
on_place=function(itemstack, user, pointed_thing)
portalgun_setmode(itemstack, user, pointed_thing, 2)
portalgun_onuse(itemstack, user, pointed_thing)
return itemstack
end
})
minetest.register_node("portalgun:gun_placed", {
description = "Portalgun",
range = 5,
tiles={"portalgun_gun0.png"},
selection_box = {
type = "fixed",
fixed = {
{-0.3, -0.5, -0.3, 0.3, -0.1,0.3},
}
},
drawtype="mesh",
mesh="portalgun_gun.obj",
sunlight_propagates = true,
paramtype="light",
paramtype2="facedir",
visual_scale=0.4,
groups = {not_in_creative_inventory=1,dig_immediate = 3},
on_use = function(itemstack, user, pointed_thing)
end,
on_use = function(itemstack, user, pointed_thing)
portalgun_setmode(itemstack, user, pointed_thing, 1)
portalgun_onuse(itemstack, user, pointed_thing)
return itemstack
end
end
})
function portalgun_mode(itemstack, user, pointed_thing) -- change modes
local item=itemstack:to_table()
local meta=minetest.deserialize(item["metadata"])
@@ -516,6 +441,23 @@ function portalgun_mode(itemstack, user, pointed_thing) -- change modes
minetest.sound_play("portalgun_mode", {pos=user:get_pos(),max_hear_distance = 5, gain = 1})
end
function portalgun_setmode(itemstack, user, pointed_thing, mode) -- change modes
local item=itemstack:to_table()
local meta=minetest.deserialize(item["metadata"])
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
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)
@@ -558,12 +500,6 @@ function portalgun_onuse(itemstack, user, pointed_thing) -- using the gun
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

View File

@@ -1,4 +1,3 @@
name = portalgun
description = Portals and stuff
depends = default
optional_depends = mesecons

BIN
models/bullet.blend Normal file

Binary file not shown.

BIN
models/bullet.blend1 Normal file

Binary file not shown.

628
models/bullet.obj Normal file
View File

@@ -0,0 +1,628 @@
# Blender v3.1.2 OBJ File: 'bullet.blend'
# www.blender.org
mtllib bullet.mtl
o Cylinder
v -0.000000 -0.285469 -0.048214
v 0.009406 -0.285469 -0.047288
v 0.018451 -0.285469 -0.044544
v 0.026786 -0.285469 -0.040089
v 0.034093 -0.285469 -0.034093
v 0.040089 -0.285469 -0.026786
v 0.044544 -0.285469 -0.018451
v 0.047288 -0.285469 -0.009406
v 0.048214 -0.285469 0.000000
v 0.047288 -0.285469 0.009406
v 0.044544 -0.285469 0.018451
v 0.040089 -0.285469 0.026786
v 0.034093 -0.285469 0.034093
v 0.026786 -0.285469 0.040089
v 0.018451 -0.285469 0.044544
v 0.009406 -0.285469 0.047288
v -0.000000 -0.285469 0.048214
v -0.009406 -0.285469 0.047288
v -0.018451 -0.285469 0.044544
v -0.026786 -0.285469 0.040089
v -0.034093 -0.285469 0.034093
v -0.040089 -0.285469 0.026786
v -0.044544 -0.285469 0.018451
v -0.047288 -0.285469 0.009406
v -0.048214 -0.285469 -0.000000
v -0.047288 -0.285469 -0.009406
v -0.044544 -0.285469 -0.018451
v -0.040089 -0.285469 -0.026786
v -0.034093 -0.285469 -0.034093
v -0.026786 -0.285469 -0.040089
v -0.018451 -0.285469 -0.044544
v -0.009406 -0.285469 -0.047288
v 0.000000 0.202230 0.000000
v -0.000000 0.083239 -0.048214
v 0.009406 0.083239 -0.047288
v 0.018451 0.083239 -0.044544
v 0.026786 0.083239 -0.040089
v 0.034093 0.083239 -0.034093
v 0.040089 0.083239 -0.026786
v 0.044544 0.083239 -0.018451
v 0.047288 0.083239 -0.009406
v 0.048214 0.083239 0.000000
v 0.047288 0.083239 0.009406
v 0.044544 0.083239 0.018451
v 0.040089 0.083239 0.026786
v 0.034093 0.083239 0.034093
v 0.026786 0.083239 0.040089
v 0.018451 0.083239 0.044544
v 0.009406 0.083239 0.047288
v -0.000000 0.083239 0.048214
v -0.009406 0.083239 0.047288
v -0.018451 0.083239 0.044544
v -0.026786 0.083239 0.040089
v -0.034093 0.083239 0.034093
v -0.040089 0.083239 0.026786
v -0.044544 0.083239 0.018451
v -0.047288 0.083239 0.009406
v -0.048214 0.083239 -0.000000
v -0.047288 0.083239 -0.009406
v -0.044544 0.083239 -0.018451
v -0.040089 0.083239 -0.026786
v -0.034093 0.083239 -0.034093
v -0.026786 0.083239 -0.040089
v -0.018451 0.083239 -0.044544
v -0.009406 0.083239 -0.047288
v -0.000000 -0.285469 -0.048214
v 0.009406 -0.285469 -0.047288
v 0.018451 -0.285469 -0.044544
v 0.026786 -0.285469 -0.040089
v 0.034093 -0.285469 -0.034093
v 0.040089 -0.285469 -0.026786
v 0.044544 -0.285469 -0.018451
v 0.047288 -0.285469 -0.009406
v 0.048214 -0.285469 0.000000
v 0.047288 -0.285469 0.009406
v 0.044544 -0.285469 0.018451
v 0.040089 -0.285469 0.026786
v 0.034093 -0.285469 0.034093
v 0.026786 -0.285469 0.040089
v 0.018451 -0.285469 0.044544
v 0.009406 -0.285469 0.047288
v -0.000000 -0.285469 0.048214
v -0.009406 -0.285469 0.047288
v -0.018451 -0.285469 0.044544
v -0.026786 -0.285469 0.040089
v -0.034093 -0.285469 0.034093
v -0.040089 -0.285469 0.026786
v -0.044544 -0.285469 0.018451
v -0.047288 -0.285469 0.009406
v -0.048214 -0.285469 -0.000000
v -0.047288 -0.285469 -0.009406
v -0.044544 -0.285469 -0.018451
v -0.040089 -0.285469 -0.026786
v -0.034093 -0.285469 -0.034093
v -0.026786 -0.285469 -0.040089
v -0.018451 -0.285469 -0.044544
v -0.009406 -0.285469 -0.047288
v 0.000000 0.202230 0.000000
v -0.000000 0.083239 -0.048214
v 0.009406 0.083239 -0.047288
v 0.018451 0.083239 -0.044544
v 0.026786 0.083239 -0.040089
v 0.034093 0.083239 -0.034093
v 0.040089 0.083239 -0.026786
v 0.044544 0.083239 -0.018451
v 0.047288 0.083239 -0.009406
v 0.048214 0.083239 0.000000
v 0.047288 0.083239 0.009406
v 0.044544 0.083239 0.018451
v 0.040089 0.083239 0.026786
v 0.034093 0.083239 0.034093
v 0.026786 0.083239 0.040089
v 0.018451 0.083239 0.044544
v 0.009406 0.083239 0.047288
v -0.000000 0.083239 0.048214
v -0.009406 0.083239 0.047288
v -0.018451 0.083239 0.044544
v -0.026786 0.083239 0.040089
v -0.034093 0.083239 0.034093
v -0.040089 0.083239 0.026786
v -0.044544 0.083239 0.018451
v -0.047288 0.083239 0.009406
v -0.048214 0.083239 -0.000000
v -0.047288 0.083239 -0.009406
v -0.044544 0.083239 -0.018451
v -0.040089 0.083239 -0.026786
v -0.034093 0.083239 -0.034093
v -0.026786 0.083239 -0.040089
v -0.018451 0.083239 -0.044544
v -0.009406 0.083239 -0.047288
vt 0.750000 0.490000
vt 0.796822 0.485388
vt 0.841844 0.471731
vt 0.883337 0.449553
vt 0.919706 0.419706
vt 0.949553 0.383337
vt 0.971731 0.341844
vt 0.985388 0.296822
vt 0.990000 0.250000
vt 0.985388 0.203178
vt 0.971731 0.158156
vt 0.949553 0.116663
vt 0.919706 0.080294
vt 0.883337 0.050447
vt 0.841844 0.028269
vt 0.796822 0.014612
vt 0.750000 0.010000
vt 0.703178 0.014612
vt 0.658156 0.028269
vt 0.616663 0.050447
vt 0.580294 0.080294
vt 0.550447 0.116663
vt 0.528269 0.158156
vt 0.514612 0.203178
vt 0.510000 0.250000
vt 0.514612 0.296822
vt 0.528269 0.341844
vt 0.550447 0.383337
vt 0.580294 0.419706
vt 0.616663 0.449553
vt 0.658156 0.471731
vt 0.703178 0.485388
vt 0.031250 0.500000
vt 0.031250 0.892746
vt 0.000000 0.892746
vt 0.000000 0.500000
vt 0.062500 0.500000
vt 0.062500 0.892746
vt 0.093750 0.500000
vt 0.093750 0.892746
vt 0.125000 0.500000
vt 0.125000 0.892746
vt 0.156250 0.500000
vt 0.156250 0.892746
vt 0.187500 0.500000
vt 0.187500 0.892746
vt 0.218750 0.500000
vt 0.218750 0.892746
vt 0.250000 0.500000
vt 0.250000 0.892746
vt 0.281250 0.500000
vt 0.281250 0.892746
vt 0.312500 0.500000
vt 0.312500 0.892746
vt 0.343750 0.500000
vt 0.343750 0.892746
vt 0.375000 0.500000
vt 0.375000 0.892746
vt 0.406250 0.500000
vt 0.406250 0.892746
vt 0.437500 0.500000
vt 0.437500 0.892746
vt 0.468750 0.500000
vt 0.468750 0.892746
vt 0.500000 0.500000
vt 0.500000 0.892746
vt 0.531250 0.500000
vt 0.531250 0.892746
vt 0.562500 0.500000
vt 0.562500 0.892746
vt 0.593750 0.500000
vt 0.593750 0.892746
vt 0.625000 0.500000
vt 0.625000 0.892746
vt 0.656250 0.500000
vt 0.656250 0.892746
vt 0.687500 0.500000
vt 0.687500 0.892746
vt 0.718750 0.500000
vt 0.718750 0.892746
vt 0.750000 0.500000
vt 0.750000 0.892746
vt 0.781250 0.500000
vt 0.781250 0.892746
vt 0.812500 0.500000
vt 0.812500 0.892746
vt 0.843750 0.500000
vt 0.843750 0.892746
vt 0.875000 0.500000
vt 0.875000 0.892746
vt 0.906250 0.500000
vt 0.906250 0.892746
vt 0.937500 0.500000
vt 0.937500 0.892746
vt 0.968750 0.500000
vt 0.968750 0.892746
vt 1.000000 0.500000
vt 1.000000 0.892746
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.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.750000 0.490000
vt 0.703178 0.485388
vt 0.658156 0.471731
vt 0.616663 0.449553
vt 0.580294 0.419706
vt 0.550447 0.383337
vt 0.528269 0.341844
vt 0.514612 0.296822
vt 0.510000 0.250000
vt 0.514612 0.203178
vt 0.528269 0.158156
vt 0.550447 0.116663
vt 0.580294 0.080294
vt 0.616663 0.050447
vt 0.658156 0.028269
vt 0.703178 0.014612
vt 0.750000 0.010000
vt 0.796822 0.014612
vt 0.841844 0.028269
vt 0.883337 0.050447
vt 0.919706 0.080294
vt 0.949553 0.116663
vt 0.971731 0.158156
vt 0.985388 0.203178
vt 0.990000 0.250000
vt 0.985388 0.296822
vt 0.971731 0.341844
vt 0.949553 0.383337
vt 0.919706 0.419706
vt 0.883337 0.449553
vt 0.841844 0.471731
vt 0.796822 0.485388
vt 0.031250 0.500000
vt 0.000000 0.500000
vt 0.000000 0.892746
vt 0.031250 0.892746
vt 0.062500 0.500000
vt 0.062500 0.892746
vt 0.093750 0.500000
vt 0.093750 0.892746
vt 0.125000 0.500000
vt 0.125000 0.892746
vt 0.156250 0.500000
vt 0.156250 0.892746
vt 0.187500 0.500000
vt 0.187500 0.892746
vt 0.218750 0.500000
vt 0.218750 0.892746
vt 0.250000 0.500000
vt 0.250000 0.892746
vt 0.281250 0.500000
vt 0.281250 0.892746
vt 0.312500 0.500000
vt 0.312500 0.892746
vt 0.343750 0.500000
vt 0.343750 0.892746
vt 0.375000 0.500000
vt 0.375000 0.892746
vt 0.406250 0.500000
vt 0.406250 0.892746
vt 0.437500 0.500000
vt 0.437500 0.892746
vt 0.468750 0.500000
vt 0.468750 0.892746
vt 0.500000 0.500000
vt 0.500000 0.892746
vt 0.531250 0.500000
vt 0.531250 0.892746
vt 0.562500 0.500000
vt 0.562500 0.892746
vt 0.593750 0.500000
vt 0.593750 0.892746
vt 0.625000 0.500000
vt 0.625000 0.892746
vt 0.656250 0.500000
vt 0.656250 0.892746
vt 0.687500 0.500000
vt 0.687500 0.892746
vt 0.718750 0.500000
vt 0.718750 0.892746
vt 0.750000 0.500000
vt 0.750000 0.892746
vt 0.781250 0.500000
vt 0.781250 0.892746
vt 0.812500 0.500000
vt 0.812500 0.892746
vt 0.843750 0.500000
vt 0.843750 0.892746
vt 0.875000 0.500000
vt 0.875000 0.892746
vt 0.906250 0.500000
vt 0.906250 0.892746
vt 0.937500 0.500000
vt 0.937500 0.892746
vt 0.968750 0.500000
vt 0.968750 0.892746
vt 1.000000 0.500000
vt 1.000000 0.892746
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.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
vn 0.0000 -1.0000 -0.0000
vn -0.0980 0.0000 -0.9952
vn -0.2903 0.0000 -0.9569
vn -0.4714 0.0000 -0.8819
vn -0.6344 0.0000 -0.7730
vn -0.7730 0.0000 -0.6344
vn -0.8819 0.0000 -0.4714
vn -0.9569 0.0000 -0.2903
vn -0.9952 0.0000 -0.0980
vn -0.9952 0.0000 0.0980
vn -0.9569 0.0000 0.2903
vn -0.8819 0.0000 0.4714
vn -0.7730 0.0000 0.6344
vn -0.6344 0.0000 0.7730
vn -0.4714 0.0000 0.8819
vn -0.2903 0.0000 0.9569
vn -0.0980 0.0000 0.9952
vn 0.0980 0.0000 0.9952
vn 0.2903 0.0000 0.9569
vn 0.4714 0.0000 0.8819
vn 0.6344 0.0000 0.7730
vn 0.7730 0.0000 0.6344
vn 0.8819 0.0000 0.4714
vn 0.9569 0.0000 0.2903
vn 0.9952 0.0000 0.0980
vn 0.9952 0.0000 -0.0980
vn 0.9569 0.0000 -0.2903
vn 0.8819 0.0000 -0.4714
vn 0.7730 0.0000 -0.6344
vn 0.6344 0.0000 -0.7730
vn 0.4714 0.0000 -0.8819
vn 0.2903 0.0000 -0.9569
vn 0.0980 0.0000 -0.9952
vn -0.0909 0.3740 -0.9230
vn -0.2692 0.3740 -0.8875
vn -0.4372 0.3740 -0.8179
vn -0.5884 0.3740 -0.7169
vn -0.7169 0.3740 -0.5884
vn -0.8179 0.3740 -0.4372
vn -0.8875 0.3740 -0.2692
vn -0.9230 0.3740 -0.0909
vn -0.9230 0.3740 0.0909
vn -0.8875 0.3740 0.2692
vn -0.8179 0.3740 0.4372
vn -0.7169 0.3740 0.5884
vn -0.5884 0.3740 0.7169
vn -0.4372 0.3740 0.8179
vn -0.2692 0.3740 0.8875
vn -0.0909 0.3740 0.9230
vn 0.0909 0.3740 0.9230
vn 0.2692 0.3740 0.8875
vn 0.4372 0.3740 0.8179
vn 0.5884 0.3740 0.7169
vn 0.7169 0.3740 0.5884
vn 0.8179 0.3740 0.4372
vn 0.8875 0.3740 0.2692
vn 0.9230 0.3740 0.0909
vn 0.9230 0.3740 -0.0909
vn 0.8875 0.3740 -0.2692
vn 0.8179 0.3740 -0.4372
vn 0.7169 0.3740 -0.5884
vn 0.5884 0.3740 -0.7169
vn 0.4372 0.3740 -0.8179
vn 0.2692 0.3740 -0.8875
vn 0.0909 0.3740 -0.9230
vn 0.0000 1.0000 -0.0000
vn 0.0909 -0.3740 0.9230
vn 0.2692 -0.3740 0.8875
vn 0.4372 -0.3740 0.8179
vn 0.5884 -0.3740 0.7169
vn 0.7169 -0.3740 0.5884
vn 0.8179 -0.3740 0.4372
vn 0.8875 -0.3740 0.2692
vn 0.9230 -0.3740 0.0909
vn 0.9230 -0.3740 -0.0909
vn 0.8875 -0.3740 -0.2692
vn 0.8179 -0.3740 -0.4372
vn 0.7169 -0.3740 -0.5884
vn 0.5884 -0.3740 -0.7169
vn 0.4372 -0.3740 -0.8179
vn 0.2692 -0.3740 -0.8875
vn 0.0909 -0.3740 -0.9230
vn -0.0909 -0.3740 -0.9230
vn -0.2692 -0.3740 -0.8875
vn -0.4372 -0.3740 -0.8179
vn -0.5884 -0.3740 -0.7169
vn -0.7169 -0.3740 -0.5884
vn -0.8179 -0.3740 -0.4372
vn -0.8875 -0.3740 -0.2692
vn -0.9230 -0.3740 -0.0909
vn -0.9230 -0.3740 0.0909
vn -0.8875 -0.3740 0.2692
vn -0.8179 -0.3740 0.4372
vn -0.7169 -0.3740 0.5884
vn -0.5884 -0.3740 0.7169
vn -0.4372 -0.3740 0.8179
vn -0.2692 -0.3740 0.8875
vn -0.0909 -0.3740 0.9230
usemtl None
s off
f 1/1/1 2/2/1 3/3/1 4/4/1 5/5/1 6/6/1 7/7/1 8/8/1 9/9/1 10/10/1 11/11/1 12/12/1 13/13/1 14/14/1 15/15/1 16/16/1 17/17/1 18/18/1 19/19/1 20/20/1 21/21/1 22/22/1 23/23/1 24/24/1 25/25/1 26/26/1 27/27/1 28/28/1 29/29/1 30/30/1 31/31/1 32/32/1
f 32/33/2 65/34/2 34/35/2 1/36/2
f 31/37/3 64/38/3 65/34/3 32/33/3
f 30/39/4 63/40/4 64/38/4 31/37/4
f 29/41/5 62/42/5 63/40/5 30/39/5
f 28/43/6 61/44/6 62/42/6 29/41/6
f 27/45/7 60/46/7 61/44/7 28/43/7
f 26/47/8 59/48/8 60/46/8 27/45/8
f 25/49/9 58/50/9 59/48/9 26/47/9
f 24/51/10 57/52/10 58/50/10 25/49/10
f 23/53/11 56/54/11 57/52/11 24/51/11
f 22/55/12 55/56/12 56/54/12 23/53/12
f 21/57/13 54/58/13 55/56/13 22/55/13
f 20/59/14 53/60/14 54/58/14 21/57/14
f 19/61/15 52/62/15 53/60/15 20/59/15
f 18/63/16 51/64/16 52/62/16 19/61/16
f 17/65/17 50/66/17 51/64/17 18/63/17
f 16/67/18 49/68/18 50/66/18 17/65/18
f 15/69/19 48/70/19 49/68/19 16/67/19
f 14/71/20 47/72/20 48/70/20 15/69/20
f 13/73/21 46/74/21 47/72/21 14/71/21
f 12/75/22 45/76/22 46/74/22 13/73/22
f 11/77/23 44/78/23 45/76/23 12/75/23
f 10/79/24 43/80/24 44/78/24 11/77/24
f 9/81/25 42/82/25 43/80/25 10/79/25
f 8/83/26 41/84/26 42/82/26 9/81/26
f 7/85/27 40/86/27 41/84/27 8/83/27
f 6/87/28 39/88/28 40/86/28 7/85/28
f 5/89/29 38/90/29 39/88/29 6/87/29
f 4/91/30 37/92/30 38/90/30 5/89/30
f 3/93/31 36/94/31 37/92/31 4/91/31
f 2/95/32 35/96/32 36/94/32 3/93/32
f 1/97/33 34/98/33 35/96/33 2/95/33
f 65/34/34 33/99/34 34/35/34
f 65/34/35 64/38/35 33/99/35
f 64/38/36 63/40/36 33/99/36
f 63/40/37 62/42/37 33/99/37
f 62/42/38 61/44/38 33/99/38
f 61/44/39 60/46/39 33/99/39
f 60/46/40 59/48/40 33/99/40
f 59/48/41 58/50/41 33/99/41
f 58/50/42 57/52/42 33/99/42
f 57/52/43 56/54/43 33/99/43
f 56/54/44 55/56/44 33/99/44
f 55/56/45 54/58/45 33/99/45
f 54/58/46 53/60/46 33/99/46
f 53/60/47 52/62/47 33/99/47
f 52/62/48 51/64/48 33/99/48
f 51/64/49 50/66/49 33/99/49
f 50/66/50 49/68/50 33/99/50
f 49/68/51 48/70/51 33/99/51
f 48/70/52 47/72/52 33/99/52
f 47/72/53 46/74/53 33/99/53
f 46/74/54 45/76/54 33/99/54
f 45/76/55 44/78/55 33/99/55
f 44/78/56 43/80/56 33/99/56
f 43/80/57 42/82/57 33/99/57
f 42/82/58 41/84/58 33/99/58
f 41/84/59 40/86/59 33/99/59
f 40/86/60 39/88/60 33/99/60
f 39/88/61 38/90/61 33/99/61
f 38/90/62 37/92/62 33/99/62
f 37/92/63 36/94/63 33/99/63
f 36/94/64 35/96/64 33/99/64
f 35/96/65 34/98/65 33/99/65
f 64/100/1 65/101/1 34/102/1 35/103/1 36/104/1 37/105/1 38/106/1 39/107/1 40/108/1 41/109/1 42/110/1 43/111/1 44/112/1 45/113/1 46/114/1 47/115/1 48/116/1 49/117/1 50/118/1 51/119/1 52/120/1 53/121/1 54/122/1 55/123/1 56/124/1 57/125/1 58/126/1 59/127/1 60/128/1 61/129/1 62/130/1 63/131/1
f 66/132/66 97/133/66 96/134/66 95/135/66 94/136/66 93/137/66 92/138/66 91/139/66 90/140/66 89/141/66 88/142/66 87/143/66 86/144/66 85/145/66 84/146/66 83/147/66 82/148/66 81/149/66 80/150/66 79/151/66 78/152/66 77/153/66 76/154/66 75/155/66 74/156/66 73/157/66 72/158/66 71/159/66 70/160/66 69/161/66 68/162/66 67/163/66
f 97/164/18 66/165/18 99/166/18 130/167/18
f 96/168/19 97/164/19 130/167/19 129/169/19
f 95/170/20 96/168/20 129/169/20 128/171/20
f 94/172/21 95/170/21 128/171/21 127/173/21
f 93/174/22 94/172/22 127/173/22 126/175/22
f 92/176/23 93/174/23 126/175/23 125/177/23
f 91/178/24 92/176/24 125/177/24 124/179/24
f 90/180/25 91/178/25 124/179/25 123/181/25
f 89/182/26 90/180/26 123/181/26 122/183/26
f 88/184/27 89/182/27 122/183/27 121/185/27
f 87/186/28 88/184/28 121/185/28 120/187/28
f 86/188/29 87/186/29 120/187/29 119/189/29
f 85/190/30 86/188/30 119/189/30 118/191/30
f 84/192/31 85/190/31 118/191/31 117/193/31
f 83/194/32 84/192/32 117/193/32 116/195/32
f 82/196/33 83/194/33 116/195/33 115/197/33
f 81/198/2 82/196/2 115/197/2 114/199/2
f 80/200/3 81/198/3 114/199/3 113/201/3
f 79/202/4 80/200/4 113/201/4 112/203/4
f 78/204/5 79/202/5 112/203/5 111/205/5
f 77/206/6 78/204/6 111/205/6 110/207/6
f 76/208/7 77/206/7 110/207/7 109/209/7
f 75/210/8 76/208/8 109/209/8 108/211/8
f 74/212/9 75/210/9 108/211/9 107/213/9
f 73/214/10 74/212/10 107/213/10 106/215/10
f 72/216/11 73/214/11 106/215/11 105/217/11
f 71/218/12 72/216/12 105/217/12 104/219/12
f 70/220/13 71/218/13 104/219/13 103/221/13
f 69/222/14 70/220/14 103/221/14 102/223/14
f 68/224/15 69/222/15 102/223/15 101/225/15
f 67/226/16 68/224/16 101/225/16 100/227/16
f 66/228/17 67/226/17 100/227/17 99/229/17
f 130/167/67 99/166/67 98/230/67
f 130/167/68 98/230/68 129/169/68
f 129/169/69 98/230/69 128/171/69
f 128/171/70 98/230/70 127/173/70
f 127/173/71 98/230/71 126/175/71
f 126/175/72 98/230/72 125/177/72
f 125/177/73 98/230/73 124/179/73
f 124/179/74 98/230/74 123/181/74
f 123/181/75 98/230/75 122/183/75
f 122/183/76 98/230/76 121/185/76
f 121/185/77 98/230/77 120/187/77
f 120/187/78 98/230/78 119/189/78
f 119/189/79 98/230/79 118/191/79
f 118/191/80 98/230/80 117/193/80
f 117/193/81 98/230/81 116/195/81
f 116/195/82 98/230/82 115/197/82
f 115/197/83 98/230/83 114/199/83
f 114/199/84 98/230/84 113/201/84
f 113/201/85 98/230/85 112/203/85
f 112/203/86 98/230/86 111/205/86
f 111/205/87 98/230/87 110/207/87
f 110/207/88 98/230/88 109/209/88
f 109/209/89 98/230/89 108/211/89
f 108/211/90 98/230/90 107/213/90
f 107/213/91 98/230/91 106/215/91
f 106/215/92 98/230/92 105/217/92
f 105/217/93 98/230/93 104/219/93
f 104/219/94 98/230/94 103/221/94
f 103/221/95 98/230/95 102/223/95
f 102/223/96 98/230/96 101/225/96
f 101/225/97 98/230/97 100/227/97
f 100/227/98 98/230/98 99/229/98
f 129/231/66 128/232/66 127/233/66 126/234/66 125/235/66 124/236/66 123/237/66 122/238/66 121/239/66 120/240/66 119/241/66 118/242/66 117/243/66 116/244/66 115/245/66 114/246/66 113/247/66 112/248/66 111/249/66 110/250/66 109/251/66 108/252/66 107/253/66 106/254/66 105/255/66 104/256/66 103/257/66 102/258/66 101/259/66 100/260/66 99/261/66 130/262/66

BIN
models/prtl_0.blend Normal file

Binary file not shown.

BIN
models/prtl_0.blend1 Normal file

Binary file not shown.

View File

@@ -1,11 +1,22 @@
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}}
stone_sounds = {}
stone_sounds.footstep = {name="stone_walk", gain=1.0}
stone_sounds.dug = {name="stone_break", gain=1.0}
stone_sounds.place = {name="block_place", gain=1.0}
glass_sounds = {}
glass_sounds.footstep = {name="glass_walk", gain=1.0}
glass_sounds.dug = {name="glass_break", gain=1.0}
glass_sounds.place = {name="block_place", gain=1.0}
wood_sounds = {}
wood_sounds.footstep = {name="wood_walk", gain=1.0}
wood_sounds.dug = {name="wood_break", gain=1.0}
wood_sounds.place = {name="block_place", gain=1.0}
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(),
sounds = stone_sounds,
is_ground_content = false,
mesecons = {effector = {
action_on = function (pos, node)
@@ -31,7 +42,7 @@ 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(),
sounds = stone_sounds,
is_ground_content = false,
paramtype = "light",
light_source = 4,
@@ -46,7 +57,7 @@ minetest.register_node("portalgun:sign_v", {
drop="portalgun:sign_x",
drawtype = "nodebox",
groups = {mesecon=2,snappy = 3, not_in_creative_inventory=1},
sounds = default.node_sound_wood_defaults(),
sounds = wood_sounds,
is_ground_content = false,
paramtype2 = "facedir",
paramtype = "light",
@@ -68,7 +79,7 @@ minetest.register_node("portalgun:sign_x", {
inventory_image = "portalgun_x.png",
drawtype = "nodebox",
groups = {mesecon=2,snappy = 3, not_in_creative_inventory=0},
sounds = default.node_sound_wood_defaults(),
sounds = wood_sounds,
is_ground_content = false,
paramtype2 = "facedir",
paramtype = "light",
@@ -96,7 +107,7 @@ minetest.register_node("portalgun:portaltarget_" .. 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(),
sounds = stone_sounds,
is_ground_content = false,
paramtype2 = "facedir",
paramtype = "light",
@@ -128,12 +139,12 @@ minetest.register_node("portalgun:button", {
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(),
sounds = stone_sounds,
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})
minetest.sound_play("button_press", {pos=pos,max_hear_distance = 10, gain = 1})
end,
on_timer = function (pos, elapsed)
mesecon.receptor_off(pos)
@@ -158,7 +169,7 @@ minetest.register_node("portalgun:dmgblock_1", {
paramtype="light",
alpha = 50,
sunlight_propagates = true,
sounds = default.node_sound_stone_defaults(),
sounds = stone_sounds,
walkable=false,
damage_per_second = 5,
mesecons = {conductor = {
@@ -218,7 +229,7 @@ minetest.register_node("portalgun:autocheckpoint", {
paramtype = "light",
sunlight_propagates = true,
light_source = 5,
sounds = default.node_sound_stone_defaults(),
sounds = stone_sounds,
drawtype="nodebox",
node_box = {
type="fixed",
@@ -256,7 +267,7 @@ minetest.register_node("portalgun:powerdoor1_1", {
paramtype = "light",
paramtype2 = "facedir",
sunlight_propagates = true,
sounds = default.node_sound_stone_defaults(),
sounds = stone_sounds,
drawtype="nodebox",
alpha = 160,
node_box = {
@@ -311,7 +322,7 @@ minetest.register_node("portalgun:powerdoor1_2", {
paramtype = "light",
paramtype2 = "facedir",
sunlight_propagates = true,
sounds = default.node_sound_stone_defaults(),
sounds = stone_sounds,
drawtype="nodebox",
alpha = 160,
node_box = {
@@ -387,7 +398,7 @@ 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(),
sounds = stone_sounds,
paramtype = "light",
sunlight_propagates = true,
drawtype="nodebox",
@@ -442,7 +453,7 @@ minetest.register_node("portalgun:testblocks", {
description = "Trapblock",
tiles = {"portalgun_testblock.png"},
groups = {cracky = 1,mesecon=2},
sounds = default.node_sound_stone_defaults(),
sounds = stone_sounds,
mesecons = {conductor = {
state = mesecon.state.off,
onstate = "portalgun:testblocks2",
@@ -470,7 +481,6 @@ minetest.register_node("portalgun:door_1", {
description = "Mesecon Door",
drop="portalgun:door_1",
drawtype = "nodebox",
paramtype = "light",
node_box = {
type = "fixed",
fixed = {
@@ -479,7 +489,7 @@ minetest.register_node("portalgun:door_1", {
},
tiles = {"portalgun_testblock.png"},
groups = {mesecon=1,cracky = 1, level = 2, not_in_creative_inventory=0},
sounds = default.node_sound_stone_defaults(),
sounds = stone_sounds,
paramtype = "light",
paramtype2 = "facedir",
sunlight_propagates = true,
@@ -512,7 +522,6 @@ minetest.register_node("portalgun:door_2", {
description = "Door 2-1",
drawtype = "nodebox",
drop="portalgun:door_1",
paramtype = "light",
node_box = {
type = "fixed",
fixed = {
@@ -521,7 +530,7 @@ minetest.register_node("portalgun:door_2", {
},
tiles = {"portalgun_testblock.png"},
groups = {mesecon=1,cracky = 1, level = 2, not_in_creative_inventory=1},
sounds = default.node_sound_wood_defaults(),
sounds = wood_sounds,
paramtype = "light",
paramtype2 = "facedir",
sunlight_propagates = true,
@@ -544,7 +553,6 @@ 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 = {
@@ -553,7 +561,7 @@ minetest.register_node("portalgun:door_open_1", {
},
tiles = {"portalgun_testblock.png"},
groups = {mesecon=1,cracky = 1, level = 2, not_in_creative_inventory=1},
sounds = default.node_sound_wood_defaults(),
sounds = wood_sounds,
paramtype = "light",
paramtype2 = "facedir",
sunlight_propagates = true,
@@ -575,7 +583,6 @@ 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 = {
@@ -584,7 +591,7 @@ minetest.register_node("portalgun:door_open_2", {
},
tiles = {"portalgun_testblock.png"},
groups = {mesecon=1,cracky = 1, level = 2, not_in_creative_inventory=1},
sounds = default.node_sound_wood_defaults(),
sounds = wood_sounds,
paramtype = "light",
paramtype2 = "facedir",
sunlight_propagates = true,

View File

@@ -1,8 +1,20 @@
stone_sounds = {}
stone_sounds.footstep = {name="stone_walk", gain=1.0}
stone_sounds.dug = {name="stone_break", gain=1.0}
stone_sounds.place = {name="block_place", gain=1.0}
glass_sounds = {}
glass_sounds.footstep = {name="glass_walk", gain=1.0}
glass_sounds.dug = {name="glass_break", gain=1.0}
glass_sounds.place = {name="block_place", gain=1.0}
wood_sounds = {}
wood_sounds.footstep = {name="wood_walk", gain=1.0}
wood_sounds.dug = {name="wood_break", gain=1.0}
wood_sounds.place = {name="block_place", gain=1.0}
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"},
tiles = {"steel.png","steel.png","steel.png","steel.png","steel.png","portalgun_powerballspawner.png"},
groups = {cracky=2},
sounds = default.node_sound_glass_defaults(),
sounds = glass_sounds,
is_ground_content = false,
paramtype2 = "facedir",
on_place = minetest.rotate_node,
@@ -29,9 +41,9 @@ minetest.register_node("portalgun:powerballspawner", {
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"},
tiles = {"steel.png","steel.png","steel.png","steel.png","steel.png","portalgun_powerballspawner.png^[colorize:#aaaa0055"},
groups = {cracky=2,mesecon=1},
sounds = default.node_sound_glass_defaults(),
sounds = glass_sounds,
is_ground_content = false,
paramtype2 = "facedir",
on_place = minetest.rotate_node,
@@ -66,7 +78,7 @@ minetest.register_entity("portalgun:powerball",{
initial_sprite_basepos = {x=0, y=0},
is_visible = true,
makes_footstep_sound = false,
automatic_rotate = false,
automatic_rotate = 0,
portalgun=2,
powerball=1,
on_activate= function(self, staticdata)
@@ -87,8 +99,6 @@ on_step= function(self, dtime)
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
@@ -101,7 +111,6 @@ on_step= function(self, dtime)
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()
@@ -128,7 +137,7 @@ minetest.register_node("portalgun:powerballtarget", {
tiles = {"portalgun_powerballstarget.png"},
groups = {mesecon = 2,cracky=2},
mesecons = {receptor = {state = "off"}},
sounds = default.node_sound_stone_defaults(),
sounds = stone_sounds,
is_ground_content = false,
on_timer = function (pos, elapsed)
mesecon.receptor_off(pos)

BIN
sounds/block_place.ogg Normal file

Binary file not shown.

BIN
sounds/button_press.ogg Normal file

Binary file not shown.

BIN
sounds/glass_break.ogg Normal file

Binary file not shown.

BIN
sounds/glass_walk.ogg Normal file

Binary file not shown.

BIN
sounds/stone_break.ogg Normal file

Binary file not shown.

BIN
sounds/stone_walk.ogg Normal file

Binary file not shown.

BIN
sounds/wood_break.ogg Normal file

Binary file not shown.

BIN
sounds/wood_walk.ogg Normal file

Binary file not shown.

View File

@@ -1,3 +1,15 @@
stone_sounds = {}
stone_sounds.footstep = {name="stone_walk", gain=1.0}
stone_sounds.dug = {name="stone_break", gain=1.0}
stone_sounds.place = {name="block_place", gain=1.0}
glass_sounds = {}
glass_sounds.footstep = {name="glass_walk", gain=1.0}
glass_sounds.dug = {name="glass_break", gain=1.0}
glass_sounds.place = {name="block_place", gain=1.0}
wood_sounds = {}
wood_sounds.footstep = {name="wood_walk", gain=1.0}
wood_sounds.dug = {name="wood_break", gain=1.0}
wood_sounds.place = {name="block_place", gain=1.0}
local snuma=1
for ii = 0, 9, 1 do
if ii==1 then snuma=0 end
@@ -7,7 +19,7 @@ minetest.register_node("portalgun:sign_numa".. ii, {
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(),
sounds = wood_sounds,
is_ground_content = false,
paramtype2 = "facedir",
paramtype = "light",
@@ -51,7 +63,7 @@ minetest.register_node("portalgun:sign_numb".. ii, {
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(),
sounds = wood_sounds,
is_ground_content = false,
paramtype2 = "facedir",
paramtype = "light",
@@ -87,7 +99,7 @@ minetest.register_node("portalgun:turretgun2", {
paramtype = "light",
paramtype2 = "facedir",
sunlight_propagates = true,
sounds = default.node_sound_defaults(),
sounds = stone_sounds,
tiles = {"portalgun_sentry_turret.png"},
drawtype = "mesh",
mesh="torret2.obj",
@@ -152,7 +164,7 @@ minetest.register_node("portalgun:turretgun", {
paramtype = "light",
paramtype2 = "facedir",
sunlight_propagates = true,
sounds = default.node_sound_defaults(),
sounds = stone_sounds,
tiles = {"portalgun_sentry_turret.png"},
drawtype = "mesh",
mesh="torret1.obj",
@@ -207,6 +219,22 @@ minetest.register_node("portalgun:turretgun", {
end
})
--giveitems register_chatcommand
minetest.register_chatcommand("giveitems", {
description = "Give items to player",
privs = {give=true},
func = function(name)
local player = minetest.get_player_by_name(name)
if player then
--give all items that dont have not_in_creative_inventory=1
for i,v in pairs(minetest.registered_items) do
if v.not_in_creative_inventory==nil or v.not_in_creative_inventory==0 then
player:get_inventory():add_item("main",i.." 1")
end
end
end
end,
})
minetest.register_node("portalgun:warntape", {
description = "Warntape",
@@ -214,7 +242,7 @@ minetest.register_node("portalgun:warntape", {
paramtype = "light",
paramtype2 = "facedir",
sunlight_propagates = true,
sounds = default.node_sound_defaults(),
sounds = stone_sounds,
tiles = {"portalgun_warntape.png",},
walkable = false,
drawtype = "nodebox",
@@ -231,7 +259,6 @@ 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,
@@ -250,13 +277,11 @@ minetest.register_node("portalgun:toxwater_1", {
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,
@@ -277,8 +302,7 @@ minetest.register_node("portalgun:toxwater_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(),
groups = {water = 3, liquid = 3, not_in_creative_inventory = 1}
})
minetest.register_tool("portalgun:ed", {
@@ -301,7 +325,6 @@ on_use = function(itemstack, user, pointed_thing)
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
@@ -314,10 +337,10 @@ minetest.register_node("portalgun:cake", {
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(),
sounds = stone_sounds,
tiles = {
"default_dirt.png^portalgun_cake1.png",
"default_dirt.png^portalgun_cake2.png",
"dirt.png^portalgun_cake1.png",
"dirt.png^portalgun_cake2.png",
},
drawtype = "nodebox",
node_box = {
@@ -342,14 +365,14 @@ minetest.register_node("portalgun:testblock", {
description = "Test block",
tiles = {"portalgun_testblock.png"},
groups = {cracky = 1},
sounds = default.node_sound_stone_defaults(),
sounds = stone_sounds,
})
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(),
sounds = stone_sounds,
})
minetest.register_node("portalgun:apg", {
@@ -357,18 +380,18 @@ minetest.register_node("portalgun:apg", {
drawtype="glasslike",
paramtype="light",
sunlight_propagates = true,
tiles = {"default_glass.png^[colorize:#ffffffaa"},
tiles = {"glass.png^[colorize:#ffffffaa"},
groups = {cracky = 1,antiportal=1},
sounds = default.node_sound_glass_defaults(),
sounds = glass_sounds,
})
minetest.register_node("portalgun:hard_glass", {
description = "Hard glass",
drawtype="glasslike",
paramtype="light",
sunlight_propagates = true,
tiles = {"default_glass.png^[colorize:#ddddddaa"},
tiles = {"glass.png^[colorize:#ddddddaa"},
groups = {cracky = 1},
sounds = default.node_sound_glass_defaults(),
sounds = glass_sounds,
})
function portalgun_visiable(pos,ob)
@@ -428,7 +451,7 @@ minetest.register_node("portalgun:secam_off", {
drawtype = "nodebox",
walkable=false,
groups = {dig_immediate = 3},
sounds = default.node_sound_glass_defaults(),
sounds = glass_sounds,
is_ground_content = false,
paramtype = "light",
paramtype2 = "facedir",
@@ -452,7 +475,7 @@ minetest.register_node("portalgun:secam", {
drawtype = "nodebox",
walkable=false,
groups = {dig_immediate = 3,stone=1,not_in_creative_inventory=1},
sounds = default.node_sound_glass_defaults(),
sounds = glass_sounds,
is_ground_content = false,
paramtype = "light",
paramtype2 = "facedir",
@@ -485,14 +508,28 @@ on_timer=function(pos, elapsed)
end,
})
--register command for admins to build a testblock at the players position
minetest.register_chatcommand("testblock", {
params = "",
description = "builds a testblock at the players position",
privs = {server=true},
func = function(name, param)
local player = minetest.get_player_by_name(name)
local pos = player:get_pos()
minetest.set_node(pos, {name = "portalgun:testblock"})
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 = "mesh",
mesh = "bullet.obj",
--yellow color as tiles
tiles = {"#color[yellow]"},
visual_size = {x=0.1, y=0.1},
textures = {"default_mese_block.png"},
initial_sprite_basepos = {x=0, y=0},
portalgun=2,
bullet=1,
@@ -506,9 +543,12 @@ on_step= function(self, dtime)
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)
if ob:is_player() then
if ob:get_hp() > 2 then
ob:set_hp(ob:get_hp()-2)
else
ob:set_hp(0)
end
self.object:remove()
return
end
@@ -524,7 +564,7 @@ minetest.register_node("portalgun:sign1", {
inventory_image = "portalgun_testblock.png^portalgun_sign1.png",
drawtype = "nodebox",
groups = {snappy = 3, not_in_creative_inventory=0},
sounds = default.node_sound_wood_defaults(),
sounds = wood_sounds,
is_ground_content = false,
paramtype2 = "facedir",
paramtype = "light",
@@ -539,7 +579,7 @@ minetest.register_node("portalgun:sign2", {
inventory_image = "portalgun_testblock.png^portalgun_sign2.png",
drawtype = "nodebox",
groups = {snappy = 3, not_in_creative_inventory=0},
sounds = default.node_sound_wood_defaults(),
sounds = wood_sounds,
is_ground_content = false,
paramtype2 = "facedir",
paramtype = "light",

BIN
textures/cloud.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 B

BIN
textures/dirt.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 507 B

BIN
textures/glass.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 553 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

BIN
textures/steel.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 247 B

View File

@@ -1,4 +1,15 @@
stone_sounds = {}
stone_sounds.footstep = {name="stone_walk", gain=1.0}
stone_sounds.dug = {name="stone_break", gain=1.0}
stone_sounds.place = {name="block_place", gain=1.0}
glass_sounds = {}
glass_sounds.footstep = {name="glass_walk", gain=1.0}
glass_sounds.dug = {name="glass_break", gain=1.0}
glass_sounds.place = {name="block_place", gain=1.0}
wood_sounds = {}
wood_sounds.footstep = {name="wood_walk", gain=1.0}
wood_sounds.dug = {name="wood_break", gain=1.0}
wood_sounds.place = {name="block_place", gain=1.0}
local ptgwsc={
{"weightedstoragecube.png","portalgun_presplat.png","(blue)"},
{"weightedstoragecube2.png","portalgun_presplat2.png","(orange)"},
@@ -26,13 +37,12 @@ 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]},
tiles = {"steel.png","steel.png","steel.png","steel.png","steel.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(),
sounds = glass_sounds,
is_ground_content = false,
paramtype2 = "facedir",
mesecons = {effector = {
mesecons = {receptor = {state = "off"}, effector = {
action_on = function (pos, node)
local dir=minetest.get_node(pos).param2
local v={x=0, y=0, z=0}
@@ -62,7 +72,7 @@ minetest.register_entity("portalgun:wsc" ..ii,{
initial_sprite_basepos = {x=0, y=0},
is_visible = true,
makes_footstep_sound = true,
automatic_rotate = false,
automatic_rotate = 0,
portalgun=2,
wsc=ii,
on_activate= function(self, staticdata)
@@ -78,7 +88,7 @@ on_step= function(self, dtime)
self.timer=0
self.object:set_acceleration({x=0, y=-10, z=0})
self.timer2=self.timer2+1
if self.timer2>10 then
if self.timer2>4 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
@@ -86,7 +96,6 @@ on_step= function(self, dtime)
end
end
self.object:set_hp(0)
self.object:punch(self.object, 1, "default:bronze_pick", nil)
end
end,
timer=0,
@@ -100,8 +109,8 @@ minetest.register_node("portalgun:wscspawner"..ii, {
paramtype = "light",
paramtype2="facedir",
sunlight_propagates = true,
light_source = default.LIGHT_MAX - 1,
sounds = default.node_sound_stone_defaults(),
light_source = 14,
sounds = stone_sounds,
drawtype="nodebox",
node_box = {
type = "fixed",
@@ -131,12 +140,12 @@ minetest.register_node("portalgun:wscspawner"..ii, {
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"},
tiles = {ptgwsc[ii][2],"cloud.png","cloud.png","cloud.png","cloud.png","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(),
sounds = stone_sounds,
drawtype="nodebox",
node_box = {
type = "fixed",
@@ -168,14 +177,14 @@ minetest.register_node("portalgun:plantform1_" ..ii, {
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"},
tiles = {ptgwsc[ii][2],"cloud.png","cloud.png","cloud.png","cloud.png","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(),
light_source = 14,
sounds = stone_sounds,
drawtype="nodebox",
node_box = {
type = "fixed",
@@ -209,12 +218,12 @@ 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"},
tiles = {"portalgun_presplat5.png","cloud.png","cloud.png","cloud.png","cloud.png","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(),
sounds = stone_sounds,
drawtype="nodebox",
node_box = {
type = "fixed",
@@ -246,14 +255,14 @@ minetest.register_node("portalgun:plantform_nu1", {
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"},
tiles = {"portalgun_presplat5.png","cloud.png","cloud.png","cloud.png","cloud.png","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(),
light_source = 14,
sounds = stone_sounds,
drawtype="nodebox",
node_box = {
type = "fixed",
@@ -284,12 +293,12 @@ minetest.register_node("portalgun:plantform_nu2", {
minetest.register_node("portalgun:planthole", {
description = "Plathole (activate by any cube, 2 blocks under)",
tiles = {"default_cloud.png"},
tiles = {"cloud.png"},
groups = {mesecon = 2,cracky = 1},
mesecons = {receptor = {state = "off"}},
paramtype = "light",
sunlight_propagates = true,
sounds = default.node_sound_stone_defaults(),
sounds = stone_sounds,
drawtype="nodebox",
node_box = {
type = "fixed",
@@ -326,14 +335,13 @@ 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(),
sounds = stone_sounds,
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
@@ -346,7 +354,7 @@ minetest.register_node("portalgun:objdestroyer_2", {
sunlight_propagates = true,
drop="portalgun:objdestroyer_1",
paramtype="light",
light_source = default.LIGHT_MAX - 1,
light_source = 14,
mesecons = {conductor = {
state = mesecon.state.on,
offstate = "portalgun:objdestroyer_1",