From 4997fa5a4423a0017567ccce2a663c722a59a9fe Mon Sep 17 00:00:00 2001 From: gnembon Date: Thu, 7 Nov 2019 07:58:17 -0400 Subject: [PATCH] added optional force bool --- src/main/java/carpet/script/CarpetExpression.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/java/carpet/script/CarpetExpression.java b/src/main/java/carpet/script/CarpetExpression.java index b7f7d355..05917c94 100644 --- a/src/main/java/carpet/script/CarpetExpression.java +++ b/src/main/java/carpet/script/CarpetExpression.java @@ -807,8 +807,14 @@ public class CarpetExpression this.expr.addLazyFunction("generation_status", -1, (c, t, lv) -> { - BlockPos pos = BlockValue.fromParams((CarpetContext)c, lv, 0).block.getPos(); - Chunk chunk = ((CarpetContext)c).s.getWorld().getChunk(pos.getX()>>4, pos.getZ()>>4, ChunkStatus.EMPTY); + BlockValue.LocatorResult locatorResult = BlockValue.fromParams((CarpetContext)c, lv, 0); + BlockPos pos = locatorResult.block.getPos(); + boolean forceLoad = false; + if (lv.size() > locatorResult.offset) + forceLoad = lv.get(locatorResult.offset).evalValue(c, Context.BOOLEAN).getBoolean(); + Chunk chunk = ((CarpetContext)c).s.getWorld().getChunk(pos.getX()>>4, pos.getZ()>>4, ChunkStatus.EMPTY, forceLoad); + if (chunk == null) + return LazyValue.NULL; Value retval = new StringValue(chunk.getStatus().getName()); return (c_, t_) -> retval; });