From 4e15eb36ac1082034d9dcd4a031fbe42dc81c52b Mon Sep 17 00:00:00 2001 From: Calclavia Date: Thu, 20 Feb 2014 13:21:50 +0800 Subject: [PATCH] Added new electromagnetic levitator model --- .../electrical/levitator/RenderLevitator.java | 64 ++++++------------ .../transformer/RenderTransformer.java | 1 - .../resonantinduction/models/charger.png | Bin 0 -> 2273 bytes .../resonantinduction/models/charger.tcn | Bin 0 -> 2950 bytes .../resonantinduction/models/levitator.tcn | Bin 0 -> 3023 bytes .../models/levitator_off.png | Bin 0 -> 2309 bytes .../resonantinduction/models/levitator_on.png | Bin 0 -> 2308 bytes 7 files changed, 19 insertions(+), 46 deletions(-) create mode 100644 src/main/resources/assets/resonantinduction/models/charger.png create mode 100644 src/main/resources/assets/resonantinduction/models/charger.tcn create mode 100644 src/main/resources/assets/resonantinduction/models/levitator.tcn create mode 100644 src/main/resources/assets/resonantinduction/models/levitator_off.png create mode 100644 src/main/resources/assets/resonantinduction/models/levitator_on.png diff --git a/electrical/src/main/java/resonantinduction/electrical/levitator/RenderLevitator.java b/electrical/src/main/java/resonantinduction/electrical/levitator/RenderLevitator.java index 98141494..2b2ef7dd 100644 --- a/electrical/src/main/java/resonantinduction/electrical/levitator/RenderLevitator.java +++ b/electrical/src/main/java/resonantinduction/electrical/levitator/RenderLevitator.java @@ -6,73 +6,47 @@ import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ResourceLocation; import net.minecraft.world.IBlockAccess; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; import org.lwjgl.opengl.GL11; import resonantinduction.core.Reference; import resonantinduction.core.ResonantInduction; +import calclavia.lib.render.RenderUtility; import calclavia.lib.render.block.ICustomBlockRenderer; import cpw.mods.fml.client.FMLClientHandler; public class RenderLevitator extends TileEntitySpecialRenderer implements ICustomBlockRenderer { - public static final ModelEMContractor MODEL = new ModelEMContractor(false); - public static final ModelEMContractor MODEL_SPIN = new ModelEMContractor(true); - public static final ResourceLocation TEXTURE = new ResourceLocation(Reference.DOMAIN, Reference.MODEL_PATH + "em_contractor.png"); - public static final ResourceLocation TEXTURE_PUSH = new ResourceLocation(Reference.DOMAIN, Reference.MODEL_PATH + "em_contractor_push.png"); + public static final IModelCustom MODEL = AdvancedModelLoader.loadModel(Reference.MODEL_DIRECTORY + "levitator.tcn"); + public static final ResourceLocation TEXTURE_ON = new ResourceLocation(Reference.DOMAIN, Reference.MODEL_PATH + "levitator_on.png"); + public static final ResourceLocation TEXTURE_OFF = new ResourceLocation(Reference.DOMAIN, Reference.MODEL_PATH + "levitator_off.png"); @Override public void renderTileEntityAt(TileEntity t, double x, double y, double z, float f) { GL11.glPushMatrix(); GL11.glTranslated(x + 0.5, y + 1.5, z + 0.5); - GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); + RenderUtility.rotateFaceBlockToSide(((TileLevitator) t).getDirection()); - switch (((TileLevitator) t).getDirection()) - { - case DOWN: - GL11.glRotatef(180, 0, 0, 1); - GL11.glTranslatef(0, -2, 0); - break; - case UP: - break; - case NORTH: - GL11.glTranslatef(1, 1, 0); - GL11.glRotatef(90, 0, 0, 1); - break; - case SOUTH: - GL11.glTranslatef(-1, 1, 0); - GL11.glRotatef(-90, 0, 0, 1); - break; - case WEST: - GL11.glTranslatef(0, 1, 1); - GL11.glRotatef(-90, 1, 0, 0); - break; - case EAST: - GL11.glTranslatef(0, 1, -1); - GL11.glRotatef(90, 1, 0, 0); - break; - } + /** + * if (((TileLevitator) t).suck) + * this.bindTexture(TEXTURE_ON); + * else + * this.bindTexture(TEXTURE_PUSH); + */ - if (((TileLevitator) t).suck) + if (((TileLevitator) t).canFunction()) { - this.bindTexture(TEXTURE); + bindTexture(TEXTURE_ON); } else { - this.bindTexture(TEXTURE_PUSH); - } - - if (((TileLevitator) t).canFunction() && !ResonantInduction.proxy.isPaused()) - { - MODEL_SPIN.render(0.0625f); - } - else - { - MODEL.render(0.0625f); + bindTexture(TEXTURE_OFF); } + MODEL.renderAll(); GL11.glPopMatrix(); } @@ -94,8 +68,8 @@ public class RenderLevitator extends TileEntitySpecialRenderer implements ICusto GL11.glPushMatrix(); GL11.glTranslatef(0.5f, 1.7f, 0.5f); GL11.glRotatef(180f, 0f, 0f, 1f); - FMLClientHandler.instance().getClient().renderEngine.bindTexture(TEXTURE); - MODEL.render(0.0725F); + FMLClientHandler.instance().getClient().renderEngine.bindTexture(TEXTURE_OFF); + MODEL.renderAll(); GL11.glPopMatrix(); } } diff --git a/electrical/src/main/java/resonantinduction/electrical/transformer/RenderTransformer.java b/electrical/src/main/java/resonantinduction/electrical/transformer/RenderTransformer.java index da7616fd..d0d24930 100644 --- a/electrical/src/main/java/resonantinduction/electrical/transformer/RenderTransformer.java +++ b/electrical/src/main/java/resonantinduction/electrical/transformer/RenderTransformer.java @@ -47,7 +47,6 @@ public class RenderTransformer implements ISimpleItemRenderer GL11.glPushMatrix(); GL11.glTranslatef((float) x + 0.5F, (float) y + 0.5F, (float) z + 0.5F); RenderUtility.rotateFaceBlockToSide(part.placementSide); - GL11.glRotatef(90, 0, 1, 0); RenderUtility.rotateBlockBasedOnDirection(part.getFacing()); GL11.glScalef(0.5f, 0.5f, 0.5f); FMLClientHandler.instance().getClient().renderEngine.bindTexture(TEXTURE_COIL); diff --git a/src/main/resources/assets/resonantinduction/models/charger.png b/src/main/resources/assets/resonantinduction/models/charger.png new file mode 100644 index 0000000000000000000000000000000000000000..762e8b1ece8d2c74fcf814badde9e34703141371 GIT binary patch literal 2273 zcmaJ@X;>5I8XeXL2pBGUMU?6|ZUF*GSWP5CAVDaL7=i{6BqRd_NG2wcgrzK24Js&t z=tV^>EuvIFkzxfAQ9)S*!38VWu;@jE;KeACirB%5y+5vZo|*ZU=bZDt-}{~)-`>E0 z4JJm5jQ{{J@$sfJ(a|0KKm&dBUtE;73mq(^47M}~iI&PZVi=(DkSG}R5pZH)Cd}a_ zZEt~H0YC@hv)EF$zaNE*2<$ks7(2N@gt7s^)lDwqaN}Vq7zM}hg;eNOT>}L2c~oeN zlRwd4}y_3aoP;vl^n;g$2^B}kNpsSpM3J72+2b2pEgc6FJ3VqV0p!3;n0t9}7 zNaLx{UrDk313^zj41-Q~4z^q(i3B=3+mRfdoSjK{(4I)LClJxs*_Px;adM{EyMUh` z2#qG@MN^n`ug|g26%~q=N<|a`K_-*g$sFtuaSVY(CX;71?Cot)gsmh=DCNj)g_0F> z3UpY)74t<>J|YBX6**DJ4k;BvGyUrb0?`*)q2zO!(1H=<91($JN1Q#<9MIqY|3d|W zFKCIB3ICn%{}h(6l0-0p2}_V2VlLXa=oPb}L=;ak%#k8u7J?+qRWUFYks^{BFys=BLeW#ktzJI=i>QQ zz0X|U*K?tNl}kXAA|p7!Q# zxLIM2sWp7>Kn;H+tG)Kpp+5iD_)fptM8(KRSp{Wyol=eYM=3jJ%|9!>1ztiHL+?njk!7 z_h7?^KYV{R61#85na+R(J#_&E%*1o-{J>LfM(ytAU)N?xon6ybX7Y=r%W)o5<|?WBR+}cn`_~7a3U{ zXx5Y8#Xf!Z;)Qq5%Ge?;c0=`<^{ys0I!#3KwfJT2d8bXQ@TFC0nte*85l8fuVV)G&3V zYE@ftSO%H)xFNBoDLCSNKa-W~SlW5NR;s1H893i;AGt#i5~Ewt>{K62G+~CY?zF`^ z8c+OiZz}U~pi0Leau}lN9{GbzNuYh*Gyi^~%}zjW%G-z{KV5XJ8hTn&tM`2;z?r z`wxvj`a?b47j3w8#j430dS>OGzhq^bwmx5Z-gf_J==FyooB+4)xAhK6wX8dozE-(0{eGa%^Xe|)jD{*JaaK2FV^_j7TuG3(GbJX$KavzvW*pXtifOVBEn z#aqE|eHeZBtarjb@0~P}{u+bq_(#*~np@5dVWGX?oeB0$;h`(hTY#%2(56IE&OpL- zW^QA4TAWo&TK9Y-$$ajs`M5XfBK4U`(go5IV}+***|NuY&+0^ZU3krJx;<>gyQ$-y zqp8TY(Bqr_16v%#HdQ~Q8g?Fea8hVyA}-c^v_#6!%v*bz6o4a?&AV)pkfJ(1;nyF= zXbTW7_hE&5={&!v&;NZLFgaOPf*GpECmgR60TnZH7sfN#U~f{7%X$?7sIU%-3tOzS zdF*4UcK^r+h1EvF3WH)*pVDvSk_e(fr>(2f#X zHuZjY-TKKnqvhidhYVF7l7A|RT}|5eY^-(};Zub}vci`O>+{;M>$?uDd6&lgS<$*_ zX6AM4#ab#b(5pEHSJiil3s>QMV=(e$zFAvO&ob9Twc_tCy5i$EhLUDnbZ&fHq7>FI z$a+e6#I$N(e7yBS$FP3vfyk5nk8f_YZ`Fn~t5dX6ESoiT_Mleaz*y_pZB<)9-TX^o zOnpX51}9)oxJ|3Zr9o+S_BoI$Ar zY;QJ=`5O6#;i8q@gAqTy+`nk(-L>RW!xM4ayCz~fczt0b)a(sOUC{+pN5Lsfl=-5Z k`*-y=hbO%)|6p?+U`7XfHjiz?&R#lv7yW0!Ui2;Q#;t literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/resonantinduction/models/charger.tcn b/src/main/resources/assets/resonantinduction/models/charger.tcn new file mode 100644 index 0000000000000000000000000000000000000000..51f90b26f338e4056518b27d55d4a53de4cb33d8 GIT binary patch literal 2950 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 Guj^k@q-6{M literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/resonantinduction/models/levitator.tcn b/src/main/resources/assets/resonantinduction/models/levitator.tcn new file mode 100644 index 0000000000000000000000000000000000000000..b0766e8f5e92ede29577cf4e36e497938a4cb94a GIT binary patch literal 3023 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 R&|e+&f2QS69<%;+{R=H+f}j8Z literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/resonantinduction/models/levitator_off.png b/src/main/resources/assets/resonantinduction/models/levitator_off.png new file mode 100644 index 0000000000000000000000000000000000000000..b20c00d464f3656462c10b0d2baa45374ba05e18 GIT binary patch literal 2309 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 Tp75(5y_X1i0o-Fg5o`Vd5Y@D) literal 0 HcmV?d00001