]> git.lizzy.rs Git - Crafter.git/blobdiff - mods/farming/init.lua
replace spaces with tabs
[Crafter.git] / mods / farming / init.lua
index 15ce1eaa0cdf7806edd4ca6ca39fb0e5aa05c9c4..b8b59b709fa4d4dba6e3a143e1d773c9e435f92c 100644 (file)
@@ -4,133 +4,133 @@ 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_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})
-            minetest.set_node(pos,{name="farming:farmland_dry"})
-            return(true)
-      end
+       local is_dirt = minetest.get_node_group(minetest.get_node(pos).name, "dirt") > 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})
+               minetest.set_node(pos,{name="farming:farmland_dry"})
+               return(true)
+       end
 end
 
 for level,material in pairs(material) do
-      local wear = 5000-(950*level)
-      print(wear)
-      minetest.register_tool("farming:"..material.."hoe", {
-            description = material:gsub("^%l", string.upper).." Hoe",
-            inventory_image = material.."hoe.png",
-            tool_capabilities = {
-                  --full_punch_interval = 1.2,
-                  --max_drop_level=0,
-                  groupcaps={
-                  dirt = {times={[4]=4-level/4,[3]=3.5-level/4,[2]=3.0-level/4,[1]=2.8-level/4}, uses=(level/2)*3, maxlevel=level},
-                  sand = {times={[4]=4-level/4,[3]=3.5-level/4,[2]=3.0-level/4,[1]=2.8-level/4}, uses=(level/2)*3, maxlevel=level},
-                  },
-                  damage_groups = {fleshy=1},
-            },
-            sound = {breaks = {name="tool_break",gain=0.4}}, -- change this
-            groups = {flammable = 2, tool=1 },
-            
-            on_place = function(itemstack, placer, pointed_thing)
-                  local tilled = till_soil(pointed_thing.under)
-                  if tilled == true then itemstack:add_wear(wear) end
-                  
-                  local damage = itemstack:get_wear()
-                  
-                  if damage <= 0 then
-                        minetest.sound_play("tool_break",{object=placer})
-                  end
-                  return(itemstack)
-            end,
-      })
-      minetest.register_craft({
-            output = "farming:"..material.."hoe",
-            recipe = {
-                  {"","main:"..material, "main:"..material},
-                  {"","main:stick", ""},
-                  {"", "main:stick", ""}
-            }
-      })
-      minetest.register_craft({
-            output = "farming:"..material.."hoe",
-            recipe = {
-                  {"main:"..material,"main:"..material, ""},
-                  {"","main:stick", ""},
-                  {"", "main:stick", ""}
-            }
-      })
+       local wear = 5000-(950*level)
+       print(wear)
+       minetest.register_tool("farming:"..material.."hoe", {
+               description = material:gsub("^%l", string.upper).." Hoe",
+               inventory_image = material.."hoe.png",
+               tool_capabilities = {
+                       --full_punch_interval = 1.2,
+                       --max_drop_level=0,
+                       groupcaps={
+                       dirt = {times={[4]=4-level/4,[3]=3.5-level/4,[2]=3.0-level/4,[1]=2.8-level/4}, uses=(level/2)*3, maxlevel=level},
+                       sand = {times={[4]=4-level/4,[3]=3.5-level/4,[2]=3.0-level/4,[1]=2.8-level/4}, uses=(level/2)*3, maxlevel=level},
+                       },
+                       damage_groups = {fleshy=1},
+               },
+               sound = {breaks = {name="tool_break",gain=0.4}}, -- change this
+               groups = {flammable = 2, tool=1 },
+               
+               on_place = function(itemstack, placer, pointed_thing)
+                       local tilled = till_soil(pointed_thing.under)
+                       if tilled == true then itemstack:add_wear(wear) end
+                       
+                       local damage = itemstack:get_wear()
+                       
+                       if damage <= 0 then
+                               minetest.sound_play("tool_break",{object=placer})
+                       end
+                       return(itemstack)
+               end,
+       })
+       minetest.register_craft({
+               output = "farming:"..material.."hoe",
+               recipe = {
+                       {"","main:"..material, "main:"..material},
+                       {"","main:stick", ""},
+                       {"", "main:stick", ""}
+               }
+       })
+       minetest.register_craft({
+               output = "farming:"..material.."hoe",
+               recipe = {
+                       {"main:"..material,"main:"..material, ""},
+                       {"","main:stick", ""},
+                       {"", "main:stick", ""}
+               }
+       })
 end
 
 local farmland = {"wet","dry"}
 
 for level,dryness in pairs(farmland) do
