Êþº¾E”net/minecraft/world/level/Level  java/lang/Object()V +it/unimi/dsi/fastutil/longs/LongOpenHashSet .net/minecraft/world/level/lighting/LightEngineit/unimi/dsi/fastutil/Hash?  (IF)V  blockNodesToCheck-Lit/unimi/dsi/fastutil/longs/LongOpenHashSet;.it/unimi/dsi/fastutil/longs/LongArrayFIFOQueue    decreaseQueue0Lit/unimi/dsi/fastutil/longs/LongArrayFIFOQueue;   increaseQueue " #$ lastChunkPos[J&*net/minecraft/world/level/chunk/LightChunk ( )* lastChunk-[Lnet/minecraft/world/level/chunk/LightChunk; , -. chunkSource2Lnet/minecraft/world/level/chunk/LightChunkGetter; 0 12storage=Lnet/minecraft/world/level/lighting/LayerLightSectionStorage; 4 5clearChunkCache 789 :;0net/minecraft/world/level/block/state/BlockStategetLightDampening()I 7= >;getLightEmission 7@ ABuseShapeForLightOcclusion()Z D EF isEmptyShape5(Lnet/minecraft/world/level/block/state/BlockState;)Z HIJ KL&net/minecraft/world/phys/shapes/Shapesempty.()Lnet/minecraft/world/phys/shapes/VoxelShape; 7N OLgetOcclusionShape HQ RSmergedFaceOccludesy(Lnet/minecraft/world/phys/shapes/VoxelShape;Lnet/minecraft/world/phys/shapes/VoxelShape;Lnet/minecraft/core/Direction;)Z 7U VWgetFaceOcclusionShapeL(Lnet/minecraft/core/Direction;)Lnet/minecraft/world/phys/shapes/VoxelShape; 7Y ZB canOcclude \]^ _;net/minecraft/core/BlockPosgetX abc denet/minecraft/core/SectionPosblockToSectionCoord(I)I \g h;getZ j klgetChunk0(II)Lnet/minecraft/world/level/chunk/LightChunk; nop qr&net/minecraft/world/level/block/BlocksBEDROCK'Lnet/minecraft/world/level/block/Block; tuv wx%net/minecraft/world/level/block/BlockdefaultBlockState4()Lnet/minecraft/world/level/block/state/BlockState; %z {| getBlockStateQ(Lnet/minecraft/core/BlockPos;)Lnet/minecraft/world/level/block/state/BlockState; ~€ �‚java/lang/Mathmax(II)I „ O…~(Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/core/Direction;)Lnet/minecraft/world/phys/shapes/VoxelShape; ‡ˆ‰ Š‹net/minecraft/core/Direction getOpposite ()Lnet/minecraft/core/Direction; H� Ž�faceShapeOccludes[(Lnet/minecraft/world/phys/shapes/VoxelShape;Lnet/minecraft/world/phys/shapes/VoxelShape;)Z ‘’“ ”•"net/minecraft/world/level/ChunkPospack(II)J —˜™ šl0net/minecraft/world/level/chunk/LightChunkGettergetChunkForLighting ‘œ �žINVALID_CHUNK_POSJ  ¡¢ £¤java/util/Arraysfill([JJ)V  ¦ £§(([Ljava/lang/Object;Ljava/lang/Object;)V \© ª«asLong()J ­ ®¯add(J)Z ±²³ ´µ;net/minecraft/world/level/lighting/LayerLightSectionStoragequeueSectionData/(JLnet/minecraft/world/level/chunk/DataLayer;)V ‘· ¸;x ‘º »;z a½ ¾• getZeroNode ±À Á retainData(JZ)V a© ±Å ÆÂupdateSectionStatus ±È ÉÂsetLightEnabled Ë ÌÍiterator,()Lit/unimi/dsi/fastutil/longs/LongIterator; ÏÐÑ ÒB(it/unimi/dsi/fastutil/longs/LongIteratorhasNext ÏÔ Õ«nextLong × ØÙ checkNode(J)V Û Üclear Þ ßàtrim(I)Z â ã;propagateDecreases å æ;propagateIncreases ±è éêmarkNewInconsistencies3(Lnet/minecraft/world/level/lighting/LightEngine;)V ±ì íswapSectionMap ï ðBisEmpty ò ó« dequeueLong ±õ ö÷getStoredLevel(J)I ùúû ü÷9net/minecraft/world/level/lighting/LightEngine$QueueEntry getFromLevel ùþ ÿ¯isIncreaseFromEmission ± setStoredLevel(JI)V  propagateIncrease(JJI)V    propagateDecrease(JJ)V  Ùenqueue ± BhasInconsistencies ï ± getDataLayerData.(J)Lnet/minecraft/world/level/chunk/DataLayer; ± ÷ getLightValue  getDebugSectionTypeL(J)Lnet/minecraft/world/level/lighting/LayerLightSectionStorage$SectionType;  ! "#Gnet/minecraft/world/level/lighting/LayerLightSectionStorage$SectionTypedisplay()Ljava/lang/String; ± ù& '(decreaseAllDirections(I)J * +žPULL_LIGHT_IN_ENTRY ‡- ./values!()[Lnet/minecraft/core/Direction; 1 23PROPAGATION_DIRECTIONS[Lnet/minecraft/core/Direction;5:net/minecraft/world/level/lighting/LayerLightEventListener MAX_LEVELI ConstantValue MIN_OPACITYMIN_QUEUE_SIZE SignatureTS; CACHE_SIZEr(Lnet/minecraft/world/level/chunk/LightChunkGetter;Lnet/minecraft/world/level/lighting/LayerLightSectionStorage;)VCodeLineNumberTableLocalVariableTablethis0Lnet/minecraft/world/level/lighting/LightEngine;LocalVariableTypeTable8Lnet/minecraft/world/level/lighting/LightEngine;MethodParameters8(Lnet/minecraft/world/level/chunk/LightChunkGetter;TS;)VhasDifferentLightPropertiesg(Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/world/level/block/state/BlockState;)ZoldState2Lnet/minecraft/world/level/block/state/BlockState;newState StackMapTablegetLightDampeningInto†(Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/core/Direction;I)I fromStatetoState directionLnet/minecraft/core/Direction; simpleOpacity fromEmptyZtoEmpty fromShape,Lnet/minecraft/world/phys/shapes/VoxelShape;toShape`*net/minecraft/world/phys/shapes/VoxelShapestategetStateposLnet/minecraft/core/BlockPos;chunkXchunkZchunk,Lnet/minecraft/world/level/chunk/LightChunk; getOpacity5(Lnet/minecraft/world/level/block/state/BlockState;)I shapeOccludes…(Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/core/Direction;)ZiRuntimeVisibleTypeAnnotations#Lorg/jspecify/annotations/Nullable; checkBlock (Lnet/minecraft/core/BlockPos;)Vdata+Lnet/minecraft/world/level/chunk/DataLayer;((Lnet/minecraft/world/level/ChunkPos;Z)V$Lnet/minecraft/world/level/ChunkPos;retain#(Lnet/minecraft/core/SectionPos;Z)VLnet/minecraft/core/SectionPos; sectionEmptyenablerunLightUpdates*Lit/unimi/dsi/fastutil/longs/LongIterator;countfromNode increaseData fromLevelfromTargetLevel decreaseDataenqueueDecreaseenqueueIncrease hasLightWorkL(Lnet/minecraft/core/SectionPos;)Lnet/minecraft/world/level/chunk/DataLayer; (Lnet/minecraft/core/BlockPos;)I getDebugData(J)Ljava/lang/String; sectionNode blockNodeÓ;S:Lnet/minecraft/world/level/lighting/LayerLightSectionStorage;>Ljava/lang/Object;Lnet/minecraft/world/level/lighting/LayerLightEventListener; SourceFileLightEngine.java NestMembers InnerClasses QueueEntry SectionType! 4 6789:78;+ž<78=23-.12>? @78A#$)*BCÆH*·*» Y·µ*»Y·µ*»Y·µ*¼ µ!*½%µ'*+µ+*,µ/*¶3±D* .&'(*+1,9/>0C1G2E HFGH-.H12HHFIH1?J -1>K LMCŠ1+*¦¬+¶6*¶6 +¶<*¶< +¶?š *¶?™§¬D5689:%;08E1NO1POQ#@J NP RSCüJ*¸C6+¸C6™ ™¬™ ¸G§*¶M:™ ¸G§+¶M:,¸P™¬¬D& ?@ BCF)G:IEJHMERJTOJUOJVWJX7DYZ >[Z)!\]:^]Qý C_ü _C_ü_JTUVX O…CT*¸C™ ¸G§*+¶T°DQEaOVWQ D_J aV EFCJ*¶X™ *¶?š§¬DUE aOQ@Jab|Cµ-+¶[¸`=+¶f¸`>*¶i:Ç ²m¶s°+¹y°DYZ[\`$bE4-FG-cd%e7f7ghH -FIQ þ$%JcijCO +¶6¸}¬DfE FG aOH  FIJaklC�+-¸ƒ:,-¶†¸ƒ:¸Œ¬DjklE>FGTOUOVW\]^]H FIJ TUVklC9v¸�B6¢!*´!/”š *´'2°„§ÿã*´+¹–:6ž)*´!*´!d/P*´'*´'d2S„ÿ§ÿØ*´!!P*´'S°D6 pqrs#q)v6w>xNy^wd{k|s}EH m79+m7vFGve7vf7pcž6@ghH vFIQý úý%ú*J efno5CW*´!²›¸Ÿ*´'¸¥±D� ‚ƒE FGH FIpqCW *´+¶¨¶¬W±D ‡ ˆE FG cdH  FIJc´µC^ *´/-¶°±D ‹ ŒE  FG cž rsH  FIJ crn oÁtCh*´/+¶¶+¶¹¸¼¶¿±D ��E FGcuvZH FIJ cvÆwCa *´/+¶Ã¶Ä±D ” •E  FG cx yZH  FIJ cyÉtCh*´/+¶¶+¶¹¸¼¶Ç±D ™šE FGcuzZH FIJ cz{;CàU*´¶ÊL+¹Î™*+¹Ó¶Ö§ÿí*´¶Ú*´¶ÝW=*¶á`=*¶ä`=*¶3*´/*¶ç*´/¶ë¬D2 žŸ ¢%£0¥2¦9§@©D«L¬S®E UFGMÌ|2#}7H UFIQ üÏæ;C,c<*´¶îšX*´¶ñA*´¶ñ7*´/ ¶ô6¸ø6¸ý™¢*´/ ¶6  * ¶„§ÿ¤¬D:²³ ´µ·'¹.º=»G¼K¾R¿[Â^ÃaÄE>J~žAž'7€7.0�7cFGa}7H cFIQ!üÿH ÿ ã;C¯,<*´¶îš!*´¶ñA*´¶ñ7* ¶„§ÿÛ¬D"ÈÉ ÊËÌ$Í'Î*ÏE*~ž ‚ž,FG*}7H ,FIQü'ƒ Ci*´¶ *´!¶ ±DÓÔÕE FG~ž‚žH FIJ ~‚„ Ci*´¶ *´!¶ ±DØÙÚE FG~žžH FIJ ~…BCv.*´/¶š!*´¶™*´¶î™ *´¶îš§¬DÞE .FGH .FIQ(@†CR *´/+¶Ã¶°DãE FG cxH  FIJcno‡CR *´/+¶¨¶¬DèE FG cdH  FIJcˆ‰CO *¶¶°DìE FG ŠžH  FIJŠCO *´/¶$°DðE FG ŠžH  FIJŠØÙJ‹J ~€  J ~‚ŒC*¸%³)¸,³0±D !>�Ž��ù‘ù ’ ±“@