Interface Leashable

All Known Implementing Classes:
AbstractBoat, AbstractChestBoat, AbstractChestedHorse, AbstractCow, AbstractFish, AbstractGolem, AbstractHorse, AbstractIllager, AbstractNautilus, AbstractPiglin, AbstractSchoolingFish, AbstractSkeleton, AbstractVillager, AgeableMob, AgeableWaterCreature, Allay, AmbientCreature, Animal, Armadillo, Axolotl, Bat, Bee, Blaze, Boat, Bogged, Breeze, Camel, CamelHusk, Cat, CaveSpider, ChestBoat, ChestRaft, Chicken, Cod, CopperGolem, Cow, Creaking, Creeper, Dolphin, Donkey, Drowned, ElderGuardian, EnderDragon, EnderMan, Endermite, Evoker, Fox, Frog, Ghast, Giant, GlowSquid, Goat, Guardian, HappyGhast, Hoglin, Horse, Husk, Illusioner, IronGolem, Llama, MagmaCube, Mob, Monster, Mule, MushroomCow, Nautilus, Ocelot, Panda, Parched, Parrot, PathfinderMob, PatrollingMonster, Phantom, Pig, Piglin, PiglinBrute, Pillager, PolarBear, Pufferfish, Rabbit, Raft, Raider, Ravager, Salmon, Sheep, ShoulderRidingEntity, Shulker, Silverfish, Skeleton, SkeletonHorse, Slime, Sniffer, SnowGolem, SpellcasterIllager, Spider, Squid, Stray, Strider, Tadpole, TamableAnimal, TraderLlama, TropicalFish, Turtle, Vex, Villager, Vindicator, WanderingTrader, Warden, WaterAnimal, Witch, WitherBoss, WitherSkeleton, Wolf, Zoglin, Zombie, ZombieHorse, ZombieNautilus, ZombieVillager, ZombifiedPiglin

public interface Leashable
  • Field Details

    • LEASH_TAG

      static final String LEASH_TAG
      See Also:
    • LEASH_TOO_FAR_DIST

      static final double LEASH_TOO_FAR_DIST
      See Also:
    • LEASH_ELASTIC_DIST

      static final double LEASH_ELASTIC_DIST
      See Also:
    • MAXIMUM_ALLOWED_LEASHED_DIST

      static final double MAXIMUM_ALLOWED_LEASHED_DIST
      See Also:
    • AXIS_SPECIFIC_ELASTICITY

      static final Vec3 AXIS_SPECIFIC_ELASTICITY
    • SPRING_DAMPENING

      static final float SPRING_DAMPENING
      See Also:
    • TORSIONAL_ELASTICITY

      static final double TORSIONAL_ELASTICITY
      See Also:
    • STIFFNESS

      static final double STIFFNESS
      See Also:
    • ENTITY_ATTACHMENT_POINT

      static final List<Vec3> ENTITY_ATTACHMENT_POINT
    • LEASHER_ATTACHMENT_POINT

      static final List<Vec3> LEASHER_ATTACHMENT_POINT
    • SHARED_QUAD_ATTACHMENT_POINTS

      static final List<Vec3> SHARED_QUAD_ATTACHMENT_POINTS
  • Method Details

    • getLeashData

      @Nullable Leashable.LeashData getLeashData()
    • setLeashData

      void setLeashData(@Nullable Leashable.LeashData leashData)
    • isLeashed

      default boolean isLeashed()
    • mayBeLeashed

      default boolean mayBeLeashed()
    • canHaveALeashAttachedTo

      default boolean canHaveALeashAttachedTo(Entity entity)
    • leashDistanceTo

      default double leashDistanceTo(Entity entity)
    • canBeLeashed

      default boolean canBeLeashed()
    • setDelayedLeashHolderId

      default void setDelayedLeashHolderId(int entityId)
    • readLeashData

      default void readLeashData(ValueInput input)
    • writeLeashData

      default void writeLeashData(ValueOutput output, @Nullable Leashable.LeashData leashData)
    • restoreLeashFromSave

      private static <E extends Entity & Leashable> void restoreLeashFromSave(E entity, Leashable.LeashData leashData)
    • dropLeash

      default void dropLeash()
    • removeLeash

      default void removeLeash()
    • onLeashRemoved

      default void onLeashRemoved()
    • dropLeash

      private static <E extends Entity & Leashable> void dropLeash(E entity, boolean sendPacket, boolean dropLead)
    • tickLeash

      static <E extends Entity & Leashable> void tickLeash(ServerLevel level, E entity)
    • onElasticLeashPull

      default void onElasticLeashPull()
    • leashSnapDistance

      default double leashSnapDistance()
    • leashElasticDistance

      default double leashElasticDistance()
    • angularFriction

      static <E extends Entity & Leashable> float angularFriction(E entity)
    • whenLeashedTo

      default void whenLeashedTo(Entity leashHolder)
    • leashTooFarBehaviour

      default void leashTooFarBehaviour()
    • closeRangeLeashBehaviour

      default void closeRangeLeashBehaviour(Entity leashHolder)
    • checkElasticInteractions

      default boolean checkElasticInteractions(Entity leashHolder, Leashable.LeashData leashData)
    • getHolderMovement

      private static Vec3 getHolderMovement(Entity leashHolder)
    • computeElasticInteraction

      private static <E extends Entity & Leashable> List<Leashable.Wrench> computeElasticInteraction(E entity, Entity leashHolder, List<Vec3> entityAttachmentPoints, List<Vec3> leasherAttachmentPoints)
    • computeDampenedSpringInteraction

      private static Optional<Leashable.Wrench> computeDampenedSpringInteraction(Vec3 pivotPoint, Vec3 objectPosition, double springSlack, Vec3 objectMotion, Vec3 leverArm)
    • supportQuadLeash

      default boolean supportQuadLeash()
    • getQuadLeashOffsets

      default Vec3[] getQuadLeashOffsets()
    • createQuadLeashOffsets

      static Vec3[] createQuadLeashOffsets(Entity entity, double frontOffset, double frontBack, double leftRight, double height)
    • getLeashOffset

      default Vec3 getLeashOffset(float partialTicks)
    • getLeashOffset

      default Vec3 getLeashOffset()
    • setLeashedTo

      default void setLeashedTo(Entity holder, boolean synch)
    • setLeashedTo

      private static <E extends Entity & Leashable> void setLeashedTo(E entity, Entity holder, boolean synch)
    • getLeashHolder

      default @Nullable Entity getLeashHolder()
    • getLeashHolder

      private static <E extends Entity & Leashable> @Nullable Entity getLeashHolder(E entity)
    • leashableLeashedTo

      static List<Leashable> leashableLeashedTo(Entity entity)
    • leashableInArea

      static List<Leashable> leashableInArea(Entity entity, Predicate<Leashable> test)
    • leashableInArea

      static List<Leashable> leashableInArea(Level level, Vec3 pos, Predicate<Leashable> test)