From f61845f0c4a1a3b26faafedab1779fd7f0f78783 Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Mon, 29 Nov 2021 08:03:25 +0300 Subject: [PATCH] Small optimisation --- src/main/java/ru/bclib/api/spawning/SpawnRuleBuilder.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/java/ru/bclib/api/spawning/SpawnRuleBuilder.java b/src/main/java/ru/bclib/api/spawning/SpawnRuleBuilder.java index f1e54d8b..02ca1ccd 100644 --- a/src/main/java/ru/bclib/api/spawning/SpawnRuleBuilder.java +++ b/src/main/java/ru/bclib/api/spawning/SpawnRuleBuilder.java @@ -103,14 +103,16 @@ public class SpawnRuleBuilder { * @return same {@link SpawnRuleBuilder} instance. */ public SpawnRuleBuilder onlyOnBlocks(Block... blocks) { - StringBuilder builder = new StringBuilder(); final Block[] floorBlocks = blocks; Arrays.sort(floorBlocks, Comparator.comparing(Block::getDescriptionId)); + + StringBuilder builder = new StringBuilder("only_on_blocks"); for (Block block : floorBlocks) { builder.append('_'); builder.append(block.getDescriptionId()); } - entryInstance = getFromCache("only_on_blocks" + builder, () -> { + + entryInstance = getFromCache(builder.toString(), () -> { return new SpawnRuleEntry(0, (type, world, spawnReason, pos, random) -> { Block below = world.getBlockState(pos.below()).getBlock(); for (Block floor: floorBlocks) { @@ -121,6 +123,7 @@ public class SpawnRuleBuilder { return false; }); }); + rules.add(entryInstance); return this; }