From 2966d350ef276aef01a1a789504cfb63fada1c6d Mon Sep 17 00:00:00 2001 From: tchncs Date: Sun, 2 Oct 2016 11:30:13 +0200 Subject: [PATCH] add fly potions --- bottles.lua | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++- depends.txt | 2 +- functions.lua | 16 +++++++++++ init.lua | 1 + 4 files changed, 97 insertions(+), 2 deletions(-) create mode 100644 functions.lua diff --git a/bottles.lua b/bottles.lua index 8dd3961..03b50c1 100644 --- a/bottles.lua +++ b/bottles.lua @@ -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, +}) + diff --git a/depends.txt b/depends.txt index 00e0aa1..2c93e12 100644 --- a/depends.txt +++ b/depends.txt @@ -1,2 +1,2 @@ vessels -player_effect ? +player_effects ? diff --git a/functions.lua b/functions.lua new file mode 100644 index 0000000..0f32c3d --- /dev/null +++ b/functions.lua @@ -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) diff --git a/init.lua b/init.lua index a613427..9713b73 100644 --- a/init.lua +++ b/init.lua @@ -1,3 +1,4 @@ local magical_potion = {} dofile(minetest.get_modpath("magical_potion").."/bottles.lua") +dofile(minetest.get_modpath("magical_potion").."/functions.lua")