From 6c6a36ab966beb29b141b91e3696d23c5e1ec1a5 Mon Sep 17 00:00:00 2001 From: Niwla23 Date: Mon, 7 Oct 2019 20:31:28 +0200 Subject: [PATCH] Use an API --- init.lua | 106 +++++++++++++------------------------------------------ 1 file changed, 24 insertions(+), 82 deletions(-) diff --git a/init.lua b/init.lua index 6929824..04b67ab 100644 --- a/init.lua +++ b/init.lua @@ -1,89 +1,31 @@ -minetest.register_craftitem("upgrades:speed", { - description = "Speed Upgrade", - inventory_image = "default_paper.png^upgrades_red.png", - on_use = function(itemstack, user, pointed_thing) - user:set_physics_override({speed=2}) - itemstack:take_item() - local name = user:get_player_name() - minetest.after(30, function() - local player = minetest.get_player_by_name(name) - if player then - player:set_physics_override({speed=1}) - end - end) - return itemstack - end, -}) +upgrades = {} -minetest.register_craftitem("upgrades:extremejump", { - description = "Extreme Jump Upgrade", - inventory_image = "default_paper.png^upgrades_pink.png", - on_use = function(itemstack, user, pointed_thing) - user:set_physics_override({jump=2}) - itemstack:take_item() - local name = user:get_player_name() - minetest.after(30, function() - local player = minetest.get_player_by_name(name) - if player then - player:set_physics_override({jump=1}) - end - end) - return itemstack - end, -}) +function upgrades.register_upgrade(itemname, description, overlay, physics_override) + minetest.register_craftitem("upgrades:"..itemname, { + description = description, + inventory_image = "default_paper.png^"..overlay, + on_use = function(itemstack, user, pointed_thing) + user:set_physics_override(physics_override) + itemstack:take_item() + local playername = user:get_player_name() + minetest.after(30, function() + local player = minetest.get_player_by_name(playername) + if player then + player:set_physics_override({speed=1,jump=1,gravity=1}) + end + end) + return itemstack + end, + }) +end -minetest.register_craftitem("upgrades:jump", { - description = "Jump Upgrade", - inventory_image = "default_paper.png^upgrades_yellow.png", - on_use = function(itemstack, user, pointed_thing) - user:set_physics_override({jump=1.25}) - itemstack:take_item() - local name = user:get_player_name() - minetest.after(30, function() - local player = minetest.get_player_by_name(name) - if player then - player:set_physics_override({jump=1}) - end - end) - return itemstack - end, -}) +upgrades.register_upgrade("speed", "Speed Upgrade", "upgrades_red.png", {speed=2}) +upgrades.register_upgrade("extremejump", "Extreme Jump Upgrade", "upgrades_pink.png", {jump=2}) +upgrades.register_upgrade("jump", "Jump Upgrade", "upgrades_yellow.png", {jump=1.25}) +upgrades.register_upgrade("lowgravity", "Low Gravity Upgrade", "upgrades_green.png", {gravity=0.5}) +upgrades.register_upgrade("nogravity", "No Gravity Upgrade", "upgrades_green.png", {gravity=0.01}) -minetest.register_craftitem("upgrades:lowgravity", { - description = "Low Gravity Upgrade", - inventory_image = "default_paper.png^upgrades_green.png", - on_use = function(itemstack, user, pointed_thing) - user:set_physics_override({gravity=0.5}) - itemstack:take_item() - local name = user:get_player_name() - minetest.after(30, function() - local player = minetest.get_player_by_name(name) - if player then - player:set_physics_override({gravity=1}) - end - end) - return itemstack - end, -}) - -minetest.register_craftitem("upgrades:nogravity", { - description = "No Gravity Upgrade", - inventory_image = "default_paper.png^upgrades_green.png", - on_use = function(itemstack, user, pointed_thing) - user:set_physics_override({gravity=0.01}) - itemstack:take_item() - local name = user:get_player_name() - minetest.after(30, function() - local player = minetest.get_player_by_name(name) - if player then - player:set_physics_override({gravity=1}) - end - end) - return itemstack - end, -}) - minetest.register_chatcommand("resetupgrades", { params = "", description = "Test 1: Modify player's inventory view",