add fly potions

master
tchncs 2016-10-02 11:30:13 +02:00
parent 6514a792e6
commit 2966d350ef
4 changed files with 97 additions and 2 deletions

View File

@ -71,7 +71,6 @@ minetest.register_node("magical_potion:medicine_huge", {
on_use = function(itemstack, player)
local health = player:get_hp();
player:set_hp(health+20)
itemstack:replace("vessels:glass_bottle")
if minetest.get_modpath("vessels") then
player:get_inventory():add_item("main", "vessels:glass_bottle")
end
@ -79,3 +78,82 @@ minetest.register_node("magical_potion:medicine_huge", {
return itemstack
end,
})
minetest.register_node("magical_potion:fly_small", {
description = "Small bottle of Fly",
drawtype = "plantlike",
tiles = {"fly_bottle_small.png"},
wield_image = "fly_bottle_small.png",
paramtype = "light",
stack_max = 1,
is_ground_content = false,
walkable = false,
selection_box = {
type = "fixed",
fixed = {-0.25, -0.5, -0.25, 0.25, 0.4, 0.25}
},
groups = {vessel=1,dig_immediate=3,attached_node=1, potion=1},
sounds = default.node_sound_glass_defaults(),
inventory_image = "fly_bottle_small.png",
on_use = function(itemstack, player)
playereffects.apply_effect_type("fly_bottle", 20, player)
if minetest.get_modpath("vessels") then
player:get_inventory():add_item("main", "vessels:glass_bottle")
end
itemstack:take_item(1)
return itemstack
end,
})
minetest.register_node("magical_potion:fly_big", {
description = "Big bottle of Fly",
drawtype = "plantlike",
tiles = {"fly_bottle_big.png"},
wield_image = "fly_bottle_big.png",
paramtype = "light",
stack_max = 1,
is_ground_content = false,
walkable = false,
selection_box = {
type = "fixed",
fixed = {-0.25, -0.5, -0.25, 0.25, 0.4, 0.25}
},
groups = {vessel=1,dig_immediate=3,attached_node=1, potion=1},
sounds = default.node_sound_glass_defaults(),
inventory_image = "fly_bottle_big.png",
on_use = function(itemstack, player)
playereffects.apply_effect_type("fly_bottle", 60, player)
if minetest.get_modpath("vessels") then
player:get_inventory():add_item("main", "vessels:glass_bottle")
end
itemstack:take_item(1)
return itemstack
end,
})
minetest.register_node("magical_potion:fly_huge", {
description = "Huge bottle of Fly",
drawtype = "plantlike",
tiles = {"fly_bottle_huge.png"},
wield_image = "fly_bottle_huge.png",
paramtype = "light",
stack_max = 1,
is_ground_content = false,
walkable = false,
selection_box = {
type = "fixed",
fixed = {-0.25, -0.5, -0.25, 0.25, 0.4, 0.25}
},
groups = {vessel=1,dig_immediate=3,attached_node=1, potion=1},
sounds = default.node_sound_glass_defaults(),
inventory_image = "fly_bottle_huge.png",
on_use = function(itemstack, player)
playereffects.apply_effect_type("fly_bottle", 300, player)
if minetest.get_modpath("vessels") then
player:get_inventory():add_item("main", "vessels:glass_bottle")
end
itemstack:take_item(1)
return itemstack
end,
})

View File

@ -1,2 +1,2 @@
vessels
player_effect ?
player_effects ?

16
functions.lua Normal file
View File

@ -0,0 +1,16 @@
playereffects.register_effect_type("fly_bottle", "Fly mode available", "wings.png", {"fly"},
function(player)
local playername = player:get_player_name()
local privs = minetest.get_player_privs(playername)
privs.fly = true
privs.fast = true
minetest.set_player_privs(playername, privs)
end,
function(effect, player)
local privs = minetest.get_player_privs(effect.playername)
privs.fly = nil
privs.fast = nil
minetest.set_player_privs(effect.playername, privs)
end,
false,
false)

View File

@ -1,3 +1,4 @@
local magical_potion = {}
dofile(minetest.get_modpath("magical_potion").."/bottles.lua")
dofile(minetest.get_modpath("magical_potion").."/functions.lua")