fix block.index() calls in grass_block.lua and export base:util.calc_loot()

This commit is contained in:
EsPaKira 2026-08-02 19:18:37 +04:00
parent 1519febf6a
commit 2eae8f6f27
2 changed files with 8 additions and 6 deletions

View file

@ -12,14 +12,14 @@ function util.drop(ppos, itemid, count, data, pickup_delay)
}})
end
local function calc_loot(loot_table)
function calc_loot(loot_table)
local results = {}
for _, loot in ipairs(loot_table) do
local chance = loot.chance or 1
local count = loot.count or 1
local roll = math.random()
if roll < chance then
if loot.min and loot.max then
count = math.random(loot.min, loot.max)

View file

@ -1,3 +1,6 @@
local dirtid = block.index("base:dirt")
local grass_blockid = block.index("base:grass_block")
local offsets = {}
for lx=-1,1 do
for ly=-1,1 do
@ -8,18 +11,17 @@ for lx=-1,1 do
end
function on_random_update(x, y, z)
local dirtid = block.index('base:dirt');
if block.is_solid_at(x, y+1, z) then
block.set(x, y, z, dirtid, 0)
return
end
local grassblockid = block.index('base:grass_block')
for _, offset in ipairs(offsets) do
local nx, ny, nz = x + offset[1], y + offset[2], z + offset[3]
if block.get(nx, ny, nz) == dirtid and
not block.is_solid_at(nx, ny + 1, nz) then
block.set(nx, ny, nz, grassblockid, 0)
block.set(nx, ny, nz, grass_blockid, 0)
return
end
end