From f04ae276af1346fb8ca5a022b21f5f372960ae13 Mon Sep 17 00:00:00 2001 From: Maxim Date: Sun, 26 Feb 2023 18:40:37 +0100 Subject: Multiblock Sounds (#1768) * Added methods to allow multiblocks to play sounds * Implemented first few sounds * Added sound to PA * Introduced static variables for sound indexes --- .../GT_MetaTileEntity_ImplosionCompressor.java | 12 +++++----- .../multi/GT_MetaTileEntity_OilDrillBase.java | 6 +++++ .../GT_MetaTileEntity_OreDrillingPlantBase.java | 6 +++++ .../multi/GT_MetaTileEntity_PCBFactory.java | 6 +++++ .../multi/GT_MetaTileEntity_ProcessingArray.java | 26 ++++++++++++++++++++++ 5 files changed, 51 insertions(+), 5 deletions(-) (limited to 'src/main/java/gregtech/common/tileentities/machines') diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ImplosionCompressor.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ImplosionCompressor.java index 4374e3ad7e..ca9c31f350 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ImplosionCompressor.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ImplosionCompressor.java @@ -127,11 +127,13 @@ public class GT_MetaTileEntity_ImplosionCompressor } @Override - public void startSoundLoop(byte aIndex, double aX, double aY, double aZ) { - super.startSoundLoop(aIndex, aX, aY, aZ); - if (aIndex == 20) { - GT_Utility.doSoundAtClient(SoundResource.RANDOM_EXPLODE, 10, 1.0F, aX, aY, aZ); - } + protected int getTimeBetweenProcessSounds() { + return 10; + } + + @Override + protected SoundResource getProcessStartSound() { + return SoundResource.RANDOM_EXPLODE; } @Override diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilDrillBase.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilDrillBase.java index dc56ffcb3f..fa8619492f 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilDrillBase.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilDrillBase.java @@ -27,6 +27,7 @@ import net.minecraftforge.fluids.FluidStack; import com.google.common.collect.ImmutableList; +import gregtech.api.enums.SoundResource; import gregtech.api.interfaces.IHatchElement; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -275,6 +276,11 @@ public abstract class GT_MetaTileEntity_OilDrillBase extends GT_MetaTileEntity_D return tOil.amount == 0 ? null : tOil; } + @Override + protected SoundResource getProcessStartSound() { + return SoundResource.IC2_MACHINES_PUMP_OP; + } + @Override public String[] getInfoData() { List l = new ArrayList<>( diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OreDrillingPlantBase.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OreDrillingPlantBase.java index 1f5bdf690e..46b91ec2cf 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OreDrillingPlantBase.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OreDrillingPlantBase.java @@ -27,6 +27,7 @@ import com.google.common.collect.ImmutableList; import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.SoundResource; import gregtech.api.interfaces.IHatchElement; import gregtech.api.objects.GT_ChunkManager; import gregtech.api.objects.ItemData; @@ -402,6 +403,11 @@ public abstract class GT_MetaTileEntity_OreDrillingPlantBase extends GT_MetaTile return tt; } + @Override + protected SoundResource getProcessStartSound() { + return SoundResource.IC2_MACHINES_MINER_OP; + } + @Override public String[] getInfoData() { final int diameter = chunkRadiusConfig * 2; diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PCBFactory.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PCBFactory.java index d8d1f6b656..7d12b28218 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PCBFactory.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PCBFactory.java @@ -49,6 +49,7 @@ import com.gtnewhorizons.modularui.common.widget.textfield.TextFieldWidget; import gregtech.api.GregTech_API; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.SoundResource; import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.gui.modularui.GT_UITextures; import gregtech.api.interfaces.ITexture; @@ -1072,6 +1073,11 @@ public class GT_MetaTileEntity_PCBFactory extends return true; } + @Override + protected SoundResource getProcessStartSound() { + return SoundResource.IC2_MACHINES_MAGNETIZER_LOOP; + } + @Override public boolean useModularUI() { return true; diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java index 5e330d6742..f5f485b53e 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java @@ -38,6 +38,7 @@ import com.gtnewhorizons.modularui.common.widget.FakeSyncWidget; import gregtech.GT_Mod; import gregtech.api.GregTech_API; import gregtech.api.enums.GT_Values; +import gregtech.api.enums.SoundResource; import gregtech.api.enums.Textures; import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.gui.modularui.GT_UITextures; @@ -150,6 +151,31 @@ public class GT_MetaTileEntity_ProcessingArray return true; } + @Override + public void startSoundLoop(byte aIndex, double aX, double aY, double aZ) { + super.startSoundLoop(aIndex, aX, aY, aZ); + SoundResource sound = SoundResource.get(aIndex < 0 ? aIndex + 256 : 0); + if (sound != null) { + GT_Utility.doSoundAtClient(sound, getTimeBetweenProcessSounds(), 1.0F, aX, aY, aZ); + } + } + + @Override + protected boolean checkRecipe() { + startRecipeProcessing(); + boolean result = checkRecipe(mInventory[1]); + if (result) { + int length = mInventory[1].getUnlocalizedName().length(); + String aMachineName = mInventory[1].getUnlocalizedName().substring(17, length - 8); + SoundResource sound = GT_ProcessingArray_Manager.getSoundResource(aMachineName); + if (sound != null) { + sendLoopStart((byte) sound.id); + } + } + endRecipeProcessing(); + return result; + } + @Override public boolean checkRecipe(ItemStack aStack) { if (mLockedToSingleRecipe && mSingleRecipeCheck != null) { -- cgit