diff options
author | Maxim <maxim235@gmx.de> | 2023-03-22 23:45:59 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-22 22:45:59 +0000 |
commit | b0843b032452d07a50847b33c436d374a6e973bd (patch) | |
tree | 6d773dc4440f3d3f344670ec43ab145c7bc85796 /src/main/java/gregtech/api/metatileentity | |
parent | 3681f2f989cb0b3c9f3d7649d2561d77fb8cfe4f (diff) | |
download | GT5-Unofficial-b0843b032452d07a50847b33c436d374a6e973bd.tar.gz GT5-Unofficial-b0843b032452d07a50847b33c436d374a6e973bd.tar.bz2 GT5-Unofficial-b0843b032452d07a50847b33c436d374a6e973bd.zip |
Activity Sound (#1811)
* Added activity sound
* Added acitivity sound to DTPF
* Added missing annotation
* Missed one
Diffstat (limited to 'src/main/java/gregtech/api/metatileentity')
-rw-r--r-- | src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java index 92d90c63a9..51086d806b 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java @@ -12,12 +12,14 @@ import java.util.List; import mcp.mobius.waila.api.IWailaConfigHandler; import mcp.mobius.waila.api.IWailaDataAccessor; +import net.minecraft.client.Minecraft; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; 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.World; import net.minecraftforge.common.util.Constants; @@ -35,6 +37,8 @@ import com.gtnewhorizons.modularui.api.screen.UIBuildContext; import com.gtnewhorizons.modularui.api.widget.Widget; import com.gtnewhorizons.modularui.common.widget.*; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import gregtech.GT_Mod; import gregtech.api.GregTech_API; import gregtech.api.enums.ConfigCategories; @@ -51,6 +55,7 @@ import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.objects.GT_ItemStack; import gregtech.api.util.*; import gregtech.api.util.GT_Recipe.GT_Recipe_Map; +import gregtech.client.GT_SoundLoop; import gregtech.common.GT_Pollution; import gregtech.common.items.GT_MetaGenerated_Tool_01; import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_DrillerBase; @@ -91,6 +96,8 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity public ArrayList<GT_MetaTileEntity_Hatch_Energy> mEnergyHatches = new ArrayList<>(); public ArrayList<GT_MetaTileEntity_Hatch_Maintenance> mMaintenanceHatches = new ArrayList<>(); protected final List<GT_MetaTileEntity_Hatch> mExoticEnergyHatches = new ArrayList<>(); + @SideOnly(Side.CLIENT) + protected GT_SoundLoop activitySoundLoop; protected static final byte INTERRUPT_SOUND_INDEX = 8; protected static final byte PROCESS_START_SOUND_INDEX = 1; @@ -366,6 +373,8 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity aBaseMetaTileEntity.setActive(mMaxProgresstime > 0); boolean active = aBaseMetaTileEntity.isActive() && mPollution > 0; setMufflers(active); + } else { + doActivitySound(getActivitySoundLoop()); } } @@ -509,6 +518,20 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity } } + @SideOnly(Side.CLIENT) + protected void doActivitySound(ResourceLocation activitySound) { + if (getBaseMetaTileEntity().isActive() && activitySound != null) { + if (activitySoundLoop == null) { + activitySoundLoop = new GT_SoundLoop(activitySound, getBaseMetaTileEntity(), false, true); + Minecraft.getMinecraft().getSoundHandler().playSound(activitySoundLoop); + } + } else { + if (activitySoundLoop != null) { + activitySoundLoop = null; + } + } + } + /** * @return Time before the start process sound is played again */ @@ -524,6 +547,14 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity } /** + * @return Sound that will be looped for as long as the machine is doing a recipe + */ + @SideOnly(Side.CLIENT) + protected ResourceLocation getActivitySoundLoop() { + return null; + } + + /** * Called every tick the Machine runs */ public boolean onRunningTick(ItemStack aStack) { |