From 028ff3fc1a018880a5e0d80308bc2f7d6f40b1af Mon Sep 17 00:00:00 2001 From: Calclavia Date: Sat, 25 Jan 2014 13:31:17 +0800 Subject: [PATCH] Fixed conveyor belt sound and animation --- src/main/java/resonantinduction/core/SoundHandler.java | 2 +- .../mechanical/belt/RenderConveyorBelt.java | 4 ++-- .../mechanical/belt/TileConveyorBelt.java | 8 +++++--- .../mechanical/network/IMechanicalNetwork.java | 4 ++-- .../mechanical/network/MechanicalNetwork.java | 4 ++-- 5 files changed, 12 insertions(+), 10 deletions(-) diff --git a/src/main/java/resonantinduction/core/SoundHandler.java b/src/main/java/resonantinduction/core/SoundHandler.java index 263b1b87..73775363 100644 --- a/src/main/java/resonantinduction/core/SoundHandler.java +++ b/src/main/java/resonantinduction/core/SoundHandler.java @@ -17,7 +17,7 @@ public class SoundHandler { public static final SoundHandler INSTANCE = new SoundHandler(); - public static final String[] SOUND_FILES = { "hammer.ogg", "grinder1.ogg", "grinder2.ogg", "grinder3.ogg", "grinder4.ogg", "electricshock1.ogg", "electricshock2.ogg", "electricshock3.ogg", "electricshock4.ogg", "electricshock5.ogg", "electricshock6.ogg", "electricshock7.ogg" }; + public static final String[] SOUND_FILES = { "hammer.ogg", "grinder1.ogg", "grinder2.ogg", "grinder3.ogg", "grinder4.ogg", "electricshock1.ogg", "electricshock2.ogg", "electricshock3.ogg", "electricshock4.ogg", "electricshock5.ogg", "electricshock6.ogg", "electricshock7.ogg" , "conveyor.ogg" }; @ForgeSubscribe public void loadSoundEvents(SoundLoadEvent event) diff --git a/src/main/java/resonantinduction/mechanical/belt/RenderConveyorBelt.java b/src/main/java/resonantinduction/mechanical/belt/RenderConveyorBelt.java index 59d52f9d..dd40b9e2 100644 --- a/src/main/java/resonantinduction/mechanical/belt/RenderConveyorBelt.java +++ b/src/main/java/resonantinduction/mechanical/belt/RenderConveyorBelt.java @@ -102,7 +102,7 @@ public class RenderConveyorBelt extends TileEntitySpecialRenderer implements ICu bindTexture(name); GL11.glRotatef(180, 0f, 1f, 0f); GL11.glTranslatef(0f, -0.68f, 0f); - MODEL.render(0.0625f, (float) Math.toRadians(tileEntity.getNetwork().getRotation()), false, false, false, false); + MODEL.render(0.0625f, (float) Math.toRadians(tileEntity.angle), false, false, false, false); } } else @@ -124,7 +124,7 @@ public class RenderConveyorBelt extends TileEntitySpecialRenderer implements ICu } ResourceLocation name = new ResourceLocation(Reference.DOMAIN, Reference.MODEL_PATH + "belt/frame" + frame + ".png"); bindTexture(name); - MODEL.render(0.0625F, (float) Math.toRadians(tileEntity.getNetwork().getRotation()), false, false, false, true); + MODEL.render(0.0625F, (float) Math.toRadians(tileEntity.angle), false, false, false, true); } diff --git a/src/main/java/resonantinduction/mechanical/belt/TileConveyorBelt.java b/src/main/java/resonantinduction/mechanical/belt/TileConveyorBelt.java index 81d211e5..de0e7987 100644 --- a/src/main/java/resonantinduction/mechanical/belt/TileConveyorBelt.java +++ b/src/main/java/resonantinduction/mechanical/belt/TileConveyorBelt.java @@ -12,6 +12,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.ForgeDirection; import resonantinduction.api.IBelt; +import resonantinduction.core.Reference; import resonantinduction.core.ResonantInduction; import resonantinduction.mechanical.Mechanical; import resonantinduction.mechanical.network.IMechanical; @@ -76,11 +77,12 @@ public class TileConveyorBelt extends TileMechanical implements IBelt, IRotatabl { if (this.ticks % 10 == 0 && this.worldObj.isRemote && this.worldObj.getBlockId(this.xCoord - 1, this.yCoord, this.zCoord) != Mechanical.blockConveyorBelt.blockID && this.worldObj.getBlockId(xCoord, yCoord, zCoord - 1) != Mechanical.blockConveyorBelt.blockID) { - this.worldObj.playSound(this.xCoord, this.yCoord, this.zCoord, "mods.assemblyline.conveyor", 0.5f, 0.7f, true); + this.worldObj.playSound(this.xCoord, this.yCoord, this.zCoord, Reference.PREFIX + "conveyor", 0.5f, 0.7f, true); } - angle += Math.abs(angularVelocity / 20); - double beltPercentage = (angle % Math.PI) / Math.PI; + angle = getNetwork().getRotation(getMoveVelocity()); + // (float) ((angle + getMoveVelocity() / 20) % Math.PI); + double beltPercentage = angle / (2 * Math.PI); // Sync the animation. Slant belts are slower. if (this.getSlant() == SlantType.NONE || this.getSlant() == SlantType.TOP) diff --git a/src/main/java/resonantinduction/mechanical/network/IMechanicalNetwork.java b/src/main/java/resonantinduction/mechanical/network/IMechanicalNetwork.java index d4afdff5..ce068c53 100644 --- a/src/main/java/resonantinduction/mechanical/network/IMechanicalNetwork.java +++ b/src/main/java/resonantinduction/mechanical/network/IMechanicalNetwork.java @@ -10,7 +10,7 @@ import universalelectricity.api.net.INetwork; public interface IMechanicalNetwork extends INetwork { /** - * @return The current rotation value of the network. + * @return The current rotation value of the network. Used for syncing rotational values. */ - public float getRotation(); + public float getRotation(float velocity); } diff --git a/src/main/java/resonantinduction/mechanical/network/MechanicalNetwork.java b/src/main/java/resonantinduction/mechanical/network/MechanicalNetwork.java index 410e409f..f0067dc5 100644 --- a/src/main/java/resonantinduction/mechanical/network/MechanicalNetwork.java +++ b/src/main/java/resonantinduction/mechanical/network/MechanicalNetwork.java @@ -144,13 +144,13 @@ public class MechanicalNetwork extends Network } @Override - public float getRotation() + public float getRotation(float velocity) { long deltaTime = System.currentTimeMillis() - lastRotateTime; if (deltaTime > 1) { - rotation = (float) (((0) * (deltaTime / 1000f) + rotation) % (2 * Math.PI)); + rotation = (float) (((velocity) * (deltaTime / 1000f) + rotation) % (2 * Math.PI)); lastRotateTime = System.currentTimeMillis(); }