Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,11 @@ public class AITClientConfig {
@FloatSlider(min = 0f, max = 1f, step = 0.01f)
@SerialEntry public float engineLoopVolume = 0.35f;

@AutoGen(category = CATEGORY)
@CustomFormat(ValueFormatters.PercentFormatter.class)
@FloatSlider(min = 0f, max = 1f, step = 0.05f)
@SerialEntry public float crashMusicVolume = 1f;

@AutoGen(category = CATEGORY)
@Boolean(formatter = Boolean.Formatter.YES_NO, colored = true)
@SerialEntry public boolean customMenu = true;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

import dev.amble.ait.client.sounds.alarm.ClientAlarmHandler;
import dev.amble.ait.client.sounds.console.ClientConsoleAmbientSoundsHandler;
import dev.amble.ait.client.sounds.crash_music.ClientCrashMusicSoundHandler;
import dev.amble.ait.client.sounds.drifting.ClientTwoThousandSoundHandler;
import dev.amble.ait.client.sounds.engine.ClientEngineLoopSoundHandler;
import dev.amble.ait.client.sounds.fall.ClientFallSoundHandler;
Expand All @@ -28,6 +29,7 @@
public class ClientSoundManager {
private static ClientHumHandler hum;
private static ClientAlarmHandler alarm;
private static ClientCrashMusicSoundHandler crashMusic;
private static ClientFlightHandler flight;
private static ClientCreakHandler creak;
private static ClientVortexSoundsHandler vortexSounds;
Expand Down Expand Up @@ -55,6 +57,13 @@ public static ClientAlarmHandler getAlarm() {
return alarm;
}

public static ClientCrashMusicSoundHandler getCrashMusic() {
if (crashMusic == null)
crashMusic = ClientCrashMusicSoundHandler.create();

return crashMusic;
}

public static ClientFlightHandler getFlight() {
if (flight == null)
flight = ClientFlightHandler.create();
Expand Down Expand Up @@ -144,6 +153,9 @@ public static void tick(MinecraftClient client) {
if (getAlarm() != null)
getAlarm().tick(client);

if (getCrashMusic() != null)
getCrashMusic().tick(client);

if (getHum() != null)
getHum().tick(client);

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
package dev.amble.ait.client.sounds.crash_music;

import net.minecraft.client.MinecraftClient;
import net.minecraft.sound.SoundCategory;

import dev.amble.ait.client.AITModClient;
import dev.amble.ait.client.sounds.LoopingSound;
import dev.amble.ait.client.sounds.PlayerFollowingLoopingSound;
import dev.amble.ait.client.sounds.SoundHandler;
import dev.amble.ait.client.tardis.ClientTardis;
import dev.amble.ait.client.util.ClientTardisUtil;
import dev.amble.ait.core.AITSounds;

public class ClientCrashMusicSoundHandler extends SoundHandler {

public static LoopingSound CRASH_MUSIC;

public LoopingSound getCrashMusic() {
if (CRASH_MUSIC == null)
CRASH_MUSIC = createCrashMusic();

return CRASH_MUSIC;
}

private LoopingSound createCrashMusic() {
return new PlayerFollowingLoopingSound(AITSounds.ARPALARM, SoundCategory.AMBIENT,
AITModClient.CONFIG.crashMusicVolume);
}

public static ClientCrashMusicSoundHandler create() {
ClientCrashMusicSoundHandler handler = new ClientCrashMusicSoundHandler();

handler.generate();
return handler;
}

private void generate() {
if (CRASH_MUSIC == null)
CRASH_MUSIC = createCrashMusic();

this.ofSounds(CRASH_MUSIC);
}

private boolean shouldPlaySound(ClientTardis tardis) {
return tardis != null && !tardis.crash().isNormal();
}

public void tick(MinecraftClient client) {
ClientTardis tardis = ClientTardisUtil.getCurrentTardis();

if (this.sounds == null)
this.generate();

if (this.shouldPlaySound(tardis)) {
this.getCrashMusic().setVolume(AITModClient.CONFIG.crashMusicVolume);
this.startIfNotPlaying(this.getCrashMusic());
} else {
this.stopSounds();
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import java.util.Optional;
import java.util.Random;

import dev.amble.ait.core.AITSounds;
import dev.amble.lib.data.CachedDirectedGlobalPos;
import dev.drtheo.queue.api.ActionQueue;

Expand Down Expand Up @@ -105,9 +104,6 @@ default void crash() {
tardis.crash().setState(TardisCrashHandler.State.UNSTABLE);
}

// play new arpalarm music - its stereo so it shouldn't matter where it's played from
tardis.asServer().world().playSound(null, 0, 0, 0, AITSounds.ARPALARM, SoundCategory.MASTER, 100000f, 1f);

TardisEvents.CRASH.invoker().onCrash(tardis);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
import dev.amble.ait.core.lock.LockedDimensionRegistry;
import dev.amble.ait.core.tardis.animation.v2.TardisAnimation;
import dev.amble.ait.core.tardis.animation.v2.datapack.TardisAnimationRegistry;
import dev.amble.ait.core.tardis.control.impl.DirectionControl;
import dev.amble.ait.core.tardis.control.impl.EngineOverloadControl;
import dev.amble.ait.core.tardis.control.impl.SecurityControl;
import dev.amble.ait.core.tardis.handler.TardisCrashHandler;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -854,6 +854,7 @@ public AmbleLanguageProvider addEnglishTranslations(FabricDataOutput output,
provider.addTranslation("yacl3.config.ait:client.temperatureType.unit.kelvin", "Kelvin (K)");
provider.addTranslation("yacl3.config.ait:client.handlesLevenshteinDistance", "Levenshtein distance for handles");
provider.addTranslation("yacl3.config.ait:server.flightSoundVolume", "Flight Sound Volume");
provider.addTranslation("yacl3.config.ait:client.crashMusicVolume", "Crash Music Volume");

provider.addTranslation("text.autoconfig.aitconfig.category.client", "Client");
provider.addTranslation("text.autoconfig.aitconfig.option.CLIENT.SHOW_EXPERIMENTAL_WARNING", "Show Experimental Warning");
Expand Down
Loading