minetest_pep/init.lua

226 lines
5.9 KiB
Lua
Raw Normal View History

pep = {}
function pep.register_potion(potiondef)
local on_use
if(potiondef.effect_type ~= nil) then
on_use = function(itemstack, user, pointed_thing)
playereffects.apply_effect_type(potiondef.effect_type, potiondef.duration, user)
itemstack:take_item()
return itemstack
end
else
on_use = function(itemstack, user, pointed_thing)
itemstack:take_item()
return itemstack
end
end
2014-09-27 18:51:54 -07:00
minetest.register_craftitem("pep:"..potiondef.basename, {
description = "Glass Bottle ("..potiondef.contentstring..")",
2014-09-27 18:51:54 -07:00
inventory_image = "pep_"..potiondef.basename..".png",
wield_image = "pep_"..potiondef.basename..".png",
on_use = on_use,
})
end
playereffects.register_effect_type("pepspeedplus", "High speed", nil, {"speed"},
function(player)
player:set_physics_override({speed=2})
end,
function(effect, player)
player:set_physics_override({speed=1})
end
)
playereffects.register_effect_type("pepspeedminus", "Low speed", nil, {"speed"},
function(player)
player:set_physics_override({speed=0.5})
end,
function(effect, player)
player:set_physics_override({speed=1})
end
)
2014-07-25 03:45:06 -07:00
playereffects.register_effect_type("pepspeedreset", "Speed neutralizer", nil, {"speed"},
function() end, function() end)
playereffects.register_effect_type("pepjumpplus", "High jump", nil, {"jump"},
function(player)
player:set_physics_override({jump=2})
end,
function(effect, player)
player:set_physics_override({jump=1})
end
)
playereffects.register_effect_type("pepjumpminus", "Low jump", nil, {"jump"},
function(player)
player:set_physics_override({jump=0.5})
end,
function(effect, player)
player:set_physics_override({jump=1})
end
)
2014-07-25 03:45:06 -07:00
playereffects.register_effect_type("pepjumpreset", "Jump height neutralizer", nil, {"jump"},
function() end, function() end)
2014-07-25 03:29:35 -07:00
playereffects.register_effect_type("pepgrav0", "No gravity", nil, {"gravity"},
function(player)
player:set_physics_override({gravity=0})
end,
function(effect, player)
player:set_physics_override({gravity=1})
end
)
2014-07-25 03:45:06 -07:00
playereffects.register_effect_type("pepgravreset", "Gravity neutralizer", nil, {"gravity"},
function() end, function() end)
playereffects.register_effect_type("pepregen", "Regeneration", nil, {"health"},
function(player)
player:set_hp(player:get_hp()+1)
end,
nil, nil, nil, 2
)
playereffects.register_effect_type("pepregen2", "Strong regeneration", nil, {"health"},
function(player)
player:set_hp(player:get_hp()+2)
end,
nil, nil, nil, 1
)
playereffects.register_effect_type("pepbreath", "Perfect breath", nil, {"breath"},
function(player)
player:set_breath(player:get_breath()+2)
end,
nil, nil, nil, 1
)
pep.register_potion({
basename = "speedplus",
contentstring = "Running Potion",
effect_type = "pepspeedplus",
duration = 30
})
pep.register_potion({
basename = "speedminus",
contentstring = "Slug Potion",
effect_type = "pepspeedminus",
duration = 30
})
2014-07-25 03:45:06 -07:00
pep.register_potion({
basename = "speedreset",
contentstring = "Speed Neutralizer",
effect_type = "pepspeedreset",
duration = 0
})
pep.register_potion({
basename = "breath",
contentstring = "Air Potion",
effect_type = "pepbreath",
2014-09-27 18:51:54 -07:00
duration = 30,
})
pep.register_potion({
basename = "regen",
contentstring = "Weak Healing Potion",
effect_type = "pepregen",
duration = 10,
})
pep.register_potion({
basename = "regen2",
contentstring = "Strong Healing Potion",
effect_type = "pepregen2",
duration = 10,
})
pep.register_potion({
2014-07-25 03:29:35 -07:00
basename = "grav0",
contentstring = "Non-Gravity Potion",
2014-07-25 03:29:35 -07:00
effect_type = "pepgrav0",
duration = 20,
})
2014-07-25 03:45:06 -07:00
pep.register_potion({
basename = "gravreset",
contentstring = "Gravity Neutralizer",
effect_type = "pepgravreset",
duration = 0,
})
pep.register_potion({
basename = "jumpplus",
contentstring = "High Jumping Potion",
effect_type = "pepjumpplus",
duration = 30,
})
pep.register_potion({
basename = "jumpminus",
contentstring = "Low Jumping Potion",
effect_type = "pepjumpminus",
duration = 30,
})
2014-07-25 03:45:06 -07:00
pep.register_potion({
basename = "jumpreset",
contentstring = "Jump Neutralizer",
effect_type = "pepjumpreset",
duration = 0,
})
2014-07-25 03:29:35 -07:00
--[=[ register crafts ]=]
--[[ normal potions ]]
2014-09-27 18:51:54 -07:00
if(minetest.get_modpath("vessels")~=nil) then
if(minetest.get_modpath("default")~=nil) then
minetest.register_craft({
type = "shapeless",
output = "pep:breath",
2014-09-27 18:51:54 -07:00
recipe = { "default:papyrus", "default:papyrus", "default:papyrus", "default:papyrus",
"default:papyrus", "default:papyrus", "default:papyrus", "default:papyrus", "vessels:glass_bottle" }
})
minetest.register_craft({
type = "shapeless",
output = "pep:speedminus",
2014-09-27 18:51:54 -07:00
recipe = { "default:dry_shrub", "vessels:glass_bottle" }
})
if(minetest.get_modpath("flowers") ~= nil) then
minetest.register_craft({
type = "shapeless",
output = "pep:jumpplus",
2014-09-27 18:51:54 -07:00
recipe = { "flowers:flower_geranium", "default:grass_1", "vessels:glass_bottle" }
})
end
minetest.register_craft({
type = "shapeless",
output = "pep:jumpminus",
2014-09-27 18:51:54 -07:00
recipe = { "default:leaves", "default:jungleleaves", "vessels:glass_bottle" }
})
minetest.register_craft({
type = "shapeless",
output = "pep:regen",
2014-09-27 18:51:54 -07:00
recipe = { "default:cactus", "default:junglegrass", "vessels:glass_bottle" }
})
2014-09-27 18:51:54 -07:00
minetest.register_craft({
type = "shapeless",
2014-07-25 03:29:35 -07:00
output = "pep:grav0",
2014-09-27 18:51:54 -07:00
recipe = { "default:mese_crystal", "vessels:glass_bottle" }
})
end
2014-07-25 03:29:35 -07:00
if(minetest.get_modpath("flowers") ~= nil) then
minetest.register_craft({
type = "shapeless",
output = "pep:speedplus",
2014-09-27 18:51:54 -07:00
recipe = { "flowers:rose", "flowers:dandelion_yellow", "vessels:glass_bottle" }
2014-07-25 03:29:35 -07:00
})
end
2014-09-27 18:51:54 -07:00
end
2014-07-25 03:29:35 -07:00
2014-09-27 18:51:54 -07:00
--[[ independent crafts ]]
2014-07-25 03:29:35 -07:00
minetest.register_craft({
type = "shapeless",
output = "pep:speedreset",
recipe = { "pep:speedplus", "pep:speedminus" }
})
minetest.register_craft({
type = "shapeless",
output = "pep:jumpreset",
recipe = { "pep:jumpplus", "pep:jumpminus" }
})
minetest.register_craft({
type = "shapeless",
output = "pep:gravreset" ,
recipe = { "pep:grav0", "group:stone" }
})
2014-09-27 18:51:54 -07:00
minetest.register_craft({
type = "shapeless",
output = "pep:regen2",
recipe = { "default:gold_lump", "pep:regen" }
})