File tree Expand file tree Collapse file tree 3 files changed +15
-2
lines changed
java/ru/octol1ttle/flightassistant/mixin
kotlin/ru/octol1ttle/flightassistant Expand file tree Collapse file tree 3 files changed +15
-2
lines changed Original file line number Diff line number Diff line change @@ -9,4 +9,7 @@ public interface EntityInvoker {
99 /*@org.spongepowered.asm.mixin.gen.Invoker("isInvulnerableToBase")
1010 boolean invokeIsInvulnerableToBase(net.minecraft.world.damagesource.DamageSource damageSource);
1111*/ //?}
12+
13+ @ org .spongepowered .asm .mixin .gen .Invoker ("isStateClimbable" )
14+ boolean invokeIsStateClimbable (net .minecraft .world .level .block .state .BlockState state );
1215}
Original file line number Diff line number Diff line change 1+ package ru.octol1ttle.flightassistant.api.util.extensions
2+
3+ import net.minecraft.world.entity.Entity
4+ import net.minecraft.world.level.block.state.BlockState
5+ import ru.octol1ttle.flightassistant.mixin.EntityInvoker
6+
7+ fun BlockState.notClimbable (entity : Entity ): Boolean {
8+ return isAir || ! (entity as EntityInvoker ).invokeIsStateClimbable(this )
9+ }
Original file line number Diff line number Diff line change @@ -15,6 +15,7 @@ import ru.octol1ttle.flightassistant.FlightAssistant
1515import ru.octol1ttle.flightassistant.api.computer.Computer
1616import ru.octol1ttle.flightassistant.api.computer.ComputerBus
1717import ru.octol1ttle.flightassistant.api.util.extensions.formatRoot
18+ import ru.octol1ttle.flightassistant.api.util.extensions.notClimbable
1819import ru.octol1ttle.flightassistant.config.FAConfig
1920import ru.octol1ttle.flightassistant.config.options.DisplayOptions
2021import ru.octol1ttle.flightassistant.impl.computer.data.AirDataComputer
@@ -51,9 +52,9 @@ class ElytraStatusComputer(computers: ComputerBus) : Computer(computers) {
5152 /* net.minecraft.world.entity.EquipmentSlot.VALUES.any { data.player.getItemBySlot(it) == activeElytra && net.minecraft.world.entity.LivingEntity.canGlideUsing(data.player.getItemBySlot(it), it) }
5253*/ // ?} else
5354 data.player.armorSlots.contains(activeElytra) && net.minecraft.world.item.ElytraItem .isFlyEnabled(activeElytra!! )
54- val isInsideBlock : Boolean = ! data.player.blockStateOn.isAir
55+ val noneClimbable : Boolean = data.player.blockStateOn.notClimbable(data.player) && data.player.feetBlockState.notClimbable(data.player)
5556 val lookingToClutch: Boolean = data.pitch <= - 70.0f
56- if (FAConfig .safety.elytraAutoOpen && ! flying && ! data.fallDistanceSafe && hasUsableElytra && ! isInsideBlock && ! lookingToClutch) {
57+ if (FAConfig .safety.elytraAutoOpen && ! flying && ! data.fallDistanceSafe && hasUsableElytra && noneClimbable && ! lookingToClutch) {
5758 sendSwitchState(data)
5859 }
5960 }
You can’t perform that action at this time.
0 commit comments