重写精准度逻辑

This commit is contained in:
Atsuihsio 2024-08-06 02:00:15 +08:00
parent f205338449
commit f2a43a5ef2
36 changed files with 1965 additions and 2005 deletions

View file

@ -25,12 +25,10 @@ import net.minecraft.util.Mth;
import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult; import net.minecraft.world.InteractionResult;
import net.minecraft.world.damagesource.DamageSource; import net.minecraft.world.damagesource.DamageSource;
import net.minecraft.world.damagesource.DamageTypes;
import net.minecraft.world.entity.*; import net.minecraft.world.entity.*;
import net.minecraft.world.entity.ai.attributes.AttributeSupplier; import net.minecraft.world.entity.ai.attributes.AttributeSupplier;
import net.minecraft.world.entity.ai.attributes.Attributes; import net.minecraft.world.entity.ai.attributes.Attributes;
import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.player.Player;
import net.minecraft.world.entity.projectile.ThrownPotion;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.Explosion; import net.minecraft.world.level.Explosion;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
@ -131,45 +129,10 @@ public class Mk42Entity extends PathfinderMob implements GeoEntity {
@Override @Override
public boolean hurt(DamageSource source, float amount) { public boolean hurt(DamageSource source, float amount) {
if (source.getDirectEntity() instanceof ThrownPotion if (amount < 32) {
|| source.getDirectEntity() instanceof AreaEffectCloud
|| source.is(DamageTypes.IN_FIRE)
|| source.is(DamageTypes.ON_FIRE)
|| source.is(DamageTypes.FALL)
|| source.is(DamageTypes.CACTUS)
|| source.is(DamageTypes.DROWN)
|| source.is(DamageTypes.LIGHTNING_BOLT)
|| source.is(DamageTypes.FALLING_ANVIL)
|| source.is(DamageTypes.DRAGON_BREATH)
|| source.is(DamageTypes.WITHER)
|| source.is(DamageTypes.WITHER_SKULL)
|| source.is(DamageTypes.GENERIC)
|| source.is(DamageTypes.MAGIC)
|| source.is(DamageTypes.ARROW)
|| source.is(DamageTypes.IN_WALL)
|| source.is(DamageTypes.MOB_ATTACK)
|| source.is(DamageTypes.MOB_ATTACK_NO_AGGRO)
|| source.is(DamageTypes.PLAYER_ATTACK)
|| source.is(DamageTypes.THORNS)
|| source.is(DamageTypes.STING)
|| source.is(DamageTypes.SWEET_BERRY_BUSH)
|| source.is(DamageTypes.TRIDENT)
|| source.is(DamageTypes.THROWN)) {
return false; return false;
} }
return super.hurt(source, amount - 32);
if (source.is(ModDamageTypes.GUN_FIRE)
|| source.is(ModDamageTypes.GUN_FIRE_HEADSHOT)
|| source.is(ModDamageTypes.ARROW_IN_BRAIN)
|| source.is(ModDamageTypes.ARROW_IN_KNEE)) {
return super.hurt(source, 0.125f * amount);
}
if (source.getDirectEntity() instanceof Player player && this.getFirstPassenger() != null && player == this.getFirstPassenger()) {
return false;
}
return super.hurt(source, amount);
} }

View file

@ -26,12 +26,10 @@ import net.minecraft.util.Mth;
import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult; import net.minecraft.world.InteractionResult;
import net.minecraft.world.damagesource.DamageSource; import net.minecraft.world.damagesource.DamageSource;
import net.minecraft.world.damagesource.DamageTypes;
import net.minecraft.world.entity.*; import net.minecraft.world.entity.*;
import net.minecraft.world.entity.ai.attributes.AttributeSupplier; import net.minecraft.world.entity.ai.attributes.AttributeSupplier;
import net.minecraft.world.entity.ai.attributes.Attributes; import net.minecraft.world.entity.ai.attributes.Attributes;
import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.player.Player;
import net.minecraft.world.entity.projectile.ThrownPotion;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.Explosion; import net.minecraft.world.level.Explosion;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
@ -120,45 +118,10 @@ public class Mle1934Entity extends PathfinderMob implements GeoEntity {
@Override @Override
public boolean hurt(DamageSource source, float amount) { public boolean hurt(DamageSource source, float amount) {
if (source.getDirectEntity() instanceof ThrownPotion if (amount < 34) {
|| source.getDirectEntity() instanceof AreaEffectCloud
|| source.is(DamageTypes.IN_FIRE)
|| source.is(DamageTypes.ON_FIRE)
|| source.is(DamageTypes.FALL)
|| source.is(DamageTypes.CACTUS)
|| source.is(DamageTypes.DROWN)
|| source.is(DamageTypes.LIGHTNING_BOLT)
|| source.is(DamageTypes.FALLING_ANVIL)
|| source.is(DamageTypes.DRAGON_BREATH)
|| source.is(DamageTypes.WITHER)
|| source.is(DamageTypes.WITHER_SKULL)
|| source.is(DamageTypes.GENERIC)
|| source.is(DamageTypes.MAGIC)
|| source.is(DamageTypes.ARROW)
|| source.is(DamageTypes.IN_WALL)
|| source.is(DamageTypes.MOB_ATTACK)
|| source.is(DamageTypes.MOB_ATTACK_NO_AGGRO)
|| source.is(DamageTypes.PLAYER_ATTACK)
|| source.is(DamageTypes.THORNS)
|| source.is(DamageTypes.STING)
|| source.is(DamageTypes.SWEET_BERRY_BUSH)
|| source.is(DamageTypes.TRIDENT)
|| source.is(DamageTypes.THROWN)) {
return false; return false;
} }
return super.hurt(source, amount - 34);
if (source.is(ModDamageTypes.GUN_FIRE)
|| source.is(ModDamageTypes.GUN_FIRE_HEADSHOT)
|| source.is(ModDamageTypes.ARROW_IN_BRAIN)
|| source.is(ModDamageTypes.ARROW_IN_KNEE)) {
return super.hurt(source, 0.125f * amount);
}
if (source.getDirectEntity() instanceof Player player && this.getFirstPassenger() != null && player == this.getFirstPassenger()) {
return false;
}
return super.hurt(source, amount);
} }
@ -414,7 +377,7 @@ public class Mle1934Entity extends PathfinderMob implements GeoEntity {
public static AttributeSupplier.Builder createAttributes() { public static AttributeSupplier.Builder createAttributes() {
return Mob.createMobAttributes() return Mob.createMobAttributes()
.add(Attributes.MOVEMENT_SPEED, 0) .add(Attributes.MOVEMENT_SPEED, 0)
.add(Attributes.MAX_HEALTH, 800) .add(Attributes.MAX_HEALTH, 600)
.add(Attributes.ARMOR, 30) .add(Attributes.ARMOR, 30)
.add(Attributes.ATTACK_DAMAGE, 0) .add(Attributes.ATTACK_DAMAGE, 0)
.add(Attributes.FOLLOW_RANGE, 32) .add(Attributes.FOLLOW_RANGE, 32)

View file

@ -232,10 +232,20 @@ public class ProjectileEntity extends Entity implements IEntityAdditionalSpawnDa
boolean legshot = false; boolean legshot = false;
float eyeHeight = entity.getEyeHeight(); float eyeHeight = entity.getEyeHeight();
float BodyHeight = entity.getBbHeight(); float BodyHeight = entity.getBbHeight();
if ((eyeHeight - 0.35) < hitBoxPos.y && hitBoxPos.y < (eyeHeight + 0.4) && !(entity instanceof ClaymoreEntity || entity instanceof MortarEntity)) { if ((eyeHeight - 0.35) < hitBoxPos.y && hitBoxPos.y < (eyeHeight + 0.4) && !(entity instanceof ClaymoreEntity
|| entity instanceof MortarEntity
|| entity instanceof Mle1934Entity
|| entity instanceof Mk42Entity
|| entity instanceof DroneEntity
)) {
headshot = true; headshot = true;
} }
if (hitBoxPos.y < (0.33 * BodyHeight) && !(entity instanceof ClaymoreEntity || entity instanceof MortarEntity)) { if (hitBoxPos.y < (0.33 * BodyHeight) && !(entity instanceof ClaymoreEntity
|| entity instanceof MortarEntity
|| entity instanceof Mle1934Entity
|| entity instanceof Mk42Entity
|| entity instanceof DroneEntity
)) {
legshot = true; legshot = true;
} }

View file

@ -7,7 +7,6 @@ import net.mcreator.superbwarfare.init.ModItems;
import net.mcreator.superbwarfare.init.ModMobEffects; import net.mcreator.superbwarfare.init.ModMobEffects;
import net.mcreator.superbwarfare.init.ModTags; import net.mcreator.superbwarfare.init.ModTags;
import net.mcreator.superbwarfare.network.ModVariables; import net.mcreator.superbwarfare.network.ModVariables;
import net.mcreator.superbwarfare.network.message.ZoomMessage;
import net.minecraft.client.CameraType; import net.minecraft.client.CameraType;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.multiplayer.ClientLevel;
@ -154,12 +153,18 @@ public class ClientEventHandler {
} }
float times = 90f / fps; float times = 90f / fps;
var data = entity.getPersistentData(); var data = entity.getPersistentData();
double spread = (float) (entity.getMainHandItem().getOrCreateTag().getDouble("dev") * ZoomMessage.zoom_spread); ItemStack stack = entity.getMainHandItem();
if (data.getDouble("crosshair") > spread) { boolean zoom = entity.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).zooming;
data.putDouble("crosshair", data.getDouble("crosshair") - 0.05 * Math.pow(spread - data.getDouble("crosshair"), 2) * times); double spread = stack.getOrCreateTag().getDouble("spread");
double zoomSpread = stack.getOrCreateTag().getDouble("zoomSpread");
double gunSpread = (float) (zoom? zoomSpread : spread);
if (data.getDouble("crosshair") > gunSpread) {
data.putDouble("crosshair", data.getDouble("crosshair") - 0.05 * Math.pow(gunSpread - data.getDouble("crosshair"), 2) * times);
} else { } else {
data.putDouble("crosshair", data.getDouble("crosshair") + 0.05 * Math.pow(spread - data.getDouble("crosshair"), 2) * times); data.putDouble("crosshair", data.getDouble("crosshair") + 0.05 * Math.pow(gunSpread - data.getDouble("crosshair"), 2) * times);
} }
} }
} }

