]> git.lizzy.rs Git - Crafter.git/commitdiff
Update everything
authoroilboi <47129783+oilboi@users.noreply.github.com>
Fri, 10 Apr 2020 02:15:06 +0000 (22:15 -0400)
committeroilboi <47129783+oilboi@users.noreply.github.com>
Fri, 10 Apr 2020 02:15:06 +0000 (22:15 -0400)
README.md
mods/bed/init.lua
mods/boat/init.lua
mods/book/init.lua
mods/farming/init.lua
mods/main/nodes.lua
mods/main/saplings.lua
mods/main/tools.lua
mods/minecart/init.lua
mods/minecart/rail.lua
mods/redstone/init.lua

index bea92c218fe71ce0606334687d8b9c90ed53160f..0e1c3f3b96bd8609d1597248a40f7c9f8a56cb11 100644 (file)
--- a/README.md
+++ b/README.md
 - Added Book sounds
 - Changed TNT sound
 - Overhauled eating
+- Add in client weather handling
+- Add in client movement handling
+- Made sapling fuel
+- Fix bed bed, boat, book, sapling, wood, minecart, rail, redstone, and boat placement
+- Add sounds to redstone dust
+- make redstone dust an attached node
 ---
 
 
index 5625a910069306168b00d13129d27a4162c629fc..19f887bde580569c488b941b128edc8fe25f1db1 100644 (file)
@@ -52,7 +52,21 @@ minetest.register_node("bed:bed", {
     sounds = main.woodSound({placing=""}),
     drawtype = "nodebox",
        node_placement_prediction = "",
-       on_place = function(itemstack, placer, pointed_thing)   
+       on_place = function(itemstack, placer, pointed_thing)
+               
+               if not pointed_thing.type == "node" then
+                       return
+               end
+               
+               local sneak = placer: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, placer, pointed_thing)
+                       return
+               end
+               
+               
+               
                local _,pos = minetest.item_place_node(ItemStack("bed:bed_front"), placer, pointed_thing)
                
                if pos then
index ed38c661a626012bf5e7f6c8aad0da86e098d2e5..8afc34dc96dbe4f7fc794121d77003dc1506ff2f 100644 (file)
@@ -204,6 +204,13 @@ minetest.register_craftitem("boat:boat", {
                        return
                end
                
+               local sneak = placer: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, placer, pointed_thing)
+                       return
+               end
+               
                if minetest.get_item_group(minetest.get_node(pointed_thing.under).name, "water")>0 then
                        minetest.add_entity(pointed_thing.under, "boat:boat")
                else
index ae75caad289f14ac68c98663822ac5dd933e1f2e..27f2f9427a4ee660d311ec75fce0a966af43e2a0 100644 (file)
@@ -77,6 +77,15 @@ minetest.register_craftitem("book:book",{
        inventory_image = "book.png",
        
        on_place = function(itemstack, user, pointed_thing)
+               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,
@@ -94,6 +103,15 @@ minetest.register_craftitem("book:book_written",{
        inventory_image = "book_written.png",
        
        on_place = function(itemstack, user, pointed_thing)
+               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,
index b8b59b709fa4d4dba6e3a143e1d773c9e435f92c..835779ed78d9260c12af808f83c2a51c831cd2d5 100644 (file)
@@ -1,10 +1,8 @@
 --Quick definition of hoes
 local material = {"wood","stone","iron","gold","diamond"}
 
-
-
 local function till_soil(pos)
-       local is_dirt = minetest.get_node_group(minetest.get_node(pos).name, "dirt") > 0
+       local is_dirt = minetest.get_node_group(minetest.get_node(pos).name, "farm_tillable") > 0
        local is_farmland = minetest.get_node_group(minetest.get_node(pos).name, "farmland") > 0
        if is_dirt and not is_farmland then
                minetest.sound_play("dirt",{pos=pos})
@@ -32,12 +30,25 @@ for level,material in pairs(material) do
                groups = {flammable = 2, tool=1 },
                
                on_place = function(itemstack, placer, pointed_thing)
+                       local noddef = minetest.registered_nodes[minetest.get_node(pointed_thing.under).name]
+                       local sneak = placer:get_player_control().sneak
+                       
+                       if not sneak and noddef.on_rightclick then
+                               minetest.item_place(itemstack, placer, pointed_thing)
+                               return
+                       end
+               
                        local tilled = till_soil(pointed_thing.under)
-                       if tilled == true then itemstack:add_wear(wear) end
+                       if tilled == true then 
+                               if minetest.registered_nodes[minetest.get_node(vector.new(pointed_thing.under.x,pointed_thing.under.y+1,pointed_thing.under.z)).name].buildable_to then
+                                       minetest.dig_node(vector.new(pointed_thing.under.x,pointed_thing.under.y+1,pointed_thing.under.z))
+                               end
+                               itemstack:add_wear(wear)
+                       end
                        
                        local damage = itemstack:get_wear()
-                       
-                       if damage <= 0 then
+                       print(damage)
+                       if damage <= 0 and tilled == true  then
                                minetest.sound_play("tool_break",{object=placer})
                        end
                        return(itemstack)
index 3d0d7712ea7298a5a34c612b7a0d883287afdc08..788c2c4cc8dea38a88bfbec249d7a0ba25094134 100644 (file)
@@ -101,7 +101,7 @@ minetest.register_node("main:glass", {
 minetest.register_node("main:dirt", {
     description = "Dirt",
     tiles = {"dirt.png"},
-    groups = {dirt = 1, soft = 1, shovel = 1, hand = 1, soil=1,pathable = 1},
+    groups = {dirt = 1, soft = 1, shovel = 1, hand = 1, soil=1,pathable = 1, farm_tillable=1},
     sounds = main.dirtSound(),
     paramtype = "light",
 })
@@ -109,7 +109,7 @@ minetest.register_node("main:dirt", {
 minetest.register_node("main:grass", {
     description = "Grass",
     tiles = {"grass.png"},
-    groups = {dirt = 1, soft = 1, shovel = 1, hand = 1, soil=1,pathable = 1},
+    groups = {dirt = 1, soft = 1, shovel = 1, hand = 1, soil=1,pathable = 1, farm_tillable=1},
     sounds = main.dirtSound(),
     drop="main:dirt",
 })
@@ -128,6 +128,17 @@ minetest.register_node("main:tree", {
     sounds = main.woodSound(),
     --set metadata so treecapitator doesn't destroy houses
     on_place = function(itemstack, placer, pointed_thing)
+               if not pointed_thing.type == "node" then
+                       return
+               end
+               
+               local sneak = placer: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, placer, pointed_thing)
+                       return
+               end
+               
                local pos = pointed_thing.above
                minetest.item_place_node(itemstack, placer, pointed_thing)
                local meta = minetest.get_meta(pos)
index 94d04084484b5571334e3f22c3c91ce60a63556e..1260e39117c92c9d779209dafaad73d23b0b31ad 100644 (file)
@@ -20,6 +20,15 @@ minetest.register_node("main:sapling", {
                if not pointed_thing.type == "node" then
                        return
                end
+               
+               local sneak = placer: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, placer, pointed_thing)
+                       return
+               end
+               
                local buildable = minetest.registered_nodes[minetest.get_node(pointed_thing.under).name].buildable_to
                --replace buildable
                if buildable and minetest.get_node_group(minetest.get_node(vector.new(pointed_thing.under.x,pointed_thing.under.y-1,pointed_thing.under.z)).name, "soil") > 0 then
index 3e088efa9f7ab9927680de276e3b7604ef38eeb5..a7bdcd2d62ceda75508a64485cbd7a0d8c40fde1 100644 (file)
@@ -32,7 +32,7 @@ for level,material in pairs(material) do
                        sound = {breaks = {name="tool_break",gain=0.4}}, -- change this
                        groups = {flammable = 2, tool=1 },
                        --torch rightclick - hacked in since api doesn't call on_place correctly
-                       on_place = on_rightclick or function(itemstack, placer, pointed_thing)
+                       on_place = function(itemstack, placer, pointed_thing)
                                local inv = placer:get_inventory()
                                local torch = inv:contains_item("main", "torch:torch")
                                local is_air = minetest.get_node(pointed_thing.above).name == "air"
@@ -42,6 +42,10 @@ for level,material in pairs(material) do
                                local walkable = noddef.walkable
                                local sneak = placer:get_player_control().sneak
                                
+                               if not sneak and noddef.on_rightclick then
+                                       minetest.item_place(itemstack, placer, pointed_thing)
+                                       return
+                               end
                                
                                if torch and is_air and walkable then
                                        if diff == 0 then
index 9eeb8a22de0b862e06357d847f676ef49232c0e1..142979c132e46b98efdd26e123cbfb0cb052e2ec 100644 (file)
@@ -266,6 +266,13 @@ minetest.register_craftitem("minecart:minecart", {
                        return
                end
                
+               local sneak = placer: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, placer, pointed_thing)
+                       return
+               end
+               
                if minetest.get_item_group(minetest.get_node(pointed_thing.under).name, "rail")>0 then
                        minetest.add_entity(pointed_thing.under, "minecart:minecart")
                else
index a2ffecc95be91b320096708f593b49ce716312b4..c926b08854325133ed8d99cae053becd1a4c1bd0 100644 (file)
@@ -19,6 +19,24 @@ minetest.register_node("minecart:rail",{
                if not pointed_thing.type == "node" then
                        return
                end
+               
+               local sneak = placer: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, placer, pointed_thing)
+                       return
+               end
+               local buildable = minetest.registered_nodes[minetest.get_node(pointed_thing.under).name].buildable_to
+               --replace buildable
+               if buildable and minetest.get_node_group(minetest.get_node(vector.new(pointed_thing.under.x,pointed_thing.under.y-1,pointed_thing.under.z)).name, "soil") > 0 then
+                       return(minetest.item_place(itemstack, placer, pointed_thing))
+               end
+               --replace buildable above
+               local buildable = minetest.registered_nodes[minetest.get_node(pointed_thing.above).name].buildable_to
+               if buildable and minetest.get_node_group(minetest.get_node(vector.new(pointed_thing.above.x,pointed_thing.above.y-1,pointed_thing.above.z)).name, "soil") > 0 then
+                       return(minetest.item_place(itemstack, placer, pointed_thing))
+               end
+               --normal
                local pos = pointed_thing.above
                if minetest.registered_nodes[minetest.get_node({x=pos.x,y=pos.y-1,z=pos.z}).name].walkable and minetest.get_node(pointed_thing.above).name == "air" then
                        minetest.set_node(pointed_thing.above, {name="minecart:rail"})
index bd4df2bc3637f313fd81b6015b36864252d60f5a..e071b46f28320b342bcc5d0d2d7639abb384ff2c 100644 (file)
@@ -417,20 +417,34 @@ minetest.register_craftitem("redstone:dust", {
        on_place = function(itemstack, placer, pointed_thing)
                if not pointed_thing.type == "node" then
                        return
+               end             
+               local sneak = placer: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, placer, pointed_thing)
+                       return
                end
-               local pos = pointed_thing.above
-               if minetest.registered_nodes[minetest.get_node({x=pos.x,y=pos.y-1,z=pos.z}).name].walkable and minetest.get_node(pointed_thing.above).name == "air" then
-                       minetest.add_node(pointed_thing.above, {name="redstone:dust_0"})
-                       itemstack:take_item(1)
-                       --print(minetest.get_node(pointed_thing.above).param1)
-                       --minetest.after(0,function(pointed_thing)
-                       --      redstone.add(pos)
-                       --end,pointed_thing)
+               
+               local _,worked = minetest.item_place(ItemStack("redstone:dust_0"), placer, pointed_thing)
+               if worked then
+                       itemstack:take_item()
                        return(itemstack)
                end
+
+
+                       --minetest.add_node(pointed_thing.above, {name="redstone:dust_0"})
+                       --itemstack:take_item(1)
+                       --minetest.sound_play("stone", {pos=pointed_thing.above})
+                       --return(itemstack)
+               --end
        end,
 })
 
+minetest.register_craft({
+       type = "shapeless",
+       output = "redstone:dust",
+       recipe = {"redstone:dust"},
+})
 
 --8 power levels 8 being the highest
 local color = 0
@@ -454,7 +468,8 @@ for i = 0,8 do
                        type = "fixed",
                        fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
                },
-               groups={dig_immediate=1,attached=1,redstone_dust=1,redstone=1,redstone_power=i},
+               sounds = main.stoneSound(),
+               groups={dig_immediate=1,attached_node=1,redstone_dust=1,redstone=1,redstone_power=i},
                drop="redstone:dust",
                on_construct = function(pos)
                        redstone.collect_info(pos)