From 8edc4b4cf1803cf03e88080f6b30027b72fbf246 Mon Sep 17 00:00:00 2001 From: cale Date: Sun, 16 Oct 2016 13:05:20 +0200 Subject: [PATCH] added creative priv --- mods/crafting_guide/init.lua | 35 +++++++++++++++++++++++++---------- mods/default/nodes.lua | 18 ++++++++++++++---- 2 files changed, 39 insertions(+), 14 deletions(-) diff --git a/mods/crafting_guide/init.lua b/mods/crafting_guide/init.lua index 6229037..252d9d6 100644 --- a/mods/crafting_guide/init.lua +++ b/mods/crafting_guide/init.lua @@ -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 - table.insert(items,name) + 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,8 +164,14 @@ 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 - minetest.show_formspec(player:get_player_name(), "crafting_guide:book", crafting_guide.get_formspec(crafts,true)) + 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 @@ -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 }) diff --git a/mods/default/nodes.lua b/mods/default/nodes.lua index 1c3ea8b..264f1d9 100644 --- a/mods/default/nodes.lua +++ b/mods/default/nodes.lua @@ -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