diff --git a/settings.lua b/settings.lua index b26c81c..50f9dae 100644 --- a/settings.lua +++ b/settings.lua @@ -1,4 +1,53 @@ -- Settings for sneeker mod +sneeker.time_min = 60 + sneeker.debug = core.settings:get_bool("enable_debug_mods", false) + +--- Sets maximum number of spawns that can exist in world at one time. +-- +-- @setting sneeker.spawn_cap +sneeker.spawn_cap = tonumber(core.settings:get("sneeker.spawn_cap")) or 10 + +--- Sets possibility for spawn. +-- +-- Inverted value (e.g. 1000 = 1/1000). +-- +-- @setting sneeker.spawn_chance +sneeker.spawn_chance = tonumber(core.settings:get("sneeker.spawn_chance")) or 1000 + +--- Sets frequency of spawn chance. +-- +-- Default 240 is equivalent to 4 minutes (60 * 4). +-- +-- @setting sneeker.spawn_interval +sneeker.spawn_interval = tonumber(core.settings:get("sneeker.spawn_interval")) or sneeker.time_min * 4 + +--- Sets the minimum light that a node must have for spawn to occur. +-- +-- Default: -1 +-- +-- @setting sneeker.spawn_minlight +sneeker.spawn_minlight = tonumber(core.settings:get("sneeker.spawn_minlight")) or -1 + +--- Sets the maximum light that a node can have for spawn to occur. +-- +-- Default: 4 +-- +-- @setting sneeker.spawn_maxlight +sneeker.spawn_maxlight = tonumber(core.settings:get("sneeker.spawn_maxlight")) or 4 + +--- Sets the lowest position at which sneeker can spawn. +-- +-- Default: -31000 +-- +-- @setting sneeker.spawn_minheight +sneeker.spawn_minheight = tonumber(core.settings:get("sneeker.spawn_minheight")) or -31000 + +--- Sets the highest position at which sneeker can spawn. +-- +-- Default: 31000 +-- +-- @setting sneeker.spawn_maxheight +sneeker.spawn_maxheight = tonumber(core.settings:get("sneeker.spawn_maxheight")) or 31000 -- Maximum height allowed for spawn diff --git a/settingtypes.txt b/settingtypes.txt index 1d511e6..56d49bf 100644 --- a/settingtypes.txt +++ b/settingtypes.txt @@ -7,7 +7,7 @@ sneeker.spawn_chance (Sneeker spawn chance) int 1000 # Sets frequency of spawn chance. Default 240 is equivalent to 4 minutes (60 * 4). sneeker.spawn_interval (Sneeker spawn interval) int 240 -# Sets the minimum light required for spawn to occur. +# Sets the minimum light that a node must have for spawn to occur. sneeker.spawn_minlight (Sneeker min light for spawn) int -1 # Sets the maximum light that a node can have for spawn to occur. @@ -18,3 +18,6 @@ sneeker.spawn_minheight (Sneeker min spawn height) int -31000 # Sets the highest position at which sneeker can spawn. sneeker.spawn_maxheight (Sneeker max spawn height) int 31000 + +# Logs extra debug messages. +enable_debug_mods (Enable debugging messages) bool false diff --git a/spawn.lua b/spawn.lua index b5c46e1..db75c34 100644 --- a/spawn.lua +++ b/spawn.lua @@ -1,30 +1,21 @@ -- Original code by Rui: WTFPL -local time_min = 60 -local time_hr = time_min * 60 +local time_hr = sneeker.time_min * 60 local time_day = time_hr * 24 -local spawn_cap = tonumber(core.settings:get("sneeker.spawn_cap")) or 10 -- Maximum number of spawns active at one time -local spawn_chance = tonumber(core.settings:get("sneeker.spawn_chance")) or 1000 -- 1/1000 chance of spawn -local spawn_interval = tonumber(core.settings:get("sneeker.spawn_interval")) or time_min * 4 -- Default interval is 4 minutes -local spawn_minlight = tonumber(core.settings:get("sneeker.spawn_minlight")) or -1 -- Minimum light of node required for spawn -local spawn_maxlight = tonumber(core.settings:get("sneeker.spawn_maxlight")) or 4 -- Maximum light of node allowed for spawn -local spawn_minheight = tonumber(core.settings:get("sneeker.spawn_minheight")) or -31000 -- Minimum height allowed for spawn -local spawn_maxheight = tonumber(core.settings:get("sneeker.spawn_maxheight")) or 31000 -- Maximum height allowed for spawn - -- Display spawn chance as percentage in log -local spawn_chance_percent = math.floor(1 / spawn_chance * 100) +local spawn_chance_percent = math.floor(1 / sneeker.spawn_chance * 100) if spawn_chance_percent < 1 then spawn_chance_percent = "Less than 1%" else spawn_chance_percent = tostring(spawn_chance_percent) .. "%" end -sneeker.log("Spawn cap: " .. tostring(spawn_cap)) +sneeker.log("Spawn cap: " .. tostring(sneeker.spawn_cap)) sneeker.log("Spawn chance: " .. spawn_chance_percent) -sneeker.log("Spawn interval: " .. tostring(spawn_interval) .. " (" .. tostring(spawn_interval/60) .. " minute(s))") -sneeker.log("Maximum light value for spawn: " .. tostring(spawn_maxlight)) +sneeker.log("Spawn interval: " .. tostring(sneeker.spawn_interval) .. " (" .. tostring(sneeker.spawn_interval/60) .. " minute(s))") +sneeker.log("Maximum light value for spawn: " .. tostring(sneeker.spawn_maxlight)) local spawn_nodes = {"default:dirt_with_grass", "default:stone"} if core.global_exists("nether") then