Misc code fixes in enforcer code
This commit is contained in:
parent
a9851e08b3
commit
62c05b3c3f
@ -56,6 +56,7 @@ class Enforcer(type: EntityType<Enforcer>, level: Level) : Monster(type,level) {
|
|||||||
.add(Attributes.KNOCKBACK_RESISTANCE, 1.0)
|
.add(Attributes.KNOCKBACK_RESISTANCE, 1.0)
|
||||||
.add(Attributes.FOLLOW_RANGE, 32.0)
|
.add(Attributes.FOLLOW_RANGE, 32.0)
|
||||||
}
|
}
|
||||||
|
|
||||||
private val IS_CHARGING: EntityDataAccessor<Boolean> =
|
private val IS_CHARGING: EntityDataAccessor<Boolean> =
|
||||||
SynchedEntityData.defineId(Enforcer::class.java, EntityDataSerializers.BOOLEAN)
|
SynchedEntityData.defineId(Enforcer::class.java, EntityDataSerializers.BOOLEAN)
|
||||||
}
|
}
|
||||||
@ -65,14 +66,12 @@ class Enforcer(type: EntityType<Enforcer>, level: Level) : Monster(type,level) {
|
|||||||
builder.define(IS_CHARGING, false)
|
builder.define(IS_CHARGING, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun setCharging(value: Boolean) {
|
var isCharging: Boolean
|
||||||
|
get() = entityData.get(IS_CHARGING)
|
||||||
|
set(value) {
|
||||||
entityData.set(IS_CHARGING, value)
|
entityData.set(IS_CHARGING, value)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun isCharging(): Boolean {
|
|
||||||
return entityData.get(IS_CHARGING)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun registerGoals() {
|
override fun registerGoals() {
|
||||||
goalSelector.addGoal(7, LookAtPlayerGoal(this, Player::class.java, 8f))
|
goalSelector.addGoal(7, LookAtPlayerGoal(this, Player::class.java, 8f))
|
||||||
goalSelector.addGoal(3, NearestAttackableTargetGoal(this, LivingEntity::class.java, 10, true, true) { entity ->
|
goalSelector.addGoal(3, NearestAttackableTargetGoal(this, LivingEntity::class.java, 10, true, true) { entity ->
|
||||||
@ -200,7 +199,7 @@ class Enforcer(type: EntityType<Enforcer>, level: Level) : Monster(type,level) {
|
|||||||
private var target: LivingEntity? = null
|
private var target: LivingEntity? = null
|
||||||
|
|
||||||
init {
|
init {
|
||||||
setFlags(EnumSet.of(Goal.Flag.MOVE))
|
setFlags(EnumSet.of(Flag.MOVE))
|
||||||
}
|
}
|
||||||
|
|
||||||
private var chargeTime = 0
|
private var chargeTime = 0
|
||||||
@ -208,8 +207,6 @@ class Enforcer(type: EntityType<Enforcer>, level: Level) : Monster(type,level) {
|
|||||||
private val maxChargeTime = 40
|
private val maxChargeTime = 40
|
||||||
private var chargeDir: Vec3? = null
|
private var chargeDir: Vec3? = null
|
||||||
private var cooldown = 0
|
private var cooldown = 0
|
||||||
private val minCooldown = 35
|
|
||||||
private val maxCooldown = 60
|
|
||||||
private var isCharging = false
|
private var isCharging = false
|
||||||
|
|
||||||
override fun canUse(): Boolean {
|
override fun canUse(): Boolean {
|
||||||
@ -227,7 +224,7 @@ class Enforcer(type: EntityType<Enforcer>, level: Level) : Monster(type,level) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun start() {
|
override fun start() {
|
||||||
mob.setCharging(true)
|
mob.isCharging = true
|
||||||
mob.playSound(MSoundEvents.ENFORCER_ALERT, 1.0f, 1.0f)
|
mob.playSound(MSoundEvents.ENFORCER_ALERT, 1.0f, 1.0f)
|
||||||
chargeTime = 0
|
chargeTime = 0
|
||||||
mob.navigation.stop()
|
mob.navigation.stop()
|
||||||
@ -315,13 +312,18 @@ class Enforcer(type: EntityType<Enforcer>, level: Level) : Monster(type,level) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun stop() {
|
override fun stop() {
|
||||||
mob.setCharging(false)
|
mob.isCharging = false
|
||||||
mob.setDeltaMovement(Vec3.ZERO)
|
mob.deltaMovement = Vec3.ZERO
|
||||||
chargeTime = 0
|
chargeTime = 0
|
||||||
chargeDir = null
|
chargeDir = null
|
||||||
isCharging = false
|
isCharging = false
|
||||||
mob.chargeState.stop()
|
mob.chargeState.stop()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
private const val minCooldown = 35
|
||||||
|
private const val maxCooldown = 60
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class StayNearGoal(private val mob: Enforcer) : Goal() {
|
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
|
private var movePos: Vec3? = null
|
||||||
|
|
||||||
override fun canUse(): Boolean {
|
override fun canUse(): Boolean {
|
||||||
return mob.target != null && !mob.isCharging()
|
return mob.target != null && !mob.isCharging
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun canContinueToUse(): Boolean {
|
override fun canContinueToUse(): Boolean {
|
||||||
@ -373,11 +375,11 @@ class Enforcer(type: EntityType<Enforcer>, level: Level) : Monster(type,level) {
|
|||||||
private var fireTick = 0
|
private var fireTick = 0
|
||||||
|
|
||||||
init {
|
init {
|
||||||
setFlags(EnumSet.of(Goal.Flag.LOOK))
|
setFlags(EnumSet.of(Flag.LOOK))
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun canUse(): Boolean {
|
override fun canUse(): Boolean {
|
||||||
return mob.target != null && !mob.isCharging()
|
return mob.target != null && !mob.isCharging
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun canContinueToUse(): Boolean {
|
override fun canContinueToUse(): Boolean {
|
||||||
|
Loading…
Reference in New Issue
Block a user