diff --git a/petz.lua b/petz.lua index 8ed09b4..56f9438 100644 --- a/petz.lua +++ b/petz.lua @@ -2,6 +2,7 @@ petz.settings.spawn_interval = math.huge local BASE_CHANCE = 300 -- one every 5 minutes +local MAX_IN_AREA = 5 local DAWN = 4500 / 24000 local DUSK = 19500 / 24000 @@ -14,6 +15,7 @@ spawnit.register({ min_time_of_day = DUSK, max_time_of_day = DAWN, max_y = 5000, + max_in_area = MAX_IN_AREA, }) spawnit.register({ @@ -23,6 +25,7 @@ spawnit.register({ on = { "any" }, min_y = -32, max_y = 5000, + max_in_area = MAX_IN_AREA, }) spawnit.register({ @@ -33,6 +36,7 @@ spawnit.register({ on = { "group:soil" }, min_y = -32, max_y = 5000, + max_in_area = MAX_IN_AREA, }) spawnit.register({ @@ -43,6 +47,7 @@ spawnit.register({ near = { "group:flower" }, min_y = -32, max_y = 5000, + max_in_area = MAX_IN_AREA, }) spawnit.register({ @@ -53,6 +58,7 @@ spawnit.register({ on = { "group:soil" }, min_y = -32, max_y = 5000, + max_in_area = MAX_IN_AREA, }) spawnit.register({ @@ -62,6 +68,7 @@ spawnit.register({ on = { "group:sand", "default:desert_sandstone", "default:sandstone" }, min_y = -32, max_y = 5000, + max_in_area = MAX_IN_AREA, }) spawnit.register({ @@ -71,6 +78,7 @@ spawnit.register({ on = { "default:dirt_with_rainforest_litter", "ethereal:jungle_dirt", "default:jungleleaves", "moretrees:jungletree_leaves_yellow", "moretrees:jungletree_leaves_red", "ethereal:palmleaves", "moretrees:date_palm_leaves", "moretrees:palm_leaves" }, min_y = -32, max_y = 5000, + max_in_area = MAX_IN_AREA, }) spawnit.register({ @@ -82,6 +90,7 @@ spawnit.register({ near = { "group:coral" }, min_y = -100, max_y = 5000, + max_in_area = MAX_IN_AREA, }) spawnit.register({ @@ -92,6 +101,7 @@ spawnit.register({ on = { "any" }, min_y = -100, max_y = 5000, + max_in_area = MAX_IN_AREA, }) spawnit.register({ @@ -101,6 +111,7 @@ spawnit.register({ on = { "group:soil", "group:water" }, min_y = -32, max_y = 5000, + max_in_area = MAX_IN_AREA, }) spawnit.register({ @@ -110,6 +121,7 @@ spawnit.register({ on = { "default:dirt_with_rainforest_litter","default:dirt_with_dry_grass","default:dry_dirt","default:dry_dirt_with_dry_grass","ethereal:dry_dirt","ethereal:jungle_dirt" }, min_y = -32, max_y = 5000, + max_in_area = MAX_IN_AREA, }) spawnit.register({ @@ -119,6 +131,7 @@ spawnit.register({ on = { "default:dirt_with_rainforest_litter","default:dirt_with_dry_grass","default:dry_dirt","default:dry_dirt_with_dry_grass","ethereal:dry_dirt","ethereal:jungle_dirt" }, min_y = -32, max_y = 5000, + max_in_area = MAX_IN_AREA, }) spawnit.register({ @@ -128,6 +141,7 @@ spawnit.register({ on = { "default:dirt_with_coniferous_litter","default:dirt_with_grass","default:dirt_with_dry_grass","default:dry_dirt","default:dry_dirt_with_dry_grass" }, min_y = -32, max_y = 5000, + max_in_area = MAX_IN_AREA, }) spawnit.register({ @@ -137,6 +151,7 @@ spawnit.register({ on = { "group:soil" }, min_y = -32, max_y = 5000, + max_in_area = MAX_IN_AREA, }) spawnit.register({ @@ -146,6 +161,7 @@ spawnit.register({ on = { "default:dirt_with_grass","default:default:dirt_with_rainforest_litter","ethereal:bamboo_dirt","ethereal:grove_dirt","ethereal:jungle_dirt","ethereal:prairie_dirt","woodsoils:grass_with_leaves_1","woodsoils:grass_with_leaves_2" }, min_y = -32, max_y = 5000, + max_in_area = MAX_IN_AREA, }) spawnit.register({ @@ -155,6 +171,7 @@ spawnit.register({ on = { "default:dirt_with_coniferous_litter","default:dirt_with_grass","default:dirt_with_dry_grass","default:dry_dirt","default:dry_dirt_with_dry_grass" }, min_y = -32, max_y = 5000, + max_in_area = MAX_IN_AREA, }) spawnit.register({ @@ -165,6 +182,7 @@ spawnit.register({ on = { "group:soil" }, min_y = -32, max_y = 5000, + max_in_area = MAX_IN_AREA, }) spawnit.register({ @@ -176,6 +194,7 @@ spawnit.register({ max_y = 5000, min_player_distance = 12, spawn_in_protected = false, + max_in_area = MAX_IN_AREA, }) spawnit.register({ @@ -185,6 +204,7 @@ spawnit.register({ on = { "group:sand","default:desert_sandstone","default:sandstone" }, min_y = -32, max_y = 5000, + max_in_area = MAX_IN_AREA, }) spawnit.register({ @@ -194,6 +214,7 @@ spawnit.register({ on = { "group:soil" }, min_y = -32, max_y = 5000, + max_in_area = MAX_IN_AREA, }) spawnit.register({ @@ -203,6 +224,7 @@ spawnit.register({ on = { "group:soil" }, min_y = -32, max_y = 5000, + max_in_area = MAX_IN_AREA, }) spawnit.register({ @@ -213,6 +235,7 @@ spawnit.register({ on = { "group:soil" }, min_y = -32, max_y = 5000, + max_in_area = MAX_IN_AREA, }) spawnit.register({ @@ -224,6 +247,7 @@ spawnit.register({ max_y = 5000, min_player_distance = 12, spawn_in_protected = false, + max_in_area = MAX_IN_AREA, }) spawnit.register({ @@ -235,6 +259,7 @@ spawnit.register({ max_y = 5000, min_player_distance = 12, spawn_in_protected = false, + max_in_area = MAX_IN_AREA, }) spawnit.register({ @@ -244,6 +269,7 @@ spawnit.register({ on = { "any" }, min_y = -32, max_y = 5000, + max_in_area = MAX_IN_AREA, }) spawnit.register({ @@ -256,7 +282,8 @@ spawnit.register({ spawn_in_protected = false, should_spawn = function() return os.date("*t").month == 10 - end + end, + max_in_area = MAX_IN_AREA, }) spawnit.register({ @@ -266,6 +293,7 @@ spawnit.register({ on = { "ethereal:bamboo_dirt" }, min_y = -32, max_y = 5000, + max_in_area = MAX_IN_AREA, }) spawnit.register({ @@ -276,6 +304,7 @@ spawnit.register({ near = { "default:jungleleaves","moretrees:jungletree_leaves_yellow","moretrees:jungletree_leaves_red","ethereal:palmleaves","moretrees:date_palm_leaves","moretrees:palm_leaves" }, min_y = -32, max_y = 5000, + max_in_area = MAX_IN_AREA, }) spawnit.register({ @@ -286,6 +315,7 @@ spawnit.register({ on = { "default:snowblock","default:ice","default:dirt_with_snow","default:snow" }, min_y = -32, max_y = 10, + max_in_area = MAX_IN_AREA, }) spawnit.register({ @@ -295,6 +325,7 @@ spawnit.register({ on = { "any" }, min_y = -32, max_y = 5000, + max_in_area = MAX_IN_AREA, }) spawnit.register({ @@ -305,6 +336,7 @@ spawnit.register({ on = { "group:soil" }, min_y = -32, max_y = 5000, + max_in_area = MAX_IN_AREA, }) spawnit.register({ @@ -316,6 +348,7 @@ spawnit.register({ max_y = 5000, min_player_distance = 12, spawn_in_protected = false, + max_in_area = MAX_IN_AREA, }) spawnit.register({ @@ -326,6 +359,7 @@ spawnit.register({ on = { "group:soil" }, min_y = -32, max_y = 5000, + max_in_area = MAX_IN_AREA, }) spawnit.register({ @@ -335,6 +369,7 @@ spawnit.register({ on = { "group:soil" }, min_y = -32, max_y = 5000, + max_in_area = MAX_IN_AREA, }) spawnit.register({ @@ -344,6 +379,7 @@ spawnit.register({ on = { "group:soil" }, min_y = -32, max_y = 5000, + max_in_area = MAX_IN_AREA, }) spawnit.register({ @@ -354,6 +390,7 @@ spawnit.register({ near = { "group:flower" }, min_y = -32, max_y = 5000, + max_in_area = MAX_IN_AREA, }) spawnit.register({ @@ -365,6 +402,7 @@ spawnit.register({ max_light = 10, min_player_distance = 12, spawn_in_protected = false, + max_in_area = MAX_IN_AREA, }) spawnit.register({ @@ -378,7 +416,8 @@ spawnit.register({ spawn_in_protected = false, should_spawn = function() return os.date("*t").month == 12 - end + end, + max_in_area = MAX_IN_AREA, }) spawnit.register({ @@ -388,6 +427,7 @@ spawnit.register({ on = { "group:leaves" }, min_y = -32, max_y = 5000, + max_in_area = MAX_IN_AREA, }) spawnit.register({ @@ -399,6 +439,7 @@ spawnit.register({ max_y = 5000, min_player_distance = 12, spawn_in_protected = false, + max_in_area = MAX_IN_AREA, }) spawnit.register({ @@ -409,6 +450,7 @@ spawnit.register({ on = { "group:leaves", "group:tree" }, min_y = -32, max_y = 5000, + max_in_area = MAX_IN_AREA, }) spawnit.register({ @@ -419,6 +461,7 @@ spawnit.register({ max_y = 5000, min_player_distance = 12, spawn_in_protected = false, + max_in_area = MAX_IN_AREA, }) spawnit.register({ @@ -429,6 +472,7 @@ spawnit.register({ near = { "default:jungleleaves","moretrees:jungletree_leaves_yellow","moretrees:jungletree_leaves_red","ethereal:palmleaves","moretrees:date_palm_leaves","moretrees:palm_leaves" }, min_y = -32, max_y = 5000, + max_in_area = MAX_IN_AREA, }) spawnit.register({ @@ -439,6 +483,7 @@ spawnit.register({ near = { "group:coral" }, min_y = -32, max_y = 5000, + max_in_area = MAX_IN_AREA, }) spawnit.register({ @@ -448,6 +493,7 @@ spawnit.register({ on = { "any" }, min_y = -100, max_y = 5000, + max_in_area = MAX_IN_AREA, }) spawnit.register({ @@ -460,4 +506,5 @@ spawnit.register({ max_y = 5000, min_player_distance = 12, spawn_in_protected = false, + max_in_area = MAX_IN_AREA, })