Add the nightcall.
parent
506370fafc
commit
8c8bff8e9d
|
@ -24,7 +24,7 @@ kingdoms.config.default_level_heavy_doors = 15 -- Open heavy locked doors within
|
|||
kingdoms.config.default_level_build = 10 -- Build within the corestone's range.
|
||||
|
||||
--- Basic
|
||||
kingdoms.config.default_level_furnaces = 1 -- Use furnaces within the corestone's range.
|
||||
kingdoms.config.default_level_devices = 1 -- Use devices within the corestone's range.
|
||||
kingdoms.config.default_level_chests = 1 -- Open locked chests within the corestone's range.
|
||||
kingdoms.config.default_level_doors = 1 -- Open locked doors within the corestone's range.
|
||||
kingdoms.config.default_level_talk = 1 -- Talk in the kingdom's main channel.
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
--
|
||||
|
||||
local function active_formspec(fuel_percent, item_percent)
|
||||
local formspec =
|
||||
local formspec =
|
||||
"size[8,8.5]"..
|
||||
default.gui_bg..
|
||||
default.gui_bg_img..
|
||||
|
@ -55,7 +55,7 @@ local function can_dig(pos, player)
|
|||
end
|
||||
|
||||
local function allow_metadata_inventory_put(pos, listname, index, stack, player)
|
||||
if not kingdoms.check_pos_level(pos, player:get_player_name(), "furnaces", "You are not of a sufficient level to use this furnace.") then
|
||||
if not kingdoms.check_pos_level(pos, player:get_player_name(), "devices", "You are not of a sufficient level to use this furnace.") then
|
||||
return 0
|
||||
end
|
||||
local meta = minetest.get_meta(pos)
|
||||
|
@ -84,7 +84,7 @@ local function allow_metadata_inventory_move(pos, from_list, from_index, to_list
|
|||
end
|
||||
|
||||
local function allow_metadata_inventory_take(pos, listname, index, stack, player)
|
||||
if not kingdoms.check_pos_level(pos, player:get_player_name(), "furnaces", "You are not of a sufficient level to use this furnace.") then
|
||||
if not kingdoms.check_pos_level(pos, player:get_player_name(), "devices", "You are not of a sufficient level to use this furnace.") then
|
||||
return 0
|
||||
end
|
||||
return stack:get_count()
|
||||
|
|
|
@ -22,6 +22,21 @@ function kingdoms.player.can(name, level)
|
|||
return (kingdom.members[name].level >= check)
|
||||
end
|
||||
|
||||
function kingdoms.player.canpos(pos, name, level)
|
||||
local akingdom = kingdoms.bypos(pos)
|
||||
local pkingdom = kingdoms.player.kingdom(name)
|
||||
if not akingdom then
|
||||
return true
|
||||
end
|
||||
if not pkingdom then
|
||||
return false
|
||||
end
|
||||
if akingdom.id ~= pkingdom.id then
|
||||
return false
|
||||
end
|
||||
return kingdoms.player.can(name, level)
|
||||
end
|
||||
|
||||
|
||||
local function respawn(player)
|
||||
local kingdom = kingdoms.player.kingdom(player:get_player_name())
|
||||
|
|
|
@ -23,3 +23,9 @@ for _,def in ipairs(magic.crystals) do
|
|||
})
|
||||
end
|
||||
end
|
||||
|
||||
minetest.register_craft({
|
||||
type = "shapeless",
|
||||
output = "magic:null_essence 3",
|
||||
recipe = {"group:minor_essence", "default:gold_ingot", "group:minor_essence"},
|
||||
})
|
||||
|
|
|
@ -87,6 +87,11 @@ magic.crystals = {
|
|||
},
|
||||
}
|
||||
|
||||
minetest.register_craftitem("magic:null_essence", {
|
||||
description = "Null Essence",
|
||||
inventory_image = "magic_essence.png",
|
||||
})
|
||||
|
||||
for _,def in ipairs(magic.crystals) do
|
||||
minetest.register_node("magic:crystal_"..def.name, {
|
||||
description = def.desc.." Crystal",
|
||||
|
@ -103,6 +108,7 @@ for _,def in ipairs(magic.crystals) do
|
|||
minetest.register_craftitem("magic:"..def.name.."_essence", {
|
||||
description = def.desc.." Essence",
|
||||
inventory_image = "magic_essence.png^[colorize:"..def.color..":"..tostring(0xCC),
|
||||
groups = {minor_essence = 1},
|
||||
})
|
||||
|
||||
minetest.register_craftitem("magic:concentrated_"..def.name.."_essence", {
|
||||
|
|
|
@ -25,5 +25,6 @@ minetest.override_item("default:mese", {
|
|||
domodfile("crystals.lua")
|
||||
domodfile("spells.lua")
|
||||
domodfile("crafts.lua")
|
||||
domodfile("timegens.lua")
|
||||
|
||||
magic.log("action", "Loaded.")
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 3.2 KiB |
|
@ -0,0 +1,49 @@
|
|||
minetest.register_node("magic:nightcall", {
|
||||
description = "Nightcall",
|
||||
tiles = {"magic_nightcall.png"},
|
||||
groups = {cracky = 1, level = 2},
|
||||
after_place_node = function(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:get_inventory():set_size("input", 1)
|
||||
meta:get_inventory():set_size("output", 6)
|
||||
meta:set_string("formspec", [[
|
||||
size[8,7]
|
||||
label[0,0.1;Input null essences during the night to produce night essences.]
|
||||
list[context;input;0,1;1,1;]
|
||||
list[context;output;2,1;6,1;]
|
||||
list[current_player;main;0,3;8,4;]
|
||||
]])
|
||||
end,
|
||||
on_metadata_inventory_put = function(pos, listname, index, stack, player)
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:get_inventory():set_list("input", {})
|
||||
local leftover = meta:get_inventory():add_item("output", "magic:night_essence "..tostring(stack:get_count()))
|
||||
minetest.add_item(vector.add(pos, {x=0, y=1, z=0}), leftover)
|
||||
end,
|
||||
allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
|
||||
return 0
|
||||
end,
|
||||
allow_metadata_inventory_put = function(pos, listname, index, stack, player)
|
||||
local tod = minetest.get_timeofday()
|
||||
if listname ~= "input" then return 0 end
|
||||
if stack:get_name() ~= "magic:null_essence" then
|
||||
return 0
|
||||
end
|
||||
if not kingdoms.player.canpos(pos, player:get_player_name(), "devices") then
|
||||
minetest.chat_send_player(player:get_player_name(), "You cannot use this device.")
|
||||
return 0
|
||||
end
|
||||
if not (tod < 0.2 or tod > 0.805) then
|
||||
minetest.chat_send_player(player:get_player_name(), "It is not night.")
|
||||
return 0
|
||||
end
|
||||
return stack:get_count()
|
||||
end,
|
||||
allow_metadata_inventory_take = function(pos, listname, index, stack, player)
|
||||
if not kingdoms.player.canpos(pos, player:get_player_name(), "devices") then
|
||||
minetest.chat_send_player(player:get_player_name(), "You cannot use this device.")
|
||||
return 0
|
||||
end
|
||||
return stack:get_count()
|
||||
end,
|
||||
})
|
Loading…
Reference in New Issue