优化部分代码,修复按键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()) {
|
if (key == Minecraft.getInstance().options.keyJump.getKey().getValue()) {
|
||||||
handleDoubleJump(player);
|
handleDoubleJump(player);
|
||||||
}
|
}
|
||||||
if (key == ModKeyMappings.CONFIG.getKey().getValue()) {
|
if (key == ModKeyMappings.CONFIG.getKey().getValue() && ModKeyMappings.CONFIG.getKeyModifier().isActive(KeyConflictContext.IN_GAME)) {
|
||||||
handleConfigScreen(player);
|
handleConfigScreen(player);
|
||||||
}
|
}
|
||||||
if (key == ModKeyMappings.RELOAD.getKey().getValue()) {
|
if (key == ModKeyMappings.RELOAD.getKey().getValue()) {
|
||||||
|
|
|
@ -90,11 +90,8 @@ public class ProjectileEntity extends Entity implements IEntityAdditionalSpawnDa
|
||||||
private boolean zoom = false;
|
private boolean zoom = false;
|
||||||
private float bypassArmorRate = 0.0f;
|
private float bypassArmorRate = 0.0f;
|
||||||
private float undeadMultiple = 1.0f;
|
private float undeadMultiple = 1.0f;
|
||||||
private boolean jhpBullet = false;
|
|
||||||
private int jhpLevel = 0;
|
private int jhpLevel = 0;
|
||||||
private boolean heBullet = false;
|
|
||||||
private int heLevel = 0;
|
private int heLevel = 0;
|
||||||
private boolean fireBullet = false;
|
|
||||||
private int fireLevel = 0;
|
private int fireLevel = 0;
|
||||||
private boolean dragonBreath = false;
|
private boolean dragonBreath = false;
|
||||||
private float knockback = 0.05f;
|
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);
|
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();
|
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);
|
double randomPos = this.tickCount * 0.08 * (Math.random() - 0.5);
|
||||||
ParticleTool.sendParticle(serverLevel, ParticleTypes.FLAME,
|
ParticleTool.sendParticle(serverLevel, ParticleTypes.FLAME,
|
||||||
(this.xo + this.getX()) / 2 + randomPos, (this.yo + this.getY()) / 2 + randomPos, (this.zo + this.getZ()) / 2 + randomPos,
|
(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);
|
this.onHitBlock(hitVec);
|
||||||
if (heBullet) {
|
if (heLevel > 0) {
|
||||||
explosionBulletBlock(this, this.damage, heLevel, monsterMultiple + 1, hitVec);
|
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,
|
ParticleTool.sendParticle(serverLevel, ParticleTypes.LAVA, hitVec.x, hitVec.y, hitVec.z,
|
||||||
3, 0, 0, 0, 0.5, true);
|
3, 0, 0, 0, 0.5, true);
|
||||||
}
|
}
|
||||||
|
@ -508,15 +505,15 @@ public class ProjectileEntity extends Entity implements IEntityAdditionalSpawnDa
|
||||||
this.damage *= this.undeadMultiple;
|
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);
|
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);
|
explosionBulletEntity(this, entity, this.damage, heLevel, mMultiple);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fireBullet) {
|
if (fireLevel > 0) {
|
||||||
if (!entity.level().isClientSide() && entity instanceof LivingEntity living) {
|
if (!entity.level().isClientSide() && entity instanceof LivingEntity living) {
|
||||||
living.addEffect(new MobEffectInstance(ModMobEffects.BURN.get(), 60 + fireLevel * 20, fireLevel, false, false), this.shooter);
|
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;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ProjectileEntity jhpBullet(boolean jhpBullet, int jhpLevel) {
|
public ProjectileEntity jhpBullet(int jhpLevel) {
|
||||||
this.jhpBullet = true;
|
|
||||||
this.jhpLevel = jhpLevel;
|
this.jhpLevel = jhpLevel;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ProjectileEntity heBullet(boolean heBullet, int heLevel) {
|
public ProjectileEntity heBullet(int heLevel) {
|
||||||
this.heBullet = true;
|
|
||||||
this.heLevel = heLevel;
|
this.heLevel = heLevel;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ProjectileEntity fireBullet(boolean fireBullet, int fireLevel, boolean dragonBreath) {
|
public ProjectileEntity fireBullet(int fireLevel, boolean dragonBreath) {
|
||||||
this.fireBullet = true;
|
|
||||||
this.fireLevel = fireLevel;
|
this.fireLevel = fireLevel;
|
||||||
this.dragonBreath = dragonBreath;
|
this.dragonBreath = dragonBreath;
|
||||||
return this;
|
return this;
|
||||||
|
|
|
@ -568,10 +568,10 @@ public class Ah6Entity extends ContainerMobileEntity implements GeoEntity, IHeli
|
||||||
.shooter(player)
|
.shooter(player)
|
||||||
.damage(VehicleConfig.AH_6_CANNON_DAMAGE.get())
|
.damage(VehicleConfig.AH_6_CANNON_DAMAGE.get())
|
||||||
.headShot(2f)
|
.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.setPos(worldPositionRight.x, worldPositionRight.y, worldPositionRight.z);
|
||||||
projectileRight.shoot(player, this.getLookAngle().x, this.getLookAngle().y + 0.018, this.getLookAngle().z, 20,
|
projectileRight.shoot(player, this.getLookAngle().x, this.getLookAngle().y + 0.018, this.getLookAngle().z, 20,
|
||||||
(float) 0.2);
|
(float) 0.2);
|
||||||
|
@ -587,10 +587,10 @@ public class Ah6Entity extends ContainerMobileEntity implements GeoEntity, IHeli
|
||||||
.shooter(player)
|
.shooter(player)
|
||||||
.damage(VehicleConfig.AH_6_CANNON_DAMAGE.get())
|
.damage(VehicleConfig.AH_6_CANNON_DAMAGE.get())
|
||||||
.headShot(2f)
|
.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.setPos(worldPositionLeft.x, worldPositionLeft.y, worldPositionLeft.z);
|
||||||
projectileLeft.shoot(player, this.getLookAngle().x, this.getLookAngle().y + 0.018, this.getLookAngle().z, 20,
|
projectileLeft.shoot(player, this.getLookAngle().x, this.getLookAngle().y + 0.018, this.getLookAngle().z, 20,
|
||||||
(float) 0.2);
|
(float) 0.2);
|
||||||
|
|
|
@ -244,13 +244,13 @@ public class GunEventHandler {
|
||||||
projectile.beast();
|
projectile.beast();
|
||||||
} else if (perk == ModPerks.JHP_BULLET.get()) {
|
} else if (perk == ModPerks.JHP_BULLET.get()) {
|
||||||
int level = PerkHelper.getItemPerkLevel(perk, stack);
|
int level = PerkHelper.getItemPerkLevel(perk, stack);
|
||||||
projectile.jhpBullet(true, level);
|
projectile.jhpBullet(level);
|
||||||
} else if (perk == ModPerks.HE_BULLET.get()) {
|
} else if (perk == ModPerks.HE_BULLET.get()) {
|
||||||
int level = PerkHelper.getItemPerkLevel(perk, stack);
|
int level = PerkHelper.getItemPerkLevel(perk, stack);
|
||||||
projectile.heBullet(true, level);
|
projectile.heBullet(level);
|
||||||
} else if (perk == ModPerks.INCENDIARY_BULLET.get()) {
|
} else if (perk == ModPerks.INCENDIARY_BULLET.get()) {
|
||||||
int level = PerkHelper.getItemPerkLevel(perk, stack);
|
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);
|
var dmgPerk = PerkHelper.getPerkByType(stack, Perk.Type.DAMAGE);
|
||||||
|
|
|
@ -299,13 +299,13 @@ public class FireMessage {
|
||||||
projectile.beast();
|
projectile.beast();
|
||||||
} else if (perk == ModPerks.JHP_BULLET.get()) {
|
} else if (perk == ModPerks.JHP_BULLET.get()) {
|
||||||
int level = PerkHelper.getItemPerkLevel(perk, stack);
|
int level = PerkHelper.getItemPerkLevel(perk, stack);
|
||||||
projectile.jhpBullet(true, level);
|
projectile.jhpBullet(level);
|
||||||
} else if (perk == ModPerks.HE_BULLET.get()) {
|
} else if (perk == ModPerks.HE_BULLET.get()) {
|
||||||
int level = PerkHelper.getItemPerkLevel(perk, stack);
|
int level = PerkHelper.getItemPerkLevel(perk, stack);
|
||||||
projectile.heBullet(true, level);
|
projectile.heBullet(level);
|
||||||
} else if (perk == ModPerks.INCENDIARY_BULLET.get()) {
|
} else if (perk == ModPerks.INCENDIARY_BULLET.get()) {
|
||||||
int level = PerkHelper.getItemPerkLevel(perk, stack);
|
int level = PerkHelper.getItemPerkLevel(perk, stack);
|
||||||
projectile.fireBullet(true, level, !zoom);
|
projectile.fireBullet(level, !zoom);
|
||||||
}
|
}
|
||||||
|
|
||||||
var dmgPerk = PerkHelper.getPerkByType(stack, Perk.Type.DAMAGE);
|
var dmgPerk = PerkHelper.getPerkByType(stack, Perk.Type.DAMAGE);
|
||||||
|
|
Loading…
Add table
Reference in a new issue