重写精准度逻辑
This commit is contained in:
parent
f205338449
commit
f2a43a5ef2
36 changed files with 1965 additions and 2005 deletions
|
@ -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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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));
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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
|
@ -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,
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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,
|
||||||
|
|
Loading…
Add table
Reference in a new issue