diff options
Diffstat (limited to 'src/main/java/gregtech')
-rw-r--r-- | src/main/java/gregtech/api/enums/SoundResource.java | 42 | ||||
-rw-r--r-- | src/main/java/gregtech/common/tileentities/machines/multi/compressor/MTEBlackHoleCompressor.java | 52 |
2 files changed, 73 insertions, 21 deletions
diff --git a/src/main/java/gregtech/api/enums/SoundResource.java b/src/main/java/gregtech/api/enums/SoundResource.java index c99083b690..9de5c56015 100644 --- a/src/main/java/gregtech/api/enums/SoundResource.java +++ b/src/main/java/gregtech/api/enums/SoundResource.java @@ -78,26 +78,28 @@ public enum SoundResource { GT_SPRAYCAN_LOCK(244, GregTech.ID, "items.spraycan_lock"), GT_SPRAYCAN_UNLOCK(245, GregTech.ID, "items.spraycan_unlock"), - GT_MACHINES_MULTI_PRECISE_LOOP(244, GregTech.ID, "machines.MTEPreciseAssembler"), - GT_MACHINES_MULTI_ORE_WASHER_PLANT_LOOP(245, GregTech.ID, "machines.MTEIndustrialWashPlant"), - GT_MACHINES_MULTI_MEGA_VACUUM_FREEZER_LOOP(246, GregTech.ID, "machines.MTEMegaVacuumFreezer"), - GT_MACHINES_MULTI_VACUUM_FREEZER_LOOP(247, GregTech.ID, "machines.MTEVacuumFreezer"), - GT_MACHINES_EXTREME_ENTITY_CRUSHER_LOOP(248, GregTech.ID, "machines.MTEExtremeEntityCrusher"), - GT_MACHINES_CUTTING_MACHINE_LOOP(249, GregTech.ID, "machines.MTEIndustrialCuttingMachine"), - GT_MACHINES_ARC_FURNACE_LOOP(250, GregTech.ID, "machines.MTEIndustrialArcFurnace"), - GT_MACHINES_MEGA_INDUSTRIAL_APIARY_LOOP(251, GregTech.ID, "machines.MTEMegaIndustrialApiary"), - GT_MACHINES_ALGAE_LOOP(252, GregTech.ID, "machines.MTEAlgaePondBase"), - GT_MACHINES_THERMAL_CENTRIFUGE_LOOP(253, GregTech.ID, "machines.MTEIndustrialThermalCentrifuge"), - GT_MACHINES_SIFTER_LOOP(254, GregTech.ID, "machines.MTEIndustrialSifter"), - GT_MACHINES_EYE_OF_HARMONY_LOOP(255, GregTech.ID, "machines.MTEEyeOfHarmony"), - GT_MACHINES_EBF_LOOP(256, GregTech.ID, "machines.MTEElectricBlastFurnace"), - GT_MACHINES_ADV_FREEZER_LOOP(257, GregTech.ID, "machines.MTEIndustrialVacuumFreezer"), - GT_MACHINES_GOD_FORGE_LOOP(258, GregTech.ID, "machines.MTEForgeOfGods"), - GT_MACHINES_MEGA_BLAST_FURNACE_LOOP(259, GregTech.ID, "machines.MTEMegaBlastFurnace"), - GT_MACHINES_OIL_DRILL_LOOP(260, GregTech.ID, "machines.MTEOilDrillBase"), - GT_MACHINES_QUANTUM_FORCE_TRANSFORMER_LOOP(261, GregTech.ID, "machines.MTEQuantumForceTransformer"), - GT_MACHINES_ADV_EBF_LOOP(262, GregTech.ID, "machines.MTEAdvEBF"), - GT_MACHINES_LARGE_TURBINES_LOOP(263, GregTech.ID, "machines.MTELargeTurbine"), + GT_MACHINES_BLACK_HOLE_COMPRESSOR(246, GregTech.ID, "machines.BlackHoleCompressorLoop"), + + GT_MACHINES_MULTI_PRECISE_LOOP(247, GregTech.ID, "machines.MTEPreciseAssembler"), + GT_MACHINES_MULTI_ORE_WASHER_PLANT_LOOP(248, GregTech.ID, "machines.MTEIndustrialWashPlant"), + GT_MACHINES_MULTI_MEGA_VACUUM_FREEZER_LOOP(249, GregTech.ID, "machines.MTEMegaVacuumFreezer"), + GT_MACHINES_MULTI_VACUUM_FREEZER_LOOP(250, GregTech.ID, "machines.MTEVacuumFreezer"), + GT_MACHINES_EXTREME_ENTITY_CRUSHER_LOOP(251, GregTech.ID, "machines.MTEExtremeEntityCrusher"), + GT_MACHINES_CUTTING_MACHINE_LOOP(252, GregTech.ID, "machines.MTEIndustrialCuttingMachine"), + GT_MACHINES_ARC_FURNACE_LOOP(253, GregTech.ID, "machines.MTEIndustrialArcFurnace"), + GT_MACHINES_MEGA_INDUSTRIAL_APIARY_LOOP(254, GregTech.ID, "machines.MTEMegaIndustrialApiary"), + GT_MACHINES_ALGAE_LOOP(255, GregTech.ID, "machines.MTEAlgaePondBase"), + GT_MACHINES_THERMAL_CENTRIFUGE_LOOP(256, GregTech.ID, "machines.MTEIndustrialThermalCentrifuge"), + GT_MACHINES_SIFTER_LOOP(257, GregTech.ID, "machines.MTEIndustrialSifter"), + GT_MACHINES_EYE_OF_HARMONY_LOOP(258, GregTech.ID, "machines.MTEEyeOfHarmony"), + GT_MACHINES_EBF_LOOP(259, GregTech.ID, "machines.MTEElectricBlastFurnace"), + GT_MACHINES_ADV_FREEZER_LOOP(260, GregTech.ID, "machines.MTEIndustrialVacuumFreezer"), + GT_MACHINES_GOD_FORGE_LOOP(261, GregTech.ID, "machines.MTEForgeOfGods"), + GT_MACHINES_MEGA_BLAST_FURNACE_LOOP(262, GregTech.ID, "machines.MTEMegaBlastFurnace"), + GT_MACHINES_OIL_DRILL_LOOP(263, GregTech.ID, "machines.MTEOilDrillBase"), + 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"), GUI_BUTTON_DOWN(-1, GregTech.ID, "gui.buttonDown"), GUI_BUTTON_UP(-1, GregTech.ID, "gui.buttonUp"), diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/compressor/MTEBlackHoleCompressor.java b/src/main/java/gregtech/common/tileentities/machines/multi/compressor/MTEBlackHoleCompressor.java index ba1c38db40..edfa676b53 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/compressor/MTEBlackHoleCompressor.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/compressor/MTEBlackHoleCompressor.java @@ -28,6 +28,8 @@ import java.util.stream.Stream; import javax.annotation.Nonnull; +import net.minecraft.block.Block; +import net.minecraft.client.Minecraft; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.init.Blocks; @@ -48,9 +50,12 @@ import com.gtnewhorizon.structurelib.structure.IStructureDefinition; import com.gtnewhorizon.structurelib.structure.ISurvivalBuildEnvironment; import com.gtnewhorizon.structurelib.structure.StructureDefinition; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.GregTechAPI; import gregtech.api.enums.Materials; import gregtech.api.enums.MaterialsUEVplus; +import gregtech.api.enums.SoundResource; import gregtech.api.enums.Textures; import gregtech.api.interfaces.IIconContainer; import gregtech.api.interfaces.ITexture; @@ -76,6 +81,7 @@ import gregtech.common.tileentities.render.TileEntityBlackhole; import gtPlusPlus.core.util.minecraft.PlayerUtils; import mcp.mobius.waila.api.IWailaConfigHandler; import mcp.mobius.waila.api.IWailaDataAccessor; +import tectech.thing.metaTileEntity.multi.base.SoundLoopAnyBlock; public class MTEBlackHoleCompressor extends MTEExtendedPowerMultiBlockBase<MTEBlackHoleCompressor> implements ISurvivalConstructable { @@ -153,6 +159,9 @@ public class MTEBlackHoleCompressor extends MTEExtendedPowerMultiBlockBase<MTEBl */ private byte blackHoleStatus = 1; + @SideOnly(Side.CLIENT) + private SoundLoopAnyBlock blackholeSoundLoop; + private final FluidStack blackholeCatalyzingCost = (MaterialsUEVplus.SpaceTime).getMolten(1); private int catalyzingCostModifier = 1; @@ -216,6 +225,44 @@ public class MTEBlackHoleCompressor extends MTEExtendedPowerMultiBlockBase<MTEBl if (oBlackHoleStatus != blackHoleStatus) getBaseMetaTileEntity().issueTextureUpdate(); } + @SideOnly(Side.CLIENT) + public void playBlackHoleSounds() { + if (blackHoleStatus > 1) { + if (blackholeSoundLoop == null) { + ForgeDirection oppositeDirection = getDirection().getOpposite(); + int offsetX = 7 * oppositeDirection.offsetX; + int offsetY = 11; + int offsetZ = 7 * oppositeDirection.offsetZ; + + World world = Minecraft.getMinecraft().thePlayer.worldObj; + IGregTechTileEntity base = getBaseMetaTileEntity(); + + int x = base.getXCoord() + offsetX; + int y = base.getYCoord() + offsetY; + int z = base.getZCoord() + offsetZ; + + Block blockAtSoundLocation = world.getBlock(x, y, z); + if (blockAtSoundLocation == Blocks.air) return; + + int[] offset = { offsetX, offsetY, offsetZ }; + blackholeSoundLoop = new SoundLoopAnyBlock( + SoundResource.GT_MACHINES_BLACK_HOLE_COMPRESSOR.resourceLocation, + getBaseMetaTileEntity(), + false, + false, + offset, + Blocks.air); + Minecraft.getMinecraft() + .getSoundHandler() + .playSound(blackholeSoundLoop); + } + } else { + if (blackholeSoundLoop != null) { + blackholeSoundLoop = null; + } + } + } + @Override public byte getUpdateData() { return blackHoleStatus; @@ -544,13 +591,16 @@ public class MTEBlackHoleCompressor extends MTEExtendedPowerMultiBlockBase<MTEBl mOutputItems = null; mOutputFluids = null; } + return super.onRunningTick(aStack); } @Override public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { super.onPostTick(aBaseMetaTileEntity, aTick); - + if (!aBaseMetaTileEntity.isServerSide()) { + playBlackHoleSounds(); + } if (aTick % 20 == 0) { if (blackHoleStatus == 2) { if (blackHoleStability >= 0) { |