From 2eae8f6f275e7a41ac30309e61f8d22d8a644ac7 Mon Sep 17 00:00:00 2001 From: EsPaKira Date: Sun, 2 Aug 2026 19:18:37 +0400 Subject: [PATCH] fix block.index() calls in grass_block.lua and export base:util.calc_loot() --- res/content/base/modules/util.lua | 6 +++--- res/content/base/scripts/grass_block.lua | 8 +++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/res/content/base/modules/util.lua b/res/content/base/modules/util.lua index b1a97ad06..1044eb394 100644 --- a/res/content/base/modules/util.lua +++ b/res/content/base/modules/util.lua @@ -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) diff --git a/res/content/base/scripts/grass_block.lua b/res/content/base/scripts/grass_block.lua index fb7482c20..b5965de43 100644 --- a/res/content/base/scripts/grass_block.lua +++ b/res/content/base/scripts/grass_block.lua @@ -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