Êþº¾Ednet/minecraft/core/SectionPos*net/minecraft/world/level/block/SculkBlock-net/minecraft/world/level/block/SculkSpreader   java/lang/Object()V  :net/minecraft/world/level/block/SculkSpreader$ChargeCursorposLnet/minecraft/core/BlockPos;  chargeI   decayDelay   updateDelay  !"java/util/OptionalorElse&(Ljava/lang/Object;)Ljava/lang/Object;$ java/util/Set & '(facingsLjava/util/Set; * +,empty()Ljava/util/Optional; . /7(Lnet/minecraft/core/BlockPos;IIILjava/util/Optional;)V 123 45net/minecraft/core/BlockPosdistChessboard(Lnet/minecraft/core/Vec3i;)I7&net/minecraft/server/level/ServerLevel 69 :;shouldTickBlocksAt (Lnet/minecraft/core/BlockPos;)Z = >?isWorldGenerationZ A BC shouldUpdateJ(Lnet/minecraft/world/level/LevelAccessor;Lnet/minecraft/core/BlockPos;Z)Z EFG HI'net/minecraft/world/level/LevelAccessor getBlockStateQ(Lnet/minecraft/core/BlockPos;)Lnet/minecraft/world/level/block/state/BlockState; K LMgetBlockBehaviourd(Lnet/minecraft/world/level/block/state/BlockState;)Lnet/minecraft/world/level/block/SculkBehaviour; O >P()Z RST UV.net/minecraft/world/level/block/SculkBehaviourattemptSpreadVein’(Lnet/minecraft/world/level/LevelAccessor;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/state/BlockState;Ljava/util/Collection;Z)Z RX YPcanChangeBlockStateOnSpread [\] ^_ net/minecraft/sounds/SoundEventsSCULK_BLOCK_SPREAD!Lnet/minecraft/sounds/SoundEvent; abc de net/minecraft/sounds/SoundSourceBLOCKS"Lnet/minecraft/sounds/SoundSource; Eg hi playSoundˆ(Lnet/minecraft/world/entity/Entity;Lnet/minecraft/core/BlockPos;Lnet/minecraft/sounds/SoundEvent;Lnet/minecraft/sounds/SoundSource;FF)V Rk lmattemptUseChargeÖ(Lnet/minecraft/world/level/block/SculkSpreader$ChargeCursor;Lnet/minecraft/world/level/LevelAccessor;Lnet/minecraft/core/BlockPos;Lnet/minecraft/util/RandomSource;Lnet/minecraft/world/level/block/SculkSpreader;Z)I Ro pq onDischargedœ(Lnet/minecraft/world/level/LevelAccessor;Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/core/BlockPos;Lnet/minecraft/util/RandomSource;)V s tugetValidMovementPosÒ(Lnet/minecraft/world/level/LevelAccessor;Lnet/minecraft/core/BlockPos;Lnet/minecraft/util/RandomSource;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/SculkSpreader;)Lnet/minecraft/core/BlockPos; 1w xy immutable()Lnet/minecraft/core/BlockPos; {|} ~0net/minecraft/world/level/block/state/BlockStategetBlock)()Lnet/minecraft/world/level/block/Block; �‚ƒ „….net/minecraft/world/level/block/MultifaceBlockavailableFacesC(Lnet/minecraft/world/level/block/state/BlockState;)Ljava/util/Set; R‡ ˆ‰updateDecayDelay(I)I R‹ Œ�getSculkSpreadDelay()B ��‘ ’“java/lang/Mathmin(II)I R• –—DEFAULT0Lnet/minecraft/world/level/block/SculkBehaviour; ™ š›NON_CORNER_NEIGHBOURS/Lit/unimi/dsi/fastutil/objects/ObjectArrayList; �žŸ  ¡net/minecraft/util/Util shuffledCopyb(Lit/unimi/dsi/fastutil/objects/ObjectArrayList;Lnet/minecraft/util/RandomSource;)Ljava/util/List; 1£ ¤¥mutable/()Lnet/minecraft/core/BlockPos$MutableBlockPos; § ¨©&getRandomizedNonCornerNeighbourOffsets3(Lnet/minecraft/util/RandomSource;)Ljava/util/List; «¬­ ®¯java/util/Listiterator()Ljava/util/Iterator; ±²³ ´Pjava/util/IteratorhasNext ±¶ ·¸next()Ljava/lang/Object;ºnet/minecraft/core/Vec3i ¼½¾ ¿À+net/minecraft/core/BlockPos$MutableBlockPos setWithOffsetc(Lnet/minecraft/core/Vec3i;Lnet/minecraft/core/Vec3i;)Lnet/minecraft/core/BlockPos$MutableBlockPos;  ÃÄ canMoveToPosl(Lnet/minecraft/core/BlockPos;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/SculkSpreader;)Z Æ ÇÈisMovementUnobstructedf(Lnet/minecraft/world/level/LevelAccessor;Lnet/minecraft/core/BlockPos;Lnet/minecraft/core/BlockPos;)Z ¼Ê ËÌsetI(Lnet/minecraft/core/Vec3i;)Lnet/minecraft/core/BlockPos$MutableBlockPos; ÎÏÐ ÑÒ.net/minecraft/world/level/block/SculkVeinBlockhasSubstrateAccess{(Lnet/minecraft/world/level/LevelAccessor;Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/core/BlockPos;)Z ¼Ô ÕÖequals(Ljava/lang/Object;)Z 1Ø ÙÚgetX()I ÜÝÞ ß‰net/minecraft/util/Mthsquare 1á âÚgetZ 1ä å5 distManhattan 1ç èésubtract9(Lnet/minecraft/core/Vec3i;)Lnet/minecraft/core/BlockPos; ëìí îï!net/minecraft/core/Direction$AxisX#Lnet/minecraft/core/Direction$Axis; ñòó ôõ*net/minecraft/core/Direction$AxisDirectionNEGATIVE,Lnet/minecraft/core/Direction$AxisDirection; ñ÷ øõPOSITIVE úûü ýþnet/minecraft/core/DirectionfromAxisAndDirectiono(Lnet/minecraft/core/Direction$Axis;Lnet/minecraft/core/Direction$AxisDirection;)Lnet/minecraft/core/Direction; ë ïY 1 ÚgetY ë ?ï    isUnobstructedg(Lnet/minecraft/world/level/LevelAccessor;Lnet/minecraft/core/BlockPos;Lnet/minecraft/core/Direction;)Z 1  relative=(Lnet/minecraft/core/Direction;)Lnet/minecraft/core/BlockPos; ú  getOpposite ()Lnet/minecraft/core/Direction; {  isFaceSturdye(Lnet/minecraft/world/level/BlockGetter;Lnet/minecraft/core/BlockPos;Lnet/minecraft/core/Direction;)Z 1 CODEC Lcom/mojang/serialization/Codec;   !com/mojang/serialization/CodecfieldOf7(Ljava/lang/String;)Lcom/mojang/serialization/MapCodec;# $%apply()Ljava/util/function/Function; '() *+!com/mojang/serialization/MapCodec forGetterS(Ljava/util/function/Function;)Lcom/mojang/serialization/codecs/RecordCodecBuilder; - ./intRange$(II)Lcom/mojang/serialization/Codec; 234 56java/lang/IntegervalueOf(I)Ljava/lang/Integer; 8 9:optionalFieldOfI(Ljava/lang/String;Ljava/lang/Object;)Lcom/mojang/serialization/MapCodec;#= decay_delay#ÿÿÿA update_delay# D E DIRECTION_SET' H I!lenientOptionalFieldOf# LMN OP;com/mojang/serialization/codecs/RecordCodecBuilder$InstancegroupÊ(Lcom/mojang/datafixers/kinds/App;Lcom/mojang/datafixers/kinds/App;Lcom/mojang/datafixers/kinds/App;Lcom/mojang/datafixers/kinds/App;Lcom/mojang/datafixers/kinds/App;)Lcom/mojang/datafixers/Products$P5;R $S(()Lcom/mojang/datafixers/util/Function5; UVW $X!com/mojang/datafixers/Products$P5r(Lcom/mojang/datafixers/kinds/Applicative;Lcom/mojang/datafixers/util/Function5;)Lcom/mojang/datafixers/kinds/App; Z [\ getFacingData()Ljava/util/Set; ^ _` ofNullable((Ljava/lang/Object;)Ljava/util/Optional; bcd efcom/google/common/collect/Sets newEnumSet:(Ljava/lang/Iterable;Ljava/lang/Class;)Ljava/util/EnumSet; 1h i(III)V 1k lmbetweenClosedStreamU(Lnet/minecraft/core/BlockPos;Lnet/minecraft/core/BlockPos;)Ljava/util/stream/Stream;o pqtest ()Ljava/util/function/Predicate; stu vwjava/util/stream/Streamfilter9(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;# sz {|map8(Ljava/util/function/Function;)Ljava/util/stream/Stream; ~€ �"java/util/ObjectsrequireNonNullƒ „…acceptN(Lit/unimi/dsi/fastutil/objects/ObjectArrayList;)Ljava/util/function/Consumer; s‡ ˆ‰forEach (Ljava/util/function/Consumer;)V 1‹ ŒZERO 1Ô�-it/unimi/dsi/fastutil/objects/ObjectArrayList Ž‘ ’(I)V ” „•()Ljava/util/function/Consumer; �— ˜™makeC(Ljava/lang/Object;Ljava/util/function/Consumer;)Ljava/lang/Object; ú› œ2Lnet/minecraft/util/StringRepresentable$EnumCodec; žŸ  ¡¢0net/minecraft/util/StringRepresentable$EnumCodeclistOf"()Lcom/mojang/serialization/Codec; # # ¦ §¨xmap\(Ljava/util/function/Function;Ljava/util/function/Function;)Lcom/mojang/serialization/Codec; # «¬­ ®¯2com/mojang/serialization/codecs/RecordCodecBuildercreate?(Ljava/util/function/Function;)Lcom/mojang/serialization/Codec;  SignatureKLit/unimi/dsi/fastutil/objects/ObjectArrayList;MAX_CURSOR_DECAY_DELAY ConstantValueMAX_WORLDGEN_SPREAD /Ljava/util/Set;RuntimeVisibleTypeAnnotations#Lorg/jspecify/annotations/Nullable;QLcom/mojang/serialization/Codec;>;^Lcom/mojang/serialization/Codec;CodeLineNumberTableLocalVariableTablethis;>;MethodParametersh(Lnet/minecraft/core/BlockPos;IIILjava/util/Optional;>;)V!(Lnet/minecraft/core/BlockPos;I)VgetPosisPosUnreasonable originPos StackMapTable getCharge getDecayDelay1()Ljava/util/Set; serverLevel(Lnet/minecraft/server/level/ServerLevel;level)Lnet/minecraft/world/level/LevelAccessor; isWorldGenupdateš(Lnet/minecraft/world/level/LevelAccessor;Lnet/minecraft/core/BlockPos;Lnet/minecraft/util/RandomSource;Lnet/minecraft/world/level/block/SculkSpreader;Z)Vrandom!Lnet/minecraft/util/RandomSource;spreader/Lnet/minecraft/world/level/block/SculkSpreader; spreadVeins currentState2Lnet/minecraft/world/level/block/state/BlockState;sculkBehaviour transferPos mergeWith?(Lnet/minecraft/world/level/block/SculkSpreader$ChargeCursor;)Vother behaviourstateO(Lnet/minecraft/util/RandomSource;)Ljava/util/List; transfereeoffsetLnet/minecraft/core/Vec3i; sculkPosition-Lnet/minecraft/core/BlockPos$MutableBlockPos; neighbourorigintarget distanceSqfromtodelta directionXLnet/minecraft/core/Direction; directionY directionZ directiontestPoslambda$static$3`(Lcom/mojang/serialization/codecs/RecordCodecBuilder$Instance;)Lcom/mojang/datafixers/kinds/App;i=Lcom/mojang/serialization/codecs/RecordCodecBuilder$Instance;lambda$static$5R(Lnet/minecraft/world/level/block/SculkSpreader$ChargeCursor;)Ljava/util/Optional;olambda$static$4Q(Lnet/minecraft/world/level/block/SculkSpreader$ChargeCursor;)Ljava/lang/Integer;lambda$static$2!(Ljava/util/List;)Ljava/util/Set;lLjava/util/List;lambda$static$02(Lit/unimi/dsi/fastutil/objects/ObjectArrayList;)Vlistlambda$static$1position SourceFileSculkSpreader.javaNestHostBootstrapMethods"  Èy[(Lnet/minecraft/world/level/block/SculkSpreader$ChargeCursor;)Lnet/minecraft/core/BlockPos;  ÌÚÿ  ÍÚ  þÿ  ûüü#n(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;-&¨(Lnet/minecraft/core/BlockPos;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/util/Optional;)Lnet/minecraft/world/level/block/SculkSpreader$ChargeCursor;Ö) * ;;v.<(Lnet/minecraft/core/BlockPos;)Lnet/minecraft/core/BlockPos;0(Ljava/lang/Object;)V2 Ž3 4Öadd6 (Lnet/minecraft/core/BlockPos;)V8 9 < = @ ABC DEcom/google/common/collect/Lists newArrayList+(Ljava/lang/Iterable;)Ljava/util/ArrayList;G!(Ljava/util/Set;)Ljava/util/List;I J ÷øøM NOP QR"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; InnerClasses ChargeCursorMutableBlockPosAxis AxisDirectionInstanceZcom/mojang/datafixers/ProductsP5]&net/minecraft/util/StringRepresentable EnumCodec`%java/lang/invoke/MethodHandles$Lookupbjava/lang/invoke/MethodHandlesLookup! š›±²³´µ¶´·'(±¸¹ºE±»±¼ /½­'*·*+µ *µ*µ*µ*¶À#µ%±¾¥¦ §¨©ª&«¿>'ÀÁ''''''Âà ''ÄÅ'±Æ ǽN *+¸)·-±¾ ® ¯¿  ÀÁ  Å Èy½/*´ °¾²¿ ÀÁÉ;½S*´ +¶0¤§¬¾¶¿ÀÁÊË@ÅÊÌÚ½/*´¬¾º¿ ÀÁÍÚ½/*´¬¾¾¿ ÀÁ[\½/*´%°¾Â¿ ÀÁ±Î¹ºBC½š%*´�¬™¬+Á6™+À6:,¶8¬¬¾ÆÇ É ÊÌÍ#Ï¿4ÏÐ%ÀÁ%ÑÒ%%Ó?Ë Å ÑÓÔÕ½< 1*+,´<¶@š±*´ž*Y´dµ±+*´ ¹D:¸J:™M+*´ *´%¶N¹Q™3¹W™+*´ ¹D:¸J:+*´ ²Z²` ¹f**+,-¹jµ*´�+*´ -¹n±+*´ -,¸r:Æ(+*´ -¹n*¶vµ +¹D:§ ¶N™+*´ -¹n*µ±¶zÁR™ *¸€µ%**´¹†µ*¹Šµ±¾zÓÔר Ù!Ü-Ý4àSá]âiãpåƒé–ë�ì¬í­ñ»òÀóÏôØõåöíøüùúý þ%0¿\ 1ÀÁ1ÑÒ1Ê1Ö×1ØÙ1Ú?-ÛÜ4ýÝ—»vÞËýN{R)ü71ÅÑÊÖØÚßà½b"*Y´+´`µ+µ**´+´¸Žµ±¾ !¿"ÀÁ"áÁÅá LM½Z*¶zM,ÁR™ ,ÀRL+§²”°¾ ¿â—ãÜËBRÅã ¨©½2²˜*¸œ°¾¿ Ö×ÅÖ±ä tu½[ Œ+¶¢:+¶¢:,¸¦¹ª:¹°™^¹µÀ¹:+¶»W-¸Áš§ÿÖ*¹D:  ¶zÁR™#*+¸Å™¶ÉW* ¸Í™§§ÿž+¶Ó™§°¾6  -6ADNck v!y$|%¿\ N+åÜ -LæçŒÑÒŒŒÖ׌ʌØÙ†èé €êéËþ¼¼±ü,¹ú4ú A¼ÅÑÖÊØ¹º ÃĽ“0,¶Nš¬*¶×+¶×d¸Û*¶à+¶àd¸Û`>�£§¬¾)* ,#-¿*0ë0ì0ØÙ# íË  ü$@Å ëìØ ÇȽþµ+,¶ã ¬,+¶æN²ê-¶×œ ²ð§²ö¸ù:²ÿ-¶œ ²ð§²ö¸ù:²-¶àœ ²ð§²ö¸ù:-¶×š*+¸š *+¸™§¬-¶š*+¸š *+¸™§¬*+¸š *+¸™§¬¾. 1 2 67)8A9Y;`<z=�>›@¿HµÑÒµîµï¤ð)ŒñòAtóòY\ôò˵ ÿE111ëÿE111ëñÿE111úëÿE111úëñÿE111úúëÿE111úúëñüú@@@Å Ñîï   ½{+,¶ N*-¹D*-,¶¶š§¬¾ EF¿*ÑÒîõòöË ü1@Å Ñîõ ÷ø½Íƒ*²¹º"¶&è¸,0¸1¹7º;¶&¸,<¸1¹7º>¶&?¸,@¸1¹7ºB¶&²CF¹GºJ¶&¶K*ºQ¶T°¾& �žŸ1 L¡i¢v�£‚�¿ ƒùú ûü½2*¶Y¸]°¾¢¿ ýÁ þÿ½2*´¸1°¾¡¿ ýÁ ½1*ú¸a°¾›¿  ½v<»1Y·g»1Y·g¸jºn¹rºx¹y*Y¸}Wº‚¹†±¾‰Š&‹-Œ;�¿ <› ;½[%*¶×™*¶™ *¶àš*²ж�š§¬¾Š¿ %Ë @ ½[;»ŽY·�º“¸–À޳˜²š¶�º£º¤¹¥³Cº©¸ª³°±¾ˆ›/�    „ LLLLL!L"$%L'(+L,-L/15L/7:L;>L?FLHKSBT ¼1U ëúV@ñúW@L«XUY[ž\^ _ac