From 6b1f145f5028f1bc92cf478e5963224e7d94b5cd Mon Sep 17 00:00:00 2001 From: miozune Date: Sat, 28 Sep 2024 20:16:09 +0900 Subject: Unify machine sound loop to use SoundResource (#3289) --- src/main/java/gregtech/api/enums/SoundResource.java | 16 +++++++++++++++- .../implementations/MTEMultiBlockBase.java | 11 +++++++---- .../machines/multi/MTEElectricBlastFurnace.java | 5 ++--- .../tileentities/machines/multi/MTEFusionComputer.java | 5 ++--- .../tileentities/machines/multi/MTELargeTurbine.java | 5 ++--- .../tileentities/machines/multi/MTEMultiAutoclave.java | 5 ++--- .../tileentities/machines/multi/MTEMultiLathe.java | 5 ++--- .../tileentities/machines/multi/MTEOilDrillBase.java | 5 ++--- .../tileentities/machines/multi/MTEPlasmaForge.java | 5 ++--- .../tileentities/machines/multi/MTEVacuumFreezer.java | 5 ++--- .../multi/purification/MTEPurificationUnitClarifier.java | 5 ++--- .../purification/MTEPurificationUnitFlocculation.java | 5 ++--- .../multi/purification/MTEPurificationUnitOzonation.java | 5 ++--- .../purification/MTEPurificationUnitPhAdjustment.java | 5 ++--- .../purification/MTEPurificationUnitPlasmaHeater.java | 5 ++--- .../purification/MTEPurificationUnitUVTreatment.java | 5 ++--- 16 files changed, 50 insertions(+), 47 deletions(-) (limited to 'src/main/java/gregtech') diff --git a/src/main/java/gregtech/api/enums/SoundResource.java b/src/main/java/gregtech/api/enums/SoundResource.java index 9de5c56015..f262dc2619 100644 --- a/src/main/java/gregtech/api/enums/SoundResource.java +++ b/src/main/java/gregtech/api/enums/SoundResource.java @@ -2,6 +2,7 @@ package gregtech.api.enums; import static gregtech.api.enums.Mods.GregTech; import static gregtech.api.enums.Mods.IndustrialCraft2; +import static gregtech.api.enums.Mods.TecTech; import java.util.EnumSet; import java.util.Locale; @@ -100,6 +101,10 @@ public enum SoundResource { GT_MACHINES_QUANTUM_FORCE_TRANSFORMER_LOOP(264, GregTech.ID, "machines.MTEQuantumForceTransformer"), GT_MACHINES_ADV_EBF_LOOP(265, GregTech.ID, "machines.MTEAdvEBF"), GT_MACHINES_LARGE_TURBINES_LOOP(266, GregTech.ID, "machines.MTELargeTurbine"), + TECTECH_MACHINES_FX_LOW_FREQ(267, TecTech.ID, "fx_lo_freq"), + TECTECH_MACHINES_FX_HIGH_FREQ(268, TecTech.ID, "fx_hi_freq"), + TECTECH_MACHINES_NOISE(269, TecTech.ID, "fx_noise"), + TECTECH_MACHINES_FX_WHOOUM(270, TecTech.ID, "fx_whooum"), GUI_BUTTON_DOWN(-1, GregTech.ID, "gui.buttonDown"), GUI_BUTTON_UP(-1, GregTech.ID, "gui.buttonUp"), @@ -346,7 +351,16 @@ public enum SoundResource { static { EnumSet.allOf(SoundResource.class) - .forEach(sound -> { if (sound.id >= 0) ID_SOUND_MAP.put(sound.id, sound); }); + .forEach(sound -> { + if (sound.id < 0) { + return; + } + + if (ID_SOUND_MAP.containsKey(sound.id)) { + throw new IllegalStateException(String.format("Sound ID %s is already occupied!", sound.id)); + } + ID_SOUND_MAP.put(sound.id, sound); + }); EnumSet.allOf(SoundResource.class) .forEach(sound -> RESOURCE_STR_SOUND_MAP.put(sound.resourceLocation.toString(), sound)); } diff --git a/src/main/java/gregtech/api/metatileentity/implementations/MTEMultiBlockBase.java b/src/main/java/gregtech/api/metatileentity/implementations/MTEMultiBlockBase.java index b677f6ae24..5da5bff57d 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/MTEMultiBlockBase.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/MTEMultiBlockBase.java @@ -32,7 +32,6 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ChatComponentTranslation; import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; import net.minecraft.util.StatCollector; import net.minecraft.world.World; import net.minecraftforge.common.util.Constants; @@ -677,10 +676,14 @@ public abstract class MTEMultiBlockBase extends MetaTileEntity } @SideOnly(Side.CLIENT) - protected void doActivitySound(ResourceLocation activitySound) { + protected void doActivitySound(SoundResource activitySound) { if (getBaseMetaTileEntity().isActive() && activitySound != null) { if (activitySoundLoop == null) { - activitySoundLoop = new GTSoundLoop(activitySound, getBaseMetaTileEntity(), false, true); + activitySoundLoop = new GTSoundLoop( + activitySound.resourceLocation, + getBaseMetaTileEntity(), + false, + true); Minecraft.getMinecraft() .getSoundHandler() .playSound(activitySoundLoop); @@ -710,7 +713,7 @@ public abstract class MTEMultiBlockBase extends MetaTileEntity * @return Sound that will be looped for as long as the machine is doing a recipe */ @SideOnly(Side.CLIENT) - protected ResourceLocation getActivitySoundLoop() { + protected SoundResource getActivitySoundLoop() { return null; } diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/MTEElectricBlastFurnace.java b/src/main/java/gregtech/common/tileentities/machines/multi/MTEElectricBlastFurnace.java index be11e400fe..47e4b75cad 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/MTEElectricBlastFurnace.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/MTEElectricBlastFurnace.java @@ -30,7 +30,6 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; import net.minecraft.util.StatCollector; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidStack; @@ -402,7 +401,7 @@ public class MTEElectricBlastFurnace extends MTEAbstractMultiFurnace @SideOnly(Side.CLIENT) @Override - protected ResourceLocation getActivitySoundLoop() { - return SoundResource.GT_MACHINES_MULTI_LATHE_LOOP.resourceLocation; + protected SoundResource getActivitySoundLoop() { + return SoundResource.GT_MACHINES_MULTI_LATHE_LOOP; } private int mCasingAmount; diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/MTEOilDrillBase.java b/src/main/java/gregtech/common/tileentities/machines/multi/MTEOilDrillBase.java index 35be525c51..721097d1c4 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/MTEOilDrillBase.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/MTEOilDrillBase.java @@ -25,7 +25,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; import net.minecraft.util.StatCollector; import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.chunk.Chunk; @@ -492,7 +491,7 @@ public abstract class MTEOilDrillBase extends MTEDrillerBase implements IMetrics @SideOnly(Side.CLIENT) @Override - protected ResourceLocation getActivitySoundLoop() { - return SoundResource.GT_MACHINES_OIL_DRILL_LOOP.resourceLocation; + protected SoundResource getActivitySoundLoop() { + return SoundResource.GT_MACHINES_OIL_DRILL_LOOP; } } diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/MTEPlasmaForge.java b/src/main/java/gregtech/common/tileentities/machines/multi/MTEPlasmaForge.java index df64db0554..0eb43414e4 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/MTEPlasmaForge.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/MTEPlasmaForge.java @@ -32,7 +32,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; import net.minecraft.util.StatCollector; import net.minecraft.world.ChunkCoordIntPair; import net.minecraftforge.common.util.ForgeDirection; @@ -1113,8 +1112,8 @@ public class MTEPlasmaForge extends MTEExtendedPowerMultiBlockBase { @SideOnly(Side.CLIENT) @Override - protected ResourceLocation getActivitySoundLoop() { - return SoundResource.GT_MACHINES_MULTI_VACUUM_FREEZER_LOOP.resourceLocation; + protected SoundResource getActivitySoundLoop() { + return SoundResource.GT_MACHINES_MULTI_VACUUM_FREEZER_LOOP; } } diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/purification/MTEPurificationUnitClarifier.java b/src/main/java/gregtech/common/tileentities/machines/multi/purification/MTEPurificationUnitClarifier.java index 4cd654af28..c35511d951 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/purification/MTEPurificationUnitClarifier.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/purification/MTEPurificationUnitClarifier.java @@ -21,7 +21,6 @@ import java.util.concurrent.ThreadLocalRandom; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidStack; @@ -326,7 +325,7 @@ public class MTEPurificationUnitClarifier extends MTEPurificationUnitBase { diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/purification/MTEPurificationUnitPlasmaHeater.java b/src/main/java/gregtech/common/tileentities/machines/multi/purification/MTEPurificationUnitPlasmaHeater.java index f59554171f..3f61f02cf0 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/purification/MTEPurificationUnitPlasmaHeater.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/purification/MTEPurificationUnitPlasmaHeater.java @@ -25,7 +25,6 @@ import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidStack; @@ -559,7 +558,7 @@ public class MTEPurificationUnitPlasmaHeater extends MTEPurificationUnitBase