Êþº¾E–net/minecraft/SharedConstants  /net/minecraft/world/level/block/SpeleothemBlockv(Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V *net/minecraft/world/level/block/LevelEvent  5net/minecraft/world/level/block/PointedDripstoneBlock TIP_DIRECTION?Lnet/minecraft/world/level/block/state/properties/EnumProperty;  0net/minecraft/world/level/block/state/BlockStategetValueS(Lnet/minecraft/world/level/block/state/properties/Property;)Ljava/lang/Comparable;  net/minecraft/core/DirectionUPLnet/minecraft/core/Direction;   THICKNESS !"# $%Dnet/minecraft/world/level/block/state/properties/SpeleothemThicknessTIPFLnet/minecraft/world/level/block/state/properties/SpeleothemThickness;@ )*+ ,-net/minecraft/world/level/Level damageSources2()Lnet/minecraft/world/damagesource/DamageSources; /01 23.net/minecraft/world/damagesource/DamageSources stalagmite1()Lnet/minecraft/world/damagesource/DamageSource; 567 89!net/minecraft/world/entity/EntitycauseFallDamage4(DFLnet/minecraft/world/damagesource/DamageSource;)Z ; <=fallOn—(Lnet/minecraft/world/level/Level;Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/entity/Entity;D)V ? @AisFreeHangingStalactite5(Lnet/minecraft/world/level/block/state/BlockState;)Z CDE FGnet/minecraft/util/RandomSource nextFloat()F=õÂ� J KLgetFluidAboveStalactite†(Lnet/minecraft/world/level/Level;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/state/BlockState;)Ljava/util/Optional;N OPtest!(F)Ljava/util/function/Predicate; RST UVjava/util/Optionalfilter4(Ljava/util/function/Predicate;)Ljava/util/Optional;X YZaccept�(Lnet/minecraft/world/level/Level;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/state/BlockState;)Ljava/util/function/Consumer; R\ ]^ ifPresent (Ljava/util/function/Consumer;)V ` abmaybeTransferFluid{(Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/core/BlockPos;F)V d ef randomTick›(Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/core/BlockPos;Lnet/minecraft/util/RandomSource;)V>4=p j klisStalactiteStartPosy(Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/world/level/LevelReader;Lnet/minecraft/core/BlockPos;)Z Rn opisEmpty()Z Rr stget()Ljava/lang/Object;v?net/minecraft/world/level/block/PointedDripstoneBlock$FluidInfo ux yzfluid*Lnet/minecraft/world/level/material/Fluid; |}~ €)net/minecraft/world/level/material/FluidsWATER1Lnet/minecraft/world/level/material/FlowingFluid; |‚ ƒ€LAVA … †‡findTip™(Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/world/level/LevelAccessor;Lnet/minecraft/core/BlockPos;IZ)Lnet/minecraft/core/BlockPos; u‰ Š‹ sourceState2Lnet/minecraft/world/level/block/state/BlockState; �Ž� �‘&net/minecraft/world/level/block/BlocksMUD'Lnet/minecraft/world/level/block/Block; “ ”•is(Ljava/lang/Object;)Z �— ˜‘CLAY š›œ �ž%net/minecraft/world/level/block/BlockdefaultBlockState4()Lnet/minecraft/world/level/block/state/BlockState; u  ¡¢posLnet/minecraft/core/BlockPos; ¤¥¦ §¨&net/minecraft/server/level/ServerLevelsetBlockAndUpdateR(Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/state/BlockState;)Z šª «¬pushEntitiesUpÞ(Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/world/level/LevelAccessor;Lnet/minecraft/core/BlockPos;)Lnet/minecraft/world/level/block/state/BlockState; ®¯° ±²-net/minecraft/world/level/gameevent/GameEvent BLOCK_CHANGE%Lnet/minecraft/core/Holder$Reference; ´µ¶ ·¸5net/minecraft/world/level/gameevent/GameEvent$Contextofk(Lnet/minecraft/world/level/block/state/BlockState;)Lnet/minecraft/world/level/gameevent/GameEvent$Context; ¤º »¼ gameEventr(Lnet/minecraft/core/Holder;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/gameevent/GameEvent$Context;)V ¤¾ ¿À levelEvent"(ILnet/minecraft/core/BlockPos;I)V  ÃÄ&findFillableCauldronBelowStalactiteTip‡(Lnet/minecraft/world/level/Level;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/material/Fluid;)Lnet/minecraft/core/BlockPos; ÆÇÈ ÉÊnet/minecraft/core/BlockPosgetY()I ¤Ì ÍÎ getBlockStateQ(Lnet/minecraft/core/BlockPos;)Lnet/minecraft/world/level/block/state/BlockState; Ð ÑÒgetBlock)()Lnet/minecraft/world/level/block/Block; ¤Ô ÕÖ scheduleTickH(Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/Block;I)VX Ù ÚÛ getOffset>(Lnet/minecraft/core/BlockPos;)Lnet/minecraft/world/phys/Vec3;?° Æß àÊgetX?à äåæ çènet/minecraft/world/phys/Vec3xD ê ëèSTALACTITE_DRIP_START_PIXEL Æí îÊgetZ äð ñèz ó ôõgetDripParticle˜(Lnet/minecraft/world/level/Level;Lnet/minecraft/world/level/material/Fluid;Lnet/minecraft/core/BlockPos;)Lnet/minecraft/core/particles/ParticleOptions; )÷ øù addParticle7(Lnet/minecraft/core/particles/ParticleOptions;DDDDDD)Vû Oür(Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/core/Direction;)Ljava/util/function/BiPredicate; þ ÿ getOpposite ()Lnet/minecraft/core/Direction;  getAxisDirection.()Lnet/minecraft/core/Direction$AxisDirection; OR(Lnet/minecraft/world/level/block/state/BlockState;)Ljava/util/function/Predicate;    findBlockVerticalÇ(Lnet/minecraft/world/level/LevelAccessor;Lnet/minecraft/core/BlockPos;Lnet/minecraft/core/Direction$AxisDirection;Ljava/util/function/BiPredicate;Ljava/util/function/Predicate;I)Ljava/util/Optional; OJ(Lnet/minecraft/world/level/material/Fluid;)Ljava/util/function/Predicate; OC(Lnet/minecraft/world/level/Level;)Ljava/util/function/BiPredicate;  DOWN R orElse&(Ljava/lang/Object;)Ljava/lang/Object; O ()Ljava/util/function/Predicate;   apply()Ljava/util/function/Function; R" #$map3(Ljava/util/function/Function;)Ljava/util/Optional;  |' (zEMPTY*(net/minecraft/world/level/material/Fluid , -A isStalactite R/ 01empty()Ljava/util/Optional; 3 45 findRootBlock‡(Lnet/minecraft/world/level/Level;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/state/BlockState;I)Ljava/util/Optional; 7 8@(Lnet/minecraft/world/level/Level;)Ljava/util/function/Function; Æ: ;<above (I)Lnet/minecraft/core/BlockPos; >Ì?%net/minecraft/world/level/LevelReader A BC getFluidState1()Lnet/minecraft/world/level/material/FluidState; E FGcanGrowG(Lnet/minecraft/world/level/LevelReader;Lnet/minecraft/core/BlockPos;)Z I“J-net/minecraft/world/level/material/FluidState IL MpisSource )O PQisSame-(Lnet/minecraft/world/level/material/Fluid;)Z )S TUenvironmentAttributes<()Lnet/minecraft/world/attribute/EnvironmentAttributeSystem; WXY Z[3net/minecraft/world/attribute/EnvironmentAttributesDEFAULT_DRIPSTONE_PARTICLE4Lnet/minecraft/world/attribute/EnvironmentAttribute; ]^_ `8net/minecraft/world/attribute/EnvironmentAttributeSysteme(Lnet/minecraft/world/attribute/EnvironmentAttribute;Lnet/minecraft/core/BlockPos;)Ljava/lang/Object;b,net/minecraft/core/particles/ParticleOptions def ƒgnet/minecraft/tags/FluidTagsLnet/minecraft/tags/TagKey; )i ”j(Lnet/minecraft/tags/TagKey;)Z lmn op*net/minecraft/core/particles/ParticleTypesDRIPPING_DRIPSTONE_LAVA1Lnet/minecraft/core/particles/SimpleParticleType; lr spDRIPPING_DRIPSTONE_WATER u vwcanDripThroughy(Lnet/minecraft/world/level/BlockGetter;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/state/BlockState;)Z y zpisAir | }p isSolidRender In € �‚getCollisionShaper(Lnet/minecraft/world/level/BlockGetter;Lnet/minecraft/core/BlockPos;)Lnet/minecraft/world/phys/shapes/VoxelShape; „ …†.REQUIRED_SPACE_TO_DRIP_THROUGH_NON_SOLID_BLOCK,Lnet/minecraft/world/phys/shapes/VoxelShape; ˆ‰Š ‹Œ)net/minecraft/world/phys/shapes/BooleanOpAND+Lnet/minecraft/world/phys/shapes/BooleanOp; Ž�� ‘’&net/minecraft/world/phys/shapes/ShapesjoinIsNotEmpty†(Lnet/minecraft/world/phys/shapes/VoxelShape;Lnet/minecraft/world/phys/shapes/VoxelShape;Lnet/minecraft/world/phys/shapes/BooleanOp;)Z Æ” ;•()Lnet/minecraft/core/BlockPos; )Ì W˜ ™[WATER_EVAPORATES›java/lang/Boolean š� žp booleanValue )  B¡N(Lnet/minecraft/core/BlockPos;)Lnet/minecraft/world/level/material/FluidState; I£ ¤¥getType,()Lnet/minecraft/world/level/material/Fluid; u§ ¨|(Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/material/Fluid;Lnet/minecraft/world/level/block/state/BlockState;)Vª5net/minecraft/world/level/block/AbstractCauldronBlock ©¬ ­QcanReceiveStalactiteDrip ¯ °±spawnDripParticleº(Lnet/minecraft/world/level/Level;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/world/level/material/Fluid;Lnet/minecraft/core/BlockPos;)V<£× ´ µQcanFillCauldron · ¸†SHAPE_TIP_DOWN º»¼ ½¾!net/minecraft/core/Direction$AxisY#Lnet/minecraft/core/Direction$Axis; ÀÁ ÃÄ*net/minecraft/world/phys/shapes/VoxelShapemin&(Lnet/minecraft/core/Direction$Axis;)D@@0 šÊ ËÌcolumn1(DDD)Lnet/minecraft/world/phys/shapes/VoxelShape;)MAX_SEARCH_LENGTH_WHEN_CHECKING_DRIP_TYPEI ConstantValue !DRIP_PROBABILITY_PER_ANIMATE_TICKF8DRIP_PROBABILITY_PER_ANIMATE_TICK_IF_UNDER_LIQUID_SOURCE5MAX_SEARCH_LENGTH_BETWEEN_STALACTITE_TIP_AND_CAULDRON*WATER_TRANSFER_PROBABILITY_PER_RANDOM_TICK)LAVA_TRANSFER_PROBABILITY_PER_RANDOM_TICKSTALAGMITE_FALL_DISTANCE_OFFSET@ STALAGMITE_FALL_DAMAGE_MODIFIERCodeLineNumberTableLocalVariableTablethis7Lnet/minecraft/world/level/block/PointedDripstoneBlock; blockToGrowOn propertiesALnet/minecraft/world/level/block/state/BlockBehaviour$Properties;MethodParametersgetStalactiteLandingSoundRuntimeInvisibleTypeAnnotations2Lnet/minecraft/world/level/block/LevelEvent$Value;level!Lnet/minecraft/world/level/Level;stateentity#Lnet/minecraft/world/entity/Entity; fallDistance StackMapTable animateTick”(Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/world/level/Level;Lnet/minecraft/core/BlockPos;Lnet/minecraft/util/RandomSource;)Vrandom!Lnet/minecraft/util/RandomSource; randomValue(Lnet/minecraft/server/level/ServerLevel;transferProbabilitynewState fluidInfoLjava/util/Optional;stalactiteTipPos cauldronPosdelay cauldronStateLocalVariableTypeTableWLjava/util/Optional;RuntimeInvisibleAnnotations1Lcom/google/common/annotations/VisibleForTesting;s(Lnet/minecraft/world/level/Level;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/state/BlockState;)VstalactiteTipState fluidAboveposAboveoffsetLnet/minecraft/world/phys/Vec3; PIXEL_SIZEy dripParticle.Lnet/minecraft/core/particles/ParticleOptions;dripStoneStatemaxSearchLength tipDirection pathPredicate Ljava/util/function/BiPredicate;qLjava/util/function/BiPredicate; Signature¦(Lnet/minecraft/world/level/Level;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/state/BlockState;I)Ljava/util/Optional;cauldronPredicateLjava/util/function/Predicate;RLjava/util/function/Predicate;RuntimeVisibleTypeAnnotations#Lorg/jspecify/annotations/Nullable;findStalactiteTipAboveCauldron](Lnet/minecraft/world/level/Level;Lnet/minecraft/core/BlockPos;)Lnet/minecraft/core/BlockPos;getCauldronFillFluidTypeq(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/core/BlockPos;)Lnet/minecraft/world/level/material/Fluid; stalactitePosstalactiteStateÉ(Lnet/minecraft/world/level/Level;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/state/BlockState;)Ljava/util/Optional;'Lnet/minecraft/world/level/LevelReader; fluidState/Lnet/minecraft/world/level/material/FluidState;"/net/minecraft/core/particles/SimpleParticleTypeblocksStalagmiteScany(Lnet/minecraft/world/level/LevelReader;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/state/BlockState;)Z'Lnet/minecraft/world/level/BlockGetter;collisionShape lambda$getFluidAboveStalactite$0�(Lnet/minecraft/world/level/Level;Lnet/minecraft/core/BlockPos;)Lnet/minecraft/world/level/block/PointedDripstoneBlock$FluidInfo;rootPosabovePos aboveState!lambda$getCauldronFillFluidType$0m(Lnet/minecraft/world/level/block/PointedDripstoneBlock$FluidInfo;)Lnet/minecraft/world/level/material/Fluid; fluidSourceALnet/minecraft/world/level/block/PointedDripstoneBlock$FluidInfo;'lambda$findStalactiteTipAboveCauldron$0s(Lnet/minecraft/world/level/Level;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/state/BlockState;)Z/lambda$findFillableCauldronBelowStalactiteTip$1/lambda$findFillableCauldronBelowStalactiteTip$0_(Lnet/minecraft/world/level/material/Fluid;Lnet/minecraft/world/level/block/state/BlockState;)Zlambda$findRootBlock$1g(Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/world/level/block/state/BlockState;)Zlambda$findRootBlock$0¢(Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/core/Direction;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/state/BlockState;)ZpathPoslambda$spawnDripParticle$0´(Lnet/minecraft/world/level/Level;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/world/level/block/PointedDripstoneBlock$FluidInfo;)Vlambda$animateTick$1lambda$animateTick$0E(FLnet/minecraft/world/level/block/PointedDripstoneBlock$FluidInfo;)Z()V SourceFilePointedDripstoneBlock.java NestMembersBootstrapMethods•G H =>JD(Lnet/minecraft/world/level/block/PointedDripstoneBlock$FluidInfo;)ZL(Ljava/lang/Object;)VN O <;QD(Lnet/minecraft/world/level/block/PointedDripstoneBlock$FluidInfo;)VS T :;V'(Ljava/lang/Object;Ljava/lang/Object;)ZX Y 78¨\ ] 56A` a 34c d 21f g 01i ?l m ,--³Qr s '(u`(Lnet/minecraft/core/BlockPos;)Lnet/minecraft/world/level/block/PointedDripstoneBlock$FluidInfo;w xyz {|"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?net/minecraft/world/level/block/state/BlockBehaviour$Properties�4net/minecraft/world/level/block/state/BlockBehaviour Properties FluidInfo…#net/minecraft/core/Holder$Reference‡net/minecraft/core/Holder ReferenceContext‹*net/minecraft/core/Direction$AxisDirection AxisDirectionAxis�0net/minecraft/world/level/block/LevelEvent$ValueValue’%java/lang/invoke/MethodHandles$Lookup”java/lang/invoke/MethodHandlesLookup!  ÍÎÏÐÑÒϲÓÒÏHÔÎÏÐÕÒÏgÖÒÏh×ÒÏØÙÎÏÚëè…†ÛI*+,·±Ü 67Ý Þßà‹áâã àáäÊÛ.¬Ü;Ý Þßåæ<=Û¯=,² ¶²¦',²¶² ¦&c +¶(¶.¶4W§*+,-·:±ÜHI1K<MÝ>=Þß=çè=é‹=¡¢=êë=ìèí1 ãçé¡êìîïÛ¿6+¸>š±¹B8H•ž±,-+¸IºM¶Q,-+ºW¶[±Ü& QSVWX[']2^5_Ý>6Þß6é‹6çè6¡¢6ðñ%òÒíüãéç¡ðefÛq+,-¹B¸_*+,-·c±Üc deÝ4Þßé‹çó¡¢ðñãéç¡ð abÛŸ (%g•ž %h•ž±*+,¸iš±+,*¸I:¶m™±¶qÀu´w:²{¦ g8§²�¦ h8§±%•›±*+, ¸„:DZ¶qÀu´ˆ²Œ¶’™d²{¦\²–¶™:+¶qÀu´Ÿ¶£W¶qÀu´ˆ+¶qÀu´Ÿ¸©W+²­¶qÀu´Ÿ¸³¶¹+à¶½±+¸Á:DZ+à¶½¶Å¶Åd6 2 `6 +¶Ë: + ¶Ï ¶Ó±ÜŠ"ijmnq!r)s*u7x?yFzN{U}V]€^ƒi„n…oˆ‹‰“Š¥‹ÂŒÙ�ãŽä‘î’ó“ô—þš ›œ�'žݘCôÒRôÒ“Qõ‹(é‹(çó(¡¢(òÒ!ö÷7ñyzVÒôÒi¿ø¢î:ù¢ ìÎ úÎ û‹ ü !öýí%  üRü)üüÆûtüÆãéç¡òþÿ °ÛT*+,¸I*+,º×¶[±Ü ¡¢Ý çèø¢‹ã çø °±ÛV,+¶Ø:Ü9+¶Þ‡ác´ãc9+¶Å‡²écÜg9 +¶ì‡ác´ïc9 *-¸ò:*  ¶ö±Ü"¥¦ §¨,©=«F¬U­Ýp VçèVø¢V‹VzV¢O Jè9çè,*è =ñè F ãçø 45Û£-,² ¶À:,ºú:*+¶ý¶,º¸°Ü² ³´Ý>-çè-¡¢- ‹- Î !  ü  ãç¡   ÃÄÛ�',º N*º:*+²¶- ¸¶Àưܸ¹ºÝ4'çè'ø¢'yz  ü  ã çøy Ûv"*ºM*+²¶,º ¸¶ÀưÜ ¾¿Ý "çè"ù¢ ü  ã çù Ûh$*+*+¶Ë¸Iº¶!º%¶Q²&¶À)°ÜÃÄÅÆ#ÃÝ$çó$¢ã ç KLÛl,¸+š¸.°*+, ¸2*º6¶!°ÜÊË ÎÝ ç袋í ã ç µQÛJ*²�¥ *²{¦§¬ÜÜÝ zí@ãFGÛ‹/+,¶9¹=¶@N*+,·D™-²{¶H™-¶K™§¬Ü áâÝ*/Þß/ç/¡¢  í ü-I@ã ç¡ ôõÛ�-+²&¶N™*¶R²V,¶\Àa°+²c¶h™ ²k§²q°Üæ çéÝ -çè-z-¢íB!ã ç#$Ûb+,-¸tš§¬ÜîÝ*Þßç¡¢é‹í @ã ç¡é vwÛ¯8,¶x™¬,¶{™¬,¶@¶~š¬,*+¶N²ƒ-²‡¸�š§¬Ü"õö øùûüþ%ÿÝ*8ç%8¡¢8é‹%&†í   üÀ@ã ç¡é '(ÛÎG+¶“M*,¶–N-²Œ¶’™*¶R²—,¶\Àš¶œš ²{:§ *,¶Ÿ¶¢:»uY,-·¦°ÜÏÐ Ò)Ó1Õ;×Ý>.yzGçèG)¢B*¢ <+‹; yzíý1Æü ) ,-Û/*´w°ÜÄÝ ./ 01ÛE*+,¸t¬Ü¾Ý çè¡¢é‹ 21ÛE*+,¸t¬Ü¹Ý çè¡¢é‹ 34Û]+¶ÏÁ©™+¶ÏÀ©*¶«™§¬Ü¸Ýyzé‹í@ 56ÛP+*¶Ï¶’š§¬Ü´Ý ‹é‹í@ 78Ûo-*¶Ï¶’™-² ¶+¦§¬Ü³Ý* ‹ 9¢é‹í@ :;ÛW*+,-´w-´Ÿ¸®±Ü¡Ý*çèø¢‹/ <;ÛW*+,-´w-´Ÿ¸®±Ü^Ý*çè¡¢é‹/ =>ÛX"²–› +´w¸³™§¬Ü]ÝòÒ/í@?@Û6²¶²¹¶¿³éÅǸɳƒ±Ü 1 3ABCuDz vEFIvKMPvKRPvUWZvE[^vE_^vUbZvUeZvEh^vjknvEopvjqt}B~€‚ u ƒ„†ˆ ´®‰ŠŒ@º�@Ž �& ‘“•