Êþº¾E§9net/minecraft/world/level/lighting/SkyLightSectionStorage  5(Lnet/minecraft/world/level/chunk/LightChunkGetter;)V    1net/minecraft/world/level/lighting/SkyLightEnginep(Lnet/minecraft/world/level/chunk/LightChunkGetter;Lnet/minecraft/world/level/lighting/SkyLightSectionStorage;)V  .net/minecraft/world/level/lighting/LightEnginer(Lnet/minecraft/world/level/chunk/LightChunkGetter;Lnet/minecraft/world/level/lighting/LayerLightSectionStorage;)V+net/minecraft/core/BlockPos$MutableBlockPos  ()V   mutablePos-Lnet/minecraft/core/BlockPos$MutableBlockPos;7net/minecraft/world/level/lighting/ChunkSkyLightSources  !0net/minecraft/world/level/chunk/LightChunkGettergetLevel)()Lnet/minecraft/world/level/BlockGetter; # $2(Lnet/minecraft/world/level/LevelHeightAccessor;)V & '(emptyChunkSources9Lnet/minecraft/world/level/lighting/ChunkSkyLightSources; *+, -.net/minecraft/core/SectionPosblockToSectionCoord(I)I 0 12getChunkSources=(II)Lnet/minecraft/world/level/lighting/ChunkSkyLightSources; *4 5.sectionRelative 7 89getLowestSourceY(II)I ; <= chunkSource2Lnet/minecraft/world/level/chunk/LightChunkGetter; ? @AgetChunkForLighting0(II)Lnet/minecraft/world/level/chunk/LightChunk; CDE FG*net/minecraft/world/level/chunk/LightChunkgetSkyLightSources;()Lnet/minecraft/world/level/lighting/ChunkSkyLightSources; IJK LMnet/minecraft/core/BlockPosgetX(J)I IO PMgetY IR SMgetZ *U VWblockToSection(J)J Y Z[storage=Lnet/minecraft/world/level/lighting/LayerLightSectionStorage; ] ^_lightOnInSection(J)Zajava/lang/Integerÿÿÿ d 8e(III)I g hiupdateSourcesInColumn(III)V k l_storingLightForSection n opREMOVE_SKY_SOURCE_ENTRYJ r stenqueueDecrease(JJ)V v wpADD_SKY_SOURCE_ENTRY y ztenqueueIncrease | }MgetStoredLevel  €�setStoredLevel(JI)V ƒ„… †‡9net/minecraft/world/level/lighting/LightEngine$QueueEntrydecreaseAllDirections(I)J ‰ ŠpPULL_LIGHT_IN_ENTRY Œ �ŽgetBottomSectionY()I *� ‘.sectionToBlockCoord “ ”•removeSourcesBelow(IIII)V — ˜•addSourcesAbove š ›œhasLightDataAtOrBelow(I)Z *ž Ÿ asLong(III)J ¢£¤ ¥9java/lang/Mathmin Iž ¨ ©œ isSourceLevel « ¬pREMOVE_TOP_SKY_SOURCE_ENTRY€ ¢¯ °9max ² ³_ isAboveData *µ ¶My ¸¹º »¼net/minecraft/core/DirectionUPLnet/minecraft/core/Direction; *¾ ¿Àoffset"(JLnet/minecraft/core/Direction;)J  ÃM!countEmptySectionsBelowIfAtBorder Å ÆÇPROPAGATION_DIRECTIONS[Lnet/minecraft/core/Direction; ƒÉ ÊËshouldPropagateInDirection"(JLnet/minecraft/core/Direction;)Z I¾ Î ÏÐset0(J)Lnet/minecraft/core/BlockPos$MutableBlockPos; Ò ÓÔgetStateQ(Lnet/minecraft/core/BlockPos;)Lnet/minecraft/world/level/block/state/BlockState; Ö ×Ø getOpacity5(Lnet/minecraft/world/level/block/state/BlockState;)I ƒÚ Û_isFromEmptyShape ÝÞß àá&net/minecraft/world/level/block/BlocksAIR'Lnet/minecraft/world/level/block/Block; ãäå æç%net/minecraft/world/level/block/BlockdefaultBlockState4()Lnet/minecraft/world/level/block/state/BlockState; é êë shapeOccludes…(Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/core/Direction;)Z í îï isEmptyShape5(Lnet/minecraft/world/level/block/state/BlockState;)Z ¸ñ òó getOpposite ()Lnet/minecraft/core/Direction; ƒõ ö÷increaseSkipOneDirection#(IZLnet/minecraft/core/Direction;)J ù úûpropagateFromEmptySections%(JLnet/minecraft/core/Direction;IZI)V ƒý þM getFromLevel ƒ decreaseSkipOneDirection"(ILnet/minecraft/core/Direction;)J ƒ ÷increaseOnlyOneDirection   crossedSectionEdge#(Lnet/minecraft/core/Direction;II)Z    3net/minecraft/world/level/lighting/SkyLightEngine$1'$SwitchMap$net$minecraft$core$Direction[I ¸ Žordinal  setLightEnabled((Lnet/minecraft/world/level/ChunkPos;Z)V  Ž"net/minecraft/world/level/ChunkPosx  Žz  !" #$java/util/ObjectsrequireNonNullElse8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; & 'ŽgetHighestLowestSourceY *) *+ getZeroNode(II)J - .MgetTopSectionY 0 12getDataLayerToWrite.(J)Lnet/minecraft/world/level/chunk/DataLayer; 456 78)net/minecraft/world/level/chunk/DataLayerisEmpty()Z 4: ;<fill(I)V > ?(JZ)V 4A Ï• ƒC DEincreaseSkySourceInDirections(ZZZZZ)JCodeLineNumberTableLocalVariableTablethis3Lnet/minecraft/world/level/lighting/SkyLightEngine;MethodParameters;Lnet/minecraft/world/level/lighting/SkyLightSectionStorage;RuntimeInvisibleAnnotations1Lcom/google/common/annotations/VisibleForTesting;valueI StackMapTable defaultValuesourceschunkXchunkZchunk,Lnet/minecraft/world/level/chunk/LightChunk;RuntimeVisibleTypeAnnotations#Lorg/jspecify/annotations/Nullable; checkNode(J)VoldLevel blockNode sectionNode lowestSourceYisSourceZ worldBottomYsectionBottomY sectionTopYsectionXsectionZstartYsectionYneighborLowestSourceYpropagateIncrease(JJI)VtoNodetoLevelmaxPossibleNewToLeveltoState2Lnet/minecraft/world/level/block/state/BlockState; newToLevelpropagationDirectionfromNode increaseData fromLevel fromStateemptySectionsBelowy0net/minecraft/world/level/block/state/BlockStateÇpropagateDecrease decreaseData oldFromLevellocalYlocalXlocalZ sectionMinYincreasebottomSectionY dataLayer+Lnet/minecraft/world/level/chunk/DataLayer;highestNonSourceYlowestFullySourceSectionYzeroNode topSectionYpos$Lnet/minecraft/world/level/ChunkPos;enablepropagateLightSources'(Lnet/minecraft/world/level/ChunkPos;)VnorthLowestSourceYsouthLowestSourceYwestLowestSourceYeastLowestSourceY sectionMaxY sourcesBelow northSources southSources westSources eastSources sectionMinX sectionMinZ Signature¿Lnet/minecraft/world/level/lighting/LightEngine; SourceFileSkyLightEngine.java NestMembers InnerClassesMutableBlockPos QueueEntry¥Pnet/minecraft/world/level/lighting/SkyLightSectionStorage$SkyDataLayerStorageMapSkyDataLayerStorageMap1 ¬popwp'(FF*+»Y+··±G  HIJ<=K< Fm#*+,· *»Y·µ*»Y+¹·"µ%±G"#"$H #IJ#<=#ZLK <ZMN ©œFA  §¬G'H  OPQ @KO8eF�#*¸)¸)¶/:Ǭ¸3¸3¶6¬G+,-/H4#IJ#P#P#RPS(QüK R12Fy*´:¹>N-Æ -¹B§°G 3 4H*IJTPUP VWQ üC@K TUXYZ[Fž °¸H>¸N6¸Q6¸T7*´XÀ¶\™*b¶c§b6bŸ *¶f*´XÀ¶j𱡧6  ™*²m¶q*²u¶x§6*´XÀ¶{6  ž*´XÀ¶~* ¸‚¶q§ *²ˆ¶q±GN9: ;<>6?=@FCUDVGdHiIqJ|L‰MŽNšO§Q¯TH\ ‰&\P °IJ°]p«P ¥¶PŸP™^p6z_PdL`a Q& ÿ2Aü @üü*úK]hiF€"*´XÀ¶‹¸�6*¶’*¶–±GWXY!ZH4"IJ"P"P"_PbPK _”•F¯£±¸)6¸)6d6¸)6*´XÀ¶™™ƒ*´XÀ¸�¶j™g¸�6  `6  ¸¡6   ¡I ¸¦7 *´XÀ ¶{¸§š±*´XÀ ¶~*  d  ²ª§²m¶q„ ÿ§ÿ¶„ÿ§ÿt±GN]^a bdfg.hDiKjRkblkm}n~p‹r¢k¨u®wH„ k7]p [M¶P K]cP RVdP ¯IJ¯P¯P¯_P¯bP ¢ePœfP—gP�hPQgÿ þ;ü"ÿ ÿ ÿ K_b˜•Fè¸)6¸)6*d­¶c*`­¶c¸®*d­¶c*`­¶c¸®¸®6¸®6¸)¸�7 *´XÀ ¶±š†*´XÀ ¶j™j ¸´¸�6  `6  ¸®6   £I ¸¦7*´XÀ¶{¸§™±*´XÀ¶~ ¡    *²u¶x„ §ÿ¶ ²·¸½7 §ÿq±GZz{ }~*:}?‚GƒU„d…s†}‡„ˆ”‰�Н‹°�¾ŽË�ÔˆÚ”ç–HŽ�7]p�M¶P }]cP „VdP èIJèPèPè_PèbPâeP ÜfP?©iPG¡gPU“^p Q'ÿU þ7ü"úø K_bjkFR:*¶Á6²Ä:¾6 6   ¢æ 2: ! ¸Èš§Í ¸Ì7 *´XÀ ¸T¶jš§°*´XÀ ¶{6d6£§’*´ ¶ÍW**´¶Ñ:*¶Õd6£§iÇ!!¸Ù™ ²Ü¶â§**´¶Í¶Ñ:* ¶èš9*´XÀ ¶~¤* ¸ì ¶ð¸ô¶x*  ¶ø„ §ÿ±Gjš› œ%�.ž1 9¡K¢N¥\¦b§i¨l«v¬€­‹®’¯•²š³¸µÅ¶Ó·Ù¸îºûœ½Hz 9Âlp \ŸmPb™nP€{op‹pqP%Ör¼ IJsptpuPÿvp øwPQN ÿ xzü¸üýý(xKx5ÿ xzøK stu{tF™µ*¶Á6!¸ü6²Ä:¾66  ¢– 2: ! ¸Èš§} ¸Ì7 *´XÀ ¸T¶jš§`*´XÀ ¶{6  š§J d£0*´XÀ ¶~*   ¶ð¸ÿ¶q*   ¶ø§*   ¶ð¸¶x„ §ÿi±GJÁ Ã(Ä1Å4Ç<ÈNÉQÌ_ÍdÎgÑpÒ}Ó�Ô�֮ôÙHR<rlp _OmP (†r¼ µIJµspµ|p®wP ¨}PQ*ÿzü¸üü5øøK s|ÃMF² •¸N>¸36™¬¸H6¸Q6¸36¸36™Ÿ™  R¸)6 ¸)6 ¸)6 6 *´XÀ   dd ¸�¶jš*´XÀ  dd¶™™ „ §ÿÎ ¬¬GFàá âãåæç%è,éDêKëQìXí[îŠï�ñ“óHz KHeP QBhP X;fP [8wP •IJ•]p�¶P Š~P}PwP%pP,i€PQ?ýÿ1ÿ 4ÿK]úûFEàš±¸H6¸Q6-¸3¸3¸š±¸N6 ¸)6 ¸)6  ¸)d6  d`6   ¡‘*´XÀ   ¸�¶jš „ ÿ§ÿà ¸�66›_`¸¦7™**´XÀ¶~¤2*-¶ð¸ô¶x§*´XÀ¶~*-¶ð¸ÿ¶q„ÿ§ÿ¢„ ÿ§ÿn±Gr÷øû üý#þ$*18AJQg j m t }‹�ž¤·ÄÓ ÙÜßH¢‹H]pxa~Pth�PàIJàlpàr¼àmPà‚aàwP ÔPÎP*¶¶P 1¯eP 8¨fP AŸhP J–ƒP Q3 ýÿ% ¸"ý ü>úúúKlrm‚w  FÇ^² *¶.ªT .:H §.§*š§"§ §§š§§¬G( 6!B"P#\$]H ^r¼^P^PQ (  @K rF� Ÿ*+·™—*+¶+¶¶/*´%¸ÀN-¶%d6¸)`6+¶+¶¸(7*´XÀ¶,6*´XÀ¶‹¸®6 d6   ¡6*´XÀ+¶ +¶¸�¶/:  Æ ¶3™  ¶9„ ÿ§ÿɱG:*. /!0)123?4M5^6k7„8‘9˜6ž=Hp „„… d:hP !}S()u†P2l‡P?_ˆpMQ‰P^@ƒP ŸIJŸŠ‹ŸŒaQ(ÿd 3ÿK ŠŒ�ŽFq k+¶+¶¸(A*´XÀ ¶=*+¶+¶¶/*´%¸À:*+¶+¶d¶/*´%¸À:*+¶+¶`¶/*´%¸À:*+¶d+¶¶/*´%¸À:*+¶`+¶¶/*´%¸À:*´XÀ ¶,6 *´XÀ¶‹6 +¶¸�6 +¶¸�6  d6   ¡�+¶ +¶¸�7*´XÀ¶/:ǧr ¸�6`666¢O6¢?¶66¤§$š¶6§d¶66 ¶6§`¶66š¶6§d¶66 ¶6§`¶66¸®¸®¸®66¸®¡}¸3¶@Ÿ ¢Y ` `¸¦7* §¢§¢§¢§¢§¸B¶x„ÿ§ÿ}¢6„§þÀ„§þ°š§ „ ÿ§þb±Gº.A BD0EJFdG~H˜J¥K±MºNÃPÐQßRíSòTõWüXZ\]^%_,`/cMdleŠf©g­h´i·g¼lÌmÜnêoûp@lFzM{P]V\\€a�dPj„HûE]pÀ†¶P%+_PM�Plä�PŠÆ‘P©§’P¼”iPCP SPß…^píw„…üh�Pa“P^”aÉ¡hP kIJkŠ‹ _ˆp0;S(J!•(d–(~í—(˜Ó˜(¥Æ‰P ±ºƒP º±™P èšP Q ÿÉ ý+4ÿ4ü üJüJüJüJþ)ÿ4ÿ4ÿ 4ÿ4ÿ 4ÿ4ÿ 4ÿ4ÿ 4ÿ4úúÿ 4úúÿ úKŠ›F@ ¸‚³ª²·¸ÿ³m²·¸ô³u±Gœ�žŸ  ¡"I¢ ƒ £  ¤¦