updated npc mod

This commit is contained in:
cale 2017-01-07 10:13:24 +01:00
parent 47a4083ab5
commit 5dfc7567c0
2 changed files with 37 additions and 2 deletions

View File

@ -1,2 +1,3 @@
default
quests
dialogue

View File

@ -31,6 +31,23 @@ function npcs.register_npc(name, def)
local name = player:get_player_name()
quests.show_text(def.npc_text, name)
end
elseif def.npc_type == "quests" then
def.on_rightclick = function(pos, node, player, itemstack, pt)
local d = dialogue.new(def.npc_text)
local my_quests = def.npc_get_quests(pos, player)
for i, q in ipairs(my_quests) do
print(q.title)
if not(quests.has_quest(player:get_player_name(), q.title)) then
d:add_option(q.title, function(name)
quests.add_quest(name, q)
end)
end
end
d:show(player:get_player_name())
end
end
minetest.register_node(name, def)
@ -38,12 +55,29 @@ end
--TEST
npcs.register_npc("npcs:farmer", {
npc_type = "text",
npc_type = "quests",
npc_text = "Hi!",
npc_quest_title = "Test",
npc_get_quest = function(pos, player)
local quest = quests.new(nil, "Test", "Test")
local goal_1 = quests.add_place_goal(quest, "Place dirt", {"default:dirt"}, 10, "Place some dirt!")
local goal_1 = quests.add_place_goal(quest, "Place dirt", {"default:dirt"}, 10, "Place some dirt blocks!")
return quest
end,
npc_get_quests = function(pos, player)
local my_quests = {}
do
local quest = quests.new(nil, "Test 1", "Test 1")
local goal_1 = quests.add_place_goal(quest, "Place dirt", {"default:dirt"}, 10, "Place some dirt blocks!")
table.insert(my_quests, quest)
end
do
local quest = quests.new(nil, "Test 2", "Test 2")
local goal_1 = quests.add_place_goal(quest, "Place stone", {"default:stone"}, 10, "Place some stone blocks!")
table.insert(my_quests, quest)
end
return my_quests
end,
})