]> git.lizzy.rs Git - Crafter.git/blobdiff - mods/book/init.lua
remove server debug
[Crafter.git] / mods / book / init.lua
index 5e508344c5e1f94695e09f2d4badf12bd676954e..40345aefa54e59a017ef6826b4bd6aa8d2b2a90b 100644 (file)
@@ -1,10 +1,6 @@
---book is item
---craftable
---save metadata of text
---reload text
---write to make permenant
-
+--this is the gui for un-inked books
 local open_book_gui = function(itemstack, user)
+       minetest.sound_play("book_open", {to_player=user:get_player_name()})
        local meta = itemstack:get_meta()
        local book_text = meta:get_string("book.book_text")
        if book_text == "" then
@@ -25,7 +21,10 @@ local open_book_gui = function(itemstack, user)
        minetest.show_formspec(user:get_player_name(), "book.book_gui", book_writing_formspec)
 end
 
+
+--this is the gui for permenantly written books
 local open_book_inked_gui = function(itemstack, user)
+       minetest.sound_play("book_open", {to_player=user:get_player_name()})
        local meta = itemstack:get_meta()
        local book_text = meta:get_string("book.book_text")
        
@@ -36,11 +35,12 @@ local open_book_inked_gui = function(itemstack, user)
                "style_type[textarea;textcolor=black;border=false;noclip=false]"..
                "textarea[0.3,0;9,0.5;;;"..book_title.."]"..
                "textarea[0.3,0.3;9,9;;;"..book_text.."]"..
-               "button_exit[4,8.3;1,1;close;close]"
-               
+               "button_exit[4,8.3;1,1;book.book_close;close]"
        minetest.show_formspec(user:get_player_name(), "book.book_gui", book_writing_formspec)
 end
 
+
+--handle the book gui
 minetest.register_on_player_receive_fields(function(player, formname, fields)
        if not formname == "book.book_gui" then return end
        
@@ -53,20 +53,23 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
                
                player:set_wielded_item(itemstack)
                minetest.close_formspec(player:get_player_name(), "book.book_gui")
+               minetest.sound_play("book_write", {to_player=player:get_player_name()})
        elseif fields["book.book_ink"] and fields["book.book_text"] and fields["book.book_text"] then
                local itemstack = ItemStack("book:book_written")
                local meta = itemstack:get_meta()
                meta:set_string("book.book_text", fields["book.book_text"])
                meta:set_string("book.book_title", fields["book.book_title"])   
                meta:set_string("description", fields["book.book_title"])
-               
                player:set_wielded_item(itemstack)
                minetest.close_formspec(player:get_player_name(), "book.book_gui")
+               minetest.sound_play("book_close", {to_player=player:get_player_name()})
+       elseif fields["book.book_close"] then
+               minetest.sound_play("book_close", {to_player=player:get_player_name()})
        end
 end)
 
 
-
+--this is the book item
 minetest.register_craftitem("book:book",{
        description = "Book",
        groups = {book = 1, written = 0},
@@ -74,7 +77,16 @@ minetest.register_craftitem("book:book",{
        inventory_image = "book.png",
        
        on_place = function(itemstack, user, pointed_thing)
-               print("make books placable on the ground")
+               if not pointed_thing.type == "node" then
+                       return
+               end
+               local sneak = user:get_player_control().sneak
+               local noddef = minetest.registered_nodes[minetest.get_node(pointed_thing.under).name]
+               if not sneak and noddef.on_rightclick then
+                       minetest.item_place(itemstack, user, pointed_thing)
+                       return
+               end
+               --print("make books placable on the ground")
                open_book_gui(itemstack, user)
        end,
 
@@ -83,6 +95,7 @@ minetest.register_craftitem("book:book",{
        end,
 })
 
+--permenantly written books
 minetest.register_craftitem("book:book_written",{
        description = "Book",
        groups = {book = 1, written = 1},
@@ -90,7 +103,16 @@ minetest.register_craftitem("book:book_written",{
        inventory_image = "book_written.png",
        
        on_place = function(itemstack, user, pointed_thing)
-               print("make books placable on the ground")
+               if not pointed_thing.type == "node" then
+                       return
+               end
+               local sneak = user:get_player_control().sneak
+               local noddef = minetest.registered_nodes[minetest.get_node(pointed_thing.under).name]
+               if not sneak and noddef.on_rightclick then
+                       minetest.item_place(itemstack, user, pointed_thing)
+                       return
+               end
+               --print("make books placable on the ground")
                open_book_inked_gui(itemstack, user)
        end,
 
@@ -99,12 +121,13 @@ minetest.register_craftitem("book:book_written",{
        end,
 })
 
+--change this to paper
 minetest.register_craft({
        output = "book:book",
        recipe = {
-               {"main:wood","weather:snowball","main:wood"},
-               {"main:wood","weather:snowball","main:wood"},
-               {"main:wood","weather:snowball","main:wood"},
+               {"main:wood","main:wood","main:wood"},
+               {"main:paper","main:paper","main:paper"},
+               {"main:wood","main:wood","main:wood"},
        }
 })
 --book book book