Compare commits

...

283 Commits

Author SHA1 Message Date
0415a7aee1 Merge remote-tracking branch 'upstream/master' 2025-03-20 11:38:27 +01:00
tenplus1
1416f6e615 add setting to disable weeds 2025-02-17 08:09:55 +00:00
tenplus1
ba4026c406 chance weeds from 1 in 15 to 1 in 35 2025-02-16 16:50:13 +00:00
tenplus1
45c346e763 tweak weed bale texture 2025-02-16 08:35:53 +00:00
tenplus1
2752ad259c add weed and weed bale 2025-02-14 13:23:41 +00:00
tenplus1
08cdf0ef52 hoe bome removes dry shrub along with flora 2025-01-26 15:30:49 +00:00
tenplus1
e247a3ea13 hoe bomb's replace dry dirt 2025-01-12 11:40:28 +00:00
tenplus1
ae10efceff update german translation (thx Wuzzy) 2024-12-02 10:45:45 +00:00
tenplus1
712005d2ac tweak asparagus,ginger,spinach offset 2024-11-03 08:16:06 +00:00
tenplus1
ba678f7bb6 add {drink} group to soup 2024-10-16 11:00:37 +01:00
tenplus1
b840b812b3 add drink group to soups 2024-10-15 13:10:59 +01:00
tenplus1
e302b83c43 mortar and juicer now use group:stone 2024-09-27 09:03:23 +01:00
tenplus1
56fb88f484 remove check 2024-09-26 09:02:36 +01:00
tenplus1
6356dfcdb5 fix typo, tweak deco 2024-09-25 10:21:16 +01:00
tenplus1
2b31a87a32 crop deco with ethereal added. 2024-09-24 12:31:06 +01:00
tenplus1
9d471bf6d8 16px burger 2024-09-21 13:00:05 +01:00
tenplus1
a23866a487 dont register decoration if ethereal active 2024-09-19 09:06:13 +01:00
tenplus1
d59efa22d7 new burger texture 2024-09-19 07:48:44 +01:00
tenplus1
6185f95bcc tweak pineapple final stage and items 2024-09-17 12:50:46 +01:00
tenplus1
256eac1f0f tweaked pineapple textures 2024-09-16 08:33:29 +01:00
tenplus1
c0104b32b4 tweak pineapple textures to be more bushlike 2024-09-15 16:51:47 +01:00
tenplus1
e3bf5f92a7 revert to old cocoa register_on_generate function, new one had memory leak 2024-09-15 11:36:11 +01:00
c202ced929 Merge remote-tracking branch 'upstream/master' 2024-09-15 09:07:19 +02:00
tenplus1
663cf0b86c 16px vanilla_flan, spaghetti, burger 2024-09-14 12:37:07 +01:00
tenplus1
201da1cc34 new popcorn, potato salad texture 2024-09-12 17:23:32 +01:00
tenplus1
a415cf5364 tweak poisson functions 2024-09-12 11:21:32 +01:00
tenplus1
87d6973420 tweak code 2024-09-12 07:57:25 +01:00
tenplus1
0040f21962 add missing {grassland} groups 2024-09-11 11:33:58 +01:00
tenplus1
b7603c2439 fix nil 2024-09-10 06:58:32 +01:00
tenplus1
45e13d263f update translation (thx adikalon) 2024-09-08 15:43:02 +01:00
tenplus1
a952846bde add some missing translation 2024-09-07 13:19:12 +01:00
tenplus1
ddd7c56a2c add " crop" translation for russian 2024-09-07 12:01:06 +01:00
tenplus1
2b65a7416b add descriptions to all crop stages 2024-09-07 10:45:05 +01:00
tenplus1
2f1a233441 add desc to crop stages (api only) 2024-09-07 08:09:35 +01:00
tenplus1
8dc7d4188e update russian translation (thx adikalon) 2024-09-06 17:18:56 +01:00
tenplus1
4bf83d3bbf log seed placement (thx Emojigit) 2024-09-06 15:15:21 +01:00
tenplus1
0addf044b6 add vegan butter and jerusalem artichokes. 2024-08-31 12:05:16 +01:00
tenplus1
4600e42021 add 16px textures, move 32px into alt_textures folder 2024-08-29 11:17:37 +01:00
tenplus1
6d3c0ec1ef add default damage_group 2024-08-25 11:47:36 +01:00
tenplus1
ebe1db179d hoes can deal damage to mobs and players 2024-08-25 10:46:50 +01:00
tenplus1
e2f12c8061 fix instafarm lb typo 2024-08-13 13:06:35 +01:00
tenplus1
141be63a92 add mineclone replacements for lucky blocks 2024-08-13 11:54:58 +01:00
tenplus1
45dd32c102 tweak code, fix straw recipe 2024-08-12 14:21:46 +01:00
tenplus1
e409fe9ecb add missing {handy} 2024-08-12 08:33:44 +01:00
tenplus1
5e610c936a update readme 2024-08-12 08:31:28 +01:00
tenplus1
95bd342cda tidy code, fix straw recipe 2024-08-12 08:29:34 +01:00
tenplus1
09b06ea72a better mineclone support 2024-08-12 08:02:50 +01:00
tenplus1
f3a7e9350f remove certain foods and recipes when using mineclone 2024-08-11 16:54:35 +01:00
tenplus1
a9a1b720a3 separate food /non-food items from crop files, tidy code 2024-08-11 15:38:55 +01:00
tenplus1
cdac09a8f4 properly detect and use sounds from default/mcl 2024-08-11 08:47:26 +01:00
tenplus1
a74a29c849 remove XP desc. 2024-08-03 23:55:08 +01:00
tenplus1
710b7ac111 update {eatable} function 2024-07-27 18:28:25 +01:00
tenplus1
b61998217d tidy code 2024-07-27 08:23:46 +01:00
tenplus1
75e3f9fb42 add helper function to add {eatable} 2024-07-26 16:30:53 +01:00
tenplus1
648bae7517 add {eatable} group to default apple, blueberries, mushrooms if found 2024-07-26 15:29:09 +01:00
tenplus1
e2ec7d707e added {eatable} group to food items and tooltip HP info 2024-07-26 13:56:45 +01:00
tenplus1
2f7031e717 add mcl_grass as optional dependency 2024-07-13 07:20:07 +01:00
tenplus1
97b2fdd2ad tidy code 2024-07-03 08:38:21 +01:00
tenplus1
49c8ba1892 fix mithril scythe node naming 2024-07-03 08:27:07 +01:00
tenplus1
5c050f3516 harden seed placement 2024-06-28 11:13:44 +01:00
tenplus1
877f944641 fix _mcl_hardness values for crops and seeds 2024-06-25 17:29:31 +01:00
tenplus1
ac4c4f48d3 add mt5.9x new farming.can_grow default function and check, deprecate but still run growth_check function 2024-06-24 07:41:40 +01:00
tenplus1
8bd129309c update api.txt 2024-06-20 11:21:41 +01:00
tenplus1
0349a7a6f1 re-add bronze hoe recipe 2024-06-12 07:31:41 +01:00
tenplus1
433d485292 use async env support when generating cocoa pods (thx Niklp) 2024-06-09 07:33:19 +01:00
tenplus1
e33dd0e275 seed drops from short grass more rare (thx skaapdev) 2024-04-22 15:03:09 +01:00
tenplus1
37ea21fdaf all grass have the chance of dropping seeds 2024-04-22 11:15:13 +01:00
tenplus1
c59162149d check for dirt_with_dry_grass before override to help with VoxelGarden issue 2024-03-28 13:25:02 +00:00
tenplus1
9101901afe add hungarian locale (thx gabriel1379) 2024-03-19 08:52:32 +00:00
tenplus1
9a2456b887 enable strawberry 2024-03-12 06:52:50 +00:00
tenplus1
d99f96b224 set is_ground_content for all (thx SwissAlpS) 2024-02-29 17:06:28 +00:00
tenplus1
1043da0b52 add screenshot.jpg 2024-01-21 10:53:10 +00:00
501e9e302e Merge remote-tracking branch 'upstream/master' 2023-12-13 20:58:45 +01:00
tenplus1
612aea3d31 add missing stone sounds to farming.sounds 2023-12-06 17:29:50 +00:00
tenplus1
51d5132708 tweak default compatibility 2023-12-04 22:31:12 +00:00
tenplus1
9247121b14 mcl group tweaks 2023-11-25 16:51:34 +00:00
tenplus1
a0dd3db65f better mineclone/mineclonia support 2023-11-25 14:07:05 +00:00
tenplus1
12eb5579a1 added handy=1 group to seeds, hemp block and hemp rope (thx usrib) 2023-11-25 12:05:21 +00:00
a26e4f94f2 Merge remote-tracking branch 'upstream/master' 2023-11-22 23:32:31 +01:00
tenplus1
1f97cbbe00 fix hemp fibre recipe (thx fluxionary) 2023-11-04 07:56:55 +00:00
tenplus1
be56564c28 remove meta from french translation 2023-10-08 16:47:47 +01:00
tenplus1
915b93f113 update french translation (thx TheDarkTiger) 2023-10-07 11:45:05 +01:00
tenplus1
1d634550cb update french translation (thx TheDarkTiger) 2023-10-07 08:16:07 +01:00
tenplus1
421cde33a4 increase mithril scythe to 350 uses, tidy hoe code 2023-10-02 07:39:06 +01:00
tenplus1
98f0581c17 use set_node so 3rd party mod timers can activate 2023-09-15 07:35:47 +01:00
tenplus1
85c5c9abab optimize 2023-09-12 08:48:21 +01:00
tenplus1
fd205e10fc seeds grow on timer so players can wander 2023-09-11 14:49:37 +01:00
tenplus1
b6ba098396 revert on_grow change 2023-09-07 07:57:20 +01:00
tenplus1
0f25366203 add return growth 2023-09-06 18:14:25 +01:00
tenplus1
af48a0e661 if not using mineclone enable defaults 2023-09-06 10:00:46 +01:00
tenplus1
8606fbd202 fix api.txt error 2023-09-06 08:12:14 +01:00
tenplus1
426564232e Fix growth_check return value/check, add initial on_grow function 2023-09-06 08:11:07 +01:00
tenplus1
27aae682bd new vanilla texture (thx oz-tal) 2023-09-05 13:57:42 +01:00
tenplus1
971865f9f3 add barley compostability group 2023-09-05 11:10:57 +01:00
tenplus1
b4005685fd if mcl dont add bowl recipe 2023-09-05 07:53:51 +01:00
tenplus1
f5c321c04d add missing groups 2023-09-05 07:51:11 +01:00
tenplus1
2efa174015 update readme 2023-09-03 10:18:54 +01:00
tenplus1
d4b0b02fc4 Fix glass water group and recipes, fix mcl wheat item 2023-09-03 08:12:02 +01:00
tenplus1
8dd80159fd add potions river water bottle to food_glass_water group 2023-09-02 10:47:22 +01:00
tenplus1
0d52c5344d more mineclone compatible recipes 2023-09-02 08:13:32 +01:00
tenplus1
cca92063c4 texture update (onion,garlic,grapes,cookie - thx oz-tal) 2023-09-02 07:06:02 +01:00
tenplus1
0c82c6c0e9 added new garlic textures (thanks oz-tal) 2023-09-01 18:41:20 +01:00
tenplus1
cc0668bc57 fix string/wool 2023-09-01 10:12:30 +01:00
tenplus1
5107d18079 most recipes work with mineclone 2023-09-01 10:04:33 +01:00
tenplus1
fd58dcaab1 food recipes work with mineclone 2023-08-31 13:59:06 +01:00
tenplus1
8ce92bdb91 disable pumpkin in mcl2 2023-08-31 09:33:47 +01:00
tenplus1
df64f1117f add initial MineClone2 support (thx usrib) 2023-08-31 07:53:19 +01:00
tenplus1
581a1bbaef update mod.conf 2023-08-14 08:24:20 +01:00
tenplus1
fa4ee48828 Update translations (thanks Niklp) 2023-08-14 08:22:28 +01:00
tenplus1
e6d31c9442 remove intllib 2023-08-08 17:31:31 +01:00
tenplus1
2f461785d6 add gingerbread man, tweak pineapple drops 2023-07-13 18:54:02 +01:00
tenplus1
8717625d0c add 'farming_use_utensils' setting, added mayonnaise (thx felfa) 2023-07-13 18:07:25 +01:00
tenplus1
b2d1289353 tweak hemp block/stairs groups 2023-07-06 13:01:40 +01:00
tenplus1
f1dd45d903 tweak pineapple drops 2023-06-26 11:04:43 +01:00
f1d02c7877 Merge remote-tracking branch 'upstream/master' 2023-06-05 23:46:11 +02:00
tenplus1
50009ded2a fix turkish delight recipe (thx kiedtl) 2023-05-20 06:47:32 +01:00
tenplus1
a02be7f987 junglegrass drops rice seed instead of rice food 2023-05-01 08:11:13 +01:00
tenplus1
7e544333cd rice crop has chance of giving more 2023-04-28 09:25:26 +01:00
tenplus1
607105ed37 re-add rice seeds and recipe to dry into edible rice 2023-04-28 09:18:54 +01:00
tenplus1
bf697555e0 placable mint and sunflower seeds, added waving to most crops 2023-04-28 08:56:10 +01:00
tenplus1
c218d5aada add new burger texture (thanks Shadall) 2023-04-23 15:40:03 +01:00
tenplus1
31c7b589c1 tweak soil dry abm 2023-04-23 08:54:22 +01:00
tenplus1
ad9b0dc255 return to default wet soil behaviour (within 3 nodes all axis)
tweak wet soil > dry soil behaviour to run better
2023-04-18 08:37:47 +01:00
tenplus1
2446f3d76c use farming seed placer function 2023-04-09 08:57:36 +01:00
tenplus1
03fce8b65f seeds made with register_plant function are placed in world and germinate into stage_1 of crop. 2023-04-08 07:41:03 +01:00
tenplus1
b5f71d8025 check for old wheat/cotton seeds and grow to stage_1 via abm 2023-04-07 14:41:51 +01:00
tenplus1
02cf5688fa fix pea textures (thx fluxionary) 2023-03-19 18:19:50 +00:00
tenplus1
b4f577c716 capatalize spinach and asparagus descriptions 2023-03-09 08:39:51 +00:00
tenplus1
a95ff7a1a4 reduce onion colours to fix blur 2023-02-12 10:36:49 +00:00
tenplus1
498063553a Add ABM labels 2023-01-22 10:31:16 +00:00
tenplus1
28fda57767 update pie textures 2022-12-24 16:51:05 +00:00
tenplus1
9c09ac86d4 recipe for yellow dye using onion 2022-12-24 16:18:22 +00:00
tenplus1
bcf8814c7b add new pie textures 2022-12-19 17:54:06 +00:00
tenplus1
d49630d087 new pumpkin & jack o' lantern textures (thanks alerikaisattera) 2022-11-26 19:06:00 +00:00
tenplus1
793cadc283 fix translation (thx fluxionary) 2022-11-21 08:56:07 +00:00
tenplus1
53eedc328a new popcorn texture by smoke_th 2022-11-20 18:38:58 +00:00
tenplus1
0d16d4352e new coffee crop textures by XSSheep 2022-11-20 18:03:25 +00:00
tenplus1
bdec101edc new melon textures and license (thanks alerikaisattera) 2022-11-20 16:47:23 +00:00
tenplus1
962bb6aeff change barley textures, increase steps to 8 2022-11-14 18:06:56 +00:00
tenplus1
fd89705307 new sugar cube texture 2022-11-12 11:01:57 +00:00
tenplus1
1bca2f0010 add missing recipe 2022-11-12 10:24:17 +00:00
tenplus1
46e0ef5a17 add sugar cube 2022-11-12 10:20:54 +00:00
tenplus1
924bcd8868 fix onigiri typo (thx fluxionary) 2022-11-07 18:56:24 +00:00
tenplus1
9744afeb9b add Esperanto translation (thx Jolesh) 2022-11-06 08:04:52 +00:00
tenplus1
50f6389c6b remove some borrowed textures for new ones 2022-10-30 08:37:23 +00:00
tenplus1
f20abc034f remove ginger growing 2022-10-28 12:29:52 +01:00
tenplus1
c43020e65e fix ginger final select 2022-10-28 12:28:50 +01:00
tenplus1
444e923acd add ginger (thanks Atlante for textures) 2022-10-28 12:23:18 +01:00
tenplus1
68580d270a fix rhubarb_drops (thx Adam0207) and jaffa cake recipe (thx SFence) 2022-10-18 07:53:27 +01:00
tenplus1
5daf8b8bc4 change melon textures, complaints they looked too similar to minecraft 2022-10-13 08:27:18 +01:00
tenplus1
3992a40123 localize math.random for cocoa generation 2022-10-07 10:36:54 +01:00
tenplus1
8fb7d6c28e fix translations to toolrank hoe's 2022-09-26 17:34:15 +01:00
tenplus1
a08b471415 tweak mint and pineapple spawning 2022-09-18 11:10:20 +01:00
tenplus1
ff8e0d73a4 code consistency 2022-09-15 15:12:53 +01:00
tenplus1
7be6bee04c add items to readme craftable list 2022-09-15 14:44:46 +01:00
tenplus1
b5454ac0ea update readme 2022-09-15 14:13:06 +01:00
tenplus1
78ad44e37d update readme 2022-09-15 14:04:10 +01:00
tenplus1
059b7f0fae update readme 2022-09-15 13:41:59 +01:00
tenplus1
c34bb8a5ed fix strawberry issue 2022-09-15 08:25:44 +01:00
tenplus1
2a41f1e9d5 increase selection box to show crop has matured, fix strawberry plant issue, add step to rhubarb growth 2022-09-15 08:03:41 +01:00
tenplus1
6ac255d4c0 add random seed for each registered decoration, tidy code 2022-09-13 18:30:55 +01:00
tenplus1
97d15d3ea1 added spinach; eggplant; asparagus; Chili Powder; new Onigiri (thanks Atlante for new textures), mapgen now inside own crop file, added new lucky blocks 2022-09-13 12:30:10 +01:00
tenplus1
ff526980da change golden carrot recipe (carrot + gold lump) 2022-09-10 08:49:26 +01:00
tenplus1
1ba1b848dc add strawberry rarity to farming.conf_example 2022-09-10 08:46:07 +01:00
tenplus1
c945100237 tweak crop levels on map, add strawberry if ethereal mod not active 2022-09-10 08:44:29 +01:00
31101de345 Merge remote-tracking branch 'upstream/master' 2022-08-26 14:56:17 +02:00
19d5001f46 Merge remote-tracking branch 'upstream/master' 2022-06-25 16:46:39 +02:00
tenplus1
3e522de47e add mac & cheese 2022-06-25 14:44:36 +01:00
tenplus1
ba0ef644a0 tweak recipe for wooden bucket, nil check for refile_plant inv 2022-06-03 07:57:39 +01:00
tenplus1
7f9727cebc fix jaffa cake recipe to work with wooden buckets 2022-05-30 12:34:13 +01:00
7e5db833e0 Merge remote-tracking branch 'upstream/master' 2022-05-27 18:30:28 +02:00
tenplus1
0b06c7cd45 add sound to hemp block 2022-03-13 19:54:58 +00:00
tenplus1
2e90959a6c lower refill time, add player check (thx BuckarooBanzai) 2022-03-09 09:19:43 +00:00
cfe731352d Merge remote-tracking branch 'upstream/master' 2022-03-05 11:21:27 +01:00
tenplus1
33bb4a3a95 list 2022-03-02 12:59:53 +00:00
tenplus1
8cdca1804c update readme (thanks mckaygerhard) 2022-03-02 12:58:16 +00:00
tenplus1
a19f852ddf fix de translations 2022-02-28 08:18:21 +00:00
tenplus1
a897924b83 update translations (thanks SwissalpS) 2022-02-25 08:14:38 +00:00
tenplus1
35c5245b3c fix spanish translations 2022-02-24 08:15:37 +00:00
tenplus1
b2145204be typos 2022-02-23 18:51:10 +00:00
tenplus1
3cbbb3678e add spanish translation (thx mckaygerhard), add trellis setting to registered_crops (thx nixnoxus) 2022-02-23 08:27:30 +00:00
tenplus1
11a829baf7 typo 2022-02-22 08:28:56 +00:00
tenplus1
8be42d5f63 fix pea and soy crop names (thanks nixnoxus) 2022-02-21 18:39:07 +00:00
tenplus1
d59e200a42 better translation support 2022-01-29 09:54:24 +00:00
tenplus1
60a6bad9d0 tweak soil types to work better with older 0.4.x clients 2022-01-29 09:45:41 +00:00
tenplus1
8842235ec6 blueberries can make blue dye 2022-01-28 16:18:38 +00:00
22fc0be525 Merge remote-tracking branch 'upstream/master' 2021-12-10 21:36:18 +01:00
tenplus1
211cedca3a fix cornstarch groups 2021-12-10 08:23:37 +00:00
tenplus1
273ce33bcd tidy code, tweak recipes, simplify peas, soy, rice 2021-12-04 14:06:18 +00:00
1b0e96cfc7 Merge remote-tracking branch 'upstream/master' 2021-11-26 21:41:25 +01:00
tenplus1
4227d967e5 add pointed_thing to on_rightclick vars 2021-11-16 20:22:43 +00:00
tenplus1
b84374bfa5 fix eating of sunflower bread 2021-11-08 08:05:12 +00:00
d087d639b8 Merge remote-tracking branch 'upstream/master' 2021-10-04 21:33:02 +02:00
tenplus1
f8533c415b tweak sunflower seed naming (thanks SwissalpS) 2021-10-02 08:09:11 +01:00
tenplus1
3949775d29 missing example setting 2021-09-28 14:07:35 +01:00
tenplus1
1064ebaf04 added sunflowers (thanks Felfa) 2021-09-28 14:03:49 +01:00
23d12c3c8c Merge remote-tracking branch 'upstream/master' 2021-08-31 19:45:54 +02:00
tenplus1
7666044598 change cocoa beans texture 2021-08-30 12:07:34 +01:00
942d6eafba Merge remote-tracking branch 'upstream/master' 2021-07-26 22:13:26 +02:00
tenplus1
2e2cd77184 simplify water recipes 2021-07-24 20:37:18 +01:00
9b6a055534 Merge remote-tracking branch 'upstream/master' 2021-07-24 13:06:40 +02:00
tenplus1
2277932cd4 add grape and cotton bush to lucky block chest 2021-07-21 16:27:58 +01:00
tenplus1
328e8b3223 fix cocoa drops 2021-07-18 14:39:26 +01:00
361e006b56 Merge remote-tracking branch 'upstream/master' 2021-07-17 20:45:17 +02:00
tenplus1
a30d889e4d update license.txt 2021-07-17 14:03:33 +01:00
48951090c0 Merge remote-tracking branch 'upstream/master' 2021-07-16 23:37:53 +02:00
tenplus1
f5a82f1478 translation update (thanks Snowyu and Nordal) 2021-07-11 17:27:12 +01:00
tenplus1
36838a8acc fix grain drops 2021-07-11 09:08:50 +01:00
tenplus1
95ba853872 add glass of water and recipe to filter sea water into river 2021-07-10 19:36:21 +01:00
3246f11594 Merge remote-tracking branch 'upstream/master' 2021-07-05 22:09:01 +02:00
tenplus1
a5ea92bdd3 fix cocoa drops 2021-07-03 17:53:43 +01:00
tenplus1
e6994235c5 add popcorn 2021-06-26 20:31:06 +01:00
756b4417ea Merge remote-tracking branch 'upstream/master' 2021-06-20 17:08:12 +02:00
tenplus1
70803f8aef add pumpkin bottom texture, redo melon node, fix typo in scythe, make pumpkin/melon rotatable 2021-06-09 07:41:11 +01:00
tenplus1
dc392e8adc remove mushroom override now that it's in default 2021-06-07 09:12:30 +01:00
tenplus1
9a08e2978a river water check for soy sauce recipe 2021-05-26 20:31:26 +01:00
787b7b3396 Merge remote-tracking branch 'upstream/master' 2021-05-09 21:36:27 +02:00
tenplus1
9440fe2e5a update mint textures (thanks sirrobzeroone) 2021-05-08 20:38:32 +01:00
tenplus1
dedc33cc46 added new gyoza and pineapple ring texture (thanks sirrobzeroone) 2021-05-07 20:29:45 +01:00
tenplus1
ebb5f98fae simplify recipes 2021-05-04 09:06:08 +01:00
tenplus1
275214ea62 no shapeless craft for tomato soup 2021-05-03 18:14:21 +01:00
tenplus1
4c6b062f98 added tomato soup 2021-05-03 18:08:40 +01:00
tenplus1
4b033fed83 add new melon textures (thanks 7eventy7) 2021-04-25 13:51:52 +01:00
847a9a4527 Merge remote-tracking branch 'upstream/master' 2021-04-17 13:47:05 +02:00
tenplus1
f1d52b4aef reduce shapeless crafts 2021-04-13 20:50:19 +01:00
tenplus1
9866b219bc tweak mochi texture and recipe 2021-04-09 19:33:53 +01:00
tenplus1
5b9bd1e6d6 add mochi 2021-04-09 19:26:20 +01:00
9fa818c1aa Merge remote-tracking branch 'upstream/master' 2021-04-04 20:57:42 +02:00
tenplus1
113fac2647 added soy sauce 2021-04-03 11:02:36 +01:00
tenplus1
06a92e93c0 rename textures, fix alpha texture warning 2021-04-02 19:51:10 +01:00
tenplus1
81293a2f94 added onigiri and gyoza to food items 2021-03-27 11:39:21 +00:00
13df43deeb Merge remote-tracking branch 'upstream/master' 2021-03-25 21:38:38 +01:00
tenplus1
ea59a8acdb fix replacement for cucina veganas soy bucket 2021-03-25 20:27:10 +00:00
tenplus1
2c758348e3 cornstarch added to gelatin group 2021-03-18 08:46:41 +00:00
tenplus1
c75be65326 fix flan recipe 2021-03-17 21:03:37 +00:00
e0340ce2cf Merge remote-tracking branch 'upstream/master' 2021-03-12 12:19:42 +01:00
tenplus1
584ab76fb5 add vegan cheese and recipe 2021-03-11 12:07:53 +00:00
tenplus1
47985d7dd2 add parsley, artichoke and new foods 2021-03-11 09:49:52 +00:00
tenplus1
cd30901b68 normal/dry soil turns into correct base when no water nearby 2021-02-24 16:47:12 +00:00
8f2c41abe9 Merge remote-tracking branch 'upstream/master' 2021-02-23 21:15:00 +01:00
tenplus1
675b30dc76 fix string translation 2021-02-21 08:26:42 +00:00
tenplus1
7a99786e6d remove mobs_animal check for certain recipes to be used with other mods 2021-02-19 12:12:13 +00:00
tenplus1
3cbc4fe48e added salt crystal and recipes (thanks gorlock) 2021-02-17 10:14:20 +00:00
59743d747f Merge remote-tracking branch 'upstream/master' 2021-02-07 13:06:50 +01:00
tenplus1
79035d0473 added extra compatibility for crops spawning on older v6 maps 2021-01-31 10:14:19 +00:00
c8284b6410 Merge remote-tracking branch 'upstream/master' 2021-01-15 21:09:25 +01:00
tenplus1
41356a32e2 updated german translation (thanks rti) 2021-01-13 10:29:28 +00:00
62b83f71a4 Merge remote-tracking branch 'upstream/master' 2021-01-02 14:23:48 +01:00
tenplus1
95dd74cc15 remove moreores hoes (inc. within moreores now) 2021-01-01 20:58:43 +00:00
tenplus1
303fc017e0 remove moreores dependency 2021-01-01 20:23:51 +00:00
tenplus1
2a77424a48 update mod.conf 2020-12-31 19:48:12 +00:00
11b79dffd2 Merge remote-tracking branch 'upstream/master' 2020-12-15 23:26:24 +01:00
tenplus1
79bf55ffd5 update texture licenses (thanks OgelGames) 2020-12-13 11:33:15 +00:00
tenplus1
a5b07379ce added vanilla, soy (thanks Felfa), added tofu, simplified porridge/burger recipe 2020-12-13 10:37:08 +00:00
tenplus1
2e18ef6ba6 change few growing to nil and lettuce/cabbage drops 2020-12-13 09:31:50 +00:00
tenplus1
8ef5730b3f have random peppers colours appear in world 2020-12-13 09:24:30 +00:00
tenplus1
f2ab135c6b add red and yellow peppers (thanks Felfa) 2020-12-13 09:21:06 +00:00
tenplus1
66acbf5458 update texture credits in license.txt 2020-12-12 18:12:47 +00:00
tenplus1
45b5a073e0 Add lettuce and blackberries with recipes (thanks OgelGames) 2020-12-10 15:37:44 +00:00
tenplus1
0e108c4b2a add min_light and max_light settings and amend crop registered_plants tables 2020-12-09 10:22:41 +00:00
52575203c4 Merge remote-tracking branch 'upstream/master' 2020-09-04 21:39:24 +02:00
tenplus1
f7524e1449 update recipes to use water/river-water buckets, also support for wooden bucket mod 2020-09-04 15:05:09 +01:00
tenplus1
a7a7a55a29 Change blueberries to Wild Blueberries 2020-09-04 09:20:45 +01:00
5c012d470b Merge remote-tracking branch 'upstream/master' 2020-08-29 20:32:26 +02:00
tenplus1
32ae94e3e2 mt5.x translations added/updated (thanks dacmot) 2020-08-29 09:36:58 +01:00
a6bc7aaf9e Merge remote-tracking branch 'upstream/master' 2020-08-25 20:02:52 +02:00
tenplus1
154471f41e Added 5.x translations 2020-08-25 10:42:07 +01:00
tenplus1
92cafe1c64 update translation detection 2020-08-25 09:19:59 +01:00
tenplus1
954a9793e7 1 in 2 chance of harvesting 2x cabbages 2020-08-23 18:17:11 +01:00
0cc0a7233f Merge remote-tracking branch 'upstream/master' 2020-08-22 09:17:06 +02:00
tenplus1
5e772e7eb4 added zh_tw locale (thanks IFRFSX) 2020-08-20 14:47:26 +01:00
58f3dbf783 Merge remote-tracking branch 'upstream/master' 2020-08-04 20:46:58 +02:00
tenplus1
14ffd2530e add chinese translation (thanks pevernow) 2020-08-03 20:30:14 +01:00
fb733d8f6f Merge remote-tracking branch 'upstream/master' 2020-07-17 22:51:45 +02:00
TenPlus1
e11286845d fix bibimbap recipe (thanks Orange) 2020-07-11 14:16:42 +01:00
TenPlus1
82a6225458 fix cabbage typo 2020-07-10 20:33:57 +01:00
tenplus1
6f0383d5b6 code tidy and tweak 2020-07-02 14:31:12 +01:00
TenPlus1
0aeeb70ca2 fix typo 2020-07-01 21:15:47 +01:00
TenPlus1
da8e1fbbdf added cabbage, crop and bibimbap food item 2020-07-01 19:32:38 +01:00
TenPlus1
3911e56659 add {drink=1} group to drinks 2020-06-30 20:06:41 +01:00
TenPlus1
03d14b2b39 added pasta and spaghetti 2020-06-25 16:20:33 +01:00
tenplus1
c62e36f6da update russian translation (thanks Yellow) 2020-06-20 20:34:18 +01:00
tenplus1
b3f69171c3 added cactus juice (thanks OgelGames) 2020-06-18 21:02:39 +01:00
308 changed files with 9682 additions and 4598 deletions

226
README.md
View File

@ -1,19 +1,227 @@
# Farming Redo Mod
### by TenPlus1
Farming Redo mod for Minetest
=============================
Information
-----------
This mod replaces the default `farming` mod with a fully compatible API that allows
players to grow crops even when they are not nearby. It also includes many new foods
and crops which can be planted directly onto tilled soil without seeds. Crops that do
require seeds like wheat and cotton are found when digging in long grasses, and will
require player to stay nearby until they germinate before growing normally.
![screenshot.png](screenshot.png)
Tech information
----------------
Crops grow by adding your new plant to the {growing = 1} group and numbering the stages from _1 to as many stages as you like, but the underscore MUST be used only once in the node name to separate plant from stage number e.g.
* "farming:cotton_1" through to "farming:cotton_8"
* "farming:wheat_1" through to "farming:wheat_8"
* "farming:cucumber_1" through to "farming:cucumber_4"
https://forum.minetest.net/viewtopic.php?id=9019
Farming Redo is a simplified version of the built-in farming mod in minetest and comes with wheat, cotton, carrot, cucumber, potato and tomato to start out with which spawn throughout the map... new foods need only be planted on tilled soil so no seeds are required, original wheat and cotton will require seeds which are found inside normal and jungle grass...
Farming Redo also works with Bonemeal mod for quick growing crops and saplings which can
be found at https://notabug.org/TenPlus1/bonemeal
This mod works by adding your new plant to the {growing=1} group and numbering the stages from _1 to as many stages as you like, but the underscore MUST be used only once in the node name to separate plant from stage number e.g.
#### Optional dependences:
"farming:cotton_1" through to "farming:cotton_8"
"farming:wheat_1" through to "farming:wheat_8"
"farming:cucumber_4" through to "farming:cucumber_4"
* default
* mcl_core, mcl_sounds, mcl_farming, mcl_stairs
* stairs
* lucky_block (adds 47 lucky blocks)
* toolranks
#### Configuration
`farming.conf` is used to load custom settings for each crop and can be found in either the
farming mod folder or the world folder. Also `minetest.conf` contains a setting for crop growth speed.
| Configuration | type | default | file | Notes |
| -------------------- | ----- | ------- | ------------ | ----------------------------------------- |
| farming_stage_length | float | 160.0 | minetest.conf | Contains a value used for speed of crop growth in seconds |
| farming.min_light | int | 12 | farming.conf | default minimum light levels crops need to grow |
| farming.max_light | int | 15 | farming.conf | default maximum light levels crops need to grow |
| farming_use_utensils | bool | True | farming.conf | When True uses utensils in craft recipes |
| farming.carrot | float | 0.001 | farming.conf | rarety value to enable crop/food in-game, false to disable |
| farming.potato | float | 0.001 | farming.conf | rarety value to enable crop/food in-game, false to disable |
| farming.tomato | float | 0.001 | farming.conf | rarety value to enable crop/food in-game, false to disable |
| farming.cucumber | float | 0.001 | farming.conf | rarety value to enable crop/food in-game, false to disable |
| farming.corn | float | 0.001 | farming.conf | rarety value to enable crop/food in-game, false to disable |
| farming.coffee | float | 0.001 | farming.conf | rarety value to enable crop/food in-game, false to disable |
| farming.melon | float | 0.001 | farming.conf | rarety value to enable crop/food in-game, false to disable |
| farming.pumpkin | float | 0.001 | farming.conf | rarety value to enable crop/food in-game, false to disable |
| farming.cocoa | bool | true | farming.conf | true to enable crop/food or false to disable |
| farming.raspberry | float | 0.001 | farming.conf | rarety value to enable crop/food in-game, false to disable |
| farming.blueberry | float | 0.001 | farming.conf | rarety value to enable crop/food in-game, false to disable |
| farming.rhubarb | float | 0.001 | farming.conf | rarety value to enable crop/food in-game, false to disable |
| farming.beans | float | 0.001 | farming.conf | rarety value to enable crop/food in-game, false to disable |
| farming.grapes | float | 0.001 | farming.conf | rarety value to enable crop/food in-game, false to disable |
| farming.barley | bool | true | farming.conf | true to enable crop/food, false to disable |
| farming.chili | float | 0.003 | farming.conf | rarety value to enable crop/food in-game, false to disable |
| farming.hemp | float | 0.003 | farming.conf | rarety value to enable crop/food in-game, false to disable |
| farming.garlic | float | 0.001 | farming.conf | rarety value to enable crop/food in-game, false to disable |
| farming.onion | float | 0.001 | farming.conf | rarety value to enable crop/food in-game, false to disable |
| farming.pepper | float | 0.002 | farming.conf | rarety value to enable crop/food in-game, false to disable |
| farming.pineapple | float | 0.001 | farming.conf | rarety value to enable crop/food in-game, false to disable |
| farming.peas | float | 0.001 | farming.conf | rarety value to enable crop/food in-game, false to disable |
| farming.beetroot | float | 0.001 | farming.conf | rarety value to enable crop/food in-game, false to disable |
| farming.mint | float | 0.005 | farming.conf | rarety value to enable crop/food in-game, false to disable |
| farming.cabbage | float | 0.001 | farming.conf | rarety value to enable crop/food in-game, false to disable |
| farming.blackberry | float | 0.002 | farming.conf | rarety value to enable crop/food in-game, false to disable |
| farming.lettuce | float | 0.001 | farming.conf | rarety value to enable crop/food in-game, false to disable |
| farming.soy | float | 0.001 | farming.conf | rarety value to enable crop/food in-game, false to disable |
| farming.vanilla | float | 0.001 | farming.conf | rarety value to enable crop/food in-game, false to disable |
| farming.artichoke | float | 0.001 | farming.conf | rarety value to enable crop/food in-game, false to disable |
| farming.parsley | float | 0.002 | farming.conf | rarety value to enable crop/food in-game, false to disable |
| farming.sunflower | float | 0.001 | farming.conf | rarety value to enable crop/food in-game, false to disable |
| farming.grains | bool | true | farming.conf | true to enable crop/food or false to disable |
| farming.rice | bool | true | farming.conf | true to enable crop/food or false to disable |
| farming.asparagus | float | 0.002 | farming.conf | rarety value to enable crop/food in-game, false to disable |
| farming.eggplant | float | 0.002 | farming.conf | rarety value to enable crop/food in-game, false to disable |
| farming.spinach | float | 0.002 | farming.conf | rarety value to enable crop/food in-game, false to disable |
| farming.strawberry | float | 0.002 | farming.conf | rarety value to enable crop/food in-game, false to disable |
#### Nodes and food
This farming mod provides a large selection of craftable food and items:
| Node name | Description name |
| ----------------------- | --------------------- |
| farming:salt | Salt |
| farming:salt_crystal | Salt Crystal |
| farming:chili_powder | Chili Powder |
| farming:rose_water | Rose Water |
| farming:glass_water | Glass of Water |
| farming:sugar | Sugar |
| farming:sugar_cube | Sugar Cube |
| farming:caramel | Caramel |
| farming:turkish_delight | Turkish Delight |
| farming:garlic_bread | Garlic Bread |
| farming:donut | Donut |
| farming:donut_chocolate | Chocolate Donut |
| farming:donut_apple | Apple Donut |
| farming:porridge | Porridge |
| farming:jaffa_cake | Jaffa Cake |
| farming:apple_pie | Apple Pie |
| farming:cactus_juice | Cactus Juice |
| farming:pasta | Pasta |
| farming:mac_and_cheese | Mac & Cheese |
| farming:spaghetti | Spaghetti |
| farming:bibimbap | Bibimbap |
| farming:burger | Burger |
| farming:salad | Salad |
| farming:smoothie_berry | Triple Berry Smoothie |
| farming:spanish_potatoes | Spanish Potatoes |
| farming:potato_omelet | Potato omelet |
| farming:paella | Paella |
| farming:flan | Vanilla Flan |
| farming:cheese_vegan | Vegan Cheese |
| farming:onigiri | Onigiri |
| farming:gyoza | Gyoza |
| farming:mochi | Mochi |
| farming:beetroot_soup | Beetroot Soup |
| farming:muffin_blueberry | Blueberry Muffin |
| farming:blueberry_pie | Blueberry Pie |
| farming:carrot_juice | Carrot Juice |
| farming:carrot_gold | Golden Carrot (revives) |
| farming:chili_bowl | Bowl or Chili |
| farming:cocoa_beans | Cocoa Beans |
| farming:cookie | Chocolate Cookie |
| farming:chocolate_dark | Bar of Dark Chocolate |
| farming:chocolate_block | Chocolate Block |
| farming:coffee_cup | Cup of Coffee |
| farming:corn_cob | Corn on the Cob |
| farming:popcorn | Popcorn |
| farming:cornstarch | Cornstarch |
| farming:ethanol | Bottle of Ethanol (fuel) |
| farming:string | String |
| farming:garlic_braid | Garlic Braid |
| farming:garlic_clove | Garlic Clove |
| farming:hemp_oil | Hemp Oil |
| farming:hemp_fibre | Hemp Fibre |
| farming:hemp_block | Hemp Block |
| farming:hemp_rope | Hemp Rope |
| farming:mint_tea | Mint Tea |
| farming:onion_soup | Onion Soup |
| farming:pea_soup | Pea Soup |
| farming:pepper_ground | Ground Pepper |
| farming:pineapple_ring | Pineapple Ring |
| farming:pineapple_juice | Pineapple Juice |
| farming:baked_potato | Baked Potato |
| farming:potato_salad | Cucumber & Potato Salad |
| farming:jackolantern | Jack 'O Lantern |
| farming:scarecrow_bottom | Scarecrow Bottom |
| farming:pumpkin_dough | Pumpkin Dough |
| farming:pumpkin_bread | Pumpkin Bread |
| farming:smoothie_raspberry | Raspberry Smoothie |
| farming:rhubarb_pie | Rhybarb Pie |
| farming:rice_flour | Rice Flour |
| farming:rice_bread | Rice Bread |
| farming:flour_multigrain | Multigrain Rice |
| farming:bread_multigrain | Multigrain Bread |
| farming:soy_sauce | Soy Sauce |
| farming:soy_milk | Soy Milk |
| farming:tofu | Tofu |
| farming:tofu_cooked | Cooked Tofu |
| farming:sunflower_seeds_toasted | Toasted Sunflower Seeds |
| farming:sunflower_oil | Sunflower Oil |
| farming:sunflower_bread | Sunflower Bread |
| farming:tomato_soup | Tomato Soup |
| farming:vanilla_extract | Vanilla Extract |
| farming:flour | Flour |
| farming:bread | Bread |
| farming:straw | Straw Block |
| farming:bread_slice | Bread Slice |
| farming:toast | Toast |
| farming:toast_sandwich | Toast Sandwich |
#### Item and Tools
| node name | Description |
| ----------------------- | --------------------- |
| farming:trellis | Trellis (for growing grapes) |
| farming:beanpole | Bean Pole (for growing beans) |
| farming:scythe_mithril | Mithril Scythe (Use to harvest and replant crops) |
| farming:hoe_bomb | Hoe Bomb (use or throw on grassy areas to hoe land) |
| farming:hoe_wood | Wooden Hoe |
| farming:hoe_stone | Stone Hoe |
| farming:hoe_steel | Steel Hoe |
| farming:hoe_bronze | Bronze Hoe |
| farming:hoe_mese | Mese Hoe |
| farming:hoe_diamond | Diamond Hoe |
| farming:bowl | Wooden Bowl |
| farming:saucepan | Saucepan |
| farming:pot | Cooking Pot |
| farming:baking_tray | Baking Tray |
| farming:skillet | Skillet |
| farming:mortar_pestle | Mortar and Pestle |
| farming:cutting_board | Cutting Board |
| farming:juicer | Juicer |
| farming:mixing_bowl | Glass Mixing Bowl |
| moreores:hoe_silver | Silver Hoe |
| moreores:hoe_mithril | Mitril Hoe |
#### Nodes and Aliasing
This mod is also a direct replacement for the older Farming Plus mod and will replace all
of it's nodes and items with one's found within Farming Redo.
#### ABM
The ABM checks every 5 minutes to make sure crops in `group:growing` that were planted
on an older map are enabled and growing properly.
### Changelog:
- 1.45 - Dirt and Hoes are more in line with default by using dry/wet/base
- 1.49 - Added {eatable=1} groups to food items with the value giving HP when eaten, improved mineclone support, separated foods from crop files, hoes can deal damage. Add weed and weed bale (with setting to disable weed growth).
- 1.48 - added 'farming_use_utensils' setting to enable/disable utensils in recipes, added mayonnaise (thx felfa), added gingerbread man, Added MineClone2 compatibility
- 1.47 - Now blueberries can make blue dye, tweak soil types to work better with older 0.4.x clients and add spanish translation (thx mckaygerhard), add trellis setting to registered_crops and fix pea and soy crop names (thx nixnoxus), add strawberries if ethereal mod not active, added asparagus; spinach; eggplant (thx Atlante for new textures), Sugar Cube
- 1.46 - Added min/max default light settings, added lettuce and blackberries with food items (thanks OgelGames), added soya, vanilla and sunflowers (thanks Felfa), added tofu, added salt crystals (thanks gorlock)
- 1.45 - Dirt and Hoes are more in line with default by using dry/wet/base, added cactus juice, added pasta, spaghetti, cabbage, korean bibimbap, code tidy
options, onion soup added (thanks edcrypt), Added apple pie, added wild cotton to savanna
- 1.44 - Added 'farming_stage_length' in mod settings for speed of crop growth, also thanks to TheDarkTiger for translation updates
- 1.43 - Scythe works on use instead of right-click, added seed=1 groups to actual seeds and seed=2 group for plantable food items.
@ -66,5 +274,3 @@ options, onion soup added (thanks edcrypt), Added apple pie, added wild cotton t
- 0.2 - Fixed check for wet soil
- 0.1 - Fixed growing bug
- 0.0 - Initial release
### Lucky Blocks: 39

View File

Before

Width:  |  Height:  |  Size: 421 B

After

Width:  |  Height:  |  Size: 421 B

View File

Before

Width:  |  Height:  |  Size: 382 B

After

Width:  |  Height:  |  Size: 382 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 209 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 234 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 240 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 258 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 258 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 422 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 382 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 487 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 345 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 687 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 325 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 242 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 557 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 703 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 440 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

39
api.txt
View File

@ -16,10 +16,10 @@ The farming API allows you to easily register plants and hoes.
'minlight' min light level needed to grow
'maxlight' max light level needed to grow
'steps' number of steps crop has in growth cycle
'trellis' name of trellis node (e.g. "farming:trellis"), default: nil
### Hoe Definition
{
description = "My Hoe", -- Description for tooltip
inventory_image = "unknown_item.png", -- Image to be used as wield- and inventory image
@ -40,7 +40,8 @@ The farming API allows you to easily register plants and hoes.
steps = 8, -- How many steps the plant has to grow, until it can be harvested
-- ^ Always provide a plant texture for each step, format: modname_plantname_i.png (i = stepnumber)
minlight = 13, -- Minimum light to grow
maxlight = default.LIGHT_MAX -- Maximum light to grow
maxlight = minetest.LIGHT_MAX -- Maximum light to grow
can_grow = function(pos) -- Called every growth tick to check if plant can grow returning True if needs are met (optional, defaults to checking for wet soil below plant).
}
Note: Any crops registered with the above function will use the new growing routines, also if crops are manually added with the {growing=1} group they will also grow.
@ -49,12 +50,12 @@ Note: Any crops registered with the above function will use the new growing rout
If a mod registers nodes to be used as crops using the {growing=1} group then an additional function can be used for custom growth checks instead of the standard 'are we above wet soil'.
growth_check = function(pos, node_name)
growth_check = function(pos, [node_name]) [DEPRECATED for above can_grow function]
-- check surrounding for jungle tree
if minetest.find_node_near(pos, 1, {"default:jungletree"}) then
return false -- place next growth stage
return true -- place next growth stage
end
return true -- condition not met, skip next growth stage until next check
return false -- condition not met, skip next growth stage until next check
end,
### Scythe items that will not drop
@ -62,3 +63,31 @@ end,
This is a function to add items to a list that scythes will not drop, e.g. farming:trellis or farming:beanpole.
farming.add_to_scythe_not_drops(item_name)
### Start timer function
A handy function that starts a crops timer with a randomly selected time set by using
stage_length setting. This is mostly used for special functions or 3rd party mods.
farming.start_seed_timer(pos)
Node Sounds
-----------
Farming Redo will detect wether the Default mod or MineClone/VoxeLibre mod is active and
store whichever sound set is available inside the following to save any other farming
mods from having to detect it themselves:
farming.node_sound_defaults()
farming.node_sound_stone_defaults()
farming.node_sound_dirt_defaults()
farming.node_sound_sand_defaults()
farming.node_sound_gravel_defaults()
farming.node_sound_wood_defaults()
farming.node_sound_leaves_defaults()
farming.node_sound_ice_defaults()
farming.node_sound_metal_defaults()
farming.node_sound_water_defaults()
farming.node_sound_snow_defaults()
farming.node_sound_glass_defaults()

View File

@ -1,5 +1,5 @@
local S = farming.intllib
local S = minetest.get_translator("farming")
--= Helpers
@ -8,23 +8,17 @@ local alias = function(orig, new)
minetest.register_alias(orig, new)
end
--= Overrides (add food_* group to apple and brown mushroom)
--= Add {eatable} group to default food items if found
minetest.override_item("default:apple", {
groups = {food_apple = 1, fleshy = 3, dig_immediate = 3, flammable = 2,
leafdecay = 3, leafdecay_drop = 1},
})
if minetest.registered_nodes["flowers:mushroom_brown"] then
minetest.override_item("flowers:mushroom_brown", {
light_source = 1,
groups = {food_mushroom = 1, snappy = 3, attached_node = 1, flammable = 2},
})
end
farming.add_eatable("default:apple", 2)
farming.add_eatable("default:blueberries", 1)
farming.add_eatable("flowers:mushroom_brown", 1)
farming.add_eatable("flowers:mushroom_red", -5)
--= Aliases
-- Banana
if eth then
alias("farming_plus:banana_sapling", "ethereal:banana_tree_sapling")
alias("farming_plus:banana_leaves", "ethereal:bananaleaves")
@ -33,30 +27,33 @@ else
minetest.register_node(":ethereal:banana", {
description = S("Banana"),
drawtype = "torchlike",
tiles = {"banana_single.png"},
inventory_image = "banana_single.png",
wield_image = "banana_single.png",
tiles = {"farming_banana_single.png"},
inventory_image = "farming_banana_single.png",
wield_image = "farming_banana_single.png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
selection_box = {
type = "fixed",
fixed = {-0.2, -0.5, -0.2, 0.2, 0.2, 0.2}
type = "fixed", fixed = {-0.2, -0.5, -0.2, 0.2, 0.2, 0.2}
},
groups = {food_banana = 1, fleshy = 3, dig_immediate = 3, flammable = 2},
groups = {food_banana = 1, fleshy = 3, dig_immediate = 3},
is_ground_content = false,
on_use = minetest.item_eat(2),
sounds = default.node_sound_leaves_defaults(),
sounds = farming.node_sound_leaves_defaults()
})
farming.add_eatable("ethereal:banana", 2)
minetest.register_node(":ethereal:bananaleaves", {
description = S("Banana Leaves"),
tiles = {"banana_leaf.png"},
inventory_image = "banana_leaf.png",
wield_image = "banana_leaf.png",
tiles = {"ethereal_banana_leaf.png"},
inventory_image = "ethereal_banana_leaf.png",
wield_image = "ethereal_banana_leaf.png",
paramtype = "light",
waving = 1,
groups = {snappy = 3, leafdecay = 3, leaves = 1, flammable = 2},
sounds = default.node_sound_leaves_defaults(),
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
})
alias("farming_plus:banana_sapling", "default:sapling")
@ -65,6 +62,7 @@ else
end
-- Carrot
alias("farming_plus:carrot_seed", "farming:carrot")
alias("farming_plus:carrot_1", "farming:carrot_1")
alias("farming_plus:carrot_2", "farming:carrot_4")
@ -73,12 +71,14 @@ alias("farming_plus:carrot", "farming:carrot_8")
alias("farming_plus:carrot_item", "farming:carrot")
-- Cocoa
alias("farming_plus:cocoa_sapling", "farming:cocoa_beans")
alias("farming_plus:cocoa_leaves", "default:leaves")
alias("farming_plus:cocoa", "default:apple")
alias("farming_plus:cocoa_bean", "farming:cocoa_beans")
-- Orange
alias("farming_plus:orange_1", "farming:tomato_1")
alias("farming_plus:orange_2", "farming:tomato_4")
alias("farming_plus:orange_3", "farming:tomato_6")
@ -98,20 +98,23 @@ else
sunlight_propagates = true,
walkable = false,
selection_box = {
type = "fixed",
fixed = {-0.2, -0.3, -0.2, 0.2, 0.2, 0.2}
type = "fixed", fixed = {-0.2, -0.3, -0.2, 0.2, 0.2, 0.2}
},
groups = {food_orange = 1, fleshy = 3, dig_immediate = 3, flammable = 2},
is_ground_content = false,
on_use = minetest.item_eat(4),
sounds = default.node_sound_leaves_defaults(),
sounds = farming.node_sound_leaves_defaults()
})
farming.add_eatable("ethereal:orange", 4)
alias("farming_plus:orange_item", "ethereal:orange")
alias("farming_plus:orange", "ethereal:orange")
alias("farming_plus:orange_seed", "default:sapling")
end
-- Potato
alias("farming_plus:potato_item", "farming:potato")
alias("farming_plus:potato_1", "farming:potato_1")
alias("farming_plus:potato_2", "farming:potato_2")
@ -119,6 +122,7 @@ alias("farming_plus:potato", "farming:potato_3")
alias("farming_plus:potato_seed", "farming:potato")
-- Pumpkin
alias("farming:pumpkin_seed", "farming:pumpkin_slice")
alias("farming:pumpkin_face", "farming:jackolantern")
alias("farming:pumpkin_face_light", "farming:jackolantern_on")
@ -131,6 +135,7 @@ alias("farming:scarecrow_light", "farming:jackolantern_on")
alias("farming:pumpkin_flour", "farming:pumpkin_dough")
-- Rhubarb
alias("farming_plus:rhubarb_seed", "farming:rhubarb")
alias("farming_plus:rhubarb_1", "farming:rhubarb_1")
alias("farming_plus:rhubarb_2", "farming:rhubarb_2")
@ -138,37 +143,19 @@ alias("farming_plus:rhubarb", "farming:rhubarb_3")
alias("farming_plus:rhubarb_item", "farming:rhubarb")
-- Strawberry
if eth then
alias("farming_plus:strawberry_item", "ethereal:strawberry")
alias("farming_plus:strawberry_seed", "ethereal:strawberry")
alias("farming_plus:strawberry_1", "ethereal:strawberry_1")
alias("farming_plus:strawberry_2", "ethereal:strawberry_3")
alias("farming_plus:strawberry_3", "ethereal:strawberry_5")
alias("farming_plus:strawberry", "ethereal:strawberry_7")
else
minetest.register_craftitem(":ethereal:strawberry", {
description = S("Strawberry"),
inventory_image = "strawberry.png",
wield_image = "strawberry.png",
groups = {food_strawberry = 1, flammable = 2},
on_use = minetest.item_eat(1),
})
alias("farming_plus:strawberry_item", "ethereal:strawberry")
alias("farming_plus:strawberry_seed", "ethereal:strawberry")
alias("farming_plus:strawberry_1", "farming:raspberry_1")
alias("farming_plus:strawberry_2", "farming:raspberry_2")
alias("farming_plus:strawberry_3", "farming:raspberry_3")
alias("farming_plus:strawberry", "farming:raspberry_4")
end
alias("farming_plus:strawberry_item", "ethereal:strawberry")
alias("farming_plus:strawberry_seed", "ethereal:strawberry")
alias("farming_plus:strawberry_1", "ethereal:strawberry_1")
alias("farming_plus:strawberry_2", "ethereal:strawberry_3")
alias("farming_plus:strawberry_3", "ethereal:strawberry_5")
alias("farming_plus:strawberry", "ethereal:strawberry_7")
-- Tomato
alias("farming_plus:tomato_seed", "farming:tomato")
alias("farming_plus:tomato_item", "farming:tomato")
alias("farming_plus:tomato_1", "farming:tomato_2")
alias("farming_plus:tomato_2", "farming:tomato_4")
alias("farming_plus:tomato_3", "farming:tomato_6")
alias("farming_plus:tomato", "farming:tomato_8")
-- Weed
alias("farming:weed", "default:grass_2")

102
crops/artichoke.lua Normal file
View File

@ -0,0 +1,102 @@
local S = minetest.get_translator("farming")
-- item/seed
minetest.register_craftitem("farming:artichoke", {
description = S("Artichoke"),
inventory_image = "farming_artichoke.png",
groups = {compostability = 48, seed = 2, food_artichoke = 1},
on_use = minetest.item_eat(4),
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:artichoke_1")
end
})
farming.add_eatable("farming:artichoke", 4)
-- crop definition
local def = {
description = S("Artichoke") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_artichoke_1.png"},
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
drop = "",
waving = 1,
selection_box = farming.select,
groups = {
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:artichoke_1", table.copy(def))
-- stage 2
def.tiles = {"farming_artichoke_2.png"}
minetest.register_node("farming:artichoke_2", table.copy(def))
-- stage 3
def.tiles = {"farming_artichoke_3.png"}
minetest.register_node("farming:artichoke_3", table.copy(def))
-- stage 4
def.tiles = {"farming_artichoke_4.png"}
minetest.register_node("farming:artichoke_4", table.copy(def))
-- stage 5 (final)
def.tiles = {"farming_artichoke_5.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:artichoke 2"}, rarity = 1},
{items = {"farming:artichoke"}, rarity = 2}
}
}
minetest.register_node("farming:artichoke_5", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:artichoke"] = {
crop = "farming:artichoke",
seed = "farming:artichoke",
minlight = 13,
maxlight = 15,
steps = 5
}
-- mapgen
minetest.register_decoration({
deco_type = "simple",
place_on = {
"default:dirt_with_grass", "mcl_core:dirt_with_grass", "ethereal:grove_dirt"
},
sidelen = 16,
noise_params = {
offset = 0,
scale = farming.artichoke,
spread = {x = 100, y = 100, z = 100},
seed = 123,
octaves = 3,
persist = 0.6
},
y_min = 1, y_max = 13,
decoration = "farming:artichoke_5",
spawn_by = "group:tree", num_spawn_by = 1
})

108
crops/asparagus.lua Normal file
View File

@ -0,0 +1,108 @@
local S = minetest.get_translator("farming")
-- item/seed
minetest.register_craftitem("farming:asparagus", {
description = S("Asparagus"),
inventory_image = "farming_asparagus.png",
groups = {compostability = 48, seed = 2, food_asparagus = 1},
on_use = minetest.item_eat(1),
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:asparagus_1")
end
})
farming.add_eatable("farming:asparagus", 1)
-- crop definition
local def = {
description = S("Asparagus") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_asparagus_1.png"},
paramtype = "light",
paramtype2 = "meshoptions",
place_param2 = 3,
sunlight_propagates = true,
walkable = false,
buildable_to = true,
drop = "",
waving = 1,
selection_box = farming.select,
groups = {
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:asparagus_1", table.copy(def))
-- stage 2
def.tiles = {"farming_asparagus_2.png"}
minetest.register_node("farming:asparagus_2", table.copy(def))
-- stage 3
def.tiles = {"farming_asparagus_3.png"}
minetest.register_node("farming:asparagus_3", table.copy(def))
-- stage 4
def.tiles = {"farming_asparagus_4.png"}
def.drop = {
items = {
{items = {"farming:asparagus"}, rarity = 2}
}
}
minetest.register_node("farming:asparagus_4", table.copy(def))
-- stage 5 (final)
def.tiles = {"farming_asparagus_5.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:asparagus"}, rarity = 1},
{items = {"farming:asparagus 2"}, rarity = 2}
}
}
minetest.register_node("farming:asparagus_5", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:asparagus"] = {
crop = "farming:asparagus",
seed = "farming:asparagus",
minlight = 7,
maxlight = farming.max_light,
steps = 5
}
-- mapgen
minetest.register_decoration({
name = "farming:asparagus_5",
deco_type = "simple",
place_on = {"default:dirt_with_grass", "mcl_core:dirt_with_grass"},
sidelen = 16,
noise_params = {
offset = 0,
scale = farming.asparagus,
spread = {x = 100, y = 100, z = 100},
seed = 234,
octaves = 3,
persist = 0.6
},
y_min = 8, y_max = 32,
decoration = "farming:asparagus_5",
param2 = 3
})

View File

@ -1,44 +1,48 @@
local S = farming.intllib
local S = minetest.get_translator("farming")
-- seed
-- 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},
groups = {
handy = 1, compostability = 48, seed = 1, snappy = 3, attached_node = 1,
growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
paramtype = "light",
paramtype2 = "wallmounted",
walkable = false,
sunlight_propagates = true,
next_plant = "farming:barley_1",
selection_box = farming.select,
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:barley_1")
return farming.place_seed(itemstack, placer, pointed_thing, "farming:seed_barley")
end,
on_timer = function(pos, elapsed)
minetest.set_node(pos, {name = "farming:barley_1", param2 = 3})
end
})
-- harvested barley
-- item
minetest.register_craftitem("farming:barley", {
description = S("Barley"),
inventory_image = "farming_barley.png",
groups = {food_barley = 1, flammable = 2},
groups = {food_barley = 1, flammable = 2, compostability = 65}
})
-- 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"}},
})
-- crop definition
-- barley definition
local crop_def = {
local def = {
description = S("Barley") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_barley_1.png"},
paramtype = "light",
@ -48,75 +52,84 @@ local crop_def = {
walkable = false,
buildable_to = true,
drop = "",
waving = 1,
selection_box = farming.select,
groups = {
snappy = 3, flammable = 2, plant = 1, attached_node = 1,
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
sounds = default.node_sound_leaves_defaults()
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:barley_1", table.copy(crop_def))
minetest.register_node("farming:barley_1", table.copy(def))
-- stage 2
crop_def.tiles = {"farming_barley_2.png"}
minetest.register_node("farming:barley_2", table.copy(crop_def))
def.tiles = {"farming_barley_2.png"}
minetest.register_node("farming:barley_2", table.copy(def))
-- stage 3
crop_def.tiles = {"farming_barley_3.png"}
minetest.register_node("farming:barley_3", table.copy(crop_def))
def.tiles = {"farming_barley_3.png"}
minetest.register_node("farming:barley_3", table.copy(def))
-- stage 4
crop_def.tiles = {"farming_barley_4.png"}
minetest.register_node("farming:barley_4", table.copy(crop_def))
def.tiles = {"farming_barley_4.png"}
minetest.register_node("farming:barley_4", table.copy(def))
-- stage 5
crop_def.tiles = {"farming_barley_5.png"}
crop_def.drop = {
items = {
{items = {"farming:barley"}, rarity = 2},
{items = {"farming:seed_barley"}, rarity = 2},
}
}
minetest.register_node("farming:barley_5", table.copy(crop_def))
def.tiles = {"farming_barley_5.png"}
minetest.register_node("farming:barley_5", table.copy(def))
-- stage 6
crop_def.tiles = {"farming_barley_6.png"}
crop_def.drop = {
def.tiles = {"farming_barley_6.png"}
def.drop = {
items = {
{items = {"farming:barley"}, rarity = 2},
{items = {"farming:seed_barley"}, rarity = 1},
{items = {"farming:seed_barley"}, rarity = 2}
}
}
minetest.register_node("farming:barley_6", table.copy(crop_def))
minetest.register_node("farming:barley_6", table.copy(def))
-- stage 7 (final)
crop_def.tiles = {"farming_barley_7.png"}
crop_def.groups.growing = 0
crop_def.drop = {
-- stage 7
def.tiles = {"farming_barley_7.png"}
def.drop = {
items = {
{items = {"farming:barley"}, rarity = 2},
{items = {"farming:seed_barley"}, rarity = 1}
}
}
minetest.register_node("farming:barley_7", table.copy(def))
-- stage 8 (final)
def.tiles = {"farming_barley_8.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
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},
{items = {"farming:seed_barley"}, rarity = 3}
}
}
minetest.register_node("farming:barley_7", table.copy(crop_def))
minetest.register_node("farming:barley_8", 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
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 8
}
-- Fuel
minetest.register_craft({
type = "fuel",
recipe = "farming:barley",
burntime = 1,
})

View File

@ -1,53 +1,44 @@
--[[
All textures by
(C) Auke Kok <sofar@foo-projects.org>
CC-BY-SA-3.0
]]
local S = farming.intllib
-- All textures by (C) Auke Kok <sofar@foo-projects.org> CC-BY-SA-3.0
local S = minetest.get_translator("farming")
local a = farming.recipe_items
-- place beans helper
-- 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
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
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)
return def.on_rightclick(pt.under, under, placer, itemstack, pt)
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
if minetest.is_protected(pt.under, name) then return end
-- check if pointing at bean pole
if under.name ~= "farming:beanpole" then
return
end
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})
minetest.sound_play("default_place_node", {pos = pt.under, gain = 1.0}, true)
if placer or not farming.is_creative(placer:get_player_name()) then
@ -57,74 +48,64 @@ local function place_beans(itemstack, placer, pointed_thing, plantname)
if itemstack:get_count() == 0 then
minetest.after(0.20,
farming.refill_plant,
placer,
"farming:beans",
placer:get_wield_index()
)
farming.refill_plant, placer, "farming:beans", placer:get_wield_index())
end
end
return itemstack
end
-- beans
-- item/seed
minetest.register_craftitem("farming:beans", {
description = S("Green Beans"),
inventory_image = "farming_beans.png",
groups = {seed = 2, food_beans = 1, flammable = 2},
groups = {compostability = 48, seed = 2, food_beans = 1},
on_use = minetest.item_eat(1),
on_place = function(itemstack, placer, pointed_thing)
return place_beans(itemstack, placer, pointed_thing, "farming:beanpole_1")
end,
end
})
-- beans can be used for green dye
minetest.register_craft({
output = "dye:green",
recipe = {
{"farming:beans"},
}
})
farming.add_eatable("farming:beans", 1)
-- 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, -- 1.45,
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(),
groups = {handy = 1, snappy = 3, flammable = 2, attached_node = 1},
is_ground_content = false,
sounds = farming.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
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
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)
return def.on_rightclick(pt.under, under, placer, itemstack, pt)
end
if minetest.is_protected(pt.above, placer:get_player_name()) then
@ -133,9 +114,7 @@ minetest.register_node("farming:beanpole", {
local nodename = under.name
if minetest.get_item_group(nodename, "soil") < 2 then
return
end
if minetest.get_item_group(nodename, "soil") < 2 then return end
local top = {
x = pointed_thing.above.x,
@ -145,9 +124,7 @@ minetest.register_node("farming:beanpole", {
nodename = minetest.get_node(top).name
if nodename ~= "air" then
return
end
if nodename ~= "air" then return end
minetest.set_node(pointed_thing.above, {name = "farming:beanpole"})
@ -159,81 +136,79 @@ minetest.register_node("farming:beanpole", {
end
})
minetest.register_craft({
output = "farming:beanpole",
recipe = {
{"", "", ""},
{"default:stick", "", "default:stick"},
{"default:stick", "", "default:stick"},
}
})
-- crop definition
minetest.register_craft({
type = "fuel",
recipe = "farming:beanpole",
burntime = 10,
})
-- green bean definition
local crop_def = {
local def = {
description = S("Green Beans") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_beanpole_1.png"},
visual_scale = 1.90, -- 1.45,
visual_scale = 1.90,
paramtype = "light",
walkable = false,
buildable_to = true,
sunlight_propagates = true,
drop = {
items = {
{items = {"farming:beanpole"}, rarity = 1},
{items = {"farming:beanpole"}, rarity = 1}
}
},
selection_box = farming.select,
groups = {
snappy = 3, flammable = 3, not_in_creative_inventory = 1,
handy = 1, snappy = 3, flammable = 3, not_in_creative_inventory = 1,
attached_node = 1, growing = 1, plant = 1
},
sounds = default.node_sound_leaves_defaults()
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:beanpole_1", table.copy(crop_def))
minetest.register_node("farming:beanpole_1", table.copy(def))
-- stage2
crop_def.tiles = {"farming_beanpole_2.png"}
minetest.register_node("farming:beanpole_2", table.copy(crop_def))
def.tiles = {"farming_beanpole_2.png"}
minetest.register_node("farming:beanpole_2", table.copy(def))
-- stage 3
crop_def.tiles = {"farming_beanpole_3.png"}
minetest.register_node("farming:beanpole_3", table.copy(crop_def))
def.tiles = {"farming_beanpole_3.png"}
minetest.register_node("farming:beanpole_3", table.copy(def))
-- stage 4
crop_def.tiles = {"farming_beanpole_4.png"}
minetest.register_node("farming:beanpole_4", table.copy(crop_def))
def.tiles = {"farming_beanpole_4.png"}
minetest.register_node("farming:beanpole_4", table.copy(def))
-- stage 5 (final)
crop_def.tiles = {"farming_beanpole_5.png"}
crop_def.groups.growing = 0
crop_def.drop = {
def.tiles = {"farming_beanpole_5.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
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},
{items = {"farming:beans 2"}, rarity = 3}
}
}
minetest.register_node("farming:beanpole_5", table.copy(crop_def))
minetest.register_node("farming:beanpole_5", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:beans"] = {
trellis = "farming:beanpole",
crop = "farming:beanpole",
seed = "farming:beans",
minlight = 13,
maxlight = 15,
minlight = farming.min_light,
maxlight = farming.max_light,
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"},
@ -246,13 +221,32 @@ minetest.register_node("farming:beanbush", {
items = {
{items = {"farming:beans 1"}, rarity = 1},
{items = {"farming:beans 1"}, rarity = 2},
{items = {"farming:beans 1"}, rarity = 3},
{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
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
compostability = 35, not_in_creative_inventory = 1
},
sounds = default.node_sound_leaves_defaults(),
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
})
-- mapgen
minetest.register_decoration({
deco_type = "simple",
place_on = {"default:dirt_with_grass", "mcl_core:dirt_with_grass"},
sidelen = 16,
noise_params = {
offset = 0,
scale = farming.beans,
spread = {x = 100, y = 100, z = 100},
seed = 345,
octaves = 3,
persist = 0.6
},
y_min = 18, y_max = 38,
decoration = "farming:beanbush"
})

View File

@ -1,48 +1,29 @@
local S = farming.intllib
local S = minetest.get_translator("farming")
local a = farming.recipe_items
-- item/seed
-- beetroot
minetest.register_craftitem("farming:beetroot", {
description = S("Beetroot"),
inventory_image = "farming_beetroot.png",
groups = {seed = 2, food_beetroot = 1, flammable = 2},
groups = {compostability = 48, seed = 2, food_beetroot = 1},
on_use = minetest.item_eat(1),
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),
end
})
-- 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"),
})
farming.add_eatable("farming:beetroot", 1)
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"
}
})
-- crop definition
-- red dye
minetest.register_craft({
type = "shapeless",
output = "dye:red",
recipe = {"group:food_beetroot"},
})
local crop_def = {
local def = {
description = S("Beetroot") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_beetroot_1.png"},
paramtype = "light",
-- paramtype2 = "meshoptions",
-- place_param2 = 3,
sunlight_propagates = true,
waving = 1,
walkable = false,
@ -50,45 +31,78 @@ local crop_def = {
drop = "",
selection_box = farming.select,
groups = {
snappy = 3, flammable = 2, plant = 1, attached_node = 1,
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
sounds = default.node_sound_leaves_defaults()
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:beetroot_1", table.copy(crop_def))
minetest.register_node("farming:beetroot_1", table.copy(def))
-- stage 2
crop_def.tiles = {"farming_beetroot_2.png"}
minetest.register_node("farming:beetroot_2", table.copy(crop_def))
def.tiles = {"farming_beetroot_2.png"}
minetest.register_node("farming:beetroot_2", table.copy(def))
-- stage 3
crop_def.tiles = {"farming_beetroot_3.png"}
minetest.register_node("farming:beetroot_3", table.copy(crop_def))
def.tiles = {"farming_beetroot_3.png"}
minetest.register_node("farming:beetroot_3", table.copy(def))
-- stage 4
crop_def.tiles = {"farming_beetroot_4.png"}
minetest.register_node("farming:beetroot_4", table.copy(crop_def))
-- stage 5
crop_def.tiles = {"farming_beetroot_5.png"}
crop_def.groups.growing = 0
crop_def.drop = {
def.tiles = {"farming_beetroot_4.png"}
minetest.register_node("farming:beetroot_4", table.copy(def))
-- stage 5 (final)
def.tiles = {"farming_beetroot_5.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
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},
{items = {"farming:beetroot"}, rarity = 4}
}
}
minetest.register_node("farming:beetroot_5", table.copy(crop_def))
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,
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 5
}
-- mapgen
local spawn_on = {"default:dirt_with_grass", "mcl_core:dirt_with_grass"}
if farming.eth then
spawn_on = {"ethereal:prairie_dirt"}
end
minetest.register_decoration({
deco_type = "simple",
place_on = spawn_on,
sidelen = 16,
noise_params = {
offset = 0,
scale = farming.beetroot,
spread = {x = 100, y = 100, z = 100},
seed = 456,
octaves = 3,
persist = 0.6
},
y_min = 1, y_max = 20,
decoration = "farming:beetroot_5"
})

99
crops/blackberry.lua Normal file
View File

@ -0,0 +1,99 @@
local S = minetest.get_translator("farming")
-- item/seed
minetest.register_craftitem("farming:blackberry", {
description = S("Blackberries"),
inventory_image = "farming_blackberry.png",
groups = {
compostability = 48, seed = 2, food_blackberries = 1, food_blackberry = 1,
food_berry = 1
},
on_use = minetest.item_eat(1),
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:blackberry_1")
end
})
farming.add_eatable("farming:blackberry", 1)
-- crop definition
local def = {
description = S("Blackberry") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_blackberry_1.png"},
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
drop = "",
selection_box = farming.select,
groups = {
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:blackberry_1", table.copy(def))
-- stage 2
def.tiles = {"farming_blackberry_2.png"}
minetest.register_node("farming:blackberry_2", table.copy(def))
-- stage 3
def.tiles = {"farming_blackberry_3.png"}
minetest.register_node("farming:blackberry_3", table.copy(def))
-- stage 4 (final)
def.tiles = {"farming_blackberry_4.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {'farming:blackberry 2'}, rarity = 1},
{items = {'farming:blackberry'}, rarity = 2},
{items = {'farming:blackberry'}, rarity = 3},
}
}
minetest.register_node("farming:blackberry_4", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:blackberry"] = {
crop = "farming:blackberry",
seed = "farming:blackberry",
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 4
}
-- mapgen
minetest.register_decoration({
deco_type = "simple",
place_on = {
"default:dirt_with_grass", "mcl_core:dirt_with_grass", "ethereal:prairie_dirt"
},
sidelen = 16,
noise_params = {
offset = 0,
scale = farming.blackberry,
spread = {x = 100, y = 100, z = 100},
seed = 567,
octaves = 3,
persist = 0.6
},
y_min = 3, y_max = 20,
decoration = "farming:blackberry_4"
})

View File

@ -1,53 +1,27 @@
local S = farming.intllib
local S = minetest.get_translator("farming")
-- item/seed
-- blueberries
minetest.register_craftitem("farming:blueberries", {
description = S("Blueberries"),
description = S("Wild Blueberries"),
inventory_image = "farming_blueberries.png",
groups = {seed = 2, food_blueberries = 1, food_blueberry = 1,
food_berry = 1, flammable = 2},
groups = {
compostability = 48,seed = 2, food_blueberries = 1, food_blueberry = 1,
food_berry = 1
},
on_use = minetest.item_eat(1),
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),
end
})
-- blueberry muffin (thanks to sosogirl123 @ deviantart.com for muffin image)
farming.add_eatable("farming:blueberries", 1)
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 crop_def = {
-- ctop definition
local def = {
description = S("Blueberry") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_blueberry_1.png"},
paramtype = "light",
@ -57,40 +31,68 @@ local crop_def = {
drop = "",
selection_box = farming.select,
groups = {
snappy = 3, flammable = 2, plant = 1, attached_node = 1,
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
sounds = default.node_sound_leaves_defaults()
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:blueberry_1", table.copy(crop_def))
minetest.register_node("farming:blueberry_1", table.copy(def))
-- stage 2
crop_def.tiles = {"farming_blueberry_2.png"}
minetest.register_node("farming:blueberry_2", table.copy(crop_def))
def.tiles = {"farming_blueberry_2.png"}
minetest.register_node("farming:blueberry_2", table.copy(def))
-- stage 3
crop_def.tiles = {"farming_blueberry_3.png"}
minetest.register_node("farming:blueberry_3", table.copy(crop_def))
def.tiles = {"farming_blueberry_3.png"}
minetest.register_node("farming:blueberry_3", table.copy(def))
-- stage 4 (final)
crop_def.tiles = {"farming_blueberry_4.png"}
crop_def.groups.growing = 0
crop_def.drop = {
def.tiles = {"farming_blueberry_4.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:blueberries 2"}, rarity = 1},
{items = {"farming:blueberries"}, rarity = 2},
{items = {"farming:blueberries"}, rarity = 3},
{items = {"farming:blueberries"}, rarity = 3}
}
}
minetest.register_node("farming:blueberry_4", table.copy(crop_def))
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,
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 4
}
-- mapgen
minetest.register_decoration({
deco_type = "simple",
place_on = {
"default:dirt_with_grass", "mcl_core:dirt_with_grass", "ethereal:prairie_dirt"
},
sidelen = 16,
noise_params = {
offset = 0,
scale = farming.blueberry,
spread = {x = 100, y = 100, z = 100},
seed = 678,
octaves = 3,
persist = 0.6
},
y_min = 3, y_max = 15,
decoration = "farming:blueberry_4"
})

104
crops/cabbage.lua Normal file
View File

@ -0,0 +1,104 @@
local S = minetest.get_translator("farming")
-- item/seed
minetest.register_craftitem("farming:cabbage", {
description = S("Cabbage"),
inventory_image = "farming_cabbage.png",
groups = {compostability = 48, seed = 2, food_cabbage = 1},
on_use = minetest.item_eat(1),
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:cabbage_1")
end
})
farming.add_eatable("farming:cabbage", 1)
-- crop definition
local def = {
description = S("Cabbage") .. S(" Crop"),
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 = {
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.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 (final)
def.tiles = {"farming_cabbage_6.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
max_items = 2, items = {
{items = {"farming:cabbage 2"}, rarity = 1},
{items = {"farming:cabbage 1"}, rarity = 2}
}
}
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 = farming.min_light,
maxlight = farming.max_light,
steps = 6
}
-- mapgen
minetest.register_decoration({
deco_type = "simple",
place_on = {"default:dirt_with_grass", "mcl_core:dirt_with_grass"},
sidelen = 16,
noise_params = {
offset = 0,
scale = farming.cabbage,
spread = {x = 100, y = 100, z = 100},
seed = 789,
octaves = 3,
persist = 0.6
},
y_min = 2, y_max = 15,
decoration = "farming:cabbage_6"
})

View File

@ -1,59 +1,29 @@
--[[
Original textures from PixelBox texture pack
https://forum.minetest.net/viewtopic.php?id=4990
]]
-- Original textures from PixelBox texture pack
-- https://forum.minetest.net/viewtopic.php?id=4990
local S = farming.intllib
local S = minetest.get_translator("farming")
local a = farming.recipe_items
-- item/seed
-- carrot
minetest.register_craftitem("farming:carrot", {
description = S("Carrot"),
inventory_image = "farming_carrot.png",
groups = {seed = 2, food_carrot = 1, flammable = 2},
groups = {compostability = 48, seed = 2, food_carrot = 1},
on_use = minetest.item_eat(4),
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:carrot_1")
end,
on_use = minetest.item_eat(4),
end
})
-- carrot juice
minetest.register_craftitem("farming:carrot_juice", {
description = S("Carrot Juice"),
inventory_image = "farming_carrot_juice.png",
on_use = minetest.item_eat(4, "vessels:drinking_glass"),
groups = {vessel = 1},
})
farming.add_eatable("farming:carrot", 4)
minetest.register_craft({
output = "farming:carrot_juice",
type = "shapeless",
recipe = {
"vessels:drinking_glass", "group:food_carrot", "farming:juicer"
},
replacements = {
{"group:food_juicer", "farming:juicer"},
},
})
-- crop definition
-- golden carrot
minetest.register_craftitem("farming:carrot_gold", {
description = S("Golden Carrot"),
inventory_image = "farming_carrot_gold.png",
on_use = minetest.item_eat(6),
})
minetest.register_craft({
output = "farming:carrot_gold",
recipe = {
{"", "default:gold_lump", ""},
{"default:gold_lump", "group:food_carrot", "default:gold_lump"},
{"", "default:gold_lump", ""},
}
})
-- carrot definition
local crop_def = {
local def = {
description = S("Carrot") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_carrot_1.png"},
paramtype = "light",
@ -61,64 +31,96 @@ local crop_def = {
walkable = false,
buildable_to = true,
drop = "",
waving = 1,
selection_box = farming.select,
groups = {
snappy = 3, flammable = 2, plant = 1, attached_node = 1,
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
sounds = default.node_sound_leaves_defaults()
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:carrot_1", table.copy(crop_def))
minetest.register_node("farming:carrot_1", table.copy(def))
-- stage 2
crop_def.tiles = {"farming_carrot_2.png"}
minetest.register_node("farming:carrot_2", table.copy(crop_def))
def.tiles = {"farming_carrot_2.png"}
minetest.register_node("farming:carrot_2", table.copy(def))
-- stage 3
crop_def.tiles = {"farming_carrot_3.png"}
minetest.register_node("farming:carrot_3", table.copy(crop_def))
def.tiles = {"farming_carrot_3.png"}
minetest.register_node("farming:carrot_3", table.copy(def))
-- stage 4
crop_def.tiles = {"farming_carrot_4.png"}
minetest.register_node("farming:carrot_4", table.copy(crop_def))
def.tiles = {"farming_carrot_4.png"}
minetest.register_node("farming:carrot_4", table.copy(def))
-- stage 5
crop_def.tiles = {"farming_carrot_5.png"}
minetest.register_node("farming:carrot_5", table.copy(crop_def))
def.tiles = {"farming_carrot_5.png"}
minetest.register_node("farming:carrot_5", table.copy(def))
-- stage 6
crop_def.tiles = {"farming_carrot_6.png"}
minetest.register_node("farming:carrot_6", table.copy(crop_def))
def.tiles = {"farming_carrot_6.png"}
minetest.register_node("farming:carrot_6", table.copy(def))
-- stage 7
crop_def.tiles = {"farming_carrot_7.png"}
crop_def.drop = {
def.tiles = {"farming_carrot_7.png"}
def.drop = {
items = {
{items = {"farming:carrot"}, rarity = 1},
{items = {"farming:carrot 2"}, rarity = 3},
{items = {"farming:carrot 2"}, rarity = 3}
}
}
minetest.register_node("farming:carrot_7", table.copy(crop_def))
minetest.register_node("farming:carrot_7", table.copy(def))
-- stage 8 (final)
crop_def.tiles = {"farming_carrot_8.png"}
crop_def.groups.growing = 0
crop_def.drop = {
def.tiles = {"farming_carrot_8.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:carrot 2"}, rarity = 1},
{items = {"farming:carrot 3"}, rarity = 2},
{items = {"farming:carrot 3"}, rarity = 2}
}
}
minetest.register_node("farming:carrot_8", table.copy(crop_def))
minetest.register_node("farming:carrot_8", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:carrot"] = {
crop = "farming:carrot",
seed = "farming:carrot",
minlight = 13,
maxlight = 15,
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 8
}
-- mapgen
minetest.register_decoration({
deco_type = "simple",
place_on = {
"default:dirt_with_grass", "mcl_core:dirt_with_grass", "ethereal:prairie_dirt"
},
sidelen = 16,
noise_params = {
offset = 0,
scale = farming.carrot,
spread = {x = 100, y = 100, z = 100},
seed = 890,
octaves = 3,
persist = 0.6
},
y_min = 1, y_max = 30,
decoration = "farming:carrot_7"
})

View File

@ -1,43 +1,26 @@
local S = farming.intllib
local S = minetest.get_translator("farming")
local a = farming.recipe_items
-- item/seed
-- chili pepper
minetest.register_craftitem("farming:chili_pepper", {
description = S("Chili Pepper"),
inventory_image = "farming_chili_pepper.png",
groups = {seed = 2, food_chili_pepper = 1, flammable = 4},
groups = {compostability = 48, seed = 2, food_chili_pepper = 1},
on_use = minetest.item_eat(2),
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:chili_1")
end,
on_use = minetest.item_eat(2),
end
})
-- bowl of chili
minetest.register_craftitem("farming:chili_bowl", {
description = S("Bowl of Chili"),
inventory_image = "farming_chili_bowl.png",
on_use = minetest.item_eat(8, "farming:bowl"),
})
farming.add_eatable("farming:chili_pepper", 2)
minetest.register_craft({
type = "shapeless",
output = "farming:chili_bowl",
recipe = {
"group:food_chili_pepper", "group:food_barley",
"group:food_tomato", "group:food_beans", "group:food_bowl"
},
})
-- crop definition
-- chili can be used for red dye
minetest.register_craft({
output = "dye:red",
recipe = {
{"farming:chili_pepper"},
}
})
-- chili definition
local crop_def = {
local def = {
description = S("Chili Pepper") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_chili_1.png"},
paramtype = "light",
@ -45,57 +28,92 @@ local crop_def = {
walkable = false,
buildable_to = true,
drop = "",
waving = 1,
selection_box = farming.select,
groups = {
snappy = 3, flammable = 4, plant = 1, attached_node = 1,
handy = 1, snappy = 3, flammable = 4, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
sounds = default.node_sound_leaves_defaults()
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:chili_1", table.copy(crop_def))
minetest.register_node("farming:chili_1", table.copy(def))
-- stage 2
crop_def.tiles = {"farming_chili_2.png"}
minetest.register_node("farming:chili_2", table.copy(crop_def))
def.tiles = {"farming_chili_2.png"}
minetest.register_node("farming:chili_2", table.copy(def))
-- stage 3
crop_def.tiles = {"farming_chili_3.png"}
minetest.register_node("farming:chili_3", table.copy(crop_def))
def.tiles = {"farming_chili_3.png"}
minetest.register_node("farming:chili_3", table.copy(def))
-- stage 4
crop_def.tiles = {"farming_chili_4.png"}
minetest.register_node("farming:chili_4", table.copy(crop_def))
def.tiles = {"farming_chili_4.png"}
minetest.register_node("farming:chili_4", table.copy(def))
-- stage 5
crop_def.tiles = {"farming_chili_5.png"}
minetest.register_node("farming:chili_5", table.copy(crop_def))
def.tiles = {"farming_chili_5.png"}
minetest.register_node("farming:chili_5", table.copy(def))
-- stage 6
crop_def.tiles = {"farming_chili_6.png"}
minetest.register_node("farming:chili_6", table.copy(crop_def))
def.tiles = {"farming_chili_6.png"}
minetest.register_node("farming:chili_6", table.copy(def))
-- stage 7
crop_def.tiles = {"farming_chili_7.png"}
minetest.register_node("farming:chili_7", table.copy(crop_def))
def.tiles = {"farming_chili_7.png"}
minetest.register_node("farming:chili_7", table.copy(def))
-- stage 8 (final)
crop_def.tiles = {"farming_chili_8.png"}
crop_def.groups.growing = 0
crop_def.drop = {
def.tiles = {"farming_chili_8.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:chili_pepper 3"}, rarity = 1},
{items = {"farming:chili_pepper 2"}, rarity = 2},
{items = {"farming:chili_pepper 2"}, rarity = 2}
}
}
minetest.register_node("farming:chili_8", table.copy(crop_def))
minetest.register_node("farming:chili_8", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:chili_pepper"] = {
crop = "farming:chili",
seed = "farming:chili_pepper",
minlight = 13,
maxlight = 15,
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 8
}
-- mapgen
minetest.register_decoration({
deco_type = "simple",
place_on = {
"default:dirt_with_grass", "default:dirt_with_rainforest_litter",
"mcl_core:dirt_with_grass", "ethereal:prairie_dirt"
},
sidelen = 16,
noise_params = {
offset = 0,
scale = farming.chili,
spread = {x = 100, y = 100, z = 100},
seed = 901,
octaves = 3,
persist = 0.6
},
y_min = 5, y_max = 45,
decoration = "farming:chili_8",
spawn_by = "group:tree", num_spawn_by = 1
})

View File

@ -1,5 +1,5 @@
local S = farming.intllib
local S = minetest.get_translator("farming")
-- place cocoa
local function place_cocoa(itemstack, placer, pointed_thing, plantname)
@ -7,26 +7,23 @@ local function place_cocoa(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
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
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)
return def.on_rightclick(pt.under, under, placer, itemstack, pt)
end
-- check if pointing at jungletree
if under.name ~= "default:jungletree"
if (under.name ~= "default:jungletree" and under.name ~= "mcl_core:jungletree")
or minetest.get_node(pt.above).name ~= "air" then
return
end
@ -35,14 +32,12 @@ local function place_cocoa(itemstack, placer, pointed_thing, plantname)
local name = placer and placer:get_player_name() or ""
-- check for protection
if minetest.is_protected(pt.above, name) then
return
end
if minetest.is_protected(pt.above, name) then return end
-- add the node and remove 1 item from the itemstack
minetest.set_node(pt.above, {name = plantname})
minetest.sound_play("default_place_node", {pos = pt.above, gain = 1.0})
minetest.sound_play("default_place_node", {pos = pt.above, gain = 1.0}, true)
if placer and not farming.is_creative(placer:get_player_name()) then
@ -51,194 +46,141 @@ local function place_cocoa(itemstack, placer, pointed_thing, plantname)
-- check for refill
if itemstack:get_count() == 0 then
minetest.after(0.20,
farming.refill_plant,
placer,
"farming:cocoa_beans",
placer:get_wield_index()
)
minetest.after(0.20, farming.refill_plant, placer,
"farming:cocoa_beans_raw", placer:get_wield_index())
end
end
return itemstack
end
-- cocoa beans
minetest.register_craftitem("farming:cocoa_beans", {
description = S("Cocoa Beans"),
inventory_image = "farming_cocoa_beans.png",
groups = {seed = 2, food_cocoa = 1, flammable = 2},
-- item/seed
minetest.register_craftitem("farming:cocoa_beans_raw", {
description = S("Raw Cocoa Beans"),
inventory_image = "farming_cocoa_beans.png^[brighten",
groups = {compostability = 48, seed = 1, flammable = 2},
on_place = function(itemstack, placer, pointed_thing)
return place_cocoa(itemstack, placer, pointed_thing, "farming:cocoa_1")
end,
end
})
minetest.register_craft( {
output = "dye:brown 2",
recipe = {
{ "farming:cocoa_beans" },
}
})
-- crop definition
-- chocolate cookie
minetest.register_craftitem("farming:cookie", {
description = S("Cookie"),
inventory_image = "farming_cookie.png",
on_use = minetest.item_eat(2),
})
minetest.register_craft( {
output = "farming:cookie 8",
recipe = {
{"group:food_wheat", "group:food_cocoa", "group:food_wheat" },
}
})
-- bar of dark chocolate (thanks to Ice Pandora for her deviantart.com chocolate tutorial)
minetest.register_craftitem("farming:chocolate_dark", {
description = S("Bar of Dark Chocolate"),
inventory_image = "farming_chocolate_dark.png",
on_use = minetest.item_eat(3),
})
minetest.register_craft( {
output = "farming:chocolate_dark",
recipe = {
{"group:food_cocoa", "group:food_cocoa", "group:food_cocoa"},
}
})
-- chocolate block
minetest.register_node("farming:chocolate_block", {
description = S("Chocolate Block"),
tiles = {"farming_chocolate_block.png"},
is_ground_content = false,
groups = {cracky = 2, oddly_breakable_by_hand = 2},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_craft({
output = "farming:chocolate_block",
recipe = {
{"farming:chocolate_dark", "farming:chocolate_dark", "farming:chocolate_dark"},
{"farming:chocolate_dark", "farming:chocolate_dark", "farming:chocolate_dark"},
{"farming:chocolate_dark", "farming:chocolate_dark", "farming:chocolate_dark"},
}
})
minetest.register_craft({
output = "farming:chocolate_dark 9",
recipe = {
{"farming:chocolate_block"},
}
})
-- cocoa definition
local crop_def = {
local def = {
description = S("Cocoa Beans") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_cocoa_1.png"},
paramtype = "light",
walkable = false,
drop = {
items = {
{items = {"farming:cocoa_beans 1"}, rarity = 2},
}
},
selection_box = {
type = "fixed",
fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3}
},
drop = {},
groups = {
snappy = 3, flammable = 2, plant = 1, growing = 1,
not_in_creative_inventory=1, leafdecay = 1, leafdecay_drop = 1
handy = 1, snappy = 3, flammable = 2, plant = 1, growing = 1,
not_in_creative_inventory = 1, leafdecay = 1, leafdecay_drop = 1
},
sounds = default.node_sound_leaves_defaults(),
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults(),
-- custom function that returns True when conditions are met
growth_check = function(pos, node_name)
if minetest.find_node_near(pos, 1, {"default:jungletree"}) then
return false
if minetest.find_node_near(pos, 1,
{"default:jungletree", "mcl_core:jungletree"}) then
return true -- place next growth stage
end
return true
end,
return false -- condition not met, skip growth stage until next check
end
}
-- stage 1
minetest.register_node("farming:cocoa_1", table.copy(crop_def))
minetest.register_node("farming:cocoa_1", table.copy(def))
-- stage 2
crop_def.tiles = {"farming_cocoa_2.png"}
minetest.register_node("farming:cocoa_2", table.copy(crop_def))
def.tiles = {"farming_cocoa_2.png"}
minetest.register_node("farming:cocoa_2", table.copy(def))
-- stage3
crop_def.tiles = {"farming_cocoa_3.png"}
crop_def.drop = {
def.tiles = {"farming_cocoa_3.png"}
def.drop = {
items = {
{items = {"farming:cocoa_beans 1"}, rarity = 1},
{items = {"farming:cocoa_beans_raw 1"}, rarity = 1}
}
}
minetest.register_node("farming:cocoa_3", table.copy(crop_def))
minetest.register_node("farming:cocoa_3", table.copy(def))
-- stage 4 (final)
crop_def.tiles = {"farming_cocoa_4.png"}
crop_def.groups.growing = 0
crop_def.growth_check = nil
crop_def.drop = {
def.tiles = {"farming_cocoa_4.png"}
def.groups.growing = nil
def.growth_check = nil
def.drop = {
items = {
{items = {"farming:cocoa_beans 2"}, rarity = 1},
{items = {"farming:cocoa_beans 1"}, rarity = 2},
{items = {"farming:cocoa_beans 1"}, rarity = 4},
{items = {"farming:cocoa_beans_raw 2"}, rarity = 1},
{items = {"farming:cocoa_beans_raw 1"}, rarity = 2},
{items = {"farming:cocoa_beans_raw 1"}, rarity = 4}
}
}
minetest.register_node("farming:cocoa_4", table.copy(crop_def))
minetest.register_node("farming:cocoa_4", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:cocoa_beans"] = {
trellis = "default:jungletree",
crop = "farming:cocoa",
seed = "farming:cocoa_beans",
minlight = 13,
maxlight = 15,
seed = "farming:cocoa_beans_raw",
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 4
}
-- add random cocoa pods to jungle tree's
local random = math.random -- localise for speed
minetest.register_on_generated(function(minp, maxp)
if maxp.y < 0 then
return
end
if maxp.y < 0 then return end
local pos, dir
local cocoa = minetest.find_nodes_in_area(minp, maxp, "default:jungletree")
local cocoa = minetest.find_nodes_in_area(minp, maxp,
{"default:jungletree", "mcl_core:jungletree"})
for n = 1, #cocoa do
pos = cocoa[n]
if minetest.find_node_near(pos, 1,
{"default:jungleleaves", "moretrees:jungletree_leaves_green"}) then
{"default:jungleleaves", "moretrees:jungletree_leaves_green",
"mcl_core:jungleleaves"}) then
dir = math.random(1, 80)
dir = random(80)
if dir == 1 then
pos.x = pos.x + 1
elseif dir == 2 then
pos.x = pos.x - 1
elseif dir == 3 then
pos.z = pos.z + 1
elseif dir == 4 then
pos.z = pos.z -1
if dir == 1 then pos.x = pos.x + 1
elseif dir == 2 then pos.x = pos.x - 1
elseif dir == 3 then pos.z = pos.z + 1
elseif dir == 4 then pos.z = pos.z - 1
end
if dir < 5
and minetest.get_node(pos).name == "air"
and minetest.get_node_light(pos) > 12 then
--print ("Cocoa Pod added at " .. minetest.pos_to_string(pos))
--print ("Cocoa Pod added at " .. minetest.pos_to_string(pos))
minetest.swap_node(pos, {
name = "farming:cocoa_" .. tostring(math.random(1, 4))
minetest.set_node(pos, {
name = "farming:cocoa_" .. tostring(random(4))
})
end
end
end
end)

View File

@ -1,50 +1,22 @@
local S = farming.intllib
local S = minetest.get_translator("farming")
-- item/seed
-- coffee
minetest.register_craftitem("farming:coffee_beans", {
description = S("Coffee Beans"),
inventory_image = "farming_coffee_beans.png",
groups = {seed = 2, food_coffee = 1, flammable = 2},
groups = {compostability = 48, seed = 2, food_coffee = 1, flammable = 2},
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:coffee_1")
end,
end
})
-- cold cup of coffee
minetest.register_node("farming:coffee_cup", {
description = S("Cup of Coffee"),
drawtype = "torchlike", --"plantlike",
tiles = {"farming_coffee_cup.png"},
inventory_image = "farming_coffee_cup.png",
wield_image = "farming_coffee_cup.png",
paramtype = "light",
walkable = false,
selection_box = {
type = "fixed",
fixed = {-0.25, -0.5, -0.25, 0.25, 0.25, 0.25}
},
groups = {vessel = 1, dig_immediate = 3, attached_node = 1},
on_use = minetest.item_eat(2, "vessels:drinking_glass"),
sounds = default.node_sound_glass_defaults(),
})
-- crop definition
minetest.register_alias("farming:coffee_cup_hot", "farming:coffee_cup")
minetest.register_alias("farming:drinking_cup", "vessels:drinking_glass")
minetest.register_craft( {
output = "farming:coffee_cup",
type = "shapeless",
recipe = {"vessels:drinking_glass", "group:food_coffee",
"bucket:bucket_water", "group:food_saucepan"},
replacements = {
{"bucket:bucket_water", "bucket:bucket_empty"},
{"group:food_saucepan", "farming:saucepan"},
}
})
-- coffee definition
local crop_def = {
local def = {
description = S("Coffee") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_coffee_1.png"},
paramtype = "light",
@ -52,46 +24,84 @@ local crop_def = {
walkable = false,
buildable_to = true,
drop = "",
waving = 1,
selection_box = farming.select,
groups = {
snappy = 3, flammable = 2, plant = 1, attached_node = 1,
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
sounds = default.node_sound_leaves_defaults()
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:coffee_1", table.copy(crop_def))
minetest.register_node("farming:coffee_1", table.copy(def))
-- stage 2
crop_def.tiles = {"farming_coffee_2.png"}
minetest.register_node("farming:coffee_2", table.copy(crop_def))
def.tiles = {"farming_coffee_2.png"}
minetest.register_node("farming:coffee_2", table.copy(def))
-- stage 3
crop_def.tiles = {"farming_coffee_3.png"}
minetest.register_node("farming:coffee_3", table.copy(crop_def))
def.tiles = {"farming_coffee_3.png"}
minetest.register_node("farming:coffee_3", table.copy(def))
-- stage 4
crop_def.tiles = {"farming_coffee_4.png"}
minetest.register_node("farming:coffee_4", table.copy(crop_def))
def.tiles = {"farming_coffee_4.png"}
minetest.register_node("farming:coffee_4", table.copy(def))
-- stage 5 (final)
crop_def.tiles = {"farming_coffee_5.png"}
crop_def.groups.growing = 0
crop_def.drop = {
def.tiles = {"farming_coffee_5.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:coffee_beans 2"}, rarity = 1},
{items = {"farming:coffee_beans 2"}, rarity = 2},
{items = {"farming:coffee_beans 2"}, rarity = 3},
{items = {"farming:coffee_beans 2"}, rarity = 3}
}
}
minetest.register_node("farming:coffee_5", table.copy(crop_def))
minetest.register_node("farming:coffee_5", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:coffee"] = {
crop = "farming:coffee",
seed = "farming:coffee_beans",
minlight = 13,
maxlight = 15,
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 5
}
-- mapgen
local spawn_on = {
"default:dirt_with_dry_grass", "default:dirt_with_rainforest_litter",
"default:dry_dirt_with_dry_grass", "mcl_core:dirt_with_grass",
"ethereal:prairie_dirt"
}
if farming.mapgen == "v6" then
spawn_on = {"default:dirt_with_grass"}
end
minetest.register_decoration({
deco_type = "simple",
place_on = spawn_on,
sidelen = 16,
noise_params = {
offset = 0,
scale = farming.coffee,
spread = {x = 100, y = 100, z = 100},
seed = 12,
octaves = 3,
persist = 0.6
},
y_min = 20, y_max = 55,
decoration = "farming:coffee_5"
})

View File

@ -4,89 +4,27 @@
http://www.minecraftforum.net/forums/mapping-and-modding/minecraft-mods/wip-mods/1440575-1-2-5-generation-minecraft-beta-1-2-farming-and
]]
local S = farming.intllib
local S = minetest.get_translator("farming")
-- item/seed
-- corn
minetest.register_craftitem("farming:corn", {
description = S("Corn"),
inventory_image = "farming_corn.png",
groups = {seed = 2, food_corn = 1, flammable = 2},
groups = {compostability = 45, seed = 2, food_corn = 1},
on_use = minetest.item_eat(3),
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:corn_1")
end,
on_use = minetest.item_eat(3),
end
})
-- corn on the cob (texture by TenPlus1)
minetest.register_craftitem("farming:corn_cob", {
description = S("Corn on the Cob"),
inventory_image = "farming_corn_cob.png",
groups = {food_corn_cooked = 1, flammable = 2},
on_use = minetest.item_eat(5),
})
farming.add_eatable("farming:corn", 3)
minetest.register_craft({
type = "cooking",
cooktime = 10,
output = "farming:corn_cob",
recipe = "group:food_corn"
})
-- crop definition
-- cornstarch
minetest.register_craftitem("farming:cornstarch", {
description = S("Cornstarch"),
inventory_image = "farming_cornstarch.png",
groups = {food_cornstarch = 1, flammable = 2},
})
minetest.register_craft({
output = "farming:cornstarch",
recipe = {
{"group:food_mortar_pestle", "group:food_corn_cooked", "group:food_baking_tray"},
{"", "group:food_bowl", ""},
},
replacements = {
{"group:food_mortar_pestle", "farming:mortar_pestle"},
{"group:food_baking_tray", "farming:baking_tray"},
}
})
-- ethanol (thanks to JKMurray for this idea)
minetest.register_node("farming:bottle_ethanol", {
description = S("Bottle of Ethanol"),
drawtype = "plantlike",
tiles = {"farming_bottle_ethanol.png"},
inventory_image = "farming_bottle_ethanol.png",
wield_image = "farming_bottle_ethanol.png",
paramtype = "light",
is_ground_content = false,
walkable = false,
selection_box = {
type = "fixed",
fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25}
},
groups = {vessel = 1, dig_immediate = 3, attached_node = 1},
sounds = default.node_sound_glass_defaults(),
})
minetest.register_craft( {
output = "farming:bottle_ethanol",
recipe = {
{ "vessels:glass_bottle", "group:food_corn", "group:food_corn"},
{ "group:food_corn", "group:food_corn", "group:food_corn"},
{ "group:food_corn", "group:food_corn", "group:food_corn"},
}
})
minetest.register_craft({
type = "fuel",
recipe = "farming:bottle_ethanol",
burntime = 80, --240,
replacements = {{ "farming:bottle_ethanol", "vessels:glass_bottle"}}
})
-- corn definition
local crop_def = {
local def = {
description = S("Corn") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_corn_1.png"},
paramtype = "light",
@ -94,66 +32,99 @@ local crop_def = {
walkable = false,
buildable_to = true,
drop = "",
waving = 1,
selection_box = farming.select,
groups = {
snappy = 3, flammable = 2, plant = 1, attached_node = 1,
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
sounds = default.node_sound_leaves_defaults()
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:corn_1", table.copy(crop_def))
minetest.register_node("farming:corn_1", table.copy(def))
-- stage 2
crop_def.tiles = {"farming_corn_2.png"}
minetest.register_node("farming:corn_2", table.copy(crop_def))
def.tiles = {"farming_corn_2.png"}
minetest.register_node("farming:corn_2", table.copy(def))
-- stage 3
crop_def.tiles = {"farming_corn_3.png"}
minetest.register_node("farming:corn_3", table.copy(crop_def))
def.tiles = {"farming_corn_3.png"}
minetest.register_node("farming:corn_3", table.copy(def))
-- stage 4
crop_def.tiles = {"farming_corn_4.png"}
minetest.register_node("farming:corn_4", table.copy(crop_def))
def.tiles = {"farming_corn_4.png"}
minetest.register_node("farming:corn_4", table.copy(def))
-- stage 5
crop_def.tiles = {"farming_corn_5.png"}
minetest.register_node("farming:corn_5", table.copy(crop_def))
def.tiles = {"farming_corn_5.png"}
minetest.register_node("farming:corn_5", table.copy(def))
-- stage 6
crop_def.tiles = {"farming_corn_6.png"}
crop_def.visual_scale = 1.9 -- 1.45
minetest.register_node("farming:corn_6", table.copy(crop_def))
def.tiles = {"farming_corn_6.png"}
def.visual_scale = 1.9
minetest.register_node("farming:corn_6", table.copy(def))
-- stage 7
crop_def.tiles = {"farming_corn_7.png"}
crop_def.drop = {
def.tiles = {"farming_corn_7.png"}
def.drop = {
items = {
{items = {"farming:corn"}, rarity = 1},
{items = {"farming:corn"}, rarity = 2},
{items = {"farming:corn"}, rarity = 3},
{items = {"farming:corn"}, rarity = 3}
}
}
minetest.register_node("farming:corn_7", table.copy(crop_def))
minetest.register_node("farming:corn_7", table.copy(def))
-- stage 8 (final)
crop_def.tiles = {"farming_corn_8.png"}
crop_def.groups.growing = 0
crop_def.drop = {
def.tiles = {"farming_corn_8.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:corn 2"}, rarity = 1},
{items = {"farming:corn 2"}, rarity = 2},
{items = {"farming:corn 2"}, rarity = 2},
{items = {"farming:corn 2"}, rarity = 2}
}
}
minetest.register_node("farming:corn_8", table.copy(crop_def))
minetest.register_node("farming:corn_8", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:corn"] = {
crop = "farming:corn",
seed = "farming:corn",
minlight = 13,
maxlight = 15,
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 8
}
-- mapgen
minetest.register_decoration({
deco_type = "simple",
place_on = {
"default:dirt_with_grass", "mcl_core:dirt_with_grass", "ethereal:prairie_dirt"
},
sidelen = 16,
noise_params = {
offset = 0,
scale = farming.corn,
spread = {x = 100, y = 100, z = 100},
seed = 134,
octaves = 3,
persist = 0.6
},
y_min = 12, y_max = 27,
decoration = "farming:corn_7"
})

View File

@ -1,7 +1,148 @@
local S = farming.intllib
local S = minetest.get_translator("farming")
-- seed
minetest.register_node("farming:seed_cotton", {
description = S("Cotton Seed"),
tiles = {"farming_cotton_seed.png"},
inventory_image = "farming_cotton_seed.png",
wield_image = "farming_cotton_seed.png",
drawtype = "signlike",
groups = {
compostability = 48, seed = 1, snappy = 3, attached_node = 1,
flammable = 4, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
paramtype = "light",
paramtype2 = "wallmounted",
walkable = false,
sunlight_propagates = true,
selection_box = farming.select,
next_plant = "farming:cotton_1",
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:seed_cotton")
end,
on_timer = function(pos, elapsed)
minetest.set_node(pos, {name = "farming:cotton_1", param2 = 1})
end
})
-- item
minetest.register_craftitem("farming:cotton", {
description = S("Cotton"),
inventory_image = "farming_cotton.png",
groups = {flammable = 4, compostability = 50}
})
-- crop definition
local def = {
description = S("Cotton") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_cotton_1.png"},
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
drop = "",
waving = 1,
selection_box = farming.select,
groups = {
handy = 1, snappy = 3, flammable = 4, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:cotton_1", table.copy(def))
-- stage 2
def.tiles = {"farming_cotton_2.png"}
minetest.register_node("farming:cotton_2", table.copy(def))
-- stage 3
def.tiles = {"farming_cotton_3.png"}
minetest.register_node("farming:cotton_3", table.copy(def))
-- stage 4
def.tiles = {"farming_cotton_4.png"}
minetest.register_node("farming:cotton_4", table.copy(def))
-- stage 5
def.tiles = {"farming_cotton_5.png"}
def.drop = {
items = {
{items = {"farming:seed_cotton"}, rarity = 1}
}
}
minetest.register_node("farming:cotton_5", table.copy(def))
-- stage 6
def.tiles = {"farming_cotton_6.png"}
def.drop = {
items = {
{items = {"farming:cotton"}, rarity = 1},
{items = {"farming:cotton"}, rarity = 2}
}
}
minetest.register_node("farming:cotton_6", table.copy(def))
-- stage 7
def.tiles = {"farming_cotton_7.png"}
def.drop = {
items = {
{items = {"farming:cotton"}, rarity = 1},
{items = {"farming:cotton"}, rarity = 2},
{items = {"farming:seed_cotton"}, rarity = 1},
{items = {"farming:seed_cotton"}, rarity = 2}
}
}
minetest.register_node("farming:cotton_7", table.copy(def))
-- stage 8 (final)
def.tiles = {"farming_cotton_8.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:cotton"}, rarity = 1},
{items = {"farming:cotton"}, rarity = 2},
{items = {"farming:cotton"}, rarity = 3},
{items = {"farming:seed_cotton"}, rarity = 1},
{items = {"farming:seed_cotton"}, rarity = 2},
{items = {"farming:seed_cotton"}, rarity = 3}
}
}
minetest.register_node("farming:cotton_8", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:cotton"] = {
crop = "farming:cotton",
seed = "farming:seed_cotton",
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 8
}
-- wild cotton (this is what you find on the map)
-- wild cotton as a source of cotton seed
minetest.register_node("farming:cotton_wild", {
description = S("Wild Cotton"),
drawtype = "plantlike",
@ -13,166 +154,51 @@ minetest.register_node("farming:cotton_wild", {
sunlight_propagates = true,
walkable = false,
buildable_to = true,
groups = {snappy = 3, attached_node = 1, flammable = 4},
drop = "farming:seed_cotton",
sounds = default.node_sound_leaves_defaults(),
groups = {handy = 1, snappy = 3, attached_node = 1, flammable = 4, compostability = 60},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
drop = {
items = {
{items = {"farming:cotton"}, rarity = 2},
{items = {"farming:seed_cotton"}, rarity = 1}
}
},
sounds = farming.node_sound_leaves_defaults(),
selection_box = {
type = "fixed",
fixed = {-6 / 16, -8 / 16, -6 / 16, 6 / 16, 5 / 16, 6 / 16},
fixed = {-6 / 16, -8 / 16, -6 / 16, 6 / 16, 5 / 16, 6 / 16}
}
})
-- mapgen
local spawn_on = {
"default:dry_dirt_with_dry_grass", "default:dirt_with_dry_grass",
"mcl_core:dirt_with_grass"
}
if farming.mapgen == "v6" then
spawn_on = {"default:dirt_with_grass"}
end
minetest.register_decoration({
name = "farming:cotton_wild",
deco_type = "simple",
place_on = spawn_on,
sidelen = 16,
noise_params = {
offset = 0,
scale = farming.cotton,
spread = {x = 100, y = 100, z = 100},
seed = 4242,
octaves = 3,
persist = 0.6
},
y_min = 1, y_max = 120,
decoration = "farming:cotton_wild"
})
-- cotton seeds
minetest.register_node("farming:seed_cotton", {
description = S("Cotton Seed"),
tiles = {"farming_cotton_seed.png"},
inventory_image = "farming_cotton_seed.png",
wield_image = "farming_cotton_seed.png",
drawtype = "signlike",
groups = {seed = 1, snappy = 3, attached_node = 1, flammable = 4},
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:cotton_1")
end,
})
-- cotton / string
minetest.register_craftitem("farming:cotton", {
description = S("Cotton"),
inventory_image = "farming_cotton.png",
groups = {flammable = 4},
})
minetest.register_craftitem("farming:string", {
description = S("String"),
inventory_image = "farming_string.png",
groups = {flammable = 2},
})
-- cotton to wool
minetest.register_craft({
output = "wool:white",
recipe = {
{"farming:cotton", "farming:cotton"},
{"farming:cotton", "farming:cotton"},
}
})
-- cotton to string
minetest.register_craft({
output = "farming:string 2",
recipe = {
{"farming:cotton"},
{"farming:cotton"},
}
})
-- can be used as fuel
minetest.register_craft({
type = "fuel",
recipe = "farming:string",
burntime = 1,
})
minetest.register_craft({
type = "fuel",
recipe = "farming:cotton",
burntime = 1,
})
-- cotton definition
local crop_def = {
drawtype = "plantlike",
tiles = {"farming_cotton_1.png"},
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
drop = "",
selection_box = farming.select,
groups = {
snappy = 3, flammable = 4, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
sounds = default.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:cotton_1", table.copy(crop_def))
-- stage 2
crop_def.tiles = {"farming_cotton_2.png"}
minetest.register_node("farming:cotton_2", table.copy(crop_def))
-- stage 3
crop_def.tiles = {"farming_cotton_3.png"}
minetest.register_node("farming:cotton_3", table.copy(crop_def))
-- stage 4
crop_def.tiles = {"farming_cotton_4.png"}
minetest.register_node("farming:cotton_4", table.copy(crop_def))
-- stage 5
crop_def.tiles = {"farming_cotton_5.png"}
crop_def.drop = {
items = {
{items = {"farming:seed_cotton"}, rarity = 1},
}
}
minetest.register_node("farming:cotton_5", table.copy(crop_def))
-- stage 6
crop_def.tiles = {"farming_cotton_6.png"}
crop_def.drop = {
items = {
{items = {"farming:cotton"}, rarity = 1},
{items = {"farming:cotton"}, rarity = 2},
}
}
minetest.register_node("farming:cotton_6", table.copy(crop_def))
-- stage 7
crop_def.tiles = {"farming_cotton_7.png"}
crop_def.drop = {
items = {
{items = {"farming:cotton"}, rarity = 1},
{items = {"farming:cotton"}, rarity = 2},
{items = {"farming:seed_cotton"}, rarity = 1},
{items = {"farming:seed_cotton"}, rarity = 2},
}
}
minetest.register_node("farming:cotton_7", table.copy(crop_def))
-- stage 8 (final)
crop_def.tiles = {"farming_cotton_8.png"}
crop_def.groups.growing = 0
crop_def.drop = {
items = {
{items = {"farming:cotton"}, rarity = 1},
{items = {"farming:cotton"}, rarity = 2},
{items = {"farming:cotton"}, rarity = 3},
{items = {"farming:seed_cotton"}, rarity = 1},
{items = {"farming:seed_cotton"}, rarity = 2},
{items = {"farming:seed_cotton"}, rarity = 3},
}
}
minetest.register_node("farming:cotton_8", table.copy(crop_def))
-- add to registered_plants
farming.registered_plants["farming:cotton"] = {
crop = "farming:cotton",
seed = "farming:seed_cotton",
minlight = 13,
maxlight = 15,
steps = 8
}
--[[ Cotton (example, is already registered in cotton.lua)
--[[ Cotton using api
farming.register_plant("farming:cotton", {
description = "Cotton seed",
inventory_image = "farming_cotton_seed.png",

View File

@ -4,21 +4,27 @@
https://forum.minetest.net/viewtopic.php?id=3948
]]
local S = farming.intllib
local S = minetest.get_translator("farming")
-- item/seed
-- cucumber
minetest.register_craftitem("farming:cucumber", {
description = S("Cucumber"),
inventory_image = "farming_cucumber.png",
groups = {seed = 2, food_cucumber = 1, flammable = 2},
groups = {compostability = 48, seed = 2, food_cucumber = 1},
on_use = minetest.item_eat(4),
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:cucumber_1")
end,
on_use = minetest.item_eat(4),
end
})
-- cucumber definition
local crop_def = {
farming.add_eatable("farming:cucumber", 4)
-- crop definition
local def = {
description = S("Cucumber") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_cucumber_1.png"},
paramtype = "light",
@ -27,39 +33,68 @@ local crop_def = {
drop = "",
selection_box = farming.select,
groups = {
snappy = 3, flammable = 2, plant = 1, attached_node = 1,
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
sounds = default.node_sound_leaves_defaults()
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:cucumber_1", table.copy(crop_def))
minetest.register_node("farming:cucumber_1", table.copy(def))
-- stage 2
crop_def.tiles = {"farming_cucumber_2.png"}
minetest.register_node("farming:cucumber_2", table.copy(crop_def))
def.tiles = {"farming_cucumber_2.png"}
minetest.register_node("farming:cucumber_2", table.copy(def))
-- stage 3
crop_def.tiles = {"farming_cucumber_3.png"}
minetest.register_node("farming:cucumber_3", table.copy(crop_def))
def.tiles = {"farming_cucumber_3.png"}
minetest.register_node("farming:cucumber_3", table.copy(def))
-- stage 4 (final)
crop_def.tiles = {"farming_cucumber_4.png"}
crop_def.groups.growing = 0
crop_def.drop = {
def.tiles = {"farming_cucumber_4.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:cucumber 2"}, rarity = 1},
{items = {"farming:cucumber 2"}, rarity = 2},
{items = {"farming:cucumber 2"}, rarity = 2}
}
}
minetest.register_node("farming:cucumber_4", table.copy(crop_def))
minetest.register_node("farming:cucumber_4", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:cucumber"] = {
crop = "farming:cucumber",
seed = "farming:cucumber",
minlight = 13,
maxlight = 15,
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 4
}
-- mapgen
minetest.register_decoration({
deco_type = "simple",
place_on = {
"default:dirt_with_grass", "mcl_core:dirt_with_grass", "ethereal:prairie_dirt"
},
sidelen = 16,
noise_params = {
offset = 0,
scale = farming.cucumber,
spread = {x = 100, y = 100, z = 100},
seed = 245,
octaves = 3,
persist = 0.6
},
y_min = 1, y_max = 20,
decoration = "farming:cucumber_4",
spawn_by = {"group:water", "group:sand"}, num_spawn_by = 1
})

102
crops/eggplant.lua Normal file
View File

@ -0,0 +1,102 @@
local S = minetest.get_translator("farming")
-- item/seed
minetest.register_craftitem("farming:eggplant", {
description = S("Eggplant"),
inventory_image = "farming_eggplant.png",
groups = {compostability = 48, seed = 2, food_eggplant = 1},
on_use = minetest.item_eat(3),
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:eggplant_1")
end
})
farming.add_eatable("farming:eggplant", 3)
-- crop definition
local def = {
description = S("Eggplant") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_eggplant_1.png"},
paramtype = "light",
sunlight_propagates = true,
waving = 1,
walkable = false,
buildable_to = true,
drop = "",
waving = 1,
selection_box = farming.select,
groups = {
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:eggplant_1", table.copy(def))
-- stage 2
def.tiles = {"farming_eggplant_2.png"}
minetest.register_node("farming:eggplant_2", table.copy(def))
-- stage 3
def.tiles = {"farming_eggplant_3.png"}
def.drop = {
items = {
{items = {"farming:eggplant"}, rarity = 1},
{items = {"farming:eggplant"}, rarity = 3}
}
}
minetest.register_node("farming:eggplant_3", table.copy(def))
-- stage 4 (final)
def.tiles = {"farming_eggplant_4.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:eggplant 2"}, rarity = 1},
{items = {"farming:eggplant 2"}, rarity = 2}
}
}
minetest.register_node("farming:eggplant_4", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:eggplant"] = {
crop = "farming:eggplant",
seed = "farming:eggplant",
minlight = 7,
maxlight = farming.max_light,
steps = 4
}
-- mapgen
minetest.register_decoration({
deco_type = "simple",
place_on = {"default:dirt_with_grass", "mcl_core:dirt_with_grass"},
sidelen = 16,
noise_params = {
offset = 0,
scale = farming.eggplant,
spread = {x = 100, y = 100, z = 100},
seed = 356,
octaves = 3,
persist = 0.6
},
y_min = 1, y_max = 40,
decoration = "farming:eggplant_3",
param2 = 3
})

View File

@ -1,85 +1,22 @@
--[[
Original textures from Crops Plus mod
Copyright (C) 2018 Grizzly Adam
https://forum.minetest.net/viewtopic.php?f=9&t=19488
]]
local S = minetest.get_translator("farming")
local S = farming.intllib
-- item/seed
-- potato
minetest.register_craftitem("farming:garlic_clove", {
description = S("Garlic clove"),
inventory_image = "crops_garlic_clove.png",
groups = {seed = 2, food_garlic_clove = 1, flammable = 3},
groups = {compostability = 35, seed = 2, food_garlic_clove = 1, flammable = 3},
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:garlic_1")
end,
})
-- garlic bulb
minetest.register_craftitem("farming:garlic", {
description = S("Garlic"),
inventory_image = "crops_garlic.png",
on_use = minetest.item_eat(1),
groups = {food_garlic = 1, flammable = 3},
})
minetest.register_craft({
type = "shapeless",
output = "farming:garlic_clove 8",
recipe = { "farming:garlic" }
})
minetest.register_craft({
output = "farming:garlic",
recipe = {
{"farming:garlic_clove", "farming:garlic_clove", "farming:garlic_clove"},
{"farming:garlic_clove", "", "farming:garlic_clove"},
{"farming:garlic_clove", "farming:garlic_clove", "farming:garlic_clove"}
}
})
-- garlic braid
minetest.register_node("farming:garlic_braid", {
description = S("Garlic Braid"),
inventory_image = "crops_garlic_braid.png",
wield_image = "crops_garlic_braid.png",
drawtype = "nodebox",
paramtype = "light",
paramtype2 = "facedir",
tiles = {
"crops_garlic_braid_side.png","crops_garlic_braid.png",
"crops_garlic_braid_side.png^[transformFx","crops_garlic_braid_side.png",
"crops_garlic_braid.png","crops_garlic_braid.png"
},
groups = {vessel = 1, dig_immediate = 3, flammable = 3},
sounds = default.node_sound_leaves_defaults(),
node_box = {
type = "fixed",
fixed = {
{-0.13, -0.45, 0.5, 0.13, 0.45, 0.24},
},
}
})
minetest.register_craft({
output = "farming:garlic_braid",
recipe = {
{"farming:garlic", "farming:garlic", "farming:garlic"},
{"farming:garlic", "farming:garlic", "farming:garlic"},
{"farming:garlic", "farming:garlic", "farming:garlic"}
}
})
minetest.register_craft({
type = "shapeless",
output = "farming:garlic 9",
recipe = { "farming:garlic_braid" }
end
})
-- crop definition
local crop_def = {
local def = {
description = S("Garlic") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"crops_garlic_plant_1.png"},
paramtype = "light",
@ -92,46 +29,75 @@ local crop_def = {
drop = "",
selection_box = farming.select,
groups = {
snappy = 3, flammable = 3, plant = 1, attached_node = 1,
handy = 1, snappy = 3, flammable = 3, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
sounds = default.node_sound_leaves_defaults()
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:garlic_1", table.copy(crop_def))
minetest.register_node("farming:garlic_1", table.copy(def))
-- stage 2
crop_def.tiles = {"crops_garlic_plant_2.png"}
minetest.register_node("farming:garlic_2", table.copy(crop_def))
def.tiles = {"crops_garlic_plant_2.png"}
minetest.register_node("farming:garlic_2", table.copy(def))
-- stage 3
crop_def.tiles = {"crops_garlic_plant_3.png"}
minetest.register_node("farming:garlic_3", table.copy(crop_def))
def.tiles = {"crops_garlic_plant_3.png"}
minetest.register_node("farming:garlic_3", table.copy(def))
-- stage 4
crop_def.tiles = {"crops_garlic_plant_4.png"}
minetest.register_node("farming:garlic_4", table.copy(crop_def))
def.tiles = {"crops_garlic_plant_4.png"}
minetest.register_node("farming:garlic_4", table.copy(def))
-- stage 5
crop_def.tiles = {"crops_garlic_plant_5.png"}
crop_def.groups.growing = 0
crop_def.drop = {
max_items = 5, items = {
{items = {"farming:garlic"}, rarity = 1},
{items = {"farming:garlic"}, rarity = 1},
{items = {"farming:garlic"}, rarity = 1},
def.tiles = {"crops_garlic_plant_5.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:garlic 3"}, rarity = 1},
{items = {"farming:garlic"}, rarity = 2},
{items = {"farming:garlic"}, rarity = 5},
{items = {"farming:garlic"}, rarity = 5}
}
}
minetest.register_node("farming:garlic_5", table.copy(crop_def))
minetest.register_node("farming:garlic_5", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:garlic"] = {
crop = "farming:garlic",
seed = "farming:garlic_clove",
minlight = 13,
maxlight = 15,
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 5
}
-- mapgen
minetest.register_decoration({
deco_type = "simple",
place_on = {
"default:dirt_with_grass", "mcl_core:dirt_with_grass", "ethereal:prairie_dirt",
"default:dirt_with_rainforest_litter"
},
sidelen = 16,
noise_params = {
offset = 0,
scale = farming.garlic,
spread = {x = 100, y = 100, z = 100},
seed = 467,
octaves = 3,
persist = 0.6
},
y_min = 3, y_max = 45,
decoration = "farming:garlic_5",
spawn_by = "group:tree", num_spawn_by = 1
})

105
crops/ginger.lua Normal file
View File

@ -0,0 +1,105 @@
local S = minetest.get_translator("farming")
-- item/seed
minetest.register_craftitem("farming:ginger", {
description = S("Ginger"),
inventory_image = "farming_ginger.png",
groups = {compostability = 48, seed = 2, food_ginger = 1},
on_use = minetest.item_eat(1),
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:ginger_1")
end
})
farming.add_eatable("farming:ginger", 1)
-- crop definition
local def = {
description = S("Ginger") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_ginger_1.png"},
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
drop = "",
waving = 1,
selection_box = farming.select,
groups = {
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:ginger_1", table.copy(def))
-- stage 2
def.tiles = {"farming_ginger_2.png"}
minetest.register_node("farming:ginger_2", table.copy(def))
-- stage 3
def.tiles = {"farming_ginger_3.png"}
def.drop = {
items = {
{items = {"farming:ginger"}, rarity = 1},
{items = {"farming:ginger"}, rarity = 3}
}
}
minetest.register_node("farming:ginger_3", table.copy(def))
-- stage 4 (final)
def.tiles = {"farming_ginger_4.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:ginger 2"}, rarity = 1},
{items = {"farming:ginger 2"}, rarity = 2}
}
}
minetest.register_node("farming:ginger_4", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:ginger"] = {
crop = "farming:ginger",
seed = "farming:ginger",
minlight = 5,
maxlight = minetest.LIGHT_MAX,
steps = 4
}
-- mapgen
minetest.register_decoration({
name = "farming:ginger_4",
deco_type = "simple",
place_on = {
"default:dirt_with_rainforest_litter", "mcl_core:dirt_with_grass",
"ethereal:prairie_dirt"
},
sidelen = 16,
noise_params = {
offset = 0,
scale = farming.ginger,
spread = {x = 100, y = 100, z = 100},
seed = 999,
octaves = 3,
persist = 0.6
},
y_min = 1, y_max = 80,
decoration = "farming:ginger_3",
param2 = 3
})

View File

@ -1,48 +1,41 @@
local S = farming.intllib
local S = minetest.get_translator("farming")
-- place trellis helper
-- place trellis
local function place_grapes(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
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
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)
return def.on_rightclick(pt.under, under, placer, itemstack, pt)
end
-- is player planting seed?
local name = placer and placer:get_player_name() or ""
-- check for protection
if minetest.is_protected(pt.under, name) then
return
end
if minetest.is_protected(pt.under, name) then return end
-- check if pointing at trellis
if under.name ~= "farming:trellis" then
return
end
if under.name ~= "farming:trellis" 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})
minetest.sound_play("default_place_node", {pos = pt.under, gain = 1.0}, true)
if placer and not farming.is_creative(placer:get_player_name()) then
@ -51,11 +44,8 @@ local function place_grapes(itemstack, placer, pointed_thing, plantname)
-- check for refill
if itemstack:get_count() == 0 then
minetest.after(0.20,
farming.refill_plant,
placer,
"farming:grapes",
placer:get_wield_index()
minetest.after(0.20, farming.refill_plant, placer,
"farming:grapes", placer:get_wield_index()
)
end
end
@ -63,63 +53,57 @@ local function place_grapes(itemstack, placer, pointed_thing, plantname)
return itemstack
end
-- grapes
-- item/seed
minetest.register_craftitem("farming:grapes", {
description = S("Grapes"),
inventory_image = "farming_grapes.png",
groups = {compostability = 48, seed = 2, food_grapes = 1},
on_use = minetest.item_eat(2),
groups = {seed = 2, food_grapes = 1, flammable = 3},
on_place = function(itemstack, placer, pointed_thing)
return place_grapes(itemstack, placer, pointed_thing, "farming:grapes_1")
end,
end
})
-- grapes can be used for violet dye
minetest.register_craft({
output = "dye:violet",
recipe = {
{"farming:grapes"},
}
})
farming.add_eatable("farming:grapes", 2)
-- trellis
minetest.register_node("farming:trellis", {
description = S("Trellis (place on soil before planting grapes)"),
drawtype = "plantlike",
tiles = {"farming_trellis.png"},
inventory_image = "farming_trellis.png",
visual_scale = 1.9, -- 1.45,
visual_scale = 1.9,
paramtype = "light",
walkable = false,
buildable_to = true,
sunlight_propagates = true,
drop = "farming:trellis",
selection_box = farming.select,
groups = {snappy = 3, flammable = 2, attached_node = 1},
sounds = default.node_sound_leaves_defaults(),
groups = {handy = 1, snappy = 3, flammable = 2, attached_node = 1},
is_ground_content = false,
sounds = farming.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
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
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)
return def.on_rightclick(pt.under, under, placer, itemstack, pt)
end
if minetest.is_protected(pt.above, placer:get_player_name()) then
@ -128,9 +112,7 @@ minetest.register_node("farming:trellis", {
local nodename = under.name
if minetest.get_item_group(nodename, "soil") < 2 then
return
end
if minetest.get_item_group(nodename, "soil") < 2 then return end
local top = {
x = pointed_thing.above.x,
@ -140,9 +122,7 @@ minetest.register_node("farming:trellis", {
nodename = minetest.get_node(top).name
if nodename ~= "air" then
return
end
if nodename ~= "air" then return end
minetest.set_node(pointed_thing.above, {name = "farming:trellis"})
@ -154,26 +134,13 @@ minetest.register_node("farming:trellis", {
end
})
minetest.register_craft({
output = "farming:trellis",
recipe = {
{"default:stick", "default:stick", "default:stick"},
{"default:stick", "default:stick", "default:stick"},
{"default:stick", "default:stick", "default:stick"},
}
})
-- crop definition
minetest.register_craft({
type = "fuel",
recipe = "farming:trellis",
burntime = 15,
})
-- grapes definition
local crop_def = {
local def = {
description = S("Grapes") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_grapes_1.png"},
visual_scale = 1.9, -- 1.45,
visual_scale = 1.9,
paramtype = "light",
walkable = false,
buildable_to = true,
@ -185,62 +152,76 @@ local crop_def = {
},
selection_box = farming.select,
groups = {
snappy = 3, flammable = 3, not_in_creative_inventory = 1,
handy = 1, snappy = 3, flammable = 3, not_in_creative_inventory = 1,
attached_node = 1, growing = 1, plant = 1
},
sounds = default.node_sound_leaves_defaults()
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:grapes_1", table.copy(crop_def))
minetest.register_node("farming:grapes_1", table.copy(def))
-- stage2
crop_def.tiles = {"farming_grapes_2.png"}
minetest.register_node("farming:grapes_2", table.copy(crop_def))
def.tiles = {"farming_grapes_2.png"}
minetest.register_node("farming:grapes_2", table.copy(def))
-- stage 3
crop_def.tiles = {"farming_grapes_3.png"}
minetest.register_node("farming:grapes_3", table.copy(crop_def))
def.tiles = {"farming_grapes_3.png"}
minetest.register_node("farming:grapes_3", table.copy(def))
-- stage 4
crop_def.tiles = {"farming_grapes_4.png"}
minetest.register_node("farming:grapes_4", table.copy(crop_def))
def.tiles = {"farming_grapes_4.png"}
minetest.register_node("farming:grapes_4", table.copy(def))
-- stage 5
crop_def.tiles = {"farming_grapes_5.png"}
minetest.register_node("farming:grapes_5", table.copy(crop_def))
def.tiles = {"farming_grapes_5.png"}
minetest.register_node("farming:grapes_5", table.copy(def))
-- stage 6
crop_def.tiles = {"farming_grapes_6.png"}
minetest.register_node("farming:grapes_6", table.copy(crop_def))
def.tiles = {"farming_grapes_6.png"}
minetest.register_node("farming:grapes_6", table.copy(def))
-- stage 7
crop_def.tiles = {"farming_grapes_7.png"}
minetest.register_node("farming:grapes_7", table.copy(crop_def))
def.tiles = {"farming_grapes_7.png"}
minetest.register_node("farming:grapes_7", table.copy(def))
-- stage 8 (final)
crop_def.tiles = {"farming_grapes_8.png"}
crop_def.groups.growing = 0
crop_def.drop = {
def.tiles = {"farming_grapes_8.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:trellis"}, rarity = 1},
{items = {"farming:grapes 3"}, rarity = 1},
{items = {"farming:grapes 1"}, rarity = 2},
{items = {"farming:grapes 1"}, rarity = 3},
{items = {"farming:grapes 1"}, rarity = 3}
}
}
minetest.register_node("farming:grapes_8", table.copy(crop_def))
minetest.register_node("farming:grapes_8", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:grapes"] = {
trellis = "farming:trellis",
crop = "farming:grapes",
seed = "farming:grapes",
minlight = 13,
maxlight = 15,
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 8
}
-- wild grape vine (this is what you find on the map)
minetest.register_node("farming:grapebush", {
drawtype = "plantlike",
tiles = {"farming_grapebush.png"},
@ -253,13 +234,34 @@ minetest.register_node("farming:grapebush", {
items = {
{items = {"farming:grapes 1"}, rarity = 1},
{items = {"farming:grapes 1"}, rarity = 2},
{items = {"farming:grapes 1"}, rarity = 3},
{items = {"farming:grapes 1"}, rarity = 3}
}
},
selection_box = farming.select,
groups = {
snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory=1
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, compostability = 35
},
sounds = default.node_sound_leaves_defaults(),
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
})
-- mapgen
minetest.register_decoration({
deco_type = "simple",
place_on = {
"default:dirt_with_grass", "mcl_core:dirt_with_grass", "ethereal:prairie_dirt"
},
sidelen = 16,
noise_params = {
offset = 0,
scale = farming.grapes,
spread = {x = 100, y = 100, z = 100},
seed = 578,
octaves = 3,
persist = 0.6
},
y_min = 25, y_max = 50,
decoration = "farming:grapebush"
})

View File

@ -1,186 +1,48 @@
local S = farming.intllib
local S = minetest.get_translator("farming")
-- seed
-- hemp seeds
minetest.register_node("farming:seed_hemp", {
description = S("Hemp Seed"),
tiles = {"farming_hemp_seed.png"},
inventory_image = "farming_hemp_seed.png",
wield_image = "farming_hemp_seed.png",
drawtype = "signlike",
groups = {seed = 1, snappy = 3, attached_node = 1},
groups = {
handy = 1, compostability = 38, seed = 1, snappy = 3, attached_node = 1,
growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
paramtype = "light",
paramtype2 = "wallmounted",
walkable = false,
sunlight_propagates = true,
selection_box = farming.select,
next_plant = "farming:hemp_1",
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:hemp_1")
return farming.place_seed(itemstack, placer, pointed_thing, "farming:seed_hemp")
end,
on_timer = function(pos, elapsed)
minetest.set_node(pos, {name = "farming:hemp_1", param2 = 1})
end
})
-- harvested hemp
-- item
minetest.register_craftitem("farming:hemp_leaf", {
description = S("Hemp Leaf"),
inventory_image = "farming_hemp_leaf.png",
groups = {compostability = 35}
})
-- hemp oil
minetest.register_node("farming:hemp_oil", {
description = S("Bottle of Hemp Oil"),
drawtype = "plantlike",
tiles = {"farming_hemp_oil.png"},
inventory_image = "farming_hemp_oil.png",
wield_image = "farming_hemp_oil.png",
paramtype = "light",
is_ground_content = false,
walkable = false,
selection_box = {
type = "fixed",
fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25}
},
groups = {food_oil = 1, vessel = 1, dig_immediate = 3, attached_node = 1},
sounds = default.node_sound_glass_defaults(),
})
-- crop definition
minetest.register_craft( {
output = "farming:hemp_oil",
recipe = {
{"farming:hemp_leaf", "farming:hemp_leaf", "farming:hemp_leaf"},
{"farming:hemp_leaf", "farming:hemp_leaf", "farming:hemp_leaf"},
{"", "vessels:glass_bottle", ""}
}
})
minetest.register_craft( {
output = "farming:hemp_oil",
recipe = {
{"farming:seed_hemp", "farming:seed_hemp", "farming:seed_hemp"},
{"farming:seed_hemp", "farming:seed_hemp", "farming:seed_hemp"},
{"farming:seed_hemp", "vessels:glass_bottle", "farming:seed_hemp"}
}
})
minetest.register_craft({
type = "fuel",
recipe = "farming:hemp_oil",
burntime = 20,
replacements = {{ "farming:hemp_oil", "vessels:glass_bottle"}}
})
-- hemp fibre
minetest.register_craftitem("farming:hemp_fibre", {
description = S("Hemp Fibre"),
inventory_image = "farming_hemp_fibre.png",
})
minetest.register_craft( {
output = "farming:hemp_fibre 8",
recipe = {
{"farming:hemp_leaf", "farming:hemp_leaf", "farming:hemp_leaf"},
{"farming:hemp_leaf", "bucket:bucket_water", "farming:hemp_leaf"},
{"farming:hemp_leaf", "farming:hemp_leaf", "farming:hemp_leaf"}
},
replacements = {{ "bucket:bucket_water", "bucket:bucket_empty"}}
})
minetest.register_craft( {
output = "farming:hemp_fibre 8",
recipe = {
{"farming:hemp_leaf", "farming:hemp_leaf", "farming:hemp_leaf"},
{"farming:hemp_leaf", "bucket:bucket_river_water", "farming:hemp_leaf"},
{"farming:hemp_leaf", "farming:hemp_leaf", "farming:hemp_leaf"}
},
replacements = {{ "bucket:bucket_river_water", "bucket:bucket_empty"}}
})
-- hemp block
minetest.register_node("farming:hemp_block", {
description = S("Hemp Block"),
tiles = {"farming_hemp_block.png"},
paramtype = "light",
groups = {snappy = 1, oddly_breakable_by_hand = 1, flammable = 2}
})
minetest.register_craft( {
output = "farming:hemp_block",
recipe = {
{"farming:hemp_fibre", "farming:hemp_fibre", "farming:hemp_fibre"},
{"farming:hemp_fibre", "farming:hemp_fibre", "farming:hemp_fibre"},
{"farming:hemp_fibre", "farming:hemp_fibre", "farming:hemp_fibre"}
},
})
-- check and register stairs
if minetest.global_exists("stairs") then
if stairs.mod and stairs.mod == "redo" then
stairs.register_all("hemp_block", "farming:hemp_block",
{snappy = 1, flammable = 2},
{"farming_hemp_block.png"},
"Hemp Block",
default.node_sound_leaves_defaults())
else
stairs.register_stair_and_slab("hemp_block", "farming:hemp_block",
{snappy = 1, flammable = 2},
{"farming_hemp_block.png"},
"Hemp Block Stair",
"Hemp Block Slab",
default.node_sound_leaves_defaults())
end
end
-- paper
minetest.register_craft( {
output = "default:paper 3",
recipe = {
{"farming:hemp_fibre", "farming:hemp_fibre", "farming:hemp_fibre"},
}
})
-- string
minetest.register_craft( {
output = "farming:cotton 3",
recipe = {
{"farming:hemp_fibre"},
{"farming:hemp_fibre"},
{"farming:hemp_fibre"},
}
})
-- hemp rope
minetest.register_node("farming:hemp_rope", {
description = S("Hemp Rope"),
walkable = false,
climbable = true,
sunlight_propagates = true,
paramtype = "light",
tiles = {"farming_hemp_rope.png"},
wield_image = "farming_hemp_rope.png",
inventory_image = "farming_hemp_rope.png",
drawtype = "plantlike",
groups = {flammable = 2, choppy = 3, oddly_breakable_by_hand = 3},
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "fixed",
fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7},
},
})
-- string
minetest.register_craft( {
output = "farming:hemp_rope 6",
recipe = {
{"farming:hemp_fibre", "farming:hemp_fibre", "farming:hemp_fibre"},
{"farming:cotton", "farming:cotton", "farming:cotton"},
{"farming:hemp_fibre", "farming:hemp_fibre", "farming:hemp_fibre"},
}
})
-- hemp definition
local crop_def = {
local def = {
description = S("Hemp") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_hemp_1.png"},
paramtype = "light",
@ -188,73 +50,108 @@ local crop_def = {
walkable = false,
buildable_to = true,
drop = "",
waving = 1,
selection_box = farming.select,
groups = {
snappy = 3, flammable = 2, plant = 1, attached_node = 1,
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
sounds = default.node_sound_leaves_defaults()
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:hemp_1", table.copy(crop_def))
minetest.register_node("farming:hemp_1", table.copy(def))
-- stage 2
crop_def.tiles = {"farming_hemp_2.png"}
minetest.register_node("farming:hemp_2", table.copy(crop_def))
def.tiles = {"farming_hemp_2.png"}
minetest.register_node("farming:hemp_2", table.copy(def))
-- stage 3
crop_def.tiles = {"farming_hemp_3.png"}
minetest.register_node("farming:hemp_3", table.copy(crop_def))
def.tiles = {"farming_hemp_3.png"}
minetest.register_node("farming:hemp_3", table.copy(def))
-- stage 4
crop_def.tiles = {"farming_hemp_4.png"}
minetest.register_node("farming:hemp_4", table.copy(crop_def))
def.tiles = {"farming_hemp_4.png"}
minetest.register_node("farming:hemp_4", table.copy(def))
-- stage 5
crop_def.tiles = {"farming_hemp_5.png"}
minetest.register_node("farming:hemp_5", table.copy(crop_def))
def.tiles = {"farming_hemp_5.png"}
minetest.register_node("farming:hemp_5", table.copy(def))
-- stage 6
crop_def.tiles = {"farming_hemp_6.png"}
crop_def.drop = {
def.tiles = {"farming_hemp_6.png"}
def.drop = {
items = {
{items = {"farming:hemp_leaf"}, rarity = 2},
{items = {"farming:seed_hemp"}, rarity = 1},
{items = {"farming:seed_hemp"}, rarity = 1}
}
}
minetest.register_node("farming:hemp_6", table.copy(crop_def))
minetest.register_node("farming:hemp_6", table.copy(def))
-- stage 7
crop_def.tiles = {"farming_hemp_7.png"}
crop_def.drop = {
def.tiles = {"farming_hemp_7.png"}
def.drop = {
items = {
{items = {"farming:hemp_leaf"}, rarity = 1},
{items = {"farming:hemp_leaf"}, rarity = 3},
{items = {"farming:seed_hemp"}, rarity = 1},
{items = {"farming:seed_hemp"}, rarity = 3},
{items = {"farming:seed_hemp"}, rarity = 3}
}
}
minetest.register_node("farming:hemp_7", table.copy(crop_def))
minetest.register_node("farming:hemp_7", table.copy(def))
-- stage 8 (final)
crop_def.tiles = {"farming_hemp_8.png"}
crop_def.groups.growing = 0
crop_def.drop = {
def.tiles = {"farming_hemp_8.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:hemp_leaf 2"}, rarity = 1},
{items = {"farming:hemp_leaf"}, rarity = 2},
{items = {"farming:seed_hemp"}, rarity = 1},
{items = {"farming:seed_hemp"}, rarity = 2},
{items = {"farming:seed_hemp"}, rarity = 2}
}
}
minetest.register_node("farming:hemp_8", table.copy(crop_def))
minetest.register_node("farming:hemp_8", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:hemp"] = {
crop = "farming:hemp",
seed = "farming:seed_hemp",
minlight = 13,
maxlight = 15,
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 8
}
-- mapgen
minetest.register_decoration({
deco_type = "simple",
place_on = {
"default:dirt_with_grass", "default:dirt_with_rainforest_litter",
"mcl_core:dirt_with_grass", "ethereal:prairie_dirt"
},
sidelen = 16,
noise_params = {
offset = 0,
scale = farming.hemp,
spread = {x = 100, y = 100, z = 100},
seed = 420,
octaves = 3,
persist = 0.6
},
y_min = 3, y_max = 45,
decoration = "farming:hemp_7",
spawn_by = "group:tree", num_spawn_by = 1
})

100
crops/lettuce.lua Normal file
View File

@ -0,0 +1,100 @@
local S = minetest.get_translator("farming")
-- item/seed
minetest.register_craftitem("farming:lettuce", {
description = S("Lettuce"),
inventory_image = "farming_lettuce.png",
groups = {compostability = 48, seed = 2, food_lettuce = 1},
on_use = minetest.item_eat(2),
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:lettuce_1")
end
})
farming.add_eatable("farming:lettuce", 2)
-- crop definition
local def = {
description = S("Lettuce") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_lettuce_1.png"},
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
drop = "",
selection_box = farming.select,
groups = {
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:lettuce_1", table.copy(def))
-- stage 2
def.tiles = {"farming_lettuce_2.png"}
minetest.register_node("farming:lettuce_2", table.copy(def))
-- stage 3
def.tiles = {"farming_lettuce_3.png"}
minetest.register_node("farming:lettuce_3", table.copy(def))
-- stage 4
def.tiles = {"farming_lettuce_4.png"}
minetest.register_node("farming:lettuce_4", table.copy(def))
-- stage 5
def.tiles = {"farming_lettuce_5.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:lettuce 2"}, rarity = 1},
{items = {"farming:lettuce 1"}, rarity = 2}
}
}
minetest.register_node("farming:lettuce_5", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:lettuce"] = {
crop = "farming:lettuce",
seed = "farming:lettuce",
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 5
}
-- mapgen
minetest.register_decoration({
deco_type = "simple",
place_on = {
"default:dirt_with_grass", "mcl_core:dirt_with_grass", "ethereal:prairie_dirt"
},
sidelen = 16,
noise_params = {
offset = 0,
scale = farming.lettuce,
spread = {x = 100, y = 100, z = 100},
seed = 689,
octaves = 3,
persist = 0.6
},
y_min = 5, y_max = 35,
decoration = "farming:lettuce_5"
})

View File

@ -1,34 +1,25 @@
local S = farming.intllib
local S = minetest.get_translator("farming")
-- item/seed
-- melon
minetest.register_craftitem("farming:melon_slice", {
description = S("Melon Slice"),
inventory_image = "farming_melon_slice.png",
groups = {seed = 2, food_melon_slice = 1, flammable = 3},
groups = {compostability = 48, seed = 2, food_melon_slice = 1},
on_use = minetest.item_eat(2),
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:melon_1")
end,
on_use = minetest.item_eat(2),
end
})
minetest.register_craft({
output = "farming:melon_8",
recipe = {
{"farming:melon_slice", "farming:melon_slice"},
{"farming:melon_slice", "farming:melon_slice"},
}
})
farming.add_eatable("farming:melon_slice", 2)
minetest.register_craft({
type = "shapeless",
output = "farming:melon_slice 4",
recipe = {"farming:melon_8", "farming:cutting_board"},
replacements = {{"farming:cutting_board", "farming:cutting_board"}},
})
-- crop definition
-- melon definition
local crop_def = {
local def = {
description = S("Melon") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_melon_1.png"},
paramtype = "light",
@ -38,58 +29,98 @@ local crop_def = {
drop = "",
selection_box = farming.select,
groups = {
snappy = 3, flammable = 2, plant = 1, attached_node = 1,
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
sounds = default.node_sound_leaves_defaults()
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:melon_1", table.copy(crop_def))
minetest.register_node("farming:melon_1", table.copy(def))
-- stage 2
crop_def.tiles = {"farming_melon_2.png"}
minetest.register_node("farming:melon_2", table.copy(crop_def))
def.tiles = {"farming_melon_2.png"}
minetest.register_node("farming:melon_2", table.copy(def))
-- stage 3
crop_def.tiles = {"farming_melon_3.png"}
minetest.register_node("farming:melon_3", table.copy(crop_def))
def.tiles = {"farming_melon_3.png"}
minetest.register_node("farming:melon_3", table.copy(def))
-- stage 4
crop_def.tiles = {"farming_melon_4.png"}
minetest.register_node("farming:melon_4", table.copy(crop_def))
def.tiles = {"farming_melon_4.png"}
minetest.register_node("farming:melon_4", table.copy(def))
-- stage 5
crop_def.tiles = {"farming_melon_5.png"}
minetest.register_node("farming:melon_5", table.copy(crop_def))
def.tiles = {"farming_melon_5.png"}
minetest.register_node("farming:melon_5", table.copy(def))
-- stage 6
crop_def.tiles = {"farming_melon_6.png"}
minetest.register_node("farming:melon_6", table.copy(crop_def))
def.tiles = {"farming_melon_6.png"}
minetest.register_node("farming:melon_6", table.copy(def))
-- stage 7
crop_def.tiles = {"farming_melon_7.png"}
minetest.register_node("farming:melon_7", table.copy(crop_def))
def.tiles = {"farming_melon_7.png"}
minetest.register_node("farming:melon_7", table.copy(def))
-- stage 8 (final)
crop_def.drawtype = "nodebox"
crop_def.description = S("Melon")
crop_def.tiles = {"farming_melon_top.png", "farming_melon_top.png", "farming_melon_side.png"}
crop_def.selection_box = {-.5, -.5, -.5, .5, .5, .5}
crop_def.walkable = true
crop_def.groups = {
food_melon = 1, snappy = 2, oddly_breakable_by_hand = 1,
flammable = 2, plant = 1
}
--crop_def.drop = "farming:melon_slice 9"
crop_def.drop = "farming:melon_8"
minetest.register_node("farming:melon_8", table.copy(crop_def))
minetest.register_node("farming:melon_8", {
description = S("Melon"),
tiles = {
"farming_melon_top.png",
"farming_melon_bottom.png",
"farming_melon_side.png"
},
groups = {
food_melon = 1, handy = 1, snappy = 3, choppy = 3, oddly_breakable_by_hand = 2,
flammable = 2, plant = 1, compostability = 65
},
is_ground_content = false,
drop = "farming:melon_8",
sounds = farming.node_sound_wood_defaults(),
paramtype2 = "facedir",
on_place = minetest.rotate_node,
_mcl_hardness = 0.8,
_mcl_blast_resistance = 1
})
-- add to registered_plants
farming.registered_plants["farming:melon"] = {
crop = "farming:melon",
seed = "farming:melon_slice",
minlight = 13,
maxlight = 15,
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 8
}
-- mapgen
minetest.register_decoration({
deco_type = "simple",
place_on = {
"default:dirt_with_grass", "default:dirt_with_dry_grass",
"default:dirt_with_rainforest_litter", "mcl_core:dirt_with_grass"
},
sidelen = 16,
noise_params = {
offset = 0,
scale = farming.melon,
spread = {x = 100, y = 100, z = 100},
seed = 790,
octaves = 3,
persist = 0.6
},
y_min = 1, y_max = 3,
decoration = "farming:melon_8",
spawn_by = {"group:water", "group:sand"}, num_spawn_by = 1
})

View File

@ -1,91 +1,122 @@
local S = farming.intllib
local S = minetest.get_translator("farming")
-- mint seed
minetest.register_craftitem("farming:seed_mint", {
-- seed
minetest.register_node("farming:seed_mint", {
description = S("Mint Seeds"),
tiles = {"farming_mint_seeds.png"},
inventory_image = "farming_mint_seeds.png",
groups = {seed = 2, flammable = 2},
wield_image = "farming_mint_seeds.png",
drawtype = "signlike",
groups = {
compostability = 48, seed = 1, snappy = 3, attached_node = 1, growing = 1,
handy = 1, flammable = 2
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
paramtype = "light",
paramtype2 = "wallmounted",
walkable = false,
sunlight_propagates = true,
selection_box = farming.select,
next_plant = "farming:mint_1",
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(
itemstack, placer, pointed_thing, "farming:mint_1")
return farming.place_seed(itemstack, placer, pointed_thing, "farming:seed_mint")
end,
on_timer = function(pos, elapsed)
minetest.set_node(pos, {name = "farming:mint_1", param2 = 1})
end
})
-- mint leaf
-- item
minetest.register_craftitem("farming:mint_leaf", {
description = S("Mint Leaf"),
inventory_image = "farming_mint_leaf.png",
groups = {food_mint = 1, flammable = 4},
groups = {food_mint = 1, flammable = 4, compostability = 48}
})
-- mint tea
minetest.register_craftitem("farming:mint_tea", {
description = S("Mint Tea"),
inventory_image = "farming_mint_tea.png",
on_use = minetest.item_eat(2, "vessels:drinking_glass"),
groups = {flammable = 4},
})
-- crop definition
minetest.register_craft({
output = "farming:mint_tea",
type = "shapeless",
recipe = {
"vessels:drinking_glass", "group:food_mint",
"group:food_mint", "group:food_mint",
"farming:juicer", "bucket:bucket_water"
},
replacements = {
{"group:food_juicer", "farming:juicer"},
{"bucket:bucket_water", "bucket:bucket_empty"},
},
})
-- mint definition
local crop_def = {
local def = {
description = S("Mint") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_mint_1.png"},
paramtype = "light",
walkable = false,
buildable_to = true,
drop = "",
waving = 1,
selection_box = farming.select,
groups = {
snappy = 3, flammable = 2, plant = 1, attached_node = 1,
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
sounds = default.node_sound_leaves_defaults()
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:mint_1", table.copy(crop_def))
minetest.register_node("farming:mint_1", table.copy(def))
-- stage 2
crop_def.tiles = {"farming_mint_2.png"}
minetest.register_node("farming:mint_2", table.copy(crop_def))
def.tiles = {"farming_mint_2.png"}
minetest.register_node("farming:mint_2", table.copy(def))
-- stage 3
crop_def.tiles = {"farming_mint_3.png"}
minetest.register_node("farming:mint_3", table.copy(crop_def))
def.tiles = {"farming_mint_3.png"}
minetest.register_node("farming:mint_3", table.copy(def))
-- stage 4 (final)
crop_def.tiles = {"farming_mint_4.png"}
crop_def.groups.growing = 0
crop_def.drop = {
def.tiles = {"farming_mint_4.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:mint_leaf 2"}, rarity = 1},
{items = {"farming:mint_leaf 2"}, rarity = 2},
{items = {"farming:seed_mint 1"}, rarity = 1},
{items = {"farming:seed_mint 2"}, rarity = 2},
{items = {"farming:seed_mint 2"}, rarity = 2}
}
}
minetest.register_node("farming:mint_4", table.copy(crop_def))
minetest.register_node("farming:mint_4", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:mint"] = {
crop = "farming:mint",
seed = "farming:seed_mint",
minlight = 13,
maxlight = 15,
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 4
}
-- mapgen
minetest.register_decoration({
deco_type = "simple",
place_on = {
"default:dirt_with_grass", "default:dirt_with_coniferous_litter",
"mcl_core:dirt_with_grass", "ethereal:bamboo_dirt"
},
sidelen = 16,
noise_params = {
offset = 0,
scale = farming.mint,
spread = {x = 100, y = 100, z = 100},
seed = 801,
octaves = 3,
persist = 0.6
},
y_min = 1, y_max = 75,
decoration = "farming:mint_4",
spawn_by = {"group:water", "group:sand"}, num_spawn_by = 1
})

View File

@ -5,40 +5,27 @@
https://forum.minetest.net/viewtopic.php?f=9&t=19488
]]
local S = farming.intllib
local S = minetest.get_translator("farming")
-- item/seed
-- onion
minetest.register_craftitem("farming:onion", {
description = S("Onion"),
inventory_image = "crops_onion.png",
groups = {seed = 2, food_onion = 1, flammable = 3},
groups = {compostability = 48, seed = 2, food_onion = 1},
on_use = minetest.item_eat(1),
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:onion_1")
end,
on_use = minetest.item_eat(1),
end
})
-- onion soup
minetest.register_craftitem("farming:onion_soup", {
description = S("Onion Soup"),
inventory_image = "farming_onion_soup.png",
groups = {flammable = 2},
on_use = minetest.item_eat(6, "farming:bowl"),
})
minetest.register_craft({
type = "shapeless",
output = "farming:onion_soup",
recipe = {
"group:food_onion", "group:food_onion", "group:food_pot",
"group:food_onion", "group:food_onion",
"group:food_onion", "group:food_onion", "group:food_bowl"
},
replacements = {{"farming:pot", "farming:pot"}}
})
farming.add_eatable("farming:onion", 1)
-- crop definition
local crop_def = {
local def = {
description = S("Onion") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"crops_onion_plant_1.png"},
paramtype = "light",
@ -49,48 +36,78 @@ local crop_def = {
walkable = false,
buildable_to = true,
drop = "",
waving = 1,
selection_box = farming.select,
groups = {
snappy = 3, flammable = 3, plant = 1, attached_node = 1,
handy = 1, snappy = 3, flammable = 3, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
sounds = default.node_sound_leaves_defaults()
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:onion_1", table.copy(crop_def))
minetest.register_node("farming:onion_1", table.copy(def))
-- stage 2
crop_def.tiles = {"crops_onion_plant_2.png"}
minetest.register_node("farming:onion_2", table.copy(crop_def))
def.tiles = {"crops_onion_plant_2.png"}
minetest.register_node("farming:onion_2", table.copy(def))
-- stage 3
crop_def.tiles = {"crops_onion_plant_3.png"}
minetest.register_node("farming:onion_3", table.copy(crop_def))
def.tiles = {"crops_onion_plant_3.png"}
minetest.register_node("farming:onion_3", table.copy(def))
-- stage 4
crop_def.tiles = {"crops_onion_plant_4.png"}
minetest.register_node("farming:onion_4", table.copy(crop_def))
def.tiles = {"crops_onion_plant_4.png"}
minetest.register_node("farming:onion_4", table.copy(def))
-- stage 5
crop_def.tiles = {"crops_onion_plant_5.png"}
crop_def.groups.growing = 0
crop_def.drop = {
def.tiles = {"crops_onion_plant_5.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
max_items = 5, items = {
{items = {"farming:onion"}, rarity = 1},
{items = {"farming:onion"}, rarity = 1},
{items = {"farming:onion"}, rarity = 2},
{items = {"farming:onion"}, rarity = 2},
{items = {"farming:onion"}, rarity = 5},
{items = {"farming:onion"}, rarity = 5}
}
}
minetest.register_node("farming:onion_5", table.copy(crop_def))
minetest.register_node("farming:onion_5", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:onion"] = {
crop = "farming:onion",
seed = "farming:onion",
minlight = 13,
maxlight = 15,
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 5
}
-- mapgen
minetest.register_decoration({
deco_type = "simple",
place_on = {
"default:dirt_with_grass", "mcl_core:dirt_with_grass", "ethereal:prairie_dirt"
},
sidelen = 16,
noise_params = {
offset = 0,
scale = farming.onion,
spread = {x = 100, y = 100, z = 100},
seed = 912,
octaves = 3,
persist = 0.6
},
y_min = 5, y_max = 28,
decoration = "farming:onion_5"
})

93
crops/parsley.lua Normal file
View File

@ -0,0 +1,93 @@
local S = minetest.get_translator("farming")
-- item/seed
minetest.register_craftitem("farming:parsley", {
description = S("Parsley"),
inventory_image = "farming_parsley.png",
groups = {compostability = 48, seed = 2, food_parsley = 1},
on_use = minetest.item_eat(1),
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:parsley_1")
end
})
farming.add_eatable("farming:parsley", 1)
-- crop definition
local def = {
description = S("Parsley") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_parsley_1.png"},
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
drop = "",
waving = 1,
selection_box = farming.select,
groups = {
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:parsley_1", table.copy(def))
-- stage 2
def.tiles = {"farming_parsley_2.png"}
minetest.register_node("farming:parsley_2", table.copy(def))
-- stage 3 (final)
def.tiles = {"farming_parsley_3.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:parsley 2"}, rarity = 1},
{items = {"farming:parsley"}, rarity = 2},
{items = {"farming:parsley"}, rarity = 3}
}
}
minetest.register_node("farming:parsley_3", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:parsley"] = {
crop = "farming:parsley",
seed = "farming:parsley",
minlight = 13,
maxlight = 15,
steps = 3
}
-- mapgen
minetest.register_decoration({
deco_type = "simple",
place_on = {
"default:dirt_with_grass", "mcl_core:dirt_with_grass", "ethereal:prairie_dirt",
"ethereal:grove_dirt"
},
sidelen = 16,
noise_params = {
offset = 0,
scale = farming.parsley,
spread = {x = 100, y = 100, z = 100},
seed = 23,
octaves = 3,
persist = 0.6
},
y_min = 10, y_max = 40,
decoration = "farming:parsley_3"
})

View File

@ -1,46 +1,31 @@
local S = farming.intllib
-- Textures for peas and their crop were done by Andrey01
-- Textures for Pea crop and Peas were done by Andrey01
local S = minetest.get_translator("farming")
-- item/seed
-- pea pod
minetest.register_craftitem("farming:pea_pod", {
description = S("Pea Pod"),
inventory_image = "farming_pea_pod.png",
groups = {seed = 2, food_pea_pod = 1, flammable = 2},
groups = {compostability = 48, seed = 2, food_peas = 1, food_pea_pod = 1},
on_use = minetest.item_eat(1),
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:pea_1")
end
})
minetest.register_craftitem("farming:peas", {
description = S("Peas"),
inventory_image = "farming_pea_peas.png",
groups = {food_peas = 1, flammable = 2},
on_use = minetest.item_eat(1)
})
farming.add_eatable("farming:pea_pod", 1)
minetest.register_craft({
type = "shapeless",
output = "farming:peas",
recipe = {"farming:pea_pod"}
})
-- replacement for separate peas item that was removed
-- pea soup
minetest.register_craftitem("farming:pea_soup", {
description = S("Pea Soup"),
inventory_image = "farming_pea_soup.png",
groups = {flammable = 2},
on_use = minetest.item_eat(4, "farming:bowl"),
})
minetest.register_alias("farming:peas", "farming:pea_pod")
minetest.register_craft({
type = "shapeless",
output = "farming:pea_soup",
recipe = {"group:food_peas", "group:food_peas", "group:food_bowl"}
})
-- crop definition
local crop_def = {
local def = {
description = S("Pea") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_pea_1.png"},
paramtype = "light",
@ -53,45 +38,74 @@ local crop_def = {
drop = "",
selection_box = farming.select,
groups = {
snappy = 3, flammable = 2, plant = 1, attached_node = 1,
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
sounds = default.node_sound_leaves_defaults()
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:pea_1", table.copy(crop_def))
minetest.register_node("farming:pea_1", table.copy(def))
-- stage 2
crop_def.tiles = {"farming_pea_2.png"}
minetest.register_node("farming:pea_2", table.copy(crop_def))
def.tiles = {"farming_pea_2.png"}
minetest.register_node("farming:pea_2", table.copy(def))
-- stage 3
crop_def.tiles = {"farming_pea_3.png"}
minetest.register_node("farming:pea_3", table.copy(crop_def))
def.tiles = {"farming_pea_3.png"}
minetest.register_node("farming:pea_3", table.copy(def))
-- stage 4
crop_def.tiles = {"farming_pea_4.png"}
minetest.register_node("farming:pea_4", table.copy(crop_def))
-- stage 5
crop_def.tiles = {"farming_pea_5.png"}
crop_def.groups.growing = 0
crop_def.drop = {
def.tiles = {"farming_pea_4.png"}
minetest.register_node("farming:pea_4", table.copy(def))
-- stage 5 (final)
def.tiles = {"farming_pea_5.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
max_items = 5, items = {
{items = {"farming:pea_pod"}, rarity = 1},
{items = {"farming:pea_pod"}, rarity = 2},
{items = {"farming:pea_pod"}, rarity = 3},
{items = {"farming:pea_pod"}, rarity = 5},
{items = {"farming:pea_pod"}, rarity = 5}
}
}
minetest.register_node("farming:pea_5", table.copy(crop_def))
minetest.register_node("farming:pea_5", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:pea_pod"] = {
crop = "farming:pea",
seed = "farming:pea_pod",
minlight = 13,
maxlight = 15,
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 5
}
-- mapgen
minetest.register_decoration({
deco_type = "simple",
place_on = {
"default:dirt_with_grass", "mcl_core:dirt_with_grass", "ethereal:prairie_dirt"
},
sidelen = 16,
noise_params = {
offset = 0,
scale = farming.peas,
spread = {x = 100, y = 100, z = 100},
seed = 132,
octaves = 3,
persist = 0.6
},
y_min = 25, y_max = 55,
decoration = "farming:pea_5"
})

View File

@ -5,61 +5,64 @@
https://forum.minetest.net/viewtopic.php?f=9&t=19488
]]
local S = farming.intllib
local S = minetest.get_translator("farming")
-- seed
-- peppercorn (seed)
minetest.register_craftitem("farming:peppercorn", {
description = S("Peppercorn"),
inventory_image = "crops_peppercorn.png",
groups = {seed = 1, food_peppercorn = 1, flammable = 3},
groups = {compostability = 48, seed = 1, food_peppercorn = 1, flammable = 3},
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:pepper_1")
end,
end
})
-- green pepper
minetest.register_craftitem("farming:pepper", {
description = S("Pepper"),
description = S("Green Pepper"),
inventory_image = "crops_pepper.png",
on_use = minetest.item_eat(2),
groups = {food_pepper = 1, flammable = 3},
groups = {food_pepper = 1, compostability = 55}
})
farming.add_eatable("farming:pepper", 2)
-- yellow pepper
minetest.register_craftitem("farming:pepper_yellow", {
description = S("Yellow Pepper"),
inventory_image = "crops_pepper_yellow.png",
on_use = minetest.item_eat(3),
groups = {food_pepper = 1, compostability = 55}
})
farming.add_eatable("farming:pepper_yellow", 3)
-- red pepper
minetest.register_craftitem("farming:pepper_red", {
description = S("Red Pepper"),
inventory_image = "crops_pepper_red.png",
on_use = minetest.item_eat(4),
groups = {food_pepper = 1, compostability = 55}
})
farming.add_eatable("farming:pepper_red", 4)
-- pepper to peppercorn recipe
minetest.register_craft({
type = "shapeless",
output = "farming:peppercorn",
recipe = {"farming:pepper"}
})
-- ground pepper
minetest.register_node("farming:pepper_ground", {
description = S("Ground Pepper"),
inventory_image = "crops_pepper_ground.png",
wield_image = "crops_pepper_ground.png",
drawtype = "plantlike",
visual_scale = 0.8,
paramtype = "light",
tiles = {"crops_pepper_ground.png"},
groups = {
vessel = 1, food_pepper_ground = 1,
dig_immediate = 3, attached_node = 1
},
sounds = default.node_sound_defaults(),
selection_box = {
type = "fixed",
fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25}
},
})
minetest.register_craft( {
output = "farming:pepper_ground",
type = "shapeless",
recipe = {"group:food_peppercorn", "vessels:glass_bottle", "farming:mortar_pestle"},
replacements = {{"group:food_mortar_pestle", "farming:mortar_pestle"}},
recipe = {{"group:food_pepper"}}
})
-- crop definition
local crop_def = {
local def = {
description = S("Pepper") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"crops_pepper_plant_1.png"},
paramtype = "light",
@ -72,44 +75,99 @@ local crop_def = {
drop = "",
selection_box = farming.select,
groups = {
snappy = 3, flammable = 3, plant = 1, attached_node = 1,
handy = 1, snappy = 3, flammable = 3, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
sounds = default.node_sound_leaves_defaults()
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:pepper_1", table.copy(crop_def))
minetest.register_node("farming:pepper_1", table.copy(def))
-- stage 2
crop_def.tiles = {"crops_pepper_plant_2.png"}
minetest.register_node("farming:pepper_2", table.copy(crop_def))
def.tiles = {"crops_pepper_plant_2.png"}
minetest.register_node("farming:pepper_2", table.copy(def))
-- stage 3
crop_def.tiles = {"crops_pepper_plant_3.png"}
minetest.register_node("farming:pepper_3", table.copy(crop_def))
def.tiles = {"crops_pepper_plant_3.png"}
minetest.register_node("farming:pepper_3", table.copy(def))
-- stage 4
crop_def.tiles = {"crops_pepper_plant_4.png"}
minetest.register_node("farming:pepper_4", table.copy(crop_def))
-- stage 5
crop_def.tiles = {"crops_pepper_plant_5.png"}
crop_def.groups.growing = 0
crop_def.drop = {
def.tiles = {"crops_pepper_plant_4.png"}
minetest.register_node("farming:pepper_4", table.copy(def))
-- stage 5 (green pepper)
def.tiles = {"crops_pepper_plant_5.png"}
def.selection_box = farming.select_final
def.drop = {
max_items = 2, items = {
{items = {"farming:pepper 2"}, rarity = 1},
{items = {"farming:pepper"}, rarity = 2},
{items = {"farming:pepper"}, rarity = 3},
{items = {"farming:pepper"}, rarity = 3}
}
}
minetest.register_node("farming:pepper_5", table.copy(crop_def))
minetest.register_node("farming:pepper_5", table.copy(def))
-- stage 6 (yellow pepper)
def.tiles = {"crops_pepper_plant_6.png"}
def.drop = {
max_items = 2, items = {
{items = {"farming:pepper_yellow 2"}, rarity = 1},
{items = {"farming:pepper_yellow"}, rarity = 2},
{items = {"farming:pepper_yellow"}, rarity = 3}
}
}
minetest.register_node("farming:pepper_6", table.copy(def))
-- stage 7 (red pepper - final)
def.tiles = {"crops_pepper_plant_7.png"}
def.groups.growing = nil
def.drop = {
max_items = 2, items = {
{items = {"farming:pepper_red 2"}, rarity = 1},
{items = {"farming:pepper_red"}, rarity = 2},
{items = {"farming:pepper_red"}, rarity = 3}
}
}
minetest.register_node("farming:pepper_7", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:pepper"] = {
crop = "farming:pepper",
seed = "farming:peppercorn",
minlight = 13,
maxlight = 15,
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 5
}
-- mapgen
minetest.register_decoration({
deco_type = "simple",
place_on = {
"default:dirt_with_grass", "default:dirt_with_rainforest_litter",
"mcl_core:dirt_with_grass", "ethereal:prairie_dirt"
},
sidelen = 16,
noise_params = {
offset = 0,
scale = farming.pepper,
spread = {x = 100, y = 100, z = 100},
seed = 243,
octaves = 3,
persist = 0.6
},
y_min = 5, y_max = 35,
decoration = {"farming:pepper_5", "farming:pepper_6", "farming:pepper_7"},
spawn_by = "group:tree", num_spawn_by = 1
})

View File

@ -1,17 +1,20 @@
local S = farming.intllib
local S = minetest.get_translator("farming")
-- seed
-- pineapple top
minetest.register_craftitem("farming:pineapple_top", {
description = S("Pineapple Top"),
inventory_image = "farming_pineapple_top.png",
groups = {seed = 2, flammable = 2},
groups = {compostability = 48, seed = 2, flammable = 2},
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:pineapple_1")
end,
end
})
-- pineapple
-- item
minetest.register_node("farming:pineapple", {
description = S("Pineapple"),
drawtype = "plantlike",
@ -22,60 +25,20 @@ minetest.register_node("farming:pineapple", {
sunlight_propagates = true,
walkable = false,
selection_box = {
type = "fixed",
fixed = {-0.27, -0.37, -0.27, 0.27, 0.44, 0.27}
type = "fixed", fixed = {-0.27, -0.37, -0.27, 0.27, 0.44, 0.27}
},
groups = {food_pineapple = 1, fleshy = 3, dig_immediate = 3, flammable = 2},
})
-- pineapple
minetest.register_craftitem("farming:pineapple_ring", {
description = S("Pineapple Ring"),
inventory_image = "farming_pineapple_ring.png",
groups = {food_pineapple_ring = 1, flammable = 2},
on_use = minetest.item_eat(1),
})
minetest.register_craft( {
output = "farming:pineapple_ring 5",
type = "shapeless",
recipe = {"group:food_pineapple"},
replacements = {{"farming:pineapple", "farming:pineapple_top"}}
})
-- pineapple juice
minetest.register_craftitem("farming:pineapple_juice", {
description = S("Pineapple Juice"),
inventory_image = "farming_pineapple_juice.png",
on_use = minetest.item_eat(4, "vessels:drinking_glass"),
groups = {vessel = 1},
})
minetest.register_craft({
output = "farming:pineapple_juice",
type = "shapeless",
recipe = {"vessels:drinking_glass", "group:food_pineapple_ring",
"group:food_pineapple_ring", "group:food_pineapple_ring",
"farming:juicer"},
replacements = {
{"group:food_juicer", "farming:juicer"},
},
})
minetest.register_craft({
output = "farming:pineapple_juice 2",
type = "shapeless",
recipe = {
"vessels:drinking_glass", "vessels:drinking_glass",
"group:food_pineapple", "farming:juicer"
},
replacements = {
{"group:food_juicer", "farming:juicer"},
groups = {
food_pineapple = 1, fleshy = 3, dig_immediate = 3, flammable = 2,
compostability = 65
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false
})
-- crop definition
local crop_def = {
local def = {
description = S("Pineapple") .. S(" Crop"),
drawtype = "plantlike",
visual_scale = 1.5,
tiles = {"farming_pineapple_1.png"},
@ -84,57 +47,97 @@ local crop_def = {
walkable = false,
buildable_to = true,
drop = "",
waving = 1,
selection_box = farming.select,
groups = {
snappy = 3, flammable = 2, plant = 1, attached_node = 1,
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
sounds = default.node_sound_leaves_defaults()
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:pineapple_1", table.copy(crop_def))
minetest.register_node("farming:pineapple_1", table.copy(def))
-- stage 2
crop_def.tiles = {"farming_pineapple_2.png"}
minetest.register_node("farming:pineapple_2", table.copy(crop_def))
def.tiles = {"farming_pineapple_2.png"}
minetest.register_node("farming:pineapple_2", table.copy(def))
-- stage 3
crop_def.tiles = {"farming_pineapple_3.png"}
minetest.register_node("farming:pineapple_3", table.copy(crop_def))
def.tiles = {"farming_pineapple_3.png"}
minetest.register_node("farming:pineapple_3", table.copy(def))
-- stage 4
crop_def.tiles = {"farming_pineapple_4.png"}
minetest.register_node("farming:pineapple_4", table.copy(crop_def))
def.tiles = {"farming_pineapple_4.png"}
minetest.register_node("farming:pineapple_4", table.copy(def))
-- stage 5
crop_def.tiles = {"farming_pineapple_5.png"}
minetest.register_node("farming:pineapple_5", table.copy(crop_def))
def.tiles = {"farming_pineapple_5.png"}
minetest.register_node("farming:pineapple_5", table.copy(def))
-- stage 6
crop_def.tiles = {"farming_pineapple_6.png"}
minetest.register_node("farming:pineapple_6", table.copy(crop_def))
def.tiles = {"farming_pineapple_6.png"}
minetest.register_node("farming:pineapple_6", table.copy(def))
-- stage 7
crop_def.tiles = {"farming_pineapple_7.png"}
minetest.register_node("farming:pineapple_7", table.copy(crop_def))
def.tiles = {"farming_pineapple_7.png"}
minetest.register_node("farming:pineapple_7", table.copy(def))
-- stage 8 (final)
crop_def.tiles = {"farming_pineapple_8.png"}
crop_def.groups.growing = 0
crop_def.drop = {
def.tiles = {"farming_pineapple_8.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:pineapple"}, rarity = 1},
{items = {"farming:pineapple"}, rarity = 15},
{items = {"farming:pineapple"}, rarity = 2}
}
}
minetest.register_node("farming:pineapple_8", table.copy(crop_def))
minetest.register_node("farming:pineapple_8", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:pineapple"] = {
crop = "farming:pineapple",
seed = "farming:pineapple_top",
minlight = 13,
maxlight = 15,
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 8
}
-- mapgen
local spawn_on = {
"default:dirt_with_dry_grass", "default:dry_dirt_with_dry_grass",
"mcl_core:dirt_with_grass"
}
if farming.mapgen == "v6" then
spawn_on = {"default:dirt_with_grass"}
end
minetest.register_decoration({
deco_type = "simple",
place_on = spawn_on,
sidelen = 16,
noise_params = {
offset = 0,
scale = farming.pineapple,
spread = {x = 100, y = 100, z = 100},
seed = 354,
octaves = 3,
persist = 0.6
},
y_min = 11, y_max = 30,
decoration = "farming:pineapple_8"
})

View File

@ -4,60 +4,39 @@
https://forum.minetest.net/viewtopic.php?id=3948
]]
local S = farming.intllib
local S = minetest.get_translator("farming")
-- item/seed
-- potato
minetest.register_craftitem("farming:potato", {
description = S("Potato"),
inventory_image = "farming_potato.png",
groups = {seed = 2, food_potato = 1, flammable = 2},
groups = {compostability = 48, seed = 2, food_potato = 1},
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:potato_1")
end,
-- on_use = minetest.item_eat(1),
-- 1 in 3 chance of being poisoned
on_use = function(itemstack, user, pointed_thing)
if user then
if math.random(1, 3) == 1 then
if math.random(3) == 1 then
return minetest.do_item_eat(-1, nil, itemstack, user, pointed_thing)
else
return minetest.do_item_eat(1, nil, itemstack, user, pointed_thing)
end
end
end,
end
})
-- baked potato
minetest.register_craftitem("farming:baked_potato", {
description = S("Baked Potato"),
inventory_image = "farming_baked_potato.png",
on_use = minetest.item_eat(6),
})
farming.add_eatable("farming:potato", 1)
minetest.register_craft({
type = "cooking",
cooktime = 10,
output = "farming:baked_potato",
recipe = "group:food_potato"
})
-- crop definition
-- Potato and cucumber Salad
minetest.register_craftitem("farming:potato_salad", {
description = S("Cucumber and Potato Salad"),
inventory_image = "farming_potato_salad.png",
on_use = minetest.item_eat(10, "farming:bowl"),
})
minetest.register_craft({
output = "farming:potato_salad",
recipe = {
{"group:food_cucumber"},
{"farming:baked_potato"},
{"group:food_bowl"},
}
})
-- potato definition
local crop_def = {
local def = {
description = S("Potato") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_potato_1.png"},
paramtype = "light",
@ -68,45 +47,74 @@ local crop_def = {
drop = "",
selection_box = farming.select,
groups = {
snappy = 3, flammable = 2, plant = 1, attached_node = 1,
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
sounds = default.node_sound_leaves_defaults()
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:potato_1", table.copy(crop_def))
minetest.register_node("farming:potato_1", table.copy(def))
-- stage 2
crop_def.tiles = {"farming_potato_2.png"}
minetest.register_node("farming:potato_2", table.copy(crop_def))
def.tiles = {"farming_potato_2.png"}
minetest.register_node("farming:potato_2", table.copy(def))
-- stage 3
crop_def.tiles = {"farming_potato_3.png"}
crop_def.drop = {
def.tiles = {"farming_potato_3.png"}
def.drop = {
items = {
{items = {"farming:potato"}, rarity = 1},
{items = {"farming:potato"}, rarity = 3},
{items = {"farming:potato"}, rarity = 3}
}
}
minetest.register_node("farming:potato_3", table.copy(crop_def))
minetest.register_node("farming:potato_3", table.copy(def))
-- stage 4
crop_def.tiles = {"farming_potato_4.png"}
crop_def.groups.growing = 0
crop_def.drop = {
-- stage 4 (final)
def.tiles = {"farming_potato_4.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:potato 2"}, rarity = 1},
{items = {"farming:potato 3"}, rarity = 2},
{items = {"farming:potato 3"}, rarity = 2}
}
}
minetest.register_node("farming:potato_4", table.copy(crop_def))
minetest.register_node("farming:potato_4", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:potato"] = {
crop = "farming:potato",
seed = "farming:potato",
minlight = 13,
maxlight = 15,
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 4
}
-- mapgen
minetest.register_decoration({
deco_type = "simple",
place_on = {
"default:dirt_with_grass", "default:dirt_with_rainforest_litter",
"mcl_core:dirt_with_grass", "ethereal:prairie_dirt"
},
sidelen = 16,
noise_params = {
offset = 0,
scale = farming.potato,
spread = {x = 100, y = 100, z = 100},
seed = 465,
octaves = 3,
persist = 0.6
},
y_min = 5, y_max = 40,
decoration = "farming:potato_3"
})

View File

@ -1,146 +1,25 @@
--[[
Big thanks to PainterlyPack.net for allowing me to use these textures
]]
local S = minetest.get_translator("farming")
local S = farming.intllib
-- seed
-- pumpkin slice
minetest.register_craftitem("farming:pumpkin_slice", {
description = S("Pumpkin Slice"),
inventory_image = "farming_pumpkin_slice.png",
groups = {seed = 2, food_pumpkin_slice = 1, flammable = 2},
groups = {compostability = 48, seed = 2, food_pumpkin_slice = 1},
on_use = minetest.item_eat(2),
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:pumpkin_1")
end,
on_use = minetest.item_eat(2),
end
})
minetest.register_craft({
output = "farming:pumpkin",
recipe = {
{"farming:pumpkin_slice", "farming:pumpkin_slice"},
{"farming:pumpkin_slice", "farming:pumpkin_slice"},
}
})
farming.add_eatable("farming:pumpkin_slice", 2)
minetest.register_craft({
type = "shapeless",
output = "farming:pumpkin_slice 4",
recipe = {"farming:pumpkin", "farming:cutting_board"},
replacements = {{"farming:cutting_board", "farming:cutting_board"}},
})
-- crop definition
-- jack 'o lantern
minetest.register_node("farming:jackolantern", {
description = S("Jack 'O Lantern (punch to turn on and off)"),
tiles = {
"farming_pumpkin_top.png",
"farming_pumpkin_top.png",
"farming_pumpkin_side.png",
"farming_pumpkin_side.png",
"farming_pumpkin_side.png",
"farming_pumpkin_face_off.png"
},
paramtype2 = "facedir",
groups = {choppy = 1, oddly_breakable_by_hand = 1, flammable = 2},
sounds = default.node_sound_wood_defaults(),
on_punch = function(pos, node, puncher)
local name = puncher:get_player_name() or ""
if minetest.is_protected(pos, name) then return end
node.name = "farming:jackolantern_on"
minetest.swap_node(pos, node)
end,
})
minetest.register_node("farming:jackolantern_on", {
tiles = {
"farming_pumpkin_top.png",
"farming_pumpkin_top.png",
"farming_pumpkin_side.png",
"farming_pumpkin_side.png",
"farming_pumpkin_side.png",
"farming_pumpkin_face_on.png"
},
light_source = default.LIGHT_MAX - 1,
paramtype2 = "facedir",
groups = {
choppy = 1, oddly_breakable_by_hand = 1, flammable = 2,
not_in_creative_inventory = 1
},
sounds = default.node_sound_wood_defaults(),
drop = "farming:jackolantern",
on_punch = function(pos, node, puncher)
local name = puncher:get_player_name() or ""
if minetest.is_protected(pos, name) then return end
node.name = "farming:jackolantern"
minetest.swap_node(pos, node)
end,
})
minetest.register_craft({
output = "farming:jackolantern",
recipe = {
{"default:torch"},
{"group:food_pumpkin"},
}
})
--- wooden scarecrow base
minetest.register_node("farming:scarecrow_bottom", {
description = S("Scarecrow Bottom"),
paramtype = "light",
sunlight_propagates = true,
paramtype2 = "facedir",
tiles = {"default_wood.png"},
drawtype = "nodebox",
node_box = {
type = "fixed",
fixed = {
{-1/16, -8/16, -1/16, 1/16, 8/16, 1/16},
{-12/16, 4/16, -1/16, 12/16, 2/16, 1/16},
},
},
groups = {snappy = 3, flammable = 2},
})
minetest.register_craft({
output = "farming:scarecrow_bottom",
recipe = {
{"", "group:stick", "",},
{"group:stick", "group:stick", "group:stick",},
{"", "group:stick", "",}
}
})
-- pumpkin bread
minetest.register_craftitem("farming:pumpkin_bread", {
description = S("Pumpkin Bread"),
inventory_image = "farming_pumpkin_bread.png",
on_use = minetest.item_eat(8),
groups = {food_bread = 1, flammable = 2},
})
minetest.register_craftitem("farming:pumpkin_dough", {
description = S("Pumpkin Dough"),
inventory_image = "farming_pumpkin_dough.png",
})
minetest.register_craft({
output = "farming:pumpkin_dough",
type = "shapeless",
recipe = {"group:food_flour", "group:food_pumpkin_slice", "group:food_pumpkin_slice"}
})
minetest.register_craft({
type = "cooking",
output = "farming:pumpkin_bread",
recipe = "farming:pumpkin_dough",
cooktime = 10
})
-- pumpkin definition
local crop_def = {
local def = {
description = S("Pumpkin") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_pumpkin_1.png"},
paramtype = "light",
@ -151,73 +30,100 @@ local crop_def = {
drop = "",
selection_box = farming.select,
groups = {
snappy = 3, flammable = 2, plant = 1, attached_node = 1,
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
sounds = default.node_sound_leaves_defaults()
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:pumpkin_1", table.copy(crop_def))
minetest.register_node("farming:pumpkin_1", table.copy(def))
-- stage 2
crop_def.tiles = {"farming_pumpkin_2.png"}
minetest.register_node("farming:pumpkin_2", table.copy(crop_def))
def.tiles = {"farming_pumpkin_2.png"}
minetest.register_node("farming:pumpkin_2", table.copy(def))
-- stage 3
crop_def.tiles = {"farming_pumpkin_3.png"}
minetest.register_node("farming:pumpkin_3", table.copy(crop_def))
def.tiles = {"farming_pumpkin_3.png"}
minetest.register_node("farming:pumpkin_3", table.copy(def))
-- stage 4
crop_def.tiles = {"farming_pumpkin_4.png"}
minetest.register_node("farming:pumpkin_4", table.copy(crop_def))
def.tiles = {"farming_pumpkin_4.png"}
minetest.register_node("farming:pumpkin_4", table.copy(def))
-- stage 5
crop_def.tiles = {"farming_pumpkin_5.png"}
minetest.register_node("farming:pumpkin_5", table.copy(crop_def))
def.tiles = {"farming_pumpkin_5.png"}
minetest.register_node("farming:pumpkin_5", table.copy(def))
-- stage 6
crop_def.tiles = {"farming_pumpkin_6.png"}
minetest.register_node("farming:pumpkin_6", table.copy(crop_def))
def.tiles = {"farming_pumpkin_6.png"}
minetest.register_node("farming:pumpkin_6", table.copy(def))
-- stage 7
crop_def.tiles = {"farming_pumpkin_7.png"}
minetest.register_node("farming:pumpkin_7", table.copy(crop_def))
def.tiles = {"farming_pumpkin_7.png"}
minetest.register_node("farming:pumpkin_7", table.copy(def))
-- stage 8 (final)
--[[
crop_def.tiles = {"farming_pumpkin_8.png"}
crop_def.groups.growing = 0
crop_def.drop = {
items = {
{items = {"farming:pumpkin_slice 9"}, rarity = 1},
}
}
minetest.register_node("farming:pumpkin_8", table.copy(crop_def))
]]
minetest.register_node("farming:pumpkin_8", {
description = S("Pumpkin"),
tiles = {
"farming_pumpkin_top.png",
"farming_pumpkin_top.png",
"farming_pumpkin_bottom.png^farming_pumpkin_top.png",
"farming_pumpkin_bottom.png",
"farming_pumpkin_side.png"
},
groups = {
food_pumpkin = 1, choppy = 2, oddly_breakable_by_hand = 1,
flammable = 2, plant = 1
food_pumpkin = 1, snappy = 3, choppy = 3, oddly_breakable_by_hand = 2,
flammable = 2, plant = 1, handy = 1
},
is_ground_content = false,
drop = "farming:pumpkin_8",
sounds = default.node_sound_wood_defaults(),
sounds = farming.node_sound_wood_defaults(),
paramtype2 = "facedir",
on_place = minetest.rotate_node,
_mcl_hardness = 0.8,
_mcl_blast_resistance = 1
})
minetest.register_alias("farming:pumpkin", "farming:pumpkin_8")
-- add to registered_plants
farming.registered_plants["farming:pumpkin"] = {
crop = "farming:pumpkin",
seed = "farming:pumpkin_slice",
minlight = 13,
maxlight = 15,
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 8
}
-- mapgen
minetest.register_decoration({
deco_type = "simple",
place_on = {
"default:dirt_with_grass", "default:dirt_with_rainforest_litter",
"mcl_core:dirt_with_grass"
},
sidelen = 16,
noise_params = {
offset = 0,
scale = farming.pumpkin,
spread = {x = 100, y = 100, z = 100},
seed = 576,
octaves = 3,
persist = 0.6
},
y_min = 1, y_max = 3,
decoration = "farming:pumpkin_8",
spawn_by = {"group:water", "group:sand"}, num_spawn_by = 1
})

View File

@ -1,37 +1,28 @@
local S = farming.intllib
local S = minetest.get_translator("farming")
-- item/seed
-- raspberries
minetest.register_craftitem("farming:raspberries", {
description = S("Raspberries"),
inventory_image = "farming_raspberries.png",
groups = {seed = 2, food_raspberries = 1, food_raspberry = 1,
food_berry = 1, flammable = 2},
groups = {
compostability = 48, seed = 2, food_raspberries = 1, food_raspberry = 1,
food_berry = 1
},
on_use = minetest.item_eat(1),
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:raspberry_1")
end,
on_use = minetest.item_eat(1),
end
})
-- raspberry smoothie
minetest.register_craftitem("farming:smoothie_raspberry", {
description = S("Raspberry Smoothie"),
inventory_image = "farming_raspberry_smoothie.png",
on_use = minetest.item_eat(2, "vessels:drinking_glass"),
groups = {vessel = 1},
})
farming.add_eatable("farming:raspberries", 1)
minetest.register_craft({
output = "farming:smoothie_raspberry",
recipe = {
{"default:snow"},
{"group:food_raspberries"},
{"vessels:drinking_glass"},
}
})
-- crop definition
-- raspberries definition
local crop_def = {
local def = {
description = S("Raspberry") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_raspberry_1.png"},
paramtype = "light",
@ -41,40 +32,68 @@ local crop_def = {
drop = "",
selection_box = farming.select,
groups = {
snappy = 3, flammable = 2, plant = 1, attached_node = 1,
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
sounds = default.node_sound_leaves_defaults()
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:raspberry_1", table.copy(crop_def))
minetest.register_node("farming:raspberry_1", table.copy(def))
-- stage 2
crop_def.tiles = {"farming_raspberry_2.png"}
minetest.register_node("farming:raspberry_2", table.copy(crop_def))
def.tiles = {"farming_raspberry_2.png"}
minetest.register_node("farming:raspberry_2", table.copy(def))
-- stage 3
crop_def.tiles = {"farming_raspberry_3.png"}
minetest.register_node("farming:raspberry_3", table.copy(crop_def))
def.tiles = {"farming_raspberry_3.png"}
minetest.register_node("farming:raspberry_3", table.copy(def))
-- stage 4 (final)
crop_def.tiles = {"farming_raspberry_4.png"}
crop_def.groups.growing = 0
crop_def.drop = {
def.tiles = {"farming_raspberry_4.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:raspberries 2"}, rarity = 1},
{items = {"farming:raspberries"}, rarity = 2},
{items = {"farming:raspberries"}, rarity = 3},
{items = {"farming:raspberries"}, rarity = 3}
}
}
minetest.register_node("farming:raspberry_4", table.copy(crop_def))
minetest.register_node("farming:raspberry_4", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:raspberries"] = {
crop = "farming:raspberry",
seed = "farming:raspberries",
minlight = 13,
maxlight = 15,
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 4
}
-- mapgen
minetest.register_decoration({
deco_type = "simple",
place_on = {
"default:dirt_with_grass", "mcl_core:dirt_with_grass", "ethereal:prairie_dirt"
},
sidelen = 16,
noise_params = {
offset = 0,
scale = farming.raspberry,
spread = {x = 100, y = 100, z = 100},
seed = 687,
octaves = 3,
persist = 0.6
},
y_min = 3, y_max = 15,
decoration = "farming:raspberry_4"
})

View File

@ -1,36 +1,25 @@
local S = farming.intllib
local S = minetest.get_translator("farming")
-- item/seed
-- rhubarb
minetest.register_craftitem("farming:rhubarb", {
description = S("Rhubarb"),
inventory_image = "farming_rhubarb.png",
groups = {seed = 2, food_rhubarb = 1, flammable = 2},
groups = {compostability = 48, seed = 2, food_rhubarb = 1},
on_use = minetest.item_eat(1),
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:rhubarb_1")
end,
on_use = minetest.item_eat(1),
end
})
-- rhubarb pie
minetest.register_craftitem("farming:rhubarb_pie", {
description = S("Rhubarb Pie"),
inventory_image = "farming_rhubarb_pie.png",
on_use = minetest.item_eat(6),
})
farming.add_eatable("farming:rhubarb", 1)
minetest.register_craft({
output = "farming:rhubarb_pie",
recipe = {
{"farming:baking_tray", "group:food_sugar", ""},
{"group:food_rhubarb", "group:food_rhubarb", "group:food_rhubarb"},
{"group:food_wheat", "group:food_wheat", "group:food_wheat"},
},
replacements = {{"group:food_baking_tray", "farming:baking_tray"}}
})
-- crop definition
-- rhubarb definition
local crop_def = {
local def = {
description = S("Rhubarb") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_rhubarb_1.png"},
paramtype = "light",
@ -38,38 +27,78 @@ local crop_def = {
walkable = false,
buildable_to = true,
drop = "",
waving = 1,
selection_box = farming.select,
groups = {
snappy = 3, flammable = 2, plant = 1, attached_node = 1,
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
sounds = default.node_sound_leaves_defaults()
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults(),
minlight = 10,
maxlight = 12
}
-- stage 1
minetest.register_node("farming:rhubarb_1", table.copy(crop_def))
minetest.register_node("farming:rhubarb_1", table.copy(def))
-- stage2
crop_def.tiles = {"farming_rhubarb_2.png"}
minetest.register_node("farming:rhubarb_2", table.copy(crop_def))
-- stage 3 (final)
crop_def.tiles = {"farming_rhubarb_3.png"}
crop_def.groups.growing = 0
crop_def.drop = {
def.tiles = {"farming_rhubarb_2.png"}
minetest.register_node("farming:rhubarb_2", table.copy(def))
-- stage3
def.tiles = {"farming_rhubarb_3.png"}
def.drop = {
items = {
{items = {"farming:rhubarb 2"}, rarity = 1},
{items = {"farming:rhubarb"}, rarity = 2},
{items = {"farming:rhubarb"}, rarity = 3},
{items = {"farming:rhubarb"}, rarity = 1},
}
}
minetest.register_node("farming:rhubarb_3", table.copy(crop_def))
minetest.register_node("farming:rhubarb_3", table.copy(def))
-- stage 4 (final)
def.tiles = {"farming_rhubarb_4.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:rhubarb 2"}, rarity = 1},
{items = {"farming:rhubarb"}, rarity = 2},
{items = {"farming:rhubarb"}, rarity = 3}
}
}
minetest.register_node("farming:rhubarb_4", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:rhubarb"] = {
crop = "farming:rhubarb",
seed = "farming:rhubarb",
minlight = 13,
maxlight = 15,
steps = 3
minlight = 10,
maxlight = 12,
steps = 4
}
-- mapgen
minetest.register_decoration({
deco_type = "simple",
place_on = {
"default:dirt_with_grass", "mcl_core:dirt_with_grass", "ethereal:prairie_dirt"
},
sidelen = 16,
noise_params = {
offset = 0,
scale = farming.rhubarb,
spread = {x = 100, y = 100, z = 100},
seed = 798,
octaves = 3,
persist = 0.6
},
y_min = 3, y_max = 20,
decoration = "farming:rhubarb_3"
})

148
crops/rice.lua Normal file
View File

@ -0,0 +1,148 @@
local S = minetest.get_translator("farming")
-- rice seed
minetest.register_node("farming:seed_rice", {
description = S("Rice Seed"),
tiles = {"farming_rice_seed.png"},
inventory_image = "farming_rice_seed.png",
wield_image = "farming_rice_seed.png",
drawtype = "signlike",
groups = {
handy = 1, compostability = 48, seed = 1, snappy = 3, attached_node = 1,
flammable = 4, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
paramtype = "light",
paramtype2 = "wallmounted",
walkable = false,
sunlight_propagates = true,
selection_box = farming.select,
next_plant = "farming:rice_1",
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:seed_rice")
end,
on_timer = function(pos, elapsed)
minetest.set_node(pos, {name = "farming:rice_1", param2 = 3})
end
})
-- rice item
minetest.register_craftitem("farming:rice", {
description = S("Rice"),
inventory_image = "farming_rice.png",
groups = {seed = 2, food_rice = 1, flammable = 2, compostability = 65},
})
-- dry rice seed to give edible rice
minetest.register_craft({
type = "cooking",
cooktime = 1,
output = "farming:rice",
recipe = "farming:seed_rice"
})
-- crop definition
local def = {
description = S("Rice") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_rice_1.png"},
paramtype = "light",
paramtype2 = "meshoptions",
place_param2 = 3,
sunlight_propagates = true,
walkable = false,
buildable_to = true,
drop = "",
waving = 1,
selection_box = farming.select,
groups = {
handy = 1, snappy = 3, flammable = 4, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:rice_1", table.copy(def))
-- stage 2
def.tiles = {"farming_rice_2.png"}
minetest.register_node("farming:rice_2", table.copy(def))
-- stage 3
def.tiles = {"farming_rice_3.png"}
minetest.register_node("farming:rice_3", table.copy(def))
-- stage 4
def.tiles = {"farming_rice_4.png"}
minetest.register_node("farming:rice_4", table.copy(def))
-- stage 5
def.tiles = {"farming_rice_5.png"}
def.drop = {
items = {
{items = {"farming:rice"}, rarity = 2}
}
}
minetest.register_node("farming:rice_5", table.copy(def))
-- stage 6
def.tiles = {"farming_rice_6.png"}
def.drop = {
items = {
{items = {"farming:rice"}, rarity = 2}
}
}
minetest.register_node("farming:rice_6", table.copy(def))
-- stage 7
def.tiles = {"farming_rice_7.png"}
def.drop = {
items = {
{items = {"farming:seed_rice"}, rarity = 1},
{items = {"farming:seed_rice"}, rarity = 2},
{items = {"farming:seed_rice"}, rarity = 3}
}
}
minetest.register_node("farming:rice_7", table.copy(def))
-- stage 8 (final)
def.tiles = {"farming_rice_8.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:seed_rice 2"}, rarity = 1},
{items = {"farming:seed_rice 2"}, rarity = 2},
{items = {"farming:seed_rice"}, rarity = 3}
}
}
minetest.register_node("farming:rice_8", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:rice"] = {
crop = "farming:rice",
seed = "farming:seed_rice",
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 8
}

50
crops/rye_oat.lua Normal file
View File

@ -0,0 +1,50 @@
local S = minetest.get_translator("farming")
--= A nice addition from Ademant's grain mod :)
-- Rye
farming.register_plant("farming:rye", {
description = S("Rye seed"),
paramtype2 = "meshoptions",
inventory_image = "farming_rye_seed.png",
steps = 8,
place_param2 = 3
})
-- override rye item
minetest.override_item("farming:rye", {
description = S("Rye"),
groups = {food_rye = 1, flammable = 4, compostability = 65}
})
-- override rye crop
minetest.override_item("farming:rye_1", {drop = {}})
minetest.override_item("farming:rye_2", {drop = {}})
minetest.override_item("farming:rye_3", {drop = {}})
-- Oats
farming.register_plant("farming:oat", {
description = S("Oat seed"),
paramtype2 = "meshoptions",
inventory_image = "farming_oat_seed.png",
steps = 8,
place_param2 = 3
})
-- override oat item
minetest.override_item("farming:oat", {
description = S("Oats"),
groups = {food_oats = 1, flammable = 4, compostability = 65}
})
-- override oat crop
minetest.override_item("farming:oat_1", {drop = {}})
minetest.override_item("farming:oat_2", {drop = {}})
minetest.override_item("farming:oat_3", {drop = {}})

View File

@ -1,165 +0,0 @@
local S = farming.intllib
--= A nice addition from Ademant's grain mod :)
-- Rye
farming.register_plant("farming:rye", {
description = S("Rye seed"),
paramtype2 = "meshoptions",
inventory_image = "farming_rye_seed.png",
steps = 8,
place_param2 = 3,
})
minetest.override_item("farming:rye", {
description = S("Rye"),
groups = {food_rye = 1, flammable = 4}
})
minetest.register_craft({
type = "shapeless",
output = "farming:flour",
recipe = {
"farming:rye", "farming:rye", "farming:rye", "farming:rye",
"farming:mortar_pestle"
},
replacements = {{"group:food_mortar_pestle", "farming:mortar_pestle"}},
})
-- Oats
farming.register_plant("farming:oat", {
description = S("Oat seed"),
paramtype2 = "meshoptions",
inventory_image = "farming_oat_seed.png",
steps = 8,
place_param2 = 3,
})
minetest.override_item("farming:oat", {
description = S("Oats"),
groups = {food_oats = 1, flammable = 4}
})
minetest.register_craft({
type = "shapeless",
output = "farming:flour",
recipe = {
"farming:oat", "farming:oat", "farming:oat", "farming:oat",
"farming:mortar_pestle"
},
replacements = {{"group:food_mortar_pestle", "farming:mortar_pestle"}},
})
-- Rice
farming.register_plant("farming:rice", {
description = S("Rice grains"),
paramtype2 = "meshoptions",
inventory_image = "farming_rice_seed.png",
steps = 8,
place_param2 = 3,
})
minetest.override_item("farming:rice", {
description = S("Rice"),
groups = {food_rice = 1, flammable = 4}
})
minetest.register_craftitem("farming:rice_bread", {
description = S("Rice Bread"),
inventory_image = "farming_rice_bread.png",
on_use = minetest.item_eat(5),
groups = {food_rice_bread = 1, flammable = 2},
})
minetest.register_craftitem("farming:rice_flour", {
description = S("Rice Flour"),
inventory_image = "farming_rice_flour.png",
groups = {food_rice_flour = 1, flammable = 1},
})
minetest.register_craft({
type = "shapeless",
output = "farming:rice_flour",
recipe = {
"farming:rice", "farming:rice", "farming:rice", "farming:rice",
"farming:mortar_pestle"
},
replacements = {{"group:food_mortar_pestle", "farming:mortar_pestle"}},
})
minetest.register_craft({
type = "cooking",
cooktime = 15,
output = "farming:rice_bread",
recipe = "farming:rice_flour"
})
-- Multigrain flour
minetest.register_craftitem("farming:flour_multigrain", {
description = S("Multigrain Flour"),
inventory_image = "farming_flour_multigrain.png",
groups = {food_flour = 1, flammable = 1},
})
minetest.register_craft({
type = "shapeless",
output = "farming:flour_multigrain",
recipe = {
"farming:wheat", "farming:barley", "farming:oat",
"farming:rye", "farming:mortar_pestle"
},
replacements = {{"group:food_mortar_pestle", "farming:mortar_pestle"}},
})
-- Multigrain bread
minetest.register_craftitem("farming:bread_multigrain", {
description = S("Multigrain Bread"),
inventory_image = "farming_bread_multigrain.png",
on_use = minetest.item_eat(7),
groups = {food_bread = 1, flammable = 2},
})
minetest.register_craft({
type = "cooking",
cooktime = 15,
output = "farming:bread_multigrain",
recipe = "farming:flour_multigrain"
})
-- Fuels
minetest.register_craft({
type = "fuel",
recipe = "farming:rice_bread",
burntime = 1,
})
minetest.register_craft({
type = "fuel",
recipe = "farming:bread_multigrain",
burntime = 1,
})
minetest.register_craft({
type = "fuel",
recipe = "farming:rye",
burntime = 1,
})
minetest.register_craft({
type = "fuel",
recipe = "farming:oat",
burntime = 1,
})
minetest.register_craft({
type = "fuel",
recipe = "farming:rice",
burntime = 1,
})

131
crops/soy.lua Normal file
View File

@ -0,0 +1,131 @@
local S = minetest.get_translator("farming")
-- item/seed
minetest.register_craftitem("farming:soy_pod", {
description = S("Soy Pod"),
inventory_image = "farming_soy_pod.png",
groups = {compostability = 48, seed = 2, food_soy = 1, food_soy_pod = 1, flammable = 2},
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:soy_1")
end
})
-- replacement for soy beans that was removed
minetest.register_alias("farming:soy_beans", "farming:soy_pod")
-- crop definition
local def = {
description = S("Soy") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_soy_1.png"},
paramtype = "light",
paramtype2 = "meshoptions",
place_param2 = 3,
sunlight_propagates = true,
waving = 1,
walkable = false,
buildable_to = true,
drop = "",
selection_box = farming.select,
groups = {
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:soy_1", table.copy(def))
-- stage 2
def.tiles = {"farming_soy_2.png"}
minetest.register_node("farming:soy_2", table.copy(def))
-- stage 3
def.tiles = {"farming_soy_3.png"}
minetest.register_node("farming:soy_3", table.copy(def))
-- stage 4
def.tiles = {"farming_soy_4.png"}
minetest.register_node("farming:soy_4", table.copy(def))
-- stage 5
def.tiles = {"farming_soy_5.png"}
def.drop = {
max_items = 1, items = {
{items = {"farming:soy_pod"}, rarity = 1},
}
}
minetest.register_node("farming:soy_5", table.copy(def))
-- stage 6
def.tiles = {"farming_soy_6.png"}
def.drop = {
max_items = 3, items = {
{items = {"farming:soy_pod"}, rarity = 1},
{items = {"farming:soy_pod"}, rarity = 2},
{items = {"farming:soy_pod"}, rarity = 3}
}
}
minetest.register_node("farming:soy_6", table.copy(def))
-- stage 7 (final)
def.tiles = {"farming_soy_7.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
max_items = 5, items = {
{items = {"farming:soy_pod"}, rarity = 1},
{items = {"farming:soy_pod"}, rarity = 2},
{items = {"farming:soy_pod"}, rarity = 3},
{items = {"farming:soy_pod"}, rarity = 4},
{items = {"farming:soy_pod"}, rarity = 5}
}
}
minetest.register_node("farming:soy_7", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:soy_pod"] = {
crop = "farming:soy",
seed = "farming:soy_pod",
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 7
}
-- mapgen
minetest.register_decoration({
deco_type = "simple",
place_on = {
"default:dirt_with_grass", "default:dirt_with_dry_grass",
"default:dirt_with_rainforest_litter", "default:dry_dirt_with_dry_grass",
"mcl_core:dirt_with_grass", "ethereal:prairie_dirt"
},
sidelen = 16,
noise_params = {
offset = 0,
scale = farming.soy,
spread = {x = 100, y = 100, z = 100},
seed = 809,
octaves = 3,
persist = 0.6
},
y_min = 20, y_max = 50,
decoration = "farming:soy_5"
})

102
crops/spinach.lua Normal file
View File

@ -0,0 +1,102 @@
local S = minetest.get_translator("farming")
-- item/seed
minetest.register_craftitem("farming:spinach", {
description = S("Spinach"),
inventory_image = "farming_spinach.png",
groups = {compostability = 48, seed = 2, food_spinach = 1},
on_use = minetest.item_eat(1),
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:spinach_1")
end
})
farming.add_eatable("farming:spinach", 1)
-- crop definition
local def = {
description = S("Spinach") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_spinach_1.png"},
paramtype = "light",
sunlight_propagates = true,
waving = 1,
walkable = false,
buildable_to = true,
drop = "",
selection_box = farming.select,
groups = {
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:spinach_1", table.copy(def))
-- stage 2
def.tiles = {"farming_spinach_2.png"}
minetest.register_node("farming:spinach_2", table.copy(def))
-- stage 3
def.tiles = {"farming_spinach_3.png"}
def.drop = {
items = {
{items = {"farming:spinach"}, rarity = 1},
{items = {"farming:spinach"}, rarity = 3}
}
}
minetest.register_node("farming:spinach_3", table.copy(def))
-- stage 4
def.tiles = {"farming_spinach_4.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:spinach 2"}, rarity = 1},
{items = {"farming:spinach 2"}, rarity = 2},
{items = {"farming:spinach 2"}, rarity = 3}
}
}
minetest.register_node("farming:spinach_4", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:spinach"] = {
crop = "farming:spinach",
seed = "farming:spinach",
minlight = 7,
maxlight = farming.max_light,
steps = 4
}
-- mapgen
minetest.register_decoration({
deco_type = "simple",
place_on = {"default:dirt_with_grass", "mcl_core:dirt_with_grass"},
sidelen = 16,
noise_params = {
offset = 0,
scale = farming.spinach,
spread = {x = 100, y = 100, z = 100},
seed = 910,
octaves = 3,
persist = 0.6
},
y_min = 1, y_max = 100,
decoration = "farming:spinach_4",
param2 = 3
})

131
crops/strawberry.lua Normal file
View File

@ -0,0 +1,131 @@
local S = minetest.get_translator("farming")
-- item/seed
minetest.register_craftitem(":ethereal:strawberry", {
description = S("Strawberry"),
inventory_image = "ethereal_strawberry.png",
groups = {compostability = 48, seed = 2, food_strawberry = 1, food_berry = 1},
on_use = minetest.item_eat(1),
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "ethereal:strawberry_1")
end,
})
farming.add_eatable("ethereal:strawberry", 1)
-- crop definition
local def = {
description = S("Strawberry") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"ethereal_strawberry_1.png"},
paramtype = "light",
sunlight_propagates = true,
waving = 1,
walkable = false,
buildable_to = true,
drop = "",
selection_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}
},
groups = {
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
--stage 1
minetest.register_node(":ethereal:strawberry_1", table.copy(def))
-- stage 2
def.tiles = {"ethereal_strawberry_2.png"}
minetest.register_node(":ethereal:strawberry_2", table.copy(def))
-- stage 3
def.tiles = {"ethereal_strawberry_3.png"}
minetest.register_node(":ethereal:strawberry_3", table.copy(def))
-- stage 4
def.tiles = {"ethereal_strawberry_4.png"}
minetest.register_node(":ethereal:strawberry_4", table.copy(def))
-- stage 5
def.tiles = {"ethereal_strawberry_5.png"}
minetest.register_node(":ethereal:strawberry_5", table.copy(def))
-- stage 6
def.tiles = {"ethereal_strawberry_6.png"}
def.drop = {
items = {
{items = {"ethereal:strawberry 1"}, rarity = 2},
{items = {"ethereal:strawberry 2"}, rarity = 3}
}
}
minetest.register_node(":ethereal:strawberry_6", table.copy(def))
-- stage 7
def.tiles = {"ethereal_strawberry_7.png"}
def.drop = {
items = {
{items = {"ethereal:strawberry 1"}, rarity = 1},
{items = {"ethereal:strawberry 2"}, rarity = 3}
}
}
minetest.register_node(":ethereal:strawberry_7", table.copy(def))
-- stage 8 (final)
def.tiles = {"ethereal_strawberry_8.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"ethereal:strawberry 2"}, rarity = 1},
{items = {"ethereal:strawberry 3"}, rarity = 3}
}
}
minetest.register_node(":ethereal:strawberry_8", table.copy(def))
-- add to registered_plants
farming.registered_plants["ethereal:strawberry"] = {
crop = "ethereal:strawberry",
seed = "ethereal:strawberry",
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 8
}
-- mapgen
minetest.register_decoration({
deco_type = "simple",
place_on = {
"default:dirt_with_grass", "mcl_core:dirt_with_grass", "ethereal:prairie_dirt"
},
sidelen = 16,
noise_params = {
offset = 0,
scale = farming.strawberry,
spread = {x = 100, y = 100, z = 100},
seed = 143,
octaves = 3,
persist = 0.6
},
y_min = 15, y_max = 55,
decoration = "ethereal:strawberry_7"
})

149
crops/sunflower.lua Normal file
View File

@ -0,0 +1,149 @@
local S = minetest.get_translator("farming")
-- seed
minetest.register_node("farming:seed_sunflower", {
description = S("Sunflower Seeds"),
tiles = {"farming_sunflower_seeds.png"},
inventory_image = "farming_sunflower_seeds.png",
wield_image = "farming_sunflower_seeds.png",
drawtype = "signlike",
groups = {
compostability = 48, seed = 1, snappy = 3, attached_node = 1, growing = 1,
handy = 1, food_sunflower_seeds = 1, flammable = 2
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
paramtype = "light",
paramtype2 = "wallmounted",
walkable = false,
sunlight_propagates = true,
selection_box = farming.select,
next_plant = "farming:sunflower_1",
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:seed_sunflower")
end,
on_timer = function(pos, elapsed)
minetest.set_node(pos, {name = "farming:sunflower_1", param2 = 1})
end
})
minetest.register_alias("farming:sunflower_seeds", "farming:seed_sunflower")
-- item
minetest.register_craftitem("farming:sunflower", {
description = S("Sunflower"),
inventory_image = "farming_sunflower.png",
groups = {flammable = 2}
})
-- turn item into seeds
minetest.register_craft({
output = "farming:seed_sunflower 5",
recipe = {{"farming:sunflower"}}
})
-- crop definition
local def = {
description = S("Sunflower") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_sunflower_1.png"},
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
drop = "",
waving = 1,
selection_box = farming.select,
groups = {
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:sunflower_1", table.copy(def))
-- stage 2
def.tiles = {"farming_sunflower_2.png"}
minetest.register_node("farming:sunflower_2", table.copy(def))
-- stage 3
def.tiles = {"farming_sunflower_3.png"}
minetest.register_node("farming:sunflower_3", table.copy(def))
-- stage 4
def.tiles = {"farming_sunflower_4.png"}
minetest.register_node("farming:sunflower_4", table.copy(def))
-- stage 5
def.tiles = {"farming_sunflower_5.png"}
minetest.register_node("farming:sunflower_5", table.copy(def))
-- stage 6
def.tiles = {"farming_sunflower_6.png"}
def.visual_scale = 1.9
minetest.register_node("farming:sunflower_6", table.copy(def))
-- stage 7
def.tiles = {"farming_sunflower_7.png"}
minetest.register_node("farming:sunflower_7", table.copy(def))
-- stage 8 (final)
def.tiles = {"farming_sunflower_8.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:sunflower"}, rarity = 1},
{items = {"farming:sunflower"}, rarity = 6}
}
}
minetest.register_node("farming:sunflower_8", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:sunflower"] = {
crop = "farming:sunflower",
seed = "farming:seed_sunflower",
minlight = 14,
maxlight = farming.max_light,
steps = 8
}
-- mapgen
minetest.register_decoration({
deco_type = "simple",
place_on = {
"default:dirt_with_grass", "mcl_core:dirt_with_grass", "ethereal:prairie_dirt"
},
sidelen = 16,
noise_params = {
offset = 0,
scale = farming.sunflower,
spread = {x = 100, y = 100, z = 100},
seed = 254,
octaves = 3,
persist = 0.6
},
y_min = 10, y_max = 40,
decoration = "farming:sunflower_8"
})

View File

@ -4,21 +4,27 @@
http://www.minecraftforum.net/forums/mapping-and-modding/minecraft-mods/1288375-food-plus-mod-more-food-than-you-can-imagine-v2-9)
]]
local S = farming.intllib
local S = minetest.get_translator("farming")
-- item/seed
-- tomato
minetest.register_craftitem("farming:tomato", {
description = S("Tomato"),
inventory_image = "farming_tomato.png",
groups = {seed = 2, food_tomato = 1, flammable = 2},
groups = {compostability = 45, seed = 2, food_tomato = 1},
on_use = minetest.item_eat(4),
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:tomato_1")
end,
on_use = minetest.item_eat(4),
end
})
-- tomato definition
local crop_def = {
farming.add_eatable("farming:tomato", 4)
-- crop definition
local def = {
description = S("Tomato") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_tomato_1.png"},
paramtype = "light",
@ -26,63 +32,97 @@ local crop_def = {
walkable = false,
buildable_to = true,
drop = "",
waving = 1,
selection_box = farming.select,
groups = {
snappy = 3, flammable = 2, plant = 1, attached_node = 1,
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
sounds = default.node_sound_leaves_defaults()
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:tomato_1", table.copy(crop_def))
minetest.register_node("farming:tomato_1", table.copy(def))
-- stage2
crop_def.tiles = {"farming_tomato_2.png"}
minetest.register_node("farming:tomato_2", table.copy(crop_def))
def.tiles = {"farming_tomato_2.png"}
minetest.register_node("farming:tomato_2", table.copy(def))
-- stage 3
crop_def.tiles = {"farming_tomato_3.png"}
minetest.register_node("farming:tomato_3", table.copy(crop_def))
def.tiles = {"farming_tomato_3.png"}
minetest.register_node("farming:tomato_3", table.copy(def))
-- stage 4
crop_def.tiles = {"farming_tomato_4.png"}
minetest.register_node("farming:tomato_4", table.copy(crop_def))
def.tiles = {"farming_tomato_4.png"}
minetest.register_node("farming:tomato_4", table.copy(def))
-- stage 5
crop_def.tiles = {"farming_tomato_5.png"}
minetest.register_node("farming:tomato_5", table.copy(crop_def))
def.tiles = {"farming_tomato_5.png"}
minetest.register_node("farming:tomato_5", table.copy(def))
-- stage 6
crop_def.tiles = {"farming_tomato_6.png"}
minetest.register_node("farming:tomato_6", table.copy(crop_def))
def.tiles = {"farming_tomato_6.png"}
minetest.register_node("farming:tomato_6", table.copy(def))
-- stage 7
crop_def.tiles = {"farming_tomato_7.png"}
crop_def.drop = {
def.tiles = {"farming_tomato_7.png"}
def.drop = {
items = {
{items = {"farming:tomato"}, rarity = 1},
{items = {"farming:tomato"}, rarity = 3},
{items = {"farming:tomato"}, rarity = 3}
}
}
minetest.register_node("farming:tomato_7", table.copy(crop_def))
minetest.register_node("farming:tomato_7", table.copy(def))
-- stage 8 (final)
crop_def.tiles = {"farming_tomato_8.png"}
crop_def.groups.growing = 0
crop_def.drop = {
def.tiles = {"farming_tomato_8.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:tomato 3"}, rarity = 1},
{items = {"farming:tomato 3"}, rarity = 2},
{items = {"farming:tomato 2"}, rarity = 2},
{items = {"farming:tomato 1"}, rarity = 3}
}
}
minetest.register_node("farming:tomato_8", table.copy(crop_def))
minetest.register_node("farming:tomato_8", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:tomato"] = {
crop = "farming:tomato",
seed = "farming:tomato",
minlight = 13,
maxlight = 15,
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 8
}
-- mapgen
minetest.register_decoration({
deco_type = "simple",
place_on = {
"default:dirt_with_grass", "mcl_core:dirt_with_grass", "ethereal:prairie_dirt"
},
sidelen = 16,
noise_params = {
offset = 0,
scale = farming.tomato,
spread = {x = 100, y = 100, z = 100},
seed = 365,
octaves = 3,
persist = 0.6
},
y_min = 5, y_max = 25,
decoration = "farming:tomato_7"
})

126
crops/vanilla.lua Normal file
View File

@ -0,0 +1,126 @@
local S = minetest.get_translator("farming")
-- item/seed
minetest.register_craftitem("farming:vanilla", {
description = S("Vanilla"),
inventory_image = "farming_vanilla.png",
groups = {compostability = 48, seed = 2, food_vanilla = 1},
on_use = minetest.item_eat(1),
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:vanilla_1")
end
})
farming.add_eatable("farming:vanilla", 1)
-- crop definition
local def = {
description = S("Vanilla") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_vanilla_1.png"},
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
drop = "",
waving = 1,
selection_box = farming.select,
groups = {
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:vanilla_1", table.copy(def))
-- stage 2
def.tiles = {"farming_vanilla_2.png"}
minetest.register_node("farming:vanilla_2", table.copy(def))
-- stage 3
def.tiles = {"farming_vanilla_3.png"}
minetest.register_node("farming:vanilla_3", table.copy(def))
-- stage 4
def.tiles = {"farming_vanilla_4.png"}
minetest.register_node("farming:vanilla_4", table.copy(def))
-- stage 5
def.tiles = {"farming_vanilla_5.png"}
minetest.register_node("farming:vanilla_5", table.copy(def))
-- stage 6
def.tiles = {"farming_vanilla_6.png"}
def.visual_scale = 1.9
minetest.register_node("farming:vanilla_6", table.copy(def))
-- stage 7
def.tiles = {"farming_vanilla_7.png"}
def.drop = {
items = {
{items = {"farming:vanilla"}, rarity = 1},
{items = {"farming:vanilla"}, rarity = 2},
{items = {"farming:vanilla"}, rarity = 3}
}
}
minetest.register_node("farming:vanilla_7", table.copy(def))
-- stage 8 (final)
def.tiles = {"farming_vanilla_8.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:vanilla 2"}, rarity = 1},
{items = {"farming:vanilla 2"}, rarity = 2},
{items = {"farming:vanilla 2"}, rarity = 2},
{items = {"farming:vanilla 2"}, rarity = 3}
}
}
minetest.register_node("farming:vanilla_8", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:vanilla"] = {
crop = "farming:vanilla",
seed = "farming:vanilla",
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 8
}
-- mapgen
minetest.register_decoration({
deco_type = "simple",
place_on = {
"default:dirt_with_grass", "mcl_core:dirt_with_grass", "ethereal:grove_dirt"
},
sidelen = 16,
noise_params = {
offset = 0,
scale = farming.vanilla,
spread = {x = 100, y = 100, z = 100},
seed = 476,
octaves = 3,
persist = 0.6
},
y_min = 5, y_max = 35,
decoration = "farming:vanilla_7"
})

View File

@ -1,158 +1,47 @@
local S = farming.intllib
local S = minetest.get_translator("farming")
-- seed
-- wheat seeds
minetest.register_node("farming:seed_wheat", {
description = S("Wheat Seed"),
tiles = {"farming_wheat_seed.png"},
inventory_image = "farming_wheat_seed.png",
wield_image = "farming_wheat_seed.png",
drawtype = "signlike",
groups = {seed = 1, snappy = 3, attached_node = 1, flammable = 4},
groups = {
handy = 1, seed = 1, snappy = 3, attached_node = 1, flammable = 4, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
paramtype = "light",
paramtype2 = "wallmounted",
walkable = false,
sunlight_propagates = true,
selection_box = farming.select,
next_plant = "farming:wheat_1",
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:wheat_1")
return farming.place_seed(itemstack, placer, pointed_thing, "farming:seed_wheat")
end,
on_timer = function(pos, elapsed)
minetest.set_node(pos, {name = "farming:wheat_1", param2 = 3})
end
})
-- harvested wheat
-- item
minetest.register_craftitem("farming:wheat", {
description = S("Wheat"),
inventory_image = "farming_wheat.png",
groups = {food_wheat = 1, flammable = 4},
groups = {food_wheat = 1, flammable = 4}
})
-- straw
minetest.register_node("farming:straw", {
description = S("Straw"),
tiles = {"farming_straw.png"},
is_ground_content = false,
groups = {snappy = 3, flammable = 4, fall_damage_add_percent = -30},
sounds = default.node_sound_leaves_defaults(),
})
-- crop definition
minetest.register_craft({
output = "farming:straw 3",
recipe = {
{"farming:wheat", "farming:wheat", "farming:wheat"},
{"farming:wheat", "farming:wheat", "farming:wheat"},
{"farming:wheat", "farming:wheat", "farming:wheat"},
}
})
minetest.register_craft({
output = "farming:wheat 3",
recipe = {
{"farming:straw"},
}
})
-- check and register stairs
if minetest.global_exists("stairs") then
if stairs.mod and stairs.mod == "redo" then
stairs.register_all("straw", "farming:straw",
{snappy = 3, flammable = 4},
{"farming_straw.png"},
"Straw",
default.node_sound_leaves_defaults())
else
stairs.register_stair_and_slab("straw", "farming:straw",
{snappy = 3, flammable = 4},
{"farming_straw.png"},
"Straw Stair",
"Straw Slab",
default.node_sound_leaves_defaults())
end
end
-- flour
minetest.register_craftitem("farming:flour", {
description = S("Flour"),
inventory_image = "farming_flour.png",
groups = {food_flour = 1, flammable = 1},
})
minetest.register_craft({
type = "shapeless",
output = "farming:flour",
recipe = {
"farming:wheat", "farming:wheat", "farming:wheat",
"farming:wheat", "farming:mortar_pestle"
},
replacements = {{"group:food_mortar_pestle", "farming:mortar_pestle"}},
})
-- bread
minetest.register_craftitem("farming:bread", {
description = S("Bread"),
inventory_image = "farming_bread.png",
on_use = minetest.item_eat(5),
groups = {food_bread = 1, flammable = 2},
})
minetest.register_craft({
type = "cooking",
cooktime = 15,
output = "farming:bread",
recipe = "farming:flour"
})
-- sliced bread
minetest.register_craftitem("farming:bread_slice", {
description = S("Sliced Bread"),
inventory_image = "farming_bread_slice.png",
on_use = minetest.item_eat(1),
groups = {food_bread_slice = 1, flammable = 2},
})
minetest.register_craft({
type = "shapeless",
output = "farming:bread_slice 5",
recipe = {"farming:bread", "group:food_cutting_board"},
replacements = {{"group:food_cutting_board", "farming:cutting_board"}},
})
-- toast
minetest.register_craftitem("farming:toast", {
description = S("Toast"),
inventory_image = "farming_toast.png",
on_use = minetest.item_eat(1),
groups = {food_toast = 1, flammable = 2},
})
minetest.register_craft({
type = "cooking",
cooktime = 3,
output = "farming:toast",
recipe = "farming:bread_slice"
})
-- toast sandwich
minetest.register_craftitem("farming:toast_sandwich", {
description = S("Toast Sandwich"),
inventory_image = "farming_toast_sandwich.png",
on_use = minetest.item_eat(4),
groups = {flammable = 2},
})
minetest.register_craft({
output = "farming:toast_sandwich",
recipe = {
{"farming:bread_slice"},
{"farming:toast"},
{"farming:bread_slice"},
}
})
-- wheat definition
local crop_def = {
local def = {
description = S("Wheat") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_wheat_1.png"},
paramtype = "light",
@ -162,92 +51,92 @@ local crop_def = {
walkable = false,
buildable_to = true,
drop = "",
waving = 1,
selection_box = farming.select,
groups = {
snappy = 3, flammable = 4, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
sounds = default.node_sound_leaves_defaults()
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:wheat_1", table.copy(crop_def))
minetest.register_node("farming:wheat_1", table.copy(def))
-- stage 2
crop_def.tiles = {"farming_wheat_2.png"}
minetest.register_node("farming:wheat_2", table.copy(crop_def))
def.tiles = {"farming_wheat_2.png"}
minetest.register_node("farming:wheat_2", table.copy(def))
-- stage 3
crop_def.tiles = {"farming_wheat_3.png"}
minetest.register_node("farming:wheat_3", table.copy(crop_def))
def.tiles = {"farming_wheat_3.png"}
minetest.register_node("farming:wheat_3", table.copy(def))
-- stage 4
crop_def.tiles = {"farming_wheat_4.png"}
minetest.register_node("farming:wheat_4", table.copy(crop_def))
def.tiles = {"farming_wheat_4.png"}
minetest.register_node("farming:wheat_4", table.copy(def))
-- stage 5
crop_def.tiles = {"farming_wheat_5.png"}
crop_def.drop = {
def.tiles = {"farming_wheat_5.png"}
def.drop = {
items = {
{items = {"farming:wheat"}, rarity = 2},
{items = {"farming:seed_wheat"}, rarity = 2},
{items = {"farming:seed_wheat"}, rarity = 2}
}
}
minetest.register_node("farming:wheat_5", table.copy(crop_def))
minetest.register_node("farming:wheat_5", table.copy(def))
-- stage 6
crop_def.tiles = {"farming_wheat_6.png"}
crop_def.drop = {
def.tiles = {"farming_wheat_6.png"}
def.drop = {
items = {
{items = {"farming:wheat"}, rarity = 2},
{items = {"farming:seed_wheat"}, rarity = 1},
{items = {"farming:seed_wheat"}, rarity = 1}
}
}
minetest.register_node("farming:wheat_6", table.copy(crop_def))
minetest.register_node("farming:wheat_6", table.copy(def))
-- stage 7
crop_def.tiles = {"farming_wheat_7.png"}
crop_def.drop = {
def.tiles = {"farming_wheat_7.png"}
def.drop = {
items = {
{items = {"farming:wheat"}, rarity = 1},
{items = {"farming:wheat"}, rarity = 3},
{items = {"farming:seed_wheat"}, rarity = 1},
{items = {"farming:seed_wheat"}, rarity = 3},
{items = {"farming:seed_wheat"}, rarity = 3}
}
}
minetest.register_node("farming:wheat_7", table.copy(crop_def))
minetest.register_node("farming:wheat_7", table.copy(def))
-- stage 8 (final)
crop_def.tiles = {"farming_wheat_8.png"}
crop_def.groups.growing = 0
crop_def.drop = {
def.tiles = {"farming_wheat_8.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:wheat"}, rarity = 1},
{items = {"farming:wheat"}, rarity = 3},
{items = {"farming:seed_wheat"}, rarity = 1},
{items = {"farming:seed_wheat"}, rarity = 3},
{items = {"farming:seed_wheat"}, rarity = 3}
}
}
minetest.register_node("farming:wheat_8", table.copy(crop_def))
minetest.register_node("farming:wheat_8", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:wheat"] = {
crop = "farming:wheat",
seed = "farming:seed_wheat",
minlight = 13,
maxlight = 15,
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 8
}
-- fuels
minetest.register_craft({
type = "fuel",
recipe = "farming:straw",
burntime = 3,
})
minetest.register_craft({
type = "fuel",
recipe = "farming:wheat",
burntime = 1,
})

View File

@ -1,5 +0,0 @@
default
stairs?
intllib?
lucky_block?
toolranks?

View File

@ -1 +0,0 @@
Adds many plants and food to Minetest

View File

@ -6,31 +6,47 @@
--]]
-- true to enable crop/food in-game and on mapgen set spawn rarety
farming.carrot = 0.001
farming.potato = 0.001
farming.tomato = 0.001
farming.cucumber = 0.001
farming.corn = 0.001
farming.coffee = 0.001
farming.melon = 0.001
farming.pumpkin = 0.001
farming.asparagus = 0.002
farming.eggplant = 0.002
farming.spinach = 0.002
farming.carrot = 0.002
farming.potato = 0.002
farming.tomato = 0.002
farming.cucumber = 0.002
farming.corn = 0.002
farming.coffee = 0.002
farming.melon = 0.009
farming.pumpkin = 0.009
farming.cocoa = true -- true or false only
farming.raspberry = 0.001
farming.blueberry = 0.001
farming.rhubarb = 0.001
farming.beans = 0.001
farming.grapes = 0.001
farming.raspberry = 0.002
farming.blueberry = 0.002
farming.rhubarb = 0.002
farming.beans = 0.002
farming.grapes = 0.002
farming.barley = true -- true or false only
farming.chili = 0.003
farming.hemp = 0.003
farming.garlic = 0.001
farming.onion = 0.001
farming.garlic = 0.002
farming.onion = 0.002
farming.pepper = 0.002
farming.pineapple = 0.001
farming.peas = 0.001
farming.beetroot = 0.001
farming.pineapple = 0.003
farming.peas = 0.002
farming.beetroot = 0.002
farming.mint = 0.005
farming.cabbage = 0.002
farming.blackberry = 0.002
farming.lettuce = 0.002
farming.soy = 0.002
farming.vanilla = 0.002
farming.artichoke = 0.002
farming.parsley = 0.002
farming.sunflower = 0.002
farming.ginger = 0.002
farming.cotton = 0.003
farming.strawberry = 0.002
farming.grains = true -- true or false only
farming.rice = true
-- default rarety of crops on map (higher number = more crops)
farming.rarety = 0.002
-- default minimum and maximum light levels crops need to grow
farming.min_light = 12
farming.max_light = 15

238
food.lua
View File

@ -1,238 +0,0 @@
local S = farming.intllib
--= Sugar
minetest.register_craftitem("farming:sugar", {
description = S("Sugar"),
inventory_image = "farming_sugar.png",
groups = {food_sugar = 1, flammable = 3},
})
minetest.register_craft({
type = "cooking",
cooktime = 3,
output = "farming:sugar 2",
recipe = "default:papyrus",
})
--= Salt
minetest.register_node("farming:salt", {
description = S("Salt"),
inventory_image = "farming_salt.png",
wield_image = "farming_salt.png",
drawtype = "plantlike",
visual_scale = 0.8,
paramtype = "light",
tiles = {"farming_salt.png"},
groups = {food_salt = 1, vessel = 1, dig_immediate = 3,
attached_node = 1},
sounds = default.node_sound_defaults(),
selection_box = {
type = "fixed",
fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25}
},
})
minetest.register_craft({
type = "cooking",
cooktime = 15,
output = "farming:salt",
recipe = "bucket:bucket_water",
replacements = {{"bucket:bucket_water", "bucket:bucket_empty"}}
})
--= Rose Water
minetest.register_node("farming:rose_water", {
description = S("Rose Water"),
inventory_image = "farming_rose_water.png",
wield_image = "farming_rose_water.png",
drawtype = "plantlike",
visual_scale = 0.8,
paramtype = "light",
tiles = {"farming_rose_water.png"},
groups = {food_rose_water = 1, vessel = 1, dig_immediate = 3,
attached_node = 1},
sounds = default.node_sound_defaults(),
selection_box = {
type = "fixed",
fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25}
},
})
minetest.register_craft({
output = "farming:rose_water",
recipe = {
{"flowers:rose", "flowers:rose", "flowers:rose"},
{"flowers:rose", "flowers:rose", "flowers:rose"},
{"bucket:bucket_water", "group:food_pot", "vessels:glass_bottle"},
},
replacements = {
{"bucket:bucket_water", "bucket:bucket_empty"},
{"group:food_pot", "farming:pot"},
}
})
--= Turkish Delight
minetest.register_craftitem("farming:turkish_delight", {
description = S("Turkish Delight"),
inventory_image = "farming_turkish_delight.png",
groups = {flammable = 3},
on_use = minetest.item_eat(2),
})
minetest.register_craft({
output = "farming:turkish_delight 4",
recipe = {
{"group:food_gelatin", "group:food_sugar", "group:food_gelatin"},
{"group:food_sugar", "group:food_rose_water", "group:food_sugar"},
{"group:food_cornstarch", "group:food_sugar", "dye:pink"},
},
replacements = {
{"group:food_cornstarch", "farming:bowl"},
{"group:food_rose_water", "vessels:glass_bottle"},
},
})
--= Garlic Bread
minetest.register_craftitem("farming:garlic_bread", {
description = S("Garlic Bread"),
inventory_image = "farming_garlic_bread.png",
groups = {flammable = 3},
on_use = minetest.item_eat(2),
})
minetest.register_craft({
type = "shapeless",
output = "farming:garlic_bread",
recipe = {"group:food_toast", "group:food_garlic_clove", "group:food_garlic_clove"},
})
--= Donuts (thanks to Bockwurst for making the donut images)
minetest.register_craftitem("farming:donut", {
description = S("Donut"),
inventory_image = "farming_donut.png",
on_use = minetest.item_eat(4),
})
minetest.register_craft({
output = "farming:donut 3",
recipe = {
{"", "group:food_wheat", ""},
{"group:food_wheat", "group:food_sugar", "group:food_wheat"},
{"", "group:food_wheat", ""},
}
})
minetest.register_craftitem("farming:donut_chocolate", {
description = S("Chocolate Donut"),
inventory_image = "farming_donut_chocolate.png",
on_use = minetest.item_eat(6),
})
minetest.register_craft({
output = "farming:donut_chocolate",
recipe = {
{"group:food_cocoa"},
{"farming:donut"},
}
})
minetest.register_craftitem("farming:donut_apple", {
description = S("Apple Donut"),
inventory_image = "farming_donut_apple.png",
on_use = minetest.item_eat(6),
})
minetest.register_craft({
output = "farming:donut_apple",
recipe = {
{"default:apple"},
{"farming:donut"},
}
})
--= Porridge Oats
minetest.register_craftitem("farming:porridge", {
description = S("Porridge"),
inventory_image = "farming_porridge.png",
on_use = minetest.item_eat(6, "farming:bowl"),
})
minetest.after(0, function()
local fluid = "bucket:bucket_water"
local fluid_return = "bucket:bucket_water"
if minetest.get_modpath("mobs") and mobs and mobs.mod == "redo" then
fluid = "group:food_milk"
fluid_return = "mobs:bucket_milk"
end
minetest.register_craft({
type = "shapeless",
output = "farming:porridge",
recipe = {
"group:food_barley", "group:food_barley", "group:food_wheat",
"group:food_wheat", "group:food_bowl", fluid
},
replacements = {{fluid_return, "bucket:bucket_empty"}}
})
minetest.register_craft({
type = "shapeless",
output = "farming:porridge",
recipe = {
"group:food_oats", "group:food_oats", "group:food_oats",
"group:food_oats", "group:food_bowl", fluid
},
replacements = {{fluid_return, "bucket:bucket_empty"}}
})
end)
--= Jaffa Cake
minetest.register_craftitem("farming:jaffa_cake", {
description = S("Jaffa Cake"),
inventory_image = "farming_jaffa_cake.png",
on_use = minetest.item_eat(6),
})
minetest.register_craft({
type = "shapeless",
output = "farming:jaffa_cake",
recipe = {
"farming:baking_tray", "group:food_egg", "group:food_sugar",
"group:food_flour", "group:food_cocoa", "group:food_orange",
"group:food_milk"
},
replacements = {
{"farming:baking_tray", "farming:baking_tray"},
{"mobs:bucket_milk", "bucket:bucket_empty"}
}
})
-- Apple Pie
minetest.register_craftitem("farming:apple_pie", {
description = S("Apple Pie"),
inventory_image = "farming_apple_pie.png",
on_use = minetest.item_eat(6),
})
minetest.register_craft({
output = "farming:apple_pie",
type = "shapeless",
recipe = {
"group:food_flour", "group:food_sugar",
"group:food_apple", "group:food_baking_tray"
},
replacements = {{"group:food_baking_tray", "farming:baking_tray"}}
})

View File

@ -1,46 +1,76 @@
for i = 4, 5 do
-- Override grass to drop wheat and oat seeds
-- Override default grass and have it drop Wheat Seeds
local rarity_lookup = {[1] = 50, [2] = 50, [3] = 50, [4] = 5, [5] = 5}
minetest.override_item("default:grass_" .. i, {
drop = {
max_items = 1,
items = {
{items = {"farming:seed_wheat"}, rarity = 5},
{items = {"farming:seed_oat"},rarity = 5},
{items = {"default:grass_1"}},
if minetest.registered_nodes["default:grass_1"] then
for i = 1, 5 do
minetest.override_item("default:grass_" .. i, {
drop = {
max_items = 1,
items = {
{items = {"farming:seed_wheat"}, rarity = rarity_lookup[i]},
{items = {"farming:seed_oat"},rarity = rarity_lookup[i]},
{items = {"default:grass_1"}}
}
}
},
})
})
end
end
-- Override default dry grass and have it drop Barley Seeds
-- override dry grass to drop barley and rye seeds
if minetest.registered_nodes["default:dry_grass_1"] then
if minetest.registered_nodes["default:dry_grass_1"] then
for i = 1, 5 do
minetest.override_item("default:dry_grass_" .. i, {
drop = {
max_items = 1,
items = {
{items = {"farming:seed_barley"}, rarity = 5},
{items = {"farming:seed_rye"},rarity = 5},
{items = {"default:dry_grass_1"}},
{items = {"farming:seed_barley"}, rarity = rarity_lookup[i]},
{items = {"farming:seed_rye"}, rarity = rarity_lookup[i]},
{items = {"default:dry_grass_1"}}
}
},
}
})
end
end
-- Override default Jungle Grass and have it drop Cotton Seeds
-- override jungle grass to drop cotton and rice seeds
minetest.override_item("default:junglegrass", {
drop = {
max_items = 1,
items = {
{items = {"farming:seed_cotton"}, rarity = 8},
{items = {"farming:seed_rice"},rarity = 8},
{items = {"default:junglegrass"}},
if minetest.registered_nodes["default:junglegrass"] then
minetest.override_item("default:junglegrass", {
drop = {
max_items = 1,
items = {
{items = {"farming:seed_cotton"}, rarity = 8},
{items = {"farming:seed_rice"}, rarity = 8},
{items = {"default:junglegrass"}}
}
}
},
})
})
end
-- override mineclone tallgrass to drop all sof the above seeds
if farming.mcl then
minetest.override_item("mcl_flowers:tallgrass", {
drop = {
max_items = 1,
items = {
{items = {"mcl_farming:wheat_seeds"}, rarity = 5},
{items = {"farming:seed_oat"},rarity = 5},
{items = {"farming:seed_barley"}, rarity = 5},
{items = {"farming:seed_rye"},rarity = 5},
{items = {"farming:seed_cotton"}, rarity = 8},
{items = {"farming:seed_rice"},rarity = 8}
}
}
})
end

372
hoes.lua
View File

@ -1,28 +1,22 @@
local S = farming.intllib
local tr = minetest.get_modpath("toolranks")
-- translation and mod check
local S = minetest.get_translator("farming")
local mod_tr = minetest.get_modpath("toolranks")
-- Hoe registration function
farming.register_hoe = function(name, def)
-- Check for : prefix (register new hoes in your mod's namespace)
if name:sub(1,1) ~= ":" then
name = ":" .. name
end
if name:sub(1,1) ~= ":" then name = ":" .. name end
-- Check def table
if def.description == nil then
def.description = S("Hoe")
end
if def.description == nil then def.description = S("Hoe") end
if def.inventory_image == nil then
def.inventory_image = "unknown_item.png"
end
if def.inventory_image == nil then def.inventory_image = "unknown_item.png" end
if def.max_uses == nil then
def.max_uses = 30
end
if def.max_uses == nil then def.max_uses = 30 end
-- add hoe group
def.groups = def.groups or {}
@ -32,20 +26,24 @@ farming.register_hoe = function(name, def)
minetest.register_tool(name, {
description = def.description,
inventory_image = def.inventory_image,
on_use = function(itemstack, user, pointed_thing)
return farming.hoe_on_use(itemstack, user, pointed_thing, def.max_uses)
end,
groups = def.groups,
sound = {breaks = "default_tool_breaks"},
damage_groups = def.damage_groups or {fleshy = 1},
on_use = function(itemstack, user, pointed_thing)
return farming.hoe_on_use(itemstack, user, pointed_thing, def.max_uses)
end
})
-- Register its recipe
if def.recipe then
minetest.register_craft({
output = name:sub(2),
recipe = def.recipe
})
elseif def.material then
minetest.register_craft({
output = name:sub(2),
recipe = {
@ -61,77 +59,87 @@ end
function farming.hoe_on_use(itemstack, user, pointed_thing, uses)
local pt = pointed_thing
local pt = pointed_thing or {}
local is_used = false
-- am I going to hoe the top of a dirt node?
if not pt or pt.type ~= "node"
or pt.above.y ~= pt.under.y + 1 then
return
if pt.type == "node" and pt.above.y == pt.under.y + 1 then
local under = minetest.get_node(pt.under)
local upos = pointed_thing.under
if minetest.is_protected(upos, user:get_player_name()) then
minetest.record_protection_violation(upos, user:get_player_name())
return
end
local p = {x = pt.under.x, y = pt.under.y + 1, z = pt.under.z}
local above = minetest.get_node(p)
-- return if any of the nodes is not registered
if not minetest.registered_nodes[under.name]
or not minetest.registered_nodes[above.name] then return end
-- check if the node above the pointed thing is air
if above.name ~= "air" then return end
-- check if pointing at dirt
if minetest.get_item_group(under.name, "soil") ~= 1 then return end
-- check if (wet) soil defined
local ndef = minetest.registered_nodes[under.name]
if ndef.soil == nil or ndef.soil.wet == nil or ndef.soil.dry == nil then
return
end
if minetest.is_protected(pt.under, user:get_player_name()) then
minetest.record_protection_violation(pt.under, user:get_player_name())
return
end
-- turn the node into soil, wear out item and play sound
minetest.set_node(pt.under, {name = ndef.soil.dry}) ; is_used = true
minetest.sound_play("default_dig_crumbly", {pos = pt.under, gain = 0.5}, true)
end
local under = minetest.get_node(pt.under)
local upos = pointed_thing.under
if minetest.is_protected(upos, user:get_player_name()) then
minetest.record_protection_violation(upos, user:get_player_name())
return
end
local p = {x = pt.under.x, y = pt.under.y + 1, z = pt.under.z}
local above = minetest.get_node(p)
-- return if any of the nodes is not registered
if not minetest.registered_nodes[under.name]
or not minetest.registered_nodes[above.name] then
return
end
-- check if the node above the pointed thing is air
if above.name ~= "air" then
return
end
-- check if pointing at dirt
if minetest.get_item_group(under.name, "soil") ~= 1 then
return
end
-- check if (wet) soil defined
local ndef = minetest.registered_nodes[under.name]
if ndef.soil == nil or ndef.soil.wet == nil or ndef.soil.dry == nil then
return
end
if minetest.is_protected(pt.under, user:get_player_name()) then
minetest.record_protection_violation(pt.under, user:get_player_name())
return
end
-- turn the node into soil, wear out item and play sound
minetest.set_node(pt.under, {name = ndef.soil.dry})
minetest.sound_play("default_dig_crumbly", {pos = pt.under, gain = 0.5})
local wdef = itemstack:get_definition()
local wear = 65535 / (uses - 1)
if farming.is_creative(user:get_player_name()) then
if tr then
wear = 1
else
wear = 0
-- using hoe as weapon
if pt.type == "object" then
local ent = pt.ref and pt.ref:get_luaentity()
local dir = user:get_look_dir()
if (ent and ent.name ~= "__builtin:item"
and ent.name ~= "__builtin:falling_node") or pt.ref:is_player() then
pt.ref:punch(user, nil, {full_punch_interval = 1.0,
damage_groups = wdef.damage_groups}, dir)
is_used = true
end
end
if tr then
itemstack = toolranks.new_afteruse(itemstack, user, under, {wear = wear})
else
itemstack:add_wear(wear)
end
-- only when used on soil top or external entity
if is_used then
if itemstack:get_count() == 0 and wdef.sound and wdef.sound.breaks then
minetest.sound_play(wdef.sound.breaks, {pos = pt.above,
gain = 0.5}, true)
-- cretive doesnt wear tools but toolranks registers uses with wear so set to 1
if farming.is_creative(user:get_player_name()) then
if mod_tr then wear = 1 else wear = 0 end
end
if mod_tr then
itemstack = toolranks.new_afteruse(itemstack, user, under, {wear = wear})
else
itemstack:add_wear(wear)
end
if itemstack:get_count() == 0 and wdef.sound and wdef.sound.breaks then
minetest.sound_play(wdef.sound.breaks, {pos = pt.above, gain = 0.5}, true)
end
end
return itemstack
@ -149,7 +157,7 @@ farming.register_hoe(":farming:hoe_wood", {
minetest.register_craft({
type = "fuel",
recipe = "farming:hoe_wood",
burntime = 5,
burntime = 5
})
farming.register_hoe(":farming:hoe_stone", {
@ -163,14 +171,17 @@ farming.register_hoe(":farming:hoe_steel", {
description = S("Steel Hoe"),
inventory_image = "farming_tool_steelhoe.png",
max_uses = 200,
material = "default:steel_ingot"
material = "default:steel_ingot",
damage_groups = {fleshy = 2}
})
farming.register_hoe(":farming:hoe_bronze", {
description = S("Bronze Hoe"),
inventory_image = "farming_tool_bronzehoe.png",
max_uses = 500,
max_uses = 250,
groups = {not_in_creative_inventory = 1},
material = "default:bronze_ingot",
damage_groups = {fleshy = 2}
})
farming.register_hoe(":farming:hoe_mese", {
@ -178,6 +189,7 @@ farming.register_hoe(":farming:hoe_mese", {
inventory_image = "farming_tool_mesehoe.png",
max_uses = 350,
groups = {not_in_creative_inventory = 1},
damage_groups = {fleshy = 3}
})
farming.register_hoe(":farming:hoe_diamond", {
@ -185,38 +197,40 @@ farming.register_hoe(":farming:hoe_diamond", {
inventory_image = "farming_tool_diamondhoe.png",
max_uses = 500,
groups = {not_in_creative_inventory = 1},
damage_groups = {fleshy = 3}
})
-- Toolranks support
if tr then
minetest.override_item("farming:hoe_wood", {
original_description = "Wood Hoe",
description = toolranks.create_description("Wood Hoe")})
if mod_tr then
minetest.override_item("farming:hoe_stone", {
original_description = "Stone Hoe",
description = toolranks.create_description("Stone Hoe")})
minetest.override_item("farming:hoe_wood", {
original_description = S("Wood Hoe"),
description = toolranks.create_description(S("Wood Hoe"))})
minetest.override_item("farming:hoe_steel", {
original_description = "Steel Hoe",
description = toolranks.create_description("Steel Hoe")})
minetest.override_item("farming:hoe_stone", {
original_description = S("Stone Hoe"),
description = toolranks.create_description(S("Stone Hoe"))})
minetest.override_item("farming:hoe_bronze", {
original_description = "Bronze Hoe",
description = toolranks.create_description("Bronze Hoe")})
minetest.override_item("farming:hoe_steel", {
original_description = S("Steel Hoe"),
description = toolranks.create_description(S("Steel Hoe"))})
minetest.override_item("farming:hoe_mese", {
original_description = "Mese Hoe",
description = toolranks.create_description("Mese Hoe")})
minetest.override_item("farming:hoe_bronze", {
original_description = S("Bronze Hoe"),
description = toolranks.create_description(S("Bronze Hoe"))})
minetest.override_item("farming:hoe_diamond", {
original_description = "Diamond Hoe",
description = toolranks.create_description("Diamond Hoe")})
minetest.override_item("farming:hoe_mese", {
original_description = S("Mese Hoe"),
description = toolranks.create_description(S("Mese Hoe"))})
minetest.override_item("farming:hoe_diamond", {
original_description = S("Diamond Hoe"),
description = toolranks.create_description(S("Diamond Hoe"))})
end
-- hoe bomb function
local function hoe_area(pos, player)
-- check for protection
@ -229,34 +243,37 @@ local function hoe_area(pos, player)
-- remove flora (grass, flowers etc.)
local res = minetest.find_nodes_in_area(
{x = pos.x - r, y = pos.y - 1, z = pos.z - r},
{x = pos.x + r, y = pos.y + 2, z = pos.z + r},
{"group:flora"})
{x = pos.x - r, y = pos.y - 1, z = pos.z - r},
{x = pos.x + r, y = pos.y + 2, z = pos.z + r},
{"group:flora", "default:dry_shrub"})
for n = 1, #res do
minetest.swap_node(res[n], {name = "air"})
end
-- replace dirt with tilled soil
res = nil
res = minetest.find_nodes_in_area_under_air(
{x = pos.x - r, y = pos.y - 1, z = pos.z - r},
{x = pos.x + r, y = pos.y + 2, z = pos.z + r},
{"group:soil"})
{x = pos.x - r, y = pos.y - 1, z = pos.z - r},
{x = pos.x + r, y = pos.y + 2, z = pos.z + r},
{"group:soil", "ethereal:dry_dirt"})
for n = 1, #res do
minetest.swap_node(res[n], {name = "farming:soil"})
end
end
-- throwable hoe bomb entity
-- throwable hoe bomb
minetest.register_entity("farming:hoebomb_entity", {
physical = true,
visual = "sprite",
visual_size = {x = 1.0, y = 1.0},
textures = {"farming_hoe_bomb.png"},
collisionbox = {-0.1,-0.1,-0.1,0.1,0.1,0.1},
initial_properties = {
physical = true,
visual = "sprite",
visual_size = {x = 1.0, y = 1.0},
textures = {"farming_hoe_bomb.png"},
collisionbox = {-0.1,-0.1,-0.1,0.1,0.1,0.1}
},
lastpos = {},
player = "",
@ -273,12 +290,10 @@ minetest.register_entity("farming:hoebomb_entity", {
if self.lastpos.x ~= nil then
local vel = self.object:getvelocity()
local vel = self.object:get_velocity()
-- only when potion hits something physical
if vel.x == 0
or vel.y == 0
or vel.z == 0 then
if vel.x == 0 or vel.y == 0 or vel.z == 0 then
if self.player ~= "" then
@ -299,42 +314,34 @@ minetest.register_entity("farming:hoebomb_entity", {
end
})
-- actual throwing function
local function throw_potion(itemstack, player)
local playerpos = player:get_pos()
local pos = player:get_pos()
local obj = minetest.add_entity({
x = playerpos.x,
y = playerpos.y + 1.5,
z = playerpos.z
}, "farming:hoebomb_entity")
x = pos.x, y = pos.y + 1.5, z = pos.z}, "farming:hoebomb_entity")
if not obj then return end
local dir = player:get_look_dir()
local velocity = 20
obj:setvelocity({
x = dir.x * velocity,
y = dir.y * velocity,
z = dir.z * velocity
})
obj:set_velocity({x = dir.x * velocity, y = dir.y * velocity, z = dir.z * velocity})
obj:setacceleration({
x = dir.x * -3,
y = -9.5,
z = dir.z * -3
})
obj:set_acceleration({x = dir.x * -3, y = -9.5, z = dir.z * -3})
obj:get_luaentity().player = player
end
-- hoe bomb item
minetest.register_craftitem("farming:hoe_bomb", {
description = S("Hoe Bomb (use or throw on grassy areas to hoe land)"),
inventory_image = "farming_hoe_bomb.png",
groups = {flammable = 2, not_in_creative_inventory = 1},
on_use = function(itemstack, user, pointed_thing)
if pointed_thing.type == "node" then
@ -352,7 +359,21 @@ minetest.register_craftitem("farming:hoe_bomb", {
end,
})
-- Mithril Scythe (special item)
-- helper function
local function node_not_num(nodename)
local num = #nodename:split("_")
local str = ""
if not num or num == 1 then return end
for v = 1, (num - 1) do
str = str .. nodename:split("_")[v] .. "_"
end
return str
end
farming.scythe_not_drops = {"farming:trellis", "farming:beanpole"}
@ -360,62 +381,43 @@ farming.add_to_scythe_not_drops = function(item)
table.insert(farming.scythe_not_drops, item)
end
-- Mithril Scythe (special item)
minetest.register_tool("farming:scythe_mithril", {
description = S("Mithril Scythe (Right-click to harvest and replant crops)"),
description = S("Mithril Scythe (Use to harvest and replant crops)"),
inventory_image = "farming_scythe_mithril.png",
sound = {breaks = "default_tool_breaks"},
on_use = function(itemstack, placer, pointed_thing)
if pointed_thing.type ~= "node" then
return
end
if pointed_thing.type ~= "node" then return end
local pos = pointed_thing.under
local name = placer:get_player_name()
if minetest.is_protected(pos, name) then
return
end
if minetest.is_protected(pos, name) then return end
local node = minetest.get_node_or_nil(pos)
if not node then
return
end
if not node then return end
local def = minetest.registered_nodes[node.name]
if not def then
return
end
if not def.drop then
return
end
if not def.groups
or not def.groups.plant then
if not def or not def.drop or not def.groups or not def.groups.plant then
return
end
local drops = minetest.get_node_drops(node.name, "")
if not drops
or #drops == 0
or (#drops == 1 and drops[1] == "") then
if not drops or #drops == 0 or (#drops == 1 and drops[1] == "") then
return
end
-- get crop name
local mname = node.name:split(":")[1]
local pname = node.name:split(":")[2]
local sname = tonumber(pname:split("_")[2])
pname = pname:split("_")[1]
local pname = node_not_num(node.name:split(":")[2])
if not sname then
return
end
if not pname then return end
-- add dropped items
for _, dropped_item in pairs(drops) do
@ -435,10 +437,7 @@ minetest.register_tool("farming:scythe_mithril", {
if obj then
obj:set_velocity({
x = math.random(-10, 10) / 9,
y = 3,
z = math.random(-10, 10) / 9,
})
x = math.random() - 0.5, y = 3, z = math.random() - 0.5})
end
end
end
@ -449,9 +448,10 @@ minetest.register_tool("farming:scythe_mithril", {
end
-- play sound
minetest.sound_play("default_grass_footstep", {pos = pos, gain = 1.0})
minetest.sound_play("default_grass_footstep", {pos = pos, gain = 1.0}, true)
local replace = mname .. ":" .. pname .. "_1"
-- replace with seed or crop_1
local replace = mname .. ":" .. pname .. "1"
if minetest.registered_nodes[replace] then
@ -464,13 +464,15 @@ minetest.register_tool("farming:scythe_mithril", {
if not farming.is_creative(name) then
itemstack:add_wear(65535 / 150) -- 150 uses
itemstack:add_wear(65535 / 350) -- 350 uses
return itemstack
end
end,
end
})
-- if moreores found add mithril scythe recipe
if minetest.get_modpath("moreores") then
minetest.register_craft({
@ -481,30 +483,4 @@ if minetest.get_modpath("moreores") then
{"", "", "group:stick"}
}
})
farming.register_hoe(":moreores:hoe_silver", {
description = S("%s Hoe"):format(S("Silver")),
inventory_image = "moreores_tool_silverhoe.png",
max_uses = 300,
material = "moreores:silver_ingot",
})
farming.register_hoe(":moreores:hoe_mithril", {
description = S("%s Hoe"):format(S("Mithril")),
inventory_image = "moreores_tool_mithrilhoe.png",
max_uses = 1000,
material = "moreores:mithril_ingot",
})
-- Toolranks support
if tr then
minetest.override_item("moreores:hoe_silver", {
original_description = S("%s Hoe"):format(S("Silver")),
description = toolranks.create_description("Silver Hoe")})
minetest.override_item("moreores:hoe_mithril", {
original_description = S("%s Hoe"):format(S("Mithril")),
description = toolranks.create_description("Mithril Hoe")})
end
end

546
init.lua
View File

@ -1,21 +1,54 @@
--[[
Farming Redo Mod
by TenPlus1
Farming Redo Mod by TenPlus1
NEW growing routine by prestidigitator
auto-refill by crabman77
]]
-- Translation support
local S = minetest.get_translator("farming")
-- global
farming = {
mod = "redo",
version = "20200527",
version = "20240924",
path = minetest.get_modpath("farming"),
select = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}
},
registered_plants = {}
select = {type = "fixed", fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}},
select_final = {type = "fixed", fixed = {-0.5, -0.5, -0.5, 0.5, -2.5/16, 0.5}},
registered_plants = {},
min_light = 12, max_light = 15,
mapgen = minetest.get_mapgen_setting("mg_name"),
use_utensils = minetest.settings:get_bool("farming_use_utensils") ~= false,
mtg = minetest.get_modpath("default"),
eth = minetest.get_modpath("ethereal"),
mcl = minetest.get_modpath("mcl_core"),
mcl_hardness = 0.01,
translate = S
}
-- determine which sounds to use, default or mcl_sounds
local function sound_helper(snd)
farming[snd] = (farming.mtg and default[snd]) or (farming.mcl and mcl_sounds[snd])
or function() return {} end
end
sound_helper("node_sound_defaults")
sound_helper("node_sound_stone_defaults")
sound_helper("node_sound_dirt_defaults")
sound_helper("node_sound_sand_defaults")
sound_helper("node_sound_gravel_defaults")
sound_helper("node_sound_wood_defaults")
sound_helper("node_sound_leaves_defaults")
sound_helper("node_sound_ice_defaults")
sound_helper("node_sound_metal_defaults")
sound_helper("node_sound_water_defaults")
sound_helper("node_sound_snow_defaults")
sound_helper("node_sound_glass_defaults")
-- check for creative mode or priv
local creative_mode_cache = minetest.settings:get_bool("creative_mode")
@ -23,24 +56,17 @@ function farming.is_creative(name)
return creative_mode_cache or minetest.check_player_privs(name, {creative = true})
end
-- stats, locals, settings, function helper
local statistics = dofile(farming.path .. "/statistics.lua")
-- Intllib
local S = dofile(farming.path .. "/intllib.lua")
farming.intllib = S
-- Utility Function
local random, floor = math.random, math.floor
local time_speed = tonumber(minetest.settings:get("time_speed")) or 72
local SECS_PER_CYCLE = (time_speed > 0 and (24 * 60 * 60) / time_speed) or 0
local function clamp(x, min, max)
return (x < min and min) or (x > max and max) or x
end
local function clamp(x, min, max) return (x < min and min) or (x > max and max) or x end
-- return amount of day or night that has elapsed
-- dt is time elapsed, count_day if true counts day, otherwise night
local function day_or_night_time(dt, count_day)
local t_day = minetest.get_timeofday()
@ -69,7 +95,9 @@ local function day_or_night_time(dt, count_day)
local dt_c = clamp(t2_c, 0, 0.5) - clamp(t1_c, 0, 0.5) -- this cycle
if t1_c < -0.5 then
local nc = math.floor(-t1_c)
local nc = floor(-t1_c)
t1_c = t1_c + nc
dt_c = dt_c + 0.5 * nc + clamp(-t1_c - 0.5, 0, 0.5)
end
@ -77,22 +105,30 @@ local function day_or_night_time(dt, count_day)
return dt_c * SECS_PER_CYCLE
end
-- Growth Logic
local STAGE_LENGTH_AVG = tonumber(
minetest.settings:get("farming_stage_length")) or 160
local STAGE_LENGTH_AVG = tonumber(minetest.settings:get("farming_stage_length")) or 200
local STAGE_LENGTH_DEV = STAGE_LENGTH_AVG / 6
-- quick start seed timer
farming.start_seed_timer = function(pos)
local timer = minetest.get_node_timer(pos)
local grow_time = floor(random(STAGE_LENGTH_DEV, STAGE_LENGTH_AVG))
timer:start(grow_time)
end
-- return plant name and stage from node provided
local function plant_name_stage(node)
local name
if type(node) == "table" then
if node.name then
name = node.name
if node.name then name = node.name
elseif node.x and node.y and node.z then
node = minetest.get_node_or_nil(node)
name = node and node.name
@ -101,9 +137,7 @@ local function plant_name_stage(node)
name = tostring(node)
end
if not name or name == "ignore" then
return nil
end
if not name or name == "ignore" then return nil end
local sep_pos = name:find("_[^_]+$")
@ -119,7 +153,6 @@ local function plant_name_stage(node)
return name, 0
end
-- Map from node name to
-- { plant_name = ..., name = ..., stage = n, stages_left = { node_name, ... } }
@ -128,30 +161,22 @@ local plant_stages = {}
farming.plant_stages = plant_stages
--- Registers the stages of growth of a (possible plant) node.
--
-- @param node
-- Node or position table, or node name.
-- @return
-- The (possibly zero) number of stages of growth the plant will go through
-- before being fully grown, or nil if not a plant.
local register_plant_node
-- @param node - Node or position table, or node name.
-- @return - The (possibly zero) number of stages of growth the plant will go through
-- before being fully grown, or nil if not a plant.
-- Recursive helper
local function reg_plant_stages(plant_name, stage, force_last)
local node_name = plant_name and plant_name .. "_" .. stage
local node_def = node_name and minetest.registered_nodes[node_name]
if not node_def then
return nil
end
if not node_def then return nil end
local stages = plant_stages[node_name]
if stages then
return stages
end
if stages then return stages end
if minetest.get_item_group(node_name, "growing") > 0 then
@ -170,30 +195,26 @@ local function reg_plant_stages(plant_name, stage, force_last)
local old_constr = node_def.on_construct
local old_destr = node_def.on_destruct
minetest.override_item(node_name,
{
on_construct = function(pos)
minetest.override_item(node_name, {
if old_constr then
old_constr(pos)
end
on_construct = function(pos)
farming.handle_growth(pos)
end,
if old_constr then old_constr(pos) end
on_destruct = function(pos)
farming.handle_growth(pos)
end,
minetest.get_node_timer(pos):stop()
on_destruct = function(pos)
if old_destr then
old_destr(pos)
end
end,
minetest.get_node_timer(pos):stop()
on_timer = function(pos, elapsed)
return farming.plant_growth_timer(pos, elapsed, node_name)
end,
})
if old_destr then old_destr(pos) end
end,
on_timer = function(pos, elapsed)
return farming.plant_growth_timer(pos, elapsed, node_name)
end,
})
end
elseif force_last then
@ -213,26 +234,25 @@ local function reg_plant_stages(plant_name, stage, force_last)
return stages
end
-- split name and stage and register crop
local register_plant_node = function(node)
local function register_plant_node(node)
local plant_name, stage = plant_name_stage(node)
if plant_name then
local stages = reg_plant_stages(plant_name, stage, false)
return stages and #stages.stages_left
else
return nil
end
end
-- check for further growth and set or stop timer
local function set_growing(pos, stages_left)
if not stages_left then
return
end
if not stages_left then return end
local timer = minetest.get_node_timer(pos)
@ -244,7 +264,7 @@ local function set_growing(pos, stages_left)
stage_length = clamp(stage_length, 0.5 * STAGE_LENGTH_AVG, 3.0 * STAGE_LENGTH_AVG)
timer:set(stage_length, -0.5 * math.random() * STAGE_LENGTH_AVG)
timer:set(stage_length, -0.5 * random() * STAGE_LENGTH_AVG)
end
elseif timer:is_started() then
@ -252,21 +272,18 @@ local function set_growing(pos, stages_left)
end
end
-- detects a crop at given position, starting or stopping growth timer when needed
function farming.handle_growth(pos, node)
if not pos then
return
end
if not pos then return end
local stages_left = register_plant_node(node or pos)
if stages_left then
set_growing(pos, stages_left)
end
if stages_left then set_growing(pos, stages_left) end
end
-- register crops nodes and add timer functions
minetest.after(0, function()
@ -275,86 +292,109 @@ minetest.after(0, function()
end
end)
-- Just in case a growing type or added node is missed (also catches existing
-- nodes added to map before timers were incorporated).
minetest.register_abm({
label = "Start crop timer",
nodenames = {"group:growing"},
interval = 300,
chance = 1,
catch_up = false,
action = function(pos, node)
farming.handle_growth(pos, node)
-- skip if node timer already active
if minetest.get_node_timer(pos):is_started() then return end
-- check if group:growing node is a seed
local def = minetest.registered_nodes[node.name]
if def and def.groups and def.groups.seed then
if def.on_timer then -- start node timer if found
farming.start_seed_timer(pos)
return
end
local next_stage = def.next_plant
def = minetest.registered_nodes[next_stage]
if def then -- switch seed without timer to stage_1 of crop
local p2 = def.place_param2 or 1
minetest.set_node(pos, {name = next_stage, param2 = p2})
end
else
farming.handle_growth(pos, node) -- start normal crop timer
end
end
})
-- default check crop is on wet soil
farming.can_grow = function(pos)
local below = minetest.get_node({x = pos.x, y = pos.y -1, z = pos.z})
return minetest.get_item_group(below.name, "soil") >= 3
end
-- Plant timer function that grows plants under the right conditions.
function farming.plant_growth_timer(pos, elapsed, node_name)
local stages = plant_stages[node_name]
if not stages then
return false
end
if not stages then return false end
local max_growth = #stages.stages_left
if max_growth <= 0 then
return false
end
if max_growth <= 0 then return false end
-- custom growth check
local chk = minetest.registered_nodes[node_name].growth_check
local chk1 = minetest.registered_nodes[node_name].growth_check -- old
local chk2 = minetest.registered_nodes[node_name].can_grow -- new
if chk then
if chk1 then -- custom farming redo growth_check function
if chk(pos, node_name) then
return true
end
if not chk1(pos, node_name) then return true end
-- otherwise check for wet soil beneath crop
else
local under = minetest.get_node({ x = pos.x, y = pos.y - 1, z = pos.z })
elseif chk2 then -- custom mt 5.9x farming can_grow function
if minetest.get_item_group(under.name, "soil") < 3 then
return true
end
end
if not chk2(pos) then return true end
-- default mt 5.9x farming.can_grow function
elseif not farming.can_grow(pos) then return true end
local growth
local light_pos = {x = pos.x, y = pos.y, z = pos.z}
local lambda = elapsed / STAGE_LENGTH_AVG
if lambda < 0.1 then
return true
end
if lambda < 0.1 then return true end
local MIN_LIGHT = minetest.registered_nodes[node_name].minlight or 12
local MAX_LIGHT = minetest.registered_nodes[node_name].maxlight or 15
--print ("---", MIN_LIGHT, MAX_LIGHT)
local MIN_LIGHT = minetest.registered_nodes[node_name].minlight or farming.min_light
local MAX_LIGHT = minetest.registered_nodes[node_name].maxlight or farming.max_light
if max_growth == 1 or lambda < 2.0 then
local light = (minetest.get_node_light(light_pos) or 0)
--print ("light level:", light)
if light < MIN_LIGHT or light > MAX_LIGHT then
return true
end
if light < MIN_LIGHT or light > MAX_LIGHT then return true end
growth = 1
else
local night_light = (minetest.get_node_light(light_pos, 0) or 0)
local day_light = (minetest.get_node_light(light_pos, 0.5) or 0)
local night_light = (minetest.get_node_light(light_pos, 0) or 0)
local day_light = (minetest.get_node_light(light_pos, 0.5) or 0)
local night_growth = night_light >= MIN_LIGHT and night_light <= MAX_LIGHT
local day_growth = day_light >= MIN_LIGHT and day_light <= MAX_LIGHT
if not night_growth then
if not day_growth then
return true
end
if not day_growth then return true end
lambda = day_or_night_time(elapsed, true) / STAGE_LENGTH_AVG
@ -365,16 +405,14 @@ function farming.plant_growth_timer(pos, elapsed, node_name)
growth = statistics.poisson(lambda, max_growth)
if growth < 1 then
return true
end
if growth < 1 then return true end
end
if minetest.registered_nodes[stages.stages_left[growth]] then
local p2 = minetest.registered_nodes[stages.stages_left[growth] ].place_param2 or 1
minetest.swap_node(pos, {name = stages.stages_left[growth], param2 = p2})
minetest.set_node(pos, {name = stages.stages_left[growth], param2 = p2})
else
return true
end
@ -382,16 +420,15 @@ function farming.plant_growth_timer(pos, elapsed, node_name)
return growth ~= max_growth
end
-- refill placed plant by crabman (26/08/2015) updated by TenPlus1
function farming.refill_plant(player, plantname, index)
local inv = player:get_inventory()
local inv = player and player:get_inventory() ; if not inv then return end
local old_stack = inv:get_stack("main", index)
if old_stack:get_name() ~= "" then
return
end
if old_stack:get_name() ~= "" then return end
for i, stack in ipairs(inv:get_list("main")) do
@ -406,46 +443,38 @@ function farming.refill_plant(player, plantname, index)
end
end
-- Place Seeds on Soil
function farming.place_seed(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
if not itemstack or not pt or pt.type ~= "node" then return end
local under = minetest.get_node(pt.under)
-- 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)
return def.on_rightclick(pt.under, under, placer, itemstack, pt)
end
local above = minetest.get_node(pt.above)
-- check if pointing at the top of the node
if pt.above.y ~= pt.under.y + 1 then
return
end
if pt.above.y ~= pt.under.y + 1 then return end
-- return if any of the nodes is not registered
if not minetest.registered_nodes[under.name]
or not minetest.registered_nodes[above.name] then
return
end
or not minetest.registered_nodes[above.name] then return end
-- can I replace above node, and am I pointing at soil
-- can I replace above node, and am I pointing directly at soil
if not minetest.registered_nodes[above.name].buildable_to
or minetest.get_item_group(under.name, "soil") < 2
-- avoid multiple seed placement bug
or minetest.get_item_group(above.name, "plant") ~= 0 then
return
end
or minetest.get_item_group(above.name, "plant") ~= 0 then return end
-- is player planting seed?
local name = placer and placer:get_player_name() or ""
@ -457,11 +486,15 @@ function farming.place_seed(itemstack, placer, pointed_thing, plantname)
minetest.set_node(pt.above, {name = plantname, param2 = p2})
--minetest.get_node_timer(pt.above):start(1)
--farming.handle_growth(pt.above)--, node)
farming.start_seed_timer(pt.above)
minetest.sound_play("default_place_node", {pos = pt.above, gain = 1.0})
minetest.log("action", string.format("%s planted %s at %s",
(placer and placer:is_player() and placer:get_player_name() or "A mod"),
itemstack:get_name(), minetest.pos_to_string(pt.above)
))
if placer and itemstack
and not farming.is_creative(placer:get_player_name()) then
@ -472,12 +505,8 @@ function farming.place_seed(itemstack, placer, pointed_thing, plantname)
-- check for refill
if itemstack:get_count() == 0 then
minetest.after(0.10,
farming.refill_plant,
placer,
name,
placer:get_wield_index()
)
minetest.after(0.2, farming.refill_plant,
placer, name, placer:get_wield_index())
end
end
@ -485,13 +514,11 @@ function farming.place_seed(itemstack, placer, pointed_thing, plantname)
end
end
-- Function to register plants (default farming compatibility)
farming.register_plant = function(name, def)
if not def.steps then
return nil
end
if not def.steps then return nil end
local mname = name:split(":")[1]
local pname = name:split(":")[2]
@ -510,19 +537,34 @@ farming.register_plant = function(name, def)
inventory_image = def.inventory_image,
wield_image = def.inventory_image,
drawtype = "signlike",
groups = {seed = 1, snappy = 3, attached_node = 1, flammable = 2},
groups = {
seed = 1, snappy = 3, attached_node = 1, flammable = 2, growing = 1,
compostability = 65, handy = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
paramtype = "light",
paramtype2 = "wallmounted",
walkable = false,
sunlight_propagates = true,
selection_box = farming.select,
place_param2 = def.place_param2 or nil,
place_param2 = 1, -- place seed flat
next_plant = mname .. ":" .. pname .. "_1",
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer,
pointed_thing, mname .. ":" .. pname .. "_1")
on_timer = function(pos, elapsed)
local def = minetest.registered_nodes[mname .. ":" .. pname .. "_1"]
if def then
minetest.swap_node(pos, {name = def.next_plant, param2 = def.place_param2})
end
end,
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing,
mname .. ":seed_" .. pname)
end
})
-- Register harvest
@ -536,9 +578,11 @@ farming.register_plant = function(name, def)
for i = 1, def.steps do
local base_rarity = 1
if def.steps ~= 1 then
base_rarity = 8 - (i - 1) * 7 / (def.steps - 1)
end
local drop = {
items = {
{items = {mname .. ":" .. pname}, rarity = base_rarity},
@ -548,13 +592,16 @@ farming.register_plant = function(name, def)
}
}
local sel = farming.select
local g = {
snappy = 3, flammable = 2, plant = 1, growing = 1,
handy = 1, snappy = 3, flammable = 2, plant = 1, growing = 1,
attached_node = 1, not_in_creative_inventory = 1,
}
-- Last step doesn't need growing=1 so Abm never has to check these
-- also increase selection box for visual indication plant has matured
if i == def.steps then
sel = farming.select_final
g.growing = 0
end
@ -566,7 +613,10 @@ farming.register_plant = function(name, def)
next_plant = mname .. ":" .. pname .. "_" .. (i + 1)
end
local desc = pname:gsub("^%l", string.upper)
minetest.register_node(node_name, {
description = S(desc) .. S(" Crop"),
drawtype = "plantlike",
waving = 1,
tiles = {mname .. "_" .. pname .. "_" .. i .. ".png"},
@ -577,91 +627,137 @@ farming.register_plant = function(name, def)
buildable_to = true,
sunlight_propagates = true,
drop = drop,
selection_box = farming.select,
selection_box = sel,
groups = g,
sounds = default.node_sound_leaves_defaults(),
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults(),
minlight = def.minlight,
maxlight = def.maxlight,
next_plant = next_plant,
next_plant = next_plant
})
end
-- add to farming.registered_plants
farming.registered_plants[mname .. ":" .. pname] = {
crop = mname .. ":" .. pname,
seed = mname .. ":seed_" .. pname,
steps = def.steps,
minlight = def.minlight,
maxlight = def.maxlight
}
--print(dump(farming.registered_plants[mname .. ":" .. pname]))
-- Return info
-- add to farming.registered_plants
farming.registered_plants[mname .. ":" .. pname] = {
crop = mname .. ":" .. pname,
seed = mname .. ":seed_" .. pname,
steps = def.steps,
minlight = def.minlight,
maxlight = def.maxlight
}
-- print(dump(farming.registered_plants[mname .. ":" .. pname]))
return {seed = mname .. ":seed_" .. pname, harvest = mname .. ":" .. pname}
end
-- default settings
farming.carrot = 0.001
farming.potato = 0.001
farming.tomato = 0.001
farming.cucumber = 0.001
farming.corn = 0.001
farming.coffee = 0.001
farming.melon = 0.001
farming.pumpkin = 0.001
farming.asparagus = 0.002
farming.eggplant = 0.002
farming.spinach = 0.002
farming.carrot = 0.002
farming.potato = 0.002
farming.tomato = 0.002
farming.cucumber = 0.002
farming.corn = 0.002
farming.coffee = 0.002
farming.melon = 0.009
farming.pumpkin = 0.009
farming.cocoa = true
farming.raspberry = 0.001
farming.blueberry = 0.001
farming.rhubarb = 0.001
farming.beans = 0.001
farming.grapes = 0.001
farming.raspberry = 0.002
farming.blueberry = 0.002
farming.rhubarb = 0.002
farming.beans = 0.002
farming.grapes = 0.002
farming.barley = true
farming.chili = 0.003
farming.hemp = 0.003
farming.garlic = 0.001
farming.onion = 0.001
farming.garlic = 0.002
farming.onion = 0.002
farming.pepper = 0.002
farming.pineapple = 0.001
farming.peas = 0.001
farming.beetroot = 0.001
farming.pineapple = 0.003
farming.peas = 0.002
farming.beetroot = 0.002
farming.mint = 0.005
farming.cabbage = 0.002
farming.blackberry = 0.002
farming.soy = 0.002
farming.vanilla = 0.002
farming.lettuce = 0.002
farming.artichoke = 0.002
farming.parsley = 0.002
farming.sunflower = 0.002
farming.ginger = 0.002
farming.strawberry = 0.002
farming.cotton = 0.003
farming.grains = true
farming.rarety = 0.002
farming.rice = true
-- Load new global settings if found inside mod folder
local input = io.open(farming.path.."/farming.conf", "r")
if input then
dofile(farming.path .. "/farming.conf")
input:close()
end
local input = io.open(farming.path .. "/farming.conf", "r")
if input then dofile(farming.path .. "/farming.conf") ; input:close() end
-- load new world-specific settings if found inside world folder
local worldpath = minetest.get_worldpath()
input = io.open(worldpath.."/farming.conf", "r")
if input then
dofile(worldpath .. "/farming.conf")
input:close()
input = io.open(worldpath .. "/farming.conf", "r")
if input then dofile(worldpath .. "/farming.conf") ; input:close() end
-- helper function to add {eatable} group to food items, also {flammable}
function farming.add_eatable(item, hp)
local def = minetest.registered_items[item]
if def then
local groups = table.copy(def.groups) or {}
groups.eatable = hp ; groups.flammable = 2
minetest.override_item(item, {groups = groups})
end
end
-- recipe item list and alternatives
dofile(farming.path .. "/item_list.lua")
-- setup soil, register hoes, override grass
if minetest.get_modpath("default") then
dofile(farming.path .. "/soil.lua")
dofile(farming.path .. "/hoes.lua")
end
-- important items
dofile(farming.path.."/soil.lua")
dofile(farming.path.."/hoes.lua")
dofile(farming.path.."/grass.lua")
dofile(farming.path.."/utensils.lua")
-- default crops
dofile(farming.path.."/crops/wheat.lua")
dofile(farming.path.."/crops/cotton.lua")
-- disable crops Mineclone already has
if farming.mcl then
farming.carrot = nil
farming.potato = nil
farming.melon = nil
farming.cocoa = nil
farming.beetroot = nil
farming.sunflower = nil
farming.pumpkin = nil
else
dofile(farming.path.."/crops/wheat.lua") -- default crop outwith mineclone
end
dofile(farming.path.."/crops/cotton.lua") -- default crop
-- helper function
local function ddoo(file, check)
if check then
dofile(farming.path .. "/crops/" .. file)
end
if check then dofile(farming.path .. "/crops/" .. file) end
end
-- add additional crops and food (if enabled)
@ -688,12 +784,36 @@ ddoo("pineapple.lua", farming.pineapple)
ddoo("peas.lua", farming.peas)
ddoo("beetroot.lua", farming.beetroot)
ddoo("chili.lua", farming.chili)
ddoo("ryeoatrice.lua", farming.grains)
ddoo("rye_oat.lua", farming.grains)
ddoo("rice.lua", farming.rice)
ddoo("mint.lua", farming.mint)
ddoo("cabbage.lua", farming.cabbage)
ddoo("blackberry.lua", farming.blackberry)
ddoo("soy.lua", farming.soy)
ddoo("vanilla.lua", farming.vanilla)
ddoo("lettuce.lua", farming.lettuce)
ddoo("artichoke.lua", farming.artichoke)
ddoo("parsley.lua", farming.parsley)
ddoo("sunflower.lua", farming.sunflower)
ddoo("strawberry.lua", farming.strawberry)
ddoo("asparagus.lua", farming.asparagus)
ddoo("eggplant.lua", farming.eggplant)
ddoo("spinach.lua", farming.eggplant)
ddoo("ginger.lua", farming.ginger)
dofile(farming.path.."/food.lua")
dofile(farming.path.."/mapgen.lua")
dofile(farming.path.."/compatibility.lua") -- Farming Plus compatibility
dofile(farming.path.."/lucky_block.lua")
-- register food items, non-food items, recipes and stairs
minetest.log("action", "[farming] loaded.")
dofile(farming.path .. "/item_non_food.lua")
dofile(farming.path .. "/item_food.lua")
dofile(farming.path .. "/item_recipes.lua")
dofile(farming.path .. "/item_stairs.lua")
if not farming.mcl then
dofile(farming.path .. "/compatibility.lua") -- Farming Plus compatibility
end
if minetest.get_modpath("lucky_block") then
dofile(farming.path .. "/lucky_block.lua")
end
print("[MOD] Farming Redo loaded")

View File

@ -1,45 +0,0 @@
-- Fallback functions for when `intllib` is not installed.
-- Code released under Unlicense <http://unlicense.org>.
-- Get the latest version of this file at:
-- https://raw.githubusercontent.com/minetest-mods/intllib/master/lib/intllib.lua
local function format(str, ...)
local args = { ... }
local function repl(escape, open, num, close)
if escape == "" then
local replacement = tostring(args[tonumber(num)])
if open == "" then
replacement = replacement..close
end
return replacement
else
return "@"..open..num..close
end
end
return (str:gsub("(@?)@(%(?)(%d+)(%)?)", repl))
end
local gettext, ngettext
if minetest.get_modpath("intllib") then
if intllib.make_gettext_pair then
-- New method using gettext.
gettext, ngettext = intllib.make_gettext_pair()
else
-- Old method using text files.
gettext = intllib.Getter()
end
end
-- Fill in missing functions.
gettext = gettext or function(msgid, ...)
return format(msgid, ...)
end
ngettext = ngettext or function(msgid, msgid_plural, n, ...)
return format(n==1 and msgid or msgid_plural, ...)
end
return gettext, ngettext

1035
item_food.lua Normal file

File diff suppressed because it is too large Load Diff

126
item_list.lua Normal file
View File

@ -0,0 +1,126 @@
-- add group helper
local function add_groups(item, groups)
local def = minetest.registered_items[item]
if def then
local grps = table.copy(def.groups) or {}
for k, v in pairs(groups) do
grps[k] = v
end
minetest.override_item(item, {groups = grps})
end
end
-- default recipe items
farming.recipe_items = {
-- if utensils are disabled then use blank item
saucepan = farming.use_utensils and "farming:saucepan" or "",
pot = farming.use_utensils and "farming:pot" or "",
baking_tray = farming.use_utensils and "farming:baking_tray" or "",
skillet = farming.use_utensils and "farming:skillet" or "",
mortar_pestle = farming.use_utensils and "farming:mortar_pestle" or "",
cutting_board = farming.use_utensils and "farming:cutting_board" or "",
juicer = farming.use_utensils and "farming:juicer" or "",
mixing_bowl = farming.use_utensils and "farming:mixing_bowl" or "",
water_source = "default:water_source",
river_water_source = "default:river_water_source",
bucket_empty = "bucket:bucket_empty",
bucket_water = "bucket:bucket_water",
bucket_river_water = "bucket:bucket_river_water",
drinking_glass = "vessels:drinking_glass",
glass_bottle = "vessels:glass_bottle",
sugar = "farming:sugar",
rose = "flowers:rose",
dye_red = "dye:red",
dye_pink = "dye:pink",
dye_orange = "dye:orange",
dye_green = "dye:green",
dye_brown = "dye:brown",
dye_blue = "dye:blue",
dye_violet = "dye:violet",
dye_yellow = "dye:yellow",
bowl = "farming:bowl",
flour = "group:food_flour",
bread = "farming:bread",
cactus = "default:cactus",
paper = "default:paper",
snow = "default:snow",
string = "farming:string",
wool = "wool:white",
steel_ingot = "default:steel_ingot",
clay_brick = "default:clay_brick",
stone = "default:stone",
glass = "default:glass",
}
add_groups("default:apple", {food_apple = 1})
-- if mineclone found then change recipe items
if farming.mcl then
local a = farming.recipe_items
a.water_source = "mcl_core:water_source"
a.river_water_source = "mclx_core:river_water_source"
a.bucket_empty = "mcl_buckets:bucket_empty"
a.bucket_water = "mcl_buckets:bucket_water"
a.bucket_river_water = "mcl_buckets:bucket_river_water"
a.drinking_glass = "mcl_potions:glass_bottle"
a.glass_bottle = "mcl_potions:glass_bottle"
a.sugar = "mcl_core:sugar"
a.rose = "mcl_flowers:rose_bush"
a.dye_red = "mcl_dye:red"
a.dye_pink = "mcl_dye:pink"
a.dye_orange = "mcl_dye:orange"
a.dye_green = "mcl_dye:green"
a.dye_brown = "mcl_dye:brown"
a.dye_blue = "mcl_dye:blue"
a.dye_violet = "mcl_dye:violet"
a.dye_yellow = "mcl_dye:yellow"
a.bowl = "mcl_core:bowl"
-- a.flour = "mcl_farming:bread"
a.bread = "mcl_farming:bread"
a.cactus = "mcl_core:cactus"
a.paper = "mcl_core:paper"
a.snow = "mcl_throwing:snowball"
a.string = "mcl_mobitems:string"
a.wool = "mcl_wool:white"
a.steel_ingot = "mcl_core:iron_ingot"
a.clay_brick = "mcl_core:clay_lump"
a.stone = "mcl_core:stone"
a.glass = "mcl_core:glass"
-- add missing groups for recipes to work properly
add_groups("mcl_core:sugar", {food_sugar = 1})
add_groups("mcl_throwing:egg", {food_egg = 1})
add_groups("mcl_farming:wheat_item", {food_wheat = 1})
add_groups("mcl_cocoas:cocoa_beans", {food_cocoa = 1})
add_groups("mcl_core:apple", {food_apple = 1})
add_groups("mcl_core:bowl", {food_bowl = 1})
add_groups("mcl_mobitems:chicken", {food_chicken_raw = 1})
add_groups("mcl_mobitems:cooked_chicken", {food_chicken = 1})
add_groups("mcl_mushrooms:mushroom_brown", {food_mushroom = 1})
add_groups("mcl_farming:carrot_item", {food_carrot = 1})
add_groups("mcl_mobitems:cooked_beef", {food_meat = 1})
add_groups("mcl_mobitems:beef", {food_meat_raw = 1})
add_groups("mcl_farming:potato_item", {food_potato = 1})
add_groups("mcl_farming:bread", {food_bread = 1})
add_groups("mcl_mobitems:milk_bucket", {food_milk = 1})
add_groups("mcl_ocean:dried_kelp", {food_seaweed = 1})
add_groups("mcl_potions:river_water", {food_glass_water = 1})
add_groups("mcl_dye:yellow", {food_lemon = 1, food_banana = 1})
add_groups("mcl_dye:orange", {food_orange = 1})
add_groups("mcl_flowers:sunflower", {food_olive_oil = 1, food_butter = 1})
end

304
item_non_food.lua Normal file
View File

@ -0,0 +1,304 @@
local S = minetest.get_translator("farming")
-- saucepan
minetest.register_craftitem("farming:saucepan", {
description = S("Saucepan"),
inventory_image = "farming_saucepan.png",
groups = {food_saucepan = 1, flammable = 2}
})
-- cooking pot
minetest.register_craftitem("farming:pot", {
description = S("Cooking Pot"),
inventory_image = "farming_pot.png",
groups = {food_pot = 1, flammable = 2}
})
-- baking tray
minetest.register_craftitem("farming:baking_tray", {
description = S("Baking Tray"),
inventory_image = "farming_baking_tray.png",
groups = {food_baking_tray = 1, flammable = 2}
})
-- skillet
minetest.register_craftitem("farming:skillet", {
description = S("Skillet"),
inventory_image = "farming_skillet.png",
groups = {food_skillet = 1, flammable = 2}
})
-- mortar & pestle
minetest.register_craftitem("farming:mortar_pestle", {
description = S("Mortar and Pestle"),
inventory_image = "farming_mortar_pestle.png",
groups = {food_mortar_pestle = 1, flammable = 2}
})
-- cutting board
minetest.register_craftitem("farming:cutting_board", {
description = S("Cutting Board"),
inventory_image = "farming_cutting_board.png",
groups = {food_cutting_board = 1, flammable = 2}
})
-- juicer
minetest.register_craftitem("farming:juicer", {
description = S("Juicer"),
inventory_image = "farming_juicer.png",
groups = {food_juicer = 1, flammable = 2}
})
-- glass mixing bowl
minetest.register_craftitem("farming:mixing_bowl", {
description = S("Glass Mixing Bowl"),
inventory_image = "farming_mixing_bowl.png",
groups = {food_mixing_bowl = 1, flammable = 2}
})
-- Ethanol (thanks to JKMurray for this idea)
minetest.register_node("farming:bottle_ethanol", {
description = S("Bottle of Ethanol"),
drawtype = "plantlike",
tiles = {"farming_bottle_ethanol.png"},
inventory_image = "farming_bottle_ethanol.png",
wield_image = "farming_bottle_ethanol.png",
paramtype = "light",
is_ground_content = false,
walkable = false,
selection_box = {
type = "fixed",
fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25}
},
groups = {vessel = 1, dig_immediate = 3, attached_node = 1, handy = 1},
sounds = farming.node_sound_glass_defaults()
})
-- straw
minetest.register_node("farming:straw", {
description = S("Straw"),
tiles = {"farming_straw.png"},
is_ground_content = false,
groups = {handy = 1, snappy = 3, flammable = 4, fall_damage_add_percent = -30},
sounds = farming.node_sound_leaves_defaults(),
_mcl_hardness = 0.8,
_mcl_blast_resistance = 1
})
-- weed
minetest.register_node("farming:weed", {
description = S("Weed"),
drawtype = "plantlike",
tiles = {"farming_weed.png"},
inventory_image = "farming_weed.png",
paramtype = "light",
paramtype2 = "meshoptions",
place_param2 = 2,
sunlight_propagates = true,
walkable = false,
buildable_to = true,
waving = 1,
selection_box = farming.select,
groups = {snappy = 3, flammable = 4, plant = 1, attached_node = 1},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
})
-- weed bale
minetest.register_node("farming:weed_bale", {
description = S("Weed Bale"),
tiles = {
"farming_weed_bale_top.png", "farming_weed_bale_top.png",
"farming_weed_bale_side.png"
},
paramtype2 = "facedir",
groups = {handy = 1, snappy = 3, flammable = 4, fall_damage_add_percent = -30},
sounds = farming.node_sound_leaves_defaults(),
_mcl_hardness = 0.8,
_mcl_blast_resistance = 1
})
-- hemp oil
minetest.register_node("farming:hemp_oil", {
description = S("Bottle of Hemp Oil"),
drawtype = "plantlike",
tiles = {"farming_hemp_oil.png"},
inventory_image = "farming_hemp_oil.png",
wield_image = "farming_hemp_oil.png",
paramtype = "light",
is_ground_content = false,
walkable = false,
selection_box = {
type = "fixed", fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25}
},
groups = {
food_oil = 1, vessel = 1, dig_immediate = 3, attached_node = 1,
compostability = 45, handy = 1
},
sounds = farming.node_sound_glass_defaults()
})
-- hemp fibre
minetest.register_craftitem("farming:hemp_fibre", {
description = S("Hemp Fibre"),
inventory_image = "farming_hemp_fibre.png",
groups = {compostability = 55}
})
-- hemp block
minetest.register_node("farming:hemp_block", {
description = S("Hemp Block"),
tiles = {"farming_hemp_block.png"},
paramtype = "light",
groups = {
axey = 1, handy = 1, snappy = 2, oddly_breakable_by_hand = 1, flammable = 2,
compostability = 85
},
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults(),
_mcl_hardness = 0.8,
_mcl_blast_resistance = 1
})
-- hemp rope
minetest.register_node("farming:hemp_rope", {
description = S("Hemp Rope"),
walkable = false,
climbable = true,
sunlight_propagates = true,
paramtype = "light",
tiles = {"farming_hemp_rope.png"},
wield_image = "farming_hemp_rope.png",
inventory_image = "farming_hemp_rope.png",
drawtype = "plantlike",
groups = {
handy = 1, axey = 1, swordy = 1, flammable = 2, choppy = 3,
oddly_breakable_by_hand = 3, compostability = 55
},
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults(),
selection_box = {
type = "fixed", fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7}
},
_mcl_hardness = 0.8,
_mcl_blast_resistance = 1
})
--- Wooden scarecrow base
minetest.register_node("farming:scarecrow_bottom", {
description = S("Scarecrow Bottom"),
paramtype = "light",
sunlight_propagates = true,
paramtype2 = "facedir",
tiles = {"default_wood.png"},
drawtype = "nodebox",
node_box = {
type = "fixed",
fixed = {
{-1/16, -8/16, -1/16, 1/16, 8/16, 1/16},
{-12/16, 4/16, -1/16, 12/16, 2/16, 1/16},
}
},
groups = {axey = 1, handy = 1, snappy = 3, flammable = 2},
is_ground_content = false,
_mcl_hardness = 0.8,
_mcl_blast_resistance = 1
})
--= Items we shouldn't add when using Mineclonia/VoxeLibre
if not farming.mcl then
-- Wooden bowl
minetest.register_craftitem("farming:bowl", {
description = S("Wooden Bowl"),
inventory_image = "farming_bowl.png",
groups = {food_bowl = 1, flammable = 2}
})
-- String
minetest.register_craftitem("farming:string", {
description = S("String"),
inventory_image = "farming_string.png",
groups = {flammable = 2}
})
-- Jack 'O Lantern
minetest.register_node("farming:jackolantern", {
description = S("Jack 'O Lantern (punch to turn on and off)"),
tiles = {
"farming_pumpkin_bottom.png^farming_pumpkin_top.png",
"farming_pumpkin_bottom.png",
"farming_pumpkin_side.png",
"farming_pumpkin_side.png",
"farming_pumpkin_side.png",
"farming_pumpkin_side.png^farming_pumpkin_face_off.png"
},
paramtype2 = "facedir",
groups = {
handy = 1, snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, flammable = 2
},
is_ground_content = false,
sounds = farming.node_sound_wood_defaults(),
on_punch = function(pos, node, puncher)
local name = puncher:get_player_name() or ""
if minetest.is_protected(pos, name) then return end
node.name = "farming:jackolantern_on"
minetest.swap_node(pos, node)
end,
_mcl_hardness = 0.8,
_mcl_blast_resistance = 1
})
minetest.register_node("farming:jackolantern_on", {
tiles = {
"farming_pumpkin_bottom.png^farming_pumpkin_top.png",
"farming_pumpkin_bottom.png",
"farming_pumpkin_side.png",
"farming_pumpkin_side.png",
"farming_pumpkin_side.png",
"farming_pumpkin_side.png^farming_pumpkin_face_on.png"
},
light_source = minetest.LIGHT_MAX - 1,
paramtype2 = "facedir",
groups = {
handy = 1, snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, flammable = 2,
not_in_creative_inventory = 1
},
is_ground_content = false,
sounds = farming.node_sound_wood_defaults(),
drop = "farming:jackolantern",
on_punch = function(pos, node, puncher)
local name = puncher:get_player_name() or ""
if minetest.is_protected(pos, name) then return end
node.name = "farming:jackolantern"
minetest.swap_node(pos, node)
end,
_mcl_hardness = 0.8,
_mcl_blast_resistance = 1
})
end

1442
item_recipes.lua Normal file

File diff suppressed because it is too large Load Diff

35
item_stairs.lua Normal file
View File

@ -0,0 +1,35 @@
-- check and register stairs
if minetest.global_exists("stairs") then
if stairs.mod and stairs.mod == "redo" then
stairs.register_all("straw", "farming:straw",
{snappy = 3, flammable = 4},
{"farming_straw.png"},
"Straw",
farming.node_sound_leaves_defaults())
stairs.register_all("hemp_block", "farming:hemp_block",
{snappy = 2, oddly_breakable_by_hand = 1, flammable = 2},
{"farming_hemp_block.png"},
"Hemp Block",
farming.node_sound_leaves_defaults())
else
stairs.register_stair_and_slab("straw", "farming:straw",
{snappy = 3, flammable = 4},
{"farming_straw.png"},
"Straw Stair",
"Straw Slab",
farming.node_sound_leaves_defaults())
stairs.register_stair_and_slab("hemp_block", "farming:hemp_block",
{snappy = 2, oddly_breakable_by_hand = 1, flammable = 2},
{"farming_hemp_block.png"},
"Hemp Block Stair",
"Hemp Block Slab",
farming.node_sound_leaves_defaults())
end
end

View File

@ -23,6 +23,28 @@ THE SOFTWARE.
License of media (textures):
----------------------------
Created by TenPlus1 (CC0):
alt_textures/ethereal_strawberry*.png
farming_spanish_potatoes.png
Created by Hugues Ross (CC BY-SA 4.0):
ethereal_strawberry*.png
Created by NameNotQuality (CC0):
farming_vanilla_flan.png
farming_spaghetti.png
Created by Oz-tal (license: CC BY-SA 3.0):
crops_garlic_*.png
crops_onion.png
farming_cookie.png
farming_grapes.png
farming_vanilla.png
Created by Shadall (CC0):
farming_burger.png
Created by PilzAdam (License: CC BY 3.0):
farming_bread.png
farming_soil.png
@ -63,6 +85,16 @@ Created by VanessaE (License: CC BY 3.0):
farming_cotton_7.png
farming_cotton_8.png
Created by alerikaisattera (License: CC-BY-SA 4.0)
farming_melon_top.png
farming_melon_side.png
farming_melon_bottom.png
farming_pumpkin_bottom.png
farming_pumpkin_top.png
farming_pumpkin_side.png
farming_pumpkin_face_on.png
farming_pumpkin_face_off.png
Created by Doc (License: CC BY 3.0):
farming_cucumber.png
farming_cucumber_1.png
@ -120,14 +152,14 @@ Created by TenPlus1 (CC BY 3.0)
farming_cocoa_2.png
farming_cocoa_3.png
farming_cocoa_beans.png
farming_cookie.png
farming_raspberry_smoothie.png
farming_rhubarb_1.png
farming_rhubarb_2.png
farming_rhubarb_3.png
farming_rhubarb.png
farming_rhubarb_pie.png
farming_hemp*.png
farming_tofu*.png
farming_gingerbread_man.png
Created by ademant (CC-BY-3.0)
farming_rye*.png
@ -142,3 +174,68 @@ Created by VanessaE and edited by SpaghettiToastBook (CC0):
Created by mDiyo (Natura), modified by TenPlus1 (License: CC BY-SA 3.0):
farming_barley.png
Created by OgelGames (CC BY-SA 4.0):
farming_berry_smoothie.png
farming_cactus_juice.png
farming_salad.png
Created by Huhues Ross (CC BY-SA 4.0):
farming_sunflower_bread.png
Created by Felfa (CC0)
farming_blackberry*.png
farming_lettuce*.png
farming_soy*.png
farming_vanilla_*.png
farming_artichoke*.png
farming_parsley*.png
farming_paella*.png
farming_potato_omelette.png
farming_spanish_potatoes_32px.png
farming_vanilla_flan_32px.png
farming_sunflower*.png [except sunflower_bread.png]
farming_mayo*.png
Created by gorlock (CC0)
farming_salt_crystal.png
Created by sirrobzeroone (CC0)
farming_gyoza.png
farming_pineapple_ring.png
Created by smoke_th (CC0 - https://opengameart.org/content/popcorn-icon)
farming_popcorn_32px.png
farming_popcorn.png [resized and edited by TenPlus1]
Created by DMBuce (MIT - https://github.com/DMBuce/hatchling-snacks)
farming_mac_and_cheese.png
Created by XSSheep (CC BY-SA 4.0 - https://minecraft.curseforge.com/projects/pixel-perfection-freshly-updated)
farming_coffee_1.png
farming_coffee_2.png
farming_coffee_3.png
farming_coffee_4.png
farming_coffee_5.png
farming_coffee_beans.png
farming_apple_pie.png (edited by TenPlus1)
farming_blueberry_pie.png (edited by TenPlus1)
farming_rhubarb_pie.png (edited by TenPlus1)
Copyright (C) 2021-2022: Atlante - AFL-1.1
License for code: AFL-1.1
Attribution — You must give appropriate credit, provide a link to the license, and
indicate if changes were made. You may do so in any reasonable manner, but not in any way
that suggests the licensor endorses you or your use.
ShareAlike — If you remix, transform, or build upon the material, you must distribute
your contributions under the same license as the original.
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
farming_asparagus*
farming_eggplant*
farming_spinach*
farming_ginger*

View File

@ -1,195 +0,0 @@
# German translation of the farming mod by TenPlus1
# textdomain: farming
# author: Xanthin
# author: TheDarkTiger
# last update: 2020/Apr/26
###### folder . ######
### init.lua ###
Seed=Saatgut
### compatibility.lua ###
Banana=
Banana Leaves=
Orange=
Strawberry=
### food.lua ###
Sugar=Zucker
Salt=
Rose Water=
Turkish Delight=
Garlic Bread=
Donut=Donut
Chocolate Donut=Schokodonut
Apple Donut=Apfeldonut
Porridge=
Jaffa Cake=
### hoes.lua ###
Hoe=Hacke
Wooden Hoe=Holzhacke
Stone Hoe=Steinhacke
Steel Hoe=Stahlhacke
Bronze Hoe=Bronzehacke
Mese Hoe=Mesehacke
Diamond Hoe=Diamanthacke
# Surcharge du mod [Toolranks] à faire #
Hoe Bomb (use or throw on grassy areas to hoe land)=
Mithril Scythe (Right-click to harvest and replant crops)=
# Surcharge du mod [Toolranks] à faire #
### soil.lua ###
Soil=Ackerboden
Wet Soil=Bewässerter Ackerboden
### utensils.lua ###
Wooden Bowl=
Saucepan=
Cooking Pot=
Baking Tray=
Skillet=
Mortar and Pestle=
Cutting Board=
Juicer=
Glass Mixing Bowl=
###### folder ./crops ######
### barley.lua ###
Barley Seed=Gerstenkörner
Barley=Gerste
### beans.lua ###
Green Beans=Grüne Bohnen
Bean Pole (place on soil before planting beans)=Bohnenstange (vor dem Pflanzen der Bohnen auf den\nAckerboden stellen)
### beetroot.lua ###
Beetroot=
Beetroot Soup=
### blueberry.lua ###
Blueberries=Blaubeeren
Blueberry Muffin=Blaubeermuffin
Blueberry Pie=
### carrot.lua ##
Carrot=Möhre
Carrot Juice=
Golden Carrot=Goldene Möhre
### chili.lua ###
Chili Pepper=
Bowl of Chili=
### cocoa.lua ###
Cocoa Beans=Kakaobohne
Cookie=Keks
Bar of Dark Chocolate=Tafel Zartbitterschokolade
Chocolate Block=
### coffee.lua ###
Coffee Beans=Kaffeebohnen
Cup of Coffee=Tasse Kaffee
### corn.lua ###
Corn=Mais
Corn on the Cob=Maiskolben
Cornstarch=
Bottle of Ethanol=Flasche Ethanol
### cotton.lua ###
Cotton Seed=Baumwollsamen
Cotton=Baumwolle
String=
### cucumber.lua ###
Cucumber=Gurke
### garlic.lua ###
Garlic clove=
Garlic=
Garlic Braid=
### grapes.lua ###
Grapes=Weintrauben
Trellis (place on soil before planting grapes)=Spalier (vor dem Pflanzen der Weintrauben auf den\nAckerboden stellen)
### hemp.lua ###
Hemp Seed=Hanfsamen
Hemp Leaf=Hanfblatt
Bottle of Hemp Oil=Flasche mit Hanföl
Hemp Fibre=Hanffaser
Hemp Block=
Hemp Rope=Hanfseil
### melon.lua ###
Melon Slice=Melonenscheibe
Melon=Melone
### onion.lua ###
Onion=
### peas.lua ###
Pea Pod=
Peas=
Pea Soup=
### pepper.lua ###
Peppercorn=
Pepper=
Ground Pepper=
### pinapple.lua ###
Pineapple Top=
Pineapple=
Pineapple Ring=
Pineapple Juice=
### potato.lua ###
Potato=Kartoffel
Baked Potato=Ofenkartoffel
Cucumber and Potato Salad=
### pumpkin.lua ###
Pumpkin Slice=Kürbisscheibe
Jack 'O Lantern (punch to turn on and off)=Kürbislaterne (Punch zum Ein- und Ausschalten)
Scarecrow Bottom=
Pumpkin Bread=Kürbisbrot
Pumpkin Dough=Kürbisteig
Pumpkin=Kürbis
### raspberry.lua ###
Raspberries=Himbeeren
Raspberry Smoothie=Himbeersmoothie
### rhubarb.lua ###
Rhubarb=Rhabarber
Rhubarb Pie=Rhabarberkuchen
### ryeoatrice.lua ###
Rye=
Rye seed=
Oat=
Oat seed=
Rice=
Rice grains=
Rice Bread=
Rice Flour=
Multigrain Flour=
Multigrain Bread=
### tomato.lua ###
Tomato=Tomate
### wheat.lua ###
Wheat Seed=Weizenkörner
Wheat=Weizen
Straw=Stroh
Flour=Mehl
Bread=Brot
Sliced Bread=
Toast=
Toast Sandwich=

189
locale/farming.de.tr Normal file
View File

@ -0,0 +1,189 @@
# textdomain: farming
Banana=Banane
Banana Leaves=Bananenblätter
Orange=Orange
Artichoke=Artischocke
Crop=-Pflanze
Asparagus=Spargel
Barley Seed=Gerstensamen
Barley=Gerste
Green Beans=Grüne Bohnen
Bean Pole (place on soil before planting beans)=Bohnenstange (vor dem Pflanzen der Bohnen auf den@nAckerboden stellen)
Beetroot=Rote Beete
Blackberries=Brombeeren
Blackberry=Brombeere
Wild Blueberries=Wilde Blaubeeren
Blueberry=Blaubeere
Cabbage=Kohl
Carrot=Möhre
Chili Pepper=Chili
Raw Cocoa Beans=Rohe Kakaobohnen
Cocoa Beans=Kakaobohnen
Coffee Beans=Kaffeebohnen
Coffee=Kaffee
Corn=Mais
Cotton Seed=Baumwollsamen
Cotton=Baumwolle
Wild Cotton=Wilde Baumwolle
Cucumber=Gurke
Eggplant=Aubergine
Garlic clove=Knoblauchzehe
Garlic=Knoblauch
Ginger=Lebkuchen
Grapes=Weintrauben
Trellis (place on soil before planting grapes)=Spalier (vor dem Pflanzen der Weintrauben auf den@nAckerboden stellen)
Hemp Seed=Hanfsamen
Hemp Leaf=Hanfblatt
Hemp=Hanf
Lettuce=Kopfsalat
Melon Slice=Melonenscheibe
Melon=Melone
Mint Seeds=Minzsamen
Mint Leaf=Minzblatt
Mint=Minze
Onion=Zwiebel
Parsley=Petersilie
Pea Pod=Erbsenschote
Pea=Erbse
Peppercorn=Pfefferkorn
Green Pepper=Grüne Paprika
Yellow Pepper=Gelbe Paprika
Red Pepper=Rote Paprika
Pepper=Paprika
Pineapple Top=Ananasdeckel
Pineapple=Ananas
Potato=Kartoffel
Pumpkin Slice=Kürbisscheibe
Pumpkin=Kürbis
Raspberries=Himbeeren
Raspberry=Himbeere
Rhubarb=Rhabarber
Rice Seed=Reissamen
Rice=Reis
Rye seed=Roggensamen
Rye=Roggen
Oat seed=Hafersamen
Oats=Hafer
Soy Pod=Sojaschote
Soy=Soja
Spinach=Spinat
Strawberry=Erdbeere
Sunflower Seeds=Sonnenblumensamen
Sunflower=Sonnenblume
Tomato=Tomate
Vanilla=Vanille
Wheat Seed=Weizensamen
Wheat=Weizen
Hoe=Hacke
Wooden Hoe=Holzhacke
Stone Hoe=Steinhacke
Steel Hoe=Stahlhacke
Bronze Hoe=Bronzehacke
Mese Hoe=Mesehacke
Diamond Hoe=Diamanthacke
Wood Hoe=Holzhacke
Hoe Bomb (use or throw on grassy areas to hoe land)=Hackenbombe (Auf Grasland werfen oder benutzen,@num Land zu bestellen)
Mithril Scythe (Use to harvest and replant crops)=Mithrilsichel (Benutzen, um Nutzpflanzen zu ernten und neu zu pflanzen)
Seed=Saatgut
Flour=Mehl
Garlic Braid=Knoblauchzopf
Corn on the Cob=Maiskolben
Popcorn=Popcorn
Cornstarch=Speisestärke
Cup of Coffee=Tasse Kaffee
Bar of Dark Chocolate=Tafel Zartbitterschokolade
Chocolate Block=Schokoladenblock
Bowl of Chili=Schüssel mit Chili
Chili Powder=Chilipulver
Carrot Juice=Möhrensaft
Blueberry Pie=Blaubeerkuchen
Blueberry Muffin=Blaubeermuffin
Tomato Soup=Tomatensuppe
Sliced Bread=Geschnittenes Brot
Toast=Toast
Toast Sandwich=Toast-Sandwich
Glass of Water=Glas Wasser
Sugar Cube=Zuckerwürfel
Caramel=Karamell
Salt=Salz
Salt crystal=Salzkristall
Mayonnaise=Mayonnaise
Rose Water=Rosenwasser
Turkish Delight=Lokum
Garlic Bread=Knoblauchbrot
Donut=Donut
Chocolate Donut=Schokodonut
Apple Donut=Apfeldonut
Porridge=Haferbrei
Jaffa Cake=Jaffa
Apple Pie=Apfelkuchen
Cactus Juice=Kaktussaft
Pasta=Pasta
Mac & Cheese=Makkaroni mit Käse
Spaghetti=Spaghetti
Bibimbap=Bibimbap
Burger=Burger
Salad=Salat
Triple Berry Smoothie=Dreibeersmoothie
Spanish Potatoes=Spanische Kartoffeln
Potato omelette=Kartoffelomelette
Paella=Paella
Vanilla Flan=Vanilletorte
Vegan Cheese=Veganer Käse
Vegan Butter=Vegane Butter
Onigiri=Onigiri
Gyoza=Gyoza
Mochi=Mochi
Gingerbread Man=Lebkuchenmann
Mint Tea=Minztee
Onion Soup=Zwiebelsuppe
Pea Soup=Erbsensuppe
Ground Pepper=Gemahlener Pfeffer
Pineapple Ring=Ananasscheibe
Pineapple Juice=Ananassaft
Cucumber and Potato Salad=Gurken-Kartoffelsalat
Pumpkin Dough=Kürbisteig
Pumpkin Bread=Kürbisbrot
Raspberry Smoothie=Himbeersmoothie
Rhubarb Pie=Rhabarberkuchen
Rice Flour=Reismehl
Rice Bread=Reiswaffel
Multigrain Flour=Mehrkornmehl
Multigrain Bread=Mehrkornbrot
Soy Sauce=Sojasoße
Soy Milk=Sojamilch
Tofu=Tofu
Cooked Tofu=Gekochter Tofu
Toasted Sunflower Seeds=Geröstete Sonnenblumensamen
Bottle of Sunflower Oil=Flasche Sonnenblumenöl
Sunflower Seed Bread=Sonnenblumensamenbrot
Vanilla Extract=Vanilleextrakt
Jerusalem Artichokes=Jerusalemartischocken
Bread=Brot
Cookie=Keks
Golden Carrot=Goldene Möhre
Beetroot Soup=Rote-Beete-Suppe
Sugar=Zucker
Baked Potato=Ofenkartoffel
Saucepan=Kasserolle
Cooking Pot=Kochtopf
Baking Tray=Kuchenblech
Skillet=Bratpfanne
Mortar and Pestle=Mörser und Stößel
Cutting Board=Schneidebrett
Juicer=Entsafter
Glass Mixing Bowl=Glasschüssel
Bottle of Ethanol=Flasche Ethanol
Straw=Stroh
Bottle of Hemp Oil=Flasche mit Hanföl
Hemp Fibre=Hanffaser
Hemp Block=Hanfblock
Hemp Rope=Hanfseil
Scarecrow Bottom=Vogelscheuchengestell
Wooden Bowl=Holzschale
String=Faden
Jack 'O Lantern (punch to turn on and off)=Kürbislaterne (Hauen zum Ein- und Ausschalten)
Savanna Soil=Savannenerde
Wet Savanna Soil=Feuchte Savannenerde
Soil=Ackerboden
Wet Soil=Feuchter Ackerboden

View File

@ -1,22 +1,54 @@
# Translation of the farming mod by TenPlus1
# textdomain: farming
# author: (you)
# last update: 2020/Apr/26
###### folder . ######
### init.lua ###
Seed=
### compatibility.lua ###
Crop=
Artichoke=
Asparagus=
Barley Seed=
Barley=
Green Beans=
Bean Pole (place on soil before planting beans)=
Beetroot=
Beetroot Soup=
Blackberry=
Blackberries=
Wild Blueberries=
Blueberry=
Blueberry Muffin=
Blueberry Pie=
Cabbage=
Carrot=
Carrot Juice=
Golden Carrot=
Chili Pepper=
Bowl of Chili=
Chili Powder=
Raw Cocoa Beans=
Cocoa Beans=
Cookie=
Bar of Dark Chocolate=
Chocolate Block=
Coffee=
Coffee Beans=
Cup of Coffee=
Banana=
Banana Leaves=
Orange=
Strawberry=
### food.lua ###
Corn=
Corn on the Cob=
Popcorn=
Cornstarch=
Bottle of Ethanol=
Wild Cotton=
Cotton Seed=
Cotton=
String=
Cucumber=
Eggplant=
Glass of Water=
Sugar=
Sugar Cube=
Caramel=
Salt=
Mayonnaise=
Rose Water=
Turkish Delight=
Garlic Bread=
@ -25,8 +57,37 @@ Chocolate Donut=
Apple Donut=
Porridge=
Jaffa Cake=
### hoes.lua ###
Apple Pie=
Cactus Juice=
Pasta=
Mac & Cheese=
Spaghetti=
Bibimbap=
Burger=
Salad=
Triple Berry Smoothie=
Spanish Potatoes=
Potato omelet=
Paella=
Vanilla Flan=
Vegan Cheese=
Onigiri=
Gyoza=
Mochi=
Gingerbread Man=
Garlic clove=
Garlic=
Garlic Braid=
Ginger=
Grapes=
Trellis (place on soil before planting grapes)=
Hemp=
Hemp Seed=
Hemp Leaf=
Bottle of Hemp Oil=
Hemp Fibre=
Hemp Block=
Hemp Rope=
Hoe=
Wooden Hoe=
Stone Hoe=
@ -34,16 +95,76 @@ Steel Hoe=
Bronze Hoe=
Mese Hoe=
Diamond Hoe=
# Surcharge du mod [Toolranks] à faire #
Wood Hoe=
Hoe Bomb (use or throw on grassy areas to hoe land)=
Mithril Scythe (Right-click to harvest and replant crops)=
# Surcharge du mod [Toolranks] à faire #
### soil.lua ###
Mithril Scythe (Use to harvest and replant crops)=
Seed=
Lettuce=
Melon Slice=
Melon=
Mint=
Mint Seeds=
Mint Leaf=
Mint Tea=
Onion=
Onion Soup=
Parsley=
Pea=
Pea Pod=
Pea Soup=
Pepper=
Peppercorn=
Green Pepper=
Yellow Pepper=
Red Pepper=
Ground Pepper=
Pineapple Top=
Pineapple=
Pineapple Ring=
Pineapple Juice=
Potato=
Baked Potato=
Cucumber and Potato Salad=
Pumpkin Slice=
Jack 'O Lantern (punch to turn on and off)=
Scarecrow Bottom=
Pumpkin Bread=
Pumpkin Dough=
Pumpkin=
Raspberry=
Raspberries=
Raspberry Smoothie=
Rhubarb=
Rhubarb Pie=
Rice Seed=
Rice=
Rice Bread=
Rice Flour=
Rye seed=
Rye=
Oat seed=
Oats=
Multigrain Flour=
Multigrain Bread=
Savanna Soil=
Wet Savanna Soil=
Soil=
Wet Soil=
### utensils.lua ###
Soy=
Soy Pod=
Soy Sauce=
Soy Milk=
Tofu=
Cooked Tofu=
Spinach=
Strawberry=
Sunflower=
Sunflower Seeds=
Toasted Sunflower Seeds=
Bottle of Sunflower Oil=
Sunflower Seed Bread=
Tomato=
Tomato Soup=
Wooden Bowl=
Saucepan=
Cooking Pot=
@ -53,137 +174,8 @@ Mortar and Pestle=
Cutting Board=
Juicer=
Glass Mixing Bowl=
###### folder ./crops ######
### barley.lua ###
Barley Seed=
Barley=
### beans.lua ###
Green Beans=
Bean Pole (place on soil before planting beans)=
### beetroot.lua ###
Beetroot=
Beetroot Soup=
### blueberry.lua ###
Blueberries=
Blueberry Muffin=
Blueberry Pie=
### carrot.lua ##
Carrot=
Carrot Juice=
Golden Carrot=
### chili.lua ###
Chili Pepper=
Bowl of Chili=
### cocoa.lua ###
Cocoa Beans=
Cookie=
Bar of Dark Chocolate=
Chocolate Block=
### coffee.lua ###
Coffee Beans=
Cup of Coffee=
### corn.lua ###
Corn=
Corn on the Cob=
Cornstarch=
Bottle of Ethanol=
### cotton.lua ###
Cotton Seed=
Cotton=
String=
### cucumber.lua ###
Cucumber=
### garlic.lua ###
Garlic clove=
Garlic=
Garlic Braid=
### grapes.lua ###
Grapes=
Trellis (place on soil before planting grapes)=
### hemp.lua ###
Hemp Seed=
Hemp Leaf=
Bottle of Hemp Oil=
Hemp Fibre=
Hemp Block=
Hemp Rope=
### melon.lua ###
Melon Slice=
Melon=
### onion.lua ###
Onion=
### peas.lua ###
Pea Pod=
Peas=
Pea Soup=
### pepper.lua ###
Peppercorn=
Pepper=
Ground Pepper=
### pinapple.lua ###
Pineapple Top=
Pineapple=
Pineapple Ring=
Pineapple Juice=
### potato.lua ###
Potato=
Baked Potato=
Cucumber and Potato Salad=
### pumpkin.lua ###
Pumpkin Slice=
Jack 'O Lantern (punch to turn on and off)=
Scarecrow Bottom=
Pumpkin Bread=
Pumpkin Dough=
Pumpkin=
### raspberry.lua ###
Raspberries=
Raspberry Smoothie=
### rhubarb.lua ###
Rhubarb=
Rhubarb Pie=
### ryeoatrice.lua ###
Rye=
Rye seed=
Oat=
Oat seed=
Rice=
Rice grains=
Rice Bread=
Rice Flour=
Multigrain Flour=
Multigrain Bread=
### tomato.lua ###
Tomato=
### wheat.lua ###
Vanilla=
Vanilla Extract=
Wheat Seed=
Wheat=
Straw=

176
locale/farming.eo.tr Normal file
View File

@ -0,0 +1,176 @@
# textdomain: farming
Artichoke=
Asparagus=
Barley Seed=Hordea Semo
Barley=Hordeo
Green Beans=Verdaj Fazeoloj
Bean Pole (place on soil before planting beans)=Fazeola Poluso (metu sur grundo antaŭ planti fabojn)
Beetroot=Betoto
Beetroot Soup=Betota Supo
Blackberries=
Wild Blueberries=
Blueberry Muffin=Mirtila Mufino
Blueberry Pie=Mirtila Torto
Cabbage=
Carrot=Karoto
Carrot Juice=Karota Suko
Golden Carrot=Ora Karoto
Chili Pepper=Kapsiketo
Bowl of Chili=Bovlo da Kapsiketo
Chili Powder=
Raw Cocoa Beans=
Cocoa Beans=Kakaa Faboj
Cookie=Kuketo
Bar of Dark Chocolate=Stango de Malhela Ĉokolado
Chocolate Block=Bloko de Ĉokolado
Coffee Beans=Kafaj Seboj
Cup of Coffee=Taso da Kafo
Banana=Banano
Banana Leaves=Bananaj Folioj
Orange=Oranĝo
Corn=Maizo
Corn on the Cob=Maiza sur la Spadiko
Popcorn=
Cornstarch=Maizamelo
Bottle of Ethanol=Botelo da Etanolo
Wild Cotton=
Cotton Seed=Kotona Semo
Cotton=Kotono
String=Ŝnuro
Cucumber=Kukumo
Eggplant=
Glass of Water=
Sugar=Sukero
Sugar Cube=
Caramel=
Salt=Salo
Mayonnaise=
Rose Water=Roza Akvo
Turkish Delight=Turka Delico
Garlic Bread=Ajla Pano
Donut=Benjeto
Chocolate Donut=Ĉokolada Benjeto
Apple Donut=Poma Benjeto
Porridge=Kaĉo
Jaffa Cake=Jafa Kuko
Apple Pie=
Cactus Juice=
Pasta=
Mac & Cheese=
Spaghetti=
Bibimbap=
Burger=
Salad=
Triple Berry Smoothie=
Spanish Potatoes=
Potato omelet=
Paella=
Vanilla Flan=
Vegan Cheese=
Onigiri=
Gyoza=
Mochi=
Gingerbread Man=
Garlic clove=Ajlokloko
Garlic=Ajlo
Garlic Braid=Ajla Plektaĵo
Ginger=
Grapes=Vinberoj
Trellis (place on soil before planting grapes)=Trellis (meti sur grundo antaŭ planti vinberojn)
Hemp Seed=Kanaba Semo
Hemp Leaf=Kanaba Folio
Bottle of Hemp Oil=Botelo da Kanaba Oleo
Hemp Fibre=Kanaba Fibro
Hemp Block=Kanaba Bloko
Hemp Rope=Kanaba Ŝnuro
Hoe=Sarkilo
Wooden Hoe=Ligna Sarkilo
Stone Hoe=Ŝtona Sarkilo
Steel Hoe=Ŝtala Sarkilo
Bronze Hoe=Bronza Sarkilo
Mese Hoe=Mesea Sarkilo
Diamond Hoe=Diamanta Sarkilo
Wood Hoe=
Hoe Bomb (use or throw on grassy areas to hoe land)=
Mithril Scythe (Use to harvest and replant crops)=
Seed=Semo
Lettuce=
Melon Slice=Tranĉaĵo de Melono
Melon=Melono
Mint Seeds=
Mint Leaf=
Mint Tea=
Onion=Cepo
Onion Soup=
Parsley=
Pea Pod=Pizujo
Pea Soup=Piza Supo
Peppercorn=Piprograjno
Green Pepper=
Yellow Pepper=
Red Pepper=
Ground Pepper=Muelita Pipro
Pineapple Top=Pinto de Ananaso
Pineapple=Ananaso
Pineapple Ring=Ananasa Ringo
Pineapple Juice=Ananasa Suko
Potato=Terpomo
Baked Potato=Bakita Terpomo
Cucumber and Potato Salad=Salato de Kukumo kaj Terpomo
Pumpkin Slice=Tranĉaĵo de Kukurbo
Jack 'O Lantern (punch to turn on and off)=Kukurba Lanterno (punu por ŝalti kaj malŝalti)
Scarecrow Bottom=Birdotimigilo Fundo
Pumpkin Bread=Kukurba Pano
Pumpkin Dough=Kukurba Pasto
Pumpkin=Kukurbo
Raspberries=Framboj
Raspberry Smoothie=Fraba Glataĵo
Rhubarb=Rabarbo
Rhubarb Pie=Rabarba Torto
Rice Seed=
Rice=Rizo
Rice Bread=Riza Pano
Rice Flour=Riza Faruno
Rye seed=Sekala Semo
Rye=Sekalo
Oat seed=Avena Semo
Oats=
Multigrain Flour=Multgrajna Faruno
Multigrain Bread=Multgrajna Pano
Savanna Soil=
Wet Savanna Soil=
Soil=Tero
Wet Soil=Malseka Tero
Soy Pod=
Soy Sauce=
Soy Milk=
Tofu=
Cooked Tofu=
Spinach=
Strawberry=Frago
Sunflower=
Sunflower Seeds=
Toasted Sunflower Seeds=
Bottle of Sunflower Oil=
Sunflower Seed Bread=
Tomato=Tomato
Tomato Soup=
Wooden Bowl=Ligna Bovlo
Saucepan=Kaserolo
Cooking Pot=Kuirpoto
Baking Tray=Baka Pleto
Skillet=Pato
Mortar and Pestle=Pistujo
Cutting Board=Tranĉa Tabulo
Juicer=Spremilo
Glass Mixing Bowl=Vitra Miksa Bovlo
Vanilla=
Vanilla Extract=
Wheat Seed=Tritika Semo
Wheat=Tritiko
Straw=Pajlo
Flour=Faruno
Bread=Pano
Sliced Bread=Tranĉita Pano
Toast=Toasto
Toast Sandwich=Toasta Sandviĉo

177
locale/farming.es.tr Normal file
View File

@ -0,0 +1,177 @@
# textdomain: farming
Banana=Banana
Banana Leaves=Hojas de Banana
Orange=Naranja
Artichoke=Alcachofa
Asparagus=Esparragos
Barley Seed=Semillas de Cebada
Barley=Cebada
Green Beans=Frijoles
Bean Pole (place on soil before planting beans)=Varas para frijoles (colocar antes de plantar frijoles)
Beetroot=Remolacha
Beetroot Soup=Sopa de Remolacha
Blackberries=Zarzamoras
Wild Blueberries=Arándanos
Blueberry Muffin=Bizcocho de Arándanos
Blueberry Pie=Pastel de Arándanos
Cabbage=Coliflor
Carrot=Zanahoria
Carrot Juice=Zumo de Zanahoria
Golden Carrot=Zanahoria Dorada
Chili Pepper=Guindilla
Bowl of Chili=Tazón de chile
Chili Powder=Chile en polvo
Raw Cocoa Beans=Granos de Cacao Verde
Cocoa Beans=Granos de Cacao
Cookie=Galleta
Bar of Dark Chocolate=Barra de Chocolate amargo
Chocolate Block=Bloque de Chocolate
Coffee Beans=Granos de Café
Cup of Coffee=Taza de Café
Corn=Mazorca de Maiz
Corn on the Cob=Mazorca Frita
Popcorn=Palomitas
Cornstarch=Maicena
Bottle of Ethanol=Botella de Etanol
Wild Cotton=Algodón silvestre
Cotton Seed=Semillas de Algodón
Cotton=Algodón
String=Cuerda
Cucumber=Pepino
Eggplant=Berenjena
Garlic clove=Diente de Ajo
Garlic=Ajo
Garlic Braid=Ristra de Ajos
Ginger=Jengibre
Grapes=Uvas
Trellis (place on soil before planting grapes)=Emparrado (colocar antes de sembrar uvas)
Hemp Seed=Semillas de Cáñamo
Hemp Leaf=Hoja de Cáñamo
Bottle of Hemp Oil=Aceite de Cáñamo
Hemp Fibre=Fibra de Cáñamo
Hemp Block=Bloque de Cáñamo
Hemp Rope=Cuerda de Cáñamo
Lettuce=Lechuga
Melon Slice=Rodaja de Sandia
Melon=Sandia
Mint Seeds=Semillas de Menta
Mint Leaf=Hoja de Menta
Mint Tea=Té de Menta
Onion=Cebolla
Onion Soup=Sopa de Cebolla
Parsley=Perejil
Pea Pod=Vaina de Guisantes
Pea Soup=Sopa de Guisantes
Peppercorn=Pimienta en Grano
Green Pepper=Pimiento Verde
Yellow Pepper=Pimiento Amarillo
Red Pepper=Pimiento Rojo
Ground Pepper=Pimienta Molida
Pineapple Top=Semilla de Piña
Pineapple=Piña
Pineapple Ring=Rodaja de Piña
Pineapple Juice=Zumito de Piña
Potato=Patata
Baked Potato=Papa Asada
Cucumber and Potato Salad=Ensalada de Pepino y Patatas
Pumpkin Slice=Trozo de Calabaza
Jack 'O Lantern (punch to turn on and off)=Linterna Calabaza (golpear para encender o apagar)
Scarecrow Bottom=Cuerpo de Espantapájaros
Pumpkin Bread=Pan de Calabaza
Pumpkin Dough=Pasta de Calabaza
Pumpkin=Calabaza
Raspberries=Frambuesas
Raspberry Smoothie=Crema de Frambuesas
Rhubarb=Ruibarbo
Rhubarb Pie=Bizcocho de Ruibarbo
Rice Seed=Granos de Arroz
Rice=Arroz
Rice Bread=Pan de Arroz
Rice Flour=Harina de Arroz
Rye seed=Semillas de Centeno
Rye=Centeno
Oat seed=Semillas de Avena
Oats=Avena
Multigrain Flour=Harina Multigrano
Multigrain Bread=Pan Multigrano
Soy Pod=Vaina de Soja
Soy Sauce=Aceite de Soja
Soy Milk=Leche de Soja
Tofu=Tofu
Cooked Tofu=Tofu Cocinado
Spinach=Espinacas
Strawberry=Fresa
Sunflower=Girasol
Sunflower Seeds=Semillas de Girasol
Toasted Sunflower Seeds=Pipas de Girasol
Bottle of Sunflower Oil=Aceite de Girasol
Sunflower Seed Bread=Pan con Pipas
Tomato=Tomate
Tomato Soup=Sopa de Tomate
Vanilla=Vainilla
Vanilla Extract=Extracto de Vainilla
Wheat Seed=Semillas de Trigo
Wheat=Trigo
Straw=Heno
Flour=Harina
Bread=Pan
Sliced Bread=Rebanada de Pan
Toast=Tostada
Toast Sandwich=Bocadillo de Pan
Glass of Water=Vaso de Agua
Sugar=Azucar
Sugar Cube=Bloque de Azucar
Caramel=Caramelo
Salt=Sal
Salt crystal=Cristal de Sal
Mayonnaise=Mayonesa
Rose Water=Agua de Rosas
Turkish Delight=Delicias Turcas
Garlic Bread=Pan con Ajito
Donut=Rosquilla
Chocolate Donut=Rosquilla de Chocolate
Apple Donut=Rosquilla de Manzana
Porridge=Gachas
Jaffa Cake=Galleta Jaffa
Apple Pie=Pastel de Manzana
Cactus Juice=Zumo de Cactus
Pasta=Pasta
Mac & Cheese=Pasta con queso
Spaghetti=Espaguetis
Bibimbap=Bibimbap
Burger=Hamburguesa
Salad=Ensalada
Triple Berry Smoothie=Helado Multifrutas
Spanish Potatoes=Tortilla Española
Potato omelet=Tortilla de Patatas
Paella=Paella
Vanilla Flan=Flan de Vainilla
Vegan Cheese=Queso Vegano
Onigiri=Onigiri
Gyoza=Empanadilla Japonesa
Mochi=Mochi
Gingerbread Man=Moñequito de Jengibre
Hoe=Azada
Wooden Hoe=Azada de Madera
Stone Hoe=Azada de Piedra
Steel Hoe=Azada de Acero
Bronze Hoe=Azada de Bronce
Mese Hoe=Azada de Mese
Diamond Hoe=Azada de Diamante
Wood Hoe=Azada de Madera
Hoe Bomb (use or throw on grassy areas to hoe land)=Bomba Azada (usar o lanzar a tierra para ararla)
Mithril Scythe (Use to harvest and replant crops)=Guadaña de Mithril
Seed=Semilla
Savanna Soil=Tierra de Cultivo de Sabana
Wet Savanna Soil=Tierra de Cultivo de Sabana Humeda
Soil=Tierra de Cultivo
Wet Soil=Tierra de Cultivo Humeda
Wooden Bowl=Cuenco de Madera
Saucepan=Cazo
Cooking Pot=Olla
Baking Tray=Bandeja para Hornear
Skillet=Sartén
Mortar and Pestle=Mortero
Cutting Board=Tabla de cortar
Juicer=Exprimidor
Glass Mixing Bowl=Bol de Mezcla

177
locale/farming.fr.tr Normal file
View File

@ -0,0 +1,177 @@
# textdomain: farming
Banana=Banane
Banana Leaves=Feuilles de banane
Orange=Orange
Artichoke=Artichaut
Asparagus=Asperge
Barley Seed=Graine d'orge
Barley=Orge
Green Beans=Haricots verts
Bean Pole (place on soil before planting beans)=Tuteur pour haricots (placer sur le sol avant de planter des haricots)
Beetroot=Betterave
Beetroot Soup=Soupe de betterave
Blackberries=Mûres
Wild Blueberries=Myrtilles sauvages
Blueberry Muffin=Muffin aux myrtilles
Blueberry Pie=Tarte aux myrtilles
Cabbage=Chou
Carrot=Carotte
Carrot Juice=Jus de carotte
Golden Carrot=Carotte dorée
Chili Pepper=Piment fort
Bowl of Chili=Bol de chilli
Chili Powder=Poudre de piment
Raw Cocoa Beans=Fèves de cacao brutes
Cocoa Beans=Fèves de cacao
Cookie=Biscuit
Bar of Dark Chocolate=Tablette de chocolat noir
Chocolate Block=Bloc de chocolat
Coffee Beans=Grains de café
Cup of Coffee=Tasse de café
Corn=Maïs
Corn on the Cob=Cobette (maïs cuit)
Popcorn=Popcorn
Cornstarch=Fécule de maïs
Bottle of Ethanol=Bouteille d'éthanol
Wild Cotton=Coton sauvage
Cotton Seed=Graines de coton
Cotton=Coton
String=Ficelle
Cucumber=Concombre
Eggplant=Aubergine
Garlic clove=Gousse d'ail
Garlic=Tête d'ail
Garlic Braid=Ail tressé
Ginger=Gingembre
Grapes=Raisins
Trellis (place on soil before planting grapes)=Treillis (placer sur le sol avant de planter la vigne)
Hemp Seed=Graines de chanvre
Hemp Leaf=Feuille de chanvre
Bottle of Hemp Oil=Bouteille d'huile de chanvre
Hemp Fibre=Fibre de chanvre
Hemp Block=Bloc de chanvre
Hemp Rope=Corde de chanvre
Lettuce=Laitue
Melon Slice=Tranche de melon
Melon=Melon
Mint Seeds=Graine de menthe
Mint Leaf=Feuille de menthe
Mint Tea=Thé à la menthe
Onion=Oignon
Onion Soup=Soupe à l'oignon
Parsley=Persil
Pea Pod=Cosse de petit-pois
Pea Soup=Soupe de petit-pois
Peppercorn=Grain de poivre
Green Pepper=Poivron vert
Yellow Pepper=Poivron jaune
Red Pepper=Poivron rouge
Ground Pepper=Poivre moulu
Pineapple Top=Pousse d'ananas
Pineapple=Ananas
Pineapple Ring=Tranche d'ananas
Pineapple Juice=Jus d'ananas
Potato=Pomme de terre
Baked Potato=Pomme de terre cuite
Cucumber and Potato Salad=Salade de pomme de terre et concombre
Pumpkin Slice=Tranche de citrouille
Jack 'O Lantern (punch to turn on and off)=Citrouille d'halloween (Frapper pour allumer et éteindre)
Scarecrow Bottom=Base d'épouventail
Pumpkin Bread=Pain à la citrouille
Pumpkin Dough=Pâton de pain à la citrouille
Pumpkin=Citrouille
Raspberries=Framboises
Raspberry Smoothie=Smoothie aux framboises
Rhubarb=Rhubarbe
Rhubarb Pie=Tarte à la rhubarbe
Rice Seed=Riz
Rice=Riz
Rice Bread=Pain de riz
Rice Flour=Farine de riz
Rye seed=Grains de seigle
Rye=Seigle
Oat seed=Grains d'orge
Oats=Avoine
Multigrain Flour=Farine multi-céréales
Multigrain Bread=Pain aux céréales
Soy Pod=Cosse de soja
Soy Sauce=Sauce de soja
Soy Milk=Lait de soja
Tofu=Tofu
Cooked Tofu=Tofu cuit
Spinach=Épinard
Strawberry=Fraise
Sunflower=Tournesol
Sunflower Seeds=Graines de tournesol
Toasted Sunflower Seeds=Graines de tournesol grillées
Bottle of Sunflower Oil=Bouteille d'huile de tournesol
Sunflower Seed Bread=Pain de graines de tournesol
Tomato=Tomate
Tomato Soup=Soupe de tomate
Vanilla=Vanille
Vanilla Extract=Extrait de vanille
Wheat Seed=Grain de blé
Wheat=Blé
Straw=Paille
Flour=Farine
Bread=Pain
Sliced Bread=Tranche de pain
Toast=Pain grillé
Toast Sandwich=Sandwich au pain grillé
Glass of Water=Verre d'eau
Sugar=Sucre
Sugar Cube=Morceau de sucre
Caramel=Caramel
Salt=Sel
Salt crystal=Cristaux de sel
Mayonnaise=Mayonnaise
Rose Water=Eau de rose
Turkish Delight=Douceur turque
Garlic Bread=Pain à l'ail
Donut=Beignet
Chocolate Donut=Beignet au chocolat
Apple Donut=Beignet aux pommes
Porridge=Gruau de céréales
Jaffa Cake=Petit gâteau à l'orange "Jaffa"
Apple Pie=Tarte aux pommes
Cactus Juice=Jus de cactus
Pasta=Pâtes
Mac & Cheese=Grâtin de pâtes
Spaghetti=Spaghetti
Bibimbap=Bibimbap
Burger=Hamburger
Salad=Salade verte
Triple Berry Smoothie=Smoothie aux trois baies
Spanish Potatoes=Patates sautées à l'Espagnole
Potato omelet=Omelette aux pommes de terre
Paella=Paëlla
Vanilla Flan=Flan
Vegan Cheese=Faumage végan
Onigiri=Onigiri
Gyoza=Gyoza
Mochi=Mochi
Gingerbread Man=Bonhomme en pain d'épice
Hoe=Binette
Wooden Hoe=Binette en bois
Stone Hoe=Binette en pierre
Steel Hoe=Binette en acier
Bronze Hoe=Binette en bronze
Mese Hoe=Binette en mese
Diamond Hoe=Binette en diamant
Wood Hoe=Binette en bois
Hoe Bomb (use or throw on grassy areas to hoe land)=Bombe à binnage (Actionner ou lancer sur une zone herbeuse pour la binner)
Mithril Scythe (Use to harvest and replant crops)=Faux de mithril (Utiliser pour récolter et replanter les cultures)
Seed=Graine
Savanna Soil=Terre de la savane binnée
Wet Savanna Soil=Terre humide et binnée de la savane
Soil=Terre binnée
Wet Soil=Terre humide et binnée
Wooden Bowl=Bol en bois
Saucepan=Casserole
Cooking Pot=Marmitte
Baking Tray=Lèche-frite
Skillet=Poêle
Mortar and Pestle=Mortier et pilon
Cutting Board=Planche à découper
Juicer=Presse-agrumes
Glass Mixing Bowl=Terrine en verre

176
locale/farming.hu.tr Normal file
View File

@ -0,0 +1,176 @@
# textdomain: farming
Artichoke=Articsóka
Asparagus=Spárga
Barley Seed=Árpamag
Barley=Árpa
Green Beans=Zöldbab
Bean Pole (place on soil before planting beans)=Karó babhoz (szúrd a földbe és oda vess babot)
Beetroot=cékla
Beetroot Soup=céklaleves
Blackberries=Szeder
Wild Blueberries=Vadáfonya
Blueberry Muffin=Áfonyamuffin
Blueberry Pie=Áfonyatorta
Cabbage=Káposzta
Carrot=Répa
Carrot Juice=Répalé
Golden Carrot=Aranyrépa
Chili Pepper=Chilipaprika
Bowl of Chili=Chilis tál
Chili Powder=Chilipor
Raw Cocoa Beans=Nyers kakaóbab
Cocoa Beans=Kakaóbab
Cookie=Süti
Bar of Dark Chocolate=Rúd étcsoki
Chocolate Block=Csokiblokk
Coffee Beans=Kávébab
Cup of Coffee=Csésze kávé
Banana=Banán
Banana Leaves=Banánlevél
Orange=Narancs
Corn=Kukorica
Corn on the Cob=Főtt kukorica
Popcorn=Pattogatott kukorica
Cornstarch=Keményítő
Bottle of Ethanol=Üveg etanol
Wild Cotton=Vadgyapot
Cotton Seed=Gyapotmag
Cotton=Gyapot
String=Madzag
Cucumber=Uborka
Eggplant=Padlizsán
Glass of Water=Pohár víz
Sugar=Cukor
Sugar Cube=Kockacukor
Caramel=Karamell
Salt=Só
Mayonnaise=Majonéz
Rose Water=Rózsavíz
Turkish Delight=Török desszert
Garlic Bread=Fokhagymás kenyér
Donut=Fánk
Chocolate Donut=Csokis fánk
Apple Donut=Almás fánk
Porridge=Zabkása
Jaffa Cake=Jaffatorta
Apple Pie=Almáspita
Cactus Juice=Kaktuszlé
Pasta=Tészta
Mac & Cheese=Sajtos makaróni
Spaghetti=Spagetti
Bibimbap=Bibimbap
Burger=Burger
Salad=Saláta
Triple Berry Smoothie=Hárombogyós smoothie
Spanish Potatoes=Tepsis krumpli
Potato omelet=Krumplis rántotta
Paella=Paella
Vanilla Flan=Vaníliás gyümölcstorta
Vegan Cheese=Vegán sajt
Onigiri=Onigiri
Gyoza=Gyoza
Mochi=Mochi
Gingerbread Man=Mézeskalács-emberke
Garlic clove=Gerezd fokhagyma
Garlic=Fokhagyma
Garlic Braid=Fokhagymafüzér
Ginger=Gyömbér
Grapes=Szőlő
Trellis (place on soil before planting grapes)=Karó szőlőhöz (szúrd a földbe és oda vess babot)
Hemp Seed=Kendermag
Hemp Leaf=Kenderlevél
Bottle of Hemp Oil=Üveg kenderolaj
Hemp Fibre=Kenderrost
Hemp Block=Kenderblokk
Hemp Rope=Kenderkötél
Hoe=Kapa
Wooden Hoe=Fakapa
Stone Hoe=Kőkapa
Steel Hoe=Acélkapa
Bronze Hoe=Bronzkapa
Mese Hoe=Mesekapa
Diamond Hoe=Gyémántkapa
Wood Hoe=Fakapa (2)
Hoe Bomb (use or throw on grassy areas to hoe land)=Kapabomba (használd vagy dobd füves területre)
Mithril Scythe (Use to harvest and replant crops)=Mithrilkasza (használd termények begyűjtéséhez és újravetéséhez)
Seed=Mag
Lettuce=Saláta
Melon Slice=Szelet dinnye
Melon=Dinnye
Mint Seeds=Mentamag
Mint Leaf=Mentalevél
Mint Tea=Mentatea
Onion=Hagyma
Onion Soup=Hagymaleves
Parsley=Petrezselyem
Pea Pod=Hüvelyes borsó
Pea Soup=Borsóleves
Peppercorn=Borsszemek
Green Pepper=Zöldpaprika
Yellow Pepper=Sárga paprika
Red Pepper=Pirospaprika
Ground Pepper=Őrölt bors
Pineapple Top=Ananászüstök
Pineapple=Ananász
Pineapple Ring=Szelet ananász
Pineapple Juice=Ananászlé
Potato=Krumpli
Baked Potato=Sült krumpli
Cucumber and Potato Salad=Uborkás krumplisaláta
Pumpkin Slice=Szelet tök
Jack 'O Lantern (punch to turn on and off)=Töklámpás (ütéssel kapcsold ki és be)
Scarecrow Bottom=Madárijesztő alja
Pumpkin Bread=Tökkenyér
Pumpkin Dough=Töktészta
Pumpkin=Tök
Raspberries=Málna
Raspberry Smoothie=Málnasmoothie
Rhubarb=Rebarbara
Rhubarb Pie=Rebarbaratorta
Rice Seed=Rizsmag
Rice=Rizs
Rice Bread=Rizskenyér
Rice Flour=Rizsliszt
Rye seed=Rozsmag
Rye=Rozs
Oat seed=Zabmag
Oats=Zab
Multigrain Flour=Vegyesliszt
Multigrain Bread=Vegyesliszt-kenyér
Savanna Soil=Szavannatalaj
Wet Savanna Soil=Nedves szavannatalaj
Soil=Talaj
Wet Soil=Nedves talaj
Soy Pod=Hüvelyes szója
Soy Sauce=Szójaszósz
Soy Milk=Szójatej
Tofu=Tofu
Cooked Tofu=Főtt tofu
Spinach=Spenót
Strawberry=Eper
Sunflower=Napraforgó
Sunflower Seeds=Napraforgómag
Toasted Sunflower Seeds=Szotyi
Bottle of Sunflower Oil=Üveg napraforgó-olaj
Sunflower Seed Bread=Napraforgómagos kenyér
Tomato=Paradicsom
Tomato Soup=Paradicsomleves
Wooden Bowl=Fatál
Saucepan=Szószostál
Cooking Pot=Főzőedény
Baking Tray=Sütőtál
Skillet=Serpenyő
Mortar and Pestle=Mozsár
Cutting Board=Vágódeszka
Juicer=Facsaró
Glass Mixing Bowl=Üver keverőedény
Vanilla=Vanília
Vanilla Extract=Vaníliakivonat
Wheat Seed=Búzamag
Wheat=Búza
Straw=Szívószál
Flour=Liszt
Bread=Kenyér
Sliced Bread=Szeletelt kenyér
Toast=Pirítós
Toast Sandwich=Pirítósszendvics

View File

@ -1,22 +1,50 @@
# Translation of the farming mod by TenPlus1
# textdomain: farming
# author: (Hamlet)
# last update: 2020/Jun/02
###### folder . ######
### init.lua ###
Seed=Seme
### compatibility.lua ###
Artichoke=
Asparagus=
Barley Seed=Seme d'orzo
Barley=Orzo
Green Beans=Fagiolini
Bean Pole (place on soil before planting beans)=Palina per fagiolini (mettila sul terreno coltivabile prima di piantare i fagiolini)
Beetroot=Barbabietola
Beetroot Soup=Zuppa di barbabietola
Blackberries=
Wild Blueberries=Mirtilli Selvatici
Blueberry Muffin=Focaccina di mirtilli
Blueberry Pie=Tortino di mirtilli
Cabbage=
Carrot=Carota
Carrot Juice=Succo di carota
Golden Carrot=Carota d'oro
Chili Pepper=Peperoncino
Bowl of Chili=Ciotola di peperoncino
Chili Powder=
Raw Cocoa Beans=
Cocoa Beans=Chicchi di cacao
Cookie=Biscotto
Bar of Dark Chocolate=Barra di cioccolato fondente
Chocolate Block=Blocco di cioccolato
Coffee Beans=Chicchi di caffè
Cup of Coffee=Tazza di caffè
Banana=Banana
Banana Leaves=Foglie di banano
Orange=Arancia
Strawberry=Fragola
### food.lua ###
Corn=Mais
Corn on the Cob=Pannocchia arrostita
Popcorn=
Cornstarch=Amido di mais
Bottle of Ethanol=Bottiglia di alcol etilico
Wild Cotton=
Cotton Seed=Seme di cotone
Cotton=Cotone
String=Filo
Cucumber=Cetriolo
Eggplant=
Glass of Water=
Sugar=Zucchero
Sugar Cube=
Caramel=
Salt=Sale
Mayonnaise=
Rose Water=Acqua di rose
Turkish Delight=Lokum
Garlic Bread=Pane all'aglio
@ -25,8 +53,36 @@ Chocolate Donut=Ciambella al cioccolato
Apple Donut=Ciambella alla mela
Porridge=Porridge
Jaffa Cake=Torta di jaffa
### hoes.lua ###
Apple Pie=
Cactus Juice=
Pasta=
Mac & Cheese=
Spaghetti=
Bibimbap=
Burger=
Salad=
Triple Berry Smoothie=
Spanish Potatoes=
Potato omelet=
Paella=
Vanilla Flan=
Vegan Cheese=
Onigiri=
Gyoza=
Mochi=
Gingerbread Man=
Garlic clove=Spicchio d'aglio
Garlic=Aglio
Garlic Braid=Treccia d'aglio
Ginger=
Grapes=Chicchi d'uva
Trellis (place on soil before planting grapes)=Graticcio (mettilo sul terreno coltivabile prima di piantare i chicchi d'uva)
Hemp Seed=Seme di canapa
Hemp Leaf=Foglia di canapa
Bottle of Hemp Oil=Bottiglia d'olio di canapa
Hemp Fibre=Fibra di canapa
Hemp Block=Blocco di canapa
Hemp Rope=Corda di canapa
Hoe=Zappa
Wooden Hoe=Zappa di legno
Stone Hoe=Zappa di pietra
@ -34,16 +90,71 @@ Steel Hoe=Zappa d'acciaio
Bronze Hoe=Zappa di bronzo
Mese Hoe=Zappa di mese
Diamond Hoe=Zappa di diamante
# Surcharge du mod [Toolranks] à faire #
Wood Hoe=
Hoe Bomb (use or throw on grassy areas to hoe land)=Bomba zappa (usala o lanciala sulle aree erbose per zappare il terreno)
Mithril Scythe (Right-click to harvest and replant crops)=Falce di mithril (clicca col destro per raccogliere e ripiantare le prose)
# Surcharge du mod [Toolranks] à faire #
### soil.lua ###
Mithril Scythe (Use to harvest and replant crops)=
Seed=Seme
Lettuce=
Melon Slice=Fetta d'anguria
Melon=Anguria
Mint Seeds=
Mint Leaf=
Mint Tea=
Onion=Cipolla
Onion Soup=
Parsley=
Pea Pod=Baccello di piselli
Pea Soup=Zuppa di piselli
Peppercorn=Grano di pepe
Green Pepper=
Yellow Pepper=
Red Pepper=
Ground Pepper=Pepe macinato
Pineapple Top=Cima d'ananas
Pineapple=Ananas
Pineapple Ring=Anello d'ananas
Pineapple Juice=Succo d'ananas
Potato=Patata
Baked Potato=Patata arrostita
Cucumber and Potato Salad=Insalata di patate e cetrioli
Pumpkin Slice=Fetta di zucca
Jack 'O Lantern (punch to turn on and off)=Jack Lanterna (colpirlo per accenderlo e spegnerlo)
Scarecrow Bottom=Fondo dello spaventapasseri
Pumpkin Bread=Pane alla zucca
Pumpkin Dough=Pasta di zucca
Pumpkin=Zucca
Raspberries=Lamponi
Raspberry Smoothie=Purea di lamponi
Rhubarb=Rabarbaro
Rhubarb Pie=Tortino al rabarbaro
Rice Seed=
Rice=Riso
Rice Bread=Pane di riso
Rice Flour=Farina di riso
Rye seed=Seme di segale
Rye=Segale
Oat seed=Seme d'avena
Oats=
Multigrain Flour=Farina multicereale
Multigrain Bread=Pane multicereale
Savanna Soil=
Wet Savanna Soil=
Soil=Terreno coltivabile
Wet Soil=Terreno coltivabile bagnato
### utensils.lua ###
Soy Pod=
Soy Sauce=
Soy Milk=
Tofu=
Cooked Tofu=
Spinach=
Strawberry=Fragola
Sunflower=
Sunflower Seeds=
Toasted Sunflower Seeds=
Bottle of Sunflower Oil=
Sunflower Seed Bread=
Tomato=Pomodoro
Tomato Soup=
Wooden Bowl=Ciotola di legno
Saucepan=Casseruola
Cooking Pot=Pentola da cottura
@ -53,137 +164,8 @@ Mortar and Pestle=Mortaio e pestello
Cutting Board=Tagliere
Juicer=Spremiagrumi
Glass Mixing Bowl=Terrina di vetro
###### folder ./crops ######
### barley.lua ###
Barley Seed=Seme d'orzo
Barley=Orzo
### beans.lua ###
Green Beans=Fagiolini
Bean Pole (place on soil before planting beans)=Palina per fagiolini (mettila sul terreno coltivabile prima di piantare i fagiolini)
### beetroot.lua ###
Beetroot=Barbabietola
Beetroot Soup=Zuppa di barbabietola
### blueberry.lua ###
Blueberries=Mirtilli
Blueberry Muffin=Focaccina di mirtilli
Blueberry Pie=Tortino di mirtilli
### carrot.lua ##
Carrot=Carota
Carrot Juice=Succo di carota
Golden Carrot=Carota d'oro
### chili.lua ###
Chili Pepper=Peperoncino
Bowl of Chili=Ciotola di peperoncino
### cocoa.lua ###
Cocoa Beans=Chicchi di cacao
Cookie=Biscotto
Bar of Dark Chocolate=Barra di cioccolato fondente
Chocolate Block=Blocco di cioccolato
### coffee.lua ###
Coffee Beans=Chicchi di caffè
Cup of Coffee=Tazza di caffè
### corn.lua ###
Corn=Mais
Corn on the Cob=Pannocchia arrostita
Cornstarch=Amido di mais
Bottle of Ethanol=Bottiglia di alcol etilico
### cotton.lua ###
Cotton Seed=Seme di cotone
Cotton=Cotone
String=Filo
### cucumber.lua ###
Cucumber=Cetriolo
### garlic.lua ###
Garlic clove=Spicchio d'aglio
Garlic=Aglio
Garlic Braid=Treccia d'aglio
### grapes.lua ###
Grapes=Chicchi d'uva
Trellis (place on soil before planting grapes)=Graticcio (mettilo sul terreno coltivabile prima di piantare i chicchi d'uva)
### hemp.lua ###
Hemp Seed=Seme di canapa
Hemp Leaf=Foglia di canapa
Bottle of Hemp Oil=Bottiglia d'olio di canapa
Hemp Fibre=Fibra di canapa
Hemp Block=Blocco di canapa
Hemp Rope=Corda di canapa
### melon.lua ###
Melon Slice=Fetta d'anguria
Melon=Anguria
### onion.lua ###
Onion=Cipolla
### peas.lua ###
Pea Pod=Baccello di piselli
Peas=Piselli
Pea Soup=Zuppa di piselli
### pepper.lua ###
Peppercorn=Grano di pepe
Pepper=Pepe
Ground Pepper=Pepe macinato
### pinapple.lua ###
Pineapple Top=Cima d'ananas
Pineapple=Ananas
Pineapple Ring=Anello d'ananas
Pineapple Juice=Succo d'ananas
### potato.lua ###
Potato=Patata
Baked Potato=Patata arrostita
Cucumber and Potato Salad=Insalata di patate e cetrioli
### pumpkin.lua ###
Pumpkin Slice=Fetta di zucca
Jack 'O Lantern (punch to turn on and off)=Jack Lanterna (colpirlo per accenderlo e spegnerlo)
Scarecrow Bottom=Fondo dello spaventapasseri
Pumpkin Bread=Pane alla zucca
Pumpkin Dough=Pasta di zucca
Pumpkin=Zucca
### raspberry.lua ###
Raspberries=Lamponi
Raspberry Smoothie=Purea di lamponi
### rhubarb.lua ###
Rhubarb=Rabarbaro
Rhubarb Pie=Tortino al rabarbaro
### ryeoatrice.lua ###
Rye=Segale
Rye seed=Seme di segale
Oat=Avena
Oat seed=Seme d'avena
Rice=Riso
Rice grains=Chicchi di riso
Rice Bread=Pane di riso
Rice Flour=Farina di riso
Multigrain Flour=Farina multicereale
Multigrain Bread=Pane multicereale
### tomato.lua ###
Tomato=Pomodoro
### wheat.lua ###
Vanilla=
Vanilla Extract=
Wheat Seed=Seme di grano
Wheat=Grano
Straw=Paglia

View File

@ -1,23 +1,50 @@
# Portuguese translation of the farming mod by TenPlus1
# textdomain: farming
# author: BrunoMine <borgesdossantosbruno@gmail.com>
# author: TheDarkTiger
# last update: 2020/Apr/26
###### folder . ######
### init.lua ###
Seed=Sementes
### compatibility.lua ###
Artichoke=
Asparagus=
Barley Seed=Sementes de Cevada
Barley=Cevada
Green Beans=Feijoes Verdes
Bean Pole (place on soil before planting beans)=Apoio de feijao (coloque no solo antes de plantar feijao)
Beetroot=
Beetroot Soup=
Blackberries=
Wild Blueberries=Mirtilos Selvagens
Blueberry Muffin=Muffin de Mirtilos
Blueberry Pie=
Cabbage=
Carrot=Cenoura
Carrot Juice=
Golden Carrot=Cenoura Dourada
Chili Pepper=
Bowl of Chili=
Chili Powder=
Raw Cocoa Beans=
Cocoa Beans=Amendoas de Cacau
Cookie=Cookie
Bar of Dark Chocolate=Barra de Chocolate Preto
Chocolate Block=
Coffee Beans=Grao de Cafe
Cup of Coffee=Xicara de Cafe
Banana=
Banana Leaves=
Orange=
Strawberry=
### food.lua ###
Corn=Milho
Corn on the Cob=Espiga de Milho
Popcorn=
Cornstarch=
Bottle of Ethanol=Garrafa de Etanol
Wild Cotton=
Cotton Seed=Sementes de Algodao
Cotton=Algodao
String=
Cucumber=Pepino
Eggplant=
Glass of Water=
Sugar=Açucar
Sugar Cube=
Caramel=
Salt=
Mayonnaise=
Rose Water=
Turkish Delight=
Garlic Bread=
@ -26,8 +53,36 @@ Chocolate Donut=Donut de Chocolate
Apple Donut=Donut de Maça
Porridge=
Jaffa Cake=
### hoes.lua ###
Apple Pie=
Cactus Juice=
Pasta=
Mac & Cheese=
Spaghetti=
Bibimbap=
Burger=
Salad=
Triple Berry Smoothie=
Spanish Potatoes=
Potato omelet=
Paella=
Vanilla Flan=
Vegan Cheese=
Onigiri=
Gyoza=
Mochi=
Gingerbread Man=
Garlic clove=
Garlic=
Garlic Braid=
Ginger=
Grapes=Uvas
Trellis (place on soil before planting grapes)=Grade de Ripas (colocar no solo antes de plantar uvas)
Hemp Seed=Sementes de Canhamo
Hemp Leaf=Folha de Canhamo
Bottle of Hemp Oil=Garrafa de Oleo de Canhamo
Hemp Fibre=Fibra de Canhamo
Hemp Block=
Hemp Rope=Corda de Canhamo
Hoe=Enxada
Wooden Hoe=Enxada de Madeira
Stone Hoe=Enxada de Pedra
@ -35,16 +90,71 @@ Steel Hoe=Enxada de Aço
Bronze Hoe=Enxada de Bronze
Mese Hoe=Enxada de Mese
Diamond Hoe=Enxada de Diamante
# Surcharge du mod [Toolranks] à faire #
Wood Hoe=
Hoe Bomb (use or throw on grassy areas to hoe land)=
Mithril Scythe (Right-click to harvest and replant crops)=
# Surcharge du mod [Toolranks] à faire #
### soil.lua ###
Mithril Scythe (Use to harvest and replant crops)=
Seed=Sementes
Lettuce=
Melon Slice=Sementes de Melancia
Melon=Melancia
Mint Seeds=
Mint Leaf=
Mint Tea=
Onion=
Onion Soup=
Parsley=
Pea Pod=
Pea Soup=
Peppercorn=
Green Pepper=
Yellow Pepper=
Red Pepper=
Ground Pepper=
Pineapple Top=
Pineapple=
Pineapple Ring=
Pineapple Juice=
Potato=Batata
Baked Potato=Batata Cozida
Cucumber and Potato Salad=
Pumpkin Slice=Pedaço de Abobora
Jack 'O Lantern (punch to turn on and off)=Jack 'O Lantern (Socos para ligar e desligar)
Scarecrow Bottom=
Pumpkin Bread=Pao de Abobora
Pumpkin Dough=Massa de Abobora
Pumpkin=Abobora
Raspberries=Framboesa
Raspberry Smoothie=Batida de Framboesa
Rhubarb=Ruibarbo
Rhubarb Pie=Torta de Ruibarbo
Rice Seed=
Rice=
Rice Bread=
Rice Flour=
Rye seed=
Rye=
Oat seed=
Oats=
Multigrain Flour=
Multigrain Bread=
Savanna Soil=
Wet Savanna Soil=
Soil=Solo
Wet Soil=Solo Seco
### utensils.lua ###
Soy Pod=
Soy Sauce=
Soy Milk=
Tofu=
Cooked Tofu=
Spinach=
Strawberry=
Sunflower=
Sunflower Seeds=
Toasted Sunflower Seeds=
Bottle of Sunflower Oil=
Sunflower Seed Bread=
Tomato=Tomate
Tomato Soup=
Wooden Bowl=
Saucepan=
Cooking Pot=
@ -54,137 +164,8 @@ Mortar and Pestle=
Cutting Board=
Juicer=
Glass Mixing Bowl=
###### folder ./crops ######
### barley.lua ###
Barley Seed=Sementes de Cevada
Barley=Cevada
### beans.lua ###
Green Beans=Feijoes Verdes
Bean Pole (place on soil before planting beans)=Apoio de feijao (coloque no solo antes de plantar feijao)
### beetroot.lua ###
Beetroot=
Beetroot Soup=
### blueberry.lua ###
Blueberries=Mirtilos
Blueberry Muffin=Muffin de Mirtilos
Blueberry Pie=
### carrot.lua ##
Carrot=Cenoura
Carrot Juice=
Golden Carrot=Cenoura Dourada
### chili.lua ###
Chili Pepper=
Bowl of Chili=
### cocoa.lua ###
Cocoa Beans=Amendoas de Cacau
Cookie=Cookie
Bar of Dark Chocolate=Barra de Chocolate Preto
Chocolate Block=
### coffee.lua ###
Coffee Beans=Grao de Cafe
Cup of Coffee=Xicara de Cafe
### corn.lua ###
Corn=Milho
Corn on the Cob=Espiga de Milho
Cornstarch=
Bottle of Ethanol=Garrafa de Etanol
### cotton.lua ###
Cotton Seed=Sementes de Algodao
Cotton=Algodao
String=
### cucumber.lua ###
Cucumber=Pepino
### garlic.lua ###
Garlic clove=
Garlic=
Garlic Braid=
### grapes.lua ###
Grapes=Uvas
Trellis (place on soil before planting grapes)=Grade de Ripas (colocar no solo antes de plantar uvas)
### hemp.lua ###
Hemp Seed=Sementes de Canhamo
Hemp Leaf=Folha de Canhamo
Bottle of Hemp Oil=Garrafa de Oleo de Canhamo
Hemp Fibre=Fibra de Canhamo
Hemp Block=
Hemp Rope=Corda de Canhamo
### melon.lua ###
Melon Slice=Sementes de Melancia
Melon=Melancia
### onion.lua ###
Onion=
### peas.lua ###
Pea Pod=
Peas=
Pea Soup=
### pepper.lua ###
Peppercorn=
Pepper=
Ground Pepper=
### pinapple.lua ###
Pineapple Top=
Pineapple=
Pineapple Ring=
Pineapple Juice=
### potato.lua ###
Potato=Batata
Baked Potato=Batata Cozida
Cucumber and Potato Salad=
### pumpkin.lua ###
Pumpkin Slice=Pedaço de Abobora
Jack 'O Lantern (punch to turn on and off)=Jack 'O Lantern (Socos para ligar e desligar)
Scarecrow Bottom=
Pumpkin Bread=Pao de Abobora
Pumpkin Dough=Massa de Abobora
Pumpkin=Abobora
### raspberry.lua ###
Raspberries=Framboesa
Raspberry Smoothie=Batida de Framboesa
### rhubarb.lua ###
Rhubarb=Ruibarbo
Rhubarb Pie=Torta de Ruibarbo
### ryeoatrice.lua ###
Rye=
Rye seed=
Oat=
Oat seed=
Rice=
Rice grains=
Rice Bread=
Rice Flour=
Multigrain Flour=
Multigrain Bread=
### tomato.lua ###
Tomato=Tomate
### wheat.lua ###
Vanilla=
Vanilla Extract=
Wheat Seed=Sementes de Trigo
Wheat=Trigo
Straw=Palha

186
locale/farming.ru.tr Normal file
View File

@ -0,0 +1,186 @@
# textdomain: farming
Crop=.
Artichoke=Артишок
Asparagus=Спаржа
Barley Seed=Семена ячменя
Barley=Ячмень
Green Beans=Зеленая фасоль
Bean Pole (place on soil before planting beans)=Жердь для бобовых (установите на почву перед посадкой бобовых)
Beetroot=Свекла
Beetroot Soup=Борщ
Blackberry=Ежевика
Blackberries=Ежевика
Wild Blueberries=Голубика
Blueberry=Голубика
Blueberry Muffin=Кекс с голубикой
Blueberry Pie=Пирог с голубикой
Cabbage=Капуста
Carrot=Морковь
Carrot Juice=Морковный сок
Golden Carrot=Золотая морковь
Chili Pepper=Перец чили
Bowl of Chili=Миска чили
Chili Powder=Порошок чили
Raw Cocoa Beans=Сырые какао-бобы
Cocoa Beans=Какао-бобы
Cookie=Печенье
Bar of Dark Chocolate=Плитка темного шоколада
Chocolate Block=Шоколадный блок
Coffee=Кофе
Coffee Beans=Кофейные зерна
Cup of Coffee=Чашка кофе
Banana=Банан
Banana Leaves=Листья банана
Orange=Апельсин
Corn=Кукуруза
Corn on the Cob=Початок кукурузы
Popcorn=Попкорн
Cornstarch=Кукурузный крахмал
Bottle of Ethanol=Бутылка спирта
Wild Cotton=Дикорастущий хлопок
Cotton Seed=Семена хлопка
Cotton=Хлопок
String=Нить
Cucumber=Огурец
Eggplant=Баклажан
Glass of Water=Стакан воды
Sugar=Сахар
Sugar Cube=Кусочек сахара
Caramel=Карамель
Salt=Соль
Mayonnaise=Майонез
Rose Water=Розовая вода
Turkish Delight=Рахат-лукум
Garlic Bread=Чесночный хлеб
Donut=Пончик
Chocolate Donut=Шоколадный пончик
Apple Donut=Яблочный пончик
Porridge=Каша
Jaffa Cake=Яффский пирог
Apple Pie=Яблочный пирог
Cactus Juice=Кактусовый сок
Pasta=Паста
Mac & Cheese=Макароны с сыром
Spaghetti=Спагетти
Bibimbap=Бибимпап
Burger=Бургер
Salad=Салат
Triple Berry Smoothie=Тройной ягодный смузи
Spanish Potatoes=Испанский картофель
Potato omelet=Картофельный омлет
Paella=Паэлья
Vanilla Flan=Ванильный флан
Vegan Cheese=Веганский сыр
Onigiri=Онигири
Gyoza=Гёдза
Mochi=Моти
Gingerbread Man=Пряничный человечек
Garlic clove=Зубчик чеснока
Garlic=Чеснок
Garlic Braid=Связка чеснока
Ginger=Имбирь
Grapes=Виноград
Trellis (place on soil before planting grapes)=Решетка (поставьте на почву перед посадкой винограда)
Hemp=Конопля
Hemp Seed=Семена конопли
Hemp Leaf=Лист конопли
Bottle of Hemp Oil=Бутылка конопляного масла
Hemp Fibre=Конопляное волокно
Hemp Block=Блок конопли
Hemp Rope=Пеньковая веревка
Hoe=Мотыга
Wooden Hoe=Деревянная мотыга
Stone Hoe=Каменная мотыга
Steel Hoe=Стальная мотыга
Bronze Hoe=Бронзовая мотыга
Mese Hoe=Магическая мотыга
Diamond Hoe=Алмазная мотыга
Wood Hoe=Деревянная мотыга
Hoe Bomb (use or throw on grassy areas to hoe land)=Мотыгобомба (используйте или бросьте на траву для ее обработки)
Mithril Scythe (Use to harvest and replant crops)=Мифриловая коса (используется для сбора и пересадки урожая)
Seed=Семена
Lettuce=Латук
Melon Slice=Долька арбуза
Melon=Арбуз
Mint=Мята
Mint Seeds=Семена мяты
Mint Leaf=Лист мяты
Mint Tea=Чай с мятой
Onion=Лук
Onion Soup=Луковый суп
Parsley=Петрушка
Pea=Горох
Pea Pod=Стручок гороха
Pea Soup=Гороховый суп
Pepper=Перец
Peppercorn=Перчинка
Green Pepper=Зеленый перец
Yellow Pepper=Желтый перец
Red Pepper=Красный перец
Ground Pepper=Молотый перец
Pineapple Top=Верхушка ананаса
Pineapple=Ананас
Pineapple Ring=Кольцо ананаса
Pineapple Juice=Ананасовый сок
Potato=Картофель
Baked Potato=Печеный картофель
Cucumber and Potato Salad=Салат из огурцов и картофеля
Pumpkin Slice=Ломтик тыквы
Jack 'O Lantern (punch to turn on and off)=Светильник джека (удар для включения и выключения)
Scarecrow Bottom=Основание пугала
Pumpkin Bread=Тыквенный хлеб
Pumpkin Dough=Тыквенное тесто
Pumpkin=Тыква
Raspberry=Малина
Raspberries=Малина
Raspberry Smoothie=Малиновый смузи
Rhubarb=Ревень
Rhubarb Pie=Пирог с ревенем
Rice Seed=Семена риса
Rice=Рис
Rice Bread=Рисовый хлеб
Rice Flour=Рисовая мука
Rye seed=Зёрна ржи
Rye=Рожь
Oat seed=Семена овса
Oats=Овес
Multigrain Flour=Мультизерновая мука
Multigrain Bread=Мультизерновой хлеб
Savanna Soil=Земля саванны
Wet Savanna Soil=Увлажненная земля саванны
Soil=Земля
Wet Soil=Увлажненная земля
Soy=Соя
Soy Pod=Соевый стручок
Soy Sauce=Соевый соус
Soy Milk=Соевое молоко
Tofu=Тофу
Cooked Tofu=Вареный тофу
Spinach=Шпинат
Strawberry=Земляника
Sunflower=Подсолнечник
Sunflower Seeds=Семена подсолнечника
Toasted Sunflower Seeds=Жаренные семена подсолнечника
Bottle of Sunflower Oil=Бутылка подсолнечного масла
Sunflower Seed Bread=Хлеб из семян подсолнечника
Tomato=Помидор
Tomato Soup=Томатный суп
Wooden Bowl=Деревянная миска
Saucepan=Кастрюля
Cooking Pot=Котел
Baking Tray=Противень
Skillet=Сковорода
Mortar and Pestle=Ступка и пестик
Cutting Board=Разделочная доска
Juicer=Соковыжималка
Glass Mixing Bowl=Стеклянная чаша
Vanilla=Ваниль
Vanilla Extract=Экстракт ванили
Wheat Seed=Зёрна пшеницы
Wheat=Пшеница
Straw=Солома
Flour=Мука
Bread=Хлеб
Sliced Bread=Нарезанный хлеб
Toast=Тост
Toast Sandwich=Сэндвич

176
locale/farming.zh_CN.tr Normal file
View File

@ -0,0 +1,176 @@
# textdomain: farming
Artichoke=
Asparagus=
Barley Seed=大麦种子
Barley=大麦
Green Beans=青豆
Bean Pole (place on soil before planting beans)=豆杆(种豆前先放在土上)
Beetroot=甜菜根
Beetroot Soup=甜菜根汤
Blackberries=
Wild Blueberries=蓝莓
Blueberry Muffin=蓝莓松糕
Blueberry Pie=蓝莓派
Cabbage=
Carrot=胡萝卜
Carrot Juice=胡萝卜汁
Golden Carrot=金萝卜
Chili Pepper=辣椒
Bowl of Chili=一碗辣椒
Chili Powder=
Raw Cocoa Beans=
Cocoa Beans=可可豆
Cookie=曲奇
Bar of Dark Chocolate=黑巧克力条
Chocolate Block=巧克力块
Coffee Beans=咖啡豆
Cup of Coffee=一杯咖啡
Banana=香蕉
Banana Leaves=香蕉叶
Orange=橙色
Corn=玉米
Corn on the Cob=玉米棒
Popcorn=
Cornstarch=玉米淀粉
Bottle of Ethanol=一瓶乙醇
Wild Cotton=
Cotton Seed=棉籽
Cotton=棉花
String=线
Cucumber=黄瓜
Eggplant=
Glass of Water=
Sugar=糖
Sugar Cube=
Caramel=
Salt=盐
Mayonnaise=
Rose Water=玫瑰汁
Turkish Delight=土耳其软糖
Garlic Bread=蒜香面包
Donut=甜甜圈
Chocolate Donut=巧克力甜甜圈
Apple Donut=苹果甜甜圈
Porridge=粥
Jaffa Cake=佳发饼
Apple Pie=
Cactus Juice=
Pasta=
Mac & Cheese=
Spaghetti=
Bibimbap=
Burger=
Salad=
Triple Berry Smoothie=
Spanish Potatoes=
Potato omelet=
Paella=
Vanilla Flan=
Vegan Cheese=
Onigiri=
Gyoza=
Mochi=
Gingerbread Man=
Garlic clove=蒜瓣
Garlic=大蒜
Garlic Braid=蒜辫
Ginger=
Grapes=葡萄
Trellis (place on soil before planting grapes)=棚架(种植葡萄前先放在土壤上)
Hemp Seed=大麻籽
Hemp Leaf=大麻叶
Bottle of Hemp Oil=一瓶大麻油
Hemp Fibre=大麻纤维
Hemp Block=麻块
Hemp Rope=麻绳
Hoe=锄头
Wooden Hoe=木锄
Stone Hoe=石锄
Steel Hoe=钢锄头
Bronze Hoe=青铜锄头
Mese Hoe=黄石锄头
Diamond Hoe=钻石锄
Wood Hoe=
Hoe Bomb (use or throw on grassy areas to hoe land)=锄弹(在草地上使用或扔在锄地上)
Mithril Scythe (Use to harvest and replant crops)=
Seed=种子
Lettuce=
Melon Slice=西瓜片
Melon=甜瓜
Mint Seeds=
Mint Leaf=
Mint Tea=
Onion=洋葱
Onion Soup=
Parsley=
Pea Pod=豌豆荚
Pea Soup=豌豆汤
Peppercorn=胡椒粉
Green Pepper=
Yellow Pepper=
Red Pepper=
Ground Pepper=胡椒粉
Pineapple Top=菠萝上衣
Pineapple=菠萝
Pineapple Ring=菠萝圈
Pineapple Juice=菠萝汁
Potato=土豆
Baked Potato=焗马铃薯
Cucumber and Potato Salad=黄瓜土豆沙拉
Pumpkin Slice=南瓜片
Jack 'O Lantern (punch to turn on and off)=杰克灯(按一下开关)
Scarecrow Bottom=稻草人屁股
Pumpkin Bread=南瓜面包
Pumpkin Dough=南瓜面团
Pumpkin=南瓜
Raspberries=覆盆子
Raspberry Smoothie=覆盆子冰沙
Rhubarb=大黄
Rhubarb Pie=大黄派
Rice Seed=
Rice=大米
Rice Bread=米饭面包
Rice Flour=米粉
Rye seed=黑麦种子
Rye=黑麦
Oat seed=燕麦籽
Oats=
Multigrain Flour=多粒面粉
Multigrain Bread=杂粮面包
Savanna Soil=
Wet Savanna Soil=
Soil=土壤
Wet Soil=湿土
Soy Pod=
Soy Sauce=
Soy Milk=
Tofu=
Cooked Tofu=
Spinach=
Strawberry=草莓
Sunflower=
Sunflower Seeds=
Toasted Sunflower Seeds=
Bottle of Sunflower Oil=
Sunflower Seed Bread=
Tomato=番茄
Tomato Soup=
Wooden Bowl=木碗
Saucepan=平底锅
Cooking Pot=锅
Baking Tray=烤盘
Skillet=平底锅
Mortar and Pestle=研钵
Cutting Board=砧板
Juicer=榨汁机
Glass Mixing Bowl=搅拌杯
Vanilla=
Vanilla Extract=
Wheat Seed=小麦种子
Wheat=小麦
Straw=稻草
Flour=面粉
Bread=面包
Sliced Bread=切片面包
Toast=烤面包片
Toast Sandwich=三明治面包

176
locale/farming.zh_TW.tr Normal file
View File

@ -0,0 +1,176 @@
# textdomain: farming
Artichoke=
Asparagus=
Barley Seed=大麥種子
Barley=大麥
Green Beans=青豆
Bean Pole (place on soil before planting beans)=豆杆(種豆前先放在土上)
Beetroot=甜菜根
Beetroot Soup=甜菜根湯
Blackberries=
Wild Blueberries=藍莓
Blueberry Muffin=藍莓鬆糕
Blueberry Pie=藍莓派
Cabbage=
Carrot=胡蘿蔔
Carrot Juice=胡蘿蔔汁
Golden Carrot=金蘿蔔
Chili Pepper=辣椒
Bowl of Chili=一碗辣椒
Chili Powder=
Raw Cocoa Beans=
Cocoa Beans=可可豆
Cookie=曲奇
Bar of Dark Chocolate=黑巧克力條
Chocolate Block=巧克力塊
Coffee Beans=咖啡豆
Cup of Coffee=一杯咖啡
Banana=香蕉
Banana Leaves=香蕉葉
Orange=橙色
Corn=玉米
Corn on the Cob=玉米棒
Popcorn=
Cornstarch=玉米澱粉
Bottle of Ethanol=一瓶乙醇
Wild Cotton=
Cotton Seed=棉籽
Cotton=棉花
String=字符串
Cucumber=黃瓜
Eggplant=
Glass of Water=
Sugar=糖
Sugar Cube=
Caramel=
Salt=鹽
Mayonnaise=
Rose Water=玫瑰汁
Turkish Delight=土耳其軟糖
Garlic Bread=蒜香麵包
Donut=甜甜圈
Chocolate Donut=巧克力甜甜圈
Apple Donut=蘋果甜甜圈
Porridge=粥
Jaffa Cake=佳發餅
Apple Pie=
Cactus Juice=
Pasta=
Mac & Cheese=
Spaghetti=
Bibimbap=
Burger=
Salad=
Triple Berry Smoothie=
Spanish Potatoes=
Potato omelet=
Paella=
Vanilla Flan=
Vegan Cheese=
Onigiri=
Gyoza=
Mochi=
Gingerbread Man=
Garlic clove=蒜瓣
Garlic=大蒜
Garlic Braid=蒜辮
Ginger=
Grapes=葡萄
Trellis (place on soil before planting grapes)=棚架(種植葡萄前先放在土壤上)
Hemp Seed=大麻籽
Hemp Leaf=大麻葉
Bottle of Hemp Oil=一瓶大麻油
Hemp Fibre=大麻纖維
Hemp Block=麻塊
Hemp Rope=麻繩
Hoe=鋤頭
Wooden Hoe=木鋤
Stone Hoe=石鋤
Steel Hoe=鋼鋤頭
Bronze Hoe=青銅鋤頭
Mese Hoe=黃石鋤頭
Diamond Hoe=鑽石鋤
Wood Hoe=
Hoe Bomb (use or throw on grassy areas to hoe land)=鋤彈(在草地上使用或扔在鋤地上)
Mithril Scythe (Use to harvest and replant crops)=
Seed=種子
Lettuce=
Melon Slice=西瓜片
Melon=甜瓜
Mint Seeds=
Mint Leaf=
Mint Tea=
Onion=洋蔥
Onion Soup=
Parsley=
Pea Pod=豌豆莢
Pea Soup=豌豆湯
Peppercorn=胡椒粉
Green Pepper=
Yellow Pepper=
Red Pepper=
Ground Pepper=胡椒粉
Pineapple Top=菠蘿上衣
Pineapple=菠蘿
Pineapple Ring=菠蘿圈
Pineapple Juice=菠蘿汁
Potato=土豆
Baked Potato=焗馬鈴薯
Cucumber and Potato Salad=黃瓜土豆沙拉
Pumpkin Slice=南瓜片
Jack 'O Lantern (punch to turn on and off)=南瓜燈(按一下開關)
Scarecrow Bottom=稻草人屁股
Pumpkin Bread=南瓜麵包
Pumpkin Dough=南瓜麵糰
Pumpkin=南瓜
Raspberries=覆盆子
Raspberry Smoothie=覆盆子冰沙
Rhubarb=大黃
Rhubarb Pie=大黃派
Rice Seed=
Rice=大米
Rice Bread=米飯麵包
Rice Flour=米粉
Rye seed=黑麥種子
Rye=黑麥
Oat seed=燕麥籽
Oats=
Multigrain Flour=多粒麵粉
Multigrain Bread=雜糧麵包
Savanna Soil=
Wet Savanna Soil=
Soil=土壤
Wet Soil=溼土
Soy Pod=
Soy Sauce=
Soy Milk=
Tofu=
Cooked Tofu=
Spinach=
Strawberry=草莓
Sunflower=
Sunflower Seeds=
Toasted Sunflower Seeds=
Bottle of Sunflower Oil=
Sunflower Seed Bread=
Tomato=番茄
Tomato Soup=
Wooden Bowl=木碗
Saucepan=平底鍋
Cooking Pot=鍋
Baking Tray=烤盤
Skillet=平底鍋
Mortar and Pestle=研缽
Cutting Board=砧板
Juicer=榨汁機
Glass Mixing Bowl=攪拌杯
Vanilla=
Vanilla Extract=
Wheat Seed=小麥種子
Wheat=小麥
Straw=稻草
Flour=麵粉
Bread=麵包
Sliced Bread=切片面包
Toast=烤麵包片
Toast Sandwich=三明治麵包

View File

@ -1,195 +0,0 @@
# Traduction Française du mod farming par TenPlus1
# textdomain: farming
# author: Papaou30
# author: TheDarkTiger
# last update: 2020/Apr/26
###### folder . ######
### init.lua ###
Seed=Graine
### compatibility.lua ###
Banana=Banane
Banana Leaves=Feuilles de Banane
Orange=Orange
Strawberry=Fraise
### food.lua ###
Sugar=Sucre
Salt=Sel
Rose Water=Eau de Rose
Turkish Delight=Douceur Turque
Garlic Bread=Pain à l'Ail
Donut=Beignet
Chocolate Donut=Beignet au chocolat
Apple Donut=Beignet aux pommes
Porridge=Gruau de céréales
Jaffa Cake=Petit gâteau à l'orange "Jaffa"
### hoes.lua ###
Hoe=Binette
Wooden Hoe=Binette en Bois
Stone Hoe=Binette en Pierre
Steel Hoe=Binette en Acier
Bronze Hoe=Binette en Bronze
Mese Hoe=Binette en Mese
Diamond Hoe=Binette en Diamant
# Surcharge du mod [Toolranks] à faire #
Hoe Bomb (use or throw on grassy areas to hoe land)=Bombe à binnage (Actionner ou lancer sur une zone herbeuse pour la binner)
Mithril Scythe (Right-click to harvest and replant crops)=Faux en Mithril (Récolte et replante des graines)
# Surcharge du mod [Toolranks] à faire #
### soil.lua ###
Soil=Sol binné
Wet Soil=Sol binné humide
### utensils.lua ###
Wooden Bowl=Bol en Bois
Saucepan=Casserole
Cooking Pot=Fait-tout
Baking Tray=Lèche-frite
Skillet=Poêle
Mortar and Pestle=Mortier et Pilon
Cutting Board=Planche à découper
Juicer=Presse-agrumes
Glass Mixing Bowl=Terrine en Verre
###### folder ./crops ######
### barley.lua ###
Barley Seed=Graine d'Orge
Barley=Orge
### beans.lua ###
Green Beans=Haricots verts
Bean Pole (place on soil before planting beans)=Tuteur pour haricots (placer sur le sol avant de planter des haricots)
### beetroot.lua ###
Beetroot=Betrave
Beetroot Soup=Soupe de Betrave
### blueberry.lua ###
Blueberries=Myrtilles
Blueberry Muffin=Muffin aux Myrtilles
Blueberry Pie=Tarte aux Myrtilles
### carrot.lua ##
Carrot=Carotte
Carrot Juice=Jus de Carotte
Golden Carrot=Carotte dorée
### chili.lua ###
Chili Pepper=Piment Rouge
Bowl of Chili=Assiette de Chilli
### cocoa.lua ###
Cocoa Beans=Fèves de Cacao
Cookie=Cookie
Bar of Dark Chocolate=Tablette de Chocolat noir
Chocolate Block=Block de Chocolat
### coffee.lua ###
Coffee Beans=Grains de café
Cup of Coffee=Tasse de café
### corn.lua ###
Corn=Maïs
Corn on the Cob=Cobette (Maïs cuit)
Cornstarch=Fécule de Maïs
Bottle of Ethanol=Bouteille d'Éthanol
### cotton.lua ###
Cotton Seed=Graines de Coton
Cotton=Coton
String=Ficelle
### cucumber.lua ###
Cucumber=Concombre
### garlic.lua ###
Garlic clove=Gousse d'Ail
Garlic=Tête d'Ail
Garlic Braid=Ail tressé
### grapes.lua ###
Grapes=Raisins
Trellis (place on soil before planting grapes)=Treillis (placer sur le sol avant de planter la vigne)
### hemp.lua ###
Hemp Seed=Graines de Chanvre
Hemp Leaf=Feuille de Chanvre
Bottle of Hemp Oil=Bouteille d'huile de Chanvre
Hemp Fibre=Fibre de Chanvre
Hemp Block=Bloc de Chanvre
Hemp Rope=Corde de Chanvre
### melon.lua ###
Melon Slice=Tranche de Melon
Melon=Melon
### onion.lua ###
Onion=Oignon
### peas.lua ###
Pea Pod=Cosse de Petit-poids
Peas=Petit-poids
Pea Soup=Soupe de Petit-poids
### pepper.lua ###
Peppercorn=Grain de Poivre
Pepper=Poivron
Ground Pepper=Poivre moulu
### pinapple.lua ###
Pineapple Top=Pousse d'Ananas
Pineapple=Ananas
Pineapple Ring=Tranche d'Ananas
Pineapple Juice=Jus d'Ananas
### potato.lua ###
Potato=Pomme de terre
Baked Potato=Pomme de terre cuite
Cucumber and Potato Salad=Salade de Pomme de terre au Concombre
### pumpkin.lua ###
Pumpkin Slice=Tranche de Citrouille
Jack 'O Lantern (punch to turn on and off)=Jack 'O Lantern (Frapper pour allumer et éteindre)
Scarecrow Bottom=Base d'Epouventail
Pumpkin Bread=Pain à la Citrouille
Pumpkin Dough=Pâton de pain à la Citrouille
Pumpkin=Citrouille
### raspberry.lua ###
Raspberries=Framboises
Raspberry Smoothie=Smoothie aux Framboises
### rhubarb.lua ###
Rhubarb=Rhubarbe
Rhubarb Pie=Tarte à la rhubarbe
### ryeoatrice.lua ###
Rye=Seigle
Rye seed=Grains de Seigle
Oat=Orge
Oat seed=Grains d'Orge
Rice=Riz
Rice grains=Grain de Riz
Rice Bread=Pain de Riz
Rice Flour=Farine de Riz
Multigrain Flour=Farine Multi-céréales
Multigrain Bread=Pain aux Céréales
### tomato.lua ###
Tomato=Tomate
### wheat.lua ###
Wheat Seed=Grain de blé
Wheat=Blé
Straw=Paille
Flour=Farine
Bread=Pain
Sliced Bread=Tranche de Pain
Toast=Pain Grillé
Toast Sandwich=Sandwich au Pain

View File

@ -1,195 +0,0 @@
# Russian translation of the farming mod by TenPlus1
# textdomain: farming
# author: codexp <codexp@gmx.net>
# author: TheDarkTiger
# last update: 2020/Apr/26
###### folder . ######
### init.lua ###
Seed=семена
### compatibility.lua ###
Banana=
Banana Leaves=
Orange=
Strawberry=
### food.lua ###
Sugar=сахар
Salt=
Rose Water=
Turkish Delight=
Garlic Bread=
Donut=пончик
Chocolate Donut=шоколадный пончик
Apple Donut=яблочный пончик
Porridge=
Jaffa Cake=
### hoes.lua ###
Hoe=мотыга
Wooden Hoe=деревянная мотыга
Stone Hoe=каменная мотыга
Steel Hoe=стальная мотыга
Bronze Hoe=бронзовая мотыга
Mese Hoe=магическая мотыга
Diamond Hoe=алмазная мотыга
# Surcharge du mod [Toolranks] à faire #
Hoe Bomb (use or throw on grassy areas to hoe land)=
Mithril Scythe (Right-click to harvest and replant crops)=
# Surcharge du mod [Toolranks] à faire #
### soil.lua ###
Soil=земля
Wet Soil=мокрая земля
### utensils.lua ###
Wooden Bowl=
Saucepan=
Cooking Pot=
Baking Tray=
Skillet=
Mortar and Pestle=
Cutting Board=
Juicer=
Glass Mixing Bowl=
###### folder ./crops ######
### barley.lua ###
Barley Seed=семена ячменя
Barley=ячмень
### beans.lua ###
Green Beans=зеленая фасоль
Bean Pole (place on soil before planting beans)=жердь для бобовых (установите на почву перед посадкой бобовых)
### beetroot.lua ###
Beetroot=
Beetroot Soup=
### blueberry.lua ###
Blueberries=голубика
Blueberry Muffin=кекс из голубики
Blueberry Pie=
### carrot.lua ##
Carrot=морковь
Carrot Juice=
Golden Carrot=золотая морковь
### chili.lua ###
Chili Pepper=
Bowl of Chili=
### cocoa.lua ###
Cocoa Beans=бобы какао
Cookie=печенье
Bar of Dark Chocolate=плитка темного шоколада
Chocolate Block=
### coffee.lua ###
Coffee Beans=кофе в зернах
Cup of Coffee=чашка кофе
### corn.lua ###
Corn=кукуруза
Corn on the Cob=початок кукурузы
Cornstarch=
Bottle of Ethanol=бутылка этилового спирта
### cotton.lua ###
Cotton Seed=семена хлопка
Cotton=хлопок
String=
### cucumber.lua ###
Cucumber=огурец
### garlic.lua ###
Garlic clove=
Garlic=
Garlic Braid=
### grapes.lua ###
Grapes=виноград
Trellis (place on soil before planting grapes)=решетка (поставьте на почву для посадки винограда)
### hemp.lua ###
Hemp Seed=семена конопли
Hemp Leaf=листья конопли
Bottle of Hemp Oil=бутылка конопляного масла
Hemp Fibre=
Hemp Block=
Hemp Rope=Пенька
### melon.lua ###
Melon Slice=ломтик арбуза
Melon=арбуз
### onion.lua ###
Onion=
### peas.lua ###
Pea Pod=
Peas=
Pea Soup=
### pepper.lua ###
Peppercorn=
Pepper=
Ground Pepper=
### pinapple.lua ###
Pineapple Top=
Pineapple=
Pineapple Ring=
Pineapple Juice=
### potato.lua ###
Potato=картофель
Baked Potato=запеченный картофель
Cucumber and Potato Salad=
### pumpkin.lua ###
Pumpkin Slice=ломтик тыквы
Jack 'O Lantern (punch to turn on and off)=светильник джека (удар для включения и отключения)
Scarecrow Bottom=
Pumpkin Bread=тыквенный хлеб
Pumpkin Dough=тыквенное тесто
Pumpkin=тыква
### raspberry.lua ###
Raspberries=малина
Raspberry Smoothie=малиновый коктейль
### rhubarb.lua ###
Rhubarb=ревень
Rhubarb Pie=пирог из ревеня
### ryeoatrice.lua ###
Rye=
Rye seed=
Oat=
Oat seed=
Rice=
Rice grains=
Rice Bread=
Rice Flour=
Multigrain Flour=
Multigrain Bread=
### tomato.lua ###
Tomato=помидор
### wheat.lua ###
Wheat Seed=
Wheat=семена пшеницы
Straw=солома
Flour=мука
Bread=хлеб
Sliced Bread=
Toast=
Toast Sandwich=

View File

@ -1,77 +1,110 @@
local mcl = farming.mcl
-- add lucky blocks
if minetest.get_modpath("lucky_block") then
lucky_block:add_blocks({
lucky_block:add_blocks({
{"dro", {"farming:corn"}, 5},
{"dro", {"farming:coffee_cup_hot"}, 1},
{"dro", {"farming:bread"}, 5},
{"nod", "farming:jackolantern", 0},
{"tro", "farming:jackolantern_on"},
{"nod", "default:river_water_source", 1},
{"tel"},
{"dro", {"farming:trellis", "farming:grapes"}, 5},
{"dro", {"farming:bottle_ethanol"}, 1},
{"nod", "farming:melon", 0},
{"dro", {"farming:donut", "farming:donut_chocolate", "farming:donut_apple"}, 5},
{"dro", {"farming:hemp_leaf", "farming:hemp_fibre", "farming:seed_hemp"}, 10},
{"nod", "fire:permanent_flame", 1},
{"dro", {"farming:chili_pepper", "farming:chili_bowl"}, 5},
{"dro", {"farming:bowl"}, 3},
{"dro", {"farming:saucepan"}, 1},
{"dro", {"farming:pot"}, 1},
{"dro", {"farming:baking_tray"}, 1},
{"dro", {"farming:skillet"}, 1},
{"exp", 4},
{"dro", {"farming:mortar_pestle"}, 1},
{"dro", {"farming:cutting_board"}, 1},
{"dro", {"farming:juicer"}, 1},
{"dro", {"farming:mixing_bowl"}, 1},
{"dro", {"farming:hoe_bronze"}, 1},
{"dro", {"farming:hoe_mese"}, 1},
{"dro", {"farming:hoe_diamond"}, 1},
{"dro", {"farming:hoe_bomb"}, 10},
{"dro", {"farming:turkish_delight"}, 5},
{"lig"},
{"dro", {"farming:scythe_mithril"}, 1},
{"sch", "instafarm", 0, true, {
{"farming:wheat_8", "farming:carrot_8"},
{"farming:cotton_8", "farming:rhubarb_3"},
}},
{"sch", "instafarm", 0, true, {
{"farming:wheat_8", "farming:pepper_5"},
{"farming:cotton_8", "farming:onion_5"},
}},
{"sch", "instafarm", 0, true, {
{"farming:wheat_8", "farming:beetroot_5"},
{"farming:cotton_8", "farming:barley_7"},
}},
{"sch", "instafarm", 0, true, {
{"farming:wheat_8", "farming:corn_8"},
{"farming:cotton_8", "farming:grapes_8"},
}},
{"sch", "instafarm", 0, true, {
{"farming:wheat_8", "farming:pea_5"},
{"farming:cotton_8", "farming:coffee_5"},
}},
{"sch", "instafarm", 0, true, {
{"farming:wheat_8", "farming:raspberry_4"},
{"farming:cotton_8", "farming:tomato_8"},
}},
{"sch", "instafarm", 0, true, {
{"farming:wheat_8", "farming:chili_8"},
{"farming:cotton_8", "farming:cucumber_4"},
}},
{"nod", "default:chest", 0, {
{name = "farming:seed_wheat", max = 15},
{name = "farming:seed_barley", max = 15},
{name = "farming:seed_barley", max = 15},
{name = "farming:seed_hemp", max = 15},
{name = "farming:seed_rye", max = 15},
{name = "farming:seed_rice", max = 15},
{name = "farming:seed_oat", max = 15},
{name = "farming:soil_wet", max = 10},
}},
})
end
{"dro", {"farming:corn"}, 5},
{"dro", {"farming:coffee_cup_hot"}, 1},
{"dro", {(mcl and "mcl_farming:bread" or "farming:bread")}, 5},
{"nod", (mcl and "mcl_farming:pumpkin_face_light" or "farming:jackolantern"), 0},
{"tro", (mcl and "mcl_farming:pumpkin_face_light" or "farming:jackolantern_on")},
{"nod", (mcl and "mcl_core:water_source" or "default:river_water_source"), 1},
{"tel"},
{"dro", {"farming:trellis", "farming:grapes"}, 5},
{"dro", {"farming:bottle_ethanol"}, 1},
{"nod", (mcl and "mcl_farming:melon" or "farming:melon"), 0},
{"dro", {"farming:donut", "farming:donut_chocolate", "farming:donut_apple"}, 5},
{"dro", {"farming:hemp_leaf", "farming:hemp_fibre", "farming:seed_hemp"}, 10},
{"nod", (mcl and "mcl_fire:fire" or "fire:permanent_flame"), 1},
{"dro", {"farming:chili_pepper", "farming:chili_bowl"}, 5},
{"dro", {(mcl and "mcl_core:bowl" or "farming:bowl")}, 3},
{"dro", {"farming:saucepan"}, 1},
{"dro", {"farming:pot"}, 1},
{"dro", {"farming:baking_tray"}, 1},
{"dro", {"farming:skillet"}, 1},
{"exp", 4},
{"dro", {"farming:mortar_pestle"}, 1},
{"dro", {"farming:cutting_board"}, 1},
{"dro", {"farming:juicer"}, 1},
{"dro", {"farming:mixing_bowl"}, 1},
{"dro", {"farming:sunflower_oil"}, 5},
{"dro", {(mcl and "mcl_farming:hoe_stone" or "farming:hoe_bronze")}, 1},
{"dro", {(mcl and "mcl_farming:hoe_gold" or "farming:hoe_mese")}, 1},
{"dro", {(mcl and "mcl_farming:hoe_diamond" or "farming:hoe_diamond")}, 1},
{"dro", {"farming:hoe_bomb"}, 10},
{"dro", {"farming:turkish_delight"}, 5},
{"lig"},
{"dro", {(mcl and "mcl_farming:hoe_netherite" or "farming:scythe_mithril")}, 1},
{"sch", "instafarm", 0, true, {
{"farming:wheat_8", "farming:carrot_8"},
{"farming:cotton_8", "farming:rhubarb_3"},
{"farming:soil_wet", (mcl and "mcl_farming:soil_wet" or "farming:soil_wet")},
{"default:dirt", (mcl and "mcl_core:dirt" or "default:dirt")},
{"default:water_source", (mcl and "mcl_core:water_source" or "default:water_source")},
}},
{"sch", "instafarm", 0, true, {
{"farming:wheat_8", "farming:pepper_5"},
{"farming:cotton_8", "farming:onion_5"},
{"farming:soil_wet", (mcl and "mcl_farming:soil_wet" or "farming:soil_wet")},
{"default:dirt", (mcl and "mcl_core:dirt" or "default:dirt")},
{"default:water_source", (mcl and "mcl_core:water_source" or "default:water_source")},
}},
{"sch", "instafarm", 0, true, {
{"farming:wheat_8", (mcl and "mcl_farming:beetroot" or "farming:beetroot_5")},
{"farming:cotton_8", "farming:barley_7"},
{"farming:soil_wet", (mcl and "mcl_farming:soil_wet" or "farming:soil_wet")},
{"default:dirt", (mcl and "mcl_core:dirt" or "default:dirt")},
{"default:water_source", (mcl and "mcl_core:water_source" or "default:water_source")},
}},
{"sch", "instafarm", 0, true, {
{"farming:wheat_8", "farming:corn_8"},
{"farming:cotton_8", "farming:grapes_8"},
{"farming:soil_wet", (mcl and "mcl_farming:soil_wet" or "farming:soil_wet")},
{"default:dirt", (mcl and "mcl_core:dirt" or "default:dirt")},
{"default:water_source", (mcl and "mcl_core:water_source" or "default:water_source")},
}},
{"sch", "instafarm", 0, true, {
{"farming:wheat_8", "farming:pea_5"},
{"farming:cotton_8", "farming:coffee_5"},
{"farming:soil_wet", (mcl and "mcl_farming:soil_wet" or "farming:soil_wet")},
{"default:dirt", (mcl and "mcl_core:dirt" or "default:dirt")},
{"default:water_source", (mcl and "mcl_core:water_source" or "default:water_source")},
}},
{"sch", "instafarm", 0, true, {
{"farming:wheat_8", "farming:raspberry_4"},
{"farming:cotton_8", "farming:tomato_8"},
{"farming:soil_wet", (mcl and "mcl_farming:soil_wet" or "farming:soil_wet")},
{"default:dirt", (mcl and "mcl_core:dirt" or "default:dirt")},
{"default:water_source", (mcl and "mcl_core:water_source" or "default:water_source")},
}},
{"sch", "instafarm", 0, true, {
{"farming:wheat_8", "farming:chili_8"},
{"farming:cotton_8", "farming:cucumber_4"},
{"farming:soil_wet", (mcl and "mcl_farming:soil_wet" or "farming:soil_wet")},
{"default:dirt", (mcl and "mcl_core:dirt" or "default:dirt")},
{"default:water_source", (mcl and "mcl_core:water_source" or "default:water_source")},
}},
{"sch", "instafarm", 0, true, {
{"farming:wheat_8", "farming:spinach_4"},
{"farming:cotton_8", "farming:eggplant_4"},
{"farming:soil_wet", (mcl and "mcl_farming:soil_wet" or "farming:soil_wet")},
{"default:dirt", (mcl and "mcl_core:dirt" or "default:dirt")},
{"default:water_source", (mcl and "mcl_core:water_source" or "default:water_source")},
}},
{"nod", "default:chest", 0, {
{name = (mcl and "mcl_farming:wheat_seeds" or "farming:seed_wheat"), max = 15},
{name = "farming:seed_barley", max = 15},
{name = "farming:seed_hemp", max = 15},
{name = "farming:seed_rye", max = 15},
{name = "farming:seed_rice", max = 15},
{name = "farming:seed_oat", max = 15},
{name = "farming:soil_wet", max = 10},
{name = "farming:cotton_wild", max = 5},
{name = "farming:grapebush", max = 5},
{name = "farming:asparagus", max = 7}
}},
{"dro", {"farming:chili_powder"}, 5},
{"dro", {"farming:weed"}, 9},
})

View File

@ -1,168 +0,0 @@
-- decoration function
local function register_plant(name, min, max, spawnon, spawnby, num, rarety)
-- do not place on mapgen if no value given (or not true)
if not rarety then
return
end
-- set rarety value or default to farming.rarety if not a number
rarety = tonumber(rarety) or farming.rarety
minetest.register_decoration({
deco_type = "simple",
place_on = spawnon or {"default:dirt_with_grass"},
sidelen = 16,
noise_params = {
offset = 0,
scale = rarety,
spread = {x = 100, y = 100, z = 100},
seed = 329,
octaves = 3,
persist = 0.6
},
y_min = min,
y_max = max,
decoration = "farming:" .. name,
spawn_by = spawnby,
num_spawn_by = num,
})
end
-- add crops to mapgen
register_plant("potato_3", 15, 40, nil, "", -1, farming.potato)
register_plant("tomato_7", 5, 20, nil, "", -1, farming.tomato)
register_plant("corn_7", 12, 22, nil, "", -1, nil)
register_plant("coffee_5", 20, 45, {"default:dirt_with_dry_grass",
"default:dirt_with_rainforest_litter",
"default:dry_dirt_with_dry_grass"}, "", -1, farming.coffee)
register_plant("raspberry_4", 3, 10, nil, "", -1, farming.raspberry)
register_plant("rhubarb_3", 3, 15, nil, "", -1, farming.rhubarb)
register_plant("blueberry_4", 3, 10, nil, "", -1, farming.blueberry)
register_plant("beanbush", 18, 35, nil, "", -1, farming.beans)
register_plant("grapebush", 25, 45, nil, "", -1, farming.grapes)
register_plant("onion_5", 5, 22, nil, "", -1, farming.onion)
register_plant("garlic_5", 3, 30, nil, "group:tree", 1, farming.garlic)
register_plant("pea_5", 25, 50, nil, "", -1, farming.peas)
register_plant("beetroot_5", 1, 15, nil, "", -1, farming.beetroot)
register_plant("mint_4", 1, 75, {"default:dirt_with_grass",
"default:dirt_with_coniferous_litter"}, "group:water", 1, farming.mint)
if minetest.get_mapgen_setting("mg_name") == "v6" then
register_plant("carrot_8", 1, 30, nil, "group:water", 1, farming.carrot)
register_plant("cucumber_4", 1, 20, nil, "group:water", 1, farming.cucumber)
register_plant("melon_8", 1, 20, nil, "group:water", 1, farming.melon)
register_plant("pumpkin_8", 1, 20, nil, "group:water", 1, farming.pumpkin)
else
-- v7 maps have a beach so plants growing near water is limited to 6 high
register_plant("carrot_8", 1, 15, nil, "", -1, nil)
register_plant("cucumber_4", 1, 10, nil, "", -1, farming.cucumber)
register_plant("melon_8", 1, 6, {"default:dirt_with_dry_grass",
"default:dirt_with_rainforest_litter"}, "", -1, farming.melon)
register_plant("pumpkin_8", 1, 6, nil, "", -1, farming.pumpkin)
end
if farming.hemp then
minetest.register_decoration({
deco_type = "simple",
place_on = {"default:dirt_with_grass", "default:dirt_with_rainforest_litter"},
sidelen = 16,
noise_params = {
offset = 0,
scale = tonumber(farming.hemp) or farming.rarety,
spread = {x = 100, y = 100, z = 100},
seed = 420,
octaves = 3,
persist = 0.6
},
y_min = 3,
y_max = 45,
decoration = "farming:hemp_7",
spawn_by = "group:tree",
num_spawn_by = 1,
})
end
if farming.chili then
minetest.register_decoration({
deco_type = "simple",
place_on = {"default:dirt_with_grass", "default:dirt_with_rainforest_litter"},
sidelen = 16,
noise_params = {
offset = 0,
scale = tonumber(farming.chili) or farming.rarety,
spread = {x = 100, y = 100, z = 100},
seed = 760,
octaves = 3,
persist = 0.6
},
y_min = 5,
y_max = 35,
decoration = {"farming:chili_8"},
spawn_by = "group:tree",
num_spawn_by = 1,
})
end
if farming.pepper then
minetest.register_decoration({
deco_type = "simple",
place_on = {"default:dirt_with_rainforest_litter"},
sidelen = 16,
noise_params = {
offset = 0,
scale = tonumber(farming.pepper) or farming.rarety,
spread = {x = 100, y = 100, z = 100},
seed = 933,
octaves = 3,
persist = 0.6
},
y_min = 5,
y_max = 35,
decoration = {"farming:pepper_5"},
spawn_by = "group:tree",
num_spawn_by = 1,
})
end
if farming.pineapple then
minetest.register_decoration({
deco_type = "simple",
place_on = {"default:dirt_with_dry_grass", "default:dry_dirt_with_dry_grass"},
sidelen = 16,
noise_params = {
offset = 0,
scale = tonumber(farming.pineapple) or farming.rarety,
spread = {x = 100, y = 100, z = 100},
seed = 917,
octaves = 3,
persist = 0.6
},
y_min = 18,
y_max = 30,
decoration = {"farming:pineapple_8"},
})
end
minetest.register_decoration({
name = "farming:cotton_wild",
deco_type = "simple",
place_on = {"default:dry_dirt_with_dry_grass"},
sidelen = 16,
noise_params = {
offset = -0.1,
scale = 0.1,
spread = {x = 50, y = 50, z = 50},
seed = 4242,
octaves = 3,
persist = 0.7
},
biomes = {"savanna"},
y_max = 31000,
y_min = 1,
decoration = "farming:cotton_wild",
})

View File

@ -1 +1,4 @@
name = farming
name = farming
description = Adds many new plants and food into Minetest.
optional_depends = default, flowers, mcl_core, mcl_sounds, mcl_farming, mcl_stairs, mcl_flowers, stairs, lucky_block, toolranks
min_minetest_version = 5.0

BIN
screenshot.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 293 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

View File

@ -1,2 +1,6 @@
# Contains a value used for speed of crop growth in seconds
farming_stage_length (Farming Stage Length) float 160.0
farming_use_utensils (Use utensil recipes) bool true
farming_disable_weeds (Disable Weed growth) bool false

Some files were not shown because too many files have changed in this diff Show More