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
@@ -1,15 +1,15 @@
package dev.amble.ait.client.sounds.flight;

import dev.amble.ait.client.AITModClient;
import net.minecraft.client.MinecraftClient;
import net.minecraft.sound.SoundCategory;

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;

import net.minecraft.client.MinecraftClient;
import net.minecraft.sound.SoundCategory;
import net.minecraft.util.math.MathHelper;

public class ClientFlightMusicHandler extends SoundHandler {
Expand Down Expand Up @@ -44,7 +44,10 @@ private void generate() {
public void tick(MinecraftClient client) {
ClientTardis tardis = ClientTardisUtil.getCurrentTardis();

if (tardis == null) return;
if (tardis == null) {
this.stopSounds();
return;
}

if (this.sounds == null)
this.generate();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,6 @@
import java.util.ArrayList;
import java.util.List;

import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
import net.fabricmc.fabric.api.networking.v1.PacketByteBufs;

import net.minecraft.client.MinecraftClient;
import net.minecraft.client.sound.SoundInstance;
import net.minecraft.network.PacketByteBuf;
import net.minecraft.sound.SoundCategory;
import net.minecraft.sound.SoundEvents;
import net.minecraft.util.Identifier;

import dev.amble.ait.api.tardis.TardisClientEvents;
import dev.amble.ait.api.tardis.TardisComponent;
import dev.amble.ait.client.AITModClient;
Expand All @@ -25,6 +15,15 @@
import dev.amble.ait.core.tardis.handler.ServerHumHandler;
import dev.amble.ait.data.hum.Hum;
import dev.amble.ait.registry.impl.HumRegistry;
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
import net.fabricmc.fabric.api.networking.v1.PacketByteBufs;

import net.minecraft.client.MinecraftClient;
import net.minecraft.client.sound.SoundInstance;
import net.minecraft.network.PacketByteBuf;
import net.minecraft.sound.SoundCategory;
import net.minecraft.sound.SoundEvents;
import net.minecraft.util.Identifier;

public class ClientHumHandler extends SoundHandler {

Expand All @@ -39,13 +38,7 @@ public class ClientHumHandler extends SoundHandler {
}

private static void refresh() {
if (MinecraftClient.getInstance().world == null)
return;

ClientHumHandler handler = ClientSoundManager.getHum();
handler.stopSounds();
handler.current = null;
handler.needsReinit = true;
ClientSoundManager.getHum().reset();
}

protected ClientHumHandler() {
Expand All @@ -68,9 +61,19 @@ protected ClientHumHandler() {
}

public void onSynced() {
this.reset();
this.sounds = registryToList();
}

public void reset() {
if (this.current != null)
this.stopSound(this.current);

this.stopSounds();
this.current = null;
this.needsReinit = true;
}

public LoopingSound getHum(ClientTardis tardis) {
if (this.current == null)
this.current = (LoopingSound) findSoundByEvent(
Expand Down Expand Up @@ -137,12 +140,12 @@ public void tick(MinecraftClient client) {
if (this.sounds == null)
this.generateHums();

if (this.suppressed) {
this.stopSounds();
if (this.suppressed || tardis == null) {
this.reset();
return;
}

if (this.needsReinit && tardis != null) {
if (this.needsReinit) {
this.needsReinit = false;
this.current = null;
this.getHum(tardis);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,18 @@
import java.util.HashMap;
import java.util.UUID;

import net.minecraft.client.network.AbstractClientPlayerEntity;

import dev.amble.ait.api.ClientWorldEvents;
import dev.amble.ait.client.sounds.ClientSoundManager;

import net.minecraft.client.network.AbstractClientPlayerEntity;

public class SonicSoundHandler {
private final HashMap<UUID, SonicSound> sounds;

static {
ClientWorldEvents.CHANGE_WORLD.register((client, world) -> {
SonicSoundHandler handler = ClientSoundManager.getSonicSound();
handler.sounds.values().forEach(SonicSound::stop);
handler.sounds.clear();
handler.stopAll();
});
}

Expand All @@ -37,4 +36,9 @@ public void onUse(AbstractClientPlayerEntity user) {
public void onFinishUse(AbstractClientPlayerEntity user) {
this.get(user).onFinishUse();
}

public void stopAll() {
this.sounds.values().forEach(SonicSound::stop);
this.sounds.clear();
}
}
25 changes: 13 additions & 12 deletions src/main/java/dev/amble/ait/client/util/ClientTardisUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,16 @@
import java.util.Optional;
import java.util.UUID;

import dev.amble.ait.api.ClientWorldEvents;
import dev.amble.ait.api.tardis.TardisClientEvents;
import dev.amble.ait.api.tardis.link.v2.TardisRef;
import dev.amble.ait.client.tardis.ClientTardis;
import dev.amble.ait.client.tardis.manager.ClientTardisManager;
import dev.amble.ait.core.tardis.Tardis;
import dev.amble.ait.core.tardis.TardisExterior;
import dev.amble.ait.core.tardis.handler.SonicHandler;
import dev.amble.ait.core.world.TardisServerWorld;
import dev.amble.ait.data.schema.sonic.SonicSchema;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents;
Expand All @@ -23,17 +33,6 @@
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;

import dev.amble.ait.api.ClientWorldEvents;
import dev.amble.ait.api.tardis.TardisClientEvents;
import dev.amble.ait.api.tardis.link.v2.TardisRef;
import dev.amble.ait.client.tardis.ClientTardis;
import dev.amble.ait.client.tardis.manager.ClientTardisManager;
import dev.amble.ait.core.tardis.Tardis;
import dev.amble.ait.core.tardis.TardisExterior;
import dev.amble.ait.core.tardis.handler.SonicHandler;
import dev.amble.ait.core.world.TardisServerWorld;
import dev.amble.ait.data.schema.sonic.SonicSchema;

@Environment(EnvType.CLIENT)
public class ClientTardisUtil {

Expand All @@ -50,11 +49,13 @@ public class ClientTardisUtil {
public static void init() {
ClientWorldEvents.CHANGE_WORLD.register((client, world) -> {
UUID id = TardisServerWorld.getTardisId(world);
currentTardis = new TardisRef(id, uuid -> ClientTardisManager.getInstance().demandTardis(uuid));
if (id == null) {
currentTardis = null;
TardisClientEvents.ENTER_CLIENT_TARDIS.invoker().enterClientTardis(null);
return;
}

currentTardis = new TardisRef(id, uuid -> ClientTardisManager.getInstance().demandTardis(uuid));
if (currentTardis.isEmpty()) {
ClientTardisManager.getInstance().subscribers.put(id, clientTardis -> {
TardisClientEvents.ENTER_CLIENT_TARDIS.invoker().enterClientTardis(clientTardis);
Expand Down
Loading