2017-03-13 21:53:49 +00:00
-- Seeds
2017-02-10 16:00:29 +00:00
minetest.register_craftitem ( " mcl_farming:pumpkin_seeds " , {
2017-02-01 13:41:47 +00:00
description = " Pumpkin Seeds " ,
2017-03-11 17:23:30 +00:00
_doc_items_longdesc = " Grows into a pumpkin. Chickens like pumpkin seeds. " ,
_doc_items_usagehelp = " Place the pumpkin seeds on farmland (which can be created with a hoe) to plant a pumpkin stem. Pumpkins grow in sunlight and grow faster on hydrated farmland. Rightclick an animal to feed it pumpkin seeds. " ,
2015-06-29 17:55:56 +00:00
stack_max = 64 ,
inventory_image = " farming_pumpkin_seed.png " ,
2017-01-20 10:24:39 +00:00
groups = { craftitem = 1 } ,
2015-06-29 17:55:56 +00:00
on_place = function ( itemstack , placer , pointed_thing )
2017-02-10 17:57:32 +00:00
return mcl_farming : place_seed ( itemstack , placer , pointed_thing , " mcl_farming:pumpkin_1 " )
2015-06-29 17:55:56 +00:00
end
} )
2017-03-14 03:17:35 +00:00
local stem_drop = {
2017-02-22 14:13:17 +00:00
max_items = 1 ,
-- FIXME: The probabilities are slightly off from the original.
-- Update this drop list when the Minetest drop probability system
-- is more powerful.
items = {
-- 1 seed: Approximation to 20/125 chance
-- 20/125 = 0.16
-- Approximation: 1/6 = ca. 0.166666666666667
{ items = { " mcl_farming:pumpkin_seeds 1 " } , rarity = 6 } ,
-- 2 seeds: Approximation to 4/125 chance
-- 4/125 = 0.032
-- Approximation: 1/31 = ca. 0.032258064516129
{ items = { " mcl_farming:pumpkin_seeds 2 " } , rarity = 31 } ,
-- 3 seeds: 1/125 chance
{ items = { " mcl_farming:pumkin_seeds 3 " } , rarity = 125 } ,
} ,
}
2017-03-14 01:37:42 +00:00
-- Unconnected immature stem
2017-03-13 21:30:37 +00:00
2017-03-14 01:37:42 +00:00
for s = 1 , 7 do
local h = s / 8
2017-03-14 04:46:57 +00:00
local doc = s == 1
local longdesc , entry_name
if doc then
entry_name = " Premature Pumpkin Stem "
longdesc = " Pumpkin stems grow on farmland in 8 stages. On hydrated farmland, the growth is a bit quicker. Mature pumpkin stems are able to grow pumpkins. "
end
2017-03-14 01:37:42 +00:00
minetest.register_node ( " mcl_farming:pumpkin_ " .. s , {
2017-03-14 04:46:57 +00:00
description = string.format ( " Premature Pumpkin Stem (Stage %d) " , s ) ,
_doc_items_entry_name = entry_name ,
_doc_items_create_entry = doc ,
_doc_items_longdesc = longdesc ,
2017-03-14 01:37:42 +00:00
paramtype = " light " ,
walkable = false ,
drawtype = " plantlike " ,
sunlight_propagates = true ,
2017-03-14 03:17:35 +00:00
drop = stem_drop ,
2017-03-14 02:26:48 +00:00
tiles = { " mcl_farming_pumpkintige_ " .. s .. " .png " } ,
2017-03-14 01:37:42 +00:00
selection_box = {
type = " fixed " ,
fixed = {
{ - 0.15 , - 0.5 , - 0.15 , 0.15 , - 0.5 + h , 0.15 }
} ,
2015-06-29 17:55:56 +00:00
} ,
2017-05-20 02:11:14 +00:00
groups = { dig_immediate = 3 , not_in_creative_inventory = 1 , plant = 1 , attached_node = 1 , dig_by_water = 1 , destroy_by_lava_flow = 1 , } ,
2017-03-14 01:37:42 +00:00
sounds = mcl_sounds.node_sound_leaves_defaults ( ) ,
_mcl_blast_resistance = 0 ,
} )
end
2015-06-29 17:55:56 +00:00
2017-03-13 21:30:37 +00:00
-- Full stem (not connected)
2017-03-14 03:17:35 +00:00
local stem_def = {
2017-03-13 21:30:37 +00:00
description = " Mature Pumpkin Stem " ,
2017-03-14 04:46:57 +00:00
_doc_items_longdesc = " A mature pumpkin stem attempts to grow a pumpkin at one of its four adjacent blocks. A pumpkin can only grow on top of farmland, dirt or a grass block. When a pumpkin is next to a pumpkin stem, the pumpkin stem immediately bends and connects to the pumpkin. A connected pumpkin stem can't grow another pumpkin. As soon all pumpkins around the stem have been removed, it loses the connection and is ready to grow another pumpkin. " ,
2017-03-14 02:26:48 +00:00
tiles = { " mcl_farming_pumpkintige_8.png " } ,
2017-03-14 03:17:35 +00:00
}
2015-06-29 17:55:56 +00:00
2017-03-13 21:30:37 +00:00
-- Template for pumpkin
local pumpkin_base_def = {
description = " Pumpkin " ,
2017-06-11 13:21:20 +00:00
_doc_items_longdesc = " A pumpkin is a naturally occouring block from the grasslands and is remarkable for its strange face-like cavity, which is developed naturally. A pumpkin can be worn as a helmet for fun, but it doesn't offer any protection. Pumpkins are grown from pumpkin stems, which in turn are grown from pumpkin seeds. " ,
2017-03-13 21:30:37 +00:00
stack_max = 64 ,
paramtype2 = " facedir " ,
tiles = { " farming_pumpkin_top.png " , " farming_pumpkin_top.png " , " farming_pumpkin_side.png " , " farming_pumpkin_side.png " , " farming_pumpkin_side.png " , " farming_pumpkin_face.png " } ,
2017-06-11 20:20:25 +00:00
groups = { handy = 1 , axey = 1 , plant = 1 , building_block = 1 , armor_head = 1 , non_combat_armor = 1 , dig_by_piston = 1 } ,
2017-03-13 21:30:37 +00:00
sounds = mcl_sounds.node_sound_wood_defaults ( ) ,
_mcl_blast_resistance = 5 ,
_mcl_hardness = 1 ,
}
2015-06-29 17:55:56 +00:00
2017-03-13 21:30:37 +00:00
-- Register stem growth
2017-04-01 01:54:58 +00:00
mcl_farming : add_plant ( " plant_pumpkin_stem " , " mcl_farming:pumpkintige_unconnect " , { " mcl_farming:pumpkin_1 " , " mcl_farming:pumpkin_2 " , " mcl_farming:pumpkin_3 " , " mcl_farming:pumpkin_4 " , " mcl_farming:pumpkin_5 " , " mcl_farming:pumpkin_6 " , " mcl_farming:pumpkin_7 " } , 30 , 5 )
2015-06-29 17:55:56 +00:00
2017-03-13 21:30:37 +00:00
-- Register actual pumpkin, connected stems and stem-to-pumpkin growth
2017-03-14 03:17:35 +00:00
mcl_farming : add_gourd ( " mcl_farming:pumpkintige_unconnect " , " mcl_farming:pumpkintige_linked " , " mcl_farming:pumpkintige_unconnect " , stem_def , stem_drop , " mcl_farming:pumpkin_face " , pumpkin_base_def , 30 , 15 )
2015-06-29 17:55:56 +00:00
2017-03-13 21:30:37 +00:00
-- Jack o'Lantern
2017-01-31 11:35:59 +00:00
minetest.register_node ( " mcl_farming:pumpkin_face_light " , {
2017-01-04 05:30:42 +00:00
description = " Jack o'Lantern " ,
2017-03-14 04:51:11 +00:00
_doc_items_longdesc = " A jack o'lantern is a traditional Halloween decoration made from a pumpkin. It glows brightly. " ,
2017-03-11 15:36:05 +00:00
is_ground_content = false ,
2015-06-29 17:55:56 +00:00
stack_max = 64 ,
paramtype2 = " facedir " ,
2017-02-01 21:12:08 +00:00
-- Real light level: 15 (Minetest caps at 14)
2017-01-04 09:11:35 +00:00
light_source = 14 ,
2015-06-29 17:55:56 +00:00
tiles = { " farming_pumpkin_top.png " , " farming_pumpkin_top.png " , " farming_pumpkin_side.png " , " farming_pumpkin_side.png " , " farming_pumpkin_side.png " , " farming_pumpkin_face_light.png " } ,
2017-03-29 20:58:31 +00:00
groups = { handy = 1 , axey = 1 , building_block = 1 , dig_by_piston = 1 } ,
2017-02-11 17:46:23 +00:00
sounds = mcl_sounds.node_sound_wood_defaults ( ) ,
2017-02-22 15:03:59 +00:00
_mcl_blast_resistance = 5 ,
2017-02-27 00:26:07 +00:00
_mcl_hardness = 1 ,
2015-06-29 17:55:56 +00:00
} )
2017-03-13 21:30:37 +00:00
-- Crafting
2015-06-29 17:55:56 +00:00
minetest.register_craft ( {
2017-01-31 11:35:59 +00:00
output = " mcl_farming:pumpkin_face_light " ,
recipe = { { " mcl_farming:pumpkin_face " } ,
2017-02-10 13:41:36 +00:00
{ " mcl_torches:torch " } }
2015-06-29 17:55:56 +00:00
} )
minetest.register_craft ( {
2017-02-10 16:00:29 +00:00
output = " mcl_farming:pumpkin_seeds 4 " ,
2017-02-05 22:56:41 +00:00
recipe = { { " mcl_farming:pumpkin_face " } }
2015-06-29 17:55:56 +00:00
} )
2017-02-01 14:00:22 +00:00
minetest.register_craftitem ( " mcl_farming:pumpkin_pie " , {
description = " Pumpkin Pie " ,
2017-05-21 02:21:12 +00:00
_doc_items_longdesc = " A pumpkin pie is a tasty food item which can be eaten. " ,
2017-02-01 14:00:22 +00:00
stack_max = 64 ,
inventory_image = " mcl_farming_pumpkin_pie.png " ,
wield_image = " mcl_farming_pumpkin_pie.png " ,
2017-02-16 16:45:33 +00:00
on_place = minetest.item_eat ( 8 ) ,
on_secondary_use = minetest.item_eat ( 8 ) ,
2017-02-01 14:00:22 +00:00
groups = { food = 2 , eatable = 8 } ,
2017-05-20 15:45:04 +00:00
_mcl_saturation = 4.8 ,
2017-02-01 14:00:22 +00:00
} )
minetest.register_craft ( {
type = " shapeless " ,
output = " mcl_farming:pumpkin_pie " ,
recipe = { " mcl_farming:pumpkin_face " , " mcl_core:sugar " , " mcl_throwing:egg " } ,
} )
2017-03-21 03:56:16 +00:00
if minetest.get_modpath ( " doc " ) then
for i = 2 , 8 do
doc.add_entry_alias ( " nodes " , " mcl_farming:pumpkin_1 " , " nodes " , " mcl_farming:pumpkin_ " .. i )
end
end