297 lines
8.0 KiB
Lua
297 lines
8.0 KiB
Lua
local S = minetest.get_translator("rp_farming")
|
|
local NS = function(s) return s end
|
|
--
|
|
-- Nodes
|
|
--
|
|
|
|
-- Wheat
|
|
farming.register_plant_nodes("rp_farming:wheat", {
|
|
description_stage_1 = S("Wheat Seed"),
|
|
description_general = NS("Wheat Plant (stage @1)"),
|
|
tooltip_stage_1 = S("Grows on dirt; it likes water"),
|
|
texture_prefix = "farming_wheat",
|
|
drop_stages = {
|
|
[1] = {
|
|
items = {
|
|
{items = {"rp_farming:wheat"}, rarity = 3}
|
|
}
|
|
},
|
|
[2] = {
|
|
items = {
|
|
{items = {"rp_farming:wheat"}, rarity = 2}
|
|
},
|
|
},
|
|
[3] = {
|
|
items = {
|
|
{items = {"rp_farming:wheat"}, rarity = 1}
|
|
},
|
|
},
|
|
[4] = {
|
|
items = {
|
|
-- 1-3 wheat, 1-2 wheat seed
|
|
{items = {"rp_farming:wheat"}, rarity = 1},
|
|
{items = {"rp_farming:wheat 2"}, rarity = 4},
|
|
{items = {"rp_farming:wheat_1"}, rarity = 1},
|
|
{items = {"rp_farming:wheat_1"}, rarity = 2},
|
|
}
|
|
},
|
|
},
|
|
})
|
|
|
|
-- Potato
|
|
farming.register_plant_nodes("rp_farming:potato", {
|
|
description_stage_1 = S("Potato"),
|
|
description_general = NS("Potato Plant (stage @1)"),
|
|
tooltip_stage_1 = S("Grows on dirt and swamp dirt; it likes water"),
|
|
texture_prefix = "farming_potato",
|
|
meshoptions = 1,
|
|
drop_stages = {
|
|
[1] = {
|
|
items = {
|
|
{items = {"rp_farming:potato_1"}, rarity = 1}
|
|
}
|
|
},
|
|
[2] = {
|
|
items = {
|
|
{items = {"rp_farming:potato_1"}, rarity = 1}
|
|
},
|
|
},
|
|
[3] = {
|
|
items = {
|
|
{items = {"rp_farming:potato_1"}, rarity = 1}
|
|
},
|
|
},
|
|
[4] = {
|
|
items = {
|
|
-- 2-4 potatos
|
|
{items = {"rp_farming:potato_1 2"}, rarity = 1},
|
|
{items = {"rp_farming:potato_1"}, rarity = 2},
|
|
{items = {"rp_farming:potato_1"}, rarity = 5},
|
|
}
|
|
},
|
|
},
|
|
|
|
-- Potato is both a "seed" and food item at the same time
|
|
stage_extras = {
|
|
[1] = {
|
|
_rp_hunger_food = 3,
|
|
_rp_hunger_sat = 30,
|
|
on_use = minetest.item_eat(0),
|
|
},
|
|
},
|
|
stage_extra_groups = {
|
|
[1] = {
|
|
food = 2,
|
|
},
|
|
},
|
|
|
|
sound_seed_place = { name = "rp_farming_place_nonseed", gain = 0.4 },
|
|
})
|
|
|
|
-- Carrot
|
|
farming.register_plant_nodes("rp_farming:carrot", {
|
|
description_stage_1 = S("Carrot"),
|
|
description_general = NS("Carrot Plant (stage @1)"),
|
|
tooltip_stage_1 = S("Grows on dry dirt; it likes water"),
|
|
texture_prefix = "farming_carrot",
|
|
meshoptions = 2,
|
|
drop_stages = {
|
|
[1] = {
|
|
items = {
|
|
{items = {"rp_farming:carrot_1"}, rarity = 1}
|
|
}
|
|
},
|
|
[2] = {
|
|
items = {
|
|
{items = {"rp_farming:carrot_1"}, rarity = 1}
|
|
},
|
|
},
|
|
[3] = {
|
|
items = {
|
|
{items = {"rp_farming:carrot_1"}, rarity = 1}
|
|
},
|
|
},
|
|
[4] = {
|
|
items = {
|
|
-- 2-5 carrots
|
|
{items = {"rp_farming:carrot_1 2"}, rarity = 1},
|
|
{items = {"rp_farming:carrot_1"}, rarity = 2},
|
|
{items = {"rp_farming:carrot_1"}, rarity = 3},
|
|
{items = {"rp_farming:carrot_1"}, rarity = 4},
|
|
}
|
|
},
|
|
},
|
|
|
|
-- Carrot is both a "seed" and food item at the same time
|
|
stage_extras = {
|
|
[1] = {
|
|
_rp_hunger_food = 2,
|
|
_rp_hunger_sat = 20,
|
|
on_use = minetest.item_eat(0),
|
|
},
|
|
},
|
|
stage_extra_groups = {
|
|
[1] = {
|
|
food = 2,
|
|
},
|
|
},
|
|
|
|
sound_seed_place = { name = "rp_farming_place_nonseed", gain = 0.4 },
|
|
})
|
|
|
|
-- Asparagus
|
|
farming.register_plant_nodes("rp_farming:asparagus", {
|
|
description_stage_1 = S("Asparagus Seed"),
|
|
description_general = NS("Asparagus Plant (stage @1)"),
|
|
tooltip_stage_1 = S("Grows on swamp dirt; it likes water"),
|
|
texture_prefix = "farming_asparagus",
|
|
drop_stages = {
|
|
[1] = {
|
|
items = {
|
|
{items = {"rp_farming:asparagus_1"}, rarity = 4}
|
|
}
|
|
},
|
|
[2] = {
|
|
items = {
|
|
{items = {"rp_farming:asparagus_1"}, rarity = 3}
|
|
},
|
|
},
|
|
[3] = {
|
|
items = {
|
|
{items = {"rp_farming:asparagus_1"}, rarity = 2}
|
|
},
|
|
},
|
|
[4] = {
|
|
items = {
|
|
-- 1-4 asparagus, 1-3 asparagus seed
|
|
{items = {"rp_farming:asparagus"}, rarity = 1},
|
|
{items = {"rp_farming:asparagus"}, rarity = 2},
|
|
{items = {"rp_farming:asparagus"}, rarity = 3},
|
|
{items = {"rp_farming:asparagus"}, rarity = 4},
|
|
{items = {"rp_farming:asparagus_1"}, rarity = 1},
|
|
{items = {"rp_farming:asparagus_1"}, rarity = 3},
|
|
{items = {"rp_farming:asparagus_1"}, rarity = 3},
|
|
}
|
|
},
|
|
},
|
|
})
|
|
|
|
|
|
|
|
-- Cotton
|
|
local trim_cotton = function(pos, node, player, tool)
|
|
-- This cuts down the cotton plant to stage 1 and might drop some bonus goodies
|
|
|
|
local name = tool:get_name()
|
|
minetest.sound_play({name = "default_shears_cut", gain = 0.5}, {pos = player:get_pos(), max_hear_distance = 8}, true)
|
|
minetest.set_node(pos, {name = "rp_farming:cotton_2"})
|
|
|
|
-- Drop some seeds
|
|
|
|
if math.random(1, 2) == 1 then
|
|
item_drop.drop_item(pos, "rp_farming:cotton_1")
|
|
end
|
|
|
|
-- Drop an extra cotton ball
|
|
|
|
for i = 1, 2 do
|
|
if math.random(1, 4) == 1 then -- 25% chance of dropping 2x
|
|
item_drop.drop_item(pos, "rp_farming:cotton 2")
|
|
else
|
|
item_drop.drop_item(pos, "rp_farming:cotton")
|
|
end
|
|
end
|
|
|
|
-- Add wear
|
|
if not minetest.is_creative_enabled(player:get_player_name()) then
|
|
local def = tool:get_definition()
|
|
tool:add_wear_by_uses(def.tool_capabilities.groupcaps.snappy.uses)
|
|
end
|
|
|
|
-- Keep it growing
|
|
|
|
farming.begin_growing_plant(pos)
|
|
|
|
return tool
|
|
end
|
|
|
|
farming.register_plant_nodes("rp_farming:cotton", {
|
|
description_stage_1 = S("Cotton Seed"),
|
|
description_general = NS("Cotton Plant (stage @1)"),
|
|
tooltip_stage_1 = S("Grows on dirt, dry dirt and sand; it likes water"),
|
|
texture_prefix = "farming_cotton",
|
|
drop_stages = {
|
|
[1] = {
|
|
items = {
|
|
{items = {"rp_farming:cotton"}, rarity = 3}
|
|
}
|
|
},
|
|
[2] = {
|
|
items = {
|
|
{items = {"rp_farming:cotton"}, rarity = 2}
|
|
},
|
|
},
|
|
[3] = {
|
|
items = {
|
|
{items = {"rp_farming:cotton"}, rarity = 1}
|
|
},
|
|
},
|
|
[4] = {
|
|
items = {
|
|
-- 1-3 cotton, 1-2 cotton seed
|
|
{items = {"rp_farming:cotton"}, rarity = 1},
|
|
{items = {"rp_farming:cotton 2"}, rarity = 4},
|
|
{items = {"rp_farming:cotton_1"}, rarity = 1},
|
|
{items = {"rp_farming:cotton_1"}, rarity = 2},
|
|
}
|
|
},
|
|
},
|
|
stage_extras = {
|
|
[4] = {
|
|
_on_trim = trim_cotton,
|
|
},
|
|
},
|
|
stage_extra_groups = {
|
|
[4] = {
|
|
unmagnetic = 1,
|
|
},
|
|
},
|
|
|
|
})
|
|
|
|
|
|
minetest.register_node(
|
|
"rp_farming:cotton_bale",
|
|
{
|
|
description = S("Cotton Bale"),
|
|
tiles ={"farming_cotton_bale.png"},
|
|
-- HACK: This is a workaround to fix the coloring of the crack overlay
|
|
overlay_tiles = {{name="rp_textures_blank_paintable_overlay.png",color="white"}},
|
|
is_ground_content = false,
|
|
groups = {snappy = 2, oddly_breakable_by_hand = 3,
|
|
fall_damage_add_percent = -15, fuzzy = 1,
|
|
unmagnetic = 1, paintable = 1},
|
|
sounds = rp_sounds.node_sound_fuzzy_defaults({
|
|
footstep = { name = "rp_sounds_footstep_fuzzy", gain = 0.7, pitch = 1.3 },
|
|
dig = {name="rp_sounds_dig_fuzzy", gain=0.5, pitch = 1.3 },
|
|
dug = {name="rp_sounds_dug_fuzzy", gain=0.4, pitch = 1.3 },
|
|
place = {name="rp_sounds_place_fuzzy", gain=0.4, pitch = 1.3 },
|
|
}),
|
|
paramtype2 = "color",
|
|
palette = "rp_paint_palette_256.png",
|
|
-- clear the color when breaking
|
|
drop = "rp_farming:cotton_bale",
|
|
}
|
|
)
|
|
|
|
minetest.register_node(
|
|
"rp_farming:straw",
|
|
{
|
|
description = S("Straw"),
|
|
tiles = {"rp_farming_straw.png"},
|
|
is_ground_content = false,
|
|
groups = {snappy = 3, fall_damage_add_percent = -15},
|
|
sounds = rp_sounds.node_sound_straw_defaults(),
|
|
}
|
|
)
|