From bb45a6622f35a21e18627c42625f27d3467b78f6 Mon Sep 17 00:00:00 2001 From: thunderdog1138 Date: Fri, 17 Jul 2020 12:42:02 +0000 Subject: [PATCH] Upload files to 'mods/farming' --- mods/farming/barley.lua | 121 ++++++++++++++++++ mods/farming/beans.lua | 256 +++++++++++++++++++++++++++++++++++++ mods/farming/beetroot.lua | 92 +++++++++++++ mods/farming/blueberry.lua | 94 ++++++++++++++ mods/farming/cabbage.lua | 69 ++++++++++ 5 files changed, 632 insertions(+) create mode 100644 mods/farming/barley.lua create mode 100644 mods/farming/beans.lua create mode 100644 mods/farming/beetroot.lua create mode 100644 mods/farming/blueberry.lua create mode 100644 mods/farming/cabbage.lua diff --git a/mods/farming/barley.lua b/mods/farming/barley.lua new file mode 100644 index 00000000..69b30562 --- /dev/null +++ b/mods/farming/barley.lua @@ -0,0 +1,121 @@ + +local S = farming.intllib + +-- barley seeds +minetest.register_node("farming:seed_barley", { + description = S("Barley Seed"), + tiles = {"farming_barley_seed.png"}, + inventory_image = "farming_barley_seed.png", + wield_image = "farming_barley_seed.png", + drawtype = "signlike", + groups = {seed = 1, snappy = 3, attached_node = 1}, + paramtype = "light", + paramtype2 = "wallmounted", + walkable = false, + sunlight_propagates = true, + selection_box = farming.select, + on_place = function(itemstack, placer, pointed_thing) + return farming.place_seed(itemstack, placer, pointed_thing, "farming:barley_1") + end +}) + +-- harvested barley +minetest.register_craftitem("farming:barley", { + description = S("Barley"), + inventory_image = "farming_barley.png", + groups = {food_barley = 1, flammable = 2} +}) + +-- flour +minetest.register_craft({ + type = "shapeless", + output = "farming:flour", + recipe = { + "farming:barley", "farming:barley", "farming:barley", + "farming:barley", "farming:mortar_pestle" + }, + replacements = {{"group:food_mortar_pestle", "farming:mortar_pestle"}} +}) + +-- barley definition +local def = { + drawtype = "plantlike", + tiles = {"farming_barley_1.png"}, + paramtype = "light", + paramtype2 = "meshoptions", + place_param2 = 3, + sunlight_propagates = true, + walkable = false, + buildable_to = true, + drop = "", + selection_box = farming.select, + groups = { + snappy = 3, flammable = 2, plant = 1, attached_node = 1, + not_in_creative_inventory = 1, growing = 1 + }, + sounds = default.node_sound_leaves_defaults() +} + +-- stage 1 +minetest.register_node("farming:barley_1", table.copy(def)) + +-- stage 2 +def.tiles = {"farming_barley_2.png"} +minetest.register_node("farming:barley_2", table.copy(def)) + +-- stage 3 +def.tiles = {"farming_barley_3.png"} +minetest.register_node("farming:barley_3", table.copy(def)) + +-- stage 4 +def.tiles = {"farming_barley_4.png"} +minetest.register_node("farming:barley_4", table.copy(def)) + +-- stage 5 +def.tiles = {"farming_barley_5.png"} +def.drop = { + items = { + {items = {"farming:barley"}, rarity = 2}, + {items = {"farming:seed_barley"}, rarity = 2} + } +} +minetest.register_node("farming:barley_5", table.copy(def)) + +-- stage 6 +def.tiles = {"farming_barley_6.png"} +def.drop = { + items = { + {items = {"farming:barley"}, rarity = 2}, + {items = {"farming:seed_barley"}, rarity = 1} + } +} +minetest.register_node("farming:barley_6", table.copy(def)) + +-- stage 7 (final) +def.tiles = {"farming_barley_7.png"} +def.groups.growing = nil +def.drop = { + items = { + {items = {"farming:barley"}, rarity = 1}, + {items = {"farming:barley"}, rarity = 3}, + {items = {"farming:seed_barley"}, rarity = 1}, + {items = {"farming:seed_barley"}, rarity = 3} + } +} +minetest.register_node("farming:barley_7", table.copy(def)) + +-- add to registered_plants +farming.registered_plants["farming:barley"] = { + crop = "farming:barley", + seed = "farming:seed_barley", + minlight = 13, + maxlight = 15, + steps = 7 +} + +-- Fuel +minetest.register_craft({ + type = "fuel", + recipe = "farming:barley", + burntime = 1 +}) diff --git a/mods/farming/beans.lua b/mods/farming/beans.lua new file mode 100644 index 00000000..b469d085 --- /dev/null +++ b/mods/farming/beans.lua @@ -0,0 +1,256 @@ +--[[ + All textures by + (C) Auke Kok + CC-BY-SA-3.0 +]] + +local S = farming.intllib + +-- place beans +local function place_beans(itemstack, placer, pointed_thing, plantname) + + local pt = pointed_thing + + -- check if pointing at a node + if not pt or pt.type ~= "node" then + return + end + + local under = minetest.get_node(pt.under) + + -- return if any of the nodes are not registered + if not minetest.registered_nodes[under.name] then + return + end + + -- am I right-clicking on something that has a custom on_place set? + -- thanks to Krock for helping with this issue :) + local def = minetest.registered_nodes[under.name] + if placer and itemstack and def and def.on_rightclick then + return def.on_rightclick(pt.under, under, placer, itemstack) + end + + -- is player planting crop? + local name = placer and placer:get_player_name() or "" + + -- check for protection + if minetest.is_protected(pt.under, name) then + return + end + + -- check if pointing at bean pole + if under.name ~= "farming:beanpole" then + return + end + + -- add the node and remove 1 item from the itemstack + minetest.set_node(pt.under, {name = plantname}) + + minetest.sound_play("default_place_node", {pos = pt.under, gain = 1.0}) + + if placer or not farming.is_creative(placer:get_player_name()) then + + itemstack:take_item() + + -- check for refill + if itemstack:get_count() == 0 then + + minetest.after(0.20, + farming.refill_plant, + placer, + "farming:beans", + placer:get_wield_index() + ) + end + end + + return itemstack +end + +-- beans +minetest.register_craftitem("farming:beans", { + description = S("Green Beans"), + inventory_image = "farming_beans.png", + groups = {seed = 2, food_beans = 1, flammable = 2}, + on_use = minetest.item_eat(1), + on_place = function(itemstack, placer, pointed_thing) + return place_beans(itemstack, placer, pointed_thing, "farming:beanpole_1") + end +}) + +-- beans can be used for green dye +minetest.register_craft({ + output = "dye:green", + recipe = { + {"farming:beans"} + } +}) + +-- beanpole +minetest.register_node("farming:beanpole", { + description = S("Bean Pole (place on soil before planting beans)"), + drawtype = "plantlike", + tiles = {"farming_beanpole.png"}, + inventory_image = "farming_beanpole.png", + visual_scale = 1.90, + paramtype = "light", + walkable = false, + buildable_to = true, + sunlight_propagates = true, + drop = "farming:beanpole", + selection_box = farming.select, + groups = {snappy = 3, flammable = 2, attached_node = 1}, + sounds = default.node_sound_leaves_defaults(), + + on_place = function(itemstack, placer, pointed_thing) + + local pt = pointed_thing + + -- check if pointing at a node + if not pt or pt.type ~= "node" then + return + end + + local under = minetest.get_node(pt.under) + + -- return if any of the nodes are not registered + if not minetest.registered_nodes[under.name] then + return + end + + -- am I right-clicking on something that has a custom on_place set? + -- thanks to Krock for helping with this issue :) + local def = minetest.registered_nodes[under.name] + if def and def.on_rightclick then + return def.on_rightclick(pt.under, under, placer, itemstack) + end + + if minetest.is_protected(pt.above, placer:get_player_name()) then + return + end + + local nodename = under.name + + if minetest.get_item_group(nodename, "soil") < 2 then + return + end + + local top = { + x = pointed_thing.above.x, + y = pointed_thing.above.y + 1, + z = pointed_thing.above.z + } + + nodename = minetest.get_node(top).name + + if nodename ~= "air" then + return + end + + minetest.set_node(pointed_thing.above, {name = "farming:beanpole"}) + + if not farming.is_creative(placer:get_player_name()) then + itemstack:take_item() + end + + return itemstack + end +}) + +minetest.register_craft({ + output = "farming:beanpole", + recipe = { + {"", "", ""}, + {"default:stick", "", "default:stick"}, + {"default:stick", "", "default:stick"} + } +}) + +minetest.register_craft({ + type = "fuel", + recipe = "farming:beanpole", + burntime = 10 +}) + +-- green bean definition +local def = { + drawtype = "plantlike", + tiles = {"farming_beanpole_1.png"}, + visual_scale = 1.90, + paramtype = "light", + walkable = false, + buildable_to = true, + sunlight_propagates = true, + drop = { + items = { + {items = {"farming:beanpole"}, rarity = 1} + } + }, + selection_box = farming.select, + groups = { + snappy = 3, flammable = 3, not_in_creative_inventory = 1, + attached_node = 1, growing = 1, plant = 1 + }, + sounds = default.node_sound_leaves_defaults() +} + +-- stage 1 +minetest.register_node("farming:beanpole_1", table.copy(def)) + +-- stage2 +def.tiles = {"farming_beanpole_2.png"} +minetest.register_node("farming:beanpole_2", table.copy(def)) + +-- stage 3 +def.tiles = {"farming_beanpole_3.png"} +minetest.register_node("farming:beanpole_3", table.copy(def)) + +-- stage 4 +def.tiles = {"farming_beanpole_4.png"} +minetest.register_node("farming:beanpole_4", table.copy(def)) + +-- stage 5 (final) +def.tiles = {"farming_beanpole_5.png"} +def.groups.growing = nil +def.drop = { + items = { + {items = {"farming:beanpole"}, rarity = 1}, + {items = {"farming:beans 3"}, rarity = 1}, + {items = {"farming:beans 2"}, rarity = 2}, + {items = {"farming:beans 2"}, rarity = 3} + } +} +minetest.register_node("farming:beanpole_5", table.copy(def)) + +-- add to registered_plants +farming.registered_plants["farming:beans"] = { + crop = "farming:beanpole", + seed = "farming:beans", + minlight = 13, + maxlight = 15, + steps = 5 +} + +-- wild green bean bush (this is what you find on the map) +minetest.register_node("farming:beanbush", { + drawtype = "plantlike", + tiles = {"farming_beanbush.png"}, + paramtype = "light", + waving = 1, + walkable = false, + buildable_to = true, + sunlight_propagates = true, + drop = { + items = { + {items = {"farming:beans 1"}, rarity = 1}, + {items = {"farming:beans 1"}, rarity = 2}, + {items = {"farming:beans 1"}, rarity = 3} + } + }, + selection_box = farming.select, + groups = { + snappy = 3, flammable = 2, plant = 1, attached_node = 1, + not_in_creative_inventory = 1 + }, + sounds = default.node_sound_leaves_defaults() +}) diff --git a/mods/farming/beetroot.lua b/mods/farming/beetroot.lua new file mode 100644 index 00000000..f20cfead --- /dev/null +++ b/mods/farming/beetroot.lua @@ -0,0 +1,92 @@ + +local S = farming.intllib + +-- beetroot +minetest.register_craftitem("farming:beetroot", { + description = S("Beetroot"), + inventory_image = "farming_beetroot.png", + groups = {seed = 2, food_beetroot = 1, flammable = 2}, + on_place = function(itemstack, placer, pointed_thing) + return farming.place_seed(itemstack, placer, pointed_thing, "farming:beetroot_1") + end, + on_use = minetest.item_eat(1) +}) + +-- beetroot soup +minetest.register_craftitem("farming:beetroot_soup", { + description = S("Beetroot Soup"), + inventory_image = "farming_beetroot_soup.png", + groups = {flammable = 2}, + on_use = minetest.item_eat(6, "farming:bowl") +}) + +minetest.register_craft({ + type = "shapeless", + output = "farming:beetroot_soup", + recipe = { + "group:food_beetroot", "group:food_beetroot", + "group:food_beetroot", "group:food_beetroot", + "group:food_beetroot", "group:food_beetroot","group:food_bowl" + } +}) + +-- red dye +minetest.register_craft({ + type = "shapeless", + output = "dye:red", + recipe = {"group:food_beetroot"} +}) + +local def = { + drawtype = "plantlike", + tiles = {"farming_beetroot_1.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + drop = "", + selection_box = farming.select, + groups = { + snappy = 3, flammable = 2, plant = 1, attached_node = 1, + not_in_creative_inventory = 1, growing = 1 + }, + sounds = default.node_sound_leaves_defaults() +} + +-- stage 1 +minetest.register_node("farming:beetroot_1", table.copy(def)) + +-- stage 2 +def.tiles = {"farming_beetroot_2.png"} +minetest.register_node("farming:beetroot_2", table.copy(def)) + +-- stage 3 +def.tiles = {"farming_beetroot_3.png"} +minetest.register_node("farming:beetroot_3", table.copy(def)) + +-- stage 4 +def.tiles = {"farming_beetroot_4.png"} +minetest.register_node("farming:beetroot_4", table.copy(def)) + +-- stage 5 +def.tiles = {"farming_beetroot_5.png"} +def.groups.growing = nil +def.drop = { + max_items = 4, items = { + {items = {"farming:beetroot"}, rarity = 1}, + {items = {"farming:beetroot"}, rarity = 2}, + {items = {"farming:beetroot"}, rarity = 3}, + {items = {"farming:beetroot"}, rarity = 4} + } +} +minetest.register_node("farming:beetroot_5", table.copy(def)) + +-- add to registered_plants +farming.registered_plants["farming:beetroot"] = { + crop = "farming:beetroot", + seed = "farming:beetroot", + minlight = 13, + maxlight = 15, + steps = 5 +} diff --git a/mods/farming/blueberry.lua b/mods/farming/blueberry.lua new file mode 100644 index 00000000..97beaedf --- /dev/null +++ b/mods/farming/blueberry.lua @@ -0,0 +1,94 @@ + +local S = farming.intllib + +-- blueberries +minetest.register_craftitem("farming:blueberries", { + description = S("Blueberries"), + inventory_image = "farming_blueberries.png", + groups = {seed = 2, food_blueberries = 1, food_blueberry = 1, + food_berry = 1, flammable = 2}, + on_place = function(itemstack, placer, pointed_thing) + return farming.place_seed(itemstack, placer, pointed_thing, "farming:blueberry_1") + end, + on_use = minetest.item_eat(1) +}) + +-- blueberry muffin (thanks to sosogirl123 @ deviantart.com for muffin image) +minetest.register_craftitem("farming:muffin_blueberry", { + description = S("Blueberry Muffin"), + inventory_image = "farming_blueberry_muffin.png", + on_use = minetest.item_eat(2) +}) + +minetest.register_craft({ + output = "farming:muffin_blueberry 2", + recipe = { + {"group:food_blueberries", "group:food_bread", "group:food_blueberries"} + } +}) + +-- Blueberry Pie +minetest.register_craftitem("farming:blueberry_pie", { + description = S("Blueberry Pie"), + inventory_image = "farming_blueberry_pie.png", + on_use = minetest.item_eat(6) +}) + +minetest.register_craft({ + output = "farming:blueberry_pie", + type = "shapeless", + recipe = { + "group:food_flour", "group:food_sugar", + "group:food_blueberries", "group:food_baking_tray" + }, + replacements = {{"group:food_baking_tray", "farming:baking_tray"}} +}) + +-- blueberry definition +local def = { + drawtype = "plantlike", + tiles = {"farming_blueberry_1.png"}, + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + drop = "", + selection_box = farming.select, + groups = { + snappy = 3, flammable = 2, plant = 1, attached_node = 1, + not_in_creative_inventory = 1, growing = 1 + }, + sounds = default.node_sound_leaves_defaults() +} + +-- stage 1 +minetest.register_node("farming:blueberry_1", table.copy(def)) + +-- stage 2 +def.tiles = {"farming_blueberry_2.png"} +minetest.register_node("farming:blueberry_2", table.copy(def)) + +-- stage 3 +def.tiles = {"farming_blueberry_3.png"} +minetest.register_node("farming:blueberry_3", table.copy(def)) + +-- stage 4 (final) +def.tiles = {"farming_blueberry_4.png"} +def.groups.growing = nil +def.drop = { + items = { + {items = {"farming:blueberries 2"}, rarity = 1}, + {items = {"farming:blueberries"}, rarity = 2}, + {items = {"farming:blueberries"}, rarity = 3}, + } +} +minetest.register_node("farming:blueberry_4", table.copy(def)) + +-- add to registered_plants +farming.registered_plants["farming:blueberries"] = { + crop = "farming:blueberry", + seed = "farming:blueberries", + minlight = 13, + maxlight = 15, + steps = 4 +} diff --git a/mods/farming/cabbage.lua b/mods/farming/cabbage.lua new file mode 100644 index 00000000..dd66f258 --- /dev/null +++ b/mods/farming/cabbage.lua @@ -0,0 +1,69 @@ + +local S = farming.intllib + +-- cabbage +minetest.register_craftitem("farming:cabbage", { + description = S("Cabbage"), + inventory_image = "farming_cabbage.png", + groups = {seed = 2, food_cabbage = 1, flammable = 2}, + on_place = function(itemstack, placer, pointed_thing) + return farming.place_seed(itemstack, placer, pointed_thing, "farming:cabbage_1") + end, + on_use = minetest.item_eat(1) +}) + +local def = { + drawtype = "plantlike", + tiles = {"farming_cabbage_1.png"}, + paramtype = "light", + sunlight_propagates = true, + waving = 1, + walkable = false, + buildable_to = true, + drop = "", + selection_box = farming.select, + groups = { + snappy = 3, flammable = 2, plant = 1, attached_node = 1, + not_in_creative_inventory = 1, growing = 1 + }, + sounds = default.node_sound_leaves_defaults() +} + +-- stage 1 +minetest.register_node("farming:cabbage_1", table.copy(def)) + +-- stage 2 +def.tiles = {"farming_cabbage_2.png"} +minetest.register_node("farming:cabbage_2", table.copy(def)) + +-- stage 3 +def.tiles = {"farming_cabbage_3.png"} +minetest.register_node("farming:cabbage_3", table.copy(def)) + +-- stage 4 +def.tiles = {"farming_cabbage_4.png"} +minetest.register_node("farming:cabbage_4", table.copy(def)) + +-- stage 5 +def.tiles = {"farming_cabbage_5.png"} +minetest.register_node("farming:cabbage_5", table.copy(def)) + +-- stage 6 +def.tiles = {"farming_cabbage_6.png"} +def.groups.growing = nil +def.drop = { + max_items = 2, items = { + {items = {"farming:cabbage"}, rarity = 1}, + {items = {"farming:cabbage"}, rarity = 5} + } +} +minetest.register_node("farming:cabbage_6", table.copy(def)) + +-- add to registered_plants +farming.registered_plants["farming:cabbage"] = { + crop = "farming:cabbage", + seed = "farming:cabbage", + minlight = 13, + maxlight = 15, + steps = 6 +}