added quests tab to inventory + fixed some bugs

This commit is contained in:
cale 2017-01-01 11:23:00 +01:00
parent e64b3fcfe2
commit 41690f50aa
9 changed files with 49 additions and 20 deletions

View File

@ -1 +1,2 @@
default
central_message

View File

@ -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
})

View File

@ -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()))

View File

@ -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

View File

@ -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
})

View File

@ -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

View File

@ -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",

View File

@ -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
})

View File

@ -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