View file

@ -8,7 +8,6 @@ import net.mcreator.superbwarfare.init.ModItems;
import net.mcreator.superbwarfare.init.ModSounds; import net.mcreator.superbwarfare.init.ModSounds;
import net.mcreator.superbwarfare.init.ModTags; import net.mcreator.superbwarfare.init.ModTags;
import net.mcreator.superbwarfare.network.ModVariables; import net.mcreator.superbwarfare.network.ModVariables;
import net.mcreator.superbwarfare.network.message.ZoomMessage;
import net.mcreator.superbwarfare.tools.GunInfo; import net.mcreator.superbwarfare.tools.GunInfo;
import net.mcreator.superbwarfare.tools.GunsTool; import net.mcreator.superbwarfare.tools.GunsTool;
import net.mcreator.superbwarfare.tools.ParticleTool; import net.mcreator.superbwarfare.tools.ParticleTool;
@ -347,7 +346,9 @@ public class GunEventHandler {
float damage = (float) (heldItem.getOrCreateTag().getDouble("damage") + heldItem.getOrCreateTag().getDouble("sentinelChargeDamage")) * (float) heldItem.getOrCreateTag().getDouble("levelDamageMultiple"); float damage = (float) (heldItem.getOrCreateTag().getDouble("damage") + heldItem.getOrCreateTag().getDouble("sentinelChargeDamage")) * (float) heldItem.getOrCreateTag().getDouble("levelDamageMultiple");
float bypassArmorRate = (float) heldItem.getOrCreateTag().getDouble("BypassesArmor"); float bypassArmorRate = (float) heldItem.getOrCreateTag().getDouble("BypassesArmor");
boolean zoom = player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).zoom; boolean zoom = player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).zooming;
double spread = heldItem.getOrCreateTag().getDouble("spread");
double zoomSpread = heldItem.getOrCreateTag().getDouble("zoomSpread");
ProjectileEntity projectile = new ProjectileEntity(player.level()) ProjectileEntity projectile = new ProjectileEntity(player.level())
.shooter(player) .shooter(player)
@ -364,7 +365,7 @@ public class GunEventHandler {
projectile.setPos(player.getX() - 0.1 * player.getLookAngle().x, player.getEyeY() - 0.1 - 0.1 * player.getLookAngle().y, player.getZ() + -0.1 * player.getLookAngle().z); projectile.setPos(player.getX() - 0.1 * player.getLookAngle().x, player.getEyeY() - 0.1 - 0.1 * player.getLookAngle().y, player.getZ() + -0.1 * player.getLookAngle().z);
projectile.shoot(player.getLookAngle().x, player.getLookAngle().y + 0.0005f, player.getLookAngle().z, 1 * (float) heldItem.getOrCreateTag().getDouble("velocity"), projectile.shoot(player.getLookAngle().x, player.getLookAngle().y + 0.0005f, player.getLookAngle().z, 1 * (float) heldItem.getOrCreateTag().getDouble("velocity"),
(float) (heldItem.getOrCreateTag().getDouble("dev") * ZoomMessage.zoom_spread)); (float) (zoom? zoomSpread : spread));
player.level().addFreshEntity(projectile); player.level().addFreshEntity(projectile);
} }
} }

