Add steel sign + Update wooden sign texture
[oweals/minetest_game.git] / mods / default / craftitems.lua
index facff57e7b749e2c1b506befdc1c2bdc1043cb51..09ebeccf7af4510d45d6fc25269ad70700c254c3 100644 (file)
@@ -3,7 +3,7 @@
 minetest.register_craftitem("default:stick", {
        description = "Stick",
        inventory_image = "default_stick.png",
-       groups = {stick=1},
+       groups = {stick = 1},
 })
 
 minetest.register_craftitem("default:paper", {
@@ -20,17 +20,20 @@ local function book_on_use(itemstack, user, pointed_thing)
        end
        local formspec
        if owner == player_name then
-               formspec = "size[8,8]"..default.gui_bg..
-                       "field[0.5,1;7.5,0;title;Title:;"..
-                               minetest.formspec_escape(title).."]"..
-                       "textarea[0.5,1.5;7.5,7;text;Contents:;"..
-                               minetest.formspec_escape(text).."]"..
+               formspec = "size[8,8]" .. default.gui_bg ..
+                       default.gui_bg_img ..
+                       "field[0.5,1;7.5,0;title;Title:;" ..
+                               minetest.formspec_escape(title) .. "]" ..
+                       "textarea[0.5,1.5;7.5,7;text;Contents:;" ..
+                               minetest.formspec_escape(text) .. "]" ..
                        "button_exit[2.5,7.5;3,1;save;Save]"
        else
-               formspec = "size[8,8]"..default.gui_bg..
-                       "label[0.5,0.5;by "..owner.."]"..
-                       "label[0.5,0;"..minetest.formspec_escape(title).."]"..
-                       "textarea[0.5,1.5;7.5,7;;"..minetest.formspec_escape(text)..";]"
+               formspec = "size[8,8]" .. default.gui_bg ..
+                       default.gui_bg_img ..
+                       "label[0.5,0.5;by " .. owner .. "]" ..
+                       "label[0.5,0;" .. minetest.formspec_escape(title) .. "]" ..
+                       "textarea[0.5,1.5;7.5,7;text;;" ..
+                               minetest.formspec_escape(text) .. "]"
        end
        minetest.show_formspec(user:get_player_name(), "default:book", formspec)
 end
@@ -75,18 +78,48 @@ end)
 minetest.register_craftitem("default:book", {
        description = "Book",
        inventory_image = "default_book.png",
-       groups = {book=1},
+       groups = {book = 1},
        on_use = book_on_use,
 })
 
 minetest.register_craftitem("default:book_written", {
        description = "Book With Text",
-       inventory_image = "default_book.png",
-       groups = {book=1, not_in_creative_inventory=1},
+       inventory_image = "default_book_written.png",
+       groups = {book = 1, not_in_creative_inventory = 1},
        stack_max = 1,
        on_use = book_on_use,
 })
 
+minetest.register_craft({
+       type = "shapeless",
+       output = "default:book_written",
+       recipe = {"default:book", "default:book_written"}
+})
+
+minetest.register_on_craft(function(itemstack, player, old_craft_grid, craft_inv)
+       if itemstack:get_name() ~= "default:book_written" then
+               return
+       end
+
+       local copy = ItemStack("default:book_written")
+       local original
+       local index
+       for i = 1, player:get_inventory():get_size("craft") do
+               if old_craft_grid[i]:get_name() == "default:book_written" then
+                       original = old_craft_grid[i]
+                       index = i
+               end
+       end
+       if not original then
+               return
+       end
+       local copymeta = original:get_metadata()
+       -- copy of the book held by player's mouse cursor
+       itemstack:set_metadata(copymeta)
+       -- put the book with metadata back in the craft grid
+       craft_inv:set_stack("craft", index, original)
+end)
+
 minetest.register_craftitem("default:coal_lump", {
        description = "Coal Lump",
        inventory_image = "default_coal_lump.png",