diff --git a/src/minecraft/assemblyline/client/ClientProxy.java b/src/minecraft/assemblyline/client/ClientProxy.java index 637a6771..a8fce04e 100644 --- a/src/minecraft/assemblyline/client/ClientProxy.java +++ b/src/minecraft/assemblyline/client/ClientProxy.java @@ -5,6 +5,7 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.client.MinecraftForgeClient; +import net.minecraftforge.common.MinecraftForge; import assemblyline.client.gui.GuiEncoder; import assemblyline.client.gui.GuiImprinter; import assemblyline.client.render.BlockRenderingHandler; @@ -14,6 +15,7 @@ import assemblyline.client.render.RenderCrate; import assemblyline.client.render.RenderDetector; import assemblyline.client.render.RenderManipulator; import assemblyline.client.render.RenderRejector; +import assemblyline.client.sound.SoundManager; import assemblyline.common.AssemblyLine; import assemblyline.common.CommonProxy; import assemblyline.common.block.TileEntityCrate; @@ -36,6 +38,7 @@ public class ClientProxy extends CommonProxy MinecraftForgeClient.preloadTexture(AssemblyLine.BLOCK_TEXTURE_PATH); MinecraftForgeClient.preloadTexture(AssemblyLine.ITEM_TEXTURE_PATH); RenderingRegistry.registerBlockHandler(new BlockRenderingHandler()); + MinecraftForge.EVENT_BUS.register(new SoundManager()); } @Override diff --git a/src/minecraft/assemblyline/client/sound/SoundManager.java b/src/minecraft/assemblyline/client/sound/SoundManager.java new file mode 100644 index 00000000..9fdb027d --- /dev/null +++ b/src/minecraft/assemblyline/client/sound/SoundManager.java @@ -0,0 +1,21 @@ +package assemblyline.client.sound; + +import net.minecraftforge.client.event.sound.SoundLoadEvent; +import net.minecraftforge.event.ForgeSubscribe; + +public class SoundManager +{ + @ForgeSubscribe + public void onSound(SoundLoadEvent event) + { + try + { + event.manager.soundPoolSounds.addSound("assemblyline/conveyor.wav", getClass().getResource("conveyor.wav")); + + } + catch (Exception e) + { + System.err.println("Failed to register one or more sounds."); + } + } +} diff --git a/src/minecraft/assemblyline/common/machine/armbot/TileEntityArmbot.java b/src/minecraft/assemblyline/common/machine/armbot/TileEntityArmbot.java index cde5f82b..e70cfc78 100644 --- a/src/minecraft/assemblyline/common/machine/armbot/TileEntityArmbot.java +++ b/src/minecraft/assemblyline/common/machine/armbot/TileEntityArmbot.java @@ -8,6 +8,7 @@ import java.util.EnumSet; import java.util.List; import net.minecraft.block.Block; +import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; diff --git a/src/minecraft/assemblyline/common/machine/belt/BlockConveyorBelt.java b/src/minecraft/assemblyline/common/machine/belt/BlockConveyorBelt.java index 55a51773..be3018fc 100644 --- a/src/minecraft/assemblyline/common/machine/belt/BlockConveyorBelt.java +++ b/src/minecraft/assemblyline/common/machine/belt/BlockConveyorBelt.java @@ -247,9 +247,20 @@ public class BlockConveyorBelt extends BlockMachine entity.motionX += difference * 0.06; // /entity.posX = x + 0.5; } - + ((EntityItem) entity).age++; - ((EntityItem) entity).delayBeforeCanPickup = 20; + + boolean foundSneaking = false; + for (EntityPlayer player : (List) world.getEntitiesWithinAABB(EntityPlayer.class, AxisAlignedBB.getBoundingBox(x - 1, y - 1, z - 1, x + 1, y + 1, z + 1))) + { + if (player.isSneaking()) + foundSneaking = true; + } + + if (foundSneaking) + ((EntityItem) entity).delayBeforeCanPickup = 0; + else + ((EntityItem) entity).delayBeforeCanPickup = 20; entity.onGround = false; } diff --git a/src/minecraft/assemblyline/common/machine/belt/TileEntityConveyorBelt.java b/src/minecraft/assemblyline/common/machine/belt/TileEntityConveyorBelt.java index a73a1f7d..835e756b 100644 --- a/src/minecraft/assemblyline/common/machine/belt/TileEntityConveyorBelt.java +++ b/src/minecraft/assemblyline/common/machine/belt/TileEntityConveyorBelt.java @@ -3,6 +3,7 @@ package assemblyline.common.machine.belt; import java.util.EnumSet; import java.util.List; +import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; @@ -119,6 +120,9 @@ public class TileEntityConveyorBelt extends TileEntityAssemblyNetwork implements if (this.isRunning()) { + if (this.ticks % (80) == 0) //sound is 4 seconds long (20 ticks/second) + Minecraft.getMinecraft().sndManager.playSound("assemblyline.conveyor", this.xCoord, this.yCoord, this.zCoord, 0.125f, 0.3f); + this.wheelRotation += 40; if (this.wheelRotation > 360)