View file

@ -29,7 +29,7 @@ public class ModEntities {
public static final RegistryObject<EntityType<Mk42Entity>> MK_42 = register("mk_42", public static final RegistryObject<EntityType<Mk42Entity>> MK_42 = register("mk_42",
EntityType.Builder.<Mk42Entity>of(Mk42Entity::new, MobCategory.CREATURE).setShouldReceiveVelocityUpdates(true).setTrackingRange(5124).setUpdateInterval(3).setCustomClientFactory(Mk42Entity::new).fireImmune().sized(3.4f, 3.5f)); EntityType.Builder.<Mk42Entity>of(Mk42Entity::new, MobCategory.CREATURE).setShouldReceiveVelocityUpdates(true).setTrackingRange(5124).setUpdateInterval(3).setCustomClientFactory(Mk42Entity::new).fireImmune().sized(3.4f, 3.5f));
public static final RegistryObject<EntityType<Mle1934Entity>> MLE_1934 = register("mle_1934", public static final RegistryObject<EntityType<Mle1934Entity>> MLE_1934 = register("mle_1934",
EntityType.Builder.<Mle1934Entity>of(Mle1934Entity::new, MobCategory.CREATURE).setShouldReceiveVelocityUpdates(true).setTrackingRange(512).setUpdateInterval(3).setCustomClientFactory(Mle1934Entity::new).fireImmune().sized(6f, 3.7f)); EntityType.Builder.<Mle1934Entity>of(Mle1934Entity::new, MobCategory.CREATURE).setShouldReceiveVelocityUpdates(true).setTrackingRange(512).setUpdateInterval(3).setCustomClientFactory(Mle1934Entity::new).fireImmune().sized(4.5f, 2.8f));
public static final RegistryObject<EntityType<DroneEntity>> DRONE = register("drone", public static final RegistryObject<EntityType<DroneEntity>> DRONE = register("drone",
EntityType.Builder.<DroneEntity>of(DroneEntity::new, MobCategory.CREATURE).setShouldReceiveVelocityUpdates(true).setTrackingRange(512).setUpdateInterval(3).setCustomClientFactory(DroneEntity::new).sized(0.7f, 0.175f)); EntityType.Builder.<DroneEntity>of(DroneEntity::new, MobCategory.CREATURE).setShouldReceiveVelocityUpdates(true).setTrackingRange(512).setUpdateInterval(3).setCustomClientFactory(DroneEntity::new).sized(0.7f, 0.175f));

View file

@ -252,13 +252,17 @@ public class FireMessage {
int volt = EnchantmentHelper.getTagEnchantmentLevel(ModEnchantments.VOLT_OVERLOAD.get(), stack); int volt = EnchantmentHelper.getTagEnchantmentLevel(ModEnchantments.VOLT_OVERLOAD.get(), stack);
int wire_length = EnchantmentHelper.getTagEnchantmentLevel(ModEnchantments.LONGER_WIRE.get(), stack); int wire_length = EnchantmentHelper.getTagEnchantmentLevel(ModEnchantments.LONGER_WIRE.get(), stack);
boolean zoom = player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).zooming;
double spread = stack.getOrCreateTag().getDouble("spread");
double zoomSpread = stack.getOrCreateTag().getDouble("zoomSpread");
Level level = player.level(); Level level = player.level();
if (!level.isClientSide()) { if (!level.isClientSide()) {
TaserBulletProjectileEntity taserBulletProjectile = new TaserBulletProjectileEntity(player, level, (float) stack.getOrCreateTag().getDouble("damage"), volt, wire_length); TaserBulletProjectileEntity taserBulletProjectile = new TaserBulletProjectileEntity(player, level, (float) stack.getOrCreateTag().getDouble("damage"), volt, wire_length);
taserBulletProjectile.setPos(player.getX(), player.getEyeY() - 0.1, player.getZ()); taserBulletProjectile.setPos(player.getX(), player.getEyeY() - 0.1, player.getZ());
taserBulletProjectile.shoot(player.getLookAngle().x, player.getLookAngle().y, player.getLookAngle().z, (float) stack.getOrCreateTag().getDouble("velocity"), taserBulletProjectile.shoot(player.getLookAngle().x, player.getLookAngle().y, player.getLookAngle().z, (float) stack.getOrCreateTag().getDouble("velocity"),
(float) (stack.getOrCreateTag().getDouble("dev") * ZoomMessage.zoom_spread)); (float) (zoom? zoomSpread : spread));
level.addFreshEntity(taserBulletProjectile); level.addFreshEntity(taserBulletProjectile);
} }
@ -278,6 +282,10 @@ public class FireMessage {
if (!stack.getOrCreateTag().getBoolean("reloading")) { if (!stack.getOrCreateTag().getBoolean("reloading")) {
if (!player.getCooldowns().isOnCooldown(stack.getItem()) && stack.getOrCreateTag().getInt("ammo") > 0) { if (!player.getCooldowns().isOnCooldown(stack.getItem()) && stack.getOrCreateTag().getInt("ammo") > 0) {
boolean zoom = player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).zooming;
double spread = stack.getOrCreateTag().getDouble("spread");
double zoomSpread = stack.getOrCreateTag().getDouble("zoomSpread");
Level level = player.level(); Level level = player.level();
if (!level.isClientSide()) { if (!level.isClientSide()) {
int monsterMultiple = EnchantmentHelper.getTagEnchantmentLevel(ModEnchantments.MONSTER_HUNTER.get(), stack); int monsterMultiple = EnchantmentHelper.getTagEnchantmentLevel(ModEnchantments.MONSTER_HUNTER.get(), stack);
@ -285,7 +293,7 @@ public class FireMessage {
gunGrenadeEntity.setPos(player.getX(), player.getEyeY() - 0.1, player.getZ()); gunGrenadeEntity.setPos(player.getX(), player.getEyeY() - 0.1, player.getZ());
gunGrenadeEntity.shoot(player.getLookAngle().x, player.getLookAngle().y, player.getLookAngle().z, (float) stack.getOrCreateTag().getDouble("velocity"), gunGrenadeEntity.shoot(player.getLookAngle().x, player.getLookAngle().y, player.getLookAngle().z, (float) stack.getOrCreateTag().getDouble("velocity"),
(float) (stack.getOrCreateTag().getDouble("dev") * ZoomMessage.zoom_spread)); (float) (zoom? zoomSpread : spread));
level.addFreshEntity(gunGrenadeEntity); level.addFreshEntity(gunGrenadeEntity);
} }
@ -321,12 +329,16 @@ public class FireMessage {
if (!tag.getBoolean("reloading") && !player.getCooldowns().isOnCooldown(mainHandItem.getItem()) && tag.getInt("ammo") > 0) { if (!tag.getBoolean("reloading") && !player.getCooldowns().isOnCooldown(mainHandItem.getItem()) && tag.getInt("ammo") > 0) {
boolean zoom = player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).zooming;
double spread = mainHandItem.getOrCreateTag().getDouble("spread");
double zoomSpread = mainHandItem.getOrCreateTag().getDouble("zoomSpread");
if (!level.isClientSide()) { if (!level.isClientSide()) {
int monsterMultiple = EnchantmentHelper.getTagEnchantmentLevel(ModEnchantments.MONSTER_HUNTER.get(), mainHandItem); int monsterMultiple = EnchantmentHelper.getTagEnchantmentLevel(ModEnchantments.MONSTER_HUNTER.get(), mainHandItem);
RpgRocketEntity rocketEntity = new RpgRocketEntity(player, level, (float) tag.getDouble("damage") * (float) tag.getDouble("levelDamageMultiple"), monsterMultiple); RpgRocketEntity rocketEntity = new RpgRocketEntity(player, level, (float) tag.getDouble("damage") * (float) tag.getDouble("levelDamageMultiple"), monsterMultiple);
rocketEntity.setPos(player.getX(), player.getEyeY() - 0.1, player.getZ()); rocketEntity.setPos(player.getX(), player.getEyeY() - 0.1, player.getZ());
rocketEntity.shoot(player.getLookAngle().x, player.getLookAngle().y, player.getLookAngle().z, (float) tag.getDouble("velocity"), rocketEntity.shoot(player.getLookAngle().x, player.getLookAngle().y, player.getLookAngle().z, (float) tag.getDouble("velocity"),
(float) (mainHandItem.getOrCreateTag().getDouble("dev") * ZoomMessage.zoom_spread)); (float) (zoom? zoomSpread : spread));
level.addFreshEntity(rocketEntity); level.addFreshEntity(rocketEntity);
} }

View file

@ -2,15 +2,12 @@ package net.mcreator.superbwarfare.network.message;
import net.mcreator.superbwarfare.entity.Mk42Entity; import net.mcreator.superbwarfare.entity.Mk42Entity;
import net.mcreator.superbwarfare.entity.Mle1934Entity; import net.mcreator.superbwarfare.entity.Mle1934Entity;
import net.mcreator.superbwarfare.init.ModItems;
import net.mcreator.superbwarfare.init.ModSounds; import net.mcreator.superbwarfare.init.ModSounds;
import net.mcreator.superbwarfare.init.ModTags;
import net.mcreator.superbwarfare.network.ModVariables; import net.mcreator.superbwarfare.network.ModVariables;
import net.mcreator.superbwarfare.tools.SoundTool; import net.mcreator.superbwarfare.tools.SoundTool;
import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
import net.minecraftforge.network.NetworkEvent; import net.minecraftforge.network.NetworkEvent;
@ -19,7 +16,6 @@ import java.util.function.Supplier;
public class ZoomMessage { public class ZoomMessage {
private final int type; private final int type;
public static double zoom_spread = 1;
public ZoomMessage(int type) { public ZoomMessage(int type) {
this.type = type; this.type = type;
@ -56,18 +52,6 @@ public class ZoomMessage {
capability.syncPlayerVariables(entity); capability.syncPlayerVariables(entity);
}); });
ItemStack stack = entity.getMainHandItem();
if (stack.is(ModTags.Items.SNIPER_RIFLE)) {
zoom_spread = 0;
} else if (stack.is(ModTags.Items.SHOTGUN)) {
zoom_spread = 0.9;
} else if (stack.is(ModItems.MINIGUN.get())) {
zoom_spread = 1;
} else {
zoom_spread = 0.00001;
}
if (entity.isPassenger() && (entity.getVehicle() instanceof Mk42Entity || entity.getVehicle() instanceof Mle1934Entity)) { if (entity.isPassenger() && (entity.getVehicle() instanceof Mk42Entity || entity.getVehicle() instanceof Mle1934Entity)) {
if (entity instanceof ServerPlayer serverPlayer) { if (entity instanceof ServerPlayer serverPlayer) {
SoundTool.playLocalSound(serverPlayer, ModSounds.CANNON_ZOOM_IN.get(), 2, 1); SoundTool.playLocalSound(serverPlayer, ModSounds.CANNON_ZOOM_IN.get(), 2, 1);
@ -84,7 +68,6 @@ public class ZoomMessage {
capability.syncPlayerVariables(entity); capability.syncPlayerVariables(entity);
}); });
zoom_spread = 1;
if (entity.isPassenger() && (entity.getVehicle() instanceof Mk42Entity || entity.getVehicle() instanceof Mle1934Entity)) { if (entity.isPassenger() && (entity.getVehicle() instanceof Mk42Entity || entity.getVehicle() instanceof Mle1934Entity)) {
if (entity instanceof ServerPlayer serverPlayer) { if (entity instanceof ServerPlayer serverPlayer) {
SoundTool.playLocalSound(serverPlayer, ModSounds.CANNON_ZOOM_OUT.get(), 2, 1); SoundTool.playLocalSound(serverPlayer, ModSounds.CANNON_ZOOM_OUT.get(), 2, 1);

File diff suppressed because it is too large Load diff

View file

@ -1,7 +1,8 @@
{ {
"zoom_speed": 0.95, "zoom_speed": 0.95,
"zoom": 1.25, "zoom": 1.25,
"dev": 3.5, "spread": 3.5,
"zoomSpread": 3,
"recoil_x": 0.006, "recoil_x": 0.006,
"recoil_y": 0.018, "recoil_y": 0.018,
"damage": 2, "damage": 2,

View file

@ -1,7 +1,8 @@
{ {
"zoom_speed": 1.4, "zoom_speed": 1.4,
"zoom": 1.25, "zoom": 1.25,
"dev": 5, "spread": 5,
"zoomSpread": 4,
"recoil_x": 0.005, "recoil_x": 0.005,
"recoil_y": 0.026, "recoil_y": 0.026,
"damage": 3, "damage": 3,

View file

@ -1,7 +1,8 @@
{ {
"zoom_speed": 1.1, "zoom_speed": 1.1,
"zoom": 1.25, "zoom": 1.25,
"dev": 4, "spread": 4,
"zoomSpread": 0.1,
"recoil_x": 0.0025, "recoil_x": 0.0025,
"recoil_y": 0.012, "recoil_y": 0.012,
"damage": 8.5, "damage": 8.5,

View file

@ -1,7 +1,6 @@
{ {
"zoom_speed": 1, "zoom_speed": 1,
"zoom": 2, "zoom": 2,
"dev": 4,
"recoil_x": 0.005, "recoil_x": 0.005,
"recoil_y": 0.003, "recoil_y": 0.003,
"headshot": 1.5, "headshot": 1.5,

View file

@ -1,7 +1,8 @@
{ {
"zoom_speed": 0.9, "zoom_speed": 0.9,
"zoom": 2, "zoom": 2,
"dev": 5, "spread": 5,
"zoomSpread": 0.1,
"bipod": 1, "bipod": 1,
"recoil_x": 0.0018, "recoil_x": 0.0018,
"recoil_y": 0.01, "recoil_y": 0.01,

View file

@ -1,7 +1,8 @@
{ {
"zoom_speed": 1.9, "zoom_speed": 1.9,
"zoom": 1.25, "zoom": 1.25,
"dev": 2.5, "spread": 2.5,
"zoomSpread": 0.2,
"recoil_x": 0.004, "recoil_x": 0.004,
"recoil_y": 0.013, "recoil_y": 0.013,
"damage": 5.5, "damage": 5.5,

View file

@ -1,7 +1,8 @@
{ {
"zoom_speed": 1.9, "zoom_speed": 1.9,
"zoom": 1.25, "zoom": 1.25,
"dev": 2.5, "spread": 2.5,
"zoomSpread": 0.2,
"recoil_x": 0.004, "recoil_x": 0.004,
"recoil_y": 0.013, "recoil_y": 0.013,
"damage": 5.5, "damage": 5.5,

View file

@ -1,7 +1,8 @@
{ {
"zoom_speed": 1.3, "zoom_speed": 1.3,
"zoom": 1.25, "zoom": 1.25,
"dev": 4, "spread": 3.5,
"zoomSpread": 0.1,
"recoil_x": 0.0016, "recoil_x": 0.0016,
"recoil_y": 0.009, "recoil_y": 0.009,
"damage": 7.5, "damage": 7.5,

View file

@ -1,7 +1,8 @@
{ {
"zoom_speed": 1, "zoom_speed": 1,
"zoom": 1.25, "zoom": 1.25,
"dev": 7, "spread": 7,
"zoomSpread": 0.01,
"recoil_x": 0.004, "recoil_x": 0.004,
"recoil_y": 0.04, "recoil_y": 0.04,
"damage": 65, "damage": 65,

View file

@ -1,7 +1,8 @@
{ {
"zoom_speed": 1.7, "zoom_speed": 1.7,
"zoom": 1.25, "zoom": 1.25,
"dev": 2.7, "spread": 2.5,
"zoomSpread": 0.2,
"recoil_x": 0.006, "recoil_x": 0.006,
"recoil_y": 0.018, "recoil_y": 0.018,
"damage": 9.5, "damage": 9.5,

View file

@ -1,7 +1,8 @@
{ {
"zoom_speed": 1.15, "zoom_speed": 1.15,
"zoom": 1.25, "zoom": 1.25,
"dev": 4, "spread": 4,
"zoomSpread": 0.1,
"recoil_x": 0.0015, "recoil_x": 0.0015,
"recoil_y": 0.011, "recoil_y": 0.011,
"damage": 7, "damage": 7,

View file

@ -1,7 +1,8 @@
{ {
"zoom_speed": 0.85, "zoom_speed": 0.85,
"zoom": 1.25, "zoom": 1.25,
"dev": 5, "spread": 5,
"zoomSpread": 0.1,
"bipod": 1, "bipod": 1,
"recoil_x": 0.004, "recoil_x": 0.004,
"recoil_y": 0.014, "recoil_y": 0.014,

View file

@ -1,7 +1,8 @@
{ {
"zoom_speed": 0.95, "zoom_speed": 0.95,
"zoom": 1.25, "zoom": 1.25,
"dev": 1, "spread": 1.5,
"zoomSpread": 0.1,
"recoil_x": 0.004, "recoil_x": 0.004,
"recoil_y": 0.023, "recoil_y": 0.023,
"damage": 40, "damage": 40,

View file

@ -1,7 +1,8 @@
{ {
"zoom_speed": 1.1, "zoom_speed": 1.1,
"zoom": 1.25, "zoom": 1.25,
"dev": 3, "spread": 3,
"zoomSpread": 2.7,
"recoil_x": 0.009, "recoil_x": 0.009,
"recoil_y": 0.04, "recoil_y": 0.04,
"damage": 3, "damage": 3,

View file

@ -3,7 +3,8 @@
"zoom": 6, "zoom": 6,
"min_zoom": 4, "min_zoom": 4,
"max_zoom": 8, "max_zoom": 8,
"dev": 6, "spread": 6,
"zoomSpread": 0.001,
"recoil_x": 0.007, "recoil_x": 0.007,
"recoil_y": 0.013, "recoil_y": 0.013,
"damage": 38, "damage": 38,

View file

@ -1,7 +1,8 @@
{ {
"zoom_speed": 1.1, "zoom_speed": 1.1,
"zoom": 1.25, "zoom": 1.25,
"dev": 2, "spread": 2,
"zoomSpread": 0.1,
"recoil_x": 0.004, "recoil_x": 0.004,
"recoil_y": 0.031, "recoil_y": 0.031,
"damage": 16, "damage": 16,

View file

@ -1,6 +1,7 @@
{ {
"zoom": 1, "zoom": 1,
"dev": 2.5, "spread": 2.5,
"zoomSpread": 2.5,
"recoil_x": 0.012, "recoil_x": 0.012,
"recoil_y": 0.011, "recoil_y": 0.011,
"damage": 8, "damage": 8,

View file

@ -3,7 +3,8 @@
"zoom": 4, "zoom": 4,
"min_zoom": 1.25, "min_zoom": 1.25,
"max_zoom": 6, "max_zoom": 6,
"dev": 6, "spread": 5,
"zoomSpread": 0.01,
"bipod": 1, "bipod": 1,
"recoil_x": 0.006, "recoil_x": 0.006,
"recoil_y": 0.014, "recoil_y": 0.014,

View file

@ -4,7 +4,8 @@
"min_zoom": 1.3, "min_zoom": 1.3,
"max_zoom": 6, "max_zoom": 6,
"bipod": 1, "bipod": 1,
"dev": 6, "spread": 8,
"zoomSpread": 0.05,
"recoil_x": 0.01, "recoil_x": 0.01,
"recoil_y": 0.038, "recoil_y": 0.038,
"damage": 100, "damage": 100,

View file

@ -1,7 +1,8 @@
{ {
"zoom_speed": 0.77, "zoom_speed": 0.77,
"zoom": 1.25, "zoom": 1.25,
"dev": 5, "spread": 5,
"zoomSpread": 0.2,
"recoil_x": 0.008, "recoil_x": 0.008,
"recoil_y": 0.018, "recoil_y": 0.018,
"damage": 150, "damage": 150,

View file

@ -1,7 +1,8 @@
{ {
"zoom_speed": 1, "zoom_speed": 1,
"zoom": 1.25, "zoom": 1.25,
"dev": 5, "spread": 5.5,
"zoomSpread": 0.1,
"bipod": 1, "bipod": 1,
"recoil_x": 0.0035, "recoil_x": 0.0035,
"recoil_y": 0.012, "recoil_y": 0.012,

View file

@ -1,7 +1,8 @@
{ {
"zoom_speed": 0.95, "zoom_speed": 0.95,
"zoom": 3, "zoom": 3,
"dev": 6, "spread": 6,
"zoomSpread": 0.001,
"recoil_x": 0.007, "recoil_x": 0.007,
"recoil_y": 0.018, "recoil_y": 0.018,
"damage": 35, "damage": 35,

View file

@ -1,7 +1,8 @@
{ {
"zoom_speed": 1, "zoom_speed": 1,
"zoom": 1.25, "zoom": 1.25,
"dev": 5, "spread": 4.5,
"zoomSpread": 0.1,
"recoil_x": 0.004, "recoil_x": 0.004,
"recoil_y": 0.015, "recoil_y": 0.015,
"damage": 9.5, "damage": 9.5,

View file

@ -1,7 +1,8 @@
{ {
"zoom_speed": 0.9, "zoom_speed": 0.9,
"zoom": 4, "zoom": 4,
"dev": 6, "spread": 5.5,
"zoomSpread": 0.1,
"recoil_x": 0.008, "recoil_x": 0.008,
"recoil_y": 0.015, "recoil_y": 0.015,
"damage": 18, "damage": 18,

View file

@ -1,5 +1,6 @@
{ {
"dev": 2, "spread": 2,
"zoomSpread": 0.1,
"recoil_x": 0.0001, "recoil_x": 0.0001,
"recoil_y": 0.002, "recoil_y": 0.002,
"zoom_speed": 2, "zoom_speed": 2,

View file

@ -1,7 +1,8 @@
{ {
"zoom_speed": 1.7, "zoom_speed": 1.7,
"zoom": 1.25, "zoom": 1.25,
"dev": 3, "spread": 3,
"zoomSpread": 0.1,
"recoil_x": 0.005, "recoil_x": 0.005,
"recoil_y": 0.032, "recoil_y": 0.032,
"damage": 18, "damage": 18,

View file

@ -1,7 +1,8 @@
{ {
"zoom_speed": 1.6, "zoom_speed": 1.6,
"zoom": 1.25, "zoom": 1.25,
"dev": 2.3, "spread": 2.3,
"zoomSpread": 0.15,
"recoil_x": 0.007, "recoil_x": 0.007,
"recoil_y": 0.007, "recoil_y": 0.007,
"damage": 4.5, "damage": 4.5,