-      local coloring = 160/level
-
-      minetest.register_node("farming:farmland_"..dryness,{
-            description = "Farmland",
-            paramtype = "light",
-            drawtype = "nodebox",
-            sounds = main.dirtSound(),
-            --paramtype2 = "wallmounted",
-            node_box = {
-                  type = "fixed",
-                  --{xmin, ymin, zmin, xmax, ymax, zmax}
-
-                  fixed = {-0.5, -0.5, -0.5, 0.5, 6/16, 0.5},
-            },
-            wetness = math.abs(level-2),
-            collision_box = {
-                  type = "fixed",
-                  --{xmin, ymin, zmin, xmax, ymax, zmax}
-
-                  fixed = {-0.5, -0.5, -0.5, 0.5, 6/16, 0.5},
-            },
-            tiles = {"dirt.png^farmland.png^[colorize:black:"..coloring,"dirt.png^[colorize:black:"..coloring,"dirt.png^[colorize:black:"..coloring,"dirt.png^[colorize:black:"..coloring,"dirt.png^[colorize:black:"..coloring,"dirt.png^[colorize:black:"..coloring},
-            groups = {dirt = 1, soft = 1, shovel = 1, hand = 1, soil=1,farmland=1},
-            drop="main:dirt",
-      })
+       local coloring = 160/level
+
+       minetest.register_node("farming:farmland_"..dryness,{
+               description = "Farmland",
+               paramtype = "light",
+               drawtype = "nodebox",
+               sounds = main.dirtSound(),
+               --paramtype2 = "wallmounted",
+               node_box = {
+                       type = "fixed",
+                       --{xmin, ymin, zmin, xmax, ymax, zmax}
+
+                       fixed = {-0.5, -0.5, -0.5, 0.5, 6/16, 0.5},
+               },
+               wetness = math.abs(level-2),
+               collision_box = {
+                       type = "fixed",
+                       --{xmin, ymin, zmin, xmax, ymax, zmax}
+
+                       fixed = {-0.5, -0.5, -0.5, 0.5, 6/16, 0.5},
+               },
+               tiles = {"dirt.png^farmland.png^[colorize:black:"..coloring,"dirt.png^[colorize:black:"..coloring,"dirt.png^[colorize:black:"..coloring,"dirt.png^[colorize:black:"..coloring,"dirt.png^[colorize:black:"..coloring,"dirt.png^[colorize:black:"..coloring},
+               groups = {dirt = 1, soft = 1, shovel = 1, hand = 1, soil=1,farmland=1},
+               drop="main:dirt",
+       })
 end
 
 
 --drying and wetting abm for farmland
 minetest.register_abm({
-      label = "Farmland Wet",
-      nodenames = {"farming:farmland_dry"},
-      neighbors = {"air","group:crop"},
-      interval = 3,
-      chance = 150,
-      action = function(pos)
-            local found = minetest.find_node_near(pos, 3, {"main:water","main:waterflow"})
-            if found then
-                  minetest.set_node(pos,{name="farming:farmland_wet"})
-            else
-                  minetest.set_node(pos,{name="main:dirt"})
-            end
-      end,
+       label = "Farmland Wet",
+       nodenames = {"farming:farmland_dry"},
+       neighbors = {"air","group:crop"},
+       interval = 3,
+       chance = 150,
+       action = function(pos)
+               local found = minetest.find_node_near(pos, 3, {"main:water","main:waterflow"})
+               if found then
+                       minetest.set_node(pos,{name="farming:farmland_wet"})
+               else
+                       minetest.set_node(pos,{name="main:dirt"})
+               end
+       end,
 })
 minetest.register_abm({
-      label = "Farmland dry",
-      nodenames = {"farming:farmland_wet"},
-      neighbors = {"air"},
-      interval = 5,
-      chance = 500,
-      action = function(pos)
-            local found = minetest.find_node_near(pos, 3, {"main:water","main:waterflow"})
-            if not found then
-                  minetest.set_node(pos,{name="farming:farmland_dry"})
-            end
-      end,
+       label = "Farmland dry",
+       nodenames = {"farming:farmland_wet"},
+       neighbors = {"air"},
+       interval = 5,
+       chance = 500,
+       action = function(pos)
+               local found = minetest.find_node_near(pos, 3, {"main:water","main:waterflow"})
+               if not found then
+                       minetest.set_node(pos,{name="farming:farmland_dry"})
+               end
+       end,
 })
 
 
 minetest.register_node("farming:grass", {
     description = "Tall Grass",
     drawtype = "plantlike",
-      waving = 1,
-      walkable = false,
-      climbable = false,
-      paramtype = "light",
-      is_ground_content = false,      
+       waving = 1,
+       walkable = false,
+       climbable = false,
+       paramtype = "light",
+       is_ground_content = false,      
     tiles = {"tallgrass.png"},
     paramtype2 = "degrotate",
     buildable_to = true,
@@ -140,134 +140,134 @@ minetest.register_node("farming:grass", {
                type = "fixed",
                fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 4 / 16, 4 / 16}
        },
-      drop =  {
-            max_items = 1,
-            items= {
-             {
-                  -- Only drop if using a tool whose name is identical to one
-                  -- of these.
-                  rarity = 10,
-                  items = {"farming:seeds"},
-                  -- Whether all items in the dropped item list inherit the
-                  -- hardware coloring palette color from the dug node.
-                  -- Default is 'false'.
-                  --inherit_color = true,
-            },
-            },
-      },
+       drop =  {
+               max_items = 1,
+               items= {
+                {
+                       -- Only drop if using a tool whose name is identical to one
+                       -- of these.
+                       rarity = 10,
+                       items = {"farming:seeds"},
+                       -- Whether all items in the dropped item list inherit the
+                       -- hardware coloring palette color from the dug node.
+                       -- Default is 'false'.
+                       --inherit_color = true,
+               },
+               },
+       },
 })
 
 
 --wheat definitions
 local wheat_max = 7
 minetest.register_abm({
-      label = "crops grow",
-      nodenames = {"group:crops"},
-      neighbors = {"group:farmland"},
-      interval = 3,
-      chance = 150,
-      action = function(pos)
-            
-            local node_under = minetest.get_node(vector.new(pos.x,pos.y-1,pos.z)).name
-            local wetness = minetest.registered_nodes[node_under].wetness
-            
-            if wetness == 0 or not wetness then
-                  return
-            end
-            
-            local node = minetest.get_node(pos).name
-            local stage = minetest.registered_nodes[node].grow_stage
-            if stage < wheat_max then
-                  minetest.set_node(pos,{name="farming:wheat_"..stage+1})
-            end
-      end,
+       label = "crops grow",
+       nodenames = {"group:crops"},
+       neighbors = {"group:farmland"},
+       interval = 3,
+       chance = 150,
+       action = function(pos)
+               
+               local node_under = minetest.get_node(vector.new(pos.x,pos.y-1,pos.z)).name
+               local wetness = minetest.registered_nodes[node_under].wetness
+               
+               if wetness == 0 or not wetness then
+                       return
+               end
+               
+               local node = minetest.get_node(pos).name
+               local stage = minetest.registered_nodes[node].grow_stage
+               if stage < wheat_max then
+                       minetest.set_node(pos,{name="farming:wheat_"..stage+1})
+               end
+       end,
 })
 for i = 0,wheat_max do
