Êþº¾E"  java/lang/Object()V?Ø“t¼j~ú?è?õUUUUUU  java/lang/Mathpow(DD)D?åUUUUUU?ÕUUUUUU  log(D)D  max  ! "#:net/minecraft/world/level/levelgen/feature/SpeleothemUtilsisEmptyOrWaterOrLavaI(Lnet/minecraft/world/level/LevelAccessor;Lnet/minecraft/core/BlockPos;)Z@À&net/minecraft/util/Mth@ÉÛ %) *+cos(D)F %- .+sin 012 34net/minecraft/core/BlockPosoffset"(III)Lnet/minecraft/core/BlockPos;6 78test ()Ljava/util/function/Predicate; :;< =>'net/minecraft/world/level/LevelAccessorisStateAtPosition>(Lnet/minecraft/core/BlockPos;Ljava/util/function/Predicate;)Z6 ABC DEDnet/minecraft/world/level/block/state/properties/SpeleothemThicknessBASEFLnet/minecraft/world/level/block/state/properties/SpeleothemThickness; G HIcreatePointedBlock¿(Lnet/minecraft/core/Direction;Lnet/minecraft/world/level/block/state/properties/SpeleothemThickness;Lnet/minecraft/world/level/block/Block;)Lnet/minecraft/world/level/block/state/BlockState; KLM NOjava/util/function/Consumeraccept(Ljava/lang/Object;)V AQ REMIDDLE AT UEFRUSTUM AW XE TIP_MERGE AZ [ETIP ]^_ `anet/minecraft/core/Direction getOpposite ()Lnet/minecraft/core/Direction; 0c derelative=(Lnet/minecraft/core/Direction;)Lnet/minecraft/core/BlockPos; :g hi getBlockStateQ(Lnet/minecraft/core/BlockPos;)Lnet/minecraft/world/level/block/state/BlockState; k lmisBasez(Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/world/level/block/Block;Lnet/minecraft/core/HolderSet;)Z 0o pqmutable/()Lnet/minecraft/core/BlockPos$MutableBlockPos;s Ntº(Lnet/minecraft/world/level/block/Block;Lnet/minecraft/world/level/LevelAccessor;Lnet/minecraft/core/BlockPos$MutableBlockPos;Lnet/minecraft/core/Direction;)Ljava/util/function/Consumer; v wxbuildBaseToTipColumng(Lnet/minecraft/core/Direction;IZLjava/util/function/Consumer;Lnet/minecraft/world/level/block/Block;)V z{| }~0net/minecraft/world/level/block/state/BlockStateis!(Lnet/minecraft/core/HolderSet;)Z €�‚ ƒ„%net/minecraft/world/level/block/BlockdefaultBlockState4()Lnet/minecraft/world/level/block/state/BlockState; :† ‡ˆsetBlockS(Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/state/BlockState;I)Z Š‹Œ �Ž5net/minecraft/world/level/block/PointedDripstoneBlock TIP_DIRECTION?Lnet/minecraft/world/level/block/state/properties/EnumProperty; z� ‘’setValuee(Lnet/minecraft/world/level/block/state/properties/Property;Ljava/lang/Comparable;)Ljava/lang/Object; Š” •Ž THICKNESS —˜™ š›&net/minecraft/world/level/block/BlocksLAVA'Lnet/minecraft/world/level/block/Block; z� }ž(Ljava/lang/Object;)Z z  ¡¢isAir()Z —¤ ¥›WATER Ч ¨© WATERLOGGEDBLnet/minecraft/world/level/block/state/properties/BooleanProperty; :« ¬­ isWaterAt (Lnet/minecraft/core/BlockPos;)Z ¯°± ²³java/lang/BooleanvalueOf(Z)Ljava/lang/Boolean; µ¶· ¸¹+net/minecraft/core/BlockPos$MutableBlockPosmoveM(Lnet/minecraft/core/Direction;)Lnet/minecraft/core/BlockPos$MutableBlockPos;CodeLineNumberTableLocalVariableTablethis; Signature›(Lnet/minecraft/core/Direction;IZLjava/util/function/Consumer;Lnet/minecraft/world/level/block/Block;)VgrowSpeleothemÕ(Lnet/minecraft/world/level/LevelAccessor;Lnet/minecraft/core/BlockPos;Lnet/minecraft/core/Direction;IZLnet/minecraft/world/level/block/Block;Lnet/minecraft/world/level/block/Block;Lnet/minecraft/core/HolderSet;)VstartPos tipDirectionheight baseBlockreplaceableBlocksLnet/minecraft/core/HolderSet;-Lnet/minecraft/core/BlockPos$MutableBlockPos;GLnet/minecraft/core/HolderSet;þ(Lnet/minecraft/world/level/LevelAccessor;Lnet/minecraft/core/BlockPos;Lnet/minecraft/core/Direction;IZLnet/minecraft/world/level/block/Block;Lnet/minecraft/world/level/block/Block;Lnet/minecraft/core/HolderSet;)VplaceBaseBlockIfPossibleŽ(Lnet/minecraft/world/level/LevelAccessor;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/Block;Lnet/minecraft/core/HolderSet;)Zstate2Lnet/minecraft/world/level/block/state/BlockState;·(Lnet/minecraft/world/level/LevelAccessor;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/Block;Lnet/minecraft/core/HolderSet;)Z thickness isBaseOrLava£(Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/world/level/block/Block;Lnet/minecraft/core/HolderSet;)Z5(Lnet/minecraft/world/level/block/state/BlockState;)ZisNeitherEmptyNorWaterlambda$growSpeleothem$0Ð(Lnet/minecraft/world/level/block/Block;Lnet/minecraft/world/level/LevelAccessor;Lnet/minecraft/core/BlockPos$MutableBlockPos;Lnet/minecraft/core/Direction;Lnet/minecraft/world/level/block/state/BlockState;)V SourceFileSpeleothemUtils.javaBootstrapMethodsž  Üÿÿ  "ÿO  5(Lnet/minecraft/world/level/block/state/BlockState;)V  "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; InnerClassesMutableBlockPos%java/lang/invoke/MethodHandles$Lookup java/lang/invoke/MethodHandlesLookup!º/*·±»¼ ½¾ ¿Àº Y&˜œG9&(ok9    ¸ k9  ¸ 9 ¸k9 ggk9¸9o(k¯»*  !&&'0(;)H+P,¼f YÁÂYÃÂYÄÂYÅÂJÆÂAÇ &3È 0)ÉÂ;ÊÂHËÂÌ ÍÁÃÄÅ ÎϺU*+¸™¬$F$†n8 8'–œ7�¸(†j‹6�¸,†j‹6*+¶/¸™¬b8§ÿǬ». 78 < =>?+@7AGBI>SE¼R+ÐÑ7ÒÑ<ÓÔUÕÖUרUÙÑ HÚÔAÛÔÌ  þ 1ú Í Õ×Ù Ü#ºA *+º5¹9¬»I¼ ÕÝ ÞØÍ ÕÞ "#ºA *+º?¹9¬»M¼ ÕÝ ÞØÍ ÕÞ wxº=g¡2-*²@¸F¹J6d¢-*²P¸F¹J„§ÿæ¡-*²S¸F¹J¡-*™ ²V§²Y¸F¹J±»* TUVW.V4Z9[H]M^f`¼>ßÑgàágâÑgãägåægç›è gåéÌ>üúÿ]K€K]ÿ]K€K]A Íàâãåçêë ìíºÙ 4*+,¶\¶b¹f¸jš±+¶n:,*,ºr¸u±»cdgh3o¼\ 4ÕÝ4îØ4ïá4ðÑ4ãä4ñ›4ç›4òóÞôè 4òõÌÍ!Õîïðãñçòêö ÷øº¥#*+¹f:-¶y™*+,¶¹…W¬¬»r stu!w¼4#ÕÝ#ÞØ#ñ›#òó ùúè #òõÌü!zÍÕÞñòêû HIºc,¶²‰*¶�Àz²“+¶�Àz°»{|}{¼ àáüEç›Í àüç ýmºu*+,¸jš *²–¶œ™§¬»�¼ ùúñ›òóè òõÌ@Í ùñòêþ lmºr*+¶œš *,¶y™§¬»†¼ ùúñ›òóè òõÌ@Í ùñòêþ ÜÿºM*¶Ÿš *²£¶œ™§¬»м ùúÌ@Íù ÿºL*¶Ÿš*²£¶œš§¬»޼ ùúÌ@Íù "ÿºW!*¶Ÿš*²£¶œš *²–¶œ™§¬»’¼ !ùúÌ@Íù º�2*¶œ™²¦+,¹ª¸®¶�Àz:+,¹…W,-¶´W±»i j l+m1n¼42ç›2ÕÝ2Þô2ïá2ùúÌ     µ0 !