添加电击屏幕抖动强度设置
This commit is contained in:
parent
20cfbb5389
commit
2f663490fc
5 changed files with 24 additions and 7 deletions
|
@ -74,5 +74,13 @@ public class DisplayClothConfig {
|
||||||
.setSaveConsumer(DisplayConfig.EXPLOSION_SCREEN_SHAKE::set)
|
.setSaveConsumer(DisplayConfig.EXPLOSION_SCREEN_SHAKE::set)
|
||||||
.setTooltip(Component.translatable("config.superbwarfare.client.display.explosion_screen_shake.des"))
|
.setTooltip(Component.translatable("config.superbwarfare.client.display.explosion_screen_shake.des"))
|
||||||
.build());
|
.build());
|
||||||
|
|
||||||
|
category.addEntry(entryBuilder
|
||||||
|
.startIntSlider(Component.translatable("config.superbwarfare.client.display.shock_screen_shake"), DisplayConfig.SHOCK_SCREEN_SHAKE.get(),
|
||||||
|
0, 100)
|
||||||
|
.setDefaultValue(100)
|
||||||
|
.setSaveConsumer(DisplayConfig.SHOCK_SCREEN_SHAKE::set)
|
||||||
|
.setTooltip(Component.translatable("config.superbwarfare.client.display.shock_screen_shake.des"))
|
||||||
|
.build());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,6 +12,7 @@ public class DisplayConfig {
|
||||||
public static ModConfigSpec.BooleanValue STAMINA_HUD;
|
public static ModConfigSpec.BooleanValue STAMINA_HUD;
|
||||||
public static ModConfigSpec.IntValue WEAPON_SCREEN_SHAKE;
|
public static ModConfigSpec.IntValue WEAPON_SCREEN_SHAKE;
|
||||||
public static ModConfigSpec.IntValue EXPLOSION_SCREEN_SHAKE;
|
public static ModConfigSpec.IntValue EXPLOSION_SCREEN_SHAKE;
|
||||||
|
public static ModConfigSpec.IntValue SHOCK_SCREEN_SHAKE;
|
||||||
|
|
||||||
public static void init(ModConfigSpec.Builder builder) {
|
public static void init(ModConfigSpec.Builder builder) {
|
||||||
builder.push("display");
|
builder.push("display");
|
||||||
|
@ -40,6 +41,9 @@ public class DisplayConfig {
|
||||||
builder.comment("The strength of screen shaking while exploding");
|
builder.comment("The strength of screen shaking while exploding");
|
||||||
EXPLOSION_SCREEN_SHAKE = builder.defineInRange("explosion_screen_shake", 100, 0, 100);
|
EXPLOSION_SCREEN_SHAKE = builder.defineInRange("explosion_screen_shake", 100, 0, 100);
|
||||||
|
|
||||||
|
builder.comment("The strength of screen shaking when shocked");
|
||||||
|
SHOCK_SCREEN_SHAKE = builder.defineInRange("shock_screen_shake", 100, 0, 100);
|
||||||
|
|
||||||
builder.pop();
|
builder.pop();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1121,7 +1121,6 @@ public class ClientEventHandler {
|
||||||
moveFadeTime = Mth.lerp(0.1 * times, moveFadeTime, 0);
|
moveFadeTime = Mth.lerp(0.1 * times, moveFadeTime, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
movePosX = 0.2 * Math.sin(1 * Math.PI * moveXTime) * (1 - 0.95 * zoomTime) * moveFadeTime;
|
movePosX = 0.2 * Math.sin(1 * Math.PI * moveXTime) * (1 - 0.95 * zoomTime) * moveFadeTime;
|
||||||
movePosY = -0.135 * Math.sin(2 * Math.PI * (moveYTime - 0.25)) * (1 - 0.95 * zoomTime) * moveFadeTime;
|
movePosY = -0.135 * Math.sin(2 * Math.PI * (moveYTime - 0.25)) * (1 - 0.95 * zoomTime) * moveFadeTime;
|
||||||
|
|
||||||
|
@ -1141,7 +1140,6 @@ public class ClientEventHandler {
|
||||||
pos = 0;
|
pos = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
movePosHorizon = Mth.lerp(0.1f * times, movePosHorizon, pos * (1 - 1 * zoomTime));
|
movePosHorizon = Mth.lerp(0.1f * times, movePosHorizon, pos * (1 - 1 * zoomTime));
|
||||||
|
|
||||||
double velocity = entity.getDeltaMovement().y() + 0.078;
|
double velocity = entity.getDeltaMovement().y() + 0.078;
|
||||||
|
@ -1179,7 +1177,6 @@ public class ClientEventHandler {
|
||||||
if (cantFireTime <= 10) {
|
if (cantFireTime <= 10) {
|
||||||
zoomTime = Mth.clamp(zoomTime + 0.03 * speed * times, 0, 1);
|
zoomTime = Mth.clamp(zoomTime + 0.03 * speed * times, 0, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
zoomTime = Mth.clamp(zoomTime - 0.04 * speed * times, 0, 1);
|
zoomTime = Mth.clamp(zoomTime - 0.04 * speed * times, 0, 1);
|
||||||
}
|
}
|
||||||
|
@ -1222,7 +1219,6 @@ public class ClientEventHandler {
|
||||||
if (0.454 <= firePosTimer && firePosTimer < 1) {
|
if (0.454 <= firePosTimer && firePosTimer < 1) {
|
||||||
firePos = 4.34 * Math.pow(firePosTimer, 2) - 6.5 * firePosTimer + 2.167;
|
firePos = 4.34 * Math.pow(firePosTimer, 2) - 6.5 * firePosTimer + 2.167;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (0 < fireRotTimer && fireRotTimer < 1.732) {
|
if (0 < fireRotTimer && fireRotTimer < 1.732) {
|
||||||
fireRotTimer += 0.18 * (1.9 - fireRotTimer) * times;
|
fireRotTimer += 0.18 * (1.9 - fireRotTimer) * times;
|
||||||
}
|
}
|
||||||
|
@ -1377,9 +1373,14 @@ public class ClientEventHandler {
|
||||||
|
|
||||||
private static void handleShockCamera(ViewportEvent.ComputeCameraAngles event, LivingEntity entity) {
|
private static void handleShockCamera(ViewportEvent.ComputeCameraAngles event, LivingEntity entity) {
|
||||||
if (entity.hasEffect(ModMobEffects.SHOCK) && Minecraft.getInstance().options.getCameraType() == CameraType.FIRST_PERSON) {
|
if (entity.hasEffect(ModMobEffects.SHOCK) && Minecraft.getInstance().options.getCameraType() == CameraType.FIRST_PERSON) {
|
||||||
event.setYaw(Minecraft.getInstance().gameRenderer.getMainCamera().getYRot() + (float) Mth.nextDouble(RandomSource.create(), -3, 3));
|
float shakeStrength = (float) (DisplayConfig.SHOCK_SCREEN_SHAKE.get() / 100.0);
|
||||||
event.setPitch(Minecraft.getInstance().gameRenderer.getMainCamera().getXRot() + (float) Mth.nextDouble(RandomSource.create(), -3, 3));
|
if (shakeStrength <= 0.0f) return;
|
||||||
event.setRoll((float) Mth.nextDouble(RandomSource.create(), 8, 12));
|
|
||||||
|
event.setYaw(Minecraft.getInstance().gameRenderer.getMainCamera().getYRot() +
|
||||||
|
(float) Mth.nextDouble(RandomSource.create(), -3, 3) * shakeStrength);
|
||||||
|
event.setPitch(Minecraft.getInstance().gameRenderer.getMainCamera().getXRot() +
|
||||||
|
(float) Mth.nextDouble(RandomSource.create(), -3, 3) * shakeStrength);
|
||||||
|
event.setRoll((float) Mth.nextDouble(RandomSource.create(), 8, 12) * shakeStrength);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -547,6 +547,8 @@
|
||||||
"config.superbwarfare.client.display.weapon_screen_shake.des": "The strength of the screen shake caused by weapons",
|
"config.superbwarfare.client.display.weapon_screen_shake.des": "The strength of the screen shake caused by weapons",
|
||||||
"config.superbwarfare.client.display.explosion_screen_shake": "Explosion Screen Shake Strength",
|
"config.superbwarfare.client.display.explosion_screen_shake": "Explosion Screen Shake Strength",
|
||||||
"config.superbwarfare.client.display.explosion_screen_shake.des": "The strength of the screen shake caused by explosions",
|
"config.superbwarfare.client.display.explosion_screen_shake.des": "The strength of the screen shake caused by explosions",
|
||||||
|
"config.superbwarfare.client.display.shock_screen_shake": "Shock Screen Shake Strength",
|
||||||
|
"config.superbwarfare.client.display.shock_screen_shake.des": "The strength of the screen shake caused by shock effect",
|
||||||
"config.superbwarfare.client.vehicle": "Control Vehicle",
|
"config.superbwarfare.client.vehicle": "Control Vehicle",
|
||||||
"config.superbwarfare.client.vehicle.invert_aircraft_control": "Invert Aircraft Control",
|
"config.superbwarfare.client.vehicle.invert_aircraft_control": "Invert Aircraft Control",
|
||||||
"config.superbwarfare.client.vehicle.left_click_reload.des": "Set TRUE to invert aircraft control",
|
"config.superbwarfare.client.vehicle.left_click_reload.des": "Set TRUE to invert aircraft control",
|
||||||
|
|
|
@ -548,6 +548,8 @@
|
||||||
"config.superbwarfare.client.display.weapon_screen_shake.des": "武器开火时,屏幕抖动的强度",
|
"config.superbwarfare.client.display.weapon_screen_shake.des": "武器开火时,屏幕抖动的强度",
|
||||||
"config.superbwarfare.client.display.explosion_screen_shake": "爆炸屏幕抖动",
|
"config.superbwarfare.client.display.explosion_screen_shake": "爆炸屏幕抖动",
|
||||||
"config.superbwarfare.client.display.explosion_screen_shake.des": "爆炸时,屏幕抖动的强度",
|
"config.superbwarfare.client.display.explosion_screen_shake.des": "爆炸时,屏幕抖动的强度",
|
||||||
|
"config.superbwarfare.client.display.shock_screen_shake": "电击屏幕抖动",
|
||||||
|
"config.superbwarfare.client.display.shock_screen_shake.des": "受到电击效果时,屏幕抖动的强度",
|
||||||
"config.superbwarfare.client.vehicle": "载具控制",
|
"config.superbwarfare.client.vehicle": "载具控制",
|
||||||
"config.superbwarfare.client.vehicle.invert_aircraft_control": "飞行器鼠标反转",
|
"config.superbwarfare.client.vehicle.invert_aircraft_control": "飞行器鼠标反转",
|
||||||
"config.superbwarfare.client.vehicle.left_click_reload.des": "开启飞行器鼠标反转",
|
"config.superbwarfare.client.vehicle.left_click_reload.des": "开启飞行器鼠标反转",
|
||||||
|
|
Loading…
Add table
Reference in a new issue