2017-01-31 12:35:59 +01:00
minetest.register_node ( " mcl_farming:melon " , {
2015-06-29 19:55:56 +02:00
description = " Melon " ,
2017-03-11 18:32:39 +01:00
_doc_items_longdesc = " A melon is a block which has been grown from melon seeds. It has reached its full size and can be harvested for melon slices. " ,
2015-06-29 19:55:56 +02:00
stack_max = 64 ,
tiles = { " farming_melon_top.png " , " farming_melon_top.png " , " farming_melon_side.png " , " farming_melon_side.png " , " farming_melon_side.png " , " farming_melon_side.png " } ,
2017-02-27 18:32:35 +01:00
groups = { handy = 1 , axey = 1 , building_block = 1 } ,
2015-06-29 19:55:56 +02:00
drop = {
max_items = 1 ,
items = {
2017-01-31 12:35:59 +01:00
{ items = { ' mcl_farming:melon_item 7 ' } , rarity = 14 } ,
{ items = { ' mcl_farming:melon_item 6 ' } , rarity = 10 } ,
{ items = { ' mcl_farming:melon_item 5 ' } , rarity = 5 } ,
{ items = { ' mcl_farming:melon_item 4 ' } , rarity = 2 } ,
{ items = { ' mcl_farming:melon_item 3 ' } } ,
2015-06-29 19:55:56 +02:00
}
} ,
after_dig_node = function ( pos , oldnode , oldmetadata , user )
local have_change = 0
for x =- 1 , 1 do
local p = { x = pos.x + x , y = pos.y , z = pos.z }
2017-01-11 18:21:46 +01:00
local n = minetest.get_node ( p )
2015-06-29 19:55:56 +02:00
if string.find ( n.name , " melontige_linked_ " ) and have_change == 0 then
have_change = 1
2017-01-31 12:35:59 +01:00
minetest.add_node ( p , { name = " mcl_farming:melontige_unconnect " } )
2015-06-29 19:55:56 +02:00
end
end
if have_change == 0 then
for z =- 1 , 1 do
2017-01-24 02:31:49 +01:00
local p = { x = pos.x , y = pos.y , z = pos.z + z }
2017-01-11 18:21:46 +01:00
local n = minetest.get_node ( p )
2015-06-29 19:55:56 +02:00
if string.find ( n.name , " melontige_linked_ " ) and have_change == 0 then
have_change = 1
2017-01-31 12:35:59 +01:00
minetest.add_node ( p , { name = " mcl_farming:melontige_unconnect " } )
2015-06-29 19:55:56 +02:00
end
end
end
2017-02-19 21:27:31 +01:00
end ,
sounds = mcl_sounds.node_sound_wood_defaults ( ) ,
2017-02-22 16:03:59 +01:00
_mcl_blast_resistance = 5 ,
2017-02-27 01:26:07 +01:00
_mcl_hardness = 1 ,
2015-06-29 19:55:56 +02:00
} )
2017-02-22 14:46:21 +01:00
local stemdrop = {
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:melon_seeds 1 " } , rarity = 6 } ,
-- 2 seeds: Approximation to 4/125 chance
-- 4/125 = 0.032
-- Approximation: 1/31 = ca. 0.032258064516129
{ items = { " mcl_farming:melon_seeds 2 " } , rarity = 31 } ,
-- 3 seeds: 1/125 chance
{ items = { " mcl_farming:melon_seeds 3 " } , rarity = 125 } ,
} ,
}
2017-01-31 12:35:59 +01:00
minetest.register_node ( " mcl_farming:melontige_1 " , {
2017-02-22 15:08:39 +01:00
description = " Melon Stem (1) " ,
2017-03-02 19:53:53 +01:00
_doc_items_entry_name = " Melon Stem " ,
2015-06-29 19:55:56 +02:00
paramtype = " light " ,
walkable = false ,
drawtype = " plantlike " ,
sunlight_propagates = true ,
2017-02-22 14:46:21 +01:00
drop = stemdrop ,
2015-06-29 19:55:56 +02:00
tiles = { " farming_tige_1.png " } ,
selection_box = {
type = " fixed " ,
fixed = {
{ - 0.5 , - 0.5 , - 0.5 , 0.5 , - 0.5 + 6 / 16 , 0.5 }
} ,
} ,
2017-02-24 05:34:03 +01:00
groups = { dig_immediate = 3 , not_in_creative_inventory = 1 , dig_by_water = 1 } ,
2017-02-11 18:46:23 +01:00
sounds = mcl_sounds.node_sound_leaves_defaults ( ) ,
2017-02-22 16:03:59 +01:00
_mcl_blast_resistance = 0 ,
2015-06-29 19:55:56 +02:00
} )
2017-01-31 12:35:59 +01:00
minetest.register_node ( " mcl_farming:melontige_2 " , {
2017-02-22 15:08:39 +01:00
description = " Melon Stem (2) " ,
2017-03-02 19:53:53 +01:00
_doc_items_create_entry = false ,
2015-06-29 19:55:56 +02:00
paramtype = " light " ,
walkable = false ,
drawtype = " plantlike " ,
sunlight_propagates = true ,
2017-02-22 14:46:21 +01:00
drop = stemdrop ,
2015-06-29 19:55:56 +02:00
tiles = { " farming_tige_2.png " } ,
selection_box = {
type = " fixed " ,
fixed = {
{ - 0.5 , - 0.5 , - 0.5 , 0.5 , - 0.5 + 9 / 16 , 0.5 }
} ,
} ,
2017-02-24 05:34:03 +01:00
groups = { dig_immediate = 3 , not_in_creative_inventory = 1 , dig_by_water = 1 } ,
2017-02-11 18:46:23 +01:00
sounds = mcl_sounds.node_sound_leaves_defaults ( ) ,
2017-02-22 16:03:59 +01:00
_mcl_blast_resistance = 0 ,
2015-06-29 19:55:56 +02:00
} )
2017-01-31 12:35:59 +01:00
minetest.register_node ( " mcl_farming:melontige_unconnect " , {
2017-02-22 15:08:39 +01:00
description = " Melon Stem (unconnected) " ,
2017-03-02 19:53:53 +01:00
_doc_items_create_entry = false ,
2015-06-29 19:55:56 +02:00
paramtype = " light " ,
walkable = false ,
sunlight_propagates = true ,
2017-02-22 14:46:21 +01:00
drop = stemdrop ,
2015-06-29 19:55:56 +02:00
drawtype = " plantlike " ,
tiles = { " farming_tige_end.png " } ,
2017-02-24 05:34:03 +01:00
groups = { dig_immediate = 3 , not_in_creative_inventory = 1 , dig_by_water = 1 } ,
2017-02-11 18:46:23 +01:00
sounds = mcl_sounds.node_sound_leaves_defaults ( ) ,
2017-02-22 16:03:59 +01:00
_mcl_blast_resistance = 0 ,
2015-06-29 19:55:56 +02:00
} )
2017-01-31 12:35:59 +01:00
minetest.register_node ( " mcl_farming:melontige_linked_r " , {
2017-02-22 15:08:39 +01:00
description = " Melon Stem (linked to the right) " ,
2017-03-02 19:53:53 +01:00
_doc_items_create_entry = false ,
2015-06-29 19:55:56 +02:00
paramtype = " light " ,
sunlight_propagates = true ,
walkable = false ,
2017-02-22 14:46:21 +01:00
drop = stemdrop ,
2015-06-29 19:55:56 +02:00
drawtype = " nodebox " ,
paramtype = " light " ,
paramtype2 = " wallmounted " ,
node_box = {
type = " fixed " ,
fixed = {
{ - 0.5 , - 0.5 , 0 , 0.5 , 0.5 , 0 } , -- NodeBox1
}
} ,
selection_box = {
type = " fixed " ,
fixed = { - 0.2 , - 0.5 , - 0.2 , 0.2 , 0.2 , 0.2 }
} ,
tiles = {
" farming_tige_connnect.png " , --top
" farming_tige_connnect.png " , -- bottom
" farming_tige_connnect.png " , -- right
" farming_tige_connnect.png " , -- left
" farming_tige_connnect.png " , -- back
" farming_tige_connnect.png^[transformFX90 " --front
} ,
2017-02-24 05:34:03 +01:00
groups = { dig_immediate = 3 , not_in_creative_inventory = 1 , dig_by_water = 1 } ,
2017-02-11 18:46:23 +01:00
sounds = mcl_sounds.node_sound_leaves_defaults ( ) ,
2017-02-22 16:03:59 +01:00
_mcl_blast_resistance = 0 ,
2015-06-29 19:55:56 +02:00
} )
2017-01-31 12:35:59 +01:00
minetest.register_node ( " mcl_farming:melontige_linked_l " , {
2017-02-22 15:08:39 +01:00
description = " Melon Stem (linked to the left) " ,
2017-03-02 19:53:53 +01:00
_doc_items_create_entry = false ,
2015-06-29 19:55:56 +02:00
paramtype = " light " ,
walkable = false ,
sunlight_propagates = true ,
2017-02-22 14:46:21 +01:00
drop = stemdrop ,
2015-06-29 19:55:56 +02:00
drawtype = " nodebox " ,
paramtype = " light " ,
paramtype2 = " wallmounted " ,
node_box = {
type = " fixed " ,
fixed = {
{ - 0.5 , - 0.5 , 0 , 0.5 , 0.5 , 0 } , -- NodeBox1
}
} ,
selection_box = {
type = " fixed " ,
fixed = { - 0.2 , - 0.5 , - 0.2 , 0.2 , 0.2 , 0.2 }
} ,
tiles = {
" farming_tige_connnect.png " , --top
" farming_tige_connnect.png " , -- bottom
" farming_tige_connnect.png " , -- right
" farming_tige_connnect.png " , -- left
" farming_tige_connnect.png^[transformFX90 " , -- back
" farming_tige_connnect.png " --front
} ,
2017-02-24 05:34:03 +01:00
groups = { dig_immediate = 3 , not_in_creative_inventory = 1 , dig_by_water = 1 } ,
2017-02-11 18:46:23 +01:00
sounds = mcl_sounds.node_sound_leaves_defaults ( ) ,
2017-02-22 16:03:59 +01:00
_mcl_blast_resistance = 0 ,
2015-06-29 19:55:56 +02:00
} )
2017-01-31 12:35:59 +01:00
minetest.register_node ( " mcl_farming:melontige_linked_t " , {
2017-02-22 15:08:39 +01:00
description = " Melon Stem (linked to the top) " ,
2017-03-02 19:53:53 +01:00
_doc_items_create_entry = false ,
2015-06-29 19:55:56 +02:00
paramtype = " light " ,
walkable = false ,
sunlight_propagates = true ,
2017-02-22 14:46:21 +01:00
drop = stemdrop ,
2015-06-29 19:55:56 +02:00
drawtype = " nodebox " ,
paramtype = " light " ,
paramtype2 = " wallmounted " ,
node_box = {
type = " fixed " ,
fixed = {
{ 0 , - 0.5 , - 0.5 , 0 , 0.5 , 0.5 } , -- NodeBox1
}
} ,
selection_box = {
type = " fixed " ,
fixed = { - 0.2 , - 0.5 , - 0.2 , 0.2 , 0.2 , 0.2 }
} ,
tiles = {
" farming_tige_connnect.png " , --top
" farming_tige_connnect.png " , -- bottom
" farming_tige_connnect.png^[transformFX90 " , -- right
" farming_tige_connnect.png " , -- left
" farming_tige_connnect.png " , -- back
" farming_tige_connnect.png " --front
} ,
2017-02-24 05:34:03 +01:00
groups = { dig_immediate = 3 , not_in_creative_inventory = 1 , dig_by_water = 1 } ,
2017-02-11 18:46:23 +01:00
sounds = mcl_sounds.node_sound_leaves_defaults ( ) ,
2017-02-22 16:03:59 +01:00
_mcl_blast_resistance = 0 ,
2015-06-29 19:55:56 +02:00
} )
2017-01-31 12:35:59 +01:00
minetest.register_node ( " mcl_farming:melontige_linked_b " , {
2017-02-22 15:08:39 +01:00
description = " Melon Stem (linked to the bottom) " ,
2017-03-02 19:53:53 +01:00
_doc_items_create_entry = false ,
2015-06-29 19:55:56 +02:00
paramtype = " light " ,
walkable = false ,
sunlight_propagates = true ,
2017-02-22 14:46:21 +01:00
drop = stemdrop ,
2015-06-29 19:55:56 +02:00
drawtype = " nodebox " ,
paramtype = " light " ,
paramtype2 = " wallmounted " ,
node_box = {
type = " fixed " ,
fixed = {
{ 0 , - 0.5 , - 0.5 , 0 , 0.5 , 0.5 } , -- NodeBox1
}
} ,
selection_box = {
type = " fixed " ,
fixed = { - 0.2 , - 0.5 , - 0.2 , 0.2 , 0.2 , 0.2 }
} ,
tiles = {
" farming_tige_connnect.png " , --top
" farming_tige_connnect.png " , -- bottom
" farming_tige_connnect.png " , -- right
" farming_tige_connnect.png^[transformFX90 " , -- left
" farming_tige_connnect.png " , -- back
" farming_tige_connnect.png " --front
} ,
2017-02-24 05:34:03 +01:00
groups = { dig_immediate = 3 , not_in_creative_inventory = 1 , dig_by_water = 1 } ,
2017-02-11 18:46:23 +01:00
sounds = mcl_sounds.node_sound_leaves_defaults ( ) ,
2017-02-22 16:03:59 +01:00
_mcl_blast_resistance = 0 ,
2015-06-29 19:55:56 +02:00
} )
2017-02-10 17:00:29 +01:00
minetest.register_craftitem ( " mcl_farming:melon_seeds " , {
2017-01-04 06:39:52 +01:00
description = " Melon Seeds " ,
2017-03-11 18:23:30 +01:00
_doc_items_longdesc = " Grows into a melon. Chickens like melon seeds. " ,
_doc_items_usagehelp = " Place the melon seeds on farmland (which can be created with a hoe) to plant a melon stem. Melons grow in sunlight and grow faster on hydrated farmland. Rightclick an animal to feed it melon seeds. " ,
2015-06-29 19:55:56 +02:00
stack_max = 64 ,
2017-01-20 11:24:39 +01:00
groups = { craftitem = 1 } ,
2015-06-29 19:55:56 +02:00
inventory_image = " farming_melon_seed.png " ,
on_place = function ( itemstack , placer , pointed_thing )
2017-01-31 12:35:59 +01:00
return mcl_farming : place_seed ( itemstack , placer , pointed_thing , " mcl_farming:melontige_1 " )
2015-06-29 19:55:56 +02:00
end ,
} )
2017-01-31 12:35:59 +01:00
minetest.register_craftitem ( " mcl_farming:melon_item " , {
2017-02-19 21:29:56 +01:00
-- Original name: “Melon”
description = " Melon Slice " ,
2015-06-29 19:55:56 +02:00
stack_max = 64 ,
inventory_image = " farming_melon.png " ,
2017-02-16 17:45:33 +01:00
on_place = minetest.item_eat ( 2 ) ,
on_secondary_use = minetest.item_eat ( 2 ) ,
2017-01-16 14:29:41 +01:00
groups = { food = 2 , eatable = 2 } ,
2015-06-29 19:55:56 +02:00
} )
minetest.register_abm ( {
2017-01-31 12:35:59 +01:00
nodenames = { " mcl_farming:melontige_unconnect " } ,
2015-06-29 19:55:56 +02:00
neighbors = { " air " } ,
interval = 25 ,
chance = 15 ,
action = function ( pos )
local have_change = 0
local newpos = { x = pos.x , y = pos.y , z = pos.z }
local light = minetest.get_node_light ( pos )
if light or light > 10 then
for x =- 1 , 1 do
local p = { x = pos.x + x , y = pos.y - 1 , z = pos.z }
newpos = { x = pos.x + x , y = pos.y , z = pos.z }
2017-01-11 18:21:46 +01:00
local n = minetest.get_node ( p )
local nod = minetest.get_node ( newpos )
2017-01-31 23:32:56 +01:00
if n.name == " mcl_core:dirt_with_grass " and nod.name == " air " and have_change == 0
or n.name == " mcl_core:dirt " and nod.name == " air " and have_change == 0
2017-01-31 12:35:59 +01:00
or string.find ( n.name , " mcl_farming:soil " ) and nod.name == " air " and have_change == 0 then
2015-06-29 19:55:56 +02:00
have_change = 1
2017-01-31 12:35:59 +01:00
minetest.add_node ( newpos , { name = " mcl_farming:melon " } )
2015-06-29 19:55:56 +02:00
if x == 1 then
2017-01-31 12:35:59 +01:00
minetest.add_node ( pos , { name = " mcl_farming:melontige_linked_r " } )
2015-06-29 19:55:56 +02:00
else
2017-01-31 12:35:59 +01:00
minetest.add_node ( pos , { name = " mcl_farming:melontige_linked_l " } )
2015-06-29 19:55:56 +02:00
end
end
end
if have_change == 0 then
for z =- 1 , 1 do
2017-01-24 02:31:49 +01:00
local p = { x = pos.x , y = pos.y - 1 , z = pos.z + z }
2015-06-29 19:55:56 +02:00
newpos = { x = pos.x , y = pos.y , z = pos.z + z }
2017-01-24 02:31:49 +01:00
local n = minetest.get_node ( p )
2017-01-11 18:21:46 +01:00
local nod2 = minetest.get_node ( newpos )
2017-01-31 23:32:56 +01:00
if n.name == " mcl_core:dirt_with_grass " and nod2.name == " air " and have_change == 0
or n.name == " mcl_core:dirt " and nod2.name == " air " and have_change == 0
2017-01-31 12:35:59 +01:00
or string.find ( n.name , " mcl_farming:soil " ) and nod2.name == " air " and have_change == 0 then
2015-06-29 19:55:56 +02:00
have_change = 1
2017-01-31 12:35:59 +01:00
minetest.add_node ( newpos , { name = " mcl_farming:melon " } )
2015-06-29 19:55:56 +02:00
if z == 1 then
2017-01-31 12:35:59 +01:00
minetest.add_node ( pos , { name = " mcl_farming:melontige_linked_t " } )
2015-06-29 19:55:56 +02:00
else
2017-01-31 12:35:59 +01:00
minetest.add_node ( pos , { name = " mcl_farming:melontige_linked_b " } )
2015-06-29 19:55:56 +02:00
end
end
end
end
end
end ,
} )
2017-01-31 12:35:59 +01:00
mcl_farming : add_plant ( " mcl_farming:melontige_unconnect " , { " mcl_farming:melontige_1 " , " mcl_farming:melontige_2 " } , 50 , 20 )
2015-06-29 19:55:56 +02:00
minetest.register_craft ( {
2017-02-10 17:00:29 +01:00
output = " mcl_farming:melon_seeds " ,
2017-02-07 19:08:28 +01:00
recipe = { { " mcl_farming:melon_item " } }
2015-06-29 19:55:56 +02:00
} )
minetest.register_craft ( {
2017-01-31 12:35:59 +01:00
output = ' mcl_farming:melon ' ,
2015-06-29 19:55:56 +02:00
recipe = {
2017-01-31 12:35:59 +01:00
{ ' mcl_farming:melon_item ' , ' mcl_farming:melon_item ' , ' mcl_farming:melon_item ' } ,
{ ' mcl_farming:melon_item ' , ' mcl_farming:melon_item ' , ' mcl_farming:melon_item ' } ,
{ ' mcl_farming:melon_item ' , ' mcl_farming:melon_item ' , ' mcl_farming:melon_item ' } ,
2015-06-29 19:55:56 +02:00
}
2017-01-04 06:39:52 +01:00
} )
2017-01-07 04:55:58 +01:00
2017-01-20 11:21:55 +01:00