From 41690f50aae8d9ae870b2cfc01b46e67856fad1b Mon Sep 17 00:00:00 2001 From: cale Date: Sun, 1 Jan 2017 11:23:00 +0100 Subject: [PATCH] added quests tab to inventory + fixed some bugs --- mods/blueprint/depends.txt | 1 + mods/blueprint/init.lua | 9 +++++++-- mods/crafting_guide/init.lua | 10 +++++++++- mods/default/functions.lua | 6 +++--- mods/furnace/furnace.lua | 9 ++------- mods/mobs/api.lua | 8 ++++---- mods/quests/init.lua | 9 +++++++++ mods/skills/abilities.lua | 9 +++++++-- mods/skills/init.lua | 8 +++++++- 9 files changed, 49 insertions(+), 20 deletions(-) diff --git a/mods/blueprint/depends.txt b/mods/blueprint/depends.txt index 4ad96d5..07f8b9f 100644 --- a/mods/blueprint/depends.txt +++ b/mods/blueprint/depends.txt @@ -1 +1,2 @@ default +central_message diff --git a/mods/blueprint/init.lua b/mods/blueprint/init.lua index ad29c22..a9d17a9 100644 --- a/mods/blueprint/init.lua +++ b/mods/blueprint/init.lua @@ -24,8 +24,13 @@ minetest.register_craftitem("blueprint:empty", { description = "Empty Blueprint", inventory_image = "blueprint_empty.png", on_place = function(itemstack, placer, pointed_thing) - placer:get_inventory():add_item("main", blueprint.all[math.random(#blueprint.all)]) - itemstack:take_item() + local item = blueprint.all[math.random(#blueprint.all)] + if placer:get_inventory():room_for_item("main", item) then + placer:get_inventory():add_item("main", item) + itemstack:take_item() + else + cmsg.push_message_player(placer, "[info] You don't have any free space in your inventory.") + end return itemstack end }) diff --git a/mods/crafting_guide/init.lua b/mods/crafting_guide/init.lua index 7626d54..1ac81f4 100644 --- a/mods/crafting_guide/init.lua +++ b/mods/crafting_guide/init.lua @@ -3,7 +3,7 @@ crafting_guide = {} crafting_guide.form = "size[3,3;]"..default.gui_colors..default.gui_bg; crafting_guide.form_back = "size[3,4;]"..default.gui_colors..default.gui_bg.."button[0,3;3,1;btn_back;Back]"; -crafting_guide.form_items = "size[8,7]"..default.gui_colors..default.gui_bg.."button[0,6;3,1;btn_left;<]button[5,6;3,1;btn_right;>]button[3,6;2,1;btn_quests;Quests]" +crafting_guide.form_items = "size[8,7]"..default.gui_colors..default.gui_bg.."button[0,6;4,1;btn_left;<]button[4,6;4,1;btn_right;>]" crafting_guide.pages = {} @@ -198,9 +198,17 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "crafting_guide:book_items" then if fields.btn_left then crafting_guide.pages[player:get_player_name()] = crafting_guide.pages[player:get_player_name()] -1 + + if crafting_guide.pages[player:get_player_name()] < -3 then + crafting_guide.pages[player:get_player_name()] = -3 + end + minetest.show_formspec(player:get_player_name(), "crafting_guide:book_items", crafting_guide.get_item_formspec(crafting_guide.pages[player:get_player_name()], player)) elseif fields.btn_right then crafting_guide.pages[player:get_player_name()] = crafting_guide.pages[player:get_player_name()] +1 + + + minetest.show_formspec(player:get_player_name(), "crafting_guide:book_items", crafting_guide.get_item_formspec(crafting_guide.pages[player:get_player_name()], player)) elseif fields.btn_quests then minetest.show_formspec(player:get_player_name(), "quests:show_quests", quests.get_formspec(player:get_player_name())) diff --git a/mods/default/functions.lua b/mods/default/functions.lua index f1aaa27..630e1cf 100644 --- a/mods/default/functions.lua +++ b/mods/default/functions.lua @@ -94,13 +94,13 @@ end function default.sounds.stone(t) t = t or {} t.dig = table.dug or - {name = "default_stone_2", gain = 0.08} + {name = "default_stone_2", gain = 0.03} t.dug = table.dug or - {name = "default_stone_2", gain = 0.2} + {name = "default_stone_2", gain = 0.08} t.place = table.place or {name = "default_stone_1", gain = 0.5} t.footstep = t.footstep or - {name = "default_stone_2", gain = 0.2} + {name = "default_stone_2", gain = 0.05} return t end diff --git a/mods/furnace/furnace.lua b/mods/furnace/furnace.lua index 09e98e6..f6279b5 100644 --- a/mods/furnace/furnace.lua +++ b/mods/furnace/furnace.lua @@ -105,17 +105,12 @@ minetest.register_abm({ furnace.register_fuel({ item = "default:coalblock", - fuel = 100 + fuel = 20 }) furnace.register_fuel({ item = "default:coal_lump", - fuel = 10 -}) - -furnace.register_fuel({ - item = "default:coal_dust", - fuel = 1 + fuel = 2 }) diff --git a/mods/mobs/api.lua b/mods/mobs/api.lua index e893852..d3c7beb 100644 --- a/mods/mobs/api.lua +++ b/mods/mobs/api.lua @@ -16,9 +16,9 @@ function mobs.update_components(components, self, def) for i,v in ipairs(components) do if v.name and mobs.components[v.name] then local output = mobs.components[v.name].action(self, v, def) - print("[mobs] call : " .. v.name .. " -> " .. output) + -- print("[mobs] call : " .. v.name .. " -> " .. output) if output == 0 and v.failure then - print("[mobs] FAILURE") + -- print("[mobs] FAILURE") mobs.update_components(v.failure, self, def) elseif output == 1 and v.success then mobs.update_components(v.success, self, def) @@ -97,7 +97,7 @@ function mobs.register_mob(name, def) on_step = function(self, dtime) self.time = self.time + dtime if self.time > 1 then - print("[mobs] -----------------") + -- print("[mobs] -----------------") mobs.update_components(def.behaviour, self, def) self.time = 0 end @@ -158,7 +158,7 @@ minetest.register_globalstep(function(dtime) if timer >= 10 then print("[mobs] mob count = " .. tostring(mobs.count)) if mobs.count > (#minetest.get_connected_players())*2 then - print("[mobs] canceled spawning") + -- print("[mobs] canceled spawning") timer = 0 return end diff --git a/mods/quests/init.lua b/mods/quests/init.lua index ed07f7f..4e5054b 100644 --- a/mods/quests/init.lua +++ b/mods/quests/init.lua @@ -266,6 +266,15 @@ function quests.get_formspec(name) return s end +default.player_inventory.register_tab({ + name = "Quests", + type = "function", + get_formspec = function(name) + local formspec = quests.get_formspec(name) + return formspec + end +}) + minetest.register_chatcommand("quests", { params = "", description = "Shows your quests", diff --git a/mods/skills/abilities.lua b/mods/skills/abilities.lua index 75dbb2e..f45b6f2 100644 --- a/mods/skills/abilities.lua +++ b/mods/skills/abilities.lua @@ -75,8 +75,13 @@ minetest.register_craftitem("skills:ability_book", { inventory_image = "skills_abilities_book.png", on_use = function(itemstack, user, pointed_thing) if user == nil then return end - user:get_inventory():add_item("main", skills.abilities.all[math.random(#skills.abilities.all)]) - itemstack:take_item() + local item = skills.abilities.all[math.random(#skills.abilities.all)] + if user:get_inventory():room_for_item("main", item) then + user:get_inventory():add_item("main", item) + itemstack:take_item() + else + cmsg.push_message_player(user, "[info] You don't have any free space in your inventory.") + end return itemstack end }) diff --git a/mods/skills/init.lua b/mods/skills/init.lua index 4d009d6..e4a24a1 100644 --- a/mods/skills/init.lua +++ b/mods/skills/init.lua @@ -171,10 +171,16 @@ default.player_inventory.register_tab({ name = "Skills", type = "function", get_formspec = function(name) + local count = 0 + for s,l in pairs(skills.lvls[name]) do + count = count + (l-1) + end + local formspec = "size[8,7.5;]" .. default.gui_colors .. default.gui_bg .. - "label[0,0;Skills:]" + "label[0,0;Skills:]" .. + "label[7,0;" .. tostring(xp.player_levels[name] - count) .. "]" local i = 0