Misc code fixes in enforcer code

This commit is contained in:
DBotThePony 2025-03-17 23:39:27 +07:00
parent a9851e08b3
commit 62c05b3c3f
Signed by: DBot
GPG Key ID: DCC23B5715498507

View File

@ -56,6 +56,7 @@ class Enforcer(type: EntityType<Enforcer>, level: Level) : Monster(type,level) {
.add(Attributes.KNOCKBACK_RESISTANCE, 1.0)
.add(Attributes.FOLLOW_RANGE, 32.0)
}
private val IS_CHARGING: EntityDataAccessor<Boolean> =
SynchedEntityData.defineId(Enforcer::class.java, EntityDataSerializers.BOOLEAN)
}
@ -65,13 +66,11 @@ class Enforcer(type: EntityType<Enforcer>, level: Level) : Monster(type,level) {
builder.define(IS_CHARGING, false)
}
fun setCharging(value: Boolean) {
entityData.set(IS_CHARGING, value)
}
fun isCharging(): Boolean {
return entityData.get(IS_CHARGING)
}
var isCharging: Boolean
get() = entityData.get(IS_CHARGING)
set(value) {
entityData.set(IS_CHARGING, value)
}
override fun registerGoals() {
goalSelector.addGoal(7, LookAtPlayerGoal(this, Player::class.java, 8f))
@ -200,7 +199,7 @@ class Enforcer(type: EntityType<Enforcer>, level: Level) : Monster(type,level) {
private var target: LivingEntity? = null
init {
setFlags(EnumSet.of(Goal.Flag.MOVE))
setFlags(EnumSet.of(Flag.MOVE))
}
private var chargeTime = 0
@ -208,8 +207,6 @@ class Enforcer(type: EntityType<Enforcer>, level: Level) : Monster(type,level) {
private val maxChargeTime = 40
private var chargeDir: Vec3? = null
private var cooldown = 0
private val minCooldown = 35
private val maxCooldown = 60
private var isCharging = false
override fun canUse(): Boolean {
@ -227,7 +224,7 @@ class Enforcer(type: EntityType<Enforcer>, level: Level) : Monster(type,level) {
}
override fun start() {
mob.setCharging(true)
mob.isCharging = true
mob.playSound(MSoundEvents.ENFORCER_ALERT, 1.0f, 1.0f)
chargeTime = 0
mob.navigation.stop()
@ -315,13 +312,18 @@ class Enforcer(type: EntityType<Enforcer>, level: Level) : Monster(type,level) {
}
override fun stop() {
mob.setCharging(false)
mob.setDeltaMovement(Vec3.ZERO)
mob.isCharging = false
mob.deltaMovement = Vec3.ZERO
chargeTime = 0
chargeDir = null
isCharging = false
mob.chargeState.stop()
}
companion object {
private const val minCooldown = 35
private const val maxCooldown = 60
}
}
class StayNearGoal(private val mob: Enforcer) : Goal() {
@ -330,7 +332,7 @@ class Enforcer(type: EntityType<Enforcer>, level: Level) : Monster(type,level) {
private var movePos: Vec3? = null
override fun canUse(): Boolean {
return mob.target != null && !mob.isCharging()
return mob.target != null && !mob.isCharging
}
override fun canContinueToUse(): Boolean {
@ -373,11 +375,11 @@ class Enforcer(type: EntityType<Enforcer>, level: Level) : Monster(type,level) {
private var fireTick = 0
init {
setFlags(EnumSet.of(Goal.Flag.LOOK))
setFlags(EnumSet.of(Flag.LOOK))
}
override fun canUse(): Boolean {
return mob.target != null && !mob.isCharging()
return mob.target != null && !mob.isCharging
}
override fun canContinueToUse(): Boolean {