trader_farming.lua 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. ------------------------------------------
  2. -- farming and farming_plus
  3. ------------------------------------------
  4. -- adds traders for wheat, cotton and pumpkin (with farming);
  5. -- additionally trader for carrot, orange, potatoe, rhubarb, strawberry, tomatoe, banana, cacoa, rubber (with farming_plus)
  6. local seeds = {}; -- there will be a special trader for seeds
  7. if( minetest.get_modpath("farming") ~= nil ) then
  8. for i,v in ipairs( {'wheat','cotton','pumpkin'}) do
  9. local goods = {
  10. {"farming:"..v.."_seed 1", "farming:scarecrow", "farming:scarecrow_light 1"},
  11. {"farming:hoe_wood 1", "default:wood 10", "default:cobble 10"},
  12. };
  13. table.insert( seeds, {"farming:"..v.."_seed 2", "default:dirt 20", "default:bucket_water", "default:steel_ingot 4", "default:leaves 99" });
  14. if( v=='wheat') then
  15. table.insert( goods, {"farming:bread 1", "default:coal_lump 9", "default:apple 2"});
  16. table.insert( goods, {"farming:bread 10", "default:steel_ingot 4", "bucket:bucket_water 1"});
  17. table.insert( goods, {"farming:flour 5", "default:coal_lump 5", "default:apple 1"});
  18. table.insert( goods, {"farming:flour 10", "default:coal_lump 9", "default:apple 4"});
  19. elseif( v=='cotton') then
  20. table.insert( goods, {"farming:string 1", "default:coal_lump 3", "default:wood 8"} );
  21. table.insert( goods, {"farming:string 10", "default:steel_ingot 2", "default:chest_locked 1"});
  22. table.insert( goods, {"wool:white 1", "default:coal_lump 3", "default:wood 8"});
  23. table.insert( goods, {"wool:white 10"; "default:steel_ingot 2", "default:chest_locked 1"});
  24. elseif( v=='pumpkin') then
  25. table.insert( goods, {"farming:pumpkin 1", "default:coal_lump 1", "default:cobble 3"});
  26. table.insert( goods, {"farming:pumpkin 10", "default:coal_lump 18", "bucket:bucket_empty 1"});
  27. table.insert( goods, {"farming:pumpkin_bread 1", "default:coal_lump 9", "default:apple 2"});
  28. table.insert( goods, {"farming:pumpkin_bread 10", "default:steel_ingot 4", "bucket:bucket_empty 1"});
  29. table.insert( goods, {"farming:pumpkin_seed 1", "default:mese_crystal 9", "moreores:gold_ingot 5"});
  30. table.insert( goods, {"farming:pumpkin_face 1", "default:steel_ingot 4", "bucket:bucket_empty 1"});
  31. table.insert( goods, {"farming:pumpkin_face_light 1", "default:steel_ingot 4", "bucket:bucket_empty 1"});
  32. table.insert( goods, {"farming:big_pumpkin 1", "default:steel_ingot 4", "bucket:bucket_empty 1"});
  33. table.insert( goods, {"farming:scarecrow 1", "default:mese_crystal 99", "moreores:gold_ingot 48"});
  34. end
  35. mobf_trader.add_trader( mobf_trader.npc_trader_prototype,
  36. "farmer growing "..v,
  37. v.."_farmer",
  38. goods,
  39. { v.." farmer" },
  40. ""
  41. );
  42. end
  43. -- for each type of farming product, there is a specialized trader
  44. if( minetest.get_modpath("farming_plus") ~= nil ) then
  45. -- add traders for the diffrent versions of wood
  46. for i,v in ipairs( {'carrot', 'orange', 'potatoe', 'rhubarb', 'strawberry', 'tomato' }) do
  47. table.insert( seeds, {"farming_plus:"..v.."_seed 2", "default:dirt 20", "default:bucket_water", "default:steel_ingot 4", "default:leaves 99" });
  48. local goods = {
  49. {"farming_plus:"..v.."_item 1", "default:coal_lump 3", "default:wood 8"},
  50. {"farming_plus:"..v.."_item 10", "default:steel_ingot 2", "default:chest_locked 1"},
  51. {"farming_plus:"..v.."_seed 1", "farming:scarecrow", "farming:scarecrow_light 1"},
  52. {"farming:hoe_wood 1", "default:wood 10", "default:cobble 10"},
  53. };
  54. mobf_trader.add_trader( mobf_trader.npc_trader_prototype,
  55. "farmer growing "..v.."s", -- not always the right grammatical form
  56. v.."_farmer",
  57. goods,
  58. { "farmer" },
  59. ""
  60. );
  61. end
  62. for i,v in ipairs( {'banana','cocoa','rubber'} ) do
  63. table.insert( seeds, {"farming_plus:"..v.."_sapling", "default:dirt 40", "default:steel_ingot 16", "default:gold_ingot 2" });
  64. local goods = {
  65. {"farming_plus:"..v.."_sapling 1", "default:mese_crystal 3", "bucket:bucket_water 1"},
  66. {"farming_plus:"..v.."_leaves 10", "default:coal_lump 1", "default:wood 4"},
  67. {"default:axe_wood 1", "default:coal_lump 3", "default:wood 9"},
  68. {"default:axe_stone 1", "default:steel_ingot 1", "bucket:bucket_empty 1"}, -- a bit expensive :-)
  69. };
  70. if( v ~= 'rubber' ) then
  71. table.insert( goods, {"farming_plus:"..v.." 1", "default:coal_lump 4", "default:wood 8"} );
  72. table.insert( goods, {"farming_plus:"..v.." 10", "default:steel_ingot 1", "default:axe_stone 1"} );
  73. else
  74. table.insert( goods, {"farming_plus:bucket_rubber 1", "default:steel_ingot 19", "default:mese_crystal 8"} );
  75. end
  76. if( v=='cocoa' ) then
  77. table.insert( goods, { "farming_plus:cocoa_bean 1", "default:coal_lump 3", "default:wood 6"});
  78. table.insert( goods, { "farming_plus:cocoa_bean 12", "default:steel_ingot 1", "default:axe_stone 1"});
  79. end
  80. mobf_trader.add_trader( mobf_trader.npc_trader_prototype,
  81. "farmer growing "..v.." trees",
  82. v.."_tree_farmer",
  83. goods,
  84. { "farmer" },
  85. ""
  86. );
  87. end
  88. -- not sold here because they are no fruits: cotton and bucket_rubber; bread and pumpkin_bread are sold
  89. goods = {};
  90. for i,v in ipairs( {
  91. 'carrot_item', 'orange_item', 'potatoe_item', 'rhubarb_item', 'strawberry_item', 'tomato_item',
  92. 'banana', 'cocoa' }) do
  93. table.insert( goods, { "farming_plus:"..v.." 1", "default:coal_lump 5", "default:cobble 20"});
  94. end
  95. for i,v in ipairs( {'pumpkin', 'pumpkin_bread','bread' }) do
  96. table.insert( goods, { "farming:"..v.." 1", "default:coal_lump 5", "default:cobble 20"});
  97. end
  98. table.insert( goods, { "default:apple 1", "default:coal_lump 5", "default:wood 6"});
  99. mobf_trader.add_trader( mobf_trader.npc_trader_prototype,
  100. "fruit trader",
  101. "fruit_trader",
  102. goods,
  103. { "fruit trader" },
  104. ""
  105. );
  106. end
  107. end
  108. if( seeds and #seeds > 0 ) then
  109. mobf_trader.add_trader( mobf_trader.npc_trader_prototype,
  110. "trader specialized in seeds",
  111. "seeds",
  112. seeds,
  113. { "Sebastian" },
  114. ""
  115. );
  116. end