优化部分代码,修复按键bug
This commit is contained in:
parent
eb8c23c28c
commit
05cacbe570
5 changed files with 23 additions and 29 deletions
|
@ -201,7 +201,7 @@ public class ClickHandler {
|
|||
if (key == Minecraft.getInstance().options.keyJump.getKey().getValue()) {
|
||||
handleDoubleJump(player);
|
||||
}
|
||||
if (key == ModKeyMappings.CONFIG.getKey().getValue()) {
|
||||
if (key == ModKeyMappings.CONFIG.getKey().getValue() && ModKeyMappings.CONFIG.getKeyModifier().isActive(KeyConflictContext.IN_GAME)) {
|
||||
handleConfigScreen(player);
|
||||
}
|
||||
if (key == ModKeyMappings.RELOAD.getKey().getValue()) {
|
||||
|
|
|
@ -90,11 +90,8 @@ public class ProjectileEntity extends Entity implements IEntityAdditionalSpawnDa
|
|||
private boolean zoom = false;
|
||||
private float bypassArmorRate = 0.0f;
|
||||
private float undeadMultiple = 1.0f;
|
||||
private boolean jhpBullet = false;
|
||||
private int jhpLevel = 0;
|
||||
private boolean heBullet = false;
|
||||
private int heLevel = 0;
|
||||
private boolean fireBullet = false;
|
||||
private int fireLevel = 0;
|
||||
private boolean dragonBreath = false;
|
||||
private float knockback = 0.05f;
|
||||
|
@ -289,11 +286,11 @@ public class ProjectileEntity extends Entity implements IEntityAdditionalSpawnDa
|
|||
|
||||
this.setDeltaMovement(vec.x, vec.y - 0.02, vec.z);
|
||||
|
||||
if (this.tickCount > (fireBullet ? 10 : 40)) {
|
||||
if (this.tickCount > (fireLevel > 0 ? 10 : 40)) {
|
||||
this.discard();
|
||||
}
|
||||
|
||||
if (fireBullet && dragonBreath && this.level() instanceof ServerLevel serverLevel) {
|
||||
if (fireLevel > 0 && dragonBreath && this.level() instanceof ServerLevel serverLevel) {
|
||||
double randomPos = this.tickCount * 0.08 * (Math.random() - 0.5);
|
||||
ParticleTool.sendParticle(serverLevel, ParticleTypes.FLAME,
|
||||
(this.xo + this.getX()) / 2 + randomPos, (this.yo + this.getY()) / 2 + randomPos, (this.zo + this.getZ()) / 2 + randomPos,
|
||||
|
@ -356,10 +353,10 @@ public class ProjectileEntity extends Entity implements IEntityAdditionalSpawnDa
|
|||
}
|
||||
|
||||
this.onHitBlock(hitVec);
|
||||
if (heBullet) {
|
||||
if (heLevel > 0) {
|
||||
explosionBulletBlock(this, this.damage, heLevel, monsterMultiple + 1, hitVec);
|
||||
}
|
||||
if (fireBullet && this.level() instanceof ServerLevel serverLevel) {
|
||||
if (fireLevel > 0 && this.level() instanceof ServerLevel serverLevel) {
|
||||
ParticleTool.sendParticle(serverLevel, ParticleTypes.LAVA, hitVec.x, hitVec.y, hitVec.z,
|
||||
3, 0, 0, 0, 0.5, true);
|
||||
}
|
||||
|
@ -508,15 +505,15 @@ public class ProjectileEntity extends Entity implements IEntityAdditionalSpawnDa
|
|||
this.damage *= this.undeadMultiple;
|
||||
}
|
||||
|
||||
if (entity instanceof LivingEntity living && jhpBullet) {
|
||||
if (entity instanceof LivingEntity living && jhpLevel > 0) {
|
||||
this.damage *= (1.0f + 0.12f * jhpLevel) * ((float) (10 / (living.getAttributeValue(Attributes.ARMOR) + 10)) + 0.25f);
|
||||
}
|
||||
|
||||
if (heBullet) {
|
||||
if (heLevel > 0) {
|
||||
explosionBulletEntity(this, entity, this.damage, heLevel, mMultiple);
|
||||
}
|
||||
|
||||
if (fireBullet) {
|
||||
if (fireLevel > 0) {
|
||||
if (!entity.level().isClientSide() && entity instanceof LivingEntity living) {
|
||||
living.addEffect(new MobEffectInstance(ModMobEffects.BURN.get(), 60 + fireLevel * 20, fireLevel, false, false), this.shooter);
|
||||
}
|
||||
|
@ -839,20 +836,17 @@ public class ProjectileEntity extends Entity implements IEntityAdditionalSpawnDa
|
|||
return this;
|
||||
}
|
||||
|
||||
public ProjectileEntity jhpBullet(boolean jhpBullet, int jhpLevel) {
|
||||
this.jhpBullet = true;
|
||||
public ProjectileEntity jhpBullet(int jhpLevel) {
|
||||
this.jhpLevel = jhpLevel;
|
||||
return this;
|
||||
}
|
||||
|
||||
public ProjectileEntity heBullet(boolean heBullet, int heLevel) {
|
||||
this.heBullet = true;
|
||||
public ProjectileEntity heBullet(int heLevel) {
|
||||
this.heLevel = heLevel;
|
||||
return this;
|
||||
}
|
||||
|
||||
public ProjectileEntity fireBullet(boolean fireBullet, int fireLevel, boolean dragonBreath) {
|
||||
this.fireBullet = true;
|
||||
public ProjectileEntity fireBullet(int fireLevel, boolean dragonBreath) {
|
||||
this.fireLevel = fireLevel;
|
||||
this.dragonBreath = dragonBreath;
|
||||
return this;
|
||||
|
|
|
@ -568,10 +568,10 @@ public class Ah6Entity extends ContainerMobileEntity implements GeoEntity, IHeli
|
|||
.shooter(player)
|
||||
.damage(VehicleConfig.AH_6_CANNON_DAMAGE.get())
|
||||
.headShot(2f)
|
||||
.zoom(false);
|
||||
.zoom(false)
|
||||
.heBullet(2)
|
||||
.bypassArmorRate(0.2f);
|
||||
|
||||
projectileRight.heBullet(true, 2);
|
||||
projectileRight.bypassArmorRate(0.2f);
|
||||
projectileRight.setPos(worldPositionRight.x, worldPositionRight.y, worldPositionRight.z);
|
||||
projectileRight.shoot(player, this.getLookAngle().x, this.getLookAngle().y + 0.018, this.getLookAngle().z, 20,
|
||||
(float) 0.2);
|
||||
|
@ -587,10 +587,10 @@ public class Ah6Entity extends ContainerMobileEntity implements GeoEntity, IHeli
|
|||
.shooter(player)
|
||||
.damage(VehicleConfig.AH_6_CANNON_DAMAGE.get())
|
||||
.headShot(2f)
|
||||
.zoom(false);
|
||||
.zoom(false)
|
||||
.heBullet(2)
|
||||
.bypassArmorRate(0.2f);
|
||||
|
||||
projectileLeft.heBullet(true, 1);
|
||||
projectileLeft.bypassArmorRate(0.2f);
|
||||
projectileLeft.setPos(worldPositionLeft.x, worldPositionLeft.y, worldPositionLeft.z);
|
||||
projectileLeft.shoot(player, this.getLookAngle().x, this.getLookAngle().y + 0.018, this.getLookAngle().z, 20,
|
||||
(float) 0.2);
|
||||
|
|
|
@ -244,13 +244,13 @@ public class GunEventHandler {
|
|||
projectile.beast();
|
||||
} else if (perk == ModPerks.JHP_BULLET.get()) {
|
||||
int level = PerkHelper.getItemPerkLevel(perk, stack);
|
||||
projectile.jhpBullet(true, level);
|
||||
projectile.jhpBullet(level);
|
||||
} else if (perk == ModPerks.HE_BULLET.get()) {
|
||||
int level = PerkHelper.getItemPerkLevel(perk, stack);
|
||||
projectile.heBullet(true, level);
|
||||
projectile.heBullet(level);
|
||||
} else if (perk == ModPerks.INCENDIARY_BULLET.get()) {
|
||||
int level = PerkHelper.getItemPerkLevel(perk, stack);
|
||||
projectile.fireBullet(true, level, stack.is(ModTags.Items.SHOTGUN));
|
||||
projectile.fireBullet(level, stack.is(ModTags.Items.SHOTGUN));
|
||||
}
|
||||
|
||||
var dmgPerk = PerkHelper.getPerkByType(stack, Perk.Type.DAMAGE);
|
||||
|
|
|
@ -299,13 +299,13 @@ public class FireMessage {
|
|||
projectile.beast();
|
||||
} else if (perk == ModPerks.JHP_BULLET.get()) {
|
||||
int level = PerkHelper.getItemPerkLevel(perk, stack);
|
||||
projectile.jhpBullet(true, level);
|
||||
projectile.jhpBullet(level);
|
||||
} else if (perk == ModPerks.HE_BULLET.get()) {
|
||||
int level = PerkHelper.getItemPerkLevel(perk, stack);
|
||||
projectile.heBullet(true, level);
|
||||
projectile.heBullet(level);
|
||||
} else if (perk == ModPerks.INCENDIARY_BULLET.get()) {
|
||||
int level = PerkHelper.getItemPerkLevel(perk, stack);
|
||||
projectile.fireBullet(true, level, !zoom);
|
||||
projectile.fireBullet(level, !zoom);
|
||||
}
|
||||
|
||||
var dmgPerk = PerkHelper.getPerkByType(stack, Perk.Type.DAMAGE);
|
||||
|
|
Loading…
Add table
Reference in a new issue