优化部分代码#2
This commit is contained in:
parent
069d303c17
commit
6b7da3b749
3 changed files with 24 additions and 31 deletions
|
@ -85,12 +85,9 @@ public class ClickHandler {
|
||||||
|
|
||||||
ItemStack stack = player.getMainHandItem();
|
ItemStack stack = player.getMainHandItem();
|
||||||
|
|
||||||
|
|
||||||
int button = event.getButton();
|
int button = event.getButton();
|
||||||
|
|
||||||
if (player.getMainHandItem().is(ModTags.Items.GUN)
|
if (stack.is(ModTags.Items.GUN) || stack.is(ModItems.MONITOR.get()) || player.hasEffect(ModMobEffects.SHOCK.get())
|
||||||
|| stack.is(ModItems.MONITOR.get())
|
|
||||||
|| player.hasEffect(ModMobEffects.SHOCK.get())
|
|
||||||
|| (player.getVehicle() instanceof IArmedVehicleEntity && !(player.getVehicle() instanceof WheelChairEntity))) {
|
|| (player.getVehicle() instanceof IArmedVehicleEntity && !(player.getVehicle() instanceof WheelChairEntity))) {
|
||||||
if (button == GLFW.GLFW_MOUSE_BUTTON_LEFT) {
|
if (button == GLFW.GLFW_MOUSE_BUTTON_LEFT) {
|
||||||
event.setCanceled(true);
|
event.setCanceled(true);
|
||||||
|
@ -115,7 +112,7 @@ public class ClickHandler {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((player.getMainHandItem().is(ModTags.Items.GUN) && !(player.getVehicle() instanceof ICannonEntity))
|
if ((stack.is(ModTags.Items.GUN) && !(player.getVehicle() instanceof ICannonEntity))
|
||||||
|| stack.is(ModItems.MONITOR.get())
|
|| stack.is(ModItems.MONITOR.get())
|
||||||
|| (player.getVehicle() instanceof ICannonEntity)
|
|| (player.getVehicle() instanceof ICannonEntity)
|
||||||
|| (player.getVehicle() instanceof IArmedVehicleEntity iVehicle && iVehicle.isDriver(player) && stack.is(ItemStack.EMPTY.getItem()))
|
|| (player.getVehicle() instanceof IArmedVehicleEntity iVehicle && iVehicle.isDriver(player) && stack.is(ItemStack.EMPTY.getItem()))
|
||||||
|
@ -241,7 +238,7 @@ public class ClickHandler {
|
||||||
ModUtils.PACKET_HANDLER.sendToServer(new SensitivityMessage(false));
|
ModUtils.PACKET_HANDLER.sendToServer(new SensitivityMessage(false));
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((player.getMainHandItem().is(ModTags.Items.GUN) && !(player.getVehicle() instanceof ICannonEntity))
|
if ((stack.is(ModTags.Items.GUN) && !(player.getVehicle() instanceof ICannonEntity))
|
||||||
|| stack.is(ModItems.MONITOR.get())
|
|| stack.is(ModItems.MONITOR.get())
|
||||||
|| (player.getVehicle() instanceof ICannonEntity)
|
|| (player.getVehicle() instanceof ICannonEntity)
|
||||||
|| (player.getVehicle() instanceof IArmedVehicleEntity iVehicle && iVehicle.isDriver(player) && stack.is(ItemStack.EMPTY.getItem()))
|
|| (player.getVehicle() instanceof IArmedVehicleEntity iVehicle && iVehicle.isDriver(player) && stack.is(ItemStack.EMPTY.getItem()))
|
||||||
|
@ -262,7 +259,6 @@ public class ClickHandler {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
if (player.hasEffect(ModMobEffects.SHOCK.get())) {
|
if (player.hasEffect(ModMobEffects.SHOCK.get())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -282,7 +278,6 @@ public class ClickHandler {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void handleWeaponFirePress(Player player, ItemStack stack) {
|
public static void handleWeaponFirePress(Player player, ItemStack stack) {
|
||||||
|
|
||||||
if (player.hasEffect(ModMobEffects.SHOCK.get())) {
|
if (player.hasEffect(ModMobEffects.SHOCK.get())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -395,7 +390,6 @@ public class ClickHandler {
|
||||||
|
|
||||||
private static void handleVehicleMove(int key, int state, Player player) {
|
private static void handleVehicleMove(int key, int state, Player player) {
|
||||||
if (player.getVehicle() != null && player.getVehicle() instanceof IArmedVehicleEntity && player.getVehicle().getFirstPassenger() == player) {
|
if (player.getVehicle() != null && player.getVehicle() instanceof IArmedVehicleEntity && player.getVehicle().getFirstPassenger() == player) {
|
||||||
|
|
||||||
var options = Minecraft.getInstance().options;
|
var options = Minecraft.getInstance().options;
|
||||||
|
|
||||||
if (key == options.keyLeft.getKey().getValue()) {
|
if (key == options.keyLeft.getKey().getValue()) {
|
||||||
|
@ -439,5 +433,4 @@ public class ClickHandler {
|
||||||
player.displayClientMessage(Component.translatable("des.superbwarfare.no_cloth_config").withStyle(ChatFormatting.RED), true);
|
player.displayClientMessage(Component.translatable("des.superbwarfare.no_cloth_config").withStyle(ChatFormatting.RED), true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -295,7 +295,7 @@ public class ClientEventHandler {
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((holdFire || burstFireSize > 0)
|
if ((holdFire || burstFireSize > 0)
|
||||||
&& (player.getMainHandItem().is(ModTags.Items.NORMAL_GUN)
|
&& (stack.is(ModTags.Items.NORMAL_GUN)
|
||||||
&& cantFireTime == 0
|
&& cantFireTime == 0
|
||||||
&& drawTime < 0.01
|
&& drawTime < 0.01
|
||||||
&& !notInGame()
|
&& !notInGame()
|
||||||
|
@ -306,15 +306,13 @@ public class ClientEventHandler {
|
||||||
&& GunsTool.getGunIntTag(stack, "Ammo", 0) > 0
|
&& GunsTool.getGunIntTag(stack, "Ammo", 0) > 0
|
||||||
&& !player.getCooldowns().isOnCooldown(stack.getItem())
|
&& !player.getCooldowns().isOnCooldown(stack.getItem())
|
||||||
&& !GunsTool.getGunBooleanTag(stack, "NeedBoltAction", false)
|
&& !GunsTool.getGunBooleanTag(stack, "NeedBoltAction", false)
|
||||||
&& revolverPre()
|
&& revolverPre())
|
||||||
)
|
|
||||||
|| (stack.is(ModItems.MINIGUN.get())
|
|| (stack.is(ModItems.MINIGUN.get())
|
||||||
&& !player.isSprinting()
|
&& !player.isSprinting()
|
||||||
&& stack.getOrCreateTag().getDouble("overheat") == 0
|
&& stack.getOrCreateTag().getDouble("overheat") == 0
|
||||||
&& !player.getCooldowns().isOnCooldown(stack.getItem()) && miniGunRot >= 20
|
&& !player.getCooldowns().isOnCooldown(stack.getItem()) && miniGunRot >= 20
|
||||||
&& ((player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables())).rifleAmmo > 0 || player.getInventory().hasAnyMatching(s -> s.is(ModItems.CREATIVE_AMMO_BOX.get())))
|
&& ((player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables())).rifleAmmo > 0 || player.getInventory().hasAnyMatching(s -> s.is(ModItems.CREATIVE_AMMO_BOX.get())))
|
||||||
))) {
|
))) {
|
||||||
|
|
||||||
if (mode == 0) {
|
if (mode == 0) {
|
||||||
if (clientTimer.getProgress() == 0) {
|
if (clientTimer.getProgress() == 0) {
|
||||||
clientTimer.start();
|
clientTimer.start();
|
||||||
|
@ -333,7 +331,6 @@ public class ClientEventHandler {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (notInGame()) {
|
if (notInGame()) {
|
||||||
clientTimer.stop();
|
clientTimer.stop();
|
||||||
}
|
}
|
||||||
|
@ -456,12 +453,13 @@ public class ClientEventHandler {
|
||||||
public static void handleClientShoot() {
|
public static void handleClientShoot() {
|
||||||
Player player = Minecraft.getInstance().player;
|
Player player = Minecraft.getInstance().player;
|
||||||
if (player == null) return;
|
if (player == null) return;
|
||||||
if (!player.getMainHandItem().is(ModTags.Items.GUN)) return;
|
ItemStack stack = player.getMainHandItem();
|
||||||
|
if (!stack.is(ModTags.Items.GUN)) return;
|
||||||
|
|
||||||
ModUtils.PACKET_HANDLER.sendToServer(new ShootMessage(gunSpread));
|
ModUtils.PACKET_HANDLER.sendToServer(new ShootMessage(gunSpread));
|
||||||
fireRecoilTime = 10;
|
fireRecoilTime = 10;
|
||||||
|
|
||||||
float gunRecoilY = (float) GunsTool.getGunDoubleTag(player.getMainHandItem(), "RecoilY", 0) * 10;
|
float gunRecoilY = (float) GunsTool.getGunDoubleTag(stack, "RecoilY", 0) * 10;
|
||||||
|
|
||||||
recoilY = (float) (2 * Math.random() - 1) * gunRecoilY;
|
recoilY = (float) (2 * Math.random() - 1) * gunRecoilY;
|
||||||
|
|
||||||
|
@ -645,10 +643,11 @@ public class ClientEventHandler {
|
||||||
Entity entity = event.getCamera().getEntity();
|
Entity entity = event.getCamera().getEntity();
|
||||||
handlePlayerCamera(event);
|
handlePlayerCamera(event);
|
||||||
|
|
||||||
if (level != null && entity instanceof LivingEntity living
|
if (!(entity instanceof LivingEntity living)) return;
|
||||||
&& living.getMainHandItem().is(ModItems.MONITOR.get())
|
ItemStack stack = living.getMainHandItem();
|
||||||
&& living.getMainHandItem().getOrCreateTag().getBoolean("Using")
|
|
||||||
&& living.getMainHandItem().getOrCreateTag().getBoolean("Linked")) {
|
if (level != null &&
|
||||||
|
(stack.is(ModItems.MONITOR.get()) && stack.getOrCreateTag().getBoolean("Using") && stack.getOrCreateTag().getBoolean("Linked"))) {
|
||||||
handleDroneCamera(event, living);
|
handleDroneCamera(event, living);
|
||||||
} else {
|
} else {
|
||||||
var effect = Minecraft.getInstance().gameRenderer.currentEffect();
|
var effect = Minecraft.getInstance().gameRenderer.currentEffect();
|
||||||
|
@ -657,7 +656,7 @@ public class ClientEventHandler {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (level != null && entity instanceof LivingEntity living && living.getMainHandItem().is(ModTags.Items.GUN)) {
|
if (level != null && stack.is(ModTags.Items.GUN)) {
|
||||||
handleWeaponSway(living);
|
handleWeaponSway(living);
|
||||||
handleWeaponMove(living);
|
handleWeaponMove(living);
|
||||||
handleWeaponZoom(living);
|
handleWeaponZoom(living);
|
||||||
|
@ -676,12 +675,11 @@ public class ClientEventHandler {
|
||||||
float yaw = event.getYaw();
|
float yaw = event.getYaw();
|
||||||
float pitch = event.getPitch();
|
float pitch = event.getPitch();
|
||||||
float roll = event.getRoll();
|
float roll = event.getRoll();
|
||||||
float shakeRadiusAmplitude;
|
|
||||||
|
|
||||||
shakeTime = Mth.lerp(0.25 * times, shakeTime, 0);
|
shakeTime = Mth.lerp(0.25 * times, shakeTime, 0);
|
||||||
|
|
||||||
if (player != null && shakeTime > 0) {
|
if (player != null && shakeTime > 0) {
|
||||||
shakeRadiusAmplitude = (float) Mth.clamp(1 - player.position().distanceTo(new Vec3(shakePos[0], shakePos[1], shakePos[2])) / shakeRadius, 0, 1);
|
float shakeRadiusAmplitude = (float) Mth.clamp(1 - player.position().distanceTo(new Vec3(shakePos[0], shakePos[1], shakePos[2])) / shakeRadius, 0, 1);
|
||||||
|
|
||||||
if (shakeType > 0) {
|
if (shakeType > 0) {
|
||||||
event.setYaw((float) (yaw + (shakeTime * Math.sin(0.5 * Math.PI * shakeTime) * shakeAmplitude * shakeRadiusAmplitude * shakeType)));
|
event.setYaw((float) (yaw + (shakeTime * Math.sin(0.5 * Math.PI * shakeTime) * shakeAmplitude * shakeRadiusAmplitude * shakeType)));
|
||||||
|
@ -692,7 +690,6 @@ public class ClientEventHandler {
|
||||||
event.setPitch((float) (pitch + (shakeTime * Math.sin(0.5 * Math.PI * shakeTime) * shakeAmplitude * shakeRadiusAmplitude * shakeType)));
|
event.setPitch((float) (pitch + (shakeTime * Math.sin(0.5 * Math.PI * shakeTime) * shakeAmplitude * shakeRadiusAmplitude * shakeType)));
|
||||||
event.setRoll((float) (roll + (shakeTime * Math.sin(0.5 * Math.PI * shakeTime) * shakeAmplitude * shakeRadiusAmplitude)));
|
event.setRoll((float) (roll + (shakeTime * Math.sin(0.5 * Math.PI * shakeTime) * shakeAmplitude * shakeRadiusAmplitude)));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -763,14 +760,15 @@ public class ClientEventHandler {
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void handleWeaponSway(LivingEntity entity) {
|
private static void handleWeaponSway(LivingEntity entity) {
|
||||||
if (entity.getMainHandItem().is(ModTags.Items.GUN) && entity instanceof Player player) {
|
ItemStack stack = entity.getMainHandItem();
|
||||||
|
if (stack.is(ModTags.Items.GUN) && entity instanceof Player player) {
|
||||||
float times = 2 * (float) Math.min(Minecraft.getInstance().getDeltaFrameTime(), 0.8);
|
float times = 2 * (float) Math.min(Minecraft.getInstance().getDeltaFrameTime(), 0.8);
|
||||||
double pose;
|
double pose;
|
||||||
|
|
||||||
if (player.isShiftKeyDown() && player.getBbHeight() >= 1 && PlayerEventHandler.isProne(player)) {
|
if (player.isShiftKeyDown() && player.getBbHeight() >= 1 && PlayerEventHandler.isProne(player)) {
|
||||||
pose = 0.85;
|
pose = 0.85;
|
||||||
} else if (PlayerEventHandler.isProne(player)) {
|
} else if (PlayerEventHandler.isProne(player)) {
|
||||||
pose = GunsTool.getAttachmentType(player.getMainHandItem(), GunsTool.AttachmentType.GRIP) == 3 ? 0 : 0.25f;
|
pose = GunsTool.getAttachmentType(stack, GunsTool.AttachmentType.GRIP) == 3 ? 0 : 0.25f;
|
||||||
} else {
|
} else {
|
||||||
pose = 1;
|
pose = 1;
|
||||||
}
|
}
|
||||||
|
@ -1241,15 +1239,16 @@ public class ClientEventHandler {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ItemStack stack = mc.player.getMainHandItem();
|
||||||
|
|
||||||
if (mc.player.getVehicle() instanceof SpeedboatEntity && zoom) {
|
if (mc.player.getVehicle() instanceof SpeedboatEntity && zoom) {
|
||||||
event.setCanceled(true);
|
event.setCanceled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mc.player.getMainHandItem().is(ModTags.Items.GUN) || (mc.player.getVehicle() != null && mc.player.getVehicle() instanceof ICannonEntity)) {
|
if (stack.is(ModTags.Items.GUN) || (mc.player.getVehicle() != null && mc.player.getVehicle() instanceof ICannonEntity)) {
|
||||||
event.setCanceled(true);
|
event.setCanceled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
ItemStack stack = mc.player.getMainHandItem();
|
|
||||||
if (stack.is(ModItems.MONITOR.get()) && stack.getOrCreateTag().getBoolean("Using") && stack.getOrCreateTag().getBoolean("Linked")) {
|
if (stack.is(ModItems.MONITOR.get()) && stack.getOrCreateTag().getBoolean("Using") && stack.getOrCreateTag().getBoolean("Linked")) {
|
||||||
event.setCanceled(true);
|
event.setCanceled(true);
|
||||||
}
|
}
|
||||||
|
|
|
@ -318,8 +318,9 @@ public class LivingEventHandler {
|
||||||
if (player instanceof ServerPlayer serverPlayer) {
|
if (player instanceof ServerPlayer serverPlayer) {
|
||||||
if (newStack.getItem() != oldStack.getItem()
|
if (newStack.getItem() != oldStack.getItem()
|
||||||
|| newStack.getTag() == null || oldStack.getTag() == null
|
|| newStack.getTag() == null || oldStack.getTag() == null
|
||||||
// || !GunsTool.getGunData(newStack).hasUUID("UUID") || !GunsTool.getGunData(oldStack).hasUUID("UUID")
|
|| (newStack.is(ModTags.Items.GUN) && !GunsTool.getGunData(newStack).hasUUID("UUID"))
|
||||||
|| !Objects.equals(GunsTool.getGunUUID(newStack), GunsTool.getGunUUID(oldStack))
|
|| (oldStack.is(ModTags.Items.GUN) && !GunsTool.getGunData(oldStack).hasUUID("UUID"))
|
||||||
|
|| (newStack.is(ModTags.Items.GUN) && oldStack.is(ModTags.Items.GUN) && !Objects.equals(GunsTool.getGunUUID(newStack), GunsTool.getGunUUID(oldStack)))
|
||||||
) {
|
) {
|
||||||
if (oldStack.getItem() instanceof GunItem oldGun) {
|
if (oldStack.getItem() instanceof GunItem oldGun) {
|
||||||
stopGunReloadSound(serverPlayer, oldGun);
|
stopGunReloadSound(serverPlayer, oldGun);
|
||||||
|
|
Loading…
Add table
Reference in a new issue