add ores
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
[
|
||||
{"struct": "coal_ore0", "rarity": 22000}
|
||||
]
|
||||
@@ -1,13 +1,32 @@
|
||||
function place_structures(x, z, w, d, seed, hmap, chunk_height)
|
||||
local placements = {}
|
||||
for i=1,10 do
|
||||
local sx = math.random() * w
|
||||
local sz = math.random() * d
|
||||
local sy = math.random() * (chunk_height * 0.5)
|
||||
if sy < hmap:at(sx, sz) * chunk_height - 6 then
|
||||
table.insert(placements, {"coal_ore0", {sx, sy, sz}, math.random()*4})
|
||||
BLOCKS_PER_CHUNK = 65536
|
||||
|
||||
local _, dir = parse_path(__DIR__)
|
||||
ores = file.read_combined_list(dir.."/ores.json")
|
||||
|
||||
local function place_ores(placements, x, z, w, d, seed, hmap, chunk_height)
|
||||
for _, ore in ipairs(ores) do
|
||||
local count = BLOCKS_PER_CHUNK / ore.rarity
|
||||
|
||||
-- average count is less than 1
|
||||
local addchance = math.fmod(count, 1.0)
|
||||
if math.random() < addchance then
|
||||
count = count + 1
|
||||
end
|
||||
|
||||
for i=1,count do
|
||||
local sx = math.random() * w
|
||||
local sz = math.random() * d
|
||||
local sy = math.random() * (chunk_height * 0.5)
|
||||
if sy < hmap:at(sx, sz) * chunk_height - 6 then
|
||||
table.insert(placements, {ore.struct, {sx, sy, sz}, math.random()*4})
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function place_structures(x, z, w, d, seed, hmap, chunk_height)
|
||||
local placements = {}
|
||||
place_ores(placements, x, z, w, d, seed, hmap, chunk_height)
|
||||
return placements
|
||||
end
|
||||
|
||||
@@ -23,7 +42,7 @@ function generate_heightmap(x, y, w, h, seed, s)
|
||||
map.noiseSeed = seed
|
||||
map:noise({x, y}, 0.8*s, 4, 0.02)
|
||||
map:cellnoise({x, y}, 0.1*s, 3, 0.3, umap, vmap)
|
||||
map:add(0.4)
|
||||
map:add(0.7)
|
||||
|
||||
local rivermap = Heightmap(w, h)
|
||||
rivermap.noiseSeed = seed
|
||||
@@ -32,7 +51,6 @@ function generate_heightmap(x, y, w, h, seed, s)
|
||||
rivermap:mul(2.0)
|
||||
rivermap:pow(0.15)
|
||||
rivermap:max(0.3)
|
||||
map:add(0.3)
|
||||
map:mul(rivermap)
|
||||
return map
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user