added creative priv

This commit is contained in:
cale 2016-10-16 13:05:20 +02:00
parent f0f35ef72d
commit 8edc4b4cf1
2 changed files with 39 additions and 14 deletions

View File

@ -7,6 +7,11 @@ crafting_guide.form_items = "size[8,7]"..default.gui_colors..default.gui_bg.."bu
crafting_guide.pages = {}
minetest.register_privilege("creative", {
description = "",
give_to_singleplayer = false,
})
function crafting_guide.get_formspec(crafts,back_button)
local str = crafting_guide.form
if back_button then
@ -36,9 +41,10 @@ function crafting_guide.get_formspec(crafts,back_button)
return str
end
function crafting_guide.get_item_formspec(page)
function crafting_guide.get_item_formspec(page, player)
page = page or 0
local str = crafting_guide.form_items
local creative_priv = minetest.get_player_privs(player:get_player_name()).creative
if page > -1 then
local i = 0
@ -47,13 +53,16 @@ function crafting_guide.get_item_formspec(page)
local items = {}
for name,def in pairs(minetest.registered_items) do
if not(def.groups.not_in_creative_inventory) then
table.insert(items,name)
end
end
table.sort(items)
for _,name in ipairs(items) do
if minetest.get_all_craft_recipes(name) and i < (8*6)*(page+1) then
if (minetest.get_all_craft_recipes(name) or creative_priv) and
i < (8*6)*(page+1) then
if i > (8*6)*(page)-1 then
str = str .. "item_image_button["..x..","..y..";1,1;"..name..";"..name..";]"
x = x + 1
@ -78,7 +87,7 @@ function crafting_guide.get_item_formspec(page)
str = str .. "label[0,2;Weapons :]"
str = str .. "item_image_button[0,2.5;1,1;skills:spear_lvl_1;skills:spear_lvl_1;]"
str = str .. "item_image_button[1,2.5;1,1;skills:sword_lvl_20;skills:sword_lvl_20;]"
str = str .. "item_image_button[2,2.5;1,1;skills:bow;skills:bow_lvl_1;]"
str = str .. "item_image_button[2,2.5;1,1;skills:bow_lvl_1;skills:bow_lvl_1;]"
str = str .. "label[0,4;Furnace :]"
str = str .. "item_image_button[0,4.5;1,1;furnace:furnace;furnace:furnace;]"
@ -129,7 +138,7 @@ end
minetest.register_on_player_receive_fields(function(player, formname, fields)
if formname == "crafting_guide:book" then
if fields.btn_back then
minetest.show_formspec(player:get_player_name(), "crafting_guide:book_items", crafting_guide.get_item_formspec(crafting_guide.pages[player:get_player_name()]))
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.quit then
crafting_guide.pages[player:get_player_name()] = nil
else
@ -144,10 +153,10 @@ 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
minetest.show_formspec(player:get_player_name(), "crafting_guide:book_items", crafting_guide.get_item_formspec(crafting_guide.pages[player:get_player_name()]))
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()]))
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()))
elseif fields.quit then
@ -155,12 +164,18 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
else
for i,j in pairs(fields) do
local crafts = minetest.get_all_craft_recipes(i)
if crafts then
local has_creative_priv = minetest.get_player_privs(player:get_player_name()).creative
if crafts or has_creative_priv then
if has_creative_priv then
player:get_inventory():add_item("main", i .. " 99")
print("[crafting_guide] give " .. player:get_player_name() .. " " .. i .. " 99")
else
minetest.show_formspec(player:get_player_name(), "crafting_guide:book", crafting_guide.get_formspec(crafts,true))
end
end
end
end
end
end)
minetest.register_craftitem("crafting_guide:lens", {
@ -185,6 +200,6 @@ minetest.register_craftitem("crafting_guide:book", {
on_use = function(itemstack, user, pointed_thing)
crafting_guide.pages[user:get_player_name()] = 0
minetest.show_formspec(user:get_player_name(), "crafting_guide:book_items", crafting_guide.get_item_formspec(0))
minetest.show_formspec(user:get_player_name(), "crafting_guide:book_items", crafting_guide.get_item_formspec(0, user))
end
})

View File

@ -350,6 +350,8 @@ minetest.register_node("default:log", {
tiles = {"default_log_top.png","default_log_top.png","default_log.png"},
groups = {choppy = 3},
sounds = default.sounds.wood(),
paramtype2 = "facedir",
on_place = minetest.rotate_and_place,
})
minetest.register_node("default:log_1", {
@ -362,10 +364,12 @@ minetest.register_node("default:log_1", {
node_box = {
type = "fixed",
fixed = {
{-0.4, -0.5, -0.4, 0.4, 0.5, 0.4},
{-6/16, -0.5, -6/16, 6/16, 0.5, 6/16},
},
},
sounds = default.sounds.wood(),
paramtype2 = "facedir",
on_place = minetest.rotate_and_place,
})
minetest.register_node("default:log_2", {
@ -378,10 +382,12 @@ minetest.register_node("default:log_2", {
node_box = {
type = "fixed",
fixed = {
{-0.3, -0.5, -0.3, 0.3, 0.5, 0.3},
{-4/16, -0.5, -4/16, 4/16, 0.5, 4/16},
},
},
sounds = default.sounds.wood(),
paramtype2 = "facedir",
on_place = minetest.rotate_and_place,
})
minetest.register_node("default:log_3", {
@ -394,10 +400,12 @@ minetest.register_node("default:log_3", {
node_box = {
type = "fixed",
fixed = {
{-0.2, -0.5, -0.2, 0.2, 0.5, 0.2},
{-2/16, -0.5, -2/16, 2/16, 0.5, 2/16},
},
},
sounds = default.sounds.wood(),
paramtype2 = "facedir",
on_place = minetest.rotate_and_place,
})
minetest.register_node("default:jungle_tree", {
@ -405,6 +413,8 @@ minetest.register_node("default:jungle_tree", {
tiles = {"default_jungle_tree_top.png", "default_jungle_tree_top.png", "default_jungle_tree.png"},
groups = {choppy = 3},
sounds = default.sounds.wood(),
paramtype2 = "facedir",
on_place = minetest.rotate_and_place,
})
-- plants
@ -888,7 +898,7 @@ minetest.register_node("default:rail", {
wield_image = "default_rail.png",
paramtype = "light",
walkable = false,
groups = {choppy = 1, attached_node = 1},
groups = {choppy = 1, cracky= 1, attached_node = 1},
})
-- fences