From 358c0099dd4e43c700ea5d522e21967eb1af780d Mon Sep 17 00:00:00 2001 From: Frank Date: Fri, 10 Dec 2021 00:36:18 +0100 Subject: [PATCH] Prevent entities from spawning if disabled --- .../bclib/api/spawning/SpawnRuleBuilder.java | 22 ++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/src/main/java/ru/bclib/api/spawning/SpawnRuleBuilder.java b/src/main/java/ru/bclib/api/spawning/SpawnRuleBuilder.java index 6d18d31b..e8acc908 100644 --- a/src/main/java/ru/bclib/api/spawning/SpawnRuleBuilder.java +++ b/src/main/java/ru/bclib/api/spawning/SpawnRuleBuilder.java @@ -45,11 +45,27 @@ public class SpawnRuleBuilder { /** * Starts new rule building process. - * @param entityType The entity you want to build a rule for + * @param wrapper The entity you want to build a rule for * @return prepared {@link SpawnRuleBuilder} instance. */ - public static SpawnRuleBuilder start(BCLEntityWrapper entityType) { - return start(entityType.type()); + public static SpawnRuleBuilder start(BCLEntityWrapper wrapper) { + SpawnRuleBuilder builder = start(wrapper.type()); + if (!wrapper.canSpawn()){ + builder.preventSpawn(); + } + return builder; + } + + /** + * Stop entity spawn entierly + * @return same {@link SpawnRuleBuilder} instance. + */ + public SpawnRuleBuilder preventSpawn() { + entryInstance = getFromCache("prevent", () -> { + return new SpawnRuleEntry(-1, (type, world, spawnReason, pos, random) -> false); + }); + rules.add(entryInstance); + return this; } /**