123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976 |
- --Plants
- function lottmapgen_grass(data, vi, p2data)
- local c_grass1 = minetest.get_content_id("default:grass_1")
- local c_grass2 = minetest.get_content_id("default:grass_2")
- local c_grass3 = minetest.get_content_id("default:grass_3")
- local c_grass4 = minetest.get_content_id("default:grass_4")
- local c_grass5 = minetest.get_content_id("default:grass_5")
- local rand = math.random(5)
- if rand == 1 then
- data[vi] = c_grass1
- elseif rand == 2 then
- data[vi] = c_grass2
- elseif rand == 3 then
- data[vi] = c_grass3
- elseif rand == 4 then
- data[vi] = c_grass4
- else
- data[vi] = c_grass5
- end
- p2data[vi] = 40
- end
- function lottmapgen_lorien_grass(data, vi, p2data)
- local c_lorgrass1 = minetest.get_content_id("lottplants:lorien_grass_1")
- local c_lorgrass2 = minetest.get_content_id("lottplants:lorien_grass_2")
- local c_lorgrass3 = minetest.get_content_id("lottplants:lorien_grass_3")
- local c_lorgrass4 = minetest.get_content_id("lottplants:lorien_grass_4")
- local rand = math.random(4)
- if rand == 1 then
- data[vi] = c_lorgrass1
- elseif rand == 2 then
- data[vi] = c_lorgrass2
- elseif rand == 3 then
- data[vi] = c_lorgrass3
- else
- data[vi] = c_lorgrass4
- end
- p2data[vi] = 40
- end
- function lottmapgen_farmingplants(data, vi, p2data)
- local c_plant1 = minetest.get_content_id("lottplants:pipeweed_wild")
- local c_plant2 = minetest.get_content_id("lottplants:barley_wild")
- local c_plant3 = minetest.get_content_id("lottplants:corn_wild")
- local c_plant4 = minetest.get_content_id("lottplants:potato_wild")
- local c_plant5 = minetest.get_content_id("lottplants:mushroom_wild")
- local c_plant6 = minetest.get_content_id("lottplants:berries_wild")
- local c_plant7 = minetest.get_content_id("lottplants:turnips_wild")
- local c_plant8 = minetest.get_content_id("lottplants:tomatoes_wild")
- local c_plant9 = minetest.get_content_id("lottplants:cabbage_wild")
- local rand = math.random(9)
- if rand == 1 then
- data[vi] = c_plant1
- p2data[vi] = 34
- elseif rand == 2 then
- data[vi] = c_plant2
- p2data[vi] = 3
- elseif rand == 3 then
- data[vi] = c_plant3
- p2data[vi] = 3
- elseif rand == 4 then
- data[vi] = c_plant4
- p2data[vi] = 40
- elseif rand == 5 then
- data[vi] = c_plant5
- p2data[vi] = 9
- elseif rand == 6 then
- data[vi] = c_plant6
- p2data[vi] = 34
- elseif rand == 7 then
- data[vi] = c_plant7
- p2data[vi] = 40
- elseif rand == 8 then
- data[vi] = c_plant8
- p2data[vi] = 10
- else
- data[vi] = c_plant9
- end
- end
- function lottmapgen_ithildinplants(data, vi, p2data)
- local c_iplant1 = minetest.get_content_id("lottplants:asphodel")
- local c_iplant2 = minetest.get_content_id("lottplants:anemones")
- local c_iplant3 = minetest.get_content_id("lottplants:eglantive")
- local c_iplant4 = minetest.get_content_id("lottplants:iris")
- local rand = math.random(4)
- if rand == 1 then
- data[vi] = c_iplant1
- elseif rand == 2 then
- data[vi] = c_iplant2
- elseif rand == 3 then
- data[vi] = c_iplant3
- else
- data[vi] = c_iplant4
- end
- p2data[vi] = 40
- end
- function lottmapgen_lorienplants(data, vi, p2data)
- local c_lplant1 = minetest.get_content_id("lottplants:elanor")
- local c_lplant2 = minetest.get_content_id("lottplants:lissuin")
- local c_lplant3 = minetest.get_content_id("lottplants:niphredil")
- local rand = math.random(3)
- if rand == 1 then
- data[vi] = c_lplant1
- p2data[vi] = 10
- elseif rand == 2 then
- data[vi] = c_lplant2
- p2data[vi] = 41
- else
- data[vi] = c_lplant3
- p2data[vi] = 8
- end
- end
- function lottmapgen_papyrus(x, y, z, area, data, p2data)
- local c_papyrus = minetest.get_content_id("default:papyrus")
- local ph = math.random(0, 3)
- for j = 0, ph do
- local vip = area:index(x, y + j, z)
- data[vip] = c_papyrus
- p2data[vip] = 3
- end
- end
- function lottmapgen_farmingrareplants(data, vi, p2data)
- local c_rplant1 = minetest.get_content_id("lottplants:athelas")
- local c_rplant2 = minetest.get_content_id("lottplants:melon_wild")
- local rand = math.random(2)
- if rand == 1 then
- data[vi] = c_rplant1
- p2data[vi] = 2
- else
- data[vi] = c_rplant2
- end
- end
- function lottmapgen_burnedtree(x, y, z, area, data)
- local c_tree = minetest.get_content_id("default:tree")
- for j = -2, 4 do
- for i = -2, 2 do
- if i == 0 or j == 2 or (j == 3 and math.abs(i) == 2) then
- local vic = area:index(x + i, y + j, z)
- data[vic] = c_tree
- end
- end
- end
- end
- function lottmapgen_appletree(x, y, z, area, data)
- local c_tree = minetest.get_content_id("default:tree")
- local c_apple = minetest.get_content_id("default:apple")
- local c_leaves = minetest.get_content_id("default:leaves")
- for j = -2, 4 do
- if j >= 1 then
- for i = -2, 2 do
- for k = -2, 2 do
- local vil = area:index(x + i, y + j + 1, z + k)
- if math.random(48) == 2 then
- data[vil] = c_apple
- elseif math.random(3) ~= 2 then
- data[vil] = c_leaves
- end
- end
- end
- end
- local vit = area:index(x, y + j, z)
- data[vit] = c_tree
- end
- end
- function lottmapgen_plumtree(x, y, z, area, data)
- local c_tree = minetest.get_content_id("default:tree")
- local c_plum = minetest.get_content_id("lottplants:plum")
- local c_plumleaf = minetest.get_content_id("lottplants:plumleaf")
- for j = -2, 4 do
- if j >= 1 then
- for i = -2, 2 do
- for k = -2, 2 do
- local vil = area:index(x + i, y + j + 1, z + k)
- if math.random(48) == 2 then
- data[vil] = c_plum
- elseif math.random(3) ~= 2 then
- data[vil] = c_plumleaf
- end
- end
- end
- end
- local vit = area:index(x, y + j, z)
- data[vit] = c_tree
- end
- end
- function lottmapgen_rowantree(x, y, z, area, data)
- local c_tree = minetest.get_content_id("default:tree")
- local c_rowanberry = minetest.get_content_id("lottplants:rowanberry")
- local c_rowanleaf = minetest.get_content_id("lottplants:rowanleaf")
- for j = -2, 4 do
- if j >= 1 then
- for i = -2, 2 do
- for k = -2, 2 do
- local vil = area:index(x + i, y + j + 1, z + k)
- if math.random(48) == 2 then
- data[vil] = c_rowanberry
- elseif math.random(3) ~= 2 then
- data[vil] = c_rowanleaf
- end
- end
- end
- end
- local vit = area:index(x, y + j, z)
- data[vit] = c_tree
- end
- end
- function lottmapgen_culumaldatree(x, y, z, area, data)
- local c_tree = minetest.get_content_id("default:tree")
- local c_yellowflowers = minetest.get_content_id("lottplants:yellowflowers")
- local c_culumaldaleaf = minetest.get_content_id("lottplants:culumaldaleaf")
- for j = -2, 4 do
- if j >= 1 then
- for i = -2, 2 do
- for k = -2, 2 do
- local vil = area:index(x + i, y + j + 1, z + k)
- if math.random(48) == 2 then
- data[vil] = c_yellowflowers
- elseif math.random(3) ~= 2 then
- data[vil] = c_culumaldaleaf
- end
- end
- end
- end
- local vit = area:index(x, y + j, z)
- data[vit] = c_tree
- end
- end
- function lottmapgen_yavannamiretree(x, y, z, area, data)
- local c_tree = minetest.get_content_id("default:tree")
- local c_yavannamirefruit = minetest.get_content_id("lottplants:yavannamirefruit")
- local c_yavannamireleaf = minetest.get_content_id("lottplants:yavannamireleaf")
- for j = -2, 4 do
- if j >= 1 then
- for i = -2, 2 do
- for k = -2, 2 do
- local vil = area:index(x + i, y + j + 1, z + k)
- if math.random(48) == 2 then
- data[vil] = c_yavannamirefruit
- elseif math.random(3) ~= 2 then
- data[vil] = c_yavannamireleaf
- end
- end
- end
- end
- local vit = area:index(x, y + j, z)
- data[vit] = c_tree
- end
- end
- function lottmapgen_defaulttree(x, y, z, area, data)
- local c_tree = minetest.get_content_id("default:tree")
- local c_leaves = minetest.get_content_id("default:leaves")
- for j = -2, 4 do
- if j >= 1 then
- for i = -2, 2 do
- for k = -2, 2 do
- local vil = area:index(x + i, y + j + 1, z + k)
- if math.random(48) == 2 then
- data[vil] = c_leaves
- elseif math.random(3) ~= 2 then
- data[vil] = c_leaves
- end
- end
- end
- end
- local vit = area:index(x, y + j, z)
- data[vit] = c_tree
- end
- end
- function lottmapgen_aldertree(x, y, z, area, data)
- local c_aldertree = minetest.get_content_id("lottplants:aldertree")
- local c_alderleaf = minetest.get_content_id("lottplants:alderleaf")
- for j = -2, 4 do
- if j >= 1 then
- for i = -2, 2 do
- for k = -2, 2 do
- local vil = area:index(x + i, y + j + 1, z + k)
- if math.random(48) == 2 then
- data[vil] = c_alderleaf
- elseif math.random(3) ~= 2 then
- data[vil] = c_alderleaf
- end
- end
- end
- end
- local vit = area:index(x, y + j, z)
- data[vit] = c_aldertree
- end
- end
- function lottmapgen_lebethrontree(x, y, z, area, data)
- local c_lebethrontree = minetest.get_content_id("lottplants:lebethrontree")
- local c_lebethronleaf = minetest.get_content_id("lottplants:lebethronleaf")
- for j = -2, 4 do
- if j >= 1 then
- for i = -2, 2 do
- for k = -2, 2 do
- local vil = area:index(x + i, y + j + 1, z + k)
- if math.random(48) == 2 then
- data[vil] = c_lebethronleaf
- elseif math.random(3) ~= 2 then
- data[vil] = c_lebethronleaf
- end
- end
- end
- end
- local vit = area:index(x, y + j, z)
- data[vit] = c_lebethrontree
- end
- end
- function lottmapgen_whitetree(x, y, z, area, data)
- local c_tree = minetest.get_content_id("default:tree")
- local c_whiteleaf = minetest.get_content_id("lottplants:whiteleaf")
- local t = 6 + math.random(2) -- trunk height
- for j = -2, t do
- if j == t or j == t - 2 or j == t - 4 then
- for i = -3, 3 do
- for k = -3, 3 do
- local vil = area:index(x + i, y + j + math.random(0, 1), z + k)
- if math.random(48) == 2 then
- data[vil] = c_whiteleaf
- elseif math.random(3) ~= 2 then
- data[vil] = c_whiteleaf
- end
- end
- end
- end
- if j == t - 1 then
- for i = -2, 2 do
- for k = -2, 2 do
- if i == -1 and k == 0 or i == 1 and k == 0
- or k == 1 and i == 0 or k == -1 and i == 0
- or i == -2 and k == 0 or i == 2 and k == 0
- or k == 2 and i == 0 or k == -2 and i == 0 then
- local vil = area:index(x + i, y + j + 1, z + k)
- data[vil] = c_tree
- end
- end
- end
- end
- local vit = area:index(x, y + j, z)
- data[vit] = c_tree
- end
- end
- function lottmapgen_birchtree(x, y, z, area, data)
- local c_birchtree = minetest.get_content_id("lottplants:birchtree")
- local c_birchleaf = minetest.get_content_id("lottplants:birchleaf")
- for j = -5, 12 do
- if j == 8 or j == 11 then
- for i = -2, 2 do
- for k = -2, 2 do
- local vil = area:index(x + i, y + j + math.random(0, 1), z + k)
- if math.random(5) ~= 2 then
- data[vil] = c_birchleaf
- end
- end
- end
- end
- local vit = area:index(x, y + j, z)
- data[vit] = c_birchtree
- end
- end
- function lottmapgen_elmtree(x, y, z, area, data)
- local c_tree = minetest.get_content_id("default:tree")
- local c_elmleaf = minetest.get_content_id("lottplants:elmleaf")
- for j = -5, 25 do
- if j == 11 or j == 18 or j == 24 then
- for i = -2, 2 do
- for k = -2, 2 do
- local vil = area:index(x + i, y + j + math.random(0, 1), z + k)
- if math.random(5) ~= 2 then
- data[vil] = c_elmleaf
- end
- end
- end
- end
- local vit = area:index(x, y + j, z)
- data[vit] = c_tree
- end
- end
- function lottmapgen_mallornsmalltree(x, y, z, area, data)
- local c_mallorntree = minetest.get_content_id("lottplants:mallorntree")
- local c_mallornleaf = minetest.get_content_id("lottplants:mallornleaf")
- for j = -5, 15 do
- if j == 11 or j == 15 then
- for i = -2, 2 do
- for k = -2, 2 do
- local vil = area:index(x + i, y + j + math.random(0, 1), z + k)
- if math.random(5) ~= 2 then
- data[vil] = c_mallornleaf
- end
- end
- end
- end
- local vit = area:index(x, y + j, z)
- data[vit] = c_mallorntree
- end
- end
- function lottmapgen_young_mallorn(x, y, z, area, data)
- local c_youngmallorn = minetest.get_content_id("lottplants:mallorntree_young")
- local c_mallornleaf = minetest.get_content_id("lottplants:mallornleaf")
- local t = 6 + math.random(1) -- trunk height
- for j = 0, t do
- if j == t or j == t - 2 then
- for i = -1, 1 do
- for k = -1, 1 do
- local vil = area:index(x + i, y + j + math.random(0, 1), z + k)
- local absi = math.abs(i)
- local absk = math.abs(k)
- if math.random() > (absi + absk) / 24 then
- data[vil] = c_mallornleaf
- end
- end
- end
- end
- local vit = area:index(x, y + j, z)
- data[vit] = c_youngmallorn
- end
- end
- function lottmapgen_jungletree(x, y, z, area, data)
- local c_tree = minetest.get_content_id("default:tree")
- local c_leaves = minetest.get_content_id("default:leaves")
- for j = -2, 5 do
- if j == 4 then
- for i = -2, 2 do
- for k = -2, 2 do
- local vil = area:index(x + i, y + j + math.random(0, 1), z + k)
- if math.random(5) ~= 2 then
- data[vil] = c_leaves
- end
- end
- end
- end
- local vit = area:index(x, y + j, z)
- data[vit] = c_tree
- end
- end
- function lottmapgen_jungletree2(x, y, z, area, data)
- local c_tree = minetest.get_content_id("default:jungletree")
- local c_leaves = minetest.get_content_id("lottplants:mirkleaf")
- for j = -3, 7 do
- if j == 6 then
- for i = -4, 4 do
- for k = -4, 4 do
- if math.random(20) ~= 10 then
- local vil = area:index(x + i, y + j + math.random(1, 2), z + k)
- data[vil] = c_leaves
- end
- end
- end
- for i = -1, 1 do
- for k = -1, 1 do
- if math.abs(i) + math.abs(k) == 2 then
- local vit = area:index(x + i, y + j, z + k)
- data[vit] = c_tree
- end
- end
- end
- elseif j == 7 then
- for i = -2, 2, 4 do
- for k = -2, 2, 4 do
- local vit = area:index(x + i, y + j, z + k)
- data[vit] = c_tree
- end
- end
- else
- local vit = area:index(x, y + j, z)
- data[vit] = c_tree
- end
- end
- end
- function lottmapgen_pinetree(x, y, z, area, data)
- local c_pinetree = minetest.get_content_id("lottplants:pinetree")
- local c_pineleaf = minetest.get_content_id("lottplants:pineleaf")
- local c_snow = minetest.get_content_id("default:snow")
- for j = -4, 13 do
- if j == 3 or j == 6 or j == 9 or j == 12 then
- for i = -2, 2 do
- for k = -2, 2 do
- if math.abs(i) == 2 or math.abs(k) == 2 then
- if math.random(5) ~= 2 then
- local vil = area:index(x + i, y + j, z + k)
- data[vil] = c_pineleaf
- local vila = area:index(x + i, y + j + 1, z + k)
- data[vila] = c_snow
- end
- end
- end
- end
- elseif j == 4 or j == 7 or j == 10 or j == 13 then
- for i = -1, 1 do
- for k = -1, 1 do
- if not (i == 0 and j == 0) then
- if math.random(7) ~= 2 then
- local vil = area:index(x + i, y + j, z + k)
- data[vil] = c_pineleaf
- local vila = area:index(x + i, y + j + 1, z + k)
- data[vila] = c_snow
- end
- end
- end
- end
- end
- local vit = area:index(x, y + j, z)
- data[vit] = c_pinetree
- end
- local vil = area:index(x, y + 14, z)
- local vila = area:index(x, y + 15, z)
- local vilaa = area:index(x, y + 16, z)
- data[vil] = c_pineleaf
- data[vila] = c_pineleaf
- data[vilaa] = c_snow
- end
- function lottmapgen_firtree(x, y, z, area, data)
- local c_pinetree = minetest.get_content_id("lottplants:pinetree")
- local c_firleaf = minetest.get_content_id("lottplants:firleaf")
- local c_snow = minetest.get_content_id("default:snow")
- for j = -4, 13 do
- if j == 3 or j == 6 or j == 9 or j == 12 then
- for i = -2, 2 do
- for k = -2, 2 do
- if math.abs(i) == 2 or math.abs(k) == 2 then
- if math.random(5) ~= 2 then
- local vil = area:index(x + i, y + j, z + k)
- data[vil] = c_firleaf
- local vila = area:index(x + i, y + j + 1, z + k)
- data[vila] = c_snow
- end
- end
- end
- end
- elseif j == 4 or j == 7 or j == 10 or j == 13 then
- for i = -1, 1 do
- for k = -1, 1 do
- if not (i == 0 and j == 0) then
- if math.random(7) ~= 2 then
- local vil = area:index(x + i, y + j, z + k)
- data[vil] = c_firleaf
- local vila = area:index(x + i, y + j + 1, z + k)
- data[vila] = c_snow
- end
- end
- end
- end
- end
- local vit = area:index(x, y + j, z)
- data[vit] = c_pinetree
- end
- local vil = area:index(x, y + 14, z)
- local vila = area:index(x, y + 15, z)
- local vilaa = area:index(x, y + 16, z)
- data[vil] = c_firleaf
- data[vila] = c_firleaf
- data[vilaa] = c_snow
- end
- function lottmapgen_oaktree(x, y, z, area, data)
- local c_tree = minetest.get_content_id("default:tree")
- local c_leaves = minetest.get_content_id("default:leaves")
- for j = -4, 13 do
- if j == 3 or j == 6 or j == 9 or j == 12 then
- for i = -2, 2 do
- for k = -2, 2 do
- if math.abs(i) == 2 or math.abs(k) == 2 then
- if math.random(5) ~= 2 then
- local vil = area:index(x + i, y + j, z + k)
- data[vil] = c_leaves
- end
- end
- end
- end
- elseif j == 4 or j == 7 or j == 10 or j == 13 then
- for i = -1, 1 do
- for k = -1, 1 do
- if not (i == 0 and j == 0) then
- if math.random(7) ~= 2 then
- local vil = area:index(x + i, y + j, z + k)
- data[vil] = c_leaves
- end
- end
- end
- end
- end
- local vit = area:index(x, y + j, z)
- data[vit] = c_tree
- end
- local vil = area:index(x, y + 14, z)
- local vila = area:index(x, y + 15, z)
- data[vil] = c_leaves
- data[vila] = c_leaves
- end
- -- Trees Big
- function lottmapgen_mallorntree(x, y, z, area, data)
- local c_maltree = minetest.get_content_id("lottplants:mallorntree")
- local c_malleaf = minetest.get_content_id("lottplants:mallornleaf")
- local top = math.random(25, 30)
- local mid = math.floor(top/2)
- for j = math.random(-4, -2), top do
- if j == top or j == top - 1 or j == top + 1
- or j == top - 2 or j == top - 3 then
- for i = -3, 2 do -- leaves
- for k = -3, 2 do
- local vi = area:index(x + i, y + j, z + k)
- if math.random(5) ~= 2 then
- data[vi] = c_malleaf
- end
- end
- end
- for i = -1, 4 do -- leaves
- for k = -1, 4 do
- local vi = area:index(x + i, y + j, z + k)
- if math.random(5) ~= 2 then
- data[vi] = c_malleaf
- end
- end
- end
- elseif j == mid + 5 or j == mid + 4 then
- for i = -1, 2 do -- leaves
- for k = -1, 2 do
- local vi = area:index(x + i, y + j, z + k)
- if math.random(5) ~= 2 then
- data[vi] = c_malleaf
- end
- end
- end
- elseif j == mid - 3 or j == mid - 2 or j == mid - 1 then
- for i = -2, 3 do -- leaves
- for k = -2, 3 do
- local vi = area:index(x + i, y + j, z + k)
- if math.random(5) ~= 2 then
- data[vi] = c_malleaf
- end
- end
- end
- end
- if j <= math.random(-1, 0) then -- roots
- for i = -2, 3 do
- for k = -2, 3 do
- if i == 0 and k == -1 or i == -1 and k == 1 or
- i == 1 and k == 2 or i == 2 and k == 0 then
- local vi = area:index(x + i, y + j, z + k)
- data[vi] = c_maltree
- end
- end
- end
- elseif j == top - 2 then
- for i = -2, 3 do
- for k = -2, 3 do
- if i == 0 and k == -1 or i == -1 and k == 1 or
- i == 1 and k == 2 or i == 2 and k == 0 then
- local vi = area:index(x + i, y + j, z + k)
- data[vi] = c_maltree
- elseif i == 0 and k == -2 or i == -2 and k == 1
- or i == 1 and k == 3 or i == 3 and k == 0 then
- local vi = area:index(x + i, y + j, z + k)
- data[vi] = c_maltree
- end
- end
- end
- end
- if j >= -1 and j <= top - 1 then -- trunk
- for i = 0, 1 do
- for k = 0, 1 do
- local vi = area:index(x + i, y + j, z + k)
- data[vi] = c_maltree
- end
- end
- end
- end
- end
- function lottmapgen_beechtree(x, y, z, area, data)
- local c_tree = minetest.get_content_id("default:tree")
- local c_beechleaf = minetest.get_content_id("lottplants:beechleaf")
- local t = 10 + math.random(3) -- trunk height
- for i = -2, 2 do
- for k = -2, 2 do
- local absi = math.abs(i)
- local absk = math.abs(k)
- if absi >= absk then
- j = t - absi
- else
- j = t - absk
- end
- if math.random() > (absi + absk) / 24 then
- data[area:index(x+i, y+j+7, z+k)] = c_beechleaf
- data[area:index(x+i, y+j+4, z+k)] = c_beechleaf
- data[area:index(x+i+2, y+j+4, z+k)] = c_beechleaf
- data[area:index(x+i-2, y+j+4, z+k)] = c_beechleaf
- data[area:index(x+i, y+j+4, z+k+2)] = c_beechleaf
- data[area:index(x+i, y+j+4, z+k-2)] = c_beechleaf
- data[area:index(x+i, y+j+1, z+k)] = c_beechleaf
- data[area:index(x+i+3, y+j+1, z+k)] = c_beechleaf
- data[area:index(x+i-3, y+j+1, z+k)] = c_beechleaf
- data[area:index(x+i, y+j+1, z+k+3)] = c_beechleaf
- data[area:index(x+i, y+j+1, z+k-3)] = c_beechleaf
- data[area:index(x+i, y+j-2, z+k)] = c_beechleaf
- data[area:index(x+i+3, y+j-2, z+k)] = c_beechleaf
- data[area:index(x+i-3, y+j-2, z+k)] = c_beechleaf
- data[area:index(x+i, y+j-2, z+k+3)] = c_beechleaf
- data[area:index(x+i, y+j-2, z+k-3)] = c_beechleaf
- data[area:index(x+i, y+j-5, z+k)] = c_beechleaf
- data[area:index(x+i+4, y+j-5, z+k)] = c_beechleaf
- data[area:index(x+i-4, y+j-5, z+k)] = c_beechleaf
- data[area:index(x+i, y+j-5, z+k+4)] = c_beechleaf
- data[area:index(x+i, y+j-5, z+k-4)] = c_beechleaf
- data[area:index(x+i, y+j-8, z+k)] = c_beechleaf
- data[area:index(x+i+4, y+j-8, z+k)] = c_beechleaf
- data[area:index(x+i-4, y+j-8, z+k)] = c_beechleaf
- data[area:index(x+i, y+j-8, z+k+4)] = c_beechleaf
- data[area:index(x+i, y+j-8, z+k-4)] = c_beechleaf
- end
- end
- end
- for j = -3, t do
- data[area:index(x, y+j, z)] = c_tree
- end
- end
- function lottmapgen_mirktree(x, y, z, area, data)
- local c_juntree = minetest.get_content_id("default:jungletree")
- local c_junleaf = minetest.get_content_id("lottplants:mirkleaf")
- local top = math.random(6, 8)
- for j = math.random(-4, -2), top do
- if j == top or j == top - 1 or j == top + 1 or j == top - 2 then
- for i = -3, 4 do -- leaves
- for k = -3, 4 do
- local vi = area:index(x + i, y + j, z + k)
- if math.random(5) ~= 2 then
- data[vi] = c_junleaf
- end
- end
- end
- elseif j <= math.random(-1, 0) then -- roots
- for i = -1, 2, 3 do
- for k = -1, 2, 3 do
- local vi = area:index(x + i, y + j, z + k)
- data[vi] = c_juntree
- end
- end
- elseif j == top - 2 then
- for i = -2, 3 do
- for k = -2, 3 do
- if i == 0 and k == -1 or i == -1 and k == 1 or
- i == 1 and k == 2 or i == 2 and k == 0 then
- local vi = area:index(x + i, y + j, z + k)
- data[vi] = c_juntree
- elseif i == 0 and k == -2 or i == -2 and k == 1
- or i == 1 and k == 3 or i == 3 and k == 0 then
- local vi = area:index(x + i, y + j, z + k)
- data[vi] = c_juntree
- end
- end
- end
- end
- if j >= -1 and j <= top - 2 then -- trunk
- for i = 0, 1 do
- for k = 0, 1 do
- local vi = area:index(x + i, y + j, z + k)
- data[vi] = c_juntree
- end
- end
- end
- end
- end
- function lottmapgen_elf_workshop(x, y, z, area, data, p2data)
- local c_stonebrick = minetest.get_content_id("default:stonebrick")
- local c_cracked_stonebrick = minetest.get_content_id("default:cracked_stonebrick")
- local c_marblebrick = minetest.get_content_id("lottblocks:marble_brick")
- local c_elftorchwall = minetest.get_content_id("lottblocks:elf_torch_wall")
- local c_furnace = minetest.get_content_id("lottmapgen:furnace_spawner")
- local c_dual_furnace = minetest.get_content_id("lottmapgen:dual_furnace_spawner")
- local c_ringsilver_furnace = minetest.get_content_id("lottmapgen:ringsilver_furnace_spawner")
- local c_water = minetest.get_content_id("default:water_source")
- local c_ringchest = minetest.get_content_id("lottmapgen:ring_chest_spawner")
- local c_table = minetest.get_content_id("lottblocks:mallorn_table")
- local c_chair = minetest.get_content_id("lottblocks:mallorn_chair")
- local c_bedb = minetest.get_content_id("lottblocks:bed_bottom_blue")
- local c_bedt = minetest.get_content_id("lottblocks:bed_top_blue")
- local c_malpillar = minetest.get_content_id("lottblocks:mallorn_pillar")
- local c_air = minetest.get_content_id("air")
- for j = 0, 6 do
- if j == 0 then
- for i = 0, 7 do
- for k = 0, 9 do
- local vi = area:index(x + i, y + j, z + k)
- if i == 1 and k == 6 then
- data[vi] = c_water
- else
- data[vi] = c_marblebrick
- end
- end
- end
- elseif j == 6 then
- for i = 0, 7 do
- for k = 0, 9 do
- local vi = area:index(x + i, y + j, z + k)
- if math.random(1, 3) == 2 then
- data[vi] = c_cracked_stonebrick
- else
- data[vi] = c_stonebrick
- end
- end
- end
- else
- for i = 0, 7 do
- for k = 0, 9 do
- local vi = area:index(x + i, y + j, z + k)
- if i == 0 or i == 7 or k == 0 or k == 9 then
- if math.random(1, 3) == 2 then
- data[vi] = c_cracked_stonebrick
- else
- data[vi] = c_stonebrick
- end
- elseif (i == 1 and k == 1) or (i == 6 and k == 1) or
- (i == 1 and k == 8) or (i == 6 and k == 8) then
- data[vi] = c_malpillar
- elseif (i == 1 and j == 4 and k == 2) or
- (i == 6 and j == 4 and k == 2) or
- (i == 1 and j == 4 and k == 7) or
- (i == 6 and j == 4 and k == 7) then
- data[vi] = c_elftorchwall
- if i == 6 then
- p2data[vi] = 2
- else
- p2data[vi] = 3
- end
- elseif i == 1 and j == 1 and k == 2 then
- data[vi] = c_furnace
- p2data[vi] = 3
- elseif i == 1 and j == 1 and (k == 3 or k == 4) then
- data[vi] = c_dual_furnace
- p2data[vi] = 3
- elseif i == 1 and j == 1 and k == 5 then
- data[vi] = c_ringsilver_furnace
- p2data[vi] = 3
- elseif i == 1 and j == 1 and k == 7 then
- data[vi] = c_ringchest
- p2data[vi] = 3
- elseif i == 6 and j == 1 and k == 3 and math.random(1, 2) == 1 then
- data[vi] = c_table
- elseif i == 6 and j == 1 and (k == 2 or k == 4) and math.random(1, 3) == 1 then
- data[vi] = c_chair
- if k == 2 then
- p2data[vi] = 2
- end
- elseif i == 5 and j == 1 and k == 8 and math.random(1,4) == 2 then
- data[vi] = c_bedt
- p2data[vi] = 1
- vi = area:index(x + i - 1, y + j, z + k)
- data[vi] = c_bedb
- p2data[vi] = 1
- else
- data[vi] = c_air
- end
- end
- end
- end
- end
- end
- function lottmapgen_mithrilore(x, y, z, area, data)
- local c_ore = minetest.get_content_id("lottores:mithril_ore")
- local c_stone = minetest.get_content_id("default:stone")
- for j = -1, 0 do
- for i = -1, 0 do
- for k = -1, 0 do
- local vil = area:index(x + i, y + j, z + k)
- if math.random(3) == 1 then
- data[vil] = c_stone
- else
- data[vil] = c_ore
- end
- end
- end
- end
- end
- function lottmapgen_meseore(x, y, z, area, data)
- local c_ore = minetest.get_content_id("default:stone_with_mese")
- local c_stone = minetest.get_content_id("default:stone")
- for j = -1, 0 do
- for i = -1, 0 do
- for k = -1, 0 do
- local vil = area:index(x + i, y + j, z + k)
- if math.random(3) == 1 then
- data[vil] = c_stone
- else
- data[vil] = c_ore
- end
- end
- end
- end
- end
- function lottmapgen_orcore(x, y, z, area, data)
- local c_ore = minetest.get_content_id("lottores:orc_ore")
- local c_stone = minetest.get_content_id("default:stone")
- for j = -1, 0 do
- for i = -1, 0 do
- for k = -1, 0 do
- local vil = area:index(x + i, y + j, z + k)
- if math.random(10) == 1 then
- data[vil] = c_stone
- else
- data[vil] = c_ore
- end
- end
- end
- end
- end
- function lottmapgen_biomes(biome, n_temp, n_humid, n_ran, LOTET, LOHUT, LORAN, HITET, HIHUT, HIRAN)
- if n_temp < LOTET then
- if n_humid < LOHUT then
- return 1 -- (Angmar)
- elseif n_humid > HIHUT then
- return 3 -- (Trollshaws)
- else
- return 2 -- (Snowplains)
- end
- elseif n_temp > HITET then
- if n_humid < LOHUT then
- return 7 -- (Lorien)
- elseif n_humid > HIHUT then
- return 9 -- (Fangorn)
- elseif n_ran < LORAN then
- return 10 -- (Mirkwood)
- elseif n_ran > HIRAN then
- return 11 -- (Iron Hills)
- else
- return 4 -- (Dunlands)
- end
- else
- if n_humid < LOHUT then
- return 8 -- (Mordor)
- elseif n_humid > HIHUT then
- return 6 -- (Ithilien)
- elseif n_ran < LORAN then
- return 13 -- (Shire)
- elseif n_ran > HIRAN then
- return 12 -- (Rohan)
- else
- return 5 -- (Gondor)
- end
- end
- end
|