123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235 |
- local crop_def = {}
- local mope = "sandwiches:mortar_pestle"
- if minetest.global_exists("farming") and farming.mod == "redo" then
- mope = "farming:mortar_pestle"
- -- peanut seeds
- minetest.register_node("sandwiches:seed_peanut", {
- description = "Peanuts Seed",
- tiles = {"seed_peanut.png"},
- inventory_image = "sandwiches_seed_peanut.png",
- wield_image = "sandwiches_seed_peanut.png",
- drawtype = "signlike",
- groups = {seed = 1, snappy = 3, attached_node = 1, flammable = 4},
- paramtype = "light",
- paramtype2 = "wallmounted",
- walkable = false,
- sunlight_propagates = true,
- selection_box = {
- type = "fixed",
- fixed = {
- {-0.5, -0.5, -0.5, 0.5, -0.35, 0.5},
- },
- },
- on_place = function(itemstack, placer, pointed_thing)
- return farming.place_seed(itemstack, placer, pointed_thing, "sandwiches:peanut_1")
- end,
- })
- minetest.register_craftitem("sandwiches:peanuts", {
- description = "Peanuts",
- on_use = minetest.item_eat(1),
- inventory_image = "sandwiches_peanut.png", -- not peanutS due to compatibility with the default farming mod
- groups = {food = 1, food_peanut = 1, food_peanuts = 1, flammable = 1},
- })
- minetest.register_alias("sandwiches:seed_peanuts", "sandwiches:seed_peanut")
- --minetest.register_alias("sandwiches:peanuts", "sandwiches:peanut")
- -- peanut plant definition
- crop_def = {
- drawtype = "plantlike",
- tiles = {"sandwiches_peanut_1.png"},
- paramtype = "light",
- sunlight_propagates = true,
- walkable = false,
- buildable_to = true,
- drop = "",
- selection_box = {
- type = "fixed",
- fixed = {
- {-0.5, -0.5, -0.5, 0.5, -0.35, 0.5},
- },
- },
- groups = { snappy = 3, flammable = 4, plant = 1, flora = 1, attached_node = 1,
- not_in_creative_inventory = 1, growing = 1 },
- sounds = default.node_sound_leaves_defaults()
- }
- -- stage 1
- minetest.register_node("sandwiches:peanut_1", table.copy(crop_def))
- -- stage 2
- crop_def.tiles = {"sandwiches_peanut_2.png"}
- minetest.register_node("sandwiches:peanut_2", table.copy(crop_def))
- -- stage 3
- crop_def.tiles = {"sandwiches_peanut_3.png"}
- crop_def.drop = {
- items = {
- {items = {'sandwiches:peanuts 2'}, rarity = 1},
- {items = {'sandwiches:peanuts'}, rarity = 2},
- }
- }
- minetest.register_node("sandwiches:peanut_3", table.copy(crop_def))
- -- stage 4
- crop_def.tiles = {"sandwiches_peanut_4.png"}
- crop_def.drop = {
- items = {
- {items = {'sandwiches:peanuts 4'}, rarity = 1},
- {items = {'sandwiches:peanuts 2'}, rarity = 2},
- {items = {'sandwiches:peanuts'}, rarity = 4},
- {items = {'sandwiches:seed_peanut 2'}, rarity = 1},
- {items = {'sandwiches:seed_peanut 2'}, rarity = 3},
- }
- }
- minetest.register_node("sandwiches:peanut_4", table.copy(crop_def))
- -- stage 5 (spreading stage)
- -- as the crop grows to the 5th stage, it has less seeds
- -- because they are "used" when spreading
- crop_def.tiles = {"sandwiches_peanut_5.png"}
- crop_def.drop = {
- items = {
- {items = {'sandwiches:peanuts 3'}, rarity = 1},
- {items = {'sandwiches:peanuts 2'}, rarity = 2},
- {items = {'sandwiches:peanuts'}, rarity = 4},
- {items = {'sandwiches:seed_peanut'}, rarity = 1},
- {items = {'sandwiches:seed_peanut'}, rarity = 2},
- }
- }
- minetest.register_node("sandwiches:peanut_5", table.copy(crop_def))
- -- stage 6 (final)
- -- the plant is "exhausted" from the spreading
- crop_def.tiles = {"sandwiches_peanut_6.png"}
- crop_def.groups.growing = 0
- crop_def.drop = {
- items = {
- {items = {'sandwiches:peanuts 3'}, rarity = 1},
- {items = {'sandwiches:peanuts 2'}, rarity = 2},
- {items = {'sandwiches:peanuts'}, rarity = 4},
- {items = {'sandwiches:seed_peanut'}, rarity = 1},
- {items = {'sandwiches:seed_peanut'}, rarity = 4},
- }
- }
- minetest.register_node("sandwiches:peanut_6", table.copy(crop_def))
- if minetest.get_modpath("bonemeal") then
- bonemeal:add_crop({ {"sandwiches:peanut_", 5, "sandwiches:seed_peanut"}, })
- end
- else -- farming-redo not present -----------------------------------------------
- farming.register_plant("sandwiches:peanut", {
- description = "Peanut Seed",
- harvest_description = "Peanuts",
- inventory_image = "sandwiches_seed_peanut.png",
- steps = 6,
- minlight = 12,
- maxlight = default.LIGHT_MAX,
- fertility = {"grassland"},
- groups = {flammable = 4, attached_node = 1, snappy = 3, plant = 1, flora = 1,},
- })
- if minetest.registered_items["sandwiches:peanuts"] then
- minetest.override_item("sandwiches:peanuts", {
- --description = "Peanuts",
- on_use = minetest.item_eat(1),
- inventory_image = "sandwiches_peanut.png",
- groups = {food = 1, food_peanut = 1, food_peanuts = 1, flammable = 1},
- })
- end
- if minetest.get_modpath("bonemeal") then
- bonemeal:add_crop({ {"sandwiches:peanut_", 5, "sandwiches:seed_peanut"}, })
- end
- end -- register different plant nodes
- minetest.register_abm({
- name = "sandwiches:peanut_spreading_abm",
- nodenames = {"sandwiches:peanut_5"},
- interval = 5,
- chance = 5,
- action = function(pos, node)
- -- Check 3x3x3 nodes around the currently triggered node
- local soil_positions = minetest.find_nodes_in_area_under_air(
- vector.add(pos, -1), vector.add(pos, 1),
- {"farming:soil_wet", "farming:soil"}
- )
- if(next(soil_positions) ~= null) then
- local found_soil_pos = soil_positions[math.random(#soil_positions)]
- found_soil_pos.y = found_soil_pos.y +1
- minetest.set_node(found_soil_pos, {name="sandwiches:peanut_1"})
- if(math.random(10) > 5) then
- minetest.set_node(pos,{name="sandwiches:peanut_6"})
- end
- end
- end
- })
- -- WILD PEANUTS --
- minetest.register_node("sandwiches:wild_peanut", {
- description = "Wild Peanuts",
- paramtype = "light",
- walkable = false,
- drop = {
- items = {
- {items = {'sandwiches:peanuts'}, rarity = 1},
- {items = {'sandwiches:peanuts'}, rarity = 2},
- {items = {'sandwiches:seed_peanut 2'}, rarity = 1},
- {items = {'sandwiches:seed_peanut'}, rarity = 3},
- }
- },
- drawtype = "plantlike",
- paramtype2 = "facedir",
- tiles = {"sandwiches_peanut_4.png"},
- inventory_image = "sandwiches_peanut_4.png",
- wield_image = "sandwiches_peanut_4.png",
- groups = {snappy = 3, dig_immediate=1, flammable=2, plant=1, flora = 1, attached_node = 1, not_in_creative_inventory = 1},
- sounds = default.node_sound_leaves_defaults(),
- selection_box = {
- type = "fixed",
- fixed = { {-0.5, -0.5, -0.5, 0.5, -0.35, 0.5}, },
- },
- })
- minetest.register_decoration({
- deco_type = "simple",
- place_on = {"default:dirt_with_grass", "default:dirt"},
- sidelen = 16,
- noise_params = {
- offset = 0,
- scale = 0.0003,
- spread = {x = 70, y = 70, z = 70},
- seed = 2570,
- octaves = 3,
- persist = 0.6
- },
- y_min = 0,
- y_max = 100,
- decoration = "sandwiches:wild_peanut",
- })
- -- PEANUT BUTTER --
- minetest.register_craftitem("sandwiches:peanut_butter", {
- description = "Peanut Butter",
- on_use = minetest.item_eat(2),
- groups = {food = 2, food_peanut_butter = 1, flammable = 1},
- inventory_image = "sandwiches_peanut_butter.png"
- })
- minetest.register_craft({
- output = "sandwiches:peanut_butter 5",
- type = "shapeless";
- recipe = {"sandwiches:peanuts", "sandwiches:peanuts", "sandwiches:peanuts",
- "sandwiches:peanuts", "sandwiches:peanuts", "sandwiches:peanuts",
- "group:food_mortar_pestle","sandwiches:peanuts", "sandwiches:peanuts",
- },
- replacements = {{"group:food_mortar_pestle", mope }},
- })
|