From 228e550baa3db9252475202fdf7a4cf902d2c426 Mon Sep 17 00:00:00 2001 From: "Aidan C. Brady" Date: Sat, 1 Feb 2014 14:19:47 -0500 Subject: [PATCH] Spinning stuff! --- .../client/model/ModelChemicalCrystalizer.java | 13 +++++++++++++ .../tileentity/RenderChemicalCrystalizer.java | 12 +++++++++++- .../common/tile/TileEntityChemicalCrystalizer.java | 4 ++++ 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/common/mekanism/client/model/ModelChemicalCrystalizer.java b/common/mekanism/client/model/ModelChemicalCrystalizer.java index d897270a6..65b165ee3 100644 --- a/common/mekanism/client/model/ModelChemicalCrystalizer.java +++ b/common/mekanism/client/model/ModelChemicalCrystalizer.java @@ -305,6 +305,19 @@ public class ModelChemicalCrystalizer extends ModelBase MekanismRenderer.blendOff(); } + public void renderWithRotation(float size, float rotate) + { + rotate *= Math.PI; + + Spin.rotateAngleY = rotate; + Vial1.rotateAngleY = rotate; + Vial2.rotateAngleY = rotate; + Vial3.rotateAngleY = rotate; + Vial4.rotateAngleY = rotate; + + render(size); + } + private void setRotation(ModelRenderer model, float x, float y, float z) { model.rotateAngleX = x; diff --git a/common/mekanism/client/render/tileentity/RenderChemicalCrystalizer.java b/common/mekanism/client/render/tileentity/RenderChemicalCrystalizer.java index 8ce35ab8e..a4e693800 100644 --- a/common/mekanism/client/render/tileentity/RenderChemicalCrystalizer.java +++ b/common/mekanism/client/render/tileentity/RenderChemicalCrystalizer.java @@ -36,9 +36,19 @@ public class RenderChemicalCrystalizer extends TileEntitySpecialRenderer case 4: GL11.glRotatef(90, 0.0F, 1.0F, 0.0F); break; case 5: GL11.glRotatef(270, 0.0F, 1.0F, 0.0F); break; } + + if(tileEntity.isActive) + { + tileEntity.spinSpeed = Math.min(1, tileEntity.spinSpeed+0.01F); + } + else { + tileEntity.spinSpeed = Math.max(0, tileEntity.spinSpeed-0.02F); + } + + tileEntity.spin = (tileEntity.spin + (tileEntity.spinSpeed*0.1F)) % 1; GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); - model.render(0.0625F); + model.renderWithRotation(0.0625F, tileEntity.spin); GL11.glPopMatrix(); } } diff --git a/common/mekanism/common/tile/TileEntityChemicalCrystalizer.java b/common/mekanism/common/tile/TileEntityChemicalCrystalizer.java index 8c0cdbf6a..520fc4eb5 100644 --- a/common/mekanism/common/tile/TileEntityChemicalCrystalizer.java +++ b/common/mekanism/common/tile/TileEntityChemicalCrystalizer.java @@ -60,6 +60,10 @@ public class TileEntityChemicalCrystalizer extends TileEntityElectricBlock imple public double prevEnergy; + public float spinSpeed; + + public float spin; + public final double ENERGY_USAGE = Mekanism.chemicalCrystalizerUsage; /** This machine's current RedstoneControl type. */