-      local drop = ""
-      if i == wheat_max then 
-            drop = {
-                  max_items = 2,
-                  items= {
-                   {
-                        -- Only drop if using a tool whose name is identical to one
-                        -- of these.
-                        --rarity = 10,
-                        items = {"farming:wheat"},
-                        -- Whether all items in the dropped item list inherit the
-                        -- hardware coloring palette color from the dug node.
-                        -- Default is 'false'.
-                        --inherit_color = true,
-                  },
-                  {
-                        -- Only drop if using a tool whose name is identical to one
-                        -- of these.
-                        rarity = 3,
-                        items = {"farming:seeds"},
-                        -- Whether all items in the dropped item list inherit the
-                        -- hardware coloring palette color from the dug node.
-                        -- Default is 'false'.
-                        --inherit_color = true,
-                  },
-                  },
-                  }
-            
-           
-      end
-      
-      minetest.register_node("farming:wheat_"..i, {
-          description = "Wheat Stage "..i,
-          drawtype = "plantlike",
-            waving = 1,
-            walkable = false,
-            climbable = false,
-            paramtype = "light",
-            is_ground_content = false,      
-          tiles = {"wheat_stage_"..i..".png"},
-          paramtype2 = "degrotate",
-          buildable_to = true,
-          grow_stage = i,
-          groups = {leaves = 1, plant = 1, axe = 1, hand = 0,dig_immediate=1,attached_node=1,crops=1},
-          sounds = main.grassSound(),
-          selection_box = {
-                  type = "fixed",
-                  fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 4 / 16, 4 / 16}
-            },
-            drop = drop,
-      })
+       local drop = ""
+       if i == wheat_max then 
+               drop = {
+                       max_items = 2,
+                       items= {
+                        {
+                               -- Only drop if using a tool whose name is identical to one
+                               -- of these.
+                               --rarity = 10,
+                               items = {"farming:wheat"},
+                               -- Whether all items in the dropped item list inherit the
+                               -- hardware coloring palette color from the dug node.
+                               -- Default is 'false'.
+                               --inherit_color = true,
+                       },
+                       {
+                               -- Only drop if using a tool whose name is identical to one
+                               -- of these.
+                               rarity = 3,
+                               items = {"farming:seeds"},
+                               -- Whether all items in the dropped item list inherit the
+                               -- hardware coloring palette color from the dug node.
+                               -- Default is 'false'.
+                               --inherit_color = true,
+                       },
+                       },
+                       }
+               
+            
+       end
+       
+       minetest.register_node("farming:wheat_"..i, {
+           description = "Wheat Stage "..i,
+           drawtype = "plantlike",
+               waving = 1,
+               walkable = false,
+               climbable = false,
+               paramtype = "light",
+               is_ground_content = false,      
+           tiles = {"wheat_stage_"..i..".png"},
+           paramtype2 = "degrotate",
+           buildable_to = true,
+           grow_stage = i,
+           groups = {leaves = 1, plant = 1, axe = 1, hand = 0,dig_immediate=1,attached_node=1,crops=1},
+           sounds = main.grassSound(),
+           selection_box = {
+                       type = "fixed",
+                       fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 4 / 16, 4 / 16}
+               },
+               drop = drop,
+       })
 end
 
 
 minetest.register_craftitem("farming:seeds", {
-      description = "Seeds",
-      inventory_image = "seeds.png",
-      on_place = function(itemstack, placer, pointed_thing)
-            if pointed_thing.type ~= "node" then
-                  return itemstack
-            end
-            local pb = pointed_thing.above
-            if minetest.get_node_group(minetest.get_node(vector.new(pb.x,pb.y-1,pb.z)).name, "farmland") == 0 or minetest.get_node(pointed_thing.above).name ~= "air"  then
-                  return itemstack
-            end
-
-            local wdir = minetest.dir_to_wallmounted(vector.subtract(pointed_thing.under,pointed_thing.above))
-
-            local fakestack = itemstack
-            local retval = false
-
-            retval = fakestack:set_name("farming:wheat_0")
-
-            if not retval then
-                  return itemstack
-            end
-            itemstack, retval = minetest.item_place(fakestack, placer, pointed_thing, wdir)
-            itemstack:set_name("farming:seeds")
-
-            if retval then
-                  minetest.sound_play("leaves", {pos=pointed_thing.above, gain = 1.0})
-            end
-
-            return itemstack
-      end
+       description = "Seeds",
+       inventory_image = "seeds.png",
+       on_place = function(itemstack, placer, pointed_thing)
+               if pointed_thing.type ~= "node" then
+                       return itemstack
+               end
+               local pb = pointed_thing.above
+               if minetest.get_node_group(minetest.get_node(vector.new(pb.x,pb.y-1,pb.z)).name, "farmland") == 0 or minetest.get_node(pointed_thing.above).name ~= "air"  then
+                       return itemstack
+               end
+
+               local wdir = minetest.dir_to_wallmounted(vector.subtract(pointed_thing.under,pointed_thing.above))
+
+               local fakestack = itemstack
+               local retval = false
+
+               retval = fakestack:set_name("farming:wheat_0")
+
+               if not retval then
+                       return itemstack
+               end
+               itemstack, retval = minetest.item_place(fakestack, placer, pointed_thing, wdir)
+               itemstack:set_name("farming:seeds")
+
+               if retval then
+                       minetest.sound_play("leaves", {pos=pointed_thing.above, gain = 1.0})
+               end
+
+               return itemstack
+       end
 })
 
 
