Êþº¾E‹  3net/minecraft/world/level/lighting/LevelLightEngine7(Lnet/minecraft/world/level/chunk/LightChunkGetter;ZZ)V-it/unimi/dsi/fastutil/objects/ObjectArrayList   ()V  3net/minecraft/server/level/ThreadedLevelLightEngine lightTasks*Lit/unimi/dsi/fastutil/objects/ObjectList;   taskPerBatchI)java/util/concurrent/atomic/AtomicBoolean    scheduled+Ljava/util/concurrent/atomic/AtomicBoolean;   chunkMap%Lnet/minecraft/server/level/ChunkMap; " #$taskDispatcher0Lnet/minecraft/server/level/ChunkTaskDispatcher; & '(consecutiveExecutor/Lnet/minecraft/util/thread/ConsecutiveExecutor;*'java/lang/UnsupportedOperationException,(Ran automatically on a different thread! ). /(Ljava/lang/String;)V 123 45net/minecraft/util/Util pauseInIde,(Ljava/lang/Throwable;)Ljava/lang/Throwable; 789 :;net/minecraft/core/BlockPos immutable()Lnet/minecraft/core/BlockPos; 7= >?getX()I ABC DEnet/minecraft/core/SectionPosblockToSectionCoord(I)I 7G H?getZ JKL MNLnet/minecraft/server/level/ThreadedLevelLightEngine$TaskType;P QRrunh(Lnet/minecraft/server/level/ThreadedLevelLightEngine;Lnet/minecraft/core/BlockPos;)Ljava/lang/Runnable;T UVget<(Lnet/minecraft/core/BlockPos;)Ljava/util/function/Supplier; 1X YZnameG(Ljava/lang/Runnable;Ljava/util/function/Supplier;)Ljava/lang/Runnable; \ ]^addTaskW(IILnet/minecraft/server/level/ThreadedLevelLightEngine$TaskType;Ljava/lang/Runnable;)V `ab c?"net/minecraft/world/level/ChunkPosx `e f?zh ijgetAsInt"()Ljava/util/function/IntSupplier;l Qmo(Lnet/minecraft/server/level/ThreadedLevelLightEngine;Lnet/minecraft/world/level/ChunkPos;)Ljava/lang/Runnable;o UpC(Lnet/minecraft/world/level/ChunkPos;)Ljava/util/function/Supplier; r ]sw(IILjava/util/function/IntSupplier;Lnet/minecraft/server/level/ThreadedLevelLightEngine$TaskType;Ljava/lang/Runnable;)V Aa Aehx Qyk(Lnet/minecraft/server/level/ThreadedLevelLightEngine;Lnet/minecraft/core/SectionPos;Z)Ljava/lang/Runnable;{ U|?(Lnet/minecraft/core/SectionPos;Z)Ljava/util/function/Supplier;l o € Q�p(Lnet/minecraft/server/level/ThreadedLevelLightEngine;Lnet/minecraft/world/level/ChunkPos;Z)Ljava/lang/Runnable; ƒ U„D(Lnet/minecraft/world/level/ChunkPos;Z)Ljava/util/function/Supplier; h ‡ Qˆ»(Lnet/minecraft/server/level/ThreadedLevelLightEngine;Lnet/minecraft/world/level/LightLayer;Lnet/minecraft/core/SectionPos;Lnet/minecraft/world/level/chunk/DataLayer;)Ljava/lang/Runnable;Š U‹>(Lnet/minecraft/core/SectionPos;)Ljava/util/function/Supplier; `� Ž�pack(II)J ‘’“ ”•#net/minecraft/server/level/ChunkMapgetChunkQueueLevel#(J)Ljava/util/function/IntSupplier;— Q˜�(Lnet/minecraft/server/level/ThreadedLevelLightEngine;Lnet/minecraft/server/level/ThreadedLevelLightEngine$TaskType;Ljava/lang/Runnable;)Ljava/lang/Runnable; š›œ �ž.net/minecraft/server/level/ChunkTaskDispatchersubmit8(Ljava/lang/Runnable;JLjava/util/function/IntSupplier;)Vh€o £¤¥ ¦§+net/minecraft/world/level/chunk/ChunkAccessgetPos&()Lnet/minecraft/world/level/ChunkPos;© Qªœ(Lnet/minecraft/server/level/ThreadedLevelLightEngine;Lnet/minecraft/world/level/chunk/ChunkAccess;Lnet/minecraft/world/level/ChunkPos;)Ljava/lang/Runnable;o­ U®¦(Lnet/minecraft/server/level/ThreadedLevelLightEngine;Lnet/minecraft/world/level/ChunkPos;ZLnet/minecraft/world/level/chunk/ChunkAccess;)Ljava/util/function/Supplier;° ±²executez(Lnet/minecraft/server/level/ThreadedLevelLightEngine;Lnet/minecraft/world/level/ChunkPos;)Ljava/util/concurrent/Executor; ´µ¶ ·¸&java/util/concurrent/CompletableFuture supplyAsyncf(Ljava/util/function/Supplier;Ljava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture; £º »¼setLightCorrect(Z)V¾ Q¿p(Lnet/minecraft/server/level/ThreadedLevelLightEngine;ZLnet/minecraft/world/level/ChunkPos;)Ljava/lang/Runnable;ƒ UÃL(Lnet/minecraft/world/level/chunk/ChunkAccess;)Ljava/util/function/Supplier;° ÆÇÈ ÉÊ(it/unimi/dsi/fastutil/objects/ObjectListisEmpty()Z Ì ÍÊ hasLightWork Ï ÐÑ compareAndSet(ZZ)ZÓ QÔK(Lnet/minecraft/server/level/ThreadedLevelLightEngine;)Ljava/lang/Runnable; Öר ÙÚ-net/minecraft/util/thread/ConsecutiveExecutorschedule(Ljava/lang/Runnable;)V ÆÜ Ý?size ßàá âãjava/lang/Mathmin(II)I Æå æçiterator4()Lit/unimi/dsi/fastutil/objects/ObjectListIterator; éêë ìÊ0it/unimi/dsi/fastutil/objects/ObjectListIteratorhasNext éî ïðnext()Ljava/lang/Object;òcom/mojang/datafixers/util/Pair ñô õðgetFirst ñ÷ øð getSecondújava/lang/Runnable ùü Q éþ ÿEback  ?runLightUpdates J N POST_UPDATE é  remove Q ()Ljava/lang/Runnable; ±X(Lnet/minecraft/server/level/ThreadedLevelLightEngine;II)Ljava/util/concurrent/Executor; ´ runAsync](Ljava/lang/Runnable;Ljava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture;    runUpdate  ¼set  java/lang/StringvalueOf&(Ljava/lang/Object;)Ljava/lang/String; !"makeConcatWithConstants'(Ljava/lang/String;Z)Ljava/lang/String; $ %&propagateLightSources'(Lnet/minecraft/world/level/ChunkPos;)V ()* +,net/minecraft/SharedConstantsDEBUG_VERBOSE_SERVER_EVENTSZ . /0LOGGERLorg/slf4j/Logger;2LIT {} 456 78org/slf4j/Loggerdebug'(Ljava/lang/String;Ljava/lang/Object;)V : ;<setLightEnabled((Lnet/minecraft/world/level/ChunkPos;Z)V > ?< retainDataA !B&(Ljava/lang/String;)Ljava/lang/String; £D EF getSections6()[Lnet/minecraft/world/level/chunk/LevelChunkSection; £H I?getSectionsCount KLM NÊ1net/minecraft/world/level/chunk/LevelChunkSection hasOnlyAir P QRlevelHeightAccessor/Lnet/minecraft/world/level/LevelHeightAccessor; TUV WE-net/minecraft/world/level/LevelHeightAccessorgetSectionYFromSectionIndex AY Z[ofF(Lnet/minecraft/world/level/ChunkPos;I)Lnet/minecraft/core/SectionPos; ] ^_updateSectionStatus#(Lnet/minecraft/core/SectionPos;Z)V A ñb ZcG(Ljava/lang/Object;Ljava/lang/Object;)Lcom/mojang/datafixers/util/Pair; Æe fgadd(Ljava/lang/Object;)Z!A j klqueueSectionDatas(Lnet/minecraft/world/level/LightLayer;Lnet/minecraft/core/SectionPos;Lnet/minecraft/world/level/chunk/DataLayer;)V" #A$ %A r s?getMinLightSection u v?getMaxLightSection xyz {|$net/minecraft/world/level/LightLayerBLOCK&Lnet/minecraft/world/level/LightLayer; x~ |SKY T� ‚?getMinSectionY T„ …?getMaxSectionY&A ˆ ‰Š checkBlock (Lnet/minecraft/core/BlockPos;)V Œ�Ž ��com/mojang/logging/LogUtils getLogger()Lorg/slf4j/Logger;’java/lang/AutoCloseableDEFAULT_BATCH_SIZE ConstantValueè Signature¡Lit/unimi/dsi/fastutil/objects/ObjectList;>;º(Lnet/minecraft/world/level/chunk/LightChunkGetter;Lnet/minecraft/server/level/ChunkMap;ZLnet/minecraft/util/thread/ConsecutiveExecutor;Lnet/minecraft/server/level/ChunkTaskDispatcher;)VCodeLineNumberTableLocalVariableTablethis5Lnet/minecraft/server/level/ThreadedLevelLightEngine;lightChunkGetter2Lnet/minecraft/world/level/chunk/LightChunkGetter; hasSkyLightMethodParameterscloseposLnet/minecraft/core/BlockPos;updateChunkStatus$Lnet/minecraft/world/level/ChunkPos;Lnet/minecraft/core/SectionPos; sectionEmptyenablelayerdata+Lnet/minecraft/world/level/chunk/DataLayer;RuntimeVisibleTypeAnnotations#Lorg/jspecify/annotations/Nullable;chunkXchunkZtyperunnableLjava/lang/Runnable;level Ljava/util/function/IntSupplier;retaininitializeLightX(Lnet/minecraft/world/level/chunk/ChunkAccess;Z)Ljava/util/concurrent/CompletableFuture;chunk-Lnet/minecraft/world/level/chunk/ChunkAccess;lighted‡(Lnet/minecraft/world/level/chunk/ChunkAccess;Z)Ljava/util/concurrent/CompletableFuture; lightChunk centerChunktryScheduleUpdate StackMapTabletask!Lcom/mojang/datafixers/util/Pair; totalSize2Lit/unimi/dsi/fastutil/objects/ObjectListIterator;countLocalVariableTypeTableuLcom/mojang/datafixers/util/Pair;©Lit/unimi/dsi/fastutil/objects/ObjectListIterator;>;waitForPendingTasks,(II)Ljava/util/concurrent/CompletableFuture;/(II)Ljava/util/concurrent/CompletableFuture<*>;lambda$waitForPendingTasks$1(IILjava/lang/Runnable;)Vrlambda$waitForPendingTasks$0lambda$tryScheduleUpdate$0lambda$lightChunk$3;(Lnet/minecraft/world/level/ChunkPos;Ljava/lang/Runnable;)Vlambda$lightChunk$2\(Lnet/minecraft/world/level/chunk/ChunkAccess;)Lnet/minecraft/world/level/chunk/ChunkAccess;lambda$lightChunk$19(Lnet/minecraft/world/level/ChunkPos;Z)Ljava/lang/String;lambda$lightChunk$0((ZLnet/minecraft/world/level/ChunkPos;)Vlambda$initializeLight$3lambda$initializeLight$2�(Lnet/minecraft/world/level/ChunkPos;ZLnet/minecraft/world/level/chunk/ChunkAccess;)Lnet/minecraft/world/level/chunk/ChunkAccess;lambda$initializeLight$18(Lnet/minecraft/world/level/ChunkPos;)Ljava/lang/String;lambda$initializeLight$0T(Lnet/minecraft/world/level/chunk/ChunkAccess;Lnet/minecraft/world/level/ChunkPos;)VsectionYsection3Lnet/minecraft/world/level/chunk/LevelChunkSection; sectionIndexsections4[Lnet/minecraft/world/level/chunk/LevelChunkSection;ålambda$retainData$2lambda$retainData$1lambda$retainData$0lambda$addTask$0U(Lnet/minecraft/server/level/ThreadedLevelLightEngine$TaskType;Ljava/lang/Runnable;)Vlambda$queueSectionData$23(Lnet/minecraft/core/SectionPos;)Ljava/lang/String;lambda$queueSectionData$1lambda$queueSectionData$0lambda$setLightEnabled$1lambda$setLightEnabled$0lambda$propagateLightSources$1lambda$propagateLightSources$0lambda$updateSectionStatus$24(Lnet/minecraft/core/SectionPos;Z)Ljava/lang/String;lambda$updateSectionStatus$1lambda$updateSectionStatus$0lambda$updateChunkStatus$2lambda$updateChunkStatus$1lambda$updateChunkStatus$0lambda$checkBlock$11(Lnet/minecraft/core/BlockPos;)Ljava/lang/String;lambda$checkBlock$0 SourceFileThreadedLevelLightEngine.java NestMembersBootstrapMethods   ýŠð  ûü ()Ljava/lang/String;?  ú?  ù&  øÝ  ÷?  ö_  ôõ! " ó&$ % òÝ' ( ñ<* + ðÖ- . ï?0 1 îl3 4 ìí6 7 êë9 : é?< = è<? @ çÝB C ÞßE F ÜÝH I ÚÛK/()Lnet/minecraft/world/level/chunk/ChunkAccess;ÚN O ÙÒQ R רT U ÕÖW X ÓÔZ [ ÑÒ] ^ Ð ` a Ï c d ÌÍflightChunk  hinitializeLight: j retainData l queueData nenableLight  ppropagateLight rupdateSectionStatus  tupdateChunkStatus  truev checkBlock x yz{ |}"java/lang/invoke/LambdaMetafactory metafactoryÌ(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; €�‚ !ƒ$java/lang/invoke/StringConcatFactory˜(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; InnerClassesTaskType‡%java/lang/invoke/MethodHandles$Lookup‰java/lang/invoke/MethodHandlesLookup! ‘“”•/0'(–— #$”•0˜™®6*+·*»Y· µ *èµ*»Y·µ*,µ*µ!*µ%±š"' #$$())/*5+›>6œ�6žŸ6 6 ,6'(6#$¡ž '#¢ ™+±š/› œ�?™:»)Y+·-¸0À)¿š3› œ�‰Š™q++¶6M*+¶<¸@+¶F¸@²I*,ºO,ºS¸W¶[±š89*:› +œ�+£¤&:¤¡£¥&™]%*+¶_+¶dºg²I*+ºk+ºn¸W¶q±š >$L›%œ�%£¦¡£^_™i'*+¶t+¶uºv²I*+ºw+ºz¸W¶q±š Q&R› 'œ�'£§'¨,¡ £¨%&™X *+¶_+¶d²I*+º}+º~¸W¶[±š VW› œ� £¦¡£;<™d"*+¶_+¶d²I*+º+º‚¸W¶[±š [!\› "œ�"£¦"©,¡ £©kl™s '*,¶t,¶uº…²I*+,-º†,º‰¸W¶q±š a&b›*'œ�'ª|'£§'«¬¡ ª£«­ ®]^™l**´¸Œ¶�-¶q±š ef›4œ�¯°±N²³¡¯°±²]s™€*´!*º–¸Œ-¶™±šinio›>œ�¯°´µ±N²³¡¯°´±²?<™h&*+¶_+¶dºŸ²I*+º +º¡¸W¶q±š s%t› &œ�&£¦&¶,¡ £¶·¸™‰9+¶¢N*-¶_-¶d²I*+-º¨-º«¸W¶[*-+º¬*-º¯¸³°šwx%‚›*9œ�9¹º9»,4£¦¡ ¹»–¼½¸™�<+¶¢N+¶¹*-¶_-¶d²I*-º½-ºÀ¸W¶[+ºÁ*-ºÄ¸³°š�Ž �+—›*<œ�<¾º<»,7£¦¡ ¾»–¼¿ ™i-*´ ¹Å™ *·Ë™*´¶Î™*´%*ºÒ¶Õ±š¡¢,§› -œ�À ™‘ *´ ¹Ûè¸Þ<*´ ¹äM>,¹è™1¢,,¹íÀñ:¶ó²I¦¶öÀù¹û„§ÿÌ,¹ýW*·W>,¹è™7¢2,¹íÀñ:¶ó²¦¶öÀù¹û,¹„§ÿƱšRª¬®¯*°5±@²M´PµS¶[¸`ºb»p¼{½†¾“À™ÁœÂŸÃ›>5ÁÂ{!Á œ��ÆæÄ„ÅÆ 5ÁÇ{!ÁdžæÈÀþéü0ñúü0ñú ÉÊ™Oº *º ¸°šÆ› œ�¯°¡ ¯°–ËÌÍ™S *²-¶[±šÈ›* œ� ¯ ° γ Ï ™±šÇÐ ™? *¶*´¶±š£¤ ¥›  œ�ÑÒ™O*+¶_+¶d²,¶[±šœ› œ�£¦Î³ ÓÔ™5*¶¹*°š ™š› ¾º ÕÖ™? *¸º°š–› £¦ »,ר™tš*,·#²'™²-1,¹3±š�‘ “”–› œ�»,£¦À ÙÒ™O*+¶_+¶d²,¶[±šˆ› œ�£¦Î³ÚÛ™^*+·9*+·=-°š„… †›*œ�£¦»,¹º ÜÝ™4 *¸º@°š�›  £¦Þß™Ó>+¶CN6+¶G¢/-2:¶Jš*´O¹S6*,¸X·\„§ÿαš"yz{|},~7z=�›H, à áâ5ã>œ�>¹º>£¦9äåÀ ýæ.ú çÝ™4 *¸º`°šs›  £¦è<™E*+·=±šs› œ�£¦¶, é?™¬šsêë™v#*´ +,¸a¹dW*´ ¹Ûè¡*¶±šjkl"n› #œ�#±N#²³À" ìí™4 *¸ºh°ša›  £§îl™P*+,-·i±ša›*œ�ª|£§«¬ ï?™¬ša ðÖ™? *¸ºm°š[› £¦ ©,ñ<™E*+·9±š[› œ�£¦©, òÝ™4 *¸ºn°šV›  £¦ó&™:*+·#±šV›œ�£¦ ôõ™? *¸ºo°šQ› £§ ¨,ö_™E*+·\±šQ› œ�£§¨, ÷?™¬šQ øÝ™4 *¸ºp°šK›  £¦ù&™ãa*+·=*+·9*¶q=*¶t¢#*²w+¸X·i*²}+¸X·i„§ÿÛ*´O¹€=*´O¹ƒ£*+¸X·\„§ÿ汚* @A BC&D3B9HPIZH`K›*(àCàaœ�a£¦Àüú'ü ú ú?™¬š> ûü™4 *¸º†°š9›  :¤ýŠ™:*+·‡±š9›œ�:¤þ ™¸‹³-±šÿJd'ww w  ww w  ww w w# w&w) w , w/w2 w5w 8 w;w> wAwD wGJwLMLwPwS wVJwLYLw\w_wLbL~e~g~i~k~m~o~q~s~u„J …@†ˆŠ