@@ -283,34 +283,34 @@ minetest.register_decoration({
 
 
 minetest.register_craftitem("farming:wheat", {
-      description = "Wheat",
-      inventory_image = "wheat_harvested.png",
+       description = "Wheat",
+       inventory_image = "wheat_harvested.png",
 })
 
 
 minetest.register_craftitem("farming:bread", {
-      description = "Bread",
-      inventory_image = "bread.png",
-      health = 3,
+       description = "Bread",
+       inventory_image = "bread.png",
+       health = 3,
 })
 
 minetest.register_craftitem("farming:toast", {
-      description = "Toast",
-      inventory_image = "bread.png^[colorize:black:100",
-      health = 5,
+       description = "Toast",
+       inventory_image = "bread.png^[colorize:black:100",
+       health = 5,
 })
 
 minetest.register_craft({
-      output = "farming:bread",
-      recipe = {
-            {"farming:wheat", "farming:wheat", "farming:wheat"}
-      }
+       output = "farming:bread",
+       recipe = {
+               {"farming:wheat", "farming:wheat", "farming:wheat"}
+       }
 })
 
 
 minetest.register_craft({
-      type = "cooking",
-      output = "farming:toast",
-      recipe = "farming:bread",
-      cooktime = 3,
+       type = "cooking",
+       output = "farming:toast",
+       recipe = "farming:bread",
+       cooktime = 3,
 })