From 0040eb831d382bdac4a3d8afb96d153b768cc965 Mon Sep 17 00:00:00 2001 From: Paul19988 Date: Thu, 23 Nov 2023 21:20:18 +0000 Subject: [PATCH 1/5] most recent clean --- .../client/render/CustomModelRenderer.java | 164 +- .../render/ItemRenderAmericanStopper.java | 2 +- .../train/client/render/ItemRenderBook.java | 139 +- .../client/render/ItemRenderBridgePillar.java | 84 +- .../render/ItemRenderEmbeddedStopper.java | 2 +- .../render/ItemRenderGeneratorDiesel.java | 88 +- .../client/render/ItemRenderLantern.java | 95 +- .../client/render/ItemRenderMFPBWigWag.java | 94 +- .../ItemRenderModelMetroMadridPole.java | 18 +- .../train/client/render/ItemRenderSignal.java | 87 +- .../client/render/ItemRenderStopper.java | 95 +- .../client/render/ItemRenderSwitchStand.java | 91 +- .../client/render/ItemRenderWaterWheel.java | 95 +- .../client/render/ItemRenderWindMill.java | 107 +- .../java/train/client/render/ModelGTNG.java | 2 +- .../client/render/RenderAmericanStopper.java | 2 +- .../java/train/client/render/RenderBogie.java | 43 +- .../client/render/RenderBridgePillar.java | 24 +- .../train/client/render/RenderCoreTC.java | 372 +- .../client/render/RenderEmbeddedStopper.java | 2 +- .../java/train/client/render/RenderEnum.java | 3057 +++++----- .../client/render/RenderGeneratorDiesel.java | 36 +- .../client/render/RenderLasersLines.java | 104 +- .../train/client/render/RenderMFPBWigWag.java | 94 +- .../client/render/RenderMetroMadridPole.java | 2 +- .../client/render/RenderRollingStock.java | 797 ++- .../client/render/RenderRotativeDigger.java | 89 +- .../client/render/RenderRotativeWheel.java | 85 +- .../train/client/render/RenderSignal.java | 34 +- .../train/client/render/RenderStopper.java | 34 +- .../client/render/RenderSwitchStand.java | 105 +- .../train/client/render/RenderTCBook.java | 14 +- .../train/client/render/RenderTCRail.java | 1094 ++-- .../train/client/render/RenderWaterWheel.java | 10 +- .../train/client/render/RenderWindMill.java | 14 +- .../train/client/render/RenderZeppelins.java | 149 +- .../client/render/TileLinesRenderer.java | 28 +- src/main/java/train/common/Traincraft.java | 4 + .../train/common/adminbook/GUIAdminBook.java | 144 +- .../train/common/adminbook/ItemAdminBook.java | 150 +- .../train/common/adminbook/ServerLogger.java | 80 +- .../java/train/common/api/AbstractTrains.java | 1383 ++--- .../train/common/api/EntityRollingStock.java | 5040 ++++++++--------- src/main/java/train/common/api/Freight.java | 391 +- .../java/train/common/api/TrainRecord.java | 56 +- .../java/train/common/core/CommonProxy.java | 403 +- .../common/core/CreativeTabTraincraft.java | 30 +- .../core/CreativeTabTraincraftTrains.java | 30 +- .../java/train/common/core/EntityIds.java | 18 +- .../java/train/common/core/FakePlayer.java | 416 +- .../common/core/HandleMaxAttachedCarts.java | 297 +- .../train/common/core/HandleOverheating.java | 281 +- .../train/common/core/TrainModBlockUtil.java | 16 +- .../java/train/common/core/TrainModCore.java | 69 +- .../common/core/Traincraft_EventSounds.java | 2 +- .../common/core/handlers/RecipeHandler.java | 1058 ++-- .../common/core/handlers/RetrogenHandler.java | 135 +- .../RollingStockStatsEventHandler.java | 102 +- .../common/core/handlers/TrainHandler.java | 41 +- .../core/handlers/TraincraftSaveHandler.java | 194 +- .../core/handlers/TrainsDamageSource.java | 80 +- .../handlers/VillagerTraincraftHandler.java | 144 +- .../common/core/handlers/WorldEvents.java | 132 +- .../train/common/core/interfaces/IPlugin.java | 4 +- .../train/common/core/interfaces/ITier.java | 18 +- .../common/core/managers/TierRecipe.java | 172 +- .../core/managers/TierRecipeManager.java | 120 +- .../core/network/PacketDestination.java | 6 +- .../common/core/network/PacketHandler.java | 107 +- .../common/core/network/PacketKeyPress.java | 125 +- .../common/core/network/PacketLantern.java | 17 +- .../core/network/PacketParkingBrake.java | 42 +- .../network/PacketRollingStockRotation.java | 124 +- .../network/PacketSetJukeboxStreamingUrl.java | 97 +- .../core/network/PacketSetLocoTurnedOn.java | 16 +- .../network/PacketSetTrainLockedToClient.java | 24 +- .../core/network/PacketSlotsFilled.java | 85 +- .../network/PacketTrackBuilderFollow.java | 90 +- .../network/PacketTrackBuilderHeight.java | 16 +- .../core/network/PacketUpdateTrainID.java | 6 +- .../plugins/NEIAssemblyTableRecipePlugin.java | 48 +- .../NEIDistillationTowerRecipePlugin.java | 258 +- .../NEIOpenHearthFurnaceRecipePlugin.java | 278 +- .../core/plugins/NEITraincraftConfig.java | 16 +- .../NEITraincraftWorkbenchRecipePlugin.java | 362 +- .../common/core/plugins/PluginRailcraft.java | 84 +- .../java/train/common/core/util/Energy.java | 114 +- .../train/common/core/util/MP3Player.java | 107 +- .../common/core/util/TraincraftUtil.java | 212 +- .../common/entity/ai/EntityAIFearHorn.java | 74 +- .../train/common/entity/ai/TCPathFinder.java | 87 +- .../entity/digger/EntityRotativeDigger.java | 1470 ++--- .../entity/digger/EntityRotativeWheel.java | 540 +- .../entity/rollingStock/EntityBUnitDD35.java | 473 +- .../entity/rollingStock/EntityBUnitEMDF3.java | 557 +- .../entity/rollingStock/EntityBUnitEMDF7.java | 478 +- .../rollingStock/EntityBoulderWagon.java | 21 +- .../entity/rollingStock/EntityBoxCartPRR.java | 21 +- .../entity/rollingStock/EntityBoxCartUS.java | 189 +- .../rollingStock/EntityBulkheadFlatCart.java | 204 +- .../entity/rollingStock/EntityCaboose.java | 13 +- .../entity/rollingStock/EntityCaboose3.java | 123 +- .../rollingStock/EntityCabooseBRBrakeVan.java | 119 +- .../rollingStock/EntityCabooseBapDRGW.java | 16 +- .../rollingStock/EntityCabooseBapHBC1C.java | 17 +- .../EntityCabooseBapWVcaboose.java | 51 +- .../inventory/TrainCraftingManager.java | 12 +- .../train/common/items/ItemRollingStock.java | 12 +- 108 files changed, 12393 insertions(+), 12680 deletions(-) diff --git a/src/main/java/train/client/render/CustomModelRenderer.java b/src/main/java/train/client/render/CustomModelRenderer.java index 5b5d9299a2..60f694e5cd 100644 --- a/src/main/java/train/client/render/CustomModelRenderer.java +++ b/src/main/java/train/client/render/CustomModelRenderer.java @@ -10,88 +10,90 @@ import java.util.ArrayList; public class CustomModelRenderer extends ModelRendererTurbo { + public CustomModelRenderer(ModelBase m, int i, int j, int w, int h) { + super(m, i, j, w, h); + } + @Override + public ModelRendererTurbo addBox(float f, float f1, float f2, int i, int j, int k) { + addBox(f, f1, f2, i, j, k, 0.0f); + return this; + } - public CustomModelRenderer(ModelBase m, int i, int j, int w, int h) { - super(m,i,j,w,h); - } - - @Override - public ModelRendererTurbo addBox(float f, float f1, float f2, int i, int j, int k) { - addBox(f, f1, f2, i, j, k, 0.0f); - return this; - } - - //for some odd reason the boxes seem inside out normally, so it's likely the values are reversed - @Override - public ModelRendererTurbo addBox(float f, float f1, float f2, int i, int j, int k, float f3) { - faces = new ArrayList(); - float f4 = f + i +f3; - float f5 = f1 + j +f3; - float f6 = f2 + k +f3; - f -= f3; - f1 -= f3; - f2 -= f3; - TexturedVertex TexturedVertex = new TexturedVertex(f, f1, f2, 0.0F, 0.0F); - TexturedVertex TexturedVertex1 = new TexturedVertex(f4, f1, f2, 0.0F, 8F); - TexturedVertex TexturedVertex2 = new TexturedVertex(f4, f5, f2, 8F, 8F); - TexturedVertex TexturedVertex3 = new TexturedVertex(f, f5, f2, 8F, 0.0F); - TexturedVertex TexturedVertex4 = new TexturedVertex(f, f1, f6, 0.0F, 0.0F); - TexturedVertex TexturedVertex5 = new TexturedVertex(f4, f1, f6, 0.0F, 8F); - TexturedVertex TexturedVertex6 = new TexturedVertex(f4, f5, f6, 8F, 8F); - TexturedVertex TexturedVertex7 = new TexturedVertex(f, f5, f6, 8F, 0.0F); - faces.add(generateFaces(new TexturedVertex[] { TexturedVertex5, TexturedVertex1, TexturedVertex2, TexturedVertex6 }, textureOffsetX + k + i, textureOffsetY + k, textureOffsetX + k + i + k, textureOffsetY + k + j, textureWidth, textureHeight)); - faces.add(generateFaces(new TexturedVertex[] { TexturedVertex, TexturedVertex4, TexturedVertex7, TexturedVertex3 }, textureOffsetX, textureOffsetY + k, textureOffsetX + k, textureOffsetY + k + j, textureWidth, textureHeight)); - faces.add(generateFaces(new TexturedVertex[] { TexturedVertex5, TexturedVertex4, TexturedVertex, TexturedVertex1 }, textureOffsetX + k, textureOffsetY, textureOffsetX + k + i, textureOffsetY + k, textureWidth, textureHeight)); - faces.add(generateFaces(new TexturedVertex[] { TexturedVertex2, TexturedVertex3, TexturedVertex7, TexturedVertex6 }, textureOffsetX + k + i, textureOffsetY, textureOffsetX + k + i + i, textureOffsetY + k, textureWidth, textureHeight)); - faces.add(generateFaces(new TexturedVertex[] { TexturedVertex1, TexturedVertex, TexturedVertex3, TexturedVertex2 }, textureOffsetX + k, textureOffsetY + k, textureOffsetX + k + i, textureOffsetY + k + j, textureWidth, textureHeight)); - faces.add(generateFaces(new TexturedVertex[] { TexturedVertex4, TexturedVertex5, TexturedVertex6, TexturedVertex7 }, textureOffsetX + k + i + k, textureOffsetY + k, textureOffsetX + k + i + k + i, textureOffsetY + k + j, textureWidth, textureHeight)); - return this; - } - - private static TexturedPolygon generateFaces(TexturedVertex aPositionTransformVertex[], int i, int j, int k, int l, float textureWidth, float textureHeight) { - aPositionTransformVertex[0] = new TexturedVertex(aPositionTransformVertex[0].vector3F, (float) k / textureWidth - 0.0015625F, (float) j / textureHeight + 0.003125F); - aPositionTransformVertex[1] = new TexturedVertex(aPositionTransformVertex[1].vector3F,(float) i / textureWidth + 0.0015625F, (float) j / textureHeight + 0.003125F); - aPositionTransformVertex[2] = new TexturedVertex(aPositionTransformVertex[2].vector3F,(float) i / textureWidth + 0.0015625F, (float) l / textureHeight - 0.003125F); - aPositionTransformVertex[3] = new TexturedVertex(aPositionTransformVertex[3].vector3F,(float) k / textureWidth - 0.0015625F, (float) l / textureHeight - 0.003125F); - return new TexturedPolygon(aPositionTransformVertex); - } - - private static final float degreesF = (float)(180D/Math.PI); - - //same as super, but old models have inverse Y rotations and I don't even understand the Z rotation - public void render(float worldScale, boolean invertYZ) { - - if(!showModel) { - return; - } - if(!compiled) { - compileDisplayList(worldScale); - return; - } - if (rotateAngleX != 0.0F || rotateAngleY != 0.0F || rotateAngleZ != 0.0F) { - GL11.glPushMatrix(); - GL11.glTranslatef(rotationPointX * worldScale, rotationPointY * worldScale, rotationPointZ *worldScale); - if (rotateAngleZ != 0.0F) { - GL11.glRotatef(rotateAngleZ * degreesF, 0.0F, 0.0F, 1.0F); - } - if (rotateAngleY != 0.0F) { - GL11.glRotatef(rotateAngleY * degreesF, 0.0F, 1.0F, 0.0F); - } - if (rotateAngleX != 0.0F) { - GL11.glRotatef(rotateAngleX * degreesF, 1.0F, 0.0F, 0.0F); - } - callDisplayList(); - GL11.glPopMatrix(); - } - else if (rotationPointX != 0.0F || rotationPointY != 0.0F || rotationPointZ != 0.0F) { - GL11.glTranslatef(rotationPointX * worldScale, rotationPointY * worldScale, rotationPointZ * worldScale); - callDisplayList(); - GL11.glTranslatef(-rotationPointX * worldScale, -rotationPointY * worldScale, -rotationPointZ * worldScale); - } - else { - callDisplayList(); - } - } + // For some odd reason the boxes seem inside out normally, so it's likely the values are reversed + @Override + public ModelRendererTurbo addBox(float f, float f1, float f2, int i, int j, int k, float f3) { + faces = new ArrayList<>(); + float f4 = f + i + f3; + float f5 = f1 + j + f3; + float f6 = f2 + k + f3; + f -= f3; + f1 -= f3; + f2 -= f3; + + TexturedVertex TexturedVertex = new TexturedVertex(f, f1, f2, 0.0F, 0.0F); + TexturedVertex TexturedVertex1 = new TexturedVertex(f4, f1, f2, 0.0F, 8F); + TexturedVertex TexturedVertex2 = new TexturedVertex(f4, f5, f2, 8F, 8F); + TexturedVertex TexturedVertex3 = new TexturedVertex(f, f5, f2, 8F, 0.0F); + TexturedVertex TexturedVertex4 = new TexturedVertex(f, f1, f6, 0.0F, 0.0F); + TexturedVertex TexturedVertex5 = new TexturedVertex(f4, f1, f6, 0.0F, 8F); + TexturedVertex TexturedVertex6 = new TexturedVertex(f4, f5, f6, 8F, 8F); + TexturedVertex TexturedVertex7 = new TexturedVertex(f, f5, f6, 8F, 0.0F); + + faces.add(generateFaces(new TexturedVertex[]{TexturedVertex5, TexturedVertex1, TexturedVertex2, TexturedVertex6}, textureOffsetX + k + i, textureOffsetY + k, textureOffsetX + k + i + k, textureOffsetY + k + j, textureWidth, textureHeight)); + faces.add(generateFaces(new TexturedVertex[]{TexturedVertex, TexturedVertex4, TexturedVertex7, TexturedVertex3}, textureOffsetX, textureOffsetY + k, textureOffsetX + k, textureOffsetY + k + j, textureWidth, textureHeight)); + faces.add(generateFaces(new TexturedVertex[]{TexturedVertex5, TexturedVertex4, TexturedVertex, TexturedVertex1}, textureOffsetX + k, textureOffsetY, textureOffsetX + k + i, textureOffsetY + k, textureWidth, textureHeight)); + faces.add(generateFaces(new TexturedVertex[]{TexturedVertex2, TexturedVertex3, TexturedVertex7, TexturedVertex6}, textureOffsetX + k + i, textureOffsetY, textureOffsetX + k + i + i, textureOffsetY + k, textureWidth, textureHeight)); + faces.add(generateFaces(new TexturedVertex[]{TexturedVertex1, TexturedVertex, TexturedVertex3, TexturedVertex2}, textureOffsetX + k, textureOffsetY + k, textureOffsetX + k + i, textureOffsetY + k + j, textureWidth, textureHeight)); + faces.add(generateFaces(new TexturedVertex[]{TexturedVertex4, TexturedVertex5, TexturedVertex6, TexturedVertex7}, textureOffsetX + k + i + k, textureOffsetY + k, textureOffsetX + k + i + k + i, textureOffsetY + k + j, textureWidth, textureHeight)); + return this; + } + + private static TexturedPolygon generateFaces(TexturedVertex aPositionTransformVertex[], int i, int j, int k, int l, float textureWidth, float textureHeight) { + aPositionTransformVertex[0] = new TexturedVertex(aPositionTransformVertex[0].vector3F, (float) k / textureWidth - 0.0015625F, (float) j / textureHeight + 0.003125F); + aPositionTransformVertex[1] = new TexturedVertex(aPositionTransformVertex[1].vector3F, (float) i / textureWidth + 0.0015625F, (float) j / textureHeight + 0.003125F); + aPositionTransformVertex[2] = new TexturedVertex(aPositionTransformVertex[2].vector3F, (float) i / textureWidth + 0.0015625F, (float) l / textureHeight - 0.003125F); + aPositionTransformVertex[3] = new TexturedVertex(aPositionTransformVertex[3].vector3F, (float) k / textureWidth - 0.0015625F, (float) l / textureHeight - 0.003125F); + return new TexturedPolygon(aPositionTransformVertex); + } + + private static final float degreesF = (float) (180D / Math.PI); + + // Same as super, but old models have inverse Y rotations and I don't even understand the Z rotation + public void render(float worldScale, boolean invertYZ) { + if (!showModel) { + return; + } + + if (!compiled) { + compileDisplayList(worldScale); + return; + } + + if (rotateAngleX != 0.0F || rotateAngleY != 0.0F || rotateAngleZ != 0.0F) { + GL11.glPushMatrix(); + GL11.glTranslatef(rotationPointX * worldScale, rotationPointY * worldScale, rotationPointZ * worldScale); + if (rotateAngleZ != 0.0F) { + GL11.glRotatef(rotateAngleZ * degreesF, 0.0F, 0.0F, 1.0F); + } + + if (rotateAngleY != 0.0F) { + GL11.glRotatef(rotateAngleY * degreesF, 0.0F, 1.0F, 0.0F); + } + + if (rotateAngleX != 0.0F) { + GL11.glRotatef(rotateAngleX * degreesF, 1.0F, 0.0F, 0.0F); + } + + callDisplayList(); + GL11.glPopMatrix(); + } else if (rotationPointX != 0.0F || rotationPointY != 0.0F || rotationPointZ != 0.0F) { + GL11.glTranslatef(rotationPointX * worldScale, rotationPointY * worldScale, rotationPointZ * worldScale); + callDisplayList(); + GL11.glTranslatef(-rotationPointX * worldScale, -rotationPointY * worldScale, -rotationPointZ * worldScale); + } else { + callDisplayList(); + } + } } diff --git a/src/main/java/train/client/render/ItemRenderAmericanStopper.java b/src/main/java/train/client/render/ItemRenderAmericanStopper.java index 772f4ec877..32964aff2a 100644 --- a/src/main/java/train/client/render/ItemRenderAmericanStopper.java +++ b/src/main/java/train/client/render/ItemRenderAmericanStopper.java @@ -15,7 +15,7 @@ import train.common.library.Info; public class ItemRenderAmericanStopper implements IItemRenderer { - private static final ResourceLocation texture = new ResourceLocation(Info.resourceLocation,Info.modelTexPrefix + "buffer.png"); + private static final ResourceLocation texture = new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "buffer.png"); private static final ModelAmericanStopper americanStopper = new ModelAmericanStopper(1F); public ItemRenderAmericanStopper() { diff --git a/src/main/java/train/client/render/ItemRenderBook.java b/src/main/java/train/client/render/ItemRenderBook.java index 66aa3a511c..8dcb3d97d4 100644 --- a/src/main/java/train/client/render/ItemRenderBook.java +++ b/src/main/java/train/client/render/ItemRenderBook.java @@ -1,6 +1,6 @@ /******************************************************************************* * Copyright (c) 2013 Mrbrutal. All rights reserved. - * + * * @name Traincraft * @author Mrbrutal ******************************************************************************/ @@ -17,68 +17,67 @@ import train.common.library.Info; public class ItemRenderBook implements IItemRenderer { - - ModelTCBook book1; - ModelTCBook book2; - - public static boolean open = false; - - public ItemRenderBook() { - book1 = new ModelTCBook(); - book2 = new ModelTCBook(); - } - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - return true; - } + ModelTCBook book1; + ModelTCBook book2; - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return true; - } + public static boolean open = false; - @Override - public void renderItem(ItemRenderType type, ItemStack stack, Object... data) { - switch (type) { - case ENTITY: { - renderBook(0.0F, 1.0F, 0.0F, 0.0F, 0.0f, 0.0f, 0.0f, 1.5F); - break; - } - case EQUIPPED: { - renderBook(0.3F, 0.6F, 0.7F, 70.0F, 0.0f, 1.0f, 0.0f, 1.0F); - break; - } - case EQUIPPED_FIRST_PERSON: { - if(open) { - rotateBook(-0.7F, 1.8F, -0.277F, -45.0F, 0.0f, 1.0f, 0.0f, 1.0f+Minecraft.getMinecraft().currentScreen.height*0.003f); - } - else { - renderBook(0F, 0.8F, 0F, 0.0F, 0.0f, 1.0f, 0.0f, 1.0F); - } - return; - } - case INVENTORY: { - renderBook(0.5F, 0.4F, 0.5F, 180.0F, 0.0f, 1.0f, 0.0f, 1.2F); - break; - } - default: - break; - } - } + public ItemRenderBook() { + book1 = new ModelTCBook(); + book2 = new ModelTCBook(); + } - private void renderBook(float left, float up, float right, float rotation, float x, float y, float z, float scale) { - Tessellator tesselator = Tessellator.instance; - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation,Info.modelTexPrefix + "book2.png")); - GL11.glPushMatrix(); - GL11.glTranslatef(left, up, right); - GL11.glRotatef(rotation, x, y, z); - GL11.glScalef(scale, scale, scale); - book1.render(20); - GL11.glPopMatrix(); - } - - private void rotateBook(float left, float up, float right, float rotation, float x, float y, float z, float scale) { + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + return true; + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { + return true; + } + + @Override + public void renderItem(ItemRenderType type, ItemStack stack, Object... data) { + switch (type) { + case ENTITY: { + renderBook(0.0F, 1.0F, 0.0F, 0.0F, 0.0f, 0.0f, 0.0f, 1.5F); + break; + } + case EQUIPPED: { + renderBook(0.3F, 0.6F, 0.7F, 70.0F, 0.0f, 1.0f, 0.0f, 1.0F); + break; + } + case EQUIPPED_FIRST_PERSON: { + if (open) { + rotateBook(-0.7F, 1.8F, -0.277F, -45.0F, 0.0f, 1.0f, 0.0f, 1.0f + Minecraft.getMinecraft().currentScreen.height * 0.003f); + } else { + renderBook(0F, 0.8F, 0F, 0.0F, 0.0f, 1.0f, 0.0f, 1.0F); + } + return; + } + case INVENTORY: { + renderBook(0.5F, 0.4F, 0.5F, 180.0F, 0.0f, 1.0f, 0.0f, 1.2F); + break; + } + default: + break; + } + } + + private void renderBook(float left, float up, float right, float rotation, float x, float y, float z, float scale) { + Tessellator tesselator = Tessellator.instance; + tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "book2.png")); + GL11.glPushMatrix(); + GL11.glTranslatef(left, up, right); + GL11.glRotatef(rotation, x, y, z); + GL11.glScalef(scale, scale, scale); + book1.render(20); + GL11.glPopMatrix(); + } + + private void rotateBook(float left, float up, float right, float rotation, float x, float y, float z, float scale) { // if(upp) { // w++; // } @@ -93,16 +92,16 @@ private void rotateBook(float left, float up, float right, float rotation, float // upp = true; // down = false; // } - //System.out.println(w/10); - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation,Info.modelTexPrefix + "book2.png")); - GL11.glPushMatrix(); - GL11.glTranslatef(left, up, right); - GL11.glTranslatef(0.5f, 1.f, -0.5f); - GL11.glRotatef(rotation, x, y, z); - GL11.glRotatef(-25.0f, 1.0f, 0.0f, 0.0f); - GL11.glScalef(scale, scale, scale); - book1.rotate(10/*+(int)((Math.sin(w)*10)-(Math.sin(w))%10)*/); - GL11.glPopMatrix(); - } + //System.out.println(w/10); + tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "book2.png")); + GL11.glPushMatrix(); + GL11.glTranslatef(left, up, right); + GL11.glTranslatef(0.5f, 1.f, -0.5f); + GL11.glRotatef(rotation, x, y, z); + GL11.glRotatef(-25.0f, 1.0f, 0.0f, 0.0f); + GL11.glScalef(scale, scale, scale); + book1.rotate(10/*+(int)((Math.sin(w)*10)-(Math.sin(w))%10)*/); + GL11.glPopMatrix(); + } } diff --git a/src/main/java/train/client/render/ItemRenderBridgePillar.java b/src/main/java/train/client/render/ItemRenderBridgePillar.java index 026f1a5b49..83fa173640 100644 --- a/src/main/java/train/client/render/ItemRenderBridgePillar.java +++ b/src/main/java/train/client/render/ItemRenderBridgePillar.java @@ -11,49 +11,43 @@ public class ItemRenderBridgePillar implements IItemRenderer { - public ItemRenderBridgePillar() { - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - return true; - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return true; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch (type) { - case ENTITY: { - renderBridgePillar(0f, 0f, 0f); - return; - } - case EQUIPPED: { - renderBridgePillar(0.2f, 1f, 1f); - return; - } - case EQUIPPED_FIRST_PERSON: { - renderBridgePillar(0.2f, 1f, 1f); - return; - } - case INVENTORY: { - renderBridgePillar(0f, 0f, 0f); - return; - } - default: - break; - } - } - - private void renderBridgePillar(float x, float y, float z) { - Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "bridgePillar.png")); - GL11.glPushMatrix(); - GL11.glTranslatef(x, y-0.5f, z); - GL11.glRotatef(180f,0f,0f, 1f); - modelBridgePillar.render(); - GL11.glPopMatrix(); - } + public ItemRenderBridgePillar() { + } + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + return true; + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { + return true; + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + switch (type) { + case ENTITY: + case INVENTORY: { + renderBridgePillar(0f, 0f, 0f); + return; + } + case EQUIPPED: + case EQUIPPED_FIRST_PERSON: { + renderBridgePillar(0.2f, 1f, 1f); + return; + } + default: + break; + } + } + + private void renderBridgePillar(float x, float y, float z) { + Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "bridgePillar.png")); + GL11.glPushMatrix(); + GL11.glTranslatef(x, y - 0.5f, z); + GL11.glRotatef(180f, 0f, 0f, 1f); + modelBridgePillar.render(); + GL11.glPopMatrix(); + } } diff --git a/src/main/java/train/client/render/ItemRenderEmbeddedStopper.java b/src/main/java/train/client/render/ItemRenderEmbeddedStopper.java index bbae0b182f..3f7281f411 100644 --- a/src/main/java/train/client/render/ItemRenderEmbeddedStopper.java +++ b/src/main/java/train/client/render/ItemRenderEmbeddedStopper.java @@ -15,7 +15,7 @@ import train.common.library.Info; public class ItemRenderEmbeddedStopper implements IItemRenderer { - private static final ResourceLocation texture = new ResourceLocation(Info.resourceLocation,Info.modelTexPrefix + "embedded_buffer.png"); + private static final ResourceLocation texture = new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "embedded_buffer.png"); private static final ModelEmbeddedStopper embeddedStopper = new ModelEmbeddedStopper(1F); public ItemRenderEmbeddedStopper() { diff --git a/src/main/java/train/client/render/ItemRenderGeneratorDiesel.java b/src/main/java/train/client/render/ItemRenderGeneratorDiesel.java index 06742b1595..2297714aca 100644 --- a/src/main/java/train/client/render/ItemRenderGeneratorDiesel.java +++ b/src/main/java/train/client/render/ItemRenderGeneratorDiesel.java @@ -1,6 +1,6 @@ /******************************************************************************* * Copyright (c) 2013 Spitfire4466. All rights reserved. - * + * * @name TrainCraft * @author Spitfire4466 ******************************************************************************/ @@ -16,53 +16,53 @@ public class ItemRenderGeneratorDiesel implements IItemRenderer { - private static final ModelGeneratorDiesel generator = new ModelGeneratorDiesel(1F); - private static final ResourceLocation texture = new ResourceLocation(Info.resourceLocation,Info.modelTexPrefix + "generator_diesel.png"); + private static final ModelGeneratorDiesel generator = new ModelGeneratorDiesel(1F); + private static final ResourceLocation texture = new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "generator_diesel.png"); - public ItemRenderGeneratorDiesel() { + public ItemRenderGeneratorDiesel() { - } + } - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - return true; - } + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + return true; + } - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return true; - } + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { + return true; + } - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch (type) { - case ENTITY: { - renderGenerator(0.0F, 0F, 0.0F); - break; - } - case EQUIPPED: { - renderGenerator(0F, 0.1F, 0F); - break; - } - case EQUIPPED_FIRST_PERSON: { - renderGenerator(0F, 0.1F, 0F); - return; - } - case INVENTORY: { - renderGenerator(0.5F, -0.1F, 0.5F); - break; - } - default: - break; - } - } + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + switch (type) { + case ENTITY: { + renderGenerator(0.0F, 0F, 0.0F); + break; + } + case EQUIPPED: { + renderGenerator(0F, 0.1F, 0F); + break; + } + case EQUIPPED_FIRST_PERSON: { + renderGenerator(0F, 0.1F, 0F); + return; + } + case INVENTORY: { + renderGenerator(0.5F, -0.1F, 0.5F); + break; + } + default: + break; + } + } - private void renderGenerator(float f, float g, float h) { - tmt.Tessellator.bindTexture(texture); - GL11.glPushMatrix(); - GL11.glTranslatef(f, g, h); - GL11.glScalef(0.7F, 0.7F, 0.7F); - generator.render2(0.0625F); - GL11.glPopMatrix(); - } + private void renderGenerator(float f, float g, float h) { + tmt.Tessellator.bindTexture(texture); + GL11.glPushMatrix(); + GL11.glTranslatef(f, g, h); + GL11.glScalef(0.7F, 0.7F, 0.7F); + generator.render2(0.0625F); + GL11.glPopMatrix(); + } } diff --git a/src/main/java/train/client/render/ItemRenderLantern.java b/src/main/java/train/client/render/ItemRenderLantern.java index b87886f2ef..e8ab573853 100644 --- a/src/main/java/train/client/render/ItemRenderLantern.java +++ b/src/main/java/train/client/render/ItemRenderLantern.java @@ -8,62 +8,59 @@ import train.common.library.Info; public class ItemRenderLantern implements IItemRenderer { - private static final ModelLantern modelLantern= new ModelLantern(); - private static final ResourceLocation texture = new ResourceLocation(Info.resourceLocation,Info.modelTexPrefix + "lantern_uv_draw_2.png"); + private static final ModelLantern modelLantern = new ModelLantern(); + private static final ResourceLocation texture = new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "lantern_uv_draw_2.png"); - public ItemRenderLantern() { - } + public ItemRenderLantern() { + } - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - return true; - } + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + return true; + } - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return true; - } + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { + return true; + } - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch (type) { - case ENTITY: { - renderLantern(0f, 0f, 0f, 1f); - return; - } - case EQUIPPED: { - renderLantern(0.2f, 1f, 1f, 1f); - return; - } - case EQUIPPED_FIRST_PERSON: { - renderLantern(0.2f, 1f, 1f, 1f); - return; - } - case INVENTORY: { - renderLantern(0f, 0f, 0f, 0.7f); - return; - } - default: - break; - } - } + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + switch (type) { + case ENTITY: { + renderLantern(0f, 0f, 0f, 1f); + return; + } + case EQUIPPED: + case EQUIPPED_FIRST_PERSON: { + renderLantern(0.2f, 1f, 1f, 1f); + return; + } + case INVENTORY: { + renderLantern(0f, 0f, 0f, 0.7f); + return; + } + default: + break; + } + } - private void renderLantern(float x, float y, float z, float scale) { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_LIGHTING); + private void renderLantern(float x, float y, float z, float scale) { + GL11.glPushMatrix(); + GL11.glDisable(GL11.GL_LIGHTING); - GL11.glTranslatef(x, y, z); - GL11.glScalef(scale, scale, scale); + GL11.glTranslatef(x, y, z); + GL11.glScalef(scale, scale, scale); - tmt.Tessellator.bindTexture(texture); - float f2 = (float) (0x4f4e4a >> 16 & 255) / 255.0F; - float f3 = (float) (0x4f4e4a >> 8 & 255) / 255.0F; - float f4 = (float) (0x4f4e4a & 255) / 255.0F; - GL11.glColor3f(f2, f3, f4); + tmt.Tessellator.bindTexture(texture); + float f2 = (float) (0x4f4e4a >> 16 & 255) / 255.0F; + float f3 = (float) (0x4f4e4a >> 8 & 255) / 255.0F; + float f4 = (float) (0x4f4e4a & 255) / 255.0F; + GL11.glColor3f(f2, f3, f4); - modelLantern.render(); + modelLantern.render(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glPopMatrix(); + } } diff --git a/src/main/java/train/client/render/ItemRenderMFPBWigWag.java b/src/main/java/train/client/render/ItemRenderMFPBWigWag.java index a559937b60..ba10f5e990 100644 --- a/src/main/java/train/client/render/ItemRenderMFPBWigWag.java +++ b/src/main/java/train/client/render/ItemRenderMFPBWigWag.java @@ -9,60 +9,60 @@ import train.common.library.Info; public class ItemRenderMFPBWigWag implements IItemRenderer { - private static final ModelMFPBWigWag modeSwitch = new ModelMFPBWigWag(); - private static final ResourceLocation texture = new ResourceLocation(Info.resourceLocation,Info.modelTexPrefix + "MFPBWigWagOn.png"); + private static final ModelMFPBWigWag modeSwitch = new ModelMFPBWigWag(); + private static final ResourceLocation texture = new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "MFPBWigWagOn.png"); - public ItemRenderMFPBWigWag() { - } + public ItemRenderMFPBWigWag() { + } - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - return true; - } + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + return true; + } - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return true; - } + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { + return true; + } - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch (type) { - case ENTITY: { - renderSwitch(0f, 0f, 0f, 1f); - return; - } - case EQUIPPED: { - renderSwitch(0.6f, 0.25f, 1f, 1f); - return; - } - case EQUIPPED_FIRST_PERSON: { - renderSwitch(0.2f, 0.25f, 1f, 0.7f); - return; - } - case INVENTORY: { - renderSwitch(0f, -0.7f, 0f, 0.5f); - return; - } - default: - break; - } - } + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + switch (type) { + case ENTITY: { + renderSwitch(0f, 0f, 0f, 1f); + return; + } + case EQUIPPED: { + renderSwitch(0.6f, 0.25f, 1f, 1f); + return; + } + case EQUIPPED_FIRST_PERSON: { + renderSwitch(0.2f, 0.25f, 1f, 0.7f); + return; + } + case INVENTORY: { + renderSwitch(0f, -0.7f, 0f, 0.5f); + return; + } + default: + break; + } + } - private void renderSwitch(float x, float y, float z, float scale) { - Tessellator.bindTexture(texture); - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_LIGHTING); + private void renderSwitch(float x, float y, float z, float scale) { + Tessellator.bindTexture(texture); + GL11.glPushMatrix(); + GL11.glDisable(GL11.GL_LIGHTING); - GL11.glTranslatef(x, y, z); - GL11.glScalef(scale, scale, scale); - GL11.glRotated(180,0,0,1); - GL11.glRotated(180,0,1,0); + GL11.glTranslatef(x, y, z); + GL11.glScalef(scale, scale, scale); + GL11.glRotated(180, 0, 0, 1); + GL11.glRotated(180, 0, 1, 0); - modeSwitch.render(null,0,0,0,0,0,0.0625f); + modeSwitch.render(null, 0, 0, 0, 0, 0, 0.0625f); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glPopMatrix(); + } } diff --git a/src/main/java/train/client/render/ItemRenderModelMetroMadridPole.java b/src/main/java/train/client/render/ItemRenderModelMetroMadridPole.java index 54e286dec2..4de6c6f243 100644 --- a/src/main/java/train/client/render/ItemRenderModelMetroMadridPole.java +++ b/src/main/java/train/client/render/ItemRenderModelMetroMadridPole.java @@ -10,7 +10,7 @@ public class ItemRenderModelMetroMadridPole implements IItemRenderer { - private static final ResourceLocation texture = new ResourceLocation(Info.resourceLocation,Info.modelTexPrefix + "MetroMadridPole.png"); + private static final ResourceLocation texture = new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "MetroMadridPole.png"); private static final ModelMetroMadridOHW modelMetroMadridPole = new ModelMetroMadridOHW(); public ItemRenderModelMetroMadridPole() { @@ -29,22 +29,16 @@ public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRe @Override public void renderItem(ItemRenderType type, ItemStack item, Object... data) { switch (type) { - case ENTITY: { + case ENTITY: + case INVENTORY: { renderMetroMadridPole(0f, 0f, 0f); return; } - case EQUIPPED: { - renderMetroMadridPole(0.2f, 1f, 1f); - return; - } + case EQUIPPED: case EQUIPPED_FIRST_PERSON: { renderMetroMadridPole(0.2f, 1f, 1f); return; } - case INVENTORY: { - renderMetroMadridPole(0f, 0f, 0f); - return; - } default: break; } @@ -53,8 +47,8 @@ public void renderItem(ItemRenderType type, ItemStack item, Object... data) { private void renderMetroMadridPole(float x, float y, float z) { Tessellator.bindTexture(texture); GL11.glPushMatrix(); - GL11.glTranslatef(x, y+0.125f, z); - GL11.glRotatef(180f,0f,0f, 1f); + GL11.glTranslatef(x, y + 0.125f, z); + GL11.glRotatef(180f, 0f, 0f, 1f); modelMetroMadridPole.render(); GL11.glPopMatrix(); } diff --git a/src/main/java/train/client/render/ItemRenderSignal.java b/src/main/java/train/client/render/ItemRenderSignal.java index 9fabe5dbfc..4cb157545b 100644 --- a/src/main/java/train/client/render/ItemRenderSignal.java +++ b/src/main/java/train/client/render/ItemRenderSignal.java @@ -1,6 +1,6 @@ /******************************************************************************* * Copyright (c) 2012 Mrbrutal. All rights reserved. - * + * * @name TrainCraft * @author Mrbrutal ******************************************************************************/ @@ -16,53 +16,50 @@ public class ItemRenderSignal implements IItemRenderer { - private static final ModelBlockSignal signal = new ModelBlockSignal(1F); - private static final ResourceLocation texture = new ResourceLocation(Info.resourceLocation,Info.trainsPrefix + "signal_suisse_green.png"); + private static final ModelBlockSignal signal = new ModelBlockSignal(1F); + private static final ResourceLocation texture = new ResourceLocation(Info.resourceLocation, Info.trainsPrefix + "signal_suisse_green.png"); - public ItemRenderSignal() { - } + public ItemRenderSignal() { + } - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - return true; - } + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + return true; + } - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return true; - } + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { + return true; + } - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch (type) { - case ENTITY: { - renderSignal(0.0F, 0F, 0.0F, 0.0F, 1F); - break; - } - case EQUIPPED: { - renderSignal(0F, 0.05F, 0F, 180.0F, 0.7F); - break; - } - case EQUIPPED_FIRST_PERSON: { - renderSignal(0F, 0.05F, 0F, 180.0F, 0.7F); - return; - } - case INVENTORY: { - renderSignal(0F, -0.8F, 0F, 180.0F, 0.65F); - break; - } - default: - break; - } - } + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + switch (type) { + case ENTITY: { + renderSignal(0.0F, 0F, 0.0F, 0.0F, 1F); + break; + } + case EQUIPPED: + case EQUIPPED_FIRST_PERSON: { + renderSignal(0F, 0.05F, 0F, 180.0F, 0.7F); + return; + } + case INVENTORY: { + renderSignal(0F, -0.8F, 0F, 180.0F, 0.65F); + break; + } + default: + break; + } + } - private void renderSignal(float f, float g, float h, float rotation, float scale) { - tmt.Tessellator.bindTexture(texture); - GL11.glPushMatrix(); //start - GL11.glTranslatef(f, g, h); //size - GL11.glRotatef(rotation, f, g, h); - GL11.glScalef(scale, scale, scale); - signal.render2(0.0625F); - GL11.glPopMatrix(); //end - } + private void renderSignal(float f, float g, float h, float rotation, float scale) { + tmt.Tessellator.bindTexture(texture); + GL11.glPushMatrix(); //start + GL11.glTranslatef(f, g, h); //size + GL11.glRotatef(rotation, f, g, h); + GL11.glScalef(scale, scale, scale); + signal.render2(0.0625F); + GL11.glPopMatrix(); //end + } } diff --git a/src/main/java/train/client/render/ItemRenderStopper.java b/src/main/java/train/client/render/ItemRenderStopper.java index 5d212ee95f..2ef506ba54 100644 --- a/src/main/java/train/client/render/ItemRenderStopper.java +++ b/src/main/java/train/client/render/ItemRenderStopper.java @@ -1,6 +1,6 @@ /******************************************************************************* * Copyright (c) 2012 Mrbrutal. All rights reserved. - * + * * @name TrainCraft * @author Mrbrutal ******************************************************************************/ @@ -15,52 +15,49 @@ import train.common.library.Info; public class ItemRenderStopper implements IItemRenderer { - private static final ResourceLocation texture = new ResourceLocation(Info.resourceLocation,Info.modelTexPrefix + "buffer.png"); - private static final ModelStopper stopper = new ModelStopper(1F); - - public ItemRenderStopper() { - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - return true; - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return true; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch (type) { - case ENTITY: { - renderStopper(0.0F, 0F, 0.0F, 0.0F); - break; - } - case EQUIPPED: { - renderStopper(0F, 0.4F, 0F, 180.0F); - break; - } - case EQUIPPED_FIRST_PERSON: { - renderStopper(0F, 0.4F, 0F, 180.0F); - return; - } - case INVENTORY: { - renderStopper(1F, 0.65F, 1F, 0.0F); - break; - } - default: - break; - } - } - - private void renderStopper(float f, float g, float h, float rotation) { - tmt.Tessellator.bindTexture(texture); - GL11.glPushMatrix(); //start - GL11.glTranslatef(f, g, h); //size - GL11.glRotatef(rotation, f, g, h); - stopper.render2(0.0625F); - GL11.glPopMatrix(); //end - } + private static final ResourceLocation texture = new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "buffer.png"); + private static final ModelStopper stopper = new ModelStopper(1F); + + public ItemRenderStopper() { + } + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + return true; + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { + return true; + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + switch (type) { + case ENTITY: { + renderStopper(0.0F, 0F, 0.0F, 0.0F); + break; + } + case EQUIPPED: + case EQUIPPED_FIRST_PERSON: { + renderStopper(0F, 0.4F, 0F, 180.0F); + return; + } + case INVENTORY: { + renderStopper(1F, 0.65F, 1F, 0.0F); + break; + } + default: + break; + } + } + + private void renderStopper(float f, float g, float h, float rotation) { + tmt.Tessellator.bindTexture(texture); + GL11.glPushMatrix(); //start + GL11.glTranslatef(f, g, h); //size + GL11.glRotatef(rotation, f, g, h); + stopper.render2(0.0625F); + GL11.glPopMatrix(); //end + } } diff --git a/src/main/java/train/client/render/ItemRenderSwitchStand.java b/src/main/java/train/client/render/ItemRenderSwitchStand.java index 688a78e07b..644e00db41 100644 --- a/src/main/java/train/client/render/ItemRenderSwitchStand.java +++ b/src/main/java/train/client/render/ItemRenderSwitchStand.java @@ -9,60 +9,57 @@ import train.common.library.Info; public class ItemRenderSwitchStand implements IItemRenderer { - private static final ModelSwitchStandOn modeSwitch = new ModelSwitchStandOn(); - private static final ResourceLocation texture = new ResourceLocation(Info.resourceLocation,Info.modelTexPrefix + "switchStand_uv_draw_1.png"); + private static final ModelSwitchStandOn modeSwitch = new ModelSwitchStandOn(); + private static final ResourceLocation texture = new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "switchStand_uv_draw_1.png"); - public ItemRenderSwitchStand() { - } + public ItemRenderSwitchStand() { + } - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - return true; - } + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + return true; + } - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return true; - } + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { + return true; + } - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch (type) { - case ENTITY: { - renderSwitch(0f, 0f, 0f, 1f); - return; - } - case EQUIPPED: { - renderSwitch(0.2f, 1f, 1f, 1f); - return; - } - case EQUIPPED_FIRST_PERSON: { - renderSwitch(0.2f, 1f, 1f, 1f); - return; - } - case INVENTORY: { - renderSwitch(0f, 0f, 0f, 0.7f); - return; - } - default: - break; - } - } + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + switch (type) { + case ENTITY: { + renderSwitch(0f, 0f, 0f, 1f); + return; + } + case EQUIPPED: + case EQUIPPED_FIRST_PERSON: { + renderSwitch(0.2f, 1f, 1f, 1f); + return; + } + case INVENTORY: { + renderSwitch(0f, 0f, 0f, 0.7f); + return; + } + default: + break; + } + } - private void renderSwitch(float x, float y, float z, float scale) { - Tessellator.bindTexture(texture); - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_LIGHTING); + private void renderSwitch(float x, float y, float z, float scale) { + Tessellator.bindTexture(texture); + GL11.glPushMatrix(); + GL11.glDisable(GL11.GL_LIGHTING); - GL11.glTranslatef(x, y, z); - GL11.glScalef(scale, scale, scale); - GL11.glRotated(180,0,0,1); - GL11.glRotated(180,0,1,0); + GL11.glTranslatef(x, y, z); + GL11.glScalef(scale, scale, scale); + GL11.glRotated(180, 0, 0, 1); + GL11.glRotated(180, 0, 1, 0); - modeSwitch.render(null,0,0,0,0,0,0.0625f); + modeSwitch.render(null, 0, 0, 0, 0, 0, 0.0625f); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glPopMatrix(); + } } diff --git a/src/main/java/train/client/render/ItemRenderWaterWheel.java b/src/main/java/train/client/render/ItemRenderWaterWheel.java index 9f1cef2fbf..d0e256f768 100644 --- a/src/main/java/train/client/render/ItemRenderWaterWheel.java +++ b/src/main/java/train/client/render/ItemRenderWaterWheel.java @@ -8,62 +8,59 @@ import train.common.library.Info; public class ItemRenderWaterWheel implements IItemRenderer { - private static final ResourceLocation texture = new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "water_wheel_uv.png"); - private static final ModelWaterWheel modelWaterWheel = new ModelWaterWheel(); + private static final ResourceLocation texture = new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "water_wheel_uv.png"); + private static final ModelWaterWheel modelWaterWheel = new ModelWaterWheel(); - public ItemRenderWaterWheel() { - } + public ItemRenderWaterWheel() { + } - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - return true; - } + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + return true; + } - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return true; - } + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { + return true; + } - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch (type) { - case ENTITY: { - renderWaterWheel(0f, 0f, 0f, 0.8f); - return; - } - case EQUIPPED: { - renderWaterWheel(0f, 0.5f, 0.5f, 0.8f); - return; - } - case EQUIPPED_FIRST_PERSON: { - renderWaterWheel(0f, 0.5f, 0.5f, 0.8f); - return; - } - case INVENTORY: { - renderWaterWheel(0f, 0f, 0f, 0.5f); - return; - } - default: - break; - } - } + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + switch (type) { + case ENTITY: { + renderWaterWheel(0f, 0f, 0f, 0.8f); + return; + } + case EQUIPPED: + case EQUIPPED_FIRST_PERSON: { + renderWaterWheel(0f, 0.5f, 0.5f, 0.8f); + return; + } + case INVENTORY: { + renderWaterWheel(0f, 0f, 0f, 0.5f); + return; + } + default: + break; + } + } - private void renderWaterWheel(float x, float y, float z, float scale) { - GL11.glPushMatrix(); + private void renderWaterWheel(float x, float y, float z, float scale) { + GL11.glPushMatrix(); - GL11.glTranslatef(x, y, z); - GL11.glScalef(scale, scale, scale); - GL11.glScalef(0.36F, 0.36F, 1F); - GL11.glRotatef(180f, 0f, 1f, 0f); + GL11.glTranslatef(x, y, z); + GL11.glScalef(scale, scale, scale); + GL11.glScalef(0.36F, 0.36F, 1F); + GL11.glRotatef(180f, 0f, 1f, 0f); - tmt.Tessellator.bindTexture(texture); - float f2 = (float) (0x331D14 >> 16 & 255) / 255.0F; - float f3 = (float) (0x331D14 >> 8 & 255) / 255.0F; - float f4 = (float) (0x331D14 & 255) / 255.0F; - GL11.glColor3f(f2, f3, f4); + tmt.Tessellator.bindTexture(texture); + float f2 = (float) (0x331D14 >> 16 & 255) / 255.0F; + float f3 = (float) (0x331D14 >> 8 & 255) / 255.0F; + float f4 = (float) (0x331D14 & 255) / 255.0F; + GL11.glColor3f(f2, f3, f4); - modelWaterWheel.render(); + modelWaterWheel.render(); - GL11.glPopMatrix(); - } + GL11.glPopMatrix(); + } } diff --git a/src/main/java/train/client/render/ItemRenderWindMill.java b/src/main/java/train/client/render/ItemRenderWindMill.java index 9e26ac0033..5b275fa051 100644 --- a/src/main/java/train/client/render/ItemRenderWindMill.java +++ b/src/main/java/train/client/render/ItemRenderWindMill.java @@ -9,68 +9,65 @@ import train.common.library.Info; public class ItemRenderWindMill implements IItemRenderer { - private ModelWindMill modelWindMill; - private ModelWindMillWheel modelWindMillWheel; + private final ModelWindMill modelWindMill; + private final ModelWindMillWheel modelWindMillWheel; - public ItemRenderWindMill() { - modelWindMill = new ModelWindMill(); - modelWindMillWheel = new ModelWindMillWheel(); - } + public ItemRenderWindMill() { + modelWindMill = new ModelWindMill(); + modelWindMillWheel = new ModelWindMillWheel(); + } - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - return true; - } + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + return true; + } - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return true; - } + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { + return true; + } - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch (type) { - case ENTITY: { - renderWindMill(0f, 0f, 0f, 0.5f); - return; - } - case EQUIPPED: { - renderWindMill(0f, 0.5f, 0.5f, 0.4f); - return; - } - case EQUIPPED_FIRST_PERSON: { - renderWindMill(0f, 0.5f, 0.5f, 0.4f); - return; - } - case INVENTORY: { - renderWindMill(0f, -0.34f, 0f, 0.4f); - return; - } - default: - break; - } - } + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + switch (type) { + case ENTITY: { + renderWindMill(0f, 0f, 0f, 0.5f); + return; + } + case EQUIPPED: + case EQUIPPED_FIRST_PERSON: { + renderWindMill(0f, 0.5f, 0.5f, 0.4f); + return; + } + case INVENTORY: { + renderWindMill(0f, -0.34f, 0f, 0.4f); + return; + } + default: + break; + } + } - private void renderWindMill(float x, float y, float z, float scale) { - GL11.glPushMatrix(); + private void renderWindMill(float x, float y, float z, float scale) { + GL11.glPushMatrix(); - GL11.glTranslatef(x, y, z); - GL11.glScalef(scale, scale, scale); + GL11.glTranslatef(x, y, z); + GL11.glScalef(scale, scale, scale); - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "water_wheel_uv.png")); - float f2 = (float) (0x331D14 >> 16 & 255) / 255.0F; - float f3 = (float) (0x331D14 >> 8 & 255) / 255.0F; - float f4 = (float) (0x331D14 & 255) / 255.0F; - GL11.glColor3f(f2,f3,f4); + tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "water_wheel_uv.png")); + float f2 = (float) (0x331D14 >> 16 & 255) / 255.0F; + float f3 = (float) (0x331D14 >> 8 & 255) / 255.0F; + float f4 = (float) (0x331D14 & 255) / 255.0F; + GL11.glColor3f(f2, f3, f4); - modelWindMill.render(); - f2 = (float) (0x7A7674 >> 16 & 255) / 255.0F; - f3 = (float) (0x7A7674 >> 8 & 255) / 255.0F; - f4 = (float) (0x7A7674 & 255) / 255.0F; - GL11.glColor3f(f2,f3,f4); - GL11.glTranslatef(0, 2F, 0); - modelWindMillWheel.render(); + modelWindMill.render(); + f2 = (float) (0x7A7674 >> 16 & 255) / 255.0F; + f3 = (float) (0x7A7674 >> 8 & 255) / 255.0F; + f4 = (float) (0x7A7674 & 255) / 255.0F; + GL11.glColor3f(f2, f3, f4); + GL11.glTranslatef(0, 2F, 0); + modelWindMillWheel.render(); - GL11.glPopMatrix(); - } + GL11.glPopMatrix(); + } } diff --git a/src/main/java/train/client/render/ModelGTNG.java b/src/main/java/train/client/render/ModelGTNG.java index e475502483..e28ac9ccb6 100644 --- a/src/main/java/train/client/render/ModelGTNG.java +++ b/src/main/java/train/client/render/ModelGTNG.java @@ -453,5 +453,5 @@ public void render(Entity entity, float f, float f1, float f2, float f3, float f public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5) { } - public ModelRendererTurbo gtngModel[]; + public ModelRendererTurbo[] gtngModel; } \ No newline at end of file diff --git a/src/main/java/train/client/render/RenderAmericanStopper.java b/src/main/java/train/client/render/RenderAmericanStopper.java index 4e7db63cd6..4df71e4757 100644 --- a/src/main/java/train/client/render/RenderAmericanStopper.java +++ b/src/main/java/train/client/render/RenderAmericanStopper.java @@ -18,7 +18,7 @@ public class RenderAmericanStopper extends TileEntitySpecialRenderer { private static final ModelAmericanStopper modelAmericanStopper = new ModelAmericanStopper(1.0F / 16.0F); - private static final ResourceLocation texture = new ResourceLocation(Info.resourceLocation,Info.modelTexPrefix + "buffer.png"); + private static final ResourceLocation texture = new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "buffer.png"); public RenderAmericanStopper() { } diff --git a/src/main/java/train/client/render/RenderBogie.java b/src/main/java/train/client/render/RenderBogie.java index 3046ab49c5..cdbbab7d64 100644 --- a/src/main/java/train/client/render/RenderBogie.java +++ b/src/main/java/train/client/render/RenderBogie.java @@ -9,32 +9,33 @@ public class RenderBogie extends Render { - protected ModelBase model = new ModelBase() {}; - private static final ResourceLocation TEXTURE = new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "robot.png"); - - public RenderBogie() { - } - - - @Override - public void doRender(Entity entity, double x, double y, double z, float f, float f1) { - GL11.glPushMatrix(); - GL11.glTranslated(x, y, z); + protected ModelBase model = new ModelBase() { + }; + private static final ResourceLocation TEXTURE = new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "robot.png"); + + public RenderBogie() { + } + + + @Override + public void doRender(Entity entity, double x, double y, double z, float f, float f1) { + GL11.glPushMatrix(); + GL11.glTranslated(x, y, z); /*renderManager.renderEngine.bindTexture(TEXTURE); float factor = (float) (1.0 / 16.0); GL11.glScalef(2, 2, 2); box.render(factor);*/ - - - GL11.glPopMatrix(); - } - - @Override - protected ResourceLocation getEntityTexture(Entity entity) { - return TEXTURE; - } - + + + GL11.glPopMatrix(); + } + + @Override + protected ResourceLocation getEntityTexture(Entity entity) { + return TEXTURE; + } + } diff --git a/src/main/java/train/client/render/RenderBridgePillar.java b/src/main/java/train/client/render/RenderBridgePillar.java index 1e60a567ca..d3314c4e39 100644 --- a/src/main/java/train/client/render/RenderBridgePillar.java +++ b/src/main/java/train/client/render/RenderBridgePillar.java @@ -9,16 +9,16 @@ import train.common.library.Info; public class RenderBridgePillar extends TileEntitySpecialRenderer { - static final ModelBridgePillar modelBridgePillar = new ModelBridgePillar(); - static final ResourceLocation texture = new ResourceLocation(Info.modID,Info.modelTexPrefix + "bridgePillar.png"); - static Integer GLID = null; + static final ModelBridgePillar modelBridgePillar = new ModelBridgePillar(); + static final ResourceLocation texture = new ResourceLocation(Info.modID, Info.modelTexPrefix + "bridgePillar.png"); + static Integer GLID = null; - @Override - public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float tick) { - Tessellator.bindTexture(texture); - GL11.glPushMatrix(); - GL11.glTranslated(x+0.5,y,z+0.5); - GL11.glRotatef(180f,180f,1f,0f); + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float tick) { + Tessellator.bindTexture(texture); + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y, z + 0.5); + GL11.glRotatef(180f, 180f, 1f, 0f); /* if(GLID==null || !GL11.glIsList(GLID)) { GLID = GLAllocation.generateDisplayLists(1); @@ -31,7 +31,7 @@ public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double */ - modelBridgePillar.render(); - GL11.glPopMatrix(); - } + modelBridgePillar.render(); + GL11.glPopMatrix(); + } } diff --git a/src/main/java/train/client/render/RenderCoreTC.java b/src/main/java/train/client/render/RenderCoreTC.java index 6cc915849f..b5ee8a8924 100644 --- a/src/main/java/train/client/render/RenderCoreTC.java +++ b/src/main/java/train/client/render/RenderCoreTC.java @@ -1,6 +1,6 @@ /******************************************************************************* * Copyright (c) 2012 Mrbrutal. All rights reserved. - * + * * @name TrainCraft * @author Mrbrutal ******************************************************************************/ @@ -12,189 +12,189 @@ import net.minecraft.world.World; public class RenderCoreTC { - public static void renderBlockFalling(Block block, int meta, World world, int i, int j, int k) { - Tessellator tessellator = Tessellator.instance; - tessellator.startDrawingQuads(); - tessellator.setBrightness(block.getMixedBrightnessForBlock(world, i, j, k)); - tessellator.setColorOpaque_F(0.6F, 0.6F, 0.6F); - tessellator.draw(); - } - - public static void renderBottomFace(Block block, double d, double d1, double d2, int i) { - double blockMinX = block.getBlockBoundsMinX(); - double blockMaxX = block.getBlockBoundsMaxX(); - double blockMinY = block.getBlockBoundsMinY(); - double blockMinZ = block.getBlockBoundsMinZ(); - double blockMaxZ = block.getBlockBoundsMaxZ(); - Tessellator tessellator = Tessellator.instance; - - int j = (i & 0xf) << 4; - int k = i & 0xf0; - double d3 = ((double) j + blockMinX * 16D) / 256D; - double d4 = (((double) j + blockMaxX * 16D) - 0.01D) / 256D; - double d5 = ((double) k + blockMinZ * 16D) / 256D; - double d6 = (((double) k + blockMaxZ * 16D) - 0.01D) / 256D; - if (blockMinX < 0.0D || blockMaxX > 1.0D) { - d3 = ((float) j + 0.0F) / 256F; - d4 = ((float) j + 15.99F) / 256F; - } - if (blockMinZ < 0.0D || blockMaxZ > 1.0D) { - d5 = ((float) k + 0.0F) / 256F; - d6 = ((float) k + 15.99F) / 256F; - } - - tessellator.addVertexWithUV(d + blockMinX, d1 + blockMinY, d2 + blockMaxZ, d3, d6); - tessellator.addVertexWithUV(d + blockMinX, d1 + blockMinY, d2 + blockMinZ, d3, d5); - tessellator.addVertexWithUV(d + blockMaxX, d1 + blockMinY, d2 + blockMinZ, d4, d5); - tessellator.addVertexWithUV(d + blockMaxX, d1 + blockMinY, d2 + blockMaxZ, d4, d6); - } - - public static void renderTopFace(Block block, double d, double d1, double d2, int i) { - double blockMinX = block.getBlockBoundsMinX(); - double blockMaxX = block.getBlockBoundsMaxX(); - double blockMaxY = block.getBlockBoundsMaxY(); - double blockMinZ = block.getBlockBoundsMinZ(); - double blockMaxZ = block.getBlockBoundsMaxZ(); - Tessellator tessellator = Tessellator.instance; - - int j = (i & 0xf) << 4; - int k = i & 0xf0; - double d3 = ((double) j + blockMinX * 16D) / 256D; - double d4 = (((double) j + blockMaxX * 16D) - 0.01D) / 256D; - double d5 = ((double) k + blockMinZ * 16D) / 256D; - double d6 = (((double) k + blockMaxZ * 16D) - 0.01D) / 256D; - if (blockMinX < 0.0D || blockMaxX > 1.0D) { - d3 = ((float) j + 0.0F) / 256F; - d4 = ((float) j + 15.99F) / 256F; - } - if (blockMinZ < 0.0D || blockMaxZ > 1.0D) { - d5 = ((float) k + 0.0F) / 256F; - d6 = ((float) k + 15.99F) / 256F; - } - - tessellator.addVertexWithUV(d + blockMaxX, d1 + blockMaxY, d2 + blockMaxZ, d4, d6); - tessellator.addVertexWithUV(d + blockMaxX, d1 + blockMaxY, d2 + blockMinZ, d4, d5); - tessellator.addVertexWithUV(d + blockMinX, d1 + blockMaxY, d2 + blockMinZ, d3, d5); - tessellator.addVertexWithUV(d + blockMinX, d1 + blockMaxY, d2 + blockMaxZ, d3, d6); - } - - public static void renderEastFace(Block block, double d, double d1, double d2, int i) { - double blockMinX = block.getBlockBoundsMinX(); - double blockMaxX = block.getBlockBoundsMaxX(); - double blockMinY = block.getBlockBoundsMinY(); - double blockMaxY = block.getBlockBoundsMaxY(); - double blockMinZ = block.getBlockBoundsMinZ(); - Tessellator tessellator = Tessellator.instance; - - int j = (i & 0xf) << 4; - int k = i & 0xf0; - double d3 = ((double) j + blockMinX * 16D) / 256D; - double d4 = (((double) j + blockMaxX * 16D) - 0.01D) / 256D; - double d5 = ((double) (k + 16) - blockMaxY * 16D) / 256D; - double d6 = ((double) (k + 16) - blockMinY * 16D - 0.01D) / 256D; - - if (blockMinX < 0.0D || blockMaxX > 1.0D) { - d3 = ((float) j + 0.0F) / 256F; - d4 = ((float) j + 15.99F) / 256F; - } - if (blockMinY < 0.0D || blockMaxY > 1.0D) { - d5 = ((float) k + 0.0F) / 256F; - d6 = ((float) k + 15.99F) / 256F; - } - - tessellator.addVertexWithUV(d + blockMinX, d1 + blockMaxY, d2 + blockMinZ, d4, d5); - tessellator.addVertexWithUV(d + blockMaxX, d1 + blockMaxY, d2 + blockMinZ, d3, d5); - tessellator.addVertexWithUV(d + blockMaxX, d1 + blockMinY, d2 + blockMinZ, d3, d6); - tessellator.addVertexWithUV(d + blockMinX, d1 + blockMinY, d2 + blockMinZ, d4, d6); - } - - public static void renderWestFace(Block block, double d, double d1, double d2, int i) { - double blockMinX = block.getBlockBoundsMinX(); - double blockMaxX = block.getBlockBoundsMaxX(); - double blockMinY = block.getBlockBoundsMinY(); - double blockMaxY = block.getBlockBoundsMaxY(); - double blockMaxZ = block.getBlockBoundsMaxZ(); - Tessellator tessellator = Tessellator.instance; - - int j = (i & 0xf) << 4; - int k = i & 0xf0; - double d3 = ((double) j + blockMinX * 16D) / 256D; - double d4 = (((double) j + blockMaxX * 16D) - 0.01D) / 256D; - double d5 = ((double) (k + 16) - blockMaxY * 16D) / 256D; - double d6 = ((double) (k + 16) - blockMinY * 16D - 0.01D) / 256D; - - if (blockMinX < 0.0D || blockMaxX > 1.0D) { - d3 = ((float) j + 0.0F) / 256F; - d4 = ((float) j + 15.99F) / 256F; - } - if (blockMinY < 0.0D || blockMaxY > 1.0D) { - d5 = ((float) k + 0.0F) / 256F; - d6 = ((float) k + 15.99F) / 256F; - } - - tessellator.addVertexWithUV(d + blockMinX, d1 + blockMaxY, d2 + blockMaxZ, d3, d5); - tessellator.addVertexWithUV(d + blockMinX, d1 + blockMinY, d2 + blockMaxZ, d3, d6); - tessellator.addVertexWithUV(d + blockMaxX, d1 + blockMinY, d2 + blockMaxZ, d4, d6); - tessellator.addVertexWithUV(d + blockMaxX, d1 + blockMaxY, d2 + blockMaxZ, d4, d5); - } - - public static void renderNorthFace(Block block, double d, double d1, double d2, int i) { - double blockMinX = block.getBlockBoundsMinX(); - double blockMinY = block.getBlockBoundsMinY(); - double blockMaxY = block.getBlockBoundsMaxY(); - double blockMinZ = block.getBlockBoundsMinZ(); - double blockMaxZ = block.getBlockBoundsMaxZ(); - Tessellator tessellator = Tessellator.instance; - - int j = (i & 0xf) << 4; - int k = i & 0xf0; - double d3 = ((double) j + blockMinZ * 16D) / 256D; - double d4 = (((double) j + blockMaxZ * 16D) - 0.01D) / 256D; - double d5 = ((double) (k + 16) - blockMaxY * 16D) / 256D; - double d6 = ((double) (k + 16) - blockMinY * 16D - 0.01D) / 256D; - - if (blockMinZ < 0.0D || blockMaxZ > 1.0D) { - d3 = ((float) j + 0.0F) / 256F; - d4 = ((float) j + 15.99F) / 256F; - } - if (blockMinY < 0.0D || blockMaxY > 1.0D) { - d5 = ((float) k + 0.0F) / 256F; - d6 = ((float) k + 15.99F) / 256F; - } - - tessellator.addVertexWithUV(d + blockMinX, d1 + blockMaxY, d2 + blockMaxZ, d4, d5); - tessellator.addVertexWithUV(d + blockMinX, d1 + blockMaxY, d2 + blockMinZ, d3, d5); - tessellator.addVertexWithUV(d + blockMinX, d1 + blockMinY, d2 + blockMinZ, d3, d6); - tessellator.addVertexWithUV(d + blockMinX, d1 + blockMinY, d2 + blockMaxZ, d4, d6); - } - - public static void renderSouthFace(Block block, double d, double d1, double d2, int i) { - double blockMaxX = block.getBlockBoundsMaxX(); - double blockMinY = block.getBlockBoundsMinY(); - double blockMaxY = block.getBlockBoundsMaxY(); - double blockMinZ = block.getBlockBoundsMinZ(); - double blockMaxZ = block.getBlockBoundsMaxZ(); - Tessellator tessellator = Tessellator.instance; - - int j = (i & 0xf) << 4; - int k = i & 0xf0; - double d3 = ((double) j + blockMinZ * 16D) / 256D; - double d4 = (((double) j + blockMaxZ * 16D) - 0.01D) / 256D; - double d5 = ((double) (k + 16) - blockMaxY * 16D) / 256D; - double d6 = ((double) (k + 16) - blockMinY * 16D - 0.01D) / 256D; - - if (blockMinZ < 0.0D || blockMaxZ > 1.0D) { - d3 = ((float) j + 0.0F) / 256F; - d4 = ((float) j + 15.99F) / 256F; - } - if (blockMinY < 0.0D || blockMaxY > 1.0D) { - d5 = ((float) k + 0.0F) / 256F; - d6 = ((float) k + 15.99F) / 256F; - } - - tessellator.addVertexWithUV(d + blockMaxX, d1 + blockMinY, d2 + blockMaxZ, d3, d6); - tessellator.addVertexWithUV(d + blockMaxX, d1 + blockMinY, d2 + blockMinZ, d4, d6); - tessellator.addVertexWithUV(d + blockMaxX, d1 + blockMaxY, d2 + blockMinZ, d4, d5); - tessellator.addVertexWithUV(d + blockMaxX, d1 + blockMaxY, d2 + blockMaxZ, d3, d5); - } + public static void renderBlockFalling(Block block, int meta, World world, int i, int j, int k) { + Tessellator tessellator = Tessellator.instance; + tessellator.startDrawingQuads(); + tessellator.setBrightness(block.getMixedBrightnessForBlock(world, i, j, k)); + tessellator.setColorOpaque_F(0.6F, 0.6F, 0.6F); + tessellator.draw(); + } + + public static void renderBottomFace(Block block, double d, double d1, double d2, int i) { + double blockMinX = block.getBlockBoundsMinX(); + double blockMaxX = block.getBlockBoundsMaxX(); + double blockMinY = block.getBlockBoundsMinY(); + double blockMinZ = block.getBlockBoundsMinZ(); + double blockMaxZ = block.getBlockBoundsMaxZ(); + Tessellator tessellator = Tessellator.instance; + + int j = (i & 0xf) << 4; + int k = i & 0xf0; + double d3 = ((double) j + blockMinX * 16D) / 256D; + double d4 = (((double) j + blockMaxX * 16D) - 0.01D) / 256D; + double d5 = ((double) k + blockMinZ * 16D) / 256D; + double d6 = (((double) k + blockMaxZ * 16D) - 0.01D) / 256D; + if (blockMinX < 0.0D || blockMaxX > 1.0D) { + d3 = ((float) j + 0.0F) / 256F; + d4 = ((float) j + 15.99F) / 256F; + } + if (blockMinZ < 0.0D || blockMaxZ > 1.0D) { + d5 = ((float) k + 0.0F) / 256F; + d6 = ((float) k + 15.99F) / 256F; + } + + tessellator.addVertexWithUV(d + blockMinX, d1 + blockMinY, d2 + blockMaxZ, d3, d6); + tessellator.addVertexWithUV(d + blockMinX, d1 + blockMinY, d2 + blockMinZ, d3, d5); + tessellator.addVertexWithUV(d + blockMaxX, d1 + blockMinY, d2 + blockMinZ, d4, d5); + tessellator.addVertexWithUV(d + blockMaxX, d1 + blockMinY, d2 + blockMaxZ, d4, d6); + } + + public static void renderTopFace(Block block, double d, double d1, double d2, int i) { + double blockMinX = block.getBlockBoundsMinX(); + double blockMaxX = block.getBlockBoundsMaxX(); + double blockMaxY = block.getBlockBoundsMaxY(); + double blockMinZ = block.getBlockBoundsMinZ(); + double blockMaxZ = block.getBlockBoundsMaxZ(); + Tessellator tessellator = Tessellator.instance; + + int j = (i & 0xf) << 4; + int k = i & 0xf0; + double d3 = ((double) j + blockMinX * 16D) / 256D; + double d4 = (((double) j + blockMaxX * 16D) - 0.01D) / 256D; + double d5 = ((double) k + blockMinZ * 16D) / 256D; + double d6 = (((double) k + blockMaxZ * 16D) - 0.01D) / 256D; + if (blockMinX < 0.0D || blockMaxX > 1.0D) { + d3 = ((float) j + 0.0F) / 256F; + d4 = ((float) j + 15.99F) / 256F; + } + if (blockMinZ < 0.0D || blockMaxZ > 1.0D) { + d5 = ((float) k + 0.0F) / 256F; + d6 = ((float) k + 15.99F) / 256F; + } + + tessellator.addVertexWithUV(d + blockMaxX, d1 + blockMaxY, d2 + blockMaxZ, d4, d6); + tessellator.addVertexWithUV(d + blockMaxX, d1 + blockMaxY, d2 + blockMinZ, d4, d5); + tessellator.addVertexWithUV(d + blockMinX, d1 + blockMaxY, d2 + blockMinZ, d3, d5); + tessellator.addVertexWithUV(d + blockMinX, d1 + blockMaxY, d2 + blockMaxZ, d3, d6); + } + + public static void renderEastFace(Block block, double d, double d1, double d2, int i) { + double blockMinX = block.getBlockBoundsMinX(); + double blockMaxX = block.getBlockBoundsMaxX(); + double blockMinY = block.getBlockBoundsMinY(); + double blockMaxY = block.getBlockBoundsMaxY(); + double blockMinZ = block.getBlockBoundsMinZ(); + Tessellator tessellator = Tessellator.instance; + + int j = (i & 0xf) << 4; + int k = i & 0xf0; + double d3 = ((double) j + blockMinX * 16D) / 256D; + double d4 = (((double) j + blockMaxX * 16D) - 0.01D) / 256D; + double d5 = ((double) (k + 16) - blockMaxY * 16D) / 256D; + double d6 = ((double) (k + 16) - blockMinY * 16D - 0.01D) / 256D; + + if (blockMinX < 0.0D || blockMaxX > 1.0D) { + d3 = ((float) j + 0.0F) / 256F; + d4 = ((float) j + 15.99F) / 256F; + } + if (blockMinY < 0.0D || blockMaxY > 1.0D) { + d5 = ((float) k + 0.0F) / 256F; + d6 = ((float) k + 15.99F) / 256F; + } + + tessellator.addVertexWithUV(d + blockMinX, d1 + blockMaxY, d2 + blockMinZ, d4, d5); + tessellator.addVertexWithUV(d + blockMaxX, d1 + blockMaxY, d2 + blockMinZ, d3, d5); + tessellator.addVertexWithUV(d + blockMaxX, d1 + blockMinY, d2 + blockMinZ, d3, d6); + tessellator.addVertexWithUV(d + blockMinX, d1 + blockMinY, d2 + blockMinZ, d4, d6); + } + + public static void renderWestFace(Block block, double d, double d1, double d2, int i) { + double blockMinX = block.getBlockBoundsMinX(); + double blockMaxX = block.getBlockBoundsMaxX(); + double blockMinY = block.getBlockBoundsMinY(); + double blockMaxY = block.getBlockBoundsMaxY(); + double blockMaxZ = block.getBlockBoundsMaxZ(); + Tessellator tessellator = Tessellator.instance; + + int j = (i & 0xf) << 4; + int k = i & 0xf0; + double d3 = ((double) j + blockMinX * 16D) / 256D; + double d4 = (((double) j + blockMaxX * 16D) - 0.01D) / 256D; + double d5 = ((double) (k + 16) - blockMaxY * 16D) / 256D; + double d6 = ((double) (k + 16) - blockMinY * 16D - 0.01D) / 256D; + + if (blockMinX < 0.0D || blockMaxX > 1.0D) { + d3 = ((float) j + 0.0F) / 256F; + d4 = ((float) j + 15.99F) / 256F; + } + if (blockMinY < 0.0D || blockMaxY > 1.0D) { + d5 = ((float) k + 0.0F) / 256F; + d6 = ((float) k + 15.99F) / 256F; + } + + tessellator.addVertexWithUV(d + blockMinX, d1 + blockMaxY, d2 + blockMaxZ, d3, d5); + tessellator.addVertexWithUV(d + blockMinX, d1 + blockMinY, d2 + blockMaxZ, d3, d6); + tessellator.addVertexWithUV(d + blockMaxX, d1 + blockMinY, d2 + blockMaxZ, d4, d6); + tessellator.addVertexWithUV(d + blockMaxX, d1 + blockMaxY, d2 + blockMaxZ, d4, d5); + } + + public static void renderNorthFace(Block block, double d, double d1, double d2, int i) { + double blockMinX = block.getBlockBoundsMinX(); + double blockMinY = block.getBlockBoundsMinY(); + double blockMaxY = block.getBlockBoundsMaxY(); + double blockMinZ = block.getBlockBoundsMinZ(); + double blockMaxZ = block.getBlockBoundsMaxZ(); + Tessellator tessellator = Tessellator.instance; + + int j = (i & 0xf) << 4; + int k = i & 0xf0; + double d3 = ((double) j + blockMinZ * 16D) / 256D; + double d4 = (((double) j + blockMaxZ * 16D) - 0.01D) / 256D; + double d5 = ((double) (k + 16) - blockMaxY * 16D) / 256D; + double d6 = ((double) (k + 16) - blockMinY * 16D - 0.01D) / 256D; + + if (blockMinZ < 0.0D || blockMaxZ > 1.0D) { + d3 = ((float) j + 0.0F) / 256F; + d4 = ((float) j + 15.99F) / 256F; + } + if (blockMinY < 0.0D || blockMaxY > 1.0D) { + d5 = ((float) k + 0.0F) / 256F; + d6 = ((float) k + 15.99F) / 256F; + } + + tessellator.addVertexWithUV(d + blockMinX, d1 + blockMaxY, d2 + blockMaxZ, d4, d5); + tessellator.addVertexWithUV(d + blockMinX, d1 + blockMaxY, d2 + blockMinZ, d3, d5); + tessellator.addVertexWithUV(d + blockMinX, d1 + blockMinY, d2 + blockMinZ, d3, d6); + tessellator.addVertexWithUV(d + blockMinX, d1 + blockMinY, d2 + blockMaxZ, d4, d6); + } + + public static void renderSouthFace(Block block, double d, double d1, double d2, int i) { + double blockMaxX = block.getBlockBoundsMaxX(); + double blockMinY = block.getBlockBoundsMinY(); + double blockMaxY = block.getBlockBoundsMaxY(); + double blockMinZ = block.getBlockBoundsMinZ(); + double blockMaxZ = block.getBlockBoundsMaxZ(); + Tessellator tessellator = Tessellator.instance; + + int j = (i & 0xf) << 4; + int k = i & 0xf0; + double d3 = ((double) j + blockMinZ * 16D) / 256D; + double d4 = (((double) j + blockMaxZ * 16D) - 0.01D) / 256D; + double d5 = ((double) (k + 16) - blockMaxY * 16D) / 256D; + double d6 = ((double) (k + 16) - blockMinY * 16D - 0.01D) / 256D; + + if (blockMinZ < 0.0D || blockMaxZ > 1.0D) { + d3 = ((float) j + 0.0F) / 256F; + d4 = ((float) j + 15.99F) / 256F; + } + if (blockMinY < 0.0D || blockMaxY > 1.0D) { + d5 = ((float) k + 0.0F) / 256F; + d6 = ((float) k + 15.99F) / 256F; + } + + tessellator.addVertexWithUV(d + blockMaxX, d1 + blockMinY, d2 + blockMaxZ, d3, d6); + tessellator.addVertexWithUV(d + blockMaxX, d1 + blockMinY, d2 + blockMinZ, d4, d6); + tessellator.addVertexWithUV(d + blockMaxX, d1 + blockMaxY, d2 + blockMinZ, d4, d5); + tessellator.addVertexWithUV(d + blockMaxX, d1 + blockMaxY, d2 + blockMaxZ, d3, d5); + } } diff --git a/src/main/java/train/client/render/RenderEmbeddedStopper.java b/src/main/java/train/client/render/RenderEmbeddedStopper.java index 63fcca326a..d2f63f6861 100644 --- a/src/main/java/train/client/render/RenderEmbeddedStopper.java +++ b/src/main/java/train/client/render/RenderEmbeddedStopper.java @@ -18,7 +18,7 @@ public class RenderEmbeddedStopper extends TileEntitySpecialRenderer { private static final ModelEmbeddedStopper modelEmbeddedStopper = new ModelEmbeddedStopper(1.0F / 16.0F); - private static final ResourceLocation texture = new ResourceLocation(Info.resourceLocation,Info.modelTexPrefix + "buffer.png"); + private static final ResourceLocation texture = new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "buffer.png"); public RenderEmbeddedStopper() { } diff --git a/src/main/java/train/client/render/RenderEnum.java b/src/main/java/train/client/render/RenderEnum.java index e3657b8ed8..33b0b4e928 100644 --- a/src/main/java/train/client/render/RenderEnum.java +++ b/src/main/java/train/client/render/RenderEnum.java @@ -7,6 +7,7 @@ import train.common.entity.rollingStock.*; import java.util.ArrayList; + import train.common.api.TrainRenderRecord; import train.common.library.Info; import net.minecraft.util.ResourceLocation; @@ -15,1502 +16,1566 @@ public enum RenderEnum implements TrainRenderRecord { - /** Passengers */ - passengerCartBlue(EntityPassengerBlue.class, new ModelPassenger6(), "passenger_", true, new float[] { 0.0F, -0.47F, 0.0F }, null, null, "", 0, null, "", null, 0, false), - passengerCartBlackSmall(EntityPassenger2.class, new ModelPassenger2(), "passenger3", false, new float[] { 0.0F, -0.32F, -0.1F }, null, null, "", 0, null, "", null, 0, false), - passengerLongGreen(EntityPassenger5.class, new ModelPassenger5(), "passenger5_", true, new float[] { 0.0F, -0.32F, 0.0F }, null, null, "", 0, null, "", null, 0, false), - passengerShortGreen(EntityPassenger7.class, new ModelPassenger7(), "passenger7", false, new float[] { 0.0F, -0.44F, 0.0F }, new float[] { 0F, 90F, 0F }, null, "", 0, null, "", null, 0, false), - passenger_1class_DB(EntityPassenger_1class_DB.class, new ModelPassenger_1class_DB(), "passenger_1class_DB", false, new float[] { 0.0F, -0.44F, 0.0F }, null, null, "", 0, null, "", null, 0, false), - passenger_2class_DB(EntityPassenger_2class_DB.class, new ModelPassenger_2class_DB(), "passenger_2class_DB_", true, new float[] { 0.0F, -0.44F, 0.0F }, null, null, "", 0, null, "", null, 0, false), - passengerHighSpeedZeroED(EntityPassengerHighSpeedCarZeroED.class, new ModelPassengerHighSpeedCarZeroED(), "passengerHighSpeedCarZeroED", false, new float[] { 0.0F, -0.47F, 0.0F }, null, null, "", 0, null, "", null, 0, false), - passengerTramNY(EntityPassengerTramNY.class, new ModelTramNY(), "locoTramNY", false, new float[] { 0F, -0.44F, 0.0F }, null, null, "", 0, null, "", null, 0, false), - passengerAdler(EntityPassengerAdler.class, new ModelPassengerAdler(), "passengerAdler", false, new float[] { 0F, 1.04F, 0.0F }, new float[] { 180F, -90F, 0F }, null, "", 0, null, "", null, 0, false), - passenger_DB_oriental(EntityPassengerDBOriental.class, new ModelPassenger_DB_oriental(), "passenger_DB_oriental_", true, new float[] { 0F, -0.42F, 0.0F }, new float[] { 180F, 0F, 0F }, new float[] { -1F, -1F, 1F }, "", 0, null, "", null, 0,false), - passengerCE1Class1(EntityPassengerICE_1class.class, new ModelICE1Passenger(), "ICE1_1st_class_", true, - new float[] { 0.0F, 0.18F, 0F }, new float[] { 0F, 180F, 180F }, new float[] { 0.8f, 1f, 0.8f }, "", 0, null, - "", null, 0, false), - passengerCE1Class2(EntityPassengerICE_2class.class, new ModelICE1Passenger(), "ICE1_2nd_class_", true, - new float[] { 0.0F, 0.18F, 0F }, new float[] { 0F, 180F, 180F }, new float[] { 0.8f, 1f, 0.8f }, "", 0, null, - "", null, 0, false), - passengerCE1Restaurant(EntityPassengerICE_Restaurant.class, new ModelICE1Restaurant(), "ICE1_Restaurant_", true, new float[] { 0.0F, 0.18F, 0F }, new float[] { 0F, 180F, 180F }, new float[]{0.8f,1f,0.8f}, "", 0, null, "", null, 0, false), - passengerGS4(EntityPassengerGS4.class, new ModelGS4Passenger(), "GS4_Passenger_", true, new float[] { 0.0F, 0.03F, 0F }, new float[] { 0F, 180F, 180F }, new float[]{0.8f,1f,0.8f}, "", 0, null, "", null, 0, false), - passengerGS4_Tail(EntityPassengerGS4_Tail.class, new ModelGS4Tail(), "GS4_Tail_", true, new float[] { -0.2F, 0.025F, 0F }, new float[] { 0F, 180F, 180F }, new float[]{0.8f,1f,0.8f}, "", 0, null, "", null, 0, false), - passengerGS4_Observatory(EntityPassengerGS4_Observatory.class, new ModelGS4Tavern(), "GS4_Tavern_", true, new float[] { 0.0F, 0.025F, 0F }, new float[] { 0F, 180F, 180F }, new float[]{0.8f,1f,0.8f}, "", 0, null, "", null, 0, false), - passengerRheingold(EntityPassengerRheingold.class, new ModelRheingoldPassenger(), "Rheingold_passenger_", true, new float[] { 1.55F, 0.15F, -0.6F }, new float[] { 0F, 180F, 180F }, new float[]{0.9f,1f,0.9f}, "", 0, null, "", null, 0, false), - passengerRheingoldDining1(EntityPassengerRheingoldDining1.class, new ModelRheingoldPassenger_Dining1(), "Rheingold_passenger_dining1_", true, new float[] { 1.7F, 0.15F, -0.6F }, new float[] { 0F, 180F, 180F }, new float[]{0.9f,1f,0.9f}, "", 0, null, "", null, 0, false), - passengerRheingoldDining2(EntityPassengerRheingoldDining2.class, new ModelRheingoldPassenger_Dining2(), "Rheingold_passenger_dining2_", true, new float[] { 0.05F, 0.15F, 0F }, new float[] { 0F, 180F, 180F }, new float[]{0.9f,1f,0.9f}, "", 0, null, "", null, 0, false), - passengerRheingoldPanorama(EntityPassengerRheingoldPanorama.class, new ModelRheingoldPassenger_Panorama(), "Rheingold_passenger_panorama_", true, new float[] { -0.1F, 0.15F, 0.1F }, new float[] { 0F, 180F, 180F }, new float[]{0.9f,1f,0.9f}, "", 0, null, "", null, 0, false), - drgPasenger(EntityPassengerDenverRioGrande.class, new ModelDRGPassenger(), "drg_passenger_", true, new float[] { 0.0F, 0.14F, 0F }, new float[] { 0F, 180F, 180F }, new float[]{0.9f,1f,0.9f}, "", 0, null, "", null, 0, false), - drgPasengerCombo(EntityPassengerDenverRioGrandeCombo.class, new ModelDRGCombo(), "drg_combo_", true, new float[] { 0.0F, 0.14F, 0F }, new float[] { 0F, 180F, 180F }, new float[]{0.9f,1f,0.9f}, "", 0, null, "", null, 0, false), - MILWPasenger(EntityPassengerMILW.class, new ModelMILWPassenger(), "milw_passenger", false, new float[] { 0.2F, 0F, 0F }, new float[] { 0F, 180F, 180F }, new float[]{0.9f,0.9f,0.9f}, "", 0, null, "", null, 0, false), - MILWPasengerTail(EntityPassengerMILWTail.class, new ModelMILWTail(), "milw_passenger_tail", false, new float[] { 0.1F, 0.1F, 0F }, new float[] { 0F, 180F, 180F }, new float[]{0.9f,0.9f,0.9f}, "", 0, null, "", null, 0, false), - //MILWPasengerDiner(EntityPassengerMILWDiner.class, new ModelMILW1935Passenger(), "milw_passenger_diner", false, new float[] { 0.0F, -0.14F, 0F }, new float[] { 0F, 180F, 180F }, new float[]{0.9f,1f,0.9f}, "", 0, null, "", null, 0, false), - - PasengerBamboo(EntityPassengerBamboo.class, new ModelBambooTrainPassenger(), "passenger_bamboo_", true, new float[] { 0.1F, 0F, 0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - - /** Caboose */ - cabooseRed(EntityCaboose3.class, new ModelCaboose3(), "caboose3", false, new float[] { 0.0F, -0.44F, 0.0F }, new float[] { 0F, 90F, 0F }, null, "", 0, null, "", null, 0, false), - cabooseBlack(EntityCaboose.class, new ModelCaboose(), "caboose", false, new float[] { 0.0F, -0.32F, 0.0F }, null, null, "", 0, null, "", null, 0, false), - cabooseLogging(EntityCabooseLogging.class, new ModelCabooseLogging(), "cabLogging_", true, new float[] { 0.0F, -0.45F, 0.0F }, null, null, "", 0, null, "", null, 0, false), - cabooseLoggingPRR(EntityCabooseLoggingPRR.class, new ModelPRRCaboose(), "PRRCaboose_", true, new float[] { 0.0F, -0.38F, 0.0F },new float[]{0,180,180}, null, "", 0, null, "", null, 0, false), - GWRBrakeVan(EntityGWRBrakeVan.class, new ModelGWRBrakeVan(), "GWRBrakeVan", false, new float[] { 0F, 0.1F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - - /** Specials **/ - stockCar(EntityStockCar.class, new ModelStockCar(), "stockcar_", true, new float[] { -.0F, -0.32F, 0.0F }, new float[]{0,0,0}, null, "", 0, null, "", null, 0, false), - drwgStockCar(EntityStockCarDRWG.class, new ModelDRWGStockCar(), "drwgstockcar", false, new float[] { 1.0F, -0.4F, 0.0F }, new float[]{0,0,180}, null, "", 0, null, "", null, 0, false), - workCart(EntityWorkCart.class, new ModelWorkCart(), "workcart", false, new float[] { 0.0F, -0.42F, 0.0F }, null, null, "", 0, null, "", null, 0, false), - flatCart(EntityFlatCart.class, new ModelFlatCar(), "flatcart", false, new float[] { 0.0F, -0.32F, 0.0F }, null, null, "", 0, null, "", null, 0, false), - workCaboose(EntityCabooseWorkCart.class, new ModelWorkCaboose(), "workcaboose", false, new float[] { 0.0F, -0.32F, 0.0F }, null, null, "", 0, null, "", null, 0, false), - jukeBoxCart(EntityJukeBoxCart.class, new ModelJukeBox(), "jukebox", false, new float[] { 0.0F, -0.42F, 0.0F }, null, null, "", 0, null, "", null, 0, false), - flatCartSU(EntityFlatCartSU.class, new ModelFlatCarSU(), "flatcarsu", false, new float[] { 0.0F, -0.47F, 0.0F }, null, null, "", 0, null, "", null, 0, false), - flatCartUS(EntityFlatCartUS.class, new ModelFlatCarUS(), "flatCartUS", false, new float[] { 0.0F, -0.47F, 0.0F }, null, null, "", 0, null, "", null, 0, false), - tracksBuilder(EntityTracksBuilder.class, new ModelBuilder(), "builder2", false, new float[] { 0.0F, -0.42F, 0.0F }, null, null, "largesmoke", 3, new ArrayList() { - { - add(new double[] { -1.3D, 2.1D, 0.0D }); - } - }, "", null, 0, true), - - /** Freight */ - freightCartRed(EntityFreightCart2.class, new ModelFreightCart2(), "freightcart2", false, new float[] { 0.0F, -0.32F, 0.0F }, null, null, "", 0, null, "", null, 0, false), - freightCartYellow(EntityFreightCart.class, new ModelFreightCart2(), "freightcart", false, new float[] { 0.0F, -0.32F, 0.0F }, null, null, "", 0, null, "", null, 0, false), - freightWood(EntityFreightWood.class, new ModelWood(), "wood_Full", false, new float[] { 0.0F, -0.42F, 0.0F }, null, null, "", 0, null, "", null, 0, false), - freightHopper(EntityFreightGrain.class, new ModelGrain(), "hopper", false, new float[] { 0.0F, -0.42F, 0.0F }, null, null, "", 0, null, "", null, 0, false), - freightOpenWagon(EntityFreightOpenWagon.class, new ModelOpenWagon(), "openwagon", false, new float[] { 0.0F, -0.47F, 0.0F }, null, null, "", 0, null, "", null, 0, false), - //passenger4(EntityPassenger4.class, new ModelPassenger4(), "passenger4",false,new float[] {0.0F, -0.32F, 0.0F},null,null,"",0,null,"",null,0),//apparently has been removed - freightHopperUS(EntityFreightHopperUS.class, new ModelFreightHopper(), "freightHopperUS_", true, - new float[] { 0.0F, -0.47F, 0.0F }, null, null, "", 0, null, "", null, 0, false), - flatCartWoodUS(EntityFlatCartWoodUS.class, new ModelFlatCarWoodUS(), "flatCartWoodUS", false, new float[] { 0.0F, -0.47F, 0.0F }, null, null, "", 0, null, "", null, 0, false), - freightCartUS(EntityFreightCartUS.class, new ModelFreightCartUS(), "freightCartUS_", true, new float[] { 0.0F, -0.47F, 0.0F }, null, null, "", 0, null, "", null, 0, false), - freightBoxCartUS(EntityBoxCartUS.class, new ModelBoxCartUS(), "boxCartUS_", true, new float[] { 0.0F, -0.45F, 0.0F }, null, null, "", 0, null, "", null, 0, false), - freightBoxCartPRR(EntityBoxCartPRR.class, new ModelPRRX31Wagon(), "PRR_X31a", false, new float[] { 0.0F, -0.38F, 0.0F }, new float[]{0,180,180}, null, "", 0, null, "", null, 0, false), - freightTGNG(EntityFreightGTNG.class, new ModelGTNG(), "GTNGOreWagon", false, new float[] { 0.0F, 0.2F, 0.0F }, new float[]{0,0,180}, new float[]{0.9f,1f,0.9f}, "", 0, null, "", null, 0, false), - freightCartSmall(EntityFreightCartSmall.class, new ModelSmallFreightCart(), "freightCartSmall", false, new float[] { 0.0F, -0.20F, 0.0F }, null, null, "", 0, null, "", null, 0, false), - freightMinetrain(EntityFreightMinetrain.class, new ModelMinetrain(), "minetrain", false, new float[] { 0.0F, -0.47F, 0.0F }, null, null, "", 0, null, "", null, 0, false), - flatCartWoodLogs(EntityFreightWood2.class, new ModelFreightWood(), "flatCartWood2", false, new float[] { 0.0F, -0.44F, 0.0F }, new float[] { 0F, 90F, 0F }, null, "", 0, null, "", null, 0, false), - freightClosedRedBrown(EntityFreightClosed.class, new ModelFreightClosed(), "freightClosed", false, new float[] { 0.0F, -0.44F, 0.0F }, new float[] { 0F, 90F, 0F }, null, "", 0, null, "", null, 0, false), - freightOpenRedBrown(EntityFreightOpen2.class, new ModelFreightOpen2(), "freightOpen2", false, new float[] { 0.0F, -0.44F, 0.0F }, new float[] { 0F, 90F, 0F }, null, "", 0, null, "", null, 0, false), - mailWagen_DB(EntityMailWagen_DB.class, new ModelMailWagen(), "mailWagen_DB", false, new float[] { 0.0F, -0.44F, 0.0F }, null, null, "", 0, null, "", null, 0, false), - freightWagen_DB(EntityFreightWagenDB.class, new ModelFreightWagenDB(), "freightWagen_DB_", true, new float[] { 0.0F, -0.44F, 0.0F }, null, null, "", 0, null, "", null, 0, false), - flatCarRails_DB(EntityFlatCarRails_DB.class, new ModelFlatCarRails_DB(), "flatCarRails_DB_", true, new float[] { 0.0F, -0.44F, 0.0F }, null, null, "", 0, null, "", null, 0, false), - flatCar_DB(EntityFlatCar_DB.class, new ModelFlatCar_DB(), "flatCar_DB_", true, new float[] { 0.0F, -0.44F, 0.0F }, null, null, "", 0, null, "", null, 0, false), - flatCarLogs_DB(EntityFlatCarLogs_DB.class, new ModelFlatCarLogs_DB(), "flatCarLogs_DB_", true, new float[] { 0.0F, -0.44F, 0.0F }, null, null, "", 0, null, "", null, 0, false), - freightGondola_DB(EntityFreightGondola_DB.class, new ModelFreightGondola_DB(), "freightGondola_DB_", true, new float[] { 0.0F, -0.44F, 0.0F }, null, null, "", 0, null, "", null, 0, false), - freightCenterBeam_Empty(EntityFreightCenterbeam_Empty.class, new ModelFreightCenterBeam_Empty(), "freight_centerbeam_empty_", true, new float[] { 0.0F, -0.44F, 0.0F }, new float[] { 0F, 90F, 0F }, null, "", 0, null, "", null, 0, false), - freightCenterBeam_Wood1(EntityFreightCenterbeam_Wood_1.class, new ModelFreightCenterBeam_Wood_1(), "freight_centerbeam_wood_1_", true, new float[] { 0.0F, -0.44F, 0.0F }, new float[] { 0F, 90F, 0F }, null, "", 0, null, "", null, 0, false), - freightCenterBeam_Wood2(EntityFreightCenterbeam_Wood_2.class, new ModelFreightCenterBeam_Wood_2(), "freight_centerbeam_wood_2_", true, new float[] { 0.0F, -0.44F, 0.0F }, new float[] { 0F, 90F, 0F }, null, "", 0, null, "", null, 0, false), - //freightWellcar(EntityFreightWellcar.class, new ModelFreightWellcar(), "freightWellcar_", true, new float[] { 0.0F, -0.44F, 0.0F }, new float[] { 0F, 90F, 0F }, null, "", 0, null, "", null, 0, false), - freightWellcar(EntityFreightWellcar.class, new ModelWellcar(), "wellcar_", true, new float[] { 0.0F, 0.0F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - freightTrailer(EntityFreightTrailer.class, new ModelFreightTrailer(), "freightTrailer_", true, new float[] { 0.0F, -0.44F, 0.0F }, new float[] { 0F, 90F, 0F }, null, "", 0, null, "", null, 0, false), - freightGS4(EntityFreightGS4_Baggage.class, new ModelGS4Baggage(), "GS4_baggage_", true, new float[] { 0.0F, 0.025F, 0F }, new float[] { 0F, 180F, 180F }, new float[]{0.8f,1f,0.8f}, "", 0, null, "", null, 0, false), - freightSlateWagon(EntityFreightSlateWagon.class, new ModelSlateWagon(), "freightslatewagon", false, new float[] { 0.0F, 0.2F, 0F }, new float[] { 0F, 180F, 180F }, new float[]{0.9f,1f,0.9f}, "", 0, null, "", null, 0, false), - freightIceeWagon(EntityFreightIceWagon.class, new ModelIceWagon(), "icewagon", false, new float[] { 0.0F, 0.2F, 0F }, new float[] { 0F, 180F, 180F }, new float[]{0.9f,1f,0.9f}, "", 0, null, "", null, 0, false), - freight100TonHopper(EntityFreight100TonHopper.class, new Model100TonHopper(), "freight_100tonhopper_", true, new float[] { -0.1F, 0.0F, 0F }, new float[] { 0F, 180F, 180F }, new float[]{0.9f,1f,0.9f}, "", 0, null, "", null, 0, false), - freightBulkheadFlatCar(EntityBulkheadFlatCart.class, new ModelBulkheadFlat(), "BulkheadFlat_", true, new float[] { 0.0F, 0.1F, 0.0F }, new float[] { 0F, 180F, 180F }, new float[]{0.9f,1f,0.9f}, "", 0, null, "", null, 0, false), - drgBaggage(EntityFreightDenverRioGrande.class, new ModelDRGBaggage(), "drg_baggage_", true, new float[] { 0.0F, 0.14F, 0F }, new float[] { 0F, 180F, 180F }, new float[]{0.9f,1f,0.9f}, "", 0, null, "", null, 0, false), - MILW1935Baggage(EntityFreightBaggageMILW.class, new ModelMILWBaggage(), "milw_baggage", false, new float[] { 0.1F, 0.1F, 0F }, new float[] { 0F, 180F, 180F }, new float[]{0.9f,0.9f,0.9f}, "", 0, null, "", null, 0, false), - HeavyweightMailcar(EntityFreightHeavyweight.class, new ModelHeavyweight(), "heavyweight_mailcar", false, new float[] { 0.1F, 0.18F, 0F }, new float[] { 0F, 180F, 180F }, new float[]{0.9f,1f,0.9f}, "", 0, null, "", null, 0, false), - BambooFreightcar(EntityFreightBamboo.class, new ModelBambooTrainCargo(), "bamboo_freight_", true, new float[] { 0.1F, 0F, 0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - freightGermanPost(EntityFreightGermanPost.class, new ModelGermanPost(), "german_post_", true, new float[] { -1F, 0.15F, -0.075F }, new float[] { 0F, 180F, 180F }, new float[]{0.9f,1f,0.9f}, "", 0, null, "", null, 0, false), - freightDepressedFlatbed(EntityFreightDepressedFlatbed.class, new ModelDepressedFlatbed(), "depressed_flatbed_", true, new float[] { -0.1F, 0.15F, -0.075F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - freightCartL(EntityFreightCartL.class, new ModelFreightCarL(), "freightCarL_", true, new float[] { 0F, 0.2F, 0.825F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - freightKclassrailBox(EntityFreightKClassRailBox.class, new ModelKClassRailBox(), "KClassRailBox_", true, new float[] { -1.5F, 0.1F, 0.125F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - freightShortCoveredHopper(EntityFreightShortCoveredHopper.class, new ModelShortCoveredHopper(), "ShortCoveredHopper_", true, new float[] { -2.2F, -0.25F, 0.7F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - freightLongCoveredHopper(EntityFreightLongCoveredHopper.class, new ModelLongCoveredHopper(), "LongCoveredHopper_", true, new float[] { -1F, -0.25F, 0.65F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - freightHeavyweightBoxcar(EntityFreightHeavyweightBaggage.class, new ModelHeavyweightBaggage(), "heavyweightBoxcar_", true, new float[] { 0F, 0.1F, -0.05F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - freightASTFAutorack(EntityFreightASTFAutorack.class, new ModelASTFAutorack(), "astf_autorack", false, new float[] { -1F, 0.2F, 0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - BoulderWagon(EntityBoulderWagon.class, new ModelBoulderWagon(),"BoulderWagon_",true, new float[]{0F,0.2F,0F}, new float[] { 0F, 180F, 180F },null, "",0,null, "",null, 0,false), + /** + * Passengers + */ + passengerCartBlue(EntityPassengerBlue.class, new ModelPassenger6(), "passenger_", true, new float[]{0.0F, -0.47F, 0.0F}, null, null, "", 0, null, "", null, 0, false), + passengerCartBlackSmall(EntityPassenger2.class, new ModelPassenger2(), "passenger3", false, new float[]{0.0F, -0.32F, -0.1F}, null, null, "", 0, null, "", null, 0, false), + passengerLongGreen(EntityPassenger5.class, new ModelPassenger5(), "passenger5_", true, new float[]{0.0F, -0.32F, 0.0F}, null, null, "", 0, null, "", null, 0, false), + passengerShortGreen(EntityPassenger7.class, new ModelPassenger7(), "passenger7", false, new float[]{0.0F, -0.44F, 0.0F}, new float[]{0F, 90F, 0F}, null, "", 0, null, "", null, 0, false), + passenger_1class_DB(EntityPassenger_1class_DB.class, new ModelPassenger_1class_DB(), "passenger_1class_DB", false, new float[]{0.0F, -0.44F, 0.0F}, null, null, "", 0, null, "", null, 0, false), + passenger_2class_DB(EntityPassenger_2class_DB.class, new ModelPassenger_2class_DB(), "passenger_2class_DB_", true, new float[]{0.0F, -0.44F, 0.0F}, null, null, "", 0, null, "", null, 0, false), + passengerHighSpeedZeroED(EntityPassengerHighSpeedCarZeroED.class, new ModelPassengerHighSpeedCarZeroED(), "passengerHighSpeedCarZeroED", false, new float[]{0.0F, -0.47F, 0.0F}, null, null, "", 0, null, "", null, 0, false), + passengerTramNY(EntityPassengerTramNY.class, new ModelTramNY(), "locoTramNY", false, new float[]{0F, -0.44F, 0.0F}, null, null, "", 0, null, "", null, 0, false), + passengerAdler(EntityPassengerAdler.class, new ModelPassengerAdler(), "passengerAdler", false, new float[]{0F, 1.04F, 0.0F}, new float[]{180F, -90F, 0F}, null, "", 0, null, "", null, 0, false), + passenger_DB_oriental(EntityPassengerDBOriental.class, new ModelPassenger_DB_oriental(), "passenger_DB_oriental_", true, new float[]{0F, -0.42F, 0.0F}, new float[]{180F, 0F, 0F}, new float[]{-1F, -1F, 1F}, "", 0, null, "", null, 0, false), + passengerCE1Class1(EntityPassengerICE_1class.class, new ModelICE1Passenger(), "ICE1_1st_class_", true, + new float[]{0.0F, 0.18F, 0F}, new float[]{0F, 180F, 180F}, new float[]{0.8f, 1f, 0.8f}, "", 0, null, + "", null, 0, false), + passengerCE1Class2(EntityPassengerICE_2class.class, new ModelICE1Passenger(), "ICE1_2nd_class_", true, + new float[]{0.0F, 0.18F, 0F}, new float[]{0F, 180F, 180F}, new float[]{0.8f, 1f, 0.8f}, "", 0, null, + "", null, 0, false), + passengerCE1Restaurant(EntityPassengerICE_Restaurant.class, new ModelICE1Restaurant(), "ICE1_Restaurant_", true, new float[]{0.0F, 0.18F, 0F}, new float[]{0F, 180F, 180F}, new float[]{0.8f, 1f, 0.8f}, "", 0, null, "", null, 0, false), + passengerGS4(EntityPassengerGS4.class, new ModelGS4Passenger(), "GS4_Passenger_", true, new float[]{0.0F, 0.03F, 0F}, new float[]{0F, 180F, 180F}, new float[]{0.8f, 1f, 0.8f}, "", 0, null, "", null, 0, false), + passengerGS4_Tail(EntityPassengerGS4_Tail.class, new ModelGS4Tail(), "GS4_Tail_", true, new float[]{-0.2F, 0.025F, 0F}, new float[]{0F, 180F, 180F}, new float[]{0.8f, 1f, 0.8f}, "", 0, null, "", null, 0, false), + passengerGS4_Observatory(EntityPassengerGS4_Observatory.class, new ModelGS4Tavern(), "GS4_Tavern_", true, new float[]{0.0F, 0.025F, 0F}, new float[]{0F, 180F, 180F}, new float[]{0.8f, 1f, 0.8f}, "", 0, null, "", null, 0, false), + passengerRheingold(EntityPassengerRheingold.class, new ModelRheingoldPassenger(), "Rheingold_passenger_", true, new float[]{1.55F, 0.15F, -0.6F}, new float[]{0F, 180F, 180F}, new float[]{0.9f, 1f, 0.9f}, "", 0, null, "", null, 0, false), + passengerRheingoldDining1(EntityPassengerRheingoldDining1.class, new ModelRheingoldPassenger_Dining1(), "Rheingold_passenger_dining1_", true, new float[]{1.7F, 0.15F, -0.6F}, new float[]{0F, 180F, 180F}, new float[]{0.9f, 1f, 0.9f}, "", 0, null, "", null, 0, false), + passengerRheingoldDining2(EntityPassengerRheingoldDining2.class, new ModelRheingoldPassenger_Dining2(), "Rheingold_passenger_dining2_", true, new float[]{0.05F, 0.15F, 0F}, new float[]{0F, 180F, 180F}, new float[]{0.9f, 1f, 0.9f}, "", 0, null, "", null, 0, false), + passengerRheingoldPanorama(EntityPassengerRheingoldPanorama.class, new ModelRheingoldPassenger_Panorama(), "Rheingold_passenger_panorama_", true, new float[]{-0.1F, 0.15F, 0.1F}, new float[]{0F, 180F, 180F}, new float[]{0.9f, 1f, 0.9f}, "", 0, null, "", null, 0, false), + drgPasenger(EntityPassengerDenverRioGrande.class, new ModelDRGPassenger(), "drg_passenger_", true, new float[]{0.0F, 0.14F, 0F}, new float[]{0F, 180F, 180F}, new float[]{0.9f, 1f, 0.9f}, "", 0, null, "", null, 0, false), + drgPasengerCombo(EntityPassengerDenverRioGrandeCombo.class, new ModelDRGCombo(), "drg_combo_", true, new float[]{0.0F, 0.14F, 0F}, new float[]{0F, 180F, 180F}, new float[]{0.9f, 1f, 0.9f}, "", 0, null, "", null, 0, false), + MILWPasenger(EntityPassengerMILW.class, new ModelMILWPassenger(), "milw_passenger", false, new float[]{0.2F, 0F, 0F}, new float[]{0F, 180F, 180F}, new float[]{0.9f, 0.9f, 0.9f}, "", 0, null, "", null, 0, false), + MILWPasengerTail(EntityPassengerMILWTail.class, new ModelMILWTail(), "milw_passenger_tail", false, new float[]{0.1F, 0.1F, 0F}, new float[]{0F, 180F, 180F}, new float[]{0.9f, 0.9f, 0.9f}, "", 0, null, "", null, 0, false), + //MILWPasengerDiner(EntityPassengerMILWDiner.class, new ModelMILW1935Passenger(), "milw_passenger_diner", false, new float[] { 0.0F, -0.14F, 0F }, new float[] { 0F, 180F, 180F }, new float[]{0.9f,1f,0.9f}, "", 0, null, "", null, 0, false), + + PasengerBamboo(EntityPassengerBamboo.class, new ModelBambooTrainPassenger(), "passenger_bamboo_", true, new float[]{0.1F, 0F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + + /** + * Caboose + */ + cabooseRed(EntityCaboose3.class, new ModelCaboose3(), "caboose3", false, new float[]{0.0F, -0.44F, 0.0F}, new float[]{0F, 90F, 0F}, null, "", 0, null, "", null, 0, false), + cabooseBlack(EntityCaboose.class, new ModelCaboose(), "caboose", false, new float[]{0.0F, -0.32F, 0.0F}, null, null, "", 0, null, "", null, 0, false), + cabooseLogging(EntityCabooseLogging.class, new ModelCabooseLogging(), "cabLogging_", true, new float[]{0.0F, -0.45F, 0.0F}, null, null, "", 0, null, "", null, 0, false), + cabooseLoggingPRR(EntityCabooseLoggingPRR.class, new ModelPRRCaboose(), "PRRCaboose_", true, new float[]{0.0F, -0.38F, 0.0F}, new float[]{0, 180, 180}, null, "", 0, null, "", null, 0, false), + GWRBrakeVan(EntityGWRBrakeVan.class, new ModelGWRBrakeVan(), "GWRBrakeVan", false, new float[]{0F, 0.1F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + + /** + * Specials + **/ + stockCar(EntityStockCar.class, new ModelStockCar(), "stockcar_", true, new float[]{-.0F, -0.32F, 0.0F}, new float[]{0, 0, 0}, null, "", 0, null, "", null, 0, false), + drwgStockCar(EntityStockCarDRWG.class, new ModelDRWGStockCar(), "drwgstockcar", false, new float[]{1.0F, -0.4F, 0.0F}, new float[]{0, 0, 180}, null, "", 0, null, "", null, 0, false), + workCart(EntityWorkCart.class, new ModelWorkCart(), "workcart", false, new float[]{0.0F, -0.42F, 0.0F}, null, null, "", 0, null, "", null, 0, false), + flatCart(EntityFlatCart.class, new ModelFlatCar(), "flatcart", false, new float[]{0.0F, -0.32F, 0.0F}, null, null, "", 0, null, "", null, 0, false), + workCaboose(EntityCabooseWorkCart.class, new ModelWorkCaboose(), "workcaboose", false, new float[]{0.0F, -0.32F, 0.0F}, null, null, "", 0, null, "", null, 0, false), + jukeBoxCart(EntityJukeBoxCart.class, new ModelJukeBox(), "jukebox", false, new float[]{0.0F, -0.42F, 0.0F}, null, null, "", 0, null, "", null, 0, false), + flatCartSU(EntityFlatCartSU.class, new ModelFlatCarSU(), "flatcarsu", false, new float[]{0.0F, -0.47F, 0.0F}, null, null, "", 0, null, "", null, 0, false), + flatCartUS(EntityFlatCartUS.class, new ModelFlatCarUS(), "flatCartUS", false, new float[]{0.0F, -0.47F, 0.0F}, null, null, "", 0, null, "", null, 0, false), + tracksBuilder(EntityTracksBuilder.class, new ModelBuilder(), "builder2", false, new float[]{0.0F, -0.42F, 0.0F}, null, null, "largesmoke", 3, new ArrayList() { + { + add(new double[]{-1.3D, 2.1D, 0.0D}); + } + }, "", null, 0, true), + + /** + * Freight + */ + freightCartRed(EntityFreightCart2.class, new ModelFreightCart2(), "freightcart2", false, new float[]{0.0F, -0.32F, 0.0F}, null, null, "", 0, null, "", null, 0, false), + freightCartYellow(EntityFreightCart.class, new ModelFreightCart2(), "freightcart", false, new float[]{0.0F, -0.32F, 0.0F}, null, null, "", 0, null, "", null, 0, false), + freightWood(EntityFreightWood.class, new ModelWood(), "wood_Full", false, new float[]{0.0F, -0.42F, 0.0F}, null, null, "", 0, null, "", null, 0, false), + freightHopper(EntityFreightGrain.class, new ModelGrain(), "hopper", false, new float[]{0.0F, -0.42F, 0.0F}, null, null, "", 0, null, "", null, 0, false), + freightOpenWagon(EntityFreightOpenWagon.class, new ModelOpenWagon(), "openwagon", false, new float[]{0.0F, -0.47F, 0.0F}, null, null, "", 0, null, "", null, 0, false), + //passenger4(EntityPassenger4.class, new ModelPassenger4(), "passenger4",false,new float[] {0.0F, -0.32F, 0.0F},null,null,"",0,null,"",null,0),//apparently has been removed + freightHopperUS(EntityFreightHopperUS.class, new ModelFreightHopper(), "freightHopperUS_", true, + new float[]{0.0F, -0.47F, 0.0F}, null, null, "", 0, null, "", null, 0, false), + flatCartWoodUS(EntityFlatCartWoodUS.class, new ModelFlatCarWoodUS(), "flatCartWoodUS", false, new float[]{0.0F, -0.47F, 0.0F}, null, null, "", 0, null, "", null, 0, false), + freightCartUS(EntityFreightCartUS.class, new ModelFreightCartUS(), "freightCartUS_", true, new float[]{0.0F, -0.47F, 0.0F}, null, null, "", 0, null, "", null, 0, false), + freightBoxCartUS(EntityBoxCartUS.class, new ModelBoxCartUS(), "boxCartUS_", true, new float[]{0.0F, -0.45F, 0.0F}, null, null, "", 0, null, "", null, 0, false), + freightBoxCartPRR(EntityBoxCartPRR.class, new ModelPRRX31Wagon(), "PRR_X31a", false, new float[]{0.0F, -0.38F, 0.0F}, new float[]{0, 180, 180}, null, "", 0, null, "", null, 0, false), + freightTGNG(EntityFreightGTNG.class, new ModelGTNG(), "GTNGOreWagon", false, new float[]{0.0F, 0.2F, 0.0F}, new float[]{0, 0, 180}, new float[]{0.9f, 1f, 0.9f}, "", 0, null, "", null, 0, false), + freightCartSmall(EntityFreightCartSmall.class, new ModelSmallFreightCart(), "freightCartSmall", false, new float[]{0.0F, -0.20F, 0.0F}, null, null, "", 0, null, "", null, 0, false), + freightMinetrain(EntityFreightMinetrain.class, new ModelMinetrain(), "minetrain", false, new float[]{0.0F, -0.47F, 0.0F}, null, null, "", 0, null, "", null, 0, false), + flatCartWoodLogs(EntityFreightWood2.class, new ModelFreightWood(), "flatCartWood2", false, new float[]{0.0F, -0.44F, 0.0F}, new float[]{0F, 90F, 0F}, null, "", 0, null, "", null, 0, false), + freightClosedRedBrown(EntityFreightClosed.class, new ModelFreightClosed(), "freightClosed", false, new float[]{0.0F, -0.44F, 0.0F}, new float[]{0F, 90F, 0F}, null, "", 0, null, "", null, 0, false), + freightOpenRedBrown(EntityFreightOpen2.class, new ModelFreightOpen2(), "freightOpen2", false, new float[]{0.0F, -0.44F, 0.0F}, new float[]{0F, 90F, 0F}, null, "", 0, null, "", null, 0, false), + mailWagen_DB(EntityMailWagen_DB.class, new ModelMailWagen(), "mailWagen_DB", false, new float[]{0.0F, -0.44F, 0.0F}, null, null, "", 0, null, "", null, 0, false), + freightWagen_DB(EntityFreightWagenDB.class, new ModelFreightWagenDB(), "freightWagen_DB_", true, new float[]{0.0F, -0.44F, 0.0F}, null, null, "", 0, null, "", null, 0, false), + flatCarRails_DB(EntityFlatCarRails_DB.class, new ModelFlatCarRails_DB(), "flatCarRails_DB_", true, new float[]{0.0F, -0.44F, 0.0F}, null, null, "", 0, null, "", null, 0, false), + flatCar_DB(EntityFlatCar_DB.class, new ModelFlatCar_DB(), "flatCar_DB_", true, new float[]{0.0F, -0.44F, 0.0F}, null, null, "", 0, null, "", null, 0, false), + flatCarLogs_DB(EntityFlatCarLogs_DB.class, new ModelFlatCarLogs_DB(), "flatCarLogs_DB_", true, new float[]{0.0F, -0.44F, 0.0F}, null, null, "", 0, null, "", null, 0, false), + freightGondola_DB(EntityFreightGondola_DB.class, new ModelFreightGondola_DB(), "freightGondola_DB_", true, new float[]{0.0F, -0.44F, 0.0F}, null, null, "", 0, null, "", null, 0, false), + freightCenterBeam_Empty(EntityFreightCenterbeam_Empty.class, new ModelFreightCenterBeam_Empty(), "freight_centerbeam_empty_", true, new float[]{0.0F, -0.44F, 0.0F}, new float[]{0F, 90F, 0F}, null, "", 0, null, "", null, 0, false), + freightCenterBeam_Wood1(EntityFreightCenterbeam_Wood_1.class, new ModelFreightCenterBeam_Wood_1(), "freight_centerbeam_wood_1_", true, new float[]{0.0F, -0.44F, 0.0F}, new float[]{0F, 90F, 0F}, null, "", 0, null, "", null, 0, false), + freightCenterBeam_Wood2(EntityFreightCenterbeam_Wood_2.class, new ModelFreightCenterBeam_Wood_2(), "freight_centerbeam_wood_2_", true, new float[]{0.0F, -0.44F, 0.0F}, new float[]{0F, 90F, 0F}, null, "", 0, null, "", null, 0, false), + //freightWellcar(EntityFreightWellcar.class, new ModelFreightWellcar(), "freightWellcar_", true, new float[] { 0.0F, -0.44F, 0.0F }, new float[] { 0F, 90F, 0F }, null, "", 0, null, "", null, 0, false), + freightWellcar(EntityFreightWellcar.class, new ModelWellcar(), "wellcar_", true, new float[]{0.0F, 0.0F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + freightTrailer(EntityFreightTrailer.class, new ModelFreightTrailer(), "freightTrailer_", true, new float[]{0.0F, -0.44F, 0.0F}, new float[]{0F, 90F, 0F}, null, "", 0, null, "", null, 0, false), + freightGS4(EntityFreightGS4_Baggage.class, new ModelGS4Baggage(), "GS4_baggage_", true, new float[]{0.0F, 0.025F, 0F}, new float[]{0F, 180F, 180F}, new float[]{0.8f, 1f, 0.8f}, "", 0, null, "", null, 0, false), + freightSlateWagon(EntityFreightSlateWagon.class, new ModelSlateWagon(), "freightslatewagon", false, new float[]{0.0F, 0.2F, 0F}, new float[]{0F, 180F, 180F}, new float[]{0.9f, 1f, 0.9f}, "", 0, null, "", null, 0, false), + freightIceeWagon(EntityFreightIceWagon.class, new ModelIceWagon(), "icewagon", false, new float[]{0.0F, 0.2F, 0F}, new float[]{0F, 180F, 180F}, new float[]{0.9f, 1f, 0.9f}, "", 0, null, "", null, 0, false), + freight100TonHopper(EntityFreight100TonHopper.class, new Model100TonHopper(), "freight_100tonhopper_", true, new float[]{-0.1F, 0.0F, 0F}, new float[]{0F, 180F, 180F}, new float[]{0.9f, 1f, 0.9f}, "", 0, null, "", null, 0, false), + freightBulkheadFlatCar(EntityBulkheadFlatCart.class, new ModelBulkheadFlat(), "BulkheadFlat_", true, new float[]{0.0F, 0.1F, 0.0F}, new float[]{0F, 180F, 180F}, new float[]{0.9f, 1f, 0.9f}, "", 0, null, "", null, 0, false), + drgBaggage(EntityFreightDenverRioGrande.class, new ModelDRGBaggage(), "drg_baggage_", true, new float[]{0.0F, 0.14F, 0F}, new float[]{0F, 180F, 180F}, new float[]{0.9f, 1f, 0.9f}, "", 0, null, "", null, 0, false), + MILW1935Baggage(EntityFreightBaggageMILW.class, new ModelMILWBaggage(), "milw_baggage", false, new float[]{0.1F, 0.1F, 0F}, new float[]{0F, 180F, 180F}, new float[]{0.9f, 0.9f, 0.9f}, "", 0, null, "", null, 0, false), + HeavyweightMailcar(EntityFreightHeavyweight.class, new ModelHeavyweight(), "heavyweight_mailcar", false, new float[]{0.1F, 0.18F, 0F}, new float[]{0F, 180F, 180F}, new float[]{0.9f, 1f, 0.9f}, "", 0, null, "", null, 0, false), + BambooFreightcar(EntityFreightBamboo.class, new ModelBambooTrainCargo(), "bamboo_freight_", true, new float[]{0.1F, 0F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + freightGermanPost(EntityFreightGermanPost.class, new ModelGermanPost(), "german_post_", true, new float[]{-1F, 0.15F, -0.075F}, new float[]{0F, 180F, 180F}, new float[]{0.9f, 1f, 0.9f}, "", 0, null, "", null, 0, false), + freightDepressedFlatbed(EntityFreightDepressedFlatbed.class, new ModelDepressedFlatbed(), "depressed_flatbed_", true, new float[]{-0.1F, 0.15F, -0.075F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + freightCartL(EntityFreightCartL.class, new ModelFreightCarL(), "freightCarL_", true, new float[]{0F, 0.2F, 0.825F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + freightKclassrailBox(EntityFreightKClassRailBox.class, new ModelKClassRailBox(), "KClassRailBox_", true, new float[]{-1.5F, 0.1F, 0.125F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + freightShortCoveredHopper(EntityFreightShortCoveredHopper.class, new ModelShortCoveredHopper(), "ShortCoveredHopper_", true, new float[]{-2.2F, -0.25F, 0.7F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + freightLongCoveredHopper(EntityFreightLongCoveredHopper.class, new ModelLongCoveredHopper(), "LongCoveredHopper_", true, new float[]{-1F, -0.25F, 0.65F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + freightHeavyweightBoxcar(EntityFreightHeavyweightBaggage.class, new ModelHeavyweightBaggage(), "heavyweightBoxcar_", true, new float[]{0F, 0.1F, -0.05F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + freightASTFAutorack(EntityFreightASTFAutorack.class, new ModelASTFAutorack(), "astf_autorack", false, new float[]{-1F, 0.2F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + BoulderWagon(EntityBoulderWagon.class, new ModelBoulderWagon(), "BoulderWagon_", true, new float[]{0F, 0.2F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), // freight7Plank(EntityFreight7Plank.class, new ModelFreight7Plank(), "7_plank_", true, new float[]{0F,0.2F,0F}, new float[] {0F, 180F, 180F }, null, "",0,null,"",null, 0, false), - /** Tanks **/ - tankWagon_DB(EntityTankWagon_DB.class, new ModelTankWagon_DB(), "tankWagon_DB_", true, new float[] { 0.0F, -0.44F, 0.0F }, null, null, "", 0, null, "", null, 0, false), - tankWagonUS(EntityTankWagonUS.class, new ModelTankWagonUS(), "tankWagonUS_", true, new float[] { 0.0F, -0.47F, 0.0F }, null, null, "", 0, null, "", null, 0, false), - tankWagonGrey(EntityTankWagon2.class, new ModelTankWagon2(), "tankwagon2", false, new float[] { 0.0F, -0.32F, 0.0F }, null, null, "", 0, null, "", null, 0, false), - tankCartLava(EntityTankLava.class, new ModelWatertransp(), "lavacar_", true, new float[] { 0.0F, -0.44F, 0.0F }, null, null, "", 0, null, "", null, 0, false), - tankWagonYellow(EntityTankWagon.class, new ModelTankWagon(), "tankwagon", false, new float[] { 0.0F, -0.47F, 0.0F }, null, null, "", 0, null, "", null, 0, false), - tankWagonThreeDome(EntityTankWagonThreeDome.class, new ModelTankWagonThreeDome(), "tanker_three_dome_", true, new float[] { 0.0F, 0.17F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - - /** Tenders */ - tenderSmall(EntityTenderSmall.class, new ModelTender(), "tender2_", true, new float[] { 0.0F, -0.5F, 0.0F }, new float[] { 0F, 90F, 0F }, new float[] { 0.75F, 0.75F, 0.75F }, "", 0, null, "", null, 0, false), - tenderHeavy(EntityTenderHeavy.class, new ModelTenderHeavy(), "heavytender_", true, new float[] { 0.0F, -0.4F, 0.0F }, new float[] { 0F, 180F, 0F }, null, "", 0, null, "", null, 0, false), - tender4_4_0(EntityTender4_4_0.class, new ModelNormalSteamTender(), "4-4-0-loco_tender_", true, new float[] { 0.0F, -0.44F, 0.0F }, new float[] { 0F, 90F, 0F }, null, "", 0, null, "", null, 0, false), - tenderBR01(EntityTenderBR01_DB.class, new ModelTenderBR01_DB(), "tenderBR01_DB", false, new float[] { 0.0F, -0.44F, 0.0F }, null, null, "", 0, null, "", null, 0, false), - tenderEr_Ussr(EntityTenderEr_Ussr.class, new ModelTenderEr_Ussr(), "tenderEr_Ussr", false, new float[] { 0.06F, -0.44F, 0.0F }, new float[] { 0F, 180F, 0F }, null, "", 0, null, "", null, 0, false), - tenderC62Class(EntityTenderC62Class.class, new ModelC62Tender(), "c62_tender_", true, - new float[] { 0.0F, -0.42F, 0.0F }, null, null, "", 0, null, "", null, 0, false), - tenderD51(EntityTenderD51.class, new ModelD51Tender(), "d51_tender", false, - new float[] { -3.0F, 0.35F, 0.0F }, new float[]{0,180f,180f}, null, "", 0, null, "", null, 0, false), - tenderAdler(EntityTenderAdler.class, new ModelTenderAdler(), "tender_adler", false, new float[] { 0.0F, 1.05F, 0.0F }, new float[] { 180F, -90F, 0F }, null, "", 0, null, "", null, 0, false), - tenderGS4(EntityTenderGS4.class, new ModelGS4Tender(), "GS4_tender_", true, new float[] { 0.0F, 0.15F, -0.05F }, - new float[] { 0F, 180F, 180F }, new float[] { 0.8f, 1f, 0.8f }, "", 0, null, "", null, 0, false), - Model4000GallonTender(EntityTender4000.class, new Model4000GallonTender(), "GWR_Tender_", true, new float[] { -4.0F, 0.15F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - ModelFowler4FTender(EntityTenderFowler4F.class, new ModelFowler4FTender(), "Fowler_4F_Tender", false, new float[] { -5.25F, -0.51585F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - tenderCoranationClass(EntityTenderCoranationClass.class, new ModelCoranationClassTender(), "CoranationClassTender", false, new float[] { 0.0F, 0.2F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - tenderBerk1225(EntityTenderBerk1225.class, new Model1225Tender(), "Berkshire_tender_", true, new float[] { 2.75F, -0.65F, 0.0625F }, new float[] { 0F, 0F, 180F }, null, "", 0, null, "", null, 0, false), - tenderC41(EntityTender_C41.class, new ModelTenderC41(), "C41Tender", false, new float[] { 0.1F, 0.2F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - tenderSouthern1102(EntityTender_Southern1102.class, new ModelSouthern1102Tender(), "Southern1102Tender", false, new float[] { -5.25F, -0.5F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - tenderMILW(EntityTenderMILW.class, new ModelMILWTender(), "milw_tender", false, new float[] {0.15F, 0.055F, 0.025F }, new float[] { 0F, 180F, 180F }, new float[]{0.9f,0.9f,0.9f}, "", 0, null, "", null, 0, false), - - /** Diesel */ - locoKOF(EntityLocoDieselKof_DB.class, new ModelKof(), "locoKof_DB_", true, new float[] { -1.0F, -0.44F, 0.0F }, null, null, "smoke", 2, new ArrayList() { - { - add(new double[] { 0.9D, 1.1D, 0.0D }); - } - }, "", null, 0, true), - locoGP40(EntityLocoDieselCD742.class, new ModelGP40(), "cd742_", true, new float[] { -0.8F, 0.75F, 0.0F }, new float[] { 180F, 180F, 0F }, new float[] { 0.8F, 0.8F, 0.8F }, "smoke", 5, new ArrayList() { - { - add(new double[] { 1.25D, 1.15D, 0.0D }); - } - }, "", null, 0, false), - locoCD754(EntityLocoDieselCD754.class, new ModelCD754(), "cd754_", true, new float[] { -2.5F, 0.2F, 0.0F }, new float[] { 180F, 0F, 0F }, new float[] { 1F, 1F, 1F }, "smoke", 5, new ArrayList() { - { - add(new double[] { 1.25D, 1.15D, 0.0D }); - } - }, "", null, 0, false), - locoChME3(EntityLocoDieselChME3.class, new ModelChME3(), "chme3", false, new float[] { -0.5F, -0.47F, 0.0F }, null, null, "smoke", 4, new ArrayList() { - { - add(new double[] { 0.6D, 1.55D, 0.0D }); - } - }, "", null, 0, false), - - Class143Front(EntityLocoDieselClass143.class, new ModelClass143(), "Class143_", true, new float[] {-1f, 0.15f, 0f}, new float[] {0f, 180f, 180f}, null, "smoke", 1, new ArrayList() { - { - add(new double[] { -0.8D, 1.25D, 0.4D }); - } - }, "", null, 0, false), - - - locoGP7Red(EntityLocoDieselGP7Red.class, new ModelGP7(), "gp7_", true, new float[] { -0.8F, -0.47F, 0.0F }, new float[] { 0F, 180F, 0F }, null, "smoke", 4, new ArrayList() { - { - add(new double[] { -0.2D, 1.3D, 0.0D }); - add(new double[] { 0.45D, 1.3D, 0.0D }); - } - }, "", null, 0, false), - loco44tonner(EntityLocoDiesel44TonSwitcher.class, new ModelLoco44TonSwitcher(), "loco_44tonswitcher_", true, new float[] { -2.75F, -0.425F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "smoke", 4, new ArrayList() { - { - add(new double[] { 0.6D, 1.55D, 0.0D }); - add(new double[] { 2D, 1.55D, 0.0D }); - } - }, "", null, 0, false), - locoSD40(EntityLocoDieselSD40.class, new ModelSD40(), "locoSD40_", true, new float[] { -1.2F, -0.47F, 0.0F }, new float[] { 180F, 90F, 0F }, new float[] { -1F, -1F, 1F }, "smoke", 5, new ArrayList() { - { - add(new double[] { 1.45D, 1.45D, 0.0D }); - } - }, "", null, 0, false), - locoSD70(EntityLocoDieselSD70.class, new ModelSD70(), "locoSD70_", true, new float[] { -1.2F, -0.44F, 0.0F }, new float[] { 0F, 90F, 0F }, null, "smoke", 5, new ArrayList() { - { - add(new double[] { 0.4D, 1.3D, 0.0D }); - } - }, "", null, 0, false), - - locoShunter(EntityLocoDieselShunter.class, new ModelShunter(), "shunter_", true, new float[] { -1.2F, -0.451F, 0.0F }, null, null, "smoke", 5, new ArrayList() { - { - add(new double[] { 2.4D, 1.5D, -0.1D }); - add(new double[] { 2.4D, 1.5D, 0.1D }); - } - }, "", null, 0, true), - locoWLs40(EntityLocoDieselWLs40.class, new ModelWLs40(), "wls40", false, new float[] { 0F, 0.1F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "smoke", 5, new ArrayList() { - { - add(new double[] { 3.0D, 1.4D, 0.0D }); - } - }, "", null, 0, true), - locoV60_DB(EntityLocoDieselV60_DB.class, new ModelV60(), "locoV60_DB_", true, new float[] { -0.75F, -0.44F, 0.0F }, null, null, "smoke", 4, new ArrayList() { - { - add(new double[] { 0.75D, 1.7D, 0.0D }); - } - }, "", null, 0, false), - locoMILW_H1044(EntityLocoDieselMILW_H1044.class, new ModelMILW_H1044(), "MILW_H1044_", true, new float[]{0,0.06f,0}, new float[] { 0F, 180F, 180F }, new float[]{0.9f,1f,0.9f}, "largesmoke", 4, new ArrayList() { - { - add(new double[] { 3.7D, 1.7D, 0D }); - } - }, "", null, 0, false), - locoEMDF7(EntityLocoDieselEMDF7.class, new ModelEMDF7(), "emdf7_", true, new float[]{-2.2f,0.1f,0}, new float[] { 0F, 180F, 180F }, new float[]{0.9f,1f,0.9f}, "smoke", 4, new ArrayList() { - { - add(new double[] { -0.15D, 1.6D, 0.0D }); - add(new double[] { 0.5D, 1.6D, 0.0D }); - } - }, "", null, 0, false), - locoEMDF3(EntityLocoDieselEMDF3.class, new ModelEMDF3(), "emdf3_", true, new float[]{-2.2f,0.1f,0}, new float[] { 0F, 180F, 180F }, new float[]{0.9f,1f,0.9f}, "smoke", 4, new ArrayList() { - { - add(new double[] { -0.15D, 1.6D, 0.0D }); - add(new double[] { 0.55D, 1.6D, 0.0D }); - } - }, "", null, 0, false), - locoEMDF7b(EntityBUnitEMDF7.class, new ModelEMDF7B(), "emdf7b_", true, new float[]{0,0.1f,0}, new float[] { 0F, 180F, 180F }, new float[]{0.9f,1f,0.9f}, "", 4, null, "", null, 0, false), - locoEMDF3b(EntityBUnitEMDF3.class, new ModelEMDF3B(), "emdf3b_", true, new float[]{0,0.1f,0}, new float[] { 0F, 180F, 180F }, new float[]{0.9f,1f,0.9f}, "", 4, null, "", null, 0, false), - DD35b(EntityBUnitDD35.class, new ModelDD35B(), "dd35b_", true, new float[]{0,0.18f,0}, new float[] { 0F, 180F, 180F }, new float[]{0.9f,1f,0.9f}, "", 0, null, "", null, 0, false), - locoDieselDD35A(EntityLocoDieselDD35A.class, new ModelDD35A(), "dd35a_", true, new float[]{-5,0.18f,0}, new float[] { 0F, 180F, 180F }, new float[]{0.9f,1f,0.9f}, "smoke", 4, new ArrayList() { - { - add(new double[] { 3.9D, 1.6D, 0.0D }); - - add(new double[] { -0.4D, 1.6D, 0.0D }); - } - }, "", null, 0, false), - locoBamboo(EntityLocoDieselBamboo.class, new ModelBambooTrainEngine(), "loco_bamboo_", true, new float[] { -1.0F, 0F, 0.0F }, new float[]{180,180,0}, null, "smoke", 2, new ArrayList() { - { - add(new double[] { -0.05D, -0.05D, 0.0D }); - } - }, "", null, 0, true), - /** Electric */ - locoE10DB(EntityLocoElectricE10_DB.class, new ModelE10DB(), "locoe10_db_", true, new float[] { -1.7F, 0.05F, 0.0F }, new float[] { 0F, 0F, 180F }, new float[]{0.9f,0.9f,0.9f}, "",0,null, "", null, 0, false), - locoCD151(EntityLocoElectricCD151.class, new ModelLocoCD151(), "CD151_", true, new float[]{-2,0.18f,0}, new float[] { 0F, 180F, 180F }, new float[]{0.9f,1f,0.9f}, "",0,null, "", null, 0, false), - locoE103(EntityLocoElectricE103.class, new ModelE103(), "E103_", true, new float[]{-2,0.05f,0}, new float[] { 0F, 180F, 180F }, new float[]{0.9f,1f,0.9f}, "",0,null, "", null, 0, false), - locoVL10(EntityLocoElectricVL10.class, new ModelVL10(), "vl10", false, new float[] { -1.2F, -0.47F, 0.0F }, null, null, "", 0, null, "", null, 0, false), - locoBR_E69(EntityLocoElectricBR_E69.class, new ModelBR_E69(), "locoBR_E69_", true, new float[] { 0.0F, -0.42F, 0.0F }, null, null, "", 0, null, "", null, 0, false), - locoMineTrain(EntityLocoElectricMinetrain.class, new ModelLocoMinetrain(), "locoMinetrain", false, new float[] { -0.8F, -0.47F, 0.0F }, null, null, "", 0, null, "", null, 0, false), - locoSpeedZeroED(EntityLocoElectricHighSpeedZeroED.class, new ModelLocoHighSpeedZeroED(), "locoHighSpeedZeroED", false, new float[] { -1.7F, -0.44F, 0.0F }, null, null, "", 0, null, "", null, 0, false), - locoICE1(EntityLocoElectricICE1.class, new ModelICE1(), "ICE1_Engine_", true, new float[] { 0.0F, 0.18F, 0.1F }, new float[] { 0F, 180F, 180F }, new float[]{0.8f,1f,0.8f}, "", 0, null, "", null, 0, false), - //locoSpeedGrey(EntityNewHighSpeedLoco.class, new ModelNewHighSpeedLoco(), "newhighspeedloco", false, new float[] { -0.05F, -0.5F, 0.0F }, new float[] { 0F, 90F, 0F }, new float[] { 0.8F, 0.8F, 0.8F }, "", 0, null, "", null, 0), - locoTramYellow(EntityLocoElectricTramWood.class, new ModelTram(), "tram", false, new float[] { -0.8F, -0.44F, 0F }, new float[] { 0F, 180F, 0F }, null, "", 0, null, "", null, 0, false), - locoTramNY(EntityLocoElectricTramNY.class, new ModelTramNY(), "locoTramNY", false, new float[] { -1.5F, -0.44F, 0.0F }, null, null, "", 0, null, "", null, 0, false), - - passengerC4FG(PassengerIC4_DSB_FG.class, new ModelLocoDieselIC4_DSB_FG(), "IC4_DSB_FG", false, new float[] { -0.8F, -0.44F, 0.0F }, null, null, "", 0, null, "", null, 0, false), - passengerC4FH(PassengerIC4_DSB_FH.class, new ModelLocoDieselIC4_DSB_FH(), "IC4_DSB_FH", false, new float[] { -0.8F, -0.44F, 0.0F }, null, null, "", 0, null, "", null, 0, false), - locoIC4MG(EntityLocoDieselIC4_DSB_MG.class, new ModelLocoDieselIC4_DSB_MG(), "IC4_DSB_MG_", true, new float[] { -0.8F, -0.44F, 0.0F }, null, null, "", 0, null, "", null, 0, false), - locoBR185(EntityLocoElectricBR185.class, new BR185_EngineModel(), "BR185_Engine_", true, new float[] { -2.0F, 0.1F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - locoClass85(EntityLocoElectricClass85.class, new ModelClass85(), "Class85_", true, new float[] { -3.0F, 0.65F, 0.0F }, new float[] { 0F, 90F, 180F }, null, "", 0, null, "", null, 0, false), - locoBP4(EntityLocoElectricBP4.class, new ModelBP4(), "bp4_", true, new float[] { -2.2F, 0.15F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - passengerBNLRV_B(EntityPassengerBNLRV_B.class, new ModelBNLRV_B(), "bnlrv_", true, new float[] {0.0f, 0.10f, 0.0f}, new float[] {0F, 0F, 180F}, null, "", 0, null, "", null, 0, false ), - locoBNLRV_A(EntityLocoElectricBNLRV_A.class, new ModelBNLRV_A(), "bnlrv_", true, new float[] {-2f, 0.10f, 0.0f}, new float[] {0F, 180F, 180F}, null, "", 0, null, "", null, 0, false ), - - locoDeltic(EntityLocoDieselDeltic.class, new ModelDeltic(), "Deltic", false, new float[] { -2.25F, 0.8F, 0.0F }, new float[] { 0F, 90F, 180F }, null, "largesmoke", 1, new ArrayList() { - { - add(new double[]{2.3D, 1.6D, 0D}); - } - }, "", null, 0, false), - locoEWSClass66(EntityLocoDieselClass66.class, new ModelEWSClass66(), "Class66_", true, new float[] { -3.0F, 0.65F, 0.0F }, new float[] { 0F, 90F, 180F }, null, "largesmoke", 2, new ArrayList() { - { - add(new double[]{0.9D, 1.4D, 0.0D}); - } - }, "", null, 0, false), - locoFOL_M1(EntityLocoDieselFOLM1.class, new ModelFOL_M1(), "FOL_M1_", true, new float[] { -2.8F, 0.05F, 0.9F }, new float[] { 0F, 180F, 180F }, null, "smoke", 3, new ArrayList() { - { - add(new double[]{1.3D, 1.45D, 0.0D}); - } - }, "", null, 0, false), - FOLM1B(EntityLocoDieselFOLM1B.class, new ModelFOLM1B(), "FOL_M1b_", true, new float[] { -2.2F, 0.05F, 0.F }, new float[] { 0F, 180F, 180F }, null, "smoke", 3, new ArrayList() { - { - add(new double[]{1.6D, 1.45D, 0.0D}); - } - }, "", null, 0, false), - /** Steam */ - locoCherepanov(EntityLocoSteamCherepanov.class, new ModelLocoCherepanov(), "locoCherepanov", false, new float[] { -0.875F, -0.47F, 0.0F }, new float[] { 0, 180, 0 }, null, "largesmoke", 3, new ArrayList() { - { - add(new double[] { 1.5D, 2.1D, 0D }); - } - }, "explode", new ArrayList() { - { - add(new double[] { 0.875D, 0.2D, 0.2D }); - } - }, 2, true), - locoPannier(EntityLocoSteamPannier.class, new ModelLocoPannier(), "locoPannier", false, new float[] { 0.15F, 0.2F, 0.0F }, new float[] { 0, 180, 180 }, new float[]{0.9f,0.9f,0.9f}, "largesmoke", 3, new ArrayList() { - { - add(new double[] { 3.4D, 1.8D, 0D }); - } - }, "explode", new ArrayList() { - { - add(new double[] { 2.575D, 0.05D, 0.65D }); - } - }, 2, true), - locoC41(EntityLocoSteamC41.class, new ModelLocoC41(), "locoC41", false, new float[] { -3.5F, -0.5F, 0.0F }, new float[] { 0, 180, 180 }, null, "largesmoke", 3, new ArrayList() { - { - add(new double[] { 3.55D, 1.65D, 0D }); - } - }, "explode", new ArrayList() { - { - add(new double[] { 2.9D, 0.05D, 0.65D }); - } - }, 2, true), - - locoBR_Black_5(EntityLocoSteamBR_Black_5.class, new ModelBR_Black_5(), "BR_Black_5_", true, new float[] {-1.75f, 0f, 0 }, new float[] {0,180,180}, null, "largesmoke", 3, new ArrayList() { - { - add(new double[] { 3.1D, 1.35D, 0D }); - } - }, "explode", new ArrayList() { - { - add(new double[] { 3.25D, 0D, 0.65D }); - } - }, 2, true), - - locoRW_Type_3(EntityLocoSteamRWType3.class, new ModelRW_Type_3(), "RW_Type_3_", true, new float[] {-1.25f, 0.17f, 0 }, new float[] {0,180,180}, null, "largesmoke", 3, new ArrayList() { - { - add(new double[] { 2.4D, 1.55D, 0D }); - } - }, "explode", new ArrayList() { - { - add(new double[] { 2.9D, 0.05D, 0.65D }); - } - }, 2, true), - - locoRW_Type_2(EntityLocoSteamRWType2.class, new ModelRW_Type_2(), "Type_2_", true, new float[] {-1.25f, 0.17f, 0 }, new float[] {0,180,180}, null, "largesmoke", 3, new ArrayList() { - { - add(new double[] { 2.2D, 1.55D, 0D }); - } - }, "explode", new ArrayList() { - { - add(new double[] { 2.6D, 0.05D, 0.65D }); - } - }, 2, true), - - - locoGWR_101_Class(EntityLocoSteamGWR101Class.class, new ModelGWR101Class(), "Gwr_101_", true, new float[] {-1.25f, 0.17f, 0 }, new float[] {0,180,180}, null, "largesmoke", 3, new ArrayList() { - { - add(new double[] { 2.6D, 1.55D, 0D }); - } - }, "explode", new ArrayList() { - { - add(new double[] { 3D, 0.05D, 0.65D }); - } - }, 2, true), - - - locoGWR_42xx(EntityLocoSteamGWR42xx.class, new ModelGWR42xx(), "2-8-0_", true, new float[] {-2.1f, 0.17f, 0 }, new float[] {0,180,180}, null, "largesmoke", 3, new ArrayList() { - { - add(new double[] { 4.1D, 1.6D, 0D }); - } - }, "explode", new ArrayList() { - { - add(new double[] { 4.3D, 0.05D, 0.65D }); - } - }, 2, true), - - locoGWR_72xx(EntityLocoSteamGWR72xx.class, new ModelGWR72xx(), "72xx_", true, new float[] {-2.5f, 0.17f, 0 }, new float[] {0,180,180}, null, "largesmoke", 3, new ArrayList() { - { - add(new double[] { 4.8D, 1.6D, 0D }); - } - }, "explode", new ArrayList() { - { - add(new double[] { 5.0D, 0.05D, 0.65D }); - } - }, 2, true), - - locoWWCP_Class_062T(EntityLocoSteamWWCPClass062T.class, new ModelWWCPClass062T(), "WWCP_Standard_0-6-2T_", true, new float[] {-2.5f, 0.17f, 0 }, new float[] {0,180,180}, null, "largesmoke", 3, new ArrayList() { - { - add(new double[] { 4.3D, 1.6D, 0D }); - } - }, "explode", new ArrayList() { - { - add(new double[] { 4.6D, 0.05D, 0.65D }); - } - }, 2, true), - - locoBR_Britannia_Class(EntityLocoSteamBR_Britannia_Class.class, new ModelBR_Britannia_Class(), "BR_Britannia_", true, new float[] {-2.3f, -0.05f, 0 }, new float[] {0,180,180}, null, "largesmoke", 3, new ArrayList() { - { - add(new double[] { 3.78D, 1.4D, 0D }); - } - }, "explode", new ArrayList() { - { - add(new double[] { 4.1D, 0.05D, 0.65D }); - } - }, 2, true), - - locoJ50(EntityLocoSteamJ50.class, new ModelJ50(), "J50_", true, new float[] {-1.25f, 0.15f, 0 }, new float[] {0,180,180}, null, "largesmoke", 3, new ArrayList() { - { - add(new double[] { 2.7D, 1.5D, 0D }); - } - }, "explode", new ArrayList() { - { - add(new double[] { 2.8D, 0.05D, 0.65D }); - } - }, 2, true), - - locoSentinelY3(EntityLocoSteamSentinelY3.class, new ModelSentinelY3(), "Sentinel_Y3_", true, new float[] {-0.5f, 0.15f, 0}, new float[] {0, 180, 180}, null, "largesmoke", 2, new ArrayList() { - { - add(new double[] { -0.5D, 1.5D, 0D }); - } - }, "explode", new ArrayList() { - { - - } - }, 2, true), - - locoJacknail(EntitylocoSteamJacknail.class,new ModelMWClass88BTE(), "0-8-0_box_tank_", true, new float[] {-1.25f, 0.15f, 0 }, new float[] {0, 180, 180}, null, "largesmoke", 2, new ArrayList() { - { - add(new double[] { 2.5D, 1.5D, 0D }); - } - }, "explode", new ArrayList() { - { - add(new double[] { 2.5D, 0.05D, 0.65D }); - } - }, 2, true), - - locoC41_080(EntityLocoSteamC41_080.class, new ModelC41_080(), "locoC41_080", false, new float[] { -3.5F, -0.5F, 0.0F }, new float[] { 0, 180, 180 }, null, "largesmoke", 3, new ArrayList() { - { - add(new double[] { 3.55D, 1.65D, 0D }); - } - }, "explode", new ArrayList() { - { - add(new double[] { 2.9D, 0.05D, 0.65D }); - } - }, 2, true), - locoAlcoSC4(EntityLocoSteamAlcoSC4.class, new ModelAlcoSC4(), "AlcoSC4", false, new float[] { -3.5F, -0.5F, 0.0F }, new float[] { 0, 180, 180 }, null, "largesmoke", 3, new ArrayList() { - { - add(new double[] { 3.55D, 1.65D, 0D }); - } - }, "explode", new ArrayList() { - { - add(new double[] { 2.9D, 0.05D, 0.65D }); - } - }, 2, true), - locoC41T(EntityLocoSteamC41T.class, new ModelLocoC41T(), "locoC41t", false, new float[] { -3.5F, -0.5F, 0.0F }, new float[] { 0, 180, 180 }, null, "largesmoke", 3, new ArrayList() { - { - add(new double[] { 3.55D, 1.65D, 0D }); - } - }, "explode", new ArrayList() { - { - add(new double[] { 2.9D, 0.05D, 0.65D }); - } - }, 2, true), - locoSouthern1102(EntityLocoSteamSouthern1102.class, new ModelSouthern1102(), "Southern1102", false, new float[] { -3.5F, -0.5F, 0.0F }, new float[] { 0, 180, 180 }, new float[]{1f,1f,1f}, "largesmoke", 3, new ArrayList() { - { - add(new double[] { 3.55D, 1.65D, 0D }); - } - }, "explode", new ArrayList() { - { - add(new double[] { 2.9D, 0.05D, 0.65D }); - } - }, 2, true), - locoUSATCUS(EntityLocoSteamUSATCUS.class, new ModelUSATCUS(), "USATCUS", false, new float[] { -2.0F, -0.2F, 0.8375F }, new float[] { 0, 180, 180 }, new float[]{1f,1f,1f}, "largesmoke", 3, new ArrayList() { - { - add(new double[] { 2.5D, 1.2D, 0D }); - } - }, "explode", new ArrayList() { - { - add(new double[] { 2.5D, -0.5D, 0.65D }); - } - }, 2, true), - locoUSATCUK(EntityLocoSteamUSATCUK.class, new ModelUSATCUK(), "USATCUK", false, new float[] { -2.0F, -0.2F, 0.8375F }, new float[] { 0, 180, 180 }, new float[]{1f,1f,1f}, "largesmoke", 3, new ArrayList() { - { - add(new double[] { 2.5D, 1.2D, 0D }); - } - }, "explode", new ArrayList() { - { - add(new double[] { 2.5D, -0.5D, 0.65D }); - } - }, 2, true), - locoCoranationClass(EntityLocoSteamCoranationClass.class, new ModelCoranationClass(), "CoranationClass", false, new float[] { -3.8F, 0.2F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "largesmoke", 3, new ArrayList() { - { - add(new double[] { 5.45D, 1.9D, 0.0D }); - } - }, "explode", new ArrayList() { - { - add(new double[] {4.8D, 0.15D, 0.5D }); - } - }, 2, true), - locoBR80(EntityLocoSteamBR80_DB.class, new ModelLocoBR80_DB(), "locoBR80_DB_", true, new float[] { -0.75F, -0.44F, 0.0F }, null, null, "largesmoke", 3, new ArrayList() { - { - add(new double[] { 1.8D, 1.75D, 0.0D }); - } - }, "explode", new ArrayList() { - { - add(new double[] { 1.6D, -0.4D, 0.8D }); - } - }, 4, true), - loco4_4_0(EntityLocoSteam4_4_0.class, new ModelLoco(), "4-4-0-loco_", true, new float[] { -0.66F, -0.44F, 0.0F }, new float[] { 0F, 90F, 0F }, null, "largesmoke", 3, new ArrayList() { - { - add(new double[] { 1.6D, 2.05D, 0.0D }); - } - }, "explode", new ArrayList() { - { - add(new double[] { 1.56D, -0.2D, 0.8D }); - } - }, 4, true), - locoSteamSmall(EntityLocoSteamSmall.class, new ModelLoco3(), "loco3_", true, new float[] { -0.99F, -0.5F, 0.0F }, new float[] { 0F, -90F, 0F }, new float[] { 0.8F, 0.8F, 0.8F }, "smoke", 20, new ArrayList() { - { - add(new double[] { 1.69D, 1.1D, 0.0D }); - } - }, "explode", new ArrayList() { - { - add(new double[] { 1.6D, -0.4D, 0.8D }); - } - }, 2, true), - locoSteamLSSP7(EntityLocoSteamLSSP7.class, new ModelLSSP7(), "LSSP7", false, new float[] { -1F, -0.2F, 0.8F }, new float[] { 0F, 180F, 180F }, new float[] { 1F, 1F, 1F }, "smoke", 20, new ArrayList() { - { - add(new double[] { 0.1D, 1.15D, 0D }); - } - }, "explode", new ArrayList() { - { - add(new double[] { 0.7D, -0.4D, 0.5D }); - add(new double[] { 0.7D, -0.4D, -0.5D }); - } - }, 2, true), - locoHeavySteam(EntityLocoSteamHeavy.class, new ModelHeavySteamLoco(), "heavysteam_", true, new float[] { 0F, -0.42F, 0.0F }, null, null, "largesmoke", 3, new ArrayList() { - { - add(new double[] { 3.1D, 2D, 0.0D }); - } - }, "explode", new ArrayList() { - { - add(new double[] { 3D, -0.2D, 0.8D }); - } - }, 2, true), - locoSteamC62Class(EntityLocoSteamC62Class.class, new ModelC62Locomotive(), "c62_engine_", true, - new float[] { 0F, -0.44F, 0.0F }, null, null, "largesmoke", 3, new ArrayList() { - { - add(new double[] { 5.0D, 1.75D, 0.0D }); - } - }, "explode", new ArrayList() { - { - add(new double[] { 5.2D, -0.2D, 0.8D }); - } - }, 2, false), - locoSteamD51Short(EntityLocoSteamD51.class, new ModelD51ShortStreamlining(), "d51_short_", true, - new float[] { 0F, -0.5F, 0.0F }, null, null, "largesmoke", 3, new ArrayList() { - { - add(new double[] { 4.85D, 1.85D, 0.0D }); - } - }, "explode", new ArrayList() { - { - add(new double[] { 4.6D, -0.2D, 0.8D }); - } - }, 2, false), - locoSteamD51Long(EntityLocoSteamD51Long.class, new ModelD51LongStreamlining(), "d51_long_", true, - new float[] { 0F, -0.5F, 0.0F }, null, null, "largesmoke", 3, new ArrayList() { - { - add(new double[] { 4.85D, 1.85D, 0.0D }); - } - }, "explode", new ArrayList() { - { - add(new double[] { 4.6D, -0.2D, 0.8D }); - } - }, 2, false), - locoSteamBR01_DB(EntityLocoSteamBR01_DB.class, new ModelLocoBR01_DB(), "locoBR01_DB_", true, new float[] { -1.0F, -0.44F, 0.0F }, null, null, "largesmoke", 3, new ArrayList() { - { - add(new double[] { 3.45D, 1.8D, 0.0D }); - } - }, "explode", new ArrayList() { - { - add(new double[] { 3.4D, -0.2D, 0.8D }); - } - }, 2, false), - locoSteamGS4(EntityLocoSteamGS4.class, new ModelGS4Loco(), "GS4_engine_", true, new float[] { 0.0F, 0.15F, 0.0F }, new float[] { 0F, 180F, 180F }, new float[]{0.95f,0.95f,0.95f}, "largesmoke", 5, new ArrayList() { - { - add(new double[] { 5.8D, 1.7D, 0.0D }); - } - }, "explode", new ArrayList() { - { - add(new double[] { 5.2D, -0.2D, 0.8D }); - } - }, 2, false), - locoSteamEr_USSR(EntityLocoSteamEr_Ussr.class, new ModelLocoEr_Ussr(), "locoEr_Ussr", false, new float[] { -0.75F, -0.44F, 0.0F }, null, null, "largesmoke", 3, new ArrayList() { - { - add(new double[] { 3.45D, 1.9D, 0.0D }); - } - }, "explode", new ArrayList() { - { - add(new double[] { 3.4D, -0.2D, 0.8D }); - } - }, 2, false), - locoSteamForney(EntityLocoSteamForneyRed.class, new ModelLocoForney(), "locoForney_", true, new float[] { -1.3F, -0.44F, 0.0F }, new float[] { 0F, 90F, 0F }, null, "largesmoke", 3, new ArrayList() { - { - add(new double[] { 2.2D, 1.9D, 0.0D }); - } - }, "explode", new ArrayList() { - { - add(new double[] { 2.2D, -0.2D, 0.8D }); - } - }, 2, true), - locoSteamMogul(EntityLocoSteamMogulBlue.class, new ModelLocoMogul(), "locoMogul_", true, new float[] { -0.6F, -0.44F, 0.0F }, new float[] { 0F, 90F, 0F }, null, "largesmoke", 3, new ArrayList() { - { - add(new double[] { 1.55D, 1.95D, 0.0D }); - } - }, "explode", new ArrayList() { - { - add(new double[] { 1.45D, -0.2D, 0.8D }); - } - }, 2, true), - locoSteamShay(EntityLocoSteamShay.class, new ModelLocoSteamShay(), "locoShay", false, new float[] { -0.4F, -0.45F, -0.0F }, new float[] { 0F, 180F, 0F }, null, "largesmoke", 20, new ArrayList() { - { - add(new double[] { 1.8D, 1.7D, 0.2D }); - } - }, "explode", new ArrayList() { - { - add(new double[] { 1.6D, -0.4D, 0.8D }); - } - }, 2, true), - locoSteamVBShay(EntityLocoSteamVBShay.class, new ModelVBShay(), "vbshay", false, new float[] { 0F, 0.2F, 0.0F }, new float[] { 0F, 180F, 180F }, new float[]{0.9f,1f,0.9f}, "largesmoke", 20, new ArrayList() { - { - add(new double[] { 0.55D, 2.2D, 0.0D }); - } - }, "explode", new ArrayList() { - { - add(new double[] { 1.6D, -0.4D, 0.8D }); - } - }, 2, true), - locoSteamClimax(EntityLocoSteamClimax.class, new ModelLocoClimax(), "loco_climax", false, new float[] { 0F, 0.18F, 0.0F }, new float[] { 0F, 180F, 180F }, new float[]{0.9f,1f,0.9f}, "largesmoke", 20, new ArrayList() { - { - add(new double[] { 2.05D, 1.9D, 0.0D }); - } - }, "explode", new ArrayList() { - { - add(new double[] { 1.6D, -0.4D, 0.8D }); - } - }, 2, true), - locoSteamAdler(EntityLocoSteamAdler.class, new ModelLocoSteamAdler(), "locoAdler", false, new float[] { -0.8F, 1.05F, 0F }, new float[] { 180F, -90F, 0F }, new float[]{0.9f,1f,0.9f}, "smoke", 20, new ArrayList() { - { - add(new double[] { 1.6D, 1.3D, 0.0D }); - } - }, "explode", new ArrayList() { - { - add(new double[] { 1.5D, -0.4D, 0.8D }); - } - }, 2, true), - locoSteamAlice(EntityLocoSteamAlice0_4_0.class, new ModelLocoAlice040(), "0-4-0-loco-alice", false, new float[] { 0F, 0.15F, 0F }, new float[] { 0F, 180F, 180F }, new float[]{0.9f,1f,0.9f}, "smoke", 20, new ArrayList() { - { - add(new double[] { 2.2D, 1.6D, 0.0D }); - } - }, "explode", new ArrayList() { - { - add(new double[] { 1.8D, -0.4D, 0.8D }); - } - }, 2, true), - locoSteam040VB(EntityLocoSteam040VB.class, new ModelVB040(), "loco040VB", false, new float[] { 0F, 0.15F, 0F }, new float[] { 0F, 180F, 180F }, new float[]{0.9f,1f,0.9f}, "smoke", 20, new ArrayList() { - { - add(new double[] { 0.6D, 1.75D, 0.0D }); - } - }, "explode", new ArrayList() { - { - add(new double[] { 1.8D, -0.4D, 0.8D }); - } - }, 2, true), - locoSteamGLYN(EntityLocoSteamGLYN042T.class, new Model042TGLYN(), "0-4-2-loco-glyn", false, new float[] { 0F, 0.15F, 0F }, new float[] { 0F, 180F, 180F }, new float[]{0.9f,1f,0.9f}, "smoke", 20, new ArrayList() { - { - add(new double[] { 2.15D, 1.75D, 0.0D }); - } - }, "explode", new ArrayList() { - { - add(new double[] { 1.8D, -0.4D, 0.8D }); - } - }, 2, true), - locoSteam626T(EntityLocoSteam262T.class, new ModelT262(), "262t", false, new float[] { 0F, 0.15F, 0F }, new float[] { 0F, 180F, 180F }, new float[]{0.9f,1f,0.9f}, "smoke", 20, new ArrayList() { - { - add(new double[] { 2.65D, 1.7D, 0.0D }); - } - }, "explode", new ArrayList() { - { - add(new double[] { 2.8D, -0.4D, 0.8D }); - } - }, 2, true), - locoSteamA4Mallard(EntityLocoSteamMallardA4.class, new ModelA4Locomotive(), "locoA4_UK_", true, new float[] {-3.0F, 0.2F, 0F },new float[] { 0F, 180F, 180F }, new float[]{0.975f,0.975f,0.975f}, "largesmoke", 20, new ArrayList() { - { - add(new double[] { 4.8D, 1.95D, 0.0D }); - } - }, "explode", new ArrayList() { - { - add(new double[] { 4.9D, -0.4D, 0.8D }); - } - }, 2, true), - LocoSteamHallClass(EntityLocoSteamHallClass.class, new ModelHallClass(), "Hall_Class_Locomotive_", true, new float[] {-0.65F, 0.15F, -0.25F },/*position*/ new float[] { 0F, 180F, 180F }, new float[]{1f,1f,1f},/*scale*/ "largesmoke", 20, new ArrayList() { - { - add(new double[] { 4.25D, 1.55D, 0D });//smoke - } - }, "explode", new ArrayList() { - { - add(new double[] { 4D, -0.4D, 0.8D });//steam - } - }, 2, true), - LocoSteamKingClass(EntityLocoSteamKingClass.class, new ModelKingClass(), "King_Class_Locomotive_", true, new float[] {-1.75F, 0.15F, 0.0F },/*position*/ new float[] { 0F, 180F, 180F }, new float[]{1f,1f,1f},/*scale*/ "largesmoke", 20, new ArrayList() { - { - add(new double[] { 4.8D, 1.6D, 0.0D });//smoke - } - }, "explode", new ArrayList() { - { - add(new double[] { 3.6D, -0.4D, 0.8D });//steam - } - }, 2, true), - LocoSteamBerk1225(EntityLocoSteamBerk1225.class, new Model1225(), "Berk1225_Locomotive", false, new float[] {-2.0F, -0.65F, 0.0625F },/*position*/ new float[] { 0F, 0F, 180F }, new float[]{1f,1f,1f},/*scale*/ "largesmoke", 20, new ArrayList() { - { - add(new double[] { 4.65D, 1.7D, 0.0D });//smoke - } - }, "explode", new ArrayList() { - { - add(new double[] { 4.2D, -0.4D, 0.8D });//steam - } - }, 2, true), - LocoSteamBerk765(EntityLocoSteamBerk765.class, new Model765(), "Berk765_Locomotive", false, new float[] {-2.0F, -0.65F, 0.0625F },/*position*/ new float[] { 0F, 0F, 180F }, new float[]{1f,1f,1f},/*scale*/ "largesmoke", 20, new ArrayList() { - { - add(new double[] { 4.65D, 1.7D, 0.0D });//smoke - } - }, "explode", new ArrayList() { - { - add(new double[] { 4.2D, -0.4D, 0.8D });//steam - } - }, 2, true), - locoSteamMILWClassA(EntityLocoSteamMILWClassA.class, new ModelMILWClassA(), "locoMILW_ClassA", false, new float[] {0.0F, 0.1F, 0F }, new float[] { 0F, 180F, 180F }, new float[]{0.9f,0.9f,0.9f}, "largesmoke", 20, new ArrayList() { - { - add(new double[] { 4.4D, 1.35D, 0.0D }); - } - }, "explode", new ArrayList() { - { - add(new double[] { 4.2D, -0.4D, 0.8D }); - } - }, 2, true), - locoSteamFowler(EntityLocoSteamFowler.class, new ModelFowler(), "loco_Fowler", false, new float[] { -3F, -0.51585F, 0.0F }, new float[] { 0F, 180F, 180F }, new float[]{1f,1f,1f}, "largesmoke", 20, new ArrayList() { - { - add(new double[] { 3.2D, 1.6D, 0.0D }); - } - }, "explode", new ArrayList() { - { - add(new double[] { 2D, -0.4D, 0D }); - } - }, 2, true), - locoMRcompound(EntitylocoSteamMRCompound.class, new ModelMidlandcompound(), "LMS_4p_", true, new float[] {-1.95f, 0.1f, 0 }, new float[] {0, 180, 180}, null, "largesmoke", 2, new ArrayList() { - { - add(new double[] { 3.5D, 1.5D, 0D }); - } - }, "explode", new ArrayList() { - { - add(new double[] { 3.5D, 0.05D, 0.65D }); - } - }, 2, true), - - locoSteamA4Tender(EntityTenderA4.class, new ModelTenderA4(), "tenderA4_UK_", true, new float[] { -0.2F, 0.2F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - LocoMRcompoundTender(EntityTenderMRCompound.class, new ModelMRCompoundTender(), "LMS_4p_", true, new float[] {0f, 0.15f, 0 }, new float[] {0, 180, 180}, null, "", 0, null, "", null, 0, false), - LocoBR_Black_5_Tender(EntityTenderBR_Black_5.class, new ModelBR_Black_5_Tender(), "BR_Black_5_Tender_", true, new float[] {-0.05f, 0f, 0f,}, new float[] {0F, 180f, 180F}, null, "", 0, null, "", null, 0, false), - LocoBR1_Tender(EntityTenderBR1.class, new ModelBR1_Tender(), "BR1_Tender_", true, new float[] {0f, -0.01f, 0f,}, new float[] {0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), - LocoRW_Type_2_Tender(EntityTenderRWType2.class, new ModelRW_Type_2_Tender(), "Type_2_", true, new float[] {0f, 0.16f, 0f,}, new float[] {0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), - PropagandaUS(EntityPropagandaUS.class, new ModelPropagandaCar(), "propaganda_US_", true, new float[] { 1.1F, 0.2F, -0.1F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - PropagandaJapan(EntityPropagandaJapan.class, new ModelPropagandaCar(), "propaganda_Japan_", true, new float[] { 1.1F, 0.2F, -0.1F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - PropagandaUSSR(EntityPropagandaUSSR.class, new ModelPropagandaCar(), "propaganda_USSR_", true, new float[] { 1.1F, 0.2F, -0.1F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - PropagandaBritain(EntityPropagandaBritain.class, new ModelPropagandaCar(), "propaganda_Britain_", true, new float[] { 1.1F, 0.2F, -0.1F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - SnowPlow(EntityLocoSteamSnowPlow.class, new ModelSnowPlow(), "train_snowplow", false, new float[] { -2F, 0.12F, 0F }, new float[] { 0F, 180F, 180F }, null, "smoke", 4, new ArrayList() { - { - add(new double[] { 3.15D, 1.6D, 0.0D }); - } - }, "", null, 0, false), - - - locoDieselCF7(EntityLocoDieselCF7.class, new ModelCF7(), "CF7_", true,new float[] {-1.5F, 0.15F, 0F}, new float[] { 0F, 180F, 180F }, null, "smoke", 6, new ArrayList() { - { - add(new double[]{0.6D, 1.4D, 0.0D}); - add(new double[]{1.1D, 1.4D, 0.0D}); - } - }, "", null, 0, false), - locoDieselGP15(EntityLocoDieselGP15.class, new ModelGP15(),"gp15_", true,new float[] {-1.3F, 0.155F, 0F}, new float[] { 0F, 180F, 180F }, null, "smoke", 5, new ArrayList() { - { - add(new double[]{1.33D, 1.45D, 0.0D}); - add(new double[]{0.75D, 1.45D, 0.0D}); - } - }, "", null, 0, false), - LocoDieselSW8( EntityLocoDieselSW8.class, new ModelSW8(), "sw8_", true,new float[] {-1.0F, 0.15F, 0F}, new float[] { 0F, 180F, 180F }, null, "smoke", 3, new ArrayList() { - { - add(new double[]{1.3D, 1.3D, 0.0D}); - } - }, "", null, 0, false), - locoElectricRenfe446Motor(EntityLocoElectricRenfe446Motor.class, new Modelrenfe446end(), "446_", true, new float[] { -1.9F, 0.15F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - passengerRenfe446Coach(EntityPassengerRenfe446Coach.class, new Modelrenfe446middle(), "446_", true, new float[] { -0.3F, 0.15F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - cabooseRenfe446Tail(EntityCabooseRenfe446Tail.class, new Modelrenfe446end(), "446_", true, new float[] { 0.0F, 0.15F, 0.0F }, new float[] { 0F, 0F, 180F }, null, "", 0, null, "", null, 0, false), - pch120(EntityLocoElectricPCH120.class, new ModelPCH120Commute(), "pch120commute_", true,new float[] {-1.3F, 0.01F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - pch120Coach(EntityPassengerPCH120Coach.class, new ModelPCH120Car(), "pch120car_", true,new float[] {0F, 0.01F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - Class345(EntityElectricClass345.class, new ModelClass345(), "Class345_", true,new float[] {-1.5F, 0.17F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - Class345Coach( EntityClass345Coach.class, new ModelClass345Coach(),"Class345_Passenger_", true, new float[] {0F, 0.05F, 0F}, new float[] { 0F, 180F, 180F },null, "", 0, null, "", null, 0, false), - LUengine(EntityElectricLUengine.class, new ModelLUengine(), "lu_engine", false,new float[] {-1.0F, 0.16F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - LUpassenger(EntityLUpassenger.class, new ModelLUpassenger(), "lu_passenger",false,new float[] {0F, 0.16F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - DstockEngine(EntityElectricDstockEngine.class, new ModelDstockEngine(), "D_stock_engine_", true,new float[] {-1.0F, 0.16F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - DstockCar(EntityDstockPassenger.class, new ModelDstockPassenger(), "D_stock_passenger_",true,new float[] {0F, 0.16F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - passengerPS52SeatCoach(EntityPassengerPS52SeatCoach.class, new ModelPS52SeatCoach(), "PS_lightweight_52seat_", true, new float[] { 0F, 0.15F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - passengerPSCombine(EntityPassengerPSCombine.class, new ModelPSCombine(), "PS_lightweight_baggage-coach_", true, new float[] { 0F, 0.15F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - passengerPScenterDiner(EntityPassengerPScenterDiner.class, new ModelPScenterDiner(), "PS_lightweight_center_diner_", true, new float[] { 0F, 0.15F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - passengerPSAnotherDiner(EntityPassengerPSAnotherDiner.class, new ModelPSscrewyoutoomanydiners(), "PS_lightweight_center_diner_2_", true, new float[] { 0F, 0.15F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - locoElectricMetro2000(EntityElectricMetro2000Motor.class, new ModelMetroMadrid2000Loco(),"metro_2000_",true, new float[] { -1.5F, 0.2F, 0.0F }, new float[] { 0F, 180F, 180F },null,"",0,null,"",null,0,false), - passengerMetro2000(EntityPassengerMetro2000.class, new ModelMetro2000Tail(), "metro_2000_", true, new float[] {0F,0.2F,0.0F}, new float[] {0F, 0F, 180F}, null, "", 0, null, "", null , 0, false), - locoElectricRenfe450Motor(EntityLocoElectricRenfe450Motor.class, new Modelrenfe450endA(), "450_loco_", true, new float[] { -1.9F, 0.1F, 0.0F }, new float[] { 0F, 0F, 180F }, null, "", 0, null, "", null, 0, false), - passengerRenfe450Coach(EntityPassengerRenfe450Coach.class, new Modelrenfe450middle(), "450_passenger_", true, new float[] { -0.0F, 0.1F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - cabooseRenfe450Tail(EntityCabooseRenfe450Tail.class, new Modelrenfe450endB(), "450_passenger_", true, new float[] { 0.0F, 0.1F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - passengerCD014(EntityPassengerCD014.class, new ModelCD014(), "cd014_", true, new float[] { 0.0F, 0.15F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - passengerCD914(EntityPassengerCD914.class, new ModelCD914(), "cd914_", true, new float[] { 0.0F, 0.15F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - passengerCD010(EntityPassengerCD010.class, new ModelCD010(), "cd010_", true, new float[] { 0.0F, 0.15F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - locoCD814(EntityLocoDieselCD814.class, new ModelCD814(), "cd814_", true, new float[] { -0.8F, 0.15F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - locoCD810(EntityLocoDieselCD810.class, new ModelCD810(), "cd810_", true, new float[] { -0.8F, 0.15F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - VBShay(EntityLocoSteamVBShay2.class, new ModelVertiBoi2(), "vbshay2", false, new float[] { -0.4F, -1.15F, -0.0F }, new float[] { 0F, 0F, 0F }, null, "largesmoke", 20, new ArrayList() { - { - add(new double[] { 0.6D, 1.9D, -0.1D }); - } - }, "explode", new ArrayList() { - { - add(new double[] { 0.6D, -0.4D, 0.8D }); - add(new double[] { 0.3D, 2.3D, 0.0D }); - } - }, 2, true), - locoSteamClimax2(EntityLocoSteamClimaxNew.class, new ModelClimaxNew(), "climax_Grey", false, new float[] { -0.4F, -1.15F, -0.0F }, new float[] { 0F, 180F, 0F }, null, "largesmoke", 20, new ArrayList() { - { - add(new double[] { 1.55D, 1.6D, 0.0D }); - } - }, "explode", new ArrayList() { - { - add(new double[] { 1.0D, -0.0D, 0.8D }); - } - }, 2, true), - freightRoundHopper(EntityFreightRoundHopper.class, new ModelRoundHopper(), "roundedhopper_", true, new float[] { -0F,0.15F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - freightRibbedHopper(EntityFreightRibbedHopper.class, new ModelRibbedHopper(), "ribbed_hopper_", true, new float[] { -0F,0.1F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - locoSM42(EntityLocoDieselSM42.class, new SM42(), "SM42_", true, new float[] { -2.0F, 0.05F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "smoke", 4, new ArrayList() { - { - add(new double[] { 0.9D, 1.35D, 0.0D }); - } - }, "", null, 0, false), - locoDieselWWCPGP7(EntityLocoDieselWWCPGP7.class, new ModelWWCPGP7(), "GP7_Highood_", true, new float[]{-2f,0.15f,0}, new float[] { 0F, 0F, 180F }, new float[]{0.9f,1f,0.9f}, "smoke", 4, new ArrayList() { - { - add(new double[] { 1.7D, 1.3D, 0.0D }); - - add(new double[] { 0.85D, 1.3D, 0.0D }); - } - }, "", null, 0, false), - locoC11(EntityLocoSteamC11.class, new ModellocoC11(), "locoC11", false, new float[] { -1.5F, 0.2F, 0.0F }, new float[] { 0, 180, 180 }, null, "largesmoke", 5, new ArrayList() { - { - add(new double[] { 3.05D, 1.25D, 0D }); - } - }, "explode", new ArrayList() { - { - add(new double[] { 2.9D, 0.00D, 0.75D }); - } - }, 3, true), - LocoDieselGE44Ton( EntityLocoDieselGE44Ton.class, new ModelGE44Ton(), "44_ton_", true,new float[] {-1.0F, 0.15F, 0F}, new float[] { 0F, 180F, 180F }, null, "smoke", 3, new ArrayList() { - { - add(new double[]{0.6D, 1.1D, 0.0D}); - add(new double[]{1.4D, 1.1D, 0.0D}); - } - }, "", null, 0, false), - amfleet(EntityPassengerAmfleet.class, new ModelAmfleet(),"amfleet_", true, new float[]{0F, -0.4F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - amfleet2(EntityPassengerAmfleet2.class, new ModelAmfleet2(),"amfleet2_", true, new float[]{0F, -0.4F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - bawx40highcube(EntityFreightBap40highcube.class, new Model40highcube(),"40highcube_", true, new float[]{0F, 0.15F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - WoodchipHopper(EntityFreightBapWoodchipHopper.class, new ModelWoodchipHopper(),"woodchiphopper_", true, new float[]{0F, 0.0F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - OreJenny(EntityFreightBapOreJenny.class, new ModelOreJenny(),"orejenny_", true, new float[]{0F, 0.0F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - MillGondola(EntityFreightBapMillGondola.class, new ModelMillGondola(),"MillGondola_", true, new float[]{0F, 0.0F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - MILW40boxcar(EntityFreightBapMILW40boxcar.class, new ModelMILW40boxcar(),"milw40_", true, new float[]{0F, 0.15F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - Freight60centerbeam(EntityFreightBap60centerbeam.class, new Model60centerbeam(),"60ftcb_", true, new float[]{0F, 0.0F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - Freight66centerbeam(EntityFreightBap66centerbeam.class, new Model66centerbeam(),"66ftcb_", true, new float[]{0F, 0.0F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - Freight73centerbeam(EntityFreightBap73centerbeam.class, new Model73centerbeam(),"73ftcb_", true, new float[]{0F, 0.0F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - PS140(EntityFreightBapPS140.class, new ModelPS140(),"ps140_", true, new float[]{0F, 0.15F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - PS150(EntityFreightBapPS150.class, new ModelPS150(),"ps150_", true, new float[]{0F, 0.15F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - PS160(EntityFreightBapPS160.class, new ModelPS160(),"ps160_", true, new float[]{0F, 0.0F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - WVcaboose(EntityCabooseBapWVcaboose.class, new ModelWVcaboose(),"wvcaboose_", true, new float[]{0F, 0.1675F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - //OWO60Verticube(EntityFreightBapOWO60Verticube.class, new ModelOWO60Verticube(),"owo60verticube_", true, new float[]{0F, 0.1875F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - PEcoach(EntityPassengerBapPEcoach.class, new ModelPEcoach(),"PECoach_", true, new float[]{0F, 0.105F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - PEobserve(EntityPassengerBapPEobserve.class, new ModelPEobserve(),"PEObserve_", true, new float[]{0F, 0.105F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - VersaLongi(EntityFreightBapVersaLongi.class, new ModelVersaLongi(),"versa_longi_", true, new float[]{0F, 0.0F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - VersaTrans(EntityFreightBapVersaTrans.class, new ModelVersaTrans(),"versa_trans_", true, new float[]{0F, 0.0F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - DOT11111000(EntityFreightBapDOT11111000.class, new Model11000DOT111(),"dot11K_", true, new float[]{0F, 0.00F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - DOT11120600(EntityFreightBapDOT11120600.class, new Model20600DOT111(),"dot206K_", true, new float[]{0F, 0.00F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - DOT11129080(EntityFreightBapDOT11129080.class, new Model29080DOT111(),"dot290K_", true, new float[]{0F, 0.00F /*was 0.20F for height*/, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - F7A( EntityLocoDieselBapF7A.class, new ModelF7A(), "F7A_", true,new float[] {-1.375F, 0.15F, 0F}, new float[] { 0F, 180F, 180F }, new float[] { 1F, 1.0F, 1F }, "smoke", 3, new ArrayList() { - { - add(new double[]{0.9375D, 1.3D, 0.0D}); - add(new double[]{0.25D, 1.3D, 0.0D}); - - } - }, "", null, 0, false), - F7B( EntityLocoDieselBapF7B.class, new ModelF7B(), "F7B_", true,new float[] {-1.25F, 0.15F, 0F}, new float[] { 0F, 180F, 180F }, new float[] { 1F, 1.0F, 1F }, "smoke", 3, new ArrayList() { - { - add(new double[]{1.35D, 1.3D, 0.0D}); - add(new double[]{0.55D, 1.3D, 0.0D}); - - } - }, "", null, 0, false), - H1044( EntityLocoDieselBapH1044.class, new ModelH1044(), "FM_H10-44_", true,new float[] {-1.1F, 0.15F, 0F}, new float[] { 0F, 180F, 180F }, null, "smoke", 4, new ArrayList() { - { - add(new double[]{1.9D, 1.45D, -0.16D}); - add(new double[]{1.9D, 1.45D, 0.16D}); - } - }, "", null, 0, false), - locoSteamStarClass(EntityLocoSteamStarClass.class, new ModelStarClass(), "StarLoco", false, new float[] { -0.8F, 0.15F, 0F }, new float[] { 0F, 180F, 180F }, null, "smoke", 20, new ArrayList() { - { - add(new double[] { 1.65D, 1.3D, 0.0D }); - } - }, "explode", new ArrayList() { - { - add(new double[] { 1.5D, -0.4D, 0.8D }); - } - }, 2, true), - tenderStarClass(EntityTenderStarClass.class, new ModelStarClassTender(), "StarTender", false, new float[] { 0.0F, 0.15F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - passengerStarCarFat(EntityPassengerStarCarFat.class, new ModelStarCarFat(), "GWRClosed", false, new float[] { 0F, 0.15F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - passengerStarCarNotFat(EntityPassengerStarCarNotFat.class, new ModelStarCarNotFat(), "GWROpen", false, new float[] { 0F, 0.15F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - LightCrane(EntityLightCrane.class, new ModelLightCrane(),"lightcrane2_", true, new float[]{0F,0.15F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - BR155(EntityLocoElectricBR155.class, new ModelBR155(), "BR155_", true, new float[] { -1.7F, 0.05F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "",0,null, "", null, 0, false), - Onion(EntityLocoOnion.class, new ModelOnion(), "Onion_", true, new float[] { -0.7F, 0.1F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "largesmoke", 20, new ArrayList() { - { - add(new double[] { 0.6D, 1.5D, 0.0D }); - } - }, "explode", new ArrayList() { - { - add(new double[] { 1.2D, -0.4D, 0.8D }); - } - }, 2, true), - OnionTender(EntityTenderOnion.class, new ModelOnionTender(), "Onion_Tender_", true, new float[] { 0.0F, 0.1F, 0.0F }, new float[] { 0F, 0F, 180F }, null, "", 0, null, "", null, 0, false), - loco440RFront(EntityLocoElectric440RFront.class, new Model440R_Front(), "440R_", true, new float[] { -1.9F, 0.1F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - passenger440RMid(EntityPassenger440RMid.class, new Model440R_Mid(), "440R_", true, new float[] { -0.0F, 0.1F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - passenger440RRear(EntityPassenger440RRear.class, new Model440R_Back(), "440R_", true, new float[] { 0.0F, 0.1F, 0.0F }, new float[] { 0F, 0F, 180F }, null, "", 0, null, "", null, 0, false), - passengerBW305(EntityPassengerBW305.class, new ModelBW305(), "tw_", true, new float[]{ 0.0F, 0.18F, 0.0F}, new float[]{ 0.0F, 180F, 180F} , null, "", 0, null, "", null, 0 , false ), - LocoElectricTW305(EntityLocoElectricTW305.class, new ModelTW305(), "tw_", true, new float[]{ -1.0F, 0.18F, 0.0F}, new float[]{ 0.0F, 180F, 180F} , null, "", 0, null, "", null, 0 , false ), - LocoElectricInterurbanSeries100(EntityElectricInterurbanSeries100.class, new ModelInterurbanSeries100(), "Interurban_tram_", true, new float[]{ -1.5F, 0.18F, 0.0F}, new float[]{ 0.0F, 180F, 180F} , null, "", 0, null, "", null, 0 , false ), - GP13(EntityLocoDieselGP13.class, new ModelGP13(), "gp13_", true, new float[] { -0.8F, -0.47F, 0.0F }, new float[] { 0F, 180F, 0F }, null, "smoke", 4, new ArrayList() { - { - add(new double[] { -0.2D, 1.2D, 0.0D }); - add(new double[] { 0.45D, 1.2D, 0.0D }); - } - }, "", null, 0, false), - DB143(EntityLocoElectricDB143.class, new ModelDB143(), "DB143", false, new float[] { -1.7F, 0.2F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "",0,null, "", null, 0, false), - tenderPETender(EntityTenderPETender.class, new ModelPE_Tender(), "PETender", false, new float[] { 0.1F, 0.15F, 0.0F }, new float[] { 0F, 0F, 180F }, null, "", 0, null, "", null, 0, false), - locoSteamPELoco(EntityLocoSteamPELoco.class, new ModelPE_Loco(), "PELoco", false, new float[] { -1.5F, 0.15F, 0.0F }, new float[] { 0, 180, 180 }, null, "largesmoke", 3, new ArrayList() { - { - add(new double[] { 3.1D, 1.4D, 0D }); - } - }, "explode", new ArrayList() { - { - add(new double[] { 2.9D, 0.05D, 0.65D }); - } - }, 2, true), - BapB23( EntityLocoDieselBapB23.class, new ModelB23(), "b23_", true,new float[] {-1.7F, 0.155F, 0F}, new float[] { 0F, 180F, 180F }, null, "smoke", 4, new ArrayList() { - { } - }, "", null, 0, false), - C424( EntityLocoDieselBapC424.class, new ModelC424(), "c424_", true,new float[] {-1.6F, 0.1F, 0F}, new float[] { 0F, 180F, 180F }, null, "largesmoke", 2, new ArrayList() { - { - add(new double[]{1D, 1.65D, 0.0D}); - } - }, "", null, 0, false), - C425( EntityLocoDieselBapC425.class, new ModelC425(), "c425_", true,new float[] {-1.6F, 0.1F, 0F}, new float[] { 0F, 180F, 180F }, null, "largesmoke", 2, new ArrayList() { - { - add(new double[]{1D, 1.65D, 0.0D}); - } - }, "", null, 0, false), - GP9( EntityLocoDieselBapGP9.class, new ModelGP9(), "gp9_", true,new float[] {-1.5F, -0.05F, 0F}, new float[] { 0F, 180F, 180F }, null, "smoke", 5, new ArrayList() { - { - add(new double[]{0.45D, 1.35D, 0.0D}); - add(new double[]{1.25D, 1.35D, 0.0D}); - } - }, "", null, 0, false), - GP7b( EntityLocoDieselBapGP7b.class, new ModelGP7b(), "bettergp7b_", true,new float[] {-1.5F, -0.05F, 0F}, new float[] { 0F, 180F, 180F }, null, "smoke", 5, new ArrayList() { - { - add(new double[]{0.45D, 1.35D, 0.0D}); - add(new double[]{1.25D, 1.35D, 0.0D}); - } - }, "", null, 0, false), - GP7u( EntityLocoDieselBapGP7u.class, new ModelGP7u(), "gp7u_", true,new float[] {-1.5F, -0.05F, 0F}, new float[] { 0F, 180F, 180F }, null, "smoke", 5, new ArrayList() { - { - add(new double[]{0.45D, 1.35D, 0.0D}); - add(new double[]{1.25D, 1.35D, 0.0D}); - - } - }, "", null, 0, false), - GP7( EntityLocoDieselBapGP7.class, new ModelGP7BAP(), "bettergp7_", true,new float[] {-1.5F, -0.05F, 0F}, new float[] { 0F, 180F, 180F }, null, "smoke", 5, new ArrayList() { - { - add(new double[]{0.45D, 1.35D, 0.0D}); - add(new double[]{1.25D, 1.35D, 0.0D}); - } - }, "", null, 0, false), - GP30( EntityLocoDieselBapGP30.class, new ModelGP30(), "gp30_", true,new float[] {-1.5F, 0.155F, 0F}, new float[] { 0F, 180F, 180F }, null, "smoke", 4, new ArrayList() { - { - //add(new double[]{1.9D, 1.4D, 0.0D}); - } - }, "", null, 0, false), - GP38dash2( EntityLocoDieselBapGP38dash2.class, new ModelGP38dash2(), "gp38dash2_", true,new float[] {-1.5F, 0.155F, 0F}, new float[] { 0F, 180F, 180F }, null, "smoke", 3, new ArrayList() { - { - add(new double[]{0.75D, 1.4D, 0.0D}); - add(new double[]{1.55D, 1.4D, 0.0D}); - } - }, "", null, 0, false), - KOF_III(EntityLocoDieselKof_III.class, new ModelKOF_III(), "KofIII_", true, new float[] { -0.8F, 0.15F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "smoke", 4, new ArrayList() { - { - add(new double[] { 0.5D, 1.0D, 0.0D }); - } - }, "", null, 0, false), - KOF_III_M(EntityLocoDieselKof_III_M.class, new ModelKOF_III_M(), "KofIIIM_", true, new float[] { -0.8F, 0.15F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "smoke", 4, new ArrayList() { - { - add(new double[] { 0.5D, 1.0D, 0.0D }); - } - }, "", null, 0, false), - U36C( EntityLocoDieselBapU36C.class, new ModelU36C(), "u36c_", true,new float[] {-2.3125F, -0.15F/* -0.13F*/, 0F}, new float[] { 0F, 180F, 180F }, new float[] { 1F, 1F, 1F }, "smoke", 3, new ArrayList() { - { - //add(new double[]{0.75D, 1.75D, 0.0D}); - - } - }, "", null, 0, false), - GP49( EntityLocoDieselBapGP49.class, new ModelGP49(), "gp49_arr_2807", false,new float[] {-1.5F, 0.155F, 0F}, new float[] { 0F, 180F, 180F }, null, "smoke", 3, new ArrayList() { - { } - }, "", null, 0, false), - GP15( EntityLocoDieselBapGP15.class, new ModelBapGP15(), "gp15_bap_", true,new float[] {-1.3F, 0.155F, 0F}, new float[] { 0F, 180F, 180F }, null, "smoke", 5, new ArrayList() { - { } - }, "", null, 0, false), - spookyGarrattFront(EntityLocoSteamGarrattFront.class, new ModelGarrattFront(), "GarrattTexture", false, new float[] {3.5F, 0.155F, 0.0F },/*position*/ new float[] { 0F, 180F, 180F }, new float[]{1f,1f,1f},/*scale*/ "largesmoke", 20, new ArrayList() { - { - //add(new double[] { 4.65D, 1.7D, 0.0D });//smoke - } - }, "explode", new ArrayList() { - { - //add(new double[] { 4.2D, -0.4D, 0.8D });//steam - } - }, 2, true), - spookyGarrattRear(EntityLocoSteamGarrattRear.class, new ModelGarrattBack(), "GarrattTexture", false, new float[] {3.25F, 0.155F, 0.0F },/*position*/ new float[] { 0F, 0F, 180F }, new float[]{1f,1f,1f},/*scale*/ "largesmoke", 20, new ArrayList() { - { - //add(new double[] { 4.65D, 1.7D, 0.0D });//smoke - } - }, "explode", new ArrayList() { - { - //add(new double[] { 4.2D, -0.4D, 0.8D });//steam - } - }, 2, true), - spookyGarrattMid(EntityLocoSteamGarrattMid.class, new ModelGarrattMid(), "GarrattTexture", false, new float[] {-2.25F, 0.155F, 0.0F },/*position*/ new float[] { 0F, 0F, 180F }, new float[]{1f,1f,1f},/*scale*/ "largesmoke", 20, new ArrayList() { - { - //add(new double[] { 4.65D, 1.7D, 0.0D });//smoke - } - }, "explode", new ArrayList() { - { - //add(new double[] { 4.2D, -0.4D, 0.8D });//steam - } - }, 2, true), - Skook(EntityLocoSteamSkook.class, new ModelSkookum(), "skookum", false, new float[] { -0.0F, -0.0F, -0.0F }, new float[] { 0F, 180F, 180F }, null, "largesmoke", 20, new ArrayList() { - { - add(new double[] { 2.4D, 1.5D, -0.0D }); - } - }, "explode", new ArrayList() { - { - add(new double[] { 0.9D, -0.4D, 0.8D }); - add(new double[] { 2.5D, -0.4D, 0.8D }); - add(new double[] { -0.5D, 1.5D, 0.0D }); - } - }, 2, true), - SkookTender(EntityTenderSkookTender.class, new ModelSkookumTender(), "skookumtender", false, new float[] {-0.00F, 0.0F, 0F}, new float[] { 0F, 0F, 180F }, null, "", 0, null, "", null, 0, false), - EF1(EntityLocoElectricBapEF1.class, new ModelEF1(), "ef1_", true,new float[] {-1.60F, 0.1875F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - EF1B(EntityLocoElectricBapEF1B.class, new ModelEF1B(), "ef1b_", true,new float[] {-1.15635F, 0.1875F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - EP1A(EntityLocoElectricBapEP1A.class, new ModelEP1A(), "ep1a_", true,new float[] {-1.60F, 0.1875F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - SD9(EntityLocoDieselBapSD9.class, new ModelSD9(), "SD9_", true,new float[] {-1.6F,0.155F, 0F}, new float[] { 0F, 180F, 180F }, null, "smoke", 3, new ArrayList() { - { - //add(new double[]{0.8D, 1.4D, 0.0D}); - //add(new double[]{1.6D, 1.4D, 0.0D}); - } - }, "", null, 0, false), - SD40dash2(EntityLocoDieselBapSD40dash2.class, new ModelSD40dash2(), "sd40_", true,new float[] {-1.9F, 0.155F, 0F}, new float[] { 0F, 180F, 180F }, null, "smoke", 6, new ArrayList() { - { - //add(new double[]{2.3D, 1.5D, 0.0D}); - } - }, "", null, 0, false), - WWCP40FootBox(EntityFreightWWCP40FootBox.class, new ModelWWCP40FootBox(),"40ft_Boxcar_", true, new float[]{0F, 0.1875F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - //HuskyStackWellcar(EntityFreightBapHuskyStack.class, new ModelHuskyStack(), "huskystack_", true, new float[]{0F, 0.15F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - U23B( EntityLocoDieselBapU23B.class, new ModelU23B(), "U23B_", true,new float[] {-0F, -0.0F, 0F}, null, null, "smoke", 4, new ArrayList() { - { }}, "", null, 0, false), - U18B( EntityLocoDieselBapU18B.class, new ModelU18B(), "U18B_", true,new float[] {-0F, -0.0F, 0F}, null, null, "smoke", 4, new ArrayList() { - { }}, "", null, 0, false), - hicube60foot(EntityFreightBaphicube60foot.class, new Modelhicube60foot(),"hicube60_", true, new float[]{0F, 0.155F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - freightBNSFGon(EntityFreightBNSFGon.class, new ModelBNSFGon(), "BNSFMillGon_", true, new float[] { 0.0F, 0.0F, 0.0F }, null, null, "", 0, null, "", null, 0, false), - locoILMA(EntityLocoElectricILMA.class, new ModelILMA(), "ILMA_", true, new float[] { 0.0F, 0.15F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - locoILMB(EntityLocoElectricILMB.class, new ModelILMB(), "ILMB_", true, new float[] { 0.0F, 0.15F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - Feve3300Front(EntityLocoElectricFeve3300.class, new Modelfeve3300front(), "feve3300_", true, new float[] { -1.8F, 0.18F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - Feve3300Rear(EntityPassengerFeve3300.class, new Modelfeve3300rear(), "feve3300_", true, new float[] { -0.0F, 0.18F, 0.0F }, new float[] { 0F, 0F, 180F }, null, "", 0, null, "", null, 0, false), - HH660( EntityLocoDieselBapHH660.class, new ModelHH660(), "hh600_", true,new float[] {-1F, -0.1F, 0F}, new float[] { 0F, 180F, 180F }, null, "smoke", 4, new ArrayList() { - { - add(new double[]{2.0D, 1.35D, 0D}); - } - }, "", null, 0, false), - Krautt(EntityLocoDieselBapKrautt.class, new ModelKrautt(), "KM_ML4000_", true,new float[] {0F, 0.0F, 0F}, new float[] { 0F, 180F, 180F }, null, "smoke", 6, new ArrayList() { - { }}, "", null, 0, false), - BoxMotor(EntityLocoElectricBoxMotor.class, new boxmotor(), "BoxMotorTexture", false, new float[] { -1.8F, 0.1F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - Hopper5201(EntityFreightBapHopper5201.class, new ModelHopper5201(), "5201_", true, new float[] { -0F,0.0F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - Hopper6260(EntityFreightBapHopper6260.class, new ModelHopper6260(), "6260_", true, new float[] { -0F,0.0F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - Skeleton(EntityFreightBapSkeletonLogCar.class, new ModelSkeletonLogCar(), "SkeletonLogCar_", true, new float[] { 0.0F, -0.0F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - Shay3Truck(EntityLocoSteamShay3Truck.class, new ModelShay3Truck(), "3truckShay_", true,new float[] {0F, 0.0F, 0F}, new float[] { 0F, 180F, 180F }, null, "largesmoke", 4, new ArrayList() { - { - add(new double[] { 2.15D, 1.3D, -0.17D });//1.1D - } - }, "explode", new ArrayList() { - { - add(new double[] { 0.9D, -0.4D, 0.6D }); - //add(new double[] { 0.6D, 1.1D, 0.0D }); - } - }, 2, true), - Shay3TruckTender(EntityTenderShay3Truck.class, new ModelShay3TruckTender(), "3truckShay_", true, new float[] { 0.0F, 0.0F, 0.0F }, new float[] { 0F, 0F, 180F }, null, "", 0, null, "", null, 0, false), - Dash840B( EntityLocoDieselBapDash840B.class, new ModelDash840B(), "dash8_40b_", true,new float[] {-0F, -0.0F, 0F}, null, null, "smoke", 4, new ArrayList() { - { }}, "", null, 0, false), - Class44(EntityLocoDieselClass44.class, new ModelClass44(), "Class44_", true, new float[] { 0F, 0.0F, 0.0F }, new float[] { 0F, 90F, 180F }, null, "largesmoke", 1, new ArrayList() { - { - add(new double[]{2.3D, 1.6D, 0D}); - } - }, "", null, 0, false), - EU07(EntityLocoElectricEU07.class, new EU07Modernised(), "EU07_", true, new float[] { -0F, 0.00F, 0.0F }, new float[] { 0F, 0F, 180F }, new float[]{0.9f,0.9f,0.9f}, "",0,null, "", null, 0, false), - SW1( EntityLocoDieselBapSW1.class, new ModelSW1(), "sw1_", true,new float[] {-0.0F, 0.0F, 0F}, new float[] { 0F, 180F, 180F }, null, "smoke", 3, new ArrayList() {{ }}, "", null, 0, false), - SW1500( EntityLocoDieselBapSW1500.class, new ModelSW1500(), "sw1500_", true,new float[] {-0.0F, 0.0F, 0F}, new float[] { 0F, 180F, 180F }, null, "smoke", 3, new ArrayList() {{ }}, "", null, 0, false), - GM6C(EntityLocoElectricBapGM6C.class, new ModelGM6C(), "GM6C_demo", false,new float[] {-0.0F, 0.0F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - Dash840C( EntityLocoDieselBapDash840C.class, new ModelDash840C(), "dash8_40c_", true,new float[] {-0F, -0.0F, 0F}, null, null, "smoke", 4, new ArrayList() { - { }}, "", null, 0, false), - SW1200( EntityLocoDieselBapSW1200.class, new ModelSW1200(), "sw1200_", true,new float[] {-0.0F, 0.0F, 0F}, new float[] { 0F, 180F, 180F }, null, "smoke", 3, new ArrayList() {{ }}, "", null, 0, false), - RSD15( EntityLocoDieselBapRSD15.class, new ModelRSD15(), "RSD15_", true,new float[] {-0.0F, 0.0F, 0F}, new float[] { 0F, 180F, 180F }, null, "smoke", 6, new ArrayList() {{ }}, "", null, 0, false), - PSBaggage(EntityFreightPS73Baggage.class, new ModelPS73Baggage(), "PS_Baggage_", true, new float[] { 0F, 0.15F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - ES44( EntityLocoDieselBapES44.class, new ModelES44(), "es44_", true,new float[] {-2.2F, 0.15F, 0F}, new float[] { 0F, 180F, 180F }, null, "smoke", 5, new ArrayList() { - { - add(new double[]{1.0D, 1.4D, 0.0D}); - - } - }, "", null, 0, false), - Dash9_44CW( EntityLocoDieselBapDash9_44CW.class, new ModelDash9_44CW(), "d9-44cw_", true,new float[] {-2.2F, 0.15F, 0F}, new float[] { 0F, 180F, 180F }, null, "smoke", 5, new ArrayList() { - { - - } - }, "", null, 0, false), - SD70Mac( EntityLocoDieselBapSD70Mac.class, new ModelSD70Mac(), "sd70mac_", true,new float[] {-2.1F, 0.15F, 0F}, new float[] { 0F, 180F, 180F }, null, "smoke", 5, new ArrayList() { - - { - add(new double[]{2.35D, 1.5D, 0.0D}); - } - }, "", null, 0, false), - Dash840BB( EntityLocoDieselBapDash840BB.class, new ModelDash840BB(), "dash8_40b_b_", true,new float[] {-0F, -0.0F, 0F}, null, null, "smoke", 4, new ArrayList() { - { }}, "", null, 0, false), - Dash840BW( EntityLocoDieselBapDash840BW.class, new ModelDash840BW(), "dash8_40bw_", true,new float[] {-0F, -0.0F, 0F}, null, null, "smoke", 4, new ArrayList() { - { }}, "", null, 0, false), - PSBaggage85(EntityFreightPS85Baggage.class, new ModelPS85Baggage(), "PS_lightweight_85_baggage_", true, new float[] { 0F, 0.15F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - Reefer64(EntityFreightBapReefer64Foot.class, new ModelReefer64Foot(),"reefer_64_", true, new float[]{0F, 0.155F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - DH643( EntityLocoDieselBapDH643.class, new ModelDH643(), "alco_dh423_not_dumb", false,new float[] {-0.0F, 0.0F, 0F}, new float[] { 0F, 180F, 180F }, null, "smoke", 6, new ArrayList() {{ }}, "", null, 0, false), - CF7( EntityLocoDieselBapCF7.class, new ModelCF7Angle(), "CF7_Angle_", true,new float[] {-0F, -0.0F, 0F}, new float[] { 0F, 180F, 180F }, null, "smoke", 6, new ArrayList() { - { } - }, "", null, 0, false), - CF7round( EntityLocoDieselBapCF7round.class, new ModelCF7round(), "CF7_Round_", true,new float[] {-0F, -0.0F, 0F}, new float[] { 0F, 180F, 180F }, null, "smoke", 6, new ArrayList() { - { } - }, "", null, 0, false), - alcoS2( EntityLocoDieselBapAlcoS2.class, new ModelAlcoS2(), "alcos2_", true,new float[] {0f, 0f, 0f}, new float[] { 0F, 180F, 180F }, null, "smoke", 5, new ArrayList() { - { - add(new double[]{0.7D, 1.3D, -0.18D}); - } - }, "", null, 0, false), - NRE3gs21b( EntityLocoDieselBapNRE3gs21b.class, new ModelNRE3gs21b(), "3gs21b_", true,new float[] {-1.5F, 0.155F, 0F}, new float[] { 0F, 180F, 180F }, null, "smoke", 3, new ArrayList() { - { - add(new double[]{0.15D, 1.3D, 0.0D}); //farthest from cab - add(new double[]{1.05D, 1.3D, 0.0D}); //middle - add(new double[]{2.0D, 1.3D, 0.0D}); // closest to cab - } - }, "", null, 0, false), - Beep( EntityLocoDieselBapBeep.class, new ModelBeep(), "atsfbeep", false,new float[] {-0F, 0.0F, 0F}, new float[] { 0F, 180F, 180F }, null, "smoke", 4, new ArrayList() { - { - add(new double[]{1.45D, 1.25D, 0.0D}); - add(new double[]{1.65D, 1.25D, 0.0D}); - add(new double[]{1.05D, 1.25D, 0.0D}); - add(new double[]{1.25D, 1.25D, 0.0D}); - } - }, "", null, 0, false), - GP38dash9W( EntityLocoDieselBapGP38dash9W.class, new ModelGP38dash9W(), "GP38dash9W_Green", false,new float[] {-1.5F, 0.155F, 0F}, new float[] { 0F, 180F, 180F }, null, "smoke", 3, new ArrayList() { - { } - }, "", null, 0, false), - class158motor(EntityLocoDieselClass158.class, new ModelClass158(), "Class_158_", true, new float[] { -1.85F, -0.45F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "smoke", 2, new ArrayList() { - { } - }, "", null, 0, false), - class158car(EntityClass158Coach.class, new ModelClass158Middle(), "Class_158_", true, new float[] { 0.5F, -0.45F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - //HBC1C(EntityCabooseBapHBC1C.class, new ModelHBC1C(),"HBC1C_", true, null, null, null, "", 0, null, "", null, 0, false), - DRGWCaboose(EntityCabooseBapDRGW.class, new ModelDRGW01400Caboose(),"BAP_DRGW_01400_", true, null, null, null, "", 0, null, "", null, 0, false), - passengerPSSleeper565(EntityPassengerPSSleeper565.class, new ModelPSSleeper565(), "PS_lightweight_5-6-5_sleeper_", true, new float[] { 0F, 0.15F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - passengerPSSleeper565DRGW(EntityPassengerPSSleeper565DRGW.class, new ModelPSSleeper565DRGW(), "PS_DRGW_lightweight_5-6-5_sleeper", false, new float[] { 0F, 0.15F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - AlcoPA1( EntityLocoDieselAlcoPA1.class, new ModelAlcoPA(), "AlcoPA1_", true,new float[] {-1.6F, 0.15F, 0F}, new float[] { 0F, 180F, 180F }, new float[] { 1F, 1.0F, 1F }, "smoke", 3, new ArrayList() { - {} - }, "", null, 0, false), - AlcoPB1( EntityLocoDieselAlcoPB1.class, new ModelAlcoPB(), "AlcoPB1_", true,new float[] {-1.55F, 0.15F, 0F}, new float[] { 0F, 180F, 180F }, new float[] { 1F, 1.0F, 1F }, "smoke", 3, new ArrayList() { - {} - }, "", null, 0, false), - EMDE8A( EntityLocoDieselEMDE8A.class, new ModelEMDE8A(), "EMDE8A_", true,new float[] {-1.85F, 0.15F, 0F}, new float[] { 0F, 180F, 180F }, new float[] { 1F, 1.0F, 1F }, "smoke", 3, new ArrayList() { - {} - }, "", null, 0, false), - - //tcce4 new stuff - SNCB_M6( EntityPassengerSNCB_M6.class, new ModelSNCB_M6(),"SNCB_M6_", true, new float[] {-2.0f, .095F, 0F}, new float[] { 0f, 180F, 180F },null, "", 0, null, "", null, 0, false), - SNCB_M6_TAIL( EntityPassengerSNCB_M6_TAIL.class, new ModelSNCB_M6_TAIL(),"SNCB_M6_Tail_", true, new float[] {-2.30F, 0.04f, 0F}, new float[] { 0F, 0, 180F },null, "", 0, null, "", null, 0, false), - - Class153Engine( EntityLocoDieselClass153.class, new ModelClass153(), "class_153_", true, new float[] {-2.1F, 0.18F, 0F}, new float[] {0F, 180F, 180F }, null, "smoke", 3, new ArrayList() {{}}, "", null, 0, false), - Class153Coach( EntityPassengerClass153.class, new ModelClass153(), "class_153_", true, new float[] {0F, 0.18F, 0F}, new float[] {0F, 180F, 180F }, null, "",0 , null, "", null, 0, false), - Class156Engine( EntityLocoDieselClass156.class, new ModelClass156(), "Class_156_", true, new float[] {-1.3F, -0.57F, 0F}, new float[] {0F, 180F, 180F}, null, "smoke",3, new ArrayList() {{}}, "", null, 0, false ), - Class47(EntityLocoDieselClass47.class, new ModelClass47(), "Class_47_", true, new float[] {-4f, 0f, 0f}, new float[] {0f, 180f, 180f}, null, "smoke", 3, new ArrayList() {{}}, "", null, 0, false), - Class319Engine(EntityElectricClass319.class, new ModelClass319Engine(), "Br_319_", true,new float[] {-1.65F, 0.15F, 0F}, new float[] { 0F, 180F, 180F }, null, "smoke", 3, new ArrayList(), "", null, 0, false), - Class319Middle( EntityPassengerClass319Middle.class, new ModelClass319Middle(),"Br_319_", true, new float[] {0F, 0.15F, 0F}, new float[] { 0F, 180F, 180F },null, "", 0, null, "", null, 0, false), - Class319Panto( EntityPassengerClass319Panto.class, new ModelClass319Panto(),"Br_319_", true, new float[] {0F, 0.15F, 0F}, new float[] { 0F, 180F, 180F },null, "", 0, null, "", null, 0, false), - Class319Tail( EntityPassengerClass319Tail.class, new ModelClass319Engine(), "Br_319_", true, new float[] {0F, 0.15F, 0F}, new float[] { 0F, 0F, 180F },null, "", 0, null, "", null, 0, false), - PSRPOPM(EntityFreightPSRPOPM.class, new ModelPSRPOPM(), "PSRPOPM_", true, new float[] { 0F, 0.15F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - PSRPO(EntityFreightPSRPO.class, new ModelPSRPO(), "PSRPO_", true, new float[] { 0F, 0.15F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - KVB_2300(EntityElectricKVB_2300.class, new ModelKVB_2300(), "kvb_2300_", true,new float[] {-1.25F, 0.15F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - KVB_2300_B( EntityPassengerKVB_2300_B.class, new ModelKVB_2300_B(),"kvb_2300_", true, new float[] {-1.25F, 0.15F, 0F}, new float[] { 0F, 180F, 180F },null, "", 0, null, "", null, 0, false), - //tcce5 new stuff (its mixed around in the file tbh) - BR_MK2F_Coach( EntityPassengerBR_MK2F_Coach.class, new ModelBR_MK2F_Coach(), "BR_Mk2f_", true, new float[] {0.485F,0F,0F}, new float[] {0F, 180F, 180F}, null, "",0,null, "", null, 0, false), - BR_MK2F_BSO(EntityPassengerBR_MK2F_BSO.class, new ModelBR_MK2F_BSO(), "BR_Mk2f_BSO_", true, new float[] {0.485F,0F,0F}, new float[] {0F, 180F, 180F}, null, "", 0 , null, "", null, 0, false), - BR_MK2F_DBSO(EntityElectricBR_MK2F_DBSO.class, new ModelBR_MK2F_DBSO(), "BR_Mk2f_DBSO_", true, new float[] {-1.5F, 0F, 0F},new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - BR_MK3_Buffet( EntityPassengerBR_MK3_Buffet.class, new ModelBR_MK3_Buffet(),"BR_Mk3_Buffet_", true, new float[] {0.15F, 0F, 0F}, new float[] { 0F, 180F, 180F },null, "", 0, null, "", null, 0, false), - BR_MK3_Coach( EntityPassengerBR_MK3_Coach.class, new ModelBR_MK3_Coach(),"BR_Mk3_Coach_", true, new float[] {0.15F, 0F, 0F}, new float[] { 0F, 180F, 180F },null, "", 0, null, "", null, 0, false), - BR_MK3a_Coach( EntityPassengerBR_MK3a_Coach.class, new ModelBR_Mk3a_Coach(),"BR_Mk3a_", true, new float[] {0.15F, 0F, 0F}, new float[] { 0F, 180F, 180F },null, "", 0, null, "", null, 0, false), - BR_MK3_Pantograph( EntityPassengerBR_MK3_Pantograph.class, new ModelBR_MK3_Pantograph(),"BR_Mk3_Pantograph_", true, new float[] {0.15F, 0F, 0F}, new float[] { 0F, 180F, 180F },null, "", 0, null, "", null, 0, false), - BR_MK3_DVT(EntityElectricBR_MK3_DVT.class, new ModelBR_MK3_DVT(), "BR_Mk3_DVT_", true, new float[] {-1.5F, 0F, 0F},new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - BR_MK4_DVT( EntityElectricBR_MK4_DVT.class, new ModelBR_MK4_DVT(),"BR_Mk4_DVT_", true, new float[] {-1.9F, 0F, 0F}, new float[] { 0F, 180F, 180F },null, "", 0, null, "", null, 0, false), - BR_MK4_Coach( EntityPassengerBR_MK4_Coach.class, new ModelBR_MK4_Coach(),"BR_Mk4_", true, new float[] {0.2F, 0F, 0F}, new float[] { 0F, 180F, 180F },null, "", 0, null, "", null, 0, false), - BR_MK4_Buffet( EntityPassengerBR_MK4_Buffet.class, new ModelBR_MK4_Buffet(),"BR_Mk4_Buffet_", true, new float[] {0.22F, 0F, 0F}, new float[] { 0F, 180F, 180F },null, "", 0, null, "", null, 0, false), - Class43( EntityLocoDieselClass43.class, new ModelClass43(),"Class_43_", true, new float[] {-0.65F, 0F, 0F}, new float[] { 0F, 180F, 180F },null, "", 0, null, "", null, 0, false), - Class90( EntityElectricClass90.class, new ModelClass90(),"Class_90_", true, new float[] {-0.55F, 0F, 0F}, new float[] { 0F, 180F, 180F },null, "", 0, null, "", null, 0, false), - Class91( EntityElectricClass91.class, new ModelClass91(),"Class_91_", true, new float[] {-1.2F, 0.05F, 0F}, new float[] { 0F, 180F, 180F },null, "", 0, null, "", null, 0, false), - Class321( EntityElectricClass321.class, new ModelClass321(),"Class_321_", true, new float[] {-1.2F, -0.455F, 0F}, new float[] { 0F, 180F, 180F },null, "", 0, null, "", null, 0, false), - Class321Panto( EntityPassengerClass321Panto.class, new ModelClass321_Panto(),"Class_321_Panto_Car_", true, new float[] {0.6F, -0.455F, 0F}, new float[] { 0F, 180F, 180F },null, "", 0, null, "", null, 0, false), - Class321Coach( EntityPassengerClass321Coach.class, new ModelClass321Coach(),"Class_321_Trailer_Car_", true, new float[] {0.6F, -0.455F, 0F}, new float[] { 0F, 180F, 180F },null, "", 0, null, "", null, 0, false), - passengerMinetrain(EntityPassengerMinetrain.class, new ModelPassengerMinetrain(), "minetrain", false, new float[] { 0.0F, -0.47F, 0.0F }, null, null, "", 0, null, "", null, 0, false), - asteri(EntityLocoSteamasteri.class, new Modelasteri(), "asteri", false, new float[] {-1.0F, 0.16F, 0F}, new float[] { 5F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - //TCCE6 - C415H( EntityLocoDieselC415H.class, new ModelC415H(), "C415h_", true,new float[] {0F, 0.0F, 0F}, new float[] { 0F, 180F, 180F }, null, "smoke", 4, new ArrayList() { - { } - }, "", null, 0, false), - C415S( EntityLocoDieselC415S.class, new ModelC415S(), "C415s_", true,new float[] {0F, 0.0F, 0F}, new float[] { 0F, 180F, 180F }, null, "smoke", 4, new ArrayList() { - { } - }, "", null, 0, false), - C415L( EntityLocoDieselC415L.class, new ModelC415L(), "C415l_", true,new float[] {-1.2F, 0.105F, 0F}, new float[] { 0F, 180F, 180F }, null, "smoke", 4, new ArrayList() { - { - add(new double[]{1.85D, 1.55D, 0.0D}); - } - }, "", null, 0, false), - GE25Ton( EntityLocoDieselGE25Ton.class, new ModelGE25Ton(), "25ton_", true,new float[] {0.0F, 0.15F, 0F}, new float[] { 0F, 180F, 180F }, null, "smoke", 3, new ArrayList() { - { - add(new double[]{0.6D, 1.1D, 0.0D}); - } - }, "", null, 0, false), - GSI60FootBulkhead(EntityFreightGSI60FootBulkhead.class, new ModelGSI60FootBulkheadFlat(),"gsi_60bulk_", true, new float[]{0F, 0.0F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - GSC60FootFlat(EntityFreightGSC60FootFlat.class, new ModelGSI60FootBulkheadFlat(),"gsc_60flat_", true, new float[]{0F, 0.0F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - FMH24_66( EntityLocoDieselFMH24_66.class, new ModelFMH24_66(), "FM_H24-66_", true,new float[] {-1.9F, 0.15F, 0F}, new float[] { 0F, 180F, 180F }, null, "smoke", 4, new ArrayList() { - { - //add(new double[]{1.85D, 1.55D, 0.0D}); - } - }, "", null, 0, false), - FMH24_66L( EntityLocoDieselFMH24_66L.class, new ModelFMH24_66L(), "FM_H24-66_L_", true,new float[] {-1.9F, 0.15F, 0F}, new float[] { 0F, 180F, 180F }, null, "smoke", 3, new ArrayList() { - {} - }, "", null, 0, false), - EMDE8B( EntityLocoDieselEMDE8B.class, new ModelEMDE8B(), "EMDE8B_", true,new float[] {-1.75F, 0.15F, 0F}, new float[] { 0F, 180F, 180F }, new float[] { 1F, 1.0F, 1F }, "smoke", 3, new ArrayList() { - {} - }, "", null, 0, false), - passengerPSLunchCounter_Lounge(EntityPassengerPSLunchCounter_Lounge.class, new ModelPSLunchCounter_Lounge(), "PS_lightweight_LunchCounter_Lounge_", true, new float[] { 0F, 0.15F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - passengerPS30SeatParlor(EntityPassengerPS30SeatParlor.class, new ModelPS30SeatParlor(), "PS_lightweight_30SeatParlor_", true, new float[] { 0F, 0.15F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - passengerPS54SeatCoach_Lounge(EntityPassengerPS54SeatCoach_Lounge.class, new ModelPS54SeatCoach_Lounge(), "PS_lightweight_54SeatCoach_Lounge_", true, new float[] { 0F, 0.15F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - passengerPS58SeatCoach_Observation(EntityPassengerPS58SeatCoach_Observation.class, new ModelPS58SeatCoach_Observation(), "PS_lightweight_58SeatCoach_Observation_", true, new float[] { 0F, 0.15F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - passengerPSBM56SeatCoach(EntityPassengerPSBM56SeatCoach.class, new ModelPSBM56SeatCoach(), "PS_lightweight_BM56SeatCoach_", true, new float[] { 0F, 0.15F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - passengerPSBMCombine(EntityPassengerPSBMCombine.class, new ModelPSBMCombine(), "PS_lightweight_BMCombine_", true, new float[] { 0F, 0.15F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - passengerPSBMDiner_Lounge(EntityPassengerPSBMDiner_Lounge.class, new ModelPSBMDiner_Lounge(), "PS_lightweight_BMDiner_Lounge_", true, new float[] { 0F, 0.15F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - EMDE7A( EntityLocoDieselEMDE7A.class, new ModelEMDE7A(), "EMDE7A_", true,new float[] {-1.85F, 0.15F, 0F}, new float[] { 0F, 180F, 180F }, new float[] { 1F, 1.0F, 1F }, "smoke", 3, new ArrayList() { - {} - }, "", null, 0, false), - EMDE7B( EntityLocoDieselEMDE7B.class, new ModelEMDE7B(), "EMDE7B_", true,new float[] {-1.75F, 0.15F, 0F}, new float[] { 0F, 180F, 180F }, new float[] { 1F, 1.0F, 1F }, "smoke", 3, new ArrayList() { - {} - }, "", null, 0, false), - freight5Plank(EntityFreight5Plank.class, new Model5Plank(), "5_plank_", true, new float[] {0f, 0.15f, 0f}, new float[] {0f, 180f, 180f}, null, "", 0, null, "", null, 0, false ), - NMBS_HLE_18( EntityLocoElectricNMBS_HLE_18.class, new ModelNMBS_HLE_18(), "hle19_", true, new float[]{-1.5F,0.05F,0}, new float[] {0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), - BR_Mk_1_BSO(EntityPassengerBR_Mk1_BSO.class, new ModelBR_Mk1_BSO(),"BR_Mk1_BSO_", true, new float[]{0,0,0,}, new float[] {0,180,180}, null, "", 0, null, "", null, 0, false), - BR_Mk_1_TSO(EntityPassengerBR_Mk1_TSO.class, new ModelBR_Mk1_TSO(),"BR_Mk1_TSO_", true, new float[]{0,0,0,}, new float[] {0,180,180}, null, "", 0, null, "", null, 0, false), - BR_Mk_1_Buffet(EntityPassengerBR_Mk1_Buffet.class, new ModelBR_Mk1_Buffet(),"BR_Mk1_Buffet_", true, new float[]{0,0,0,}, new float[] {0,180,180}, null, "", 0, null, "", null, 0, false), - BR_Mk_1_TPO_Stowage(EntityFreightBR_Mk1_TPO_Stowage.class, new ModelBR_Mk1_TPO_Stowage(), "BR_Mk1_TPO_", true, new float[] {0F,0F,0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - BR_Mk_1_BG(EntityPassengerBR_Mk1_BG.class, new ModelBR_Mk1_BG(),"BR_Mk1_BG_", true, new float[]{0,0,0}, new float[] {0, 180, 180}, null, "", 0, null, "", null, 0, false), - Class175(EntityLocoDieselClass175.class, new ModelClass175(), "Class_175_", true, new float[]{-2.25f,-0.127f,0}, new float[] {0, 180, 180}, null , "smoke", 1, new ArrayList() {{}}, "", null, 0, false), - Class175Coach(EntityPassengerClass175Coach.class, new ModelClass175Coach(), "Class_175_Middle_Car_", true, new float[]{0, -0.127f, 0}, new float[] {0, 180F, 180F}, null, "", 0, null, "", null,0, false), - FMH16_66( EntityLocoDieselFMH16_66.class, new ModelFMH16_66(), "FM_H16-66_", true,new float[] {-1.7F, 0.15F, 0F}, new float[] { 0F, 180F, 180F }, null, "smoke", 4, new ArrayList() { - { - //add(new double[]{1.85D, 1.55D, 0.0D}); - } - }, "", null, 0, false), - ACFGNRPO_30(EntityPassengerACFGNRPO_30.class, new ModelACFGNRPO_30(), "AC&F_lightweight_GNRPO30_", true, new float[] { 0F, 0.15F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - ACFGN60SeatCoach(EntityPassengerACFGN60SeatCoach.class, new ModelACFGN60SeatCoach(), "AC&F_lightweight_GN60SeatCoach_", true, new float[] { 0F, 0.15F, 0.0F }, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - FGV4300Motor(EntityLocoElectricFGV4300.class, new ModelFGV4300Motor(), "4300_motorcar", false, new float[] {-1.3F, -0.03F, 0F}, new float[]{0F,180F,180F}, null, "", 0, null, "", null, 0, false), - FGV4300Coach(EntityPassengerFGV4300Coach.class, new ModelFGV4300Coach(), "4300_middle", false, new float[] {0F, -0.03F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false ), - FGV4300Tail(EntityPassengerFGV4300Tail.class, new ModelFGV4300Tail(), "4300_motorcar", false, new float[] {0F, -0.03F, 0F}, new float[]{0F, 0F, 180F}, null, "", 0, null, "", null, 0, false ), - MetroMadrid3000Loco(EntityElectricMetro3000Motor.class, new ModelMetroMadrid3000Loco(), "MM3000_", true, new float[] {-1.5F, 0.2F, 0F}, new float[]{0F,180F,180F}, null, "", 0, null, "", null, 0, false), - PassengerMetro3000(EntityPassengerMetro3000.class, new ModelMetroMadrid3000Passenger(), "MM3000_", true, new float[] {0F, 0.2F, 0F}, new float[] {0F,180F,180F}, null, "", 0, null, "", null , 0, false), - PassengerMetro3000Tail(EntityPassengerMetro3000Tail.class, new ModelMetroMadrid3000Loco(), "MM3000_", true, new float[] {0F, 0.2F, 0F}, new float[] {0F,0F,180F}, null, "", 0, null, "", null , 0, false), - CQ310(EntityElectricCQ310Loco.class, new Modelcq310loco(), "CQ_310_", true, new float[] {-1.5F, 0.2F, 0F}, new float[] {0F,180F,180F}, null, "", 0, null, "", null , 0, false), - CQ310Passenger(EntityPassengerCQ310Passenger.class, new Modelcq310loco(), "CQ_310_", true, new float[] {0F, 0.2F, 0F}, new float[] {0F,0F,180F}, null, "", 0, null, "", null , 0, false), - Class162Engine( EntityElectricClass162.class, new ModelClass162Engine(),"Class_162_engine_", true, new float[] {-2F, 0.155F, 0F}, new float[] { 0F, 180F, 180F },null, "", 0, null, "", null, 0, false), - Class162CoachB( EntityPassengerClass162CoachB.class, new ModelClass162CoachB(),"Class_162_Coach_B_", true, new float[] {0F, 0.155F, 0F}, new float[] { 0F, 180F, 180F },null, "", 0, null, "", null, 0, false), - Class162CoachA( EntityPassengerClass162CoachA.class, new ModelClass162CoachA(),"Class_162_Coach_A_", true, new float[] {0F, 0.155F, 0F}, new float[] { 0F, 180F, 180F },null, "", 0, null, "", null, 0, false), - Class162Tail(EntityPassengerClass162Tail.class, new ModelClass162Engine(), "Class_162_engine_", true, new float[] {0F, 0.155F, 0F}, new float[] { 0F, 180F, 180F },null, "", 0, null, "", null, 0, false), - Class34(EntityLocoDieselClass34.class, new ModelClass34(), "class_34_", true, new float[] {-2.75F, 0.17F, 0F}, new float[] {0F,180F,180F}, null, "smoke", 3, new ArrayList() {{}}, "", null, 0, false), - tankerUK(EntityTankerUK.class, new ModelTankerUK(), "Tanker_UK_", true, new float[] {0F,0.155F,0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - MetalTram(EntityLocoElectricMetalTram.class, new ModelMetalTram(), "Metal_Tram_", true, new float[]{ -1F, 0.18F, 0.0F}, new float[]{ 0.0F, 180F, 180F} , null, "", 0, null, "", null, 0 , false ), - MetalTramCoach(EntityPassengerMetalTramCoach.class, new ModelMetalTramCoach(), "Metal_Tram_", true, new float[]{ 0.0F, 0.18F, 0.0F}, new float[]{ 0.0F, 180F, 180F} , null, "", 0, null, "", null, 0 , false ), - HopperUK(EntityFreightHopperUK.class, new ModelHopper_UK(), "Hopper_UK_", true, new float[] {0F,0.1F,0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - B80C_A(EntityElectricB80C_A.class, new ModelB80C_A(), "B80C_", true,new float[] {-1.25F, 0.15F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - B80C_B( EntityPassengerB80C_B.class, new ModelB80C_B(),"B80C_", true, new float[] {-1.25F, 0.15F, 0F}, new float[] { 0F, 180F, 180F },null, "", 0, null, "", null, 0, false), - WoodenTramCoach(EntityPassengerWoodenTramCoach.class, new ModelWoodenTramCoach(), "Wooden_Tram_Coach_", true, new float[]{ 0.0F, 0.18F, 0.0F}, new float[]{ 0.0F, 180F, 180F} , null, "", 0, null, "", null, 0 , false ), - MA100_Loco(EntityElectricMA100_Loco.class, new ModelMA100_Loco(), "MA100_", true,new float[] {-0.95F, 0.16F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - MA100_Tail(EntityPassengerMA100_Tail.class, new ModelMA100_Tail(), "MA100_",true,new float[] {0F, 0.16F, 0F}, new float[] { 0F, 0F, 180F }, null, "", 0, null, "", null, 0, false), - ExpressFreightVan(EntityFreightExpressFreightVan.class, new ModelExpressFreightVan(), "Express_Freight_Van_", true, new float[] {0F,0.1F,0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - Class390Front( EntityElectricClass390.class, new ModelClass390Front(),"Class_390_Front_", true, new float[] {-2.3F, 0F, 0F}, new float[] { 0F, 180F, 180F },null, "", 0, null, "", null, 0, false), - Class390Coach( EntityPassengerClass390Coach.class, new ModelClass390Coach(),"Class_390_Coach_", true, new float[] {0F, 0.F, 0F}, new float[] { 0F, 180F, 180F },null, "", 0, null, "", null, 0, false), - Class390Panto( EntityPassengerClass390Panto.class, new ModelClass390Panto(),"Class_390_Panto_", true, new float[] {0F, 0.F, 0F}, new float[] { 0F, 180F, 180F },null, "", 0, null, "", null, 0, false), - Class121Bubblecar( EntityLocoDieselClass121.class, new ModelClass121(), "bubble_car_", true, new float[] {-2.1F, 0.17F, 0F}, new float[] {0F, 180F, 180F }, null, "smoke", 3, new ArrayList() {{}}, "", null, 0, false), - Class121Trailer( EntityPassengerClass121Trailer.class, new ModelClass121Trailer(),"bubble_car_", true, new float[] {0F, 0.17F, 0F}, new float[] { 0F, 180F, 180F },null, "", 0, null, "", null, 0, false), - Class117( EntityLocoDieselClass117.class, new ModelClass117(), "bubble_car_", true, new float[] {-2.1F, 0.17F, 0F}, new float[] {0F, 180F, 180F }, null, "smoke", 3, new ArrayList() {{}}, "", null, 0, false), - Class117Middle( EntityPassengerClass117Middle.class, new ModelClass117Middle(),"bubble_car_", true, new float[] {0F, 0.17F, 0F}, new float[] { 0F, 180F, 180F },null, "", 0, null, "", null, 0, false), - TipperUK(EntityFreightTipperUK.class, new ModelTipperUK(), "tipper_", true, new float[] {0F,0.1F,0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - ShuntingTenderUK(EntityTenderShuntingTenderUK.class, new ModelShuntingTenderUK(), "shunting_tender_", true, new float[] {0f, 0.15f, 0f}, new float[] {0f, 180f, 180f}, null, "", 0, null, "", null, 0, false ), - BRBrakeVan(EntityCabooseBRBrakeVan.class, new ModelBRBrakeVan(), "br_brake_van_", true, new float[] {0F,0.1F,0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - - //TCCE7 - DuewagT4ER(EntityElectricDuewagT4ER.class, new ModelDuewagT4ER(), "Duewag_T4_", true,new float[] {-1.25F, 0.2F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - DuewagGT6ZRLoco(EntityElectricDuewagGT6ZRLoco.class, new ModelDuewagGT6ZRLoco(), "Duewag_GT6_", true,new float[] {-0.85F, 0.2F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - DuewagGT6ZTail(EntityPassengerDuewagGT6ZRTail.class, new ModelDuewagGT6ZRTail(), "Duewag_GT6_", true,new float[] {-0.85F, 0.2F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - M8CLoco(EntityElectricM8CLoco.class, new ModelM8CLoco(), "M8C_", true,new float[] {-1F, 0.2F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - M8CTail(EntityPassengerM8CTail.class, new ModelM8CTail(), "M8C_", true,new float[] {-1F, 0.2F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - Class416Loco(EntityElectricClass416Loco.class, new ModelClass416Engine(), "Class_205_", true, new float[] {-2F, 0.15F, 0F}, new float[] {0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), - Class416Tail(EntityPassengerClass416Tail.class, new ModelClass416Tail(), "Class_205_", true, new float[] {0f, 0.15f, 0f}, new float[] {0F, 0F, 180F}, null, "", 0, null, "", null, 0, false), - DB420Loco(EntityElectricDB420Loco.class, new ModelDB420End(), "db420_", true,new float[] {-1.5F, 0.16F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - DB420Middle(EntityPassengerDB420Middle.class, new ModelDB420Middle(), "db420_",true,new float[] {0F, 0.16F, 0F}, new float[] { 0F, 0F, 180F }, null, "", 0, null, "", null, 0, false), - DB420Tail(EntityPassengerDB420Tail.class, new ModelDB420End(), "db420_",true,new float[] {-1.5F, 0.16F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - CattleVan(EntityCattleVan.class, new ModelCattleVan(), "cattle_van", false, new float[] { 0F, 0.15F, 0.0F }, new float[]{0F,0F,180F}, null, "", 0, null, "", null, 0, false), - Class401Loco(EntityLocoElectricClass401.class, new ModelClass401Engine(), "2-bil_", true, new float[] {-1.7F, 0.17F, 0F}, new float[] {0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), - Class401Tail(EntityPassengerClass401Tail.class, new ModelClass401tail(), "2-bil_", true, new float[] {0.02F, 0.17F, 0.03F}, new float[] {0F, 0F, 180F}, null, "", 0, null, "", null, 0, false), - passenger10tonBrakeVan(EntityPassenger10tonBrakeVan.class, new Model10tonBrakeVan(), "10ton_brakevan_", true, new float[] { 0F, 0.15F, 0.0F }, new float[]{0F,0F,180F}, null, "", 0, null, "", null, 0, false), - BR_MK2C_Coach( EntityPassengerBR_MK2C_Coach.class, new ModelBR_MK2C_Coach(), "BR_Mk2c_", true, new float[] {0.485F,0F,0F}, new float[] {0F, 180F, 180F}, null, "",0,null, "", null, 0, false), - BR_MK2C_BSO(EntityPassengerBR_MK2C_BSO.class, new ModelBR_MK2C_BSO(), "BR_Mk2c_BSO_", true, new float[] {0.485F,0F,0F}, new float[] {0F, 180F, 180F}, null, "", 0 , null, "", null, 0, false), - Class230Engine(EntityElectricClass230.class, new ModelClass230(), "Class_230_", true,new float[] {-1.3F, 0.16F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - Class230Middle(EntityClass230Middle.class, new ModelClass230Middle(), "Class_230_",true,new float[] {0F, 0.16F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - DuewagGT6ERLoco(EntityElectricDuewagGT6ERLoco.class, new ModelDuewagGT6ERLoco(), "Duewag_GT6ER_", true,new float[] {-0.85F, 0.2F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - DuewagGT6ERTail(EntityPassengerDuewagGT6ERTail.class, new ModelDuewagGT6ERTail(), "Duewag_GT6ER_", true,new float[] {-0.85F, 0.2F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - Mineralwagon(EntityFreightMineralwagon.class, new ModelMineralwagon(), "Mineral_wagon_", true, new float[] {0f, 0.15f, 0f}, new float[] {0f, 180f, 180f}, null, "", 0, null, "", null, 0, false ), - VentilatedVan(EntityFreightVentilatedVan.class, new ModelVentilatedVan(), "Ventilated_van_", true, new float[] {0f, 0.15f, 0f}, new float[] {0f, 180f, 180f}, null, "", 0, null, "", null, 0, false ), - Class143Rear(EntityPassengerClass143.class, new ModelClass143(), "Class143_",true,new float[] {0F, 0.15F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - Class143Middle(EntityPassengerClass143M.class, new ModelClass144(), "Class143_",true,new float[] {0F, 0.15F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - Class374Front( EntityElectricClass374.class, new ModelClass374Front(),"Class_374_Front_", true, new float[] {-2.6F, 0.162F, 0F}, new float[] { 0F, 180F, 180F },null, "", 0, null, "", null, 0, false), - Class374PremierPanto( EntityPassengerClass374PremierPanto.class, new ModelClass374PremierPanto(),"Class_374_Premier_Panto_", true, new float[] {0F, 0.162F, 0F}, new float[] { 0F, 180F, 180F },null, "", 0, null, "", null, 0, false), - Class374StandardPanto( EntityPassengerClass374StandardPanto.class, new ModelClass374StandardPanto(),"Class_374_Standard_Panto_", true, new float[] {0F, 0.162F, 0F}, new float[] { 0F, 180F, 180F },null, "", 0, null, "", null, 0, false), - Class374Buffet( EntityPassengerClass374Buffet.class, new ModelClass374Buffet(),"Class_374_Buffet_", true, new float[] {0F, 0.162F, 0F}, new float[] { 0F, 180F, 180F },null, "", 0, null, "", null, 0, false), - Class387Front( EntityElectricClass387Front.class, new ModelClass387Front(),"Class_387_", true, new float[] {-2F, 0F, 0F}, new float[] { 0F, 180F, 180F },null, "", 0, null, "", null, 0, false), - Class387Coach( EntityPassengerClass387Coach.class, new ModelClass387Coach(),"Class_387_Middle_", true, new float[] {0F, 0F, 0F}, new float[] { 0F, 180F, 180F },null, "", 0, null, "", null, 0, false), - Class387Panto( EntityPassengerClass387Panto.class, new ModelClass387Panto(),"Class_387_Middle_", true, new float[] {0F, 0F, 0F}, new float[] { 0F, 180F, 180F },null, "", 0, null, "", null, 0, false), - Class387Tail( EntityPassengerClass387Tail.class, new ModelClass387Front(),"Class_387_", true, new float[] {0F, 0F, 0F}, new float[] { 0F, 180F, 180F },null, "", 0, null, "", null, 0, false), - Class378Front( EntityElectricClass378Front.class, new ModelClass378Front(),"Class_378_", true, new float[] {-1.9F, 0.2F, 0F}, new float[] { 0F, 180F, 180F },null, "", 0, null, "", null, 0, false), - Class378Middle( EntityPassengerClass378Middle.class, new ModelClass378Middle(),"Class_378_Middle_", true, new float[] {0F, 0.2F, 0F}, new float[] { 0F, 180F, 180F },null, "", 0, null, "", null, 0, false), - Class378Tail( EntityPassengerClass378Tail.class, new ModelClass378Front(),"Class_378_", true, new float[] {0F, 0.2F, 0F}, new float[] { 0F, 180F, 180F },null, "", 0, null, "", null, 0, false), - Class142Front( EntityLocoDieselClass142.class, new ModelClass142(),"Class_142_", true, new float[] {-1.8F, 0.2F, 0F}, new float[] { 0F, 180F, 180F },null, "smoke", 2, new ArrayList() {{}}, "", null, 0, false), - Class142Tail( EntityPassengerClass142Tail.class, new ModelClass142(),"Class_142_", true, new float[] {-0.53F, 0.2F, 0F}, new float[] { 0F, 180F, 180F },null, "", 0, null, "", null, 0, false), - Bagnall( EntityLocoDieselBagnall.class, new ModelBagnall(),"Bagnall_Shunter_0-4-0_", true, new float[] {-0.85F, 0.18F, 0F}, new float[] { 0F, 180F, 180F },null, "smoke", 2, new ArrayList() {{}}, "", null, 0, false), - Class389Front( EntityElectricClass389Front.class, new ModelClass389Front(),"Class_389_", true, new float[] {-2.4F, 0F, 0F}, new float[] { 0F, 180F, 180F },null, "", 0, null, "", null, 0, false), - Class389Middle( EntityPassengerClass389Middle.class, new ModelClass389Middle(),"Class_389_Middle_", true, new float[] {-0.31F, 0F, 0F}, new float[] { 0F, 180F, 180F },null, "", 0, null, "", null, 0, false), - Class389Tail( EntityPassengerClass389Tail.class, new ModelClass389Front(),"Class_389_", true, new float[] {-0.31F, 0F, 0F}, new float[] { 0F, 180F, 180F },null, "", 0, null, "", null, 0, false), - Class442DTS( EntityElectricClass442DTS.class, new ModelClass442DTS(),"class_442_DTS_", true, new float[] {-2F, 0F, 0F}, new float[] { 0F, 180F, 180F },null, "", 0, null, "", null, 0, false), - Class442TS( EntityPassengerClass442TS.class, new ModelClass442TS(),"class_442_TS_", true, new float[] {0.15F, 0F, 0F}, new float[] { 0F, 180F, 180F },null, "", 0, null, "", null, 0, false), - Class442MBLS( EntityPassengerClass442MBLS.class, new ModelClass442MBLS(),"class_442_MBLS_", true, new float[] {0.15F, 0F, 0F}, new float[] { 0F, 180F, 180F },null, "", 0, null, "", null, 0, false), - Class205loco( EntityLocoDieselClass205loco.class, new ModelClass205(), "Class_205_", true, new float[] {-2F, 0.15F, 0F}, new float[] {0F, 180F, 180F}, null, "smoke", 3, new ArrayList() {{}}, "", null, 0, false), - Class205tso( EntityPassengerClass205tso.class, new ModelClass205tso(), "Class_205_", true, new float[] {0f, 0.15f, 0f}, new float[] {0F, 180F, 180F}, null, "", 0,null, "", null, 0, false), - Class205tail( EntityPassengerClass205tail.class, new ModelClass205tail(), "Class_205_", true, new float[] {0f, 0.15f, 0f}, new float[] {0F, 180F, 180F}, null, "", 0,null, "", null, 0, false), - M8DNF1Loco(EntityElectricM8DNF1Loco.class, new ModelM8DNF1End(), "m8d_nf1_", true,new float[] {-0.65F, 0.2F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - M8DNF1Middlelong(EntityPassengerM8DNF1MiddleLong.class, new ModelM8DNF1Middle1(), "m8d_nf1_", true,new float[] {0F, 0.2F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - M8DNF1Middleshort(EntityPassengerM8DNF1MiddleShort.class, new ModelM8DNF1Middle2(), "m8d_nf1_", true,new float[] {0F, 0.2F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - M8DNF1Tail(EntityPassengerM8DNF1Tail.class, new ModelM8DNF1End(), "m8d_nf1_", true,new float[] {-0.65F, 0.2F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), - ; - - private Class entityClass; - private ModelBase model; - private String texture; - private boolean multiTexture; - private float[] trans; - private float[] rotate; - private float[] scale; - private String smokeType; - private ArrayList smokeFX; - private String explosionType; - private ArrayList explosionFX; - private int smokeIterations; - private int explosionFXIterations; - private boolean hasSmokeOnSlopes; - - /** - * Defines the render @param for a RollingStock - * - * @param model ModelBase - * @param texture String - * @param multiTexture boolean - * @param trans float[] - * @param rotate float[] - * @param scale float[] - * @param smokeType String - * @param smokeFX ArrayList - * @param explosionType String - * @param explosionFX ArrayList - * @see RenderRollingStock - */ - RenderEnum(Class entityClass, ModelBase model, String texture, boolean multiTexture, float[] trans, float[] rotate, float[] scale, String smokeType, int smokeIterations, ArrayList smokeFX, String explosionType, ArrayList explosionFX, int explosionFXIterations, boolean hasSmokeOnSlopes) { - this.entityClass = entityClass; - this.model = model; - this.texture = texture; - this.multiTexture = multiTexture; - this.trans = trans; - this.rotate = rotate; - this.scale = scale; - this.smokeType = smokeType; - this.smokeFX = smokeFX; - this.explosionType = explosionType; - this.explosionFX = explosionFX; - this.smokeIterations = smokeIterations; - this.explosionFXIterations = explosionFXIterations; - this.hasSmokeOnSlopes = hasSmokeOnSlopes; - } - @Override - public Class getEntityClass() { - return entityClass; - } - - @Override - public ModelBase getModel() { - return model; - } - - public boolean getIsMultiTextured() { - return multiTexture; - } - - @Override - public boolean hasSmoke() { - return smokeType.length() > 0; - } - - @Override - public boolean hasSmokeOnSlopes() { - return hasSmokeOnSlopes; - } - - @Override - public String getSmokeType() { - return smokeType; - } - - @Override - public ArrayList getSmokeFX() { - return smokeFX; - } - - @Override - public String getExplosionType() { - return explosionType; - } - - @Override - public boolean hasExplosion() { - return explosionType.length() > 0; - } - - @Override - public ArrayList getExplosionFX() { - return explosionFX; - } - - @Override - public float[] getTrans() { - return trans; - } - - @Override - public float[] getRotate() { - return rotate; - } - - @Override - public float[] getScale() { - return scale; - } - - @Override - public ResourceLocation getTextureFile(String colorString) { - if (multiTexture) { - return new ResourceLocation(Info.resourceLocation, Info.trainsPrefix + texture + colorString + ".png"); - } else { - return new ResourceLocation(Info.resourceLocation, Info.trainsPrefix + texture + ".png"); - } - } - - @Override - public int getSmokeIterations() { - return smokeIterations; - } - - @Override - public int getExplosionFXIterations() { - return explosionFXIterations; - } + /** + * Tanks + **/ + tankWagon_DB(EntityTankWagon_DB.class, new ModelTankWagon_DB(), "tankWagon_DB_", true, new float[]{0.0F, -0.44F, 0.0F}, null, null, "", 0, null, "", null, 0, false), + tankWagonUS(EntityTankWagonUS.class, new ModelTankWagonUS(), "tankWagonUS_", true, new float[]{0.0F, -0.47F, 0.0F}, null, null, "", 0, null, "", null, 0, false), + tankWagonGrey(EntityTankWagon2.class, new ModelTankWagon2(), "tankwagon2", false, new float[]{0.0F, -0.32F, 0.0F}, null, null, "", 0, null, "", null, 0, false), + tankCartLava(EntityTankLava.class, new ModelWatertransp(), "lavacar_", true, new float[]{0.0F, -0.44F, 0.0F}, null, null, "", 0, null, "", null, 0, false), + tankWagonYellow(EntityTankWagon.class, new ModelTankWagon(), "tankwagon", false, new float[]{0.0F, -0.47F, 0.0F}, null, null, "", 0, null, "", null, 0, false), + tankWagonThreeDome(EntityTankWagonThreeDome.class, new ModelTankWagonThreeDome(), "tanker_three_dome_", true, new float[]{0.0F, 0.17F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + + /** + * Tenders + */ + tenderSmall(EntityTenderSmall.class, new ModelTender(), "tender2_", true, new float[]{0.0F, -0.5F, 0.0F}, new float[]{0F, 90F, 0F}, new float[]{0.75F, 0.75F, 0.75F}, "", 0, null, "", null, 0, false), + tenderHeavy(EntityTenderHeavy.class, new ModelTenderHeavy(), "heavytender_", true, new float[]{0.0F, -0.4F, 0.0F}, new float[]{0F, 180F, 0F}, null, "", 0, null, "", null, 0, false), + tender4_4_0(EntityTender4_4_0.class, new ModelNormalSteamTender(), "4-4-0-loco_tender_", true, new float[]{0.0F, -0.44F, 0.0F}, new float[]{0F, 90F, 0F}, null, "", 0, null, "", null, 0, false), + tenderBR01(EntityTenderBR01_DB.class, new ModelTenderBR01_DB(), "tenderBR01_DB", false, new float[]{0.0F, -0.44F, 0.0F}, null, null, "", 0, null, "", null, 0, false), + tenderEr_Ussr(EntityTenderEr_Ussr.class, new ModelTenderEr_Ussr(), "tenderEr_Ussr", false, new float[]{0.06F, -0.44F, 0.0F}, new float[]{0F, 180F, 0F}, null, "", 0, null, "", null, 0, false), + tenderC62Class(EntityTenderC62Class.class, new ModelC62Tender(), "c62_tender_", true, + new float[]{0.0F, -0.42F, 0.0F}, null, null, "", 0, null, "", null, 0, false), + tenderD51(EntityTenderD51.class, new ModelD51Tender(), "d51_tender", false, + new float[]{-3.0F, 0.35F, 0.0F}, new float[]{0, 180f, 180f}, null, "", 0, null, "", null, 0, false), + tenderAdler(EntityTenderAdler.class, new ModelTenderAdler(), "tender_adler", false, new float[]{0.0F, 1.05F, 0.0F}, new float[]{180F, -90F, 0F}, null, "", 0, null, "", null, 0, false), + tenderGS4(EntityTenderGS4.class, new ModelGS4Tender(), "GS4_tender_", true, new float[]{0.0F, 0.15F, -0.05F}, + new float[]{0F, 180F, 180F}, new float[]{0.8f, 1f, 0.8f}, "", 0, null, "", null, 0, false), + Model4000GallonTender(EntityTender4000.class, new Model4000GallonTender(), "GWR_Tender_", true, new float[]{-4.0F, 0.15F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + ModelFowler4FTender(EntityTenderFowler4F.class, new ModelFowler4FTender(), "Fowler_4F_Tender", false, new float[]{-5.25F, -0.51585F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + tenderCoranationClass(EntityTenderCoranationClass.class, new ModelCoranationClassTender(), "CoranationClassTender", false, new float[]{0.0F, 0.2F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + tenderBerk1225(EntityTenderBerk1225.class, new Model1225Tender(), "Berkshire_tender_", true, new float[]{2.75F, -0.65F, 0.0625F}, new float[]{0F, 0F, 180F}, null, "", 0, null, "", null, 0, false), + tenderC41(EntityTender_C41.class, new ModelTenderC41(), "C41Tender", false, new float[]{0.1F, 0.2F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + tenderSouthern1102(EntityTender_Southern1102.class, new ModelSouthern1102Tender(), "Southern1102Tender", false, new float[]{-5.25F, -0.5F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + tenderMILW(EntityTenderMILW.class, new ModelMILWTender(), "milw_tender", false, new float[]{0.15F, 0.055F, 0.025F}, new float[]{0F, 180F, 180F}, new float[]{0.9f, 0.9f, 0.9f}, "", 0, null, "", null, 0, false), + + /** + * Diesel + */ + locoKOF(EntityLocoDieselKof_DB.class, new ModelKof(), "locoKof_DB_", true, new float[]{-1.0F, -0.44F, 0.0F}, null, null, "smoke", 2, new ArrayList() { + { + add(new double[]{0.9D, 1.1D, 0.0D}); + } + }, "", null, 0, true), + locoGP40(EntityLocoDieselCD742.class, new ModelGP40(), "cd742_", true, new float[]{-0.8F, 0.75F, 0.0F}, new float[]{180F, 180F, 0F}, new float[]{0.8F, 0.8F, 0.8F}, "smoke", 5, new ArrayList() { + { + add(new double[]{1.25D, 1.15D, 0.0D}); + } + }, "", null, 0, false), + locoCD754(EntityLocoDieselCD754.class, new ModelCD754(), "cd754_", true, new float[]{-2.5F, 0.2F, 0.0F}, new float[]{180F, 0F, 0F}, new float[]{1F, 1F, 1F}, "smoke", 5, new ArrayList() { + { + add(new double[]{1.25D, 1.15D, 0.0D}); + } + }, "", null, 0, false), + locoChME3(EntityLocoDieselChME3.class, new ModelChME3(), "chme3", false, new float[]{-0.5F, -0.47F, 0.0F}, null, null, "smoke", 4, new ArrayList() { + { + add(new double[]{0.6D, 1.55D, 0.0D}); + } + }, "", null, 0, false), + + Class143Front(EntityLocoDieselClass143.class, new ModelClass143(), "Class143_", true, new float[]{-1f, 0.15f, 0f}, new float[]{0f, 180f, 180f}, null, "smoke", 1, new ArrayList() { + { + add(new double[]{-0.8D, 1.25D, 0.4D}); + } + }, "", null, 0, false), + + + locoGP7Red(EntityLocoDieselGP7Red.class, new ModelGP7(), "gp7_", true, new float[]{-0.8F, -0.47F, 0.0F}, new float[]{0F, 180F, 0F}, null, "smoke", 4, new ArrayList() { + { + add(new double[]{-0.2D, 1.3D, 0.0D}); + add(new double[]{0.45D, 1.3D, 0.0D}); + } + }, "", null, 0, false), + loco44tonner(EntityLocoDiesel44TonSwitcher.class, new ModelLoco44TonSwitcher(), "loco_44tonswitcher_", true, new float[]{-2.75F, -0.425F, 0.0F}, new float[]{0F, 180F, 180F}, null, "smoke", 4, new ArrayList() { + { + add(new double[]{0.6D, 1.55D, 0.0D}); + add(new double[]{2D, 1.55D, 0.0D}); + } + }, "", null, 0, false), + locoSD40(EntityLocoDieselSD40.class, new ModelSD40(), "locoSD40_", true, new float[]{-1.2F, -0.47F, 0.0F}, new float[]{180F, 90F, 0F}, new float[]{-1F, -1F, 1F}, "smoke", 5, new ArrayList() { + { + add(new double[]{1.45D, 1.45D, 0.0D}); + } + }, "", null, 0, false), + locoSD70(EntityLocoDieselSD70.class, new ModelSD70(), "locoSD70_", true, new float[]{-1.2F, -0.44F, 0.0F}, new float[]{0F, 90F, 0F}, null, "smoke", 5, new ArrayList() { + { + add(new double[]{0.4D, 1.3D, 0.0D}); + } + }, "", null, 0, false), + + locoShunter(EntityLocoDieselShunter.class, new ModelShunter(), "shunter_", true, new float[]{-1.2F, -0.451F, 0.0F}, null, null, "smoke", 5, new ArrayList() { + { + add(new double[]{2.4D, 1.5D, -0.1D}); + add(new double[]{2.4D, 1.5D, 0.1D}); + } + }, "", null, 0, true), + locoWLs40(EntityLocoDieselWLs40.class, new ModelWLs40(), "wls40", false, new float[]{0F, 0.1F, 0.0F}, new float[]{0F, 180F, 180F}, null, "smoke", 5, new ArrayList() { + { + add(new double[]{3.0D, 1.4D, 0.0D}); + } + }, "", null, 0, true), + locoV60_DB(EntityLocoDieselV60_DB.class, new ModelV60(), "locoV60_DB_", true, new float[]{-0.75F, -0.44F, 0.0F}, null, null, "smoke", 4, new ArrayList() { + { + add(new double[]{0.75D, 1.7D, 0.0D}); + } + }, "", null, 0, false), + locoMILW_H1044(EntityLocoDieselMILW_H1044.class, new ModelMILW_H1044(), "MILW_H1044_", true, new float[]{0, 0.06f, 0}, new float[]{0F, 180F, 180F}, new float[]{0.9f, 1f, 0.9f}, "largesmoke", 4, new ArrayList() { + { + add(new double[]{3.7D, 1.7D, 0D}); + } + }, "", null, 0, false), + locoEMDF7(EntityLocoDieselEMDF7.class, new ModelEMDF7(), "emdf7_", true, new float[]{-2.2f, 0.1f, 0}, new float[]{0F, 180F, 180F}, new float[]{0.9f, 1f, 0.9f}, "smoke", 4, new ArrayList() { + { + add(new double[]{-0.15D, 1.6D, 0.0D}); + add(new double[]{0.5D, 1.6D, 0.0D}); + } + }, "", null, 0, false), + locoEMDF3(EntityLocoDieselEMDF3.class, new ModelEMDF3(), "emdf3_", true, new float[]{-2.2f, 0.1f, 0}, new float[]{0F, 180F, 180F}, new float[]{0.9f, 1f, 0.9f}, "smoke", 4, new ArrayList() { + { + add(new double[]{-0.15D, 1.6D, 0.0D}); + add(new double[]{0.55D, 1.6D, 0.0D}); + } + }, "", null, 0, false), + locoEMDF7b(EntityBUnitEMDF7.class, new ModelEMDF7B(), "emdf7b_", true, new float[]{0, 0.1f, 0}, new float[]{0F, 180F, 180F}, new float[]{0.9f, 1f, 0.9f}, "", 4, null, "", null, 0, false), + locoEMDF3b(EntityBUnitEMDF3.class, new ModelEMDF3B(), "emdf3b_", true, new float[]{0, 0.1f, 0}, new float[]{0F, 180F, 180F}, new float[]{0.9f, 1f, 0.9f}, "", 4, null, "", null, 0, false), + DD35b(EntityBUnitDD35.class, new ModelDD35B(), "dd35b_", true, new float[]{0, 0.18f, 0}, new float[]{0F, 180F, 180F}, new float[]{0.9f, 1f, 0.9f}, "", 0, null, "", null, 0, false), + locoDieselDD35A(EntityLocoDieselDD35A.class, new ModelDD35A(), "dd35a_", true, new float[]{-5, 0.18f, 0}, new float[]{0F, 180F, 180F}, new float[]{0.9f, 1f, 0.9f}, "smoke", 4, new ArrayList() { + { + add(new double[]{3.9D, 1.6D, 0.0D}); + + add(new double[]{-0.4D, 1.6D, 0.0D}); + } + }, "", null, 0, false), + locoBamboo(EntityLocoDieselBamboo.class, new ModelBambooTrainEngine(), "loco_bamboo_", true, new float[]{-1.0F, 0F, 0.0F}, new float[]{180, 180, 0}, null, "smoke", 2, new ArrayList() { + { + add(new double[]{-0.05D, -0.05D, 0.0D}); + } + }, "", null, 0, true), + /** + * Electric + */ + locoE10DB(EntityLocoElectricE10_DB.class, new ModelE10DB(), "locoe10_db_", true, new float[]{-1.7F, 0.05F, 0.0F}, new float[]{0F, 0F, 180F}, new float[]{0.9f, 0.9f, 0.9f}, "", 0, null, "", null, 0, false), + locoCD151(EntityLocoElectricCD151.class, new ModelLocoCD151(), "CD151_", true, new float[]{-2, 0.18f, 0}, new float[]{0F, 180F, 180F}, new float[]{0.9f, 1f, 0.9f}, "", 0, null, "", null, 0, false), + locoE103(EntityLocoElectricE103.class, new ModelE103(), "E103_", true, new float[]{-2, 0.05f, 0}, new float[]{0F, 180F, 180F}, new float[]{0.9f, 1f, 0.9f}, "", 0, null, "", null, 0, false), + locoVL10(EntityLocoElectricVL10.class, new ModelVL10(), "vl10", false, new float[]{-1.2F, -0.47F, 0.0F}, null, null, "", 0, null, "", null, 0, false), + locoBR_E69(EntityLocoElectricBR_E69.class, new ModelBR_E69(), "locoBR_E69_", true, new float[]{0.0F, -0.42F, 0.0F}, null, null, "", 0, null, "", null, 0, false), + locoMineTrain(EntityLocoElectricMinetrain.class, new ModelLocoMinetrain(), "locoMinetrain", false, new float[]{-0.8F, -0.47F, 0.0F}, null, null, "", 0, null, "", null, 0, false), + locoSpeedZeroED(EntityLocoElectricHighSpeedZeroED.class, new ModelLocoHighSpeedZeroED(), "locoHighSpeedZeroED", false, new float[]{-1.7F, -0.44F, 0.0F}, null, null, "", 0, null, "", null, 0, false), + locoICE1(EntityLocoElectricICE1.class, new ModelICE1(), "ICE1_Engine_", true, new float[]{0.0F, 0.18F, 0.1F}, new float[]{0F, 180F, 180F}, new float[]{0.8f, 1f, 0.8f}, "", 0, null, "", null, 0, false), + //locoSpeedGrey(EntityNewHighSpeedLoco.class, new ModelNewHighSpeedLoco(), "newhighspeedloco", false, new float[] { -0.05F, -0.5F, 0.0F }, new float[] { 0F, 90F, 0F }, new float[] { 0.8F, 0.8F, 0.8F }, "", 0, null, "", null, 0), + locoTramYellow(EntityLocoElectricTramWood.class, new ModelTram(), "tram", false, new float[]{-0.8F, -0.44F, 0F}, new float[]{0F, 180F, 0F}, null, "", 0, null, "", null, 0, false), + locoTramNY(EntityLocoElectricTramNY.class, new ModelTramNY(), "locoTramNY", false, new float[]{-1.5F, -0.44F, 0.0F}, null, null, "", 0, null, "", null, 0, false), + + passengerC4FG(PassengerIC4_DSB_FG.class, new ModelLocoDieselIC4_DSB_FG(), "IC4_DSB_FG", false, new float[]{-0.8F, -0.44F, 0.0F}, null, null, "", 0, null, "", null, 0, false), + passengerC4FH(PassengerIC4_DSB_FH.class, new ModelLocoDieselIC4_DSB_FH(), "IC4_DSB_FH", false, new float[]{-0.8F, -0.44F, 0.0F}, null, null, "", 0, null, "", null, 0, false), + locoIC4MG(EntityLocoDieselIC4_DSB_MG.class, new ModelLocoDieselIC4_DSB_MG(), "IC4_DSB_MG_", true, new float[]{-0.8F, -0.44F, 0.0F}, null, null, "", 0, null, "", null, 0, false), + locoBR185(EntityLocoElectricBR185.class, new BR185_EngineModel(), "BR185_Engine_", true, new float[]{-2.0F, 0.1F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + locoClass85(EntityLocoElectricClass85.class, new ModelClass85(), "Class85_", true, new float[]{-3.0F, 0.65F, 0.0F}, new float[]{0F, 90F, 180F}, null, "", 0, null, "", null, 0, false), + locoBP4(EntityLocoElectricBP4.class, new ModelBP4(), "bp4_", true, new float[]{-2.2F, 0.15F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + passengerBNLRV_B(EntityPassengerBNLRV_B.class, new ModelBNLRV_B(), "bnlrv_", true, new float[]{0.0f, 0.10f, 0.0f}, new float[]{0F, 0F, 180F}, null, "", 0, null, "", null, 0, false), + locoBNLRV_A(EntityLocoElectricBNLRV_A.class, new ModelBNLRV_A(), "bnlrv_", true, new float[]{-2f, 0.10f, 0.0f}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + + locoDeltic(EntityLocoDieselDeltic.class, new ModelDeltic(), "Deltic", false, new float[]{-2.25F, 0.8F, 0.0F}, new float[]{0F, 90F, 180F}, null, "largesmoke", 1, new ArrayList() { + { + add(new double[]{2.3D, 1.6D, 0D}); + } + }, "", null, 0, false), + locoEWSClass66(EntityLocoDieselClass66.class, new ModelEWSClass66(), "Class66_", true, new float[]{-3.0F, 0.65F, 0.0F}, new float[]{0F, 90F, 180F}, null, "largesmoke", 2, new ArrayList() { + { + add(new double[]{0.9D, 1.4D, 0.0D}); + } + }, "", null, 0, false), + locoFOL_M1(EntityLocoDieselFOLM1.class, new ModelFOL_M1(), "FOL_M1_", true, new float[]{-2.8F, 0.05F, 0.9F}, new float[]{0F, 180F, 180F}, null, "smoke", 3, new ArrayList() { + { + add(new double[]{1.3D, 1.45D, 0.0D}); + } + }, "", null, 0, false), + FOLM1B(EntityLocoDieselFOLM1B.class, new ModelFOLM1B(), "FOL_M1b_", true, new float[]{-2.2F, 0.05F, 0.F}, new float[]{0F, 180F, 180F}, null, "smoke", 3, new ArrayList() { + { + add(new double[]{1.6D, 1.45D, 0.0D}); + } + }, "", null, 0, false), + /** + * Steam + */ + locoCherepanov(EntityLocoSteamCherepanov.class, new ModelLocoCherepanov(), "locoCherepanov", false, new float[]{-0.875F, -0.47F, 0.0F}, new float[]{0, 180, 0}, null, "largesmoke", 3, new ArrayList() { + { + add(new double[]{1.5D, 2.1D, 0D}); + } + }, "explode", new ArrayList() { + { + add(new double[]{0.875D, 0.2D, 0.2D}); + } + }, 2, true), + locoPannier(EntityLocoSteamPannier.class, new ModelLocoPannier(), "locoPannier", false, new float[]{0.15F, 0.2F, 0.0F}, new float[]{0, 180, 180}, new float[]{0.9f, 0.9f, 0.9f}, "largesmoke", 3, new ArrayList() { + { + add(new double[]{3.4D, 1.8D, 0D}); + } + }, "explode", new ArrayList() { + { + add(new double[]{2.575D, 0.05D, 0.65D}); + } + }, 2, true), + locoC41(EntityLocoSteamC41.class, new ModelLocoC41(), "locoC41", false, new float[]{-3.5F, -0.5F, 0.0F}, new float[]{0, 180, 180}, null, "largesmoke", 3, new ArrayList() { + { + add(new double[]{3.55D, 1.65D, 0D}); + } + }, "explode", new ArrayList() { + { + add(new double[]{2.9D, 0.05D, 0.65D}); + } + }, 2, true), + + locoBR_Black_5(EntityLocoSteamBR_Black_5.class, new ModelBR_Black_5(), "BR_Black_5_", true, new float[]{-1.75f, 0f, 0}, new float[]{0, 180, 180}, null, "largesmoke", 3, new ArrayList() { + { + add(new double[]{3.1D, 1.35D, 0D}); + } + }, "explode", new ArrayList() { + { + add(new double[]{3.25D, 0D, 0.65D}); + } + }, 2, true), + + locoRW_Type_3(EntityLocoSteamRWType3.class, new ModelRW_Type_3(), "RW_Type_3_", true, new float[]{-1.25f, 0.17f, 0}, new float[]{0, 180, 180}, null, "largesmoke", 3, new ArrayList() { + { + add(new double[]{2.4D, 1.55D, 0D}); + } + }, "explode", new ArrayList() { + { + add(new double[]{2.9D, 0.05D, 0.65D}); + } + }, 2, true), + + locoRW_Type_2(EntityLocoSteamRWType2.class, new ModelRW_Type_2(), "Type_2_", true, new float[]{-1.25f, 0.17f, 0}, new float[]{0, 180, 180}, null, "largesmoke", 3, new ArrayList() { + { + add(new double[]{2.2D, 1.55D, 0D}); + } + }, "explode", new ArrayList() { + { + add(new double[]{2.6D, 0.05D, 0.65D}); + } + }, 2, true), + + + locoGWR_101_Class(EntityLocoSteamGWR101Class.class, new ModelGWR101Class(), "Gwr_101_", true, new float[]{-1.25f, 0.17f, 0}, new float[]{0, 180, 180}, null, "largesmoke", 3, new ArrayList() { + { + add(new double[]{2.6D, 1.55D, 0D}); + } + }, "explode", new ArrayList() { + { + add(new double[]{3D, 0.05D, 0.65D}); + } + }, 2, true), + + + locoGWR_42xx(EntityLocoSteamGWR42xx.class, new ModelGWR42xx(), "2-8-0_", true, new float[]{-2.1f, 0.17f, 0}, new float[]{0, 180, 180}, null, "largesmoke", 3, new ArrayList() { + { + add(new double[]{4.1D, 1.6D, 0D}); + } + }, "explode", new ArrayList() { + { + add(new double[]{4.3D, 0.05D, 0.65D}); + } + }, 2, true), + + locoGWR_72xx(EntityLocoSteamGWR72xx.class, new ModelGWR72xx(), "72xx_", true, new float[]{-2.5f, 0.17f, 0}, new float[]{0, 180, 180}, null, "largesmoke", 3, new ArrayList() { + { + add(new double[]{4.8D, 1.6D, 0D}); + } + }, "explode", new ArrayList() { + { + add(new double[]{5.0D, 0.05D, 0.65D}); + } + }, 2, true), + + locoWWCP_Class_062T(EntityLocoSteamWWCPClass062T.class, new ModelWWCPClass062T(), "WWCP_Standard_0-6-2T_", true, new float[]{-2.5f, 0.17f, 0}, new float[]{0, 180, 180}, null, "largesmoke", 3, new ArrayList() { + { + add(new double[]{4.3D, 1.6D, 0D}); + } + }, "explode", new ArrayList() { + { + add(new double[]{4.6D, 0.05D, 0.65D}); + } + }, 2, true), + + locoBR_Britannia_Class(EntityLocoSteamBR_Britannia_Class.class, new ModelBR_Britannia_Class(), "BR_Britannia_", true, new float[]{-2.3f, -0.05f, 0}, new float[]{0, 180, 180}, null, "largesmoke", 3, new ArrayList() { + { + add(new double[]{3.78D, 1.4D, 0D}); + } + }, "explode", new ArrayList() { + { + add(new double[]{4.1D, 0.05D, 0.65D}); + } + }, 2, true), + + locoJ50(EntityLocoSteamJ50.class, new ModelJ50(), "J50_", true, new float[]{-1.25f, 0.15f, 0}, new float[]{0, 180, 180}, null, "largesmoke", 3, new ArrayList() { + { + add(new double[]{2.7D, 1.5D, 0D}); + } + }, "explode", new ArrayList() { + { + add(new double[]{2.8D, 0.05D, 0.65D}); + } + }, 2, true), + + locoSentinelY3(EntityLocoSteamSentinelY3.class, new ModelSentinelY3(), "Sentinel_Y3_", true, new float[]{-0.5f, 0.15f, 0}, new float[]{0, 180, 180}, null, "largesmoke", 2, new ArrayList() { + { + add(new double[]{-0.5D, 1.5D, 0D}); + } + }, "explode", new ArrayList() { + { + + } + }, 2, true), + + locoJacknail(EntitylocoSteamJacknail.class, new ModelMWClass88BTE(), "0-8-0_box_tank_", true, new float[]{-1.25f, 0.15f, 0}, new float[]{0, 180, 180}, null, "largesmoke", 2, new ArrayList() { + { + add(new double[]{2.5D, 1.5D, 0D}); + } + }, "explode", new ArrayList() { + { + add(new double[]{2.5D, 0.05D, 0.65D}); + } + }, 2, true), + + locoC41_080(EntityLocoSteamC41_080.class, new ModelC41_080(), "locoC41_080", false, new float[]{-3.5F, -0.5F, 0.0F}, new float[]{0, 180, 180}, null, "largesmoke", 3, new ArrayList() { + { + add(new double[]{3.55D, 1.65D, 0D}); + } + }, "explode", new ArrayList() { + { + add(new double[]{2.9D, 0.05D, 0.65D}); + } + }, 2, true), + locoAlcoSC4(EntityLocoSteamAlcoSC4.class, new ModelAlcoSC4(), "AlcoSC4", false, new float[]{-3.5F, -0.5F, 0.0F}, new float[]{0, 180, 180}, null, "largesmoke", 3, new ArrayList() { + { + add(new double[]{3.55D, 1.65D, 0D}); + } + }, "explode", new ArrayList() { + { + add(new double[]{2.9D, 0.05D, 0.65D}); + } + }, 2, true), + locoC41T(EntityLocoSteamC41T.class, new ModelLocoC41T(), "locoC41t", false, new float[]{-3.5F, -0.5F, 0.0F}, new float[]{0, 180, 180}, null, "largesmoke", 3, new ArrayList() { + { + add(new double[]{3.55D, 1.65D, 0D}); + } + }, "explode", new ArrayList() { + { + add(new double[]{2.9D, 0.05D, 0.65D}); + } + }, 2, true), + locoSouthern1102(EntityLocoSteamSouthern1102.class, new ModelSouthern1102(), "Southern1102", false, new float[]{-3.5F, -0.5F, 0.0F}, new float[]{0, 180, 180}, new float[]{1f, 1f, 1f}, "largesmoke", 3, new ArrayList() { + { + add(new double[]{3.55D, 1.65D, 0D}); + } + }, "explode", new ArrayList() { + { + add(new double[]{2.9D, 0.05D, 0.65D}); + } + }, 2, true), + locoUSATCUS(EntityLocoSteamUSATCUS.class, new ModelUSATCUS(), "USATCUS", false, new float[]{-2.0F, -0.2F, 0.8375F}, new float[]{0, 180, 180}, new float[]{1f, 1f, 1f}, "largesmoke", 3, new ArrayList() { + { + add(new double[]{2.5D, 1.2D, 0D}); + } + }, "explode", new ArrayList() { + { + add(new double[]{2.5D, -0.5D, 0.65D}); + } + }, 2, true), + locoUSATCUK(EntityLocoSteamUSATCUK.class, new ModelUSATCUK(), "USATCUK", false, new float[]{-2.0F, -0.2F, 0.8375F}, new float[]{0, 180, 180}, new float[]{1f, 1f, 1f}, "largesmoke", 3, new ArrayList() { + { + add(new double[]{2.5D, 1.2D, 0D}); + } + }, "explode", new ArrayList() { + { + add(new double[]{2.5D, -0.5D, 0.65D}); + } + }, 2, true), + locoCoranationClass(EntityLocoSteamCoranationClass.class, new ModelCoranationClass(), "CoranationClass", false, new float[]{-3.8F, 0.2F, 0.0F}, new float[]{0F, 180F, 180F}, null, "largesmoke", 3, new ArrayList() { + { + add(new double[]{5.45D, 1.9D, 0.0D}); + } + }, "explode", new ArrayList() { + { + add(new double[]{4.8D, 0.15D, 0.5D}); + } + }, 2, true), + locoBR80(EntityLocoSteamBR80_DB.class, new ModelLocoBR80_DB(), "locoBR80_DB_", true, new float[]{-0.75F, -0.44F, 0.0F}, null, null, "largesmoke", 3, new ArrayList() { + { + add(new double[]{1.8D, 1.75D, 0.0D}); + } + }, "explode", new ArrayList() { + { + add(new double[]{1.6D, -0.4D, 0.8D}); + } + }, 4, true), + loco4_4_0(EntityLocoSteam4_4_0.class, new ModelLoco(), "4-4-0-loco_", true, new float[]{-0.66F, -0.44F, 0.0F}, new float[]{0F, 90F, 0F}, null, "largesmoke", 3, new ArrayList() { + { + add(new double[]{1.6D, 2.05D, 0.0D}); + } + }, "explode", new ArrayList() { + { + add(new double[]{1.56D, -0.2D, 0.8D}); + } + }, 4, true), + locoSteamSmall(EntityLocoSteamSmall.class, new ModelLoco3(), "loco3_", true, new float[]{-0.99F, -0.5F, 0.0F}, new float[]{0F, -90F, 0F}, new float[]{0.8F, 0.8F, 0.8F}, "smoke", 20, new ArrayList() { + { + add(new double[]{1.69D, 1.1D, 0.0D}); + } + }, "explode", new ArrayList() { + { + add(new double[]{1.6D, -0.4D, 0.8D}); + } + }, 2, true), + locoSteamLSSP7(EntityLocoSteamLSSP7.class, new ModelLSSP7(), "LSSP7", false, new float[]{-1F, -0.2F, 0.8F}, new float[]{0F, 180F, 180F}, new float[]{1F, 1F, 1F}, "smoke", 20, new ArrayList() { + { + add(new double[]{0.1D, 1.15D, 0D}); + } + }, "explode", new ArrayList() { + { + add(new double[]{0.7D, -0.4D, 0.5D}); + add(new double[]{0.7D, -0.4D, -0.5D}); + } + }, 2, true), + locoHeavySteam(EntityLocoSteamHeavy.class, new ModelHeavySteamLoco(), "heavysteam_", true, new float[]{0F, -0.42F, 0.0F}, null, null, "largesmoke", 3, new ArrayList() { + { + add(new double[]{3.1D, 2D, 0.0D}); + } + }, "explode", new ArrayList() { + { + add(new double[]{3D, -0.2D, 0.8D}); + } + }, 2, true), + locoSteamC62Class(EntityLocoSteamC62Class.class, new ModelC62Locomotive(), "c62_engine_", true, + new float[]{0F, -0.44F, 0.0F}, null, null, "largesmoke", 3, new ArrayList() { + { + add(new double[]{5.0D, 1.75D, 0.0D}); + } + }, "explode", new ArrayList() { + { + add(new double[]{5.2D, -0.2D, 0.8D}); + } + }, 2, false), + locoSteamD51Short(EntityLocoSteamD51.class, new ModelD51ShortStreamlining(), "d51_short_", true, + new float[]{0F, -0.5F, 0.0F}, null, null, "largesmoke", 3, new ArrayList() { + { + add(new double[]{4.85D, 1.85D, 0.0D}); + } + }, "explode", new ArrayList() { + { + add(new double[]{4.6D, -0.2D, 0.8D}); + } + }, 2, false), + locoSteamD51Long(EntityLocoSteamD51Long.class, new ModelD51LongStreamlining(), "d51_long_", true, + new float[]{0F, -0.5F, 0.0F}, null, null, "largesmoke", 3, new ArrayList() { + { + add(new double[]{4.85D, 1.85D, 0.0D}); + } + }, "explode", new ArrayList() { + { + add(new double[]{4.6D, -0.2D, 0.8D}); + } + }, 2, false), + locoSteamBR01_DB(EntityLocoSteamBR01_DB.class, new ModelLocoBR01_DB(), "locoBR01_DB_", true, new float[]{-1.0F, -0.44F, 0.0F}, null, null, "largesmoke", 3, new ArrayList() { + { + add(new double[]{3.45D, 1.8D, 0.0D}); + } + }, "explode", new ArrayList() { + { + add(new double[]{3.4D, -0.2D, 0.8D}); + } + }, 2, false), + locoSteamGS4(EntityLocoSteamGS4.class, new ModelGS4Loco(), "GS4_engine_", true, new float[]{0.0F, 0.15F, 0.0F}, new float[]{0F, 180F, 180F}, new float[]{0.95f, 0.95f, 0.95f}, "largesmoke", 5, new ArrayList() { + { + add(new double[]{5.8D, 1.7D, 0.0D}); + } + }, "explode", new ArrayList() { + { + add(new double[]{5.2D, -0.2D, 0.8D}); + } + }, 2, false), + locoSteamEr_USSR(EntityLocoSteamEr_Ussr.class, new ModelLocoEr_Ussr(), "locoEr_Ussr", false, new float[]{-0.75F, -0.44F, 0.0F}, null, null, "largesmoke", 3, new ArrayList() { + { + add(new double[]{3.45D, 1.9D, 0.0D}); + } + }, "explode", new ArrayList() { + { + add(new double[]{3.4D, -0.2D, 0.8D}); + } + }, 2, false), + locoSteamForney(EntityLocoSteamForneyRed.class, new ModelLocoForney(), "locoForney_", true, new float[]{-1.3F, -0.44F, 0.0F}, new float[]{0F, 90F, 0F}, null, "largesmoke", 3, new ArrayList() { + { + add(new double[]{2.2D, 1.9D, 0.0D}); + } + }, "explode", new ArrayList() { + { + add(new double[]{2.2D, -0.2D, 0.8D}); + } + }, 2, true), + locoSteamMogul(EntityLocoSteamMogulBlue.class, new ModelLocoMogul(), "locoMogul_", true, new float[]{-0.6F, -0.44F, 0.0F}, new float[]{0F, 90F, 0F}, null, "largesmoke", 3, new ArrayList() { + { + add(new double[]{1.55D, 1.95D, 0.0D}); + } + }, "explode", new ArrayList() { + { + add(new double[]{1.45D, -0.2D, 0.8D}); + } + }, 2, true), + locoSteamShay(EntityLocoSteamShay.class, new ModelLocoSteamShay(), "locoShay", false, new float[]{-0.4F, -0.45F, -0.0F}, new float[]{0F, 180F, 0F}, null, "largesmoke", 20, new ArrayList() { + { + add(new double[]{1.8D, 1.7D, 0.2D}); + } + }, "explode", new ArrayList() { + { + add(new double[]{1.6D, -0.4D, 0.8D}); + } + }, 2, true), + locoSteamVBShay(EntityLocoSteamVBShay.class, new ModelVBShay(), "vbshay", false, new float[]{0F, 0.2F, 0.0F}, new float[]{0F, 180F, 180F}, new float[]{0.9f, 1f, 0.9f}, "largesmoke", 20, new ArrayList() { + { + add(new double[]{0.55D, 2.2D, 0.0D}); + } + }, "explode", new ArrayList() { + { + add(new double[]{1.6D, -0.4D, 0.8D}); + } + }, 2, true), + locoSteamClimax(EntityLocoSteamClimax.class, new ModelLocoClimax(), "loco_climax", false, new float[]{0F, 0.18F, 0.0F}, new float[]{0F, 180F, 180F}, new float[]{0.9f, 1f, 0.9f}, "largesmoke", 20, new ArrayList() { + { + add(new double[]{2.05D, 1.9D, 0.0D}); + } + }, "explode", new ArrayList() { + { + add(new double[]{1.6D, -0.4D, 0.8D}); + } + }, 2, true), + locoSteamAdler(EntityLocoSteamAdler.class, new ModelLocoSteamAdler(), "locoAdler", false, new float[]{-0.8F, 1.05F, 0F}, new float[]{180F, -90F, 0F}, new float[]{0.9f, 1f, 0.9f}, "smoke", 20, new ArrayList() { + { + add(new double[]{1.6D, 1.3D, 0.0D}); + } + }, "explode", new ArrayList() { + { + add(new double[]{1.5D, -0.4D, 0.8D}); + } + }, 2, true), + locoSteamAlice(EntityLocoSteamAlice0_4_0.class, new ModelLocoAlice040(), "0-4-0-loco-alice", false, new float[]{0F, 0.15F, 0F}, new float[]{0F, 180F, 180F}, new float[]{0.9f, 1f, 0.9f}, "smoke", 20, new ArrayList() { + { + add(new double[]{2.2D, 1.6D, 0.0D}); + } + }, "explode", new ArrayList() { + { + add(new double[]{1.8D, -0.4D, 0.8D}); + } + }, 2, true), + locoSteam040VB(EntityLocoSteam040VB.class, new ModelVB040(), "loco040VB", false, new float[]{0F, 0.15F, 0F}, new float[]{0F, 180F, 180F}, new float[]{0.9f, 1f, 0.9f}, "smoke", 20, new ArrayList() { + { + add(new double[]{0.6D, 1.75D, 0.0D}); + } + }, "explode", new ArrayList() { + { + add(new double[]{1.8D, -0.4D, 0.8D}); + } + }, 2, true), + locoSteamGLYN(EntityLocoSteamGLYN042T.class, new Model042TGLYN(), "0-4-2-loco-glyn", false, new float[]{0F, 0.15F, 0F}, new float[]{0F, 180F, 180F}, new float[]{0.9f, 1f, 0.9f}, "smoke", 20, new ArrayList() { + { + add(new double[]{2.15D, 1.75D, 0.0D}); + } + }, "explode", new ArrayList() { + { + add(new double[]{1.8D, -0.4D, 0.8D}); + } + }, 2, true), + locoSteam626T(EntityLocoSteam262T.class, new ModelT262(), "262t", false, new float[]{0F, 0.15F, 0F}, new float[]{0F, 180F, 180F}, new float[]{0.9f, 1f, 0.9f}, "smoke", 20, new ArrayList() { + { + add(new double[]{2.65D, 1.7D, 0.0D}); + } + }, "explode", new ArrayList() { + { + add(new double[]{2.8D, -0.4D, 0.8D}); + } + }, 2, true), + locoSteamA4Mallard(EntityLocoSteamMallardA4.class, new ModelA4Locomotive(), "locoA4_UK_", true, new float[]{-3.0F, 0.2F, 0F}, new float[]{0F, 180F, 180F}, new float[]{0.975f, 0.975f, 0.975f}, "largesmoke", 20, new ArrayList() { + { + add(new double[]{4.8D, 1.95D, 0.0D}); + } + }, "explode", new ArrayList() { + { + add(new double[]{4.9D, -0.4D, 0.8D}); + } + }, 2, true), + LocoSteamHallClass(EntityLocoSteamHallClass.class, new ModelHallClass(), "Hall_Class_Locomotive_", true, new float[]{-0.65F, 0.15F, -0.25F},/*position*/ new float[]{0F, 180F, 180F}, new float[]{1f, 1f, 1f},/*scale*/ "largesmoke", 20, new ArrayList() { + { + add(new double[]{4.25D, 1.55D, 0D});//smoke + } + }, "explode", new ArrayList() { + { + add(new double[]{4D, -0.4D, 0.8D});//steam + } + }, 2, true), + LocoSteamKingClass(EntityLocoSteamKingClass.class, new ModelKingClass(), "King_Class_Locomotive_", true, new float[]{-1.75F, 0.15F, 0.0F},/*position*/ new float[]{0F, 180F, 180F}, new float[]{1f, 1f, 1f},/*scale*/ "largesmoke", 20, new ArrayList() { + { + add(new double[]{4.8D, 1.6D, 0.0D});//smoke + } + }, "explode", new ArrayList() { + { + add(new double[]{3.6D, -0.4D, 0.8D});//steam + } + }, 2, true), + LocoSteamBerk1225(EntityLocoSteamBerk1225.class, new Model1225(), "Berk1225_Locomotive", false, new float[]{-2.0F, -0.65F, 0.0625F},/*position*/ new float[]{0F, 0F, 180F}, new float[]{1f, 1f, 1f},/*scale*/ "largesmoke", 20, new ArrayList() { + { + add(new double[]{4.65D, 1.7D, 0.0D});//smoke + } + }, "explode", new ArrayList() { + { + add(new double[]{4.2D, -0.4D, 0.8D});//steam + } + }, 2, true), + LocoSteamBerk765(EntityLocoSteamBerk765.class, new Model765(), "Berk765_Locomotive", false, new float[]{-2.0F, -0.65F, 0.0625F},/*position*/ new float[]{0F, 0F, 180F}, new float[]{1f, 1f, 1f},/*scale*/ "largesmoke", 20, new ArrayList() { + { + add(new double[]{4.65D, 1.7D, 0.0D});//smoke + } + }, "explode", new ArrayList() { + { + add(new double[]{4.2D, -0.4D, 0.8D});//steam + } + }, 2, true), + locoSteamMILWClassA(EntityLocoSteamMILWClassA.class, new ModelMILWClassA(), "locoMILW_ClassA", false, new float[]{0.0F, 0.1F, 0F}, new float[]{0F, 180F, 180F}, new float[]{0.9f, 0.9f, 0.9f}, "largesmoke", 20, new ArrayList() { + { + add(new double[]{4.4D, 1.35D, 0.0D}); + } + }, "explode", new ArrayList() { + { + add(new double[]{4.2D, -0.4D, 0.8D}); + } + }, 2, true), + locoSteamFowler(EntityLocoSteamFowler.class, new ModelFowler(), "loco_Fowler", false, new float[]{-3F, -0.51585F, 0.0F}, new float[]{0F, 180F, 180F}, new float[]{1f, 1f, 1f}, "largesmoke", 20, new ArrayList() { + { + add(new double[]{3.2D, 1.6D, 0.0D}); + } + }, "explode", new ArrayList() { + { + add(new double[]{2D, -0.4D, 0D}); + } + }, 2, true), + locoMRcompound(EntitylocoSteamMRCompound.class, new ModelMidlandcompound(), "LMS_4p_", true, new float[]{-1.95f, 0.1f, 0}, new float[]{0, 180, 180}, null, "largesmoke", 2, new ArrayList() { + { + add(new double[]{3.5D, 1.5D, 0D}); + } + }, "explode", new ArrayList() { + { + add(new double[]{3.5D, 0.05D, 0.65D}); + } + }, 2, true), + + locoSteamA4Tender(EntityTenderA4.class, new ModelTenderA4(), "tenderA4_UK_", true, new float[]{-0.2F, 0.2F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + LocoMRcompoundTender(EntityTenderMRCompound.class, new ModelMRCompoundTender(), "LMS_4p_", true, new float[]{0f, 0.15f, 0}, new float[]{0, 180, 180}, null, "", 0, null, "", null, 0, false), + LocoBR_Black_5_Tender(EntityTenderBR_Black_5.class, new ModelBR_Black_5_Tender(), "BR_Black_5_Tender_", true, new float[]{-0.05f, 0f, 0f,}, new float[]{0F, 180f, 180F}, null, "", 0, null, "", null, 0, false), + LocoBR1_Tender(EntityTenderBR1.class, new ModelBR1_Tender(), "BR1_Tender_", true, new float[]{0f, -0.01f, 0f,}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + LocoRW_Type_2_Tender(EntityTenderRWType2.class, new ModelRW_Type_2_Tender(), "Type_2_", true, new float[]{0f, 0.16f, 0f,}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + PropagandaUS(EntityPropagandaUS.class, new ModelPropagandaCar(), "propaganda_US_", true, new float[]{1.1F, 0.2F, -0.1F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + PropagandaJapan(EntityPropagandaJapan.class, new ModelPropagandaCar(), "propaganda_Japan_", true, new float[]{1.1F, 0.2F, -0.1F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + PropagandaUSSR(EntityPropagandaUSSR.class, new ModelPropagandaCar(), "propaganda_USSR_", true, new float[]{1.1F, 0.2F, -0.1F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + PropagandaBritain(EntityPropagandaBritain.class, new ModelPropagandaCar(), "propaganda_Britain_", true, new float[]{1.1F, 0.2F, -0.1F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + SnowPlow(EntityLocoSteamSnowPlow.class, new ModelSnowPlow(), "train_snowplow", false, new float[]{-2F, 0.12F, 0F}, new float[]{0F, 180F, 180F}, null, "smoke", 4, new ArrayList() { + { + add(new double[]{3.15D, 1.6D, 0.0D}); + } + }, "", null, 0, false), + + + locoDieselCF7(EntityLocoDieselCF7.class, new ModelCF7(), "CF7_", true, new float[]{-1.5F, 0.15F, 0F}, new float[]{0F, 180F, 180F}, null, "smoke", 6, new ArrayList() { + { + add(new double[]{0.6D, 1.4D, 0.0D}); + add(new double[]{1.1D, 1.4D, 0.0D}); + } + }, "", null, 0, false), + locoDieselGP15(EntityLocoDieselGP15.class, new ModelGP15(), "gp15_", true, new float[]{-1.3F, 0.155F, 0F}, new float[]{0F, 180F, 180F}, null, "smoke", 5, new ArrayList() { + { + add(new double[]{1.33D, 1.45D, 0.0D}); + add(new double[]{0.75D, 1.45D, 0.0D}); + } + }, "", null, 0, false), + LocoDieselSW8(EntityLocoDieselSW8.class, new ModelSW8(), "sw8_", true, new float[]{-1.0F, 0.15F, 0F}, new float[]{0F, 180F, 180F}, null, "smoke", 3, new ArrayList() { + { + add(new double[]{1.3D, 1.3D, 0.0D}); + } + }, "", null, 0, false), + locoElectricRenfe446Motor(EntityLocoElectricRenfe446Motor.class, new Modelrenfe446end(), "446_", true, new float[]{-1.9F, 0.15F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + passengerRenfe446Coach(EntityPassengerRenfe446Coach.class, new Modelrenfe446middle(), "446_", true, new float[]{-0.3F, 0.15F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + cabooseRenfe446Tail(EntityCabooseRenfe446Tail.class, new Modelrenfe446end(), "446_", true, new float[]{0.0F, 0.15F, 0.0F}, new float[]{0F, 0F, 180F}, null, "", 0, null, "", null, 0, false), + pch120(EntityLocoElectricPCH120.class, new ModelPCH120Commute(), "pch120commute_", true, new float[]{-1.3F, 0.01F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + pch120Coach(EntityPassengerPCH120Coach.class, new ModelPCH120Car(), "pch120car_", true, new float[]{0F, 0.01F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Class345(EntityElectricClass345.class, new ModelClass345(), "Class345_", true, new float[]{-1.5F, 0.17F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Class345Coach(EntityClass345Coach.class, new ModelClass345Coach(), "Class345_Passenger_", true, new float[]{0F, 0.05F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + LUengine(EntityElectricLUengine.class, new ModelLUengine(), "lu_engine", false, new float[]{-1.0F, 0.16F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + LUpassenger(EntityLUpassenger.class, new ModelLUpassenger(), "lu_passenger", false, new float[]{0F, 0.16F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + DstockEngine(EntityElectricDstockEngine.class, new ModelDstockEngine(), "D_stock_engine_", true, new float[]{-1.0F, 0.16F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + DstockCar(EntityDstockPassenger.class, new ModelDstockPassenger(), "D_stock_passenger_", true, new float[]{0F, 0.16F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + passengerPS52SeatCoach(EntityPassengerPS52SeatCoach.class, new ModelPS52SeatCoach(), "PS_lightweight_52seat_", true, new float[]{0F, 0.15F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + passengerPSCombine(EntityPassengerPSCombine.class, new ModelPSCombine(), "PS_lightweight_baggage-coach_", true, new float[]{0F, 0.15F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + passengerPScenterDiner(EntityPassengerPScenterDiner.class, new ModelPScenterDiner(), "PS_lightweight_center_diner_", true, new float[]{0F, 0.15F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + passengerPSAnotherDiner(EntityPassengerPSAnotherDiner.class, new ModelPSscrewyoutoomanydiners(), "PS_lightweight_center_diner_2_", true, new float[]{0F, 0.15F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + locoElectricMetro2000(EntityElectricMetro2000Motor.class, new ModelMetroMadrid2000Loco(), "metro_2000_", true, new float[]{-1.5F, 0.2F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + passengerMetro2000(EntityPassengerMetro2000.class, new ModelMetro2000Tail(), "metro_2000_", true, new float[]{0F, 0.2F, 0.0F}, new float[]{0F, 0F, 180F}, null, "", 0, null, "", null, 0, false), + locoElectricRenfe450Motor(EntityLocoElectricRenfe450Motor.class, new Modelrenfe450endA(), "450_loco_", true, new float[]{-1.9F, 0.1F, 0.0F}, new float[]{0F, 0F, 180F}, null, "", 0, null, "", null, 0, false), + passengerRenfe450Coach(EntityPassengerRenfe450Coach.class, new Modelrenfe450middle(), "450_passenger_", true, new float[]{-0.0F, 0.1F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + cabooseRenfe450Tail(EntityCabooseRenfe450Tail.class, new Modelrenfe450endB(), "450_passenger_", true, new float[]{0.0F, 0.1F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + passengerCD014(EntityPassengerCD014.class, new ModelCD014(), "cd014_", true, new float[]{0.0F, 0.15F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + passengerCD914(EntityPassengerCD914.class, new ModelCD914(), "cd914_", true, new float[]{0.0F, 0.15F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + passengerCD010(EntityPassengerCD010.class, new ModelCD010(), "cd010_", true, new float[]{0.0F, 0.15F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + locoCD814(EntityLocoDieselCD814.class, new ModelCD814(), "cd814_", true, new float[]{-0.8F, 0.15F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + locoCD810(EntityLocoDieselCD810.class, new ModelCD810(), "cd810_", true, new float[]{-0.8F, 0.15F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + VBShay(EntityLocoSteamVBShay2.class, new ModelVertiBoi2(), "vbshay2", false, new float[]{-0.4F, -1.15F, -0.0F}, new float[]{0F, 0F, 0F}, null, "largesmoke", 20, new ArrayList() { + { + add(new double[]{0.6D, 1.9D, -0.1D}); + } + }, "explode", new ArrayList() { + { + add(new double[]{0.6D, -0.4D, 0.8D}); + add(new double[]{0.3D, 2.3D, 0.0D}); + } + }, 2, true), + locoSteamClimax2(EntityLocoSteamClimaxNew.class, new ModelClimaxNew(), "climax_Grey", false, new float[]{-0.4F, -1.15F, -0.0F}, new float[]{0F, 180F, 0F}, null, "largesmoke", 20, new ArrayList() { + { + add(new double[]{1.55D, 1.6D, 0.0D}); + } + }, "explode", new ArrayList() { + { + add(new double[]{1.0D, -0.0D, 0.8D}); + } + }, 2, true), + freightRoundHopper(EntityFreightRoundHopper.class, new ModelRoundHopper(), "roundedhopper_", true, new float[]{-0F, 0.15F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + freightRibbedHopper(EntityFreightRibbedHopper.class, new ModelRibbedHopper(), "ribbed_hopper_", true, new float[]{-0F, 0.1F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + locoSM42(EntityLocoDieselSM42.class, new SM42(), "SM42_", true, new float[]{-2.0F, 0.05F, 0.0F}, new float[]{0F, 180F, 180F}, null, "smoke", 4, new ArrayList() { + { + add(new double[]{0.9D, 1.35D, 0.0D}); + } + }, "", null, 0, false), + locoDieselWWCPGP7(EntityLocoDieselWWCPGP7.class, new ModelWWCPGP7(), "GP7_Highood_", true, new float[]{-2f, 0.15f, 0}, new float[]{0F, 0F, 180F}, new float[]{0.9f, 1f, 0.9f}, "smoke", 4, new ArrayList() { + { + add(new double[]{1.7D, 1.3D, 0.0D}); + + add(new double[]{0.85D, 1.3D, 0.0D}); + } + }, "", null, 0, false), + locoC11(EntityLocoSteamC11.class, new ModellocoC11(), "locoC11", false, new float[]{-1.5F, 0.2F, 0.0F}, new float[]{0, 180, 180}, null, "largesmoke", 5, new ArrayList() { + { + add(new double[]{3.05D, 1.25D, 0D}); + } + }, "explode", new ArrayList() { + { + add(new double[]{2.9D, 0.00D, 0.75D}); + } + }, 3, true), + LocoDieselGE44Ton(EntityLocoDieselGE44Ton.class, new ModelGE44Ton(), "44_ton_", true, new float[]{-1.0F, 0.15F, 0F}, new float[]{0F, 180F, 180F}, null, "smoke", 3, new ArrayList() { + { + add(new double[]{0.6D, 1.1D, 0.0D}); + add(new double[]{1.4D, 1.1D, 0.0D}); + } + }, "", null, 0, false), + amfleet(EntityPassengerAmfleet.class, new ModelAmfleet(), "amfleet_", true, new float[]{0F, -0.4F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + amfleet2(EntityPassengerAmfleet2.class, new ModelAmfleet2(), "amfleet2_", true, new float[]{0F, -0.4F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + bawx40highcube(EntityFreightBap40highcube.class, new Model40highcube(), "40highcube_", true, new float[]{0F, 0.15F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + WoodchipHopper(EntityFreightBapWoodchipHopper.class, new ModelWoodchipHopper(), "woodchiphopper_", true, new float[]{0F, 0.0F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + OreJenny(EntityFreightBapOreJenny.class, new ModelOreJenny(), "orejenny_", true, new float[]{0F, 0.0F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + MillGondola(EntityFreightBapMillGondola.class, new ModelMillGondola(), "MillGondola_", true, new float[]{0F, 0.0F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + MILW40boxcar(EntityFreightBapMILW40boxcar.class, new ModelMILW40boxcar(), "milw40_", true, new float[]{0F, 0.15F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Freight60centerbeam(EntityFreightBap60centerbeam.class, new Model60centerbeam(), "60ftcb_", true, new float[]{0F, 0.0F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Freight66centerbeam(EntityFreightBap66centerbeam.class, new Model66centerbeam(), "66ftcb_", true, new float[]{0F, 0.0F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Freight73centerbeam(EntityFreightBap73centerbeam.class, new Model73centerbeam(), "73ftcb_", true, new float[]{0F, 0.0F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + PS140(EntityFreightBapPS140.class, new ModelPS140(), "ps140_", true, new float[]{0F, 0.15F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + PS150(EntityFreightBapPS150.class, new ModelPS150(), "ps150_", true, new float[]{0F, 0.15F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + PS160(EntityFreightBapPS160.class, new ModelPS160(), "ps160_", true, new float[]{0F, 0.0F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + WVcaboose(EntityCabooseBapWVcaboose.class, new ModelWVcaboose(), "wvcaboose_", true, new float[]{0F, 0.1675F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + //OWO60Verticube(EntityFreightBapOWO60Verticube.class, new ModelOWO60Verticube(),"owo60verticube_", true, new float[]{0F, 0.1875F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), + PEcoach(EntityPassengerBapPEcoach.class, new ModelPEcoach(), "PECoach_", true, new float[]{0F, 0.105F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + PEobserve(EntityPassengerBapPEobserve.class, new ModelPEobserve(), "PEObserve_", true, new float[]{0F, 0.105F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + VersaLongi(EntityFreightBapVersaLongi.class, new ModelVersaLongi(), "versa_longi_", true, new float[]{0F, 0.0F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + VersaTrans(EntityFreightBapVersaTrans.class, new ModelVersaTrans(), "versa_trans_", true, new float[]{0F, 0.0F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + DOT11111000(EntityFreightBapDOT11111000.class, new Model11000DOT111(), "dot11K_", true, new float[]{0F, 0.00F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + DOT11120600(EntityFreightBapDOT11120600.class, new Model20600DOT111(), "dot206K_", true, new float[]{0F, 0.00F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + DOT11129080(EntityFreightBapDOT11129080.class, new Model29080DOT111(), "dot290K_", true, new float[]{0F, 0.00F /*was 0.20F for height*/, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + F7A(EntityLocoDieselBapF7A.class, new ModelF7A(), "F7A_", true, new float[]{-1.375F, 0.15F, 0F}, new float[]{0F, 180F, 180F}, new float[]{1F, 1.0F, 1F}, "smoke", 3, new ArrayList() { + { + add(new double[]{0.9375D, 1.3D, 0.0D}); + add(new double[]{0.25D, 1.3D, 0.0D}); + + } + }, "", null, 0, false), + F7B(EntityLocoDieselBapF7B.class, new ModelF7B(), "F7B_", true, new float[]{-1.25F, 0.15F, 0F}, new float[]{0F, 180F, 180F}, new float[]{1F, 1.0F, 1F}, "smoke", 3, new ArrayList() { + { + add(new double[]{1.35D, 1.3D, 0.0D}); + add(new double[]{0.55D, 1.3D, 0.0D}); + + } + }, "", null, 0, false), + H1044(EntityLocoDieselBapH1044.class, new ModelH1044(), "FM_H10-44_", true, new float[]{-1.1F, 0.15F, 0F}, new float[]{0F, 180F, 180F}, null, "smoke", 4, new ArrayList() { + { + add(new double[]{1.9D, 1.45D, -0.16D}); + add(new double[]{1.9D, 1.45D, 0.16D}); + } + }, "", null, 0, false), + locoSteamStarClass(EntityLocoSteamStarClass.class, new ModelStarClass(), "StarLoco", false, new float[]{-0.8F, 0.15F, 0F}, new float[]{0F, 180F, 180F}, null, "smoke", 20, new ArrayList() { + { + add(new double[]{1.65D, 1.3D, 0.0D}); + } + }, "explode", new ArrayList() { + { + add(new double[]{1.5D, -0.4D, 0.8D}); + } + }, 2, true), + tenderStarClass(EntityTenderStarClass.class, new ModelStarClassTender(), "StarTender", false, new float[]{0.0F, 0.15F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + passengerStarCarFat(EntityPassengerStarCarFat.class, new ModelStarCarFat(), "GWRClosed", false, new float[]{0F, 0.15F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + passengerStarCarNotFat(EntityPassengerStarCarNotFat.class, new ModelStarCarNotFat(), "GWROpen", false, new float[]{0F, 0.15F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + LightCrane(EntityLightCrane.class, new ModelLightCrane(), "lightcrane2_", true, new float[]{0F, 0.15F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + BR155(EntityLocoElectricBR155.class, new ModelBR155(), "BR155_", true, new float[]{-1.7F, 0.05F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Onion(EntityLocoOnion.class, new ModelOnion(), "Onion_", true, new float[]{-0.7F, 0.1F, 0.0F}, new float[]{0F, 180F, 180F}, null, "largesmoke", 20, new ArrayList() { + { + add(new double[]{0.6D, 1.5D, 0.0D}); + } + }, "explode", new ArrayList() { + { + add(new double[]{1.2D, -0.4D, 0.8D}); + } + }, 2, true), + OnionTender(EntityTenderOnion.class, new ModelOnionTender(), "Onion_Tender_", true, new float[]{0.0F, 0.1F, 0.0F}, new float[]{0F, 0F, 180F}, null, "", 0, null, "", null, 0, false), + loco440RFront(EntityLocoElectric440RFront.class, new Model440R_Front(), "440R_", true, new float[]{-1.9F, 0.1F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + passenger440RMid(EntityPassenger440RMid.class, new Model440R_Mid(), "440R_", true, new float[]{-0.0F, 0.1F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + passenger440RRear(EntityPassenger440RRear.class, new Model440R_Back(), "440R_", true, new float[]{0.0F, 0.1F, 0.0F}, new float[]{0F, 0F, 180F}, null, "", 0, null, "", null, 0, false), + passengerBW305(EntityPassengerBW305.class, new ModelBW305(), "tw_", true, new float[]{0.0F, 0.18F, 0.0F}, new float[]{0.0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + LocoElectricTW305(EntityLocoElectricTW305.class, new ModelTW305(), "tw_", true, new float[]{-1.0F, 0.18F, 0.0F}, new float[]{0.0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + LocoElectricInterurbanSeries100(EntityElectricInterurbanSeries100.class, new ModelInterurbanSeries100(), "Interurban_tram_", true, new float[]{-1.5F, 0.18F, 0.0F}, new float[]{0.0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + GP13(EntityLocoDieselGP13.class, new ModelGP13(), "gp13_", true, new float[]{-0.8F, -0.47F, 0.0F}, new float[]{0F, 180F, 0F}, null, "smoke", 4, new ArrayList() { + { + add(new double[]{-0.2D, 1.2D, 0.0D}); + add(new double[]{0.45D, 1.2D, 0.0D}); + } + }, "", null, 0, false), + DB143(EntityLocoElectricDB143.class, new ModelDB143(), "DB143", false, new float[]{-1.7F, 0.2F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + tenderPETender(EntityTenderPETender.class, new ModelPE_Tender(), "PETender", false, new float[]{0.1F, 0.15F, 0.0F}, new float[]{0F, 0F, 180F}, null, "", 0, null, "", null, 0, false), + locoSteamPELoco(EntityLocoSteamPELoco.class, new ModelPE_Loco(), "PELoco", false, new float[]{-1.5F, 0.15F, 0.0F}, new float[]{0, 180, 180}, null, "largesmoke", 3, new ArrayList() { + { + add(new double[]{3.1D, 1.4D, 0D}); + } + }, "explode", new ArrayList() { + { + add(new double[]{2.9D, 0.05D, 0.65D}); + } + }, 2, true), + BapB23(EntityLocoDieselBapB23.class, new ModelB23(), "b23_", true, new float[]{-1.7F, 0.155F, 0F}, new float[]{0F, 180F, 180F}, null, "smoke", 4, new ArrayList() { + { + } + }, "", null, 0, false), + C424(EntityLocoDieselBapC424.class, new ModelC424(), "c424_", true, new float[]{-1.6F, 0.1F, 0F}, new float[]{0F, 180F, 180F}, null, "largesmoke", 2, new ArrayList() { + { + add(new double[]{1D, 1.65D, 0.0D}); + } + }, "", null, 0, false), + C425(EntityLocoDieselBapC425.class, new ModelC425(), "c425_", true, new float[]{-1.6F, 0.1F, 0F}, new float[]{0F, 180F, 180F}, null, "largesmoke", 2, new ArrayList() { + { + add(new double[]{1D, 1.65D, 0.0D}); + } + }, "", null, 0, false), + GP9(EntityLocoDieselBapGP9.class, new ModelGP9(), "gp9_", true, new float[]{-1.5F, -0.05F, 0F}, new float[]{0F, 180F, 180F}, null, "smoke", 5, new ArrayList() { + { + add(new double[]{0.45D, 1.35D, 0.0D}); + add(new double[]{1.25D, 1.35D, 0.0D}); + } + }, "", null, 0, false), + GP7b(EntityLocoDieselBapGP7b.class, new ModelGP7b(), "bettergp7b_", true, new float[]{-1.5F, -0.05F, 0F}, new float[]{0F, 180F, 180F}, null, "smoke", 5, new ArrayList() { + { + add(new double[]{0.45D, 1.35D, 0.0D}); + add(new double[]{1.25D, 1.35D, 0.0D}); + } + }, "", null, 0, false), + GP7u(EntityLocoDieselBapGP7u.class, new ModelGP7u(), "gp7u_", true, new float[]{-1.5F, -0.05F, 0F}, new float[]{0F, 180F, 180F}, null, "smoke", 5, new ArrayList() { + { + add(new double[]{0.45D, 1.35D, 0.0D}); + add(new double[]{1.25D, 1.35D, 0.0D}); + + } + }, "", null, 0, false), + GP7(EntityLocoDieselBapGP7.class, new ModelGP7BAP(), "bettergp7_", true, new float[]{-1.5F, -0.05F, 0F}, new float[]{0F, 180F, 180F}, null, "smoke", 5, new ArrayList() { + { + add(new double[]{0.45D, 1.35D, 0.0D}); + add(new double[]{1.25D, 1.35D, 0.0D}); + } + }, "", null, 0, false), + GP30(EntityLocoDieselBapGP30.class, new ModelGP30(), "gp30_", true, new float[]{-1.5F, 0.155F, 0F}, new float[]{0F, 180F, 180F}, null, "smoke", 4, new ArrayList() { + { + //add(new double[]{1.9D, 1.4D, 0.0D}); + } + }, "", null, 0, false), + GP38dash2(EntityLocoDieselBapGP38dash2.class, new ModelGP38dash2(), "gp38dash2_", true, new float[]{-1.5F, 0.155F, 0F}, new float[]{0F, 180F, 180F}, null, "smoke", 3, new ArrayList() { + { + add(new double[]{0.75D, 1.4D, 0.0D}); + add(new double[]{1.55D, 1.4D, 0.0D}); + } + }, "", null, 0, false), + KOF_III(EntityLocoDieselKof_III.class, new ModelKOF_III(), "KofIII_", true, new float[]{-0.8F, 0.15F, 0.0F}, new float[]{0F, 180F, 180F}, null, "smoke", 4, new ArrayList() { + { + add(new double[]{0.5D, 1.0D, 0.0D}); + } + }, "", null, 0, false), + KOF_III_M(EntityLocoDieselKof_III_M.class, new ModelKOF_III_M(), "KofIIIM_", true, new float[]{-0.8F, 0.15F, 0.0F}, new float[]{0F, 180F, 180F}, null, "smoke", 4, new ArrayList() { + { + add(new double[]{0.5D, 1.0D, 0.0D}); + } + }, "", null, 0, false), + U36C(EntityLocoDieselBapU36C.class, new ModelU36C(), "u36c_", true, new float[]{-2.3125F, -0.15F/* -0.13F*/, 0F}, new float[]{0F, 180F, 180F}, new float[]{1F, 1F, 1F}, "smoke", 3, new ArrayList() { + { + //add(new double[]{0.75D, 1.75D, 0.0D}); + + } + }, "", null, 0, false), + GP49(EntityLocoDieselBapGP49.class, new ModelGP49(), "gp49_arr_2807", false, new float[]{-1.5F, 0.155F, 0F}, new float[]{0F, 180F, 180F}, null, "smoke", 3, new ArrayList() { + { + } + }, "", null, 0, false), + GP15(EntityLocoDieselBapGP15.class, new ModelBapGP15(), "gp15_bap_", true, new float[]{-1.3F, 0.155F, 0F}, new float[]{0F, 180F, 180F}, null, "smoke", 5, new ArrayList() { + { + } + }, "", null, 0, false), + spookyGarrattFront(EntityLocoSteamGarrattFront.class, new ModelGarrattFront(), "GarrattTexture", false, new float[]{3.5F, 0.155F, 0.0F},/*position*/ new float[]{0F, 180F, 180F}, new float[]{1f, 1f, 1f},/*scale*/ "largesmoke", 20, new ArrayList() { + { + //add(new double[] { 4.65D, 1.7D, 0.0D });//smoke + } + }, "explode", new ArrayList() { + { + //add(new double[] { 4.2D, -0.4D, 0.8D });//steam + } + }, 2, true), + spookyGarrattRear(EntityLocoSteamGarrattRear.class, new ModelGarrattBack(), "GarrattTexture", false, new float[]{3.25F, 0.155F, 0.0F},/*position*/ new float[]{0F, 0F, 180F}, new float[]{1f, 1f, 1f},/*scale*/ "largesmoke", 20, new ArrayList() { + { + //add(new double[] { 4.65D, 1.7D, 0.0D });//smoke + } + }, "explode", new ArrayList() { + { + //add(new double[] { 4.2D, -0.4D, 0.8D });//steam + } + }, 2, true), + spookyGarrattMid(EntityLocoSteamGarrattMid.class, new ModelGarrattMid(), "GarrattTexture", false, new float[]{-2.25F, 0.155F, 0.0F},/*position*/ new float[]{0F, 0F, 180F}, new float[]{1f, 1f, 1f},/*scale*/ "largesmoke", 20, new ArrayList() { + { + //add(new double[] { 4.65D, 1.7D, 0.0D });//smoke + } + }, "explode", new ArrayList() { + { + //add(new double[] { 4.2D, -0.4D, 0.8D });//steam + } + }, 2, true), + Skook(EntityLocoSteamSkook.class, new ModelSkookum(), "skookum", false, new float[]{-0.0F, -0.0F, -0.0F}, new float[]{0F, 180F, 180F}, null, "largesmoke", 20, new ArrayList() { + { + add(new double[]{2.4D, 1.5D, -0.0D}); + } + }, "explode", new ArrayList() { + { + add(new double[]{0.9D, -0.4D, 0.8D}); + add(new double[]{2.5D, -0.4D, 0.8D}); + add(new double[]{-0.5D, 1.5D, 0.0D}); + } + }, 2, true), + SkookTender(EntityTenderSkookTender.class, new ModelSkookumTender(), "skookumtender", false, new float[]{-0.00F, 0.0F, 0F}, new float[]{0F, 0F, 180F}, null, "", 0, null, "", null, 0, false), + EF1(EntityLocoElectricBapEF1.class, new ModelEF1(), "ef1_", true, new float[]{-1.60F, 0.1875F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + EF1B(EntityLocoElectricBapEF1B.class, new ModelEF1B(), "ef1b_", true, new float[]{-1.15635F, 0.1875F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + EP1A(EntityLocoElectricBapEP1A.class, new ModelEP1A(), "ep1a_", true, new float[]{-1.60F, 0.1875F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + SD9(EntityLocoDieselBapSD9.class, new ModelSD9(), "SD9_", true, new float[]{-1.6F, 0.155F, 0F}, new float[]{0F, 180F, 180F}, null, "smoke", 3, new ArrayList() { + { + //add(new double[]{0.8D, 1.4D, 0.0D}); + //add(new double[]{1.6D, 1.4D, 0.0D}); + } + }, "", null, 0, false), + SD40dash2(EntityLocoDieselBapSD40dash2.class, new ModelSD40dash2(), "sd40_", true, new float[]{-1.9F, 0.155F, 0F}, new float[]{0F, 180F, 180F}, null, "smoke", 6, new ArrayList() { + { + //add(new double[]{2.3D, 1.5D, 0.0D}); + } + }, "", null, 0, false), + WWCP40FootBox(EntityFreightWWCP40FootBox.class, new ModelWWCP40FootBox(), "40ft_Boxcar_", true, new float[]{0F, 0.1875F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + //HuskyStackWellcar(EntityFreightBapHuskyStack.class, new ModelHuskyStack(), "huskystack_", true, new float[]{0F, 0.15F, 0F}, new float[] { 0F, 180F, 180F }, null, "", 0, null, "", null, 0, false), + U23B(EntityLocoDieselBapU23B.class, new ModelU23B(), "U23B_", true, new float[]{-0F, -0.0F, 0F}, null, null, "smoke", 4, new ArrayList() { + { + } + }, "", null, 0, false), + U18B(EntityLocoDieselBapU18B.class, new ModelU18B(), "U18B_", true, new float[]{-0F, -0.0F, 0F}, null, null, "smoke", 4, new ArrayList() { + { + } + }, "", null, 0, false), + hicube60foot(EntityFreightBaphicube60foot.class, new Modelhicube60foot(), "hicube60_", true, new float[]{0F, 0.155F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + freightBNSFGon(EntityFreightBNSFGon.class, new ModelBNSFGon(), "BNSFMillGon_", true, new float[]{0.0F, 0.0F, 0.0F}, null, null, "", 0, null, "", null, 0, false), + locoILMA(EntityLocoElectricILMA.class, new ModelILMA(), "ILMA_", true, new float[]{0.0F, 0.15F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + locoILMB(EntityLocoElectricILMB.class, new ModelILMB(), "ILMB_", true, new float[]{0.0F, 0.15F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Feve3300Front(EntityLocoElectricFeve3300.class, new Modelfeve3300front(), "feve3300_", true, new float[]{-1.8F, 0.18F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Feve3300Rear(EntityPassengerFeve3300.class, new Modelfeve3300rear(), "feve3300_", true, new float[]{-0.0F, 0.18F, 0.0F}, new float[]{0F, 0F, 180F}, null, "", 0, null, "", null, 0, false), + HH660(EntityLocoDieselBapHH660.class, new ModelHH660(), "hh600_", true, new float[]{-1F, -0.1F, 0F}, new float[]{0F, 180F, 180F}, null, "smoke", 4, new ArrayList() { + { + add(new double[]{2.0D, 1.35D, 0D}); + } + }, "", null, 0, false), + Krautt(EntityLocoDieselBapKrautt.class, new ModelKrautt(), "KM_ML4000_", true, new float[]{0F, 0.0F, 0F}, new float[]{0F, 180F, 180F}, null, "smoke", 6, new ArrayList() { + { + } + }, "", null, 0, false), + BoxMotor(EntityLocoElectricBoxMotor.class, new boxmotor(), "BoxMotorTexture", false, new float[]{-1.8F, 0.1F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Hopper5201(EntityFreightBapHopper5201.class, new ModelHopper5201(), "5201_", true, new float[]{-0F, 0.0F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Hopper6260(EntityFreightBapHopper6260.class, new ModelHopper6260(), "6260_", true, new float[]{-0F, 0.0F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Skeleton(EntityFreightBapSkeletonLogCar.class, new ModelSkeletonLogCar(), "SkeletonLogCar_", true, new float[]{0.0F, -0.0F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Shay3Truck(EntityLocoSteamShay3Truck.class, new ModelShay3Truck(), "3truckShay_", true, new float[]{0F, 0.0F, 0F}, new float[]{0F, 180F, 180F}, null, "largesmoke", 4, new ArrayList() { + { + add(new double[]{2.15D, 1.3D, -0.17D});//1.1D + } + }, "explode", new ArrayList() { + { + add(new double[]{0.9D, -0.4D, 0.6D}); + //add(new double[] { 0.6D, 1.1D, 0.0D }); + } + }, 2, true), + Shay3TruckTender(EntityTenderShay3Truck.class, new ModelShay3TruckTender(), "3truckShay_", true, new float[]{0.0F, 0.0F, 0.0F}, new float[]{0F, 0F, 180F}, null, "", 0, null, "", null, 0, false), + Dash840B(EntityLocoDieselBapDash840B.class, new ModelDash840B(), "dash8_40b_", true, new float[]{-0F, -0.0F, 0F}, null, null, "smoke", 4, new ArrayList() { + { + } + }, "", null, 0, false), + Class44(EntityLocoDieselClass44.class, new ModelClass44(), "Class44_", true, new float[]{0F, 0.0F, 0.0F}, new float[]{0F, 90F, 180F}, null, "largesmoke", 1, new ArrayList() { + { + add(new double[]{2.3D, 1.6D, 0D}); + } + }, "", null, 0, false), + EU07(EntityLocoElectricEU07.class, new EU07Modernised(), "EU07_", true, new float[]{-0F, 0.00F, 0.0F}, new float[]{0F, 0F, 180F}, new float[]{0.9f, 0.9f, 0.9f}, "", 0, null, "", null, 0, false), + SW1(EntityLocoDieselBapSW1.class, new ModelSW1(), "sw1_", true, new float[]{-0.0F, 0.0F, 0F}, new float[]{0F, 180F, 180F}, null, "smoke", 3, new ArrayList() { + }, "", null, 0, false), + SW1500(EntityLocoDieselBapSW1500.class, new ModelSW1500(), "sw1500_", true, new float[]{-0.0F, 0.0F, 0F}, new float[]{0F, 180F, 180F}, null, "smoke", 3, new ArrayList() { + }, "", null, 0, false), + GM6C(EntityLocoElectricBapGM6C.class, new ModelGM6C(), "GM6C_demo", false, new float[]{-0.0F, 0.0F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Dash840C(EntityLocoDieselBapDash840C.class, new ModelDash840C(), "dash8_40c_", true, new float[]{-0F, -0.0F, 0F}, null, null, "smoke", 4, new ArrayList() { + { + } + }, "", null, 0, false), + SW1200(EntityLocoDieselBapSW1200.class, new ModelSW1200(), "sw1200_", true, new float[]{-0.0F, 0.0F, 0F}, new float[]{0F, 180F, 180F}, null, "smoke", 3, new ArrayList() { + }, "", null, 0, false), + RSD15(EntityLocoDieselBapRSD15.class, new ModelRSD15(), "RSD15_", true, new float[]{-0.0F, 0.0F, 0F}, new float[]{0F, 180F, 180F}, null, "smoke", 6, new ArrayList() { + }, "", null, 0, false), + PSBaggage(EntityFreightPS73Baggage.class, new ModelPS73Baggage(), "PS_Baggage_", true, new float[]{0F, 0.15F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + ES44(EntityLocoDieselBapES44.class, new ModelES44(), "es44_", true, new float[]{-2.2F, 0.15F, 0F}, new float[]{0F, 180F, 180F}, null, "smoke", 5, new ArrayList() { + { + add(new double[]{1.0D, 1.4D, 0.0D}); + + } + }, "", null, 0, false), + Dash9_44CW(EntityLocoDieselBapDash9_44CW.class, new ModelDash9_44CW(), "d9-44cw_", true, new float[]{-2.2F, 0.15F, 0F}, new float[]{0F, 180F, 180F}, null, "smoke", 5, new ArrayList() { + { + + } + }, "", null, 0, false), + SD70Mac(EntityLocoDieselBapSD70Mac.class, new ModelSD70Mac(), "sd70mac_", true, new float[]{-2.1F, 0.15F, 0F}, new float[]{0F, 180F, 180F}, null, "smoke", 5, new ArrayList() { + + { + add(new double[]{2.35D, 1.5D, 0.0D}); + } + }, "", null, 0, false), + Dash840BB(EntityLocoDieselBapDash840BB.class, new ModelDash840BB(), "dash8_40b_b_", true, new float[]{-0F, -0.0F, 0F}, null, null, "smoke", 4, new ArrayList() { + { + } + }, "", null, 0, false), + Dash840BW(EntityLocoDieselBapDash840BW.class, new ModelDash840BW(), "dash8_40bw_", true, new float[]{-0F, -0.0F, 0F}, null, null, "smoke", 4, new ArrayList() { + { + } + }, "", null, 0, false), + PSBaggage85(EntityFreightPS85Baggage.class, new ModelPS85Baggage(), "PS_lightweight_85_baggage_", true, new float[]{0F, 0.15F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Reefer64(EntityFreightBapReefer64Foot.class, new ModelReefer64Foot(), "reefer_64_", true, new float[]{0F, 0.155F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + DH643(EntityLocoDieselBapDH643.class, new ModelDH643(), "alco_dh423_not_dumb", false, new float[]{-0.0F, 0.0F, 0F}, new float[]{0F, 180F, 180F}, null, "smoke", 6, new ArrayList() { + }, "", null, 0, false), + CF7(EntityLocoDieselBapCF7.class, new ModelCF7Angle(), "CF7_Angle_", true, new float[]{-0F, -0.0F, 0F}, new float[]{0F, 180F, 180F}, null, "smoke", 6, new ArrayList() { + { + } + }, "", null, 0, false), + CF7round(EntityLocoDieselBapCF7round.class, new ModelCF7round(), "CF7_Round_", true, new float[]{-0F, -0.0F, 0F}, new float[]{0F, 180F, 180F}, null, "smoke", 6, new ArrayList() { + { + } + }, "", null, 0, false), + alcoS2(EntityLocoDieselBapAlcoS2.class, new ModelAlcoS2(), "alcos2_", true, new float[]{0f, 0f, 0f}, new float[]{0F, 180F, 180F}, null, "smoke", 5, new ArrayList() { + { + add(new double[]{0.7D, 1.3D, -0.18D}); + } + }, "", null, 0, false), + NRE3gs21b(EntityLocoDieselBapNRE3gs21b.class, new ModelNRE3gs21b(), "3gs21b_", true, new float[]{-1.5F, 0.155F, 0F}, new float[]{0F, 180F, 180F}, null, "smoke", 3, new ArrayList() { + { + add(new double[]{0.15D, 1.3D, 0.0D}); //farthest from cab + add(new double[]{1.05D, 1.3D, 0.0D}); //middle + add(new double[]{2.0D, 1.3D, 0.0D}); // closest to cab + } + }, "", null, 0, false), + Beep(EntityLocoDieselBapBeep.class, new ModelBeep(), "atsfbeep", false, new float[]{-0F, 0.0F, 0F}, new float[]{0F, 180F, 180F}, null, "smoke", 4, new ArrayList() { + { + add(new double[]{1.45D, 1.25D, 0.0D}); + add(new double[]{1.65D, 1.25D, 0.0D}); + add(new double[]{1.05D, 1.25D, 0.0D}); + add(new double[]{1.25D, 1.25D, 0.0D}); + } + }, "", null, 0, false), + GP38dash9W(EntityLocoDieselBapGP38dash9W.class, new ModelGP38dash9W(), "GP38dash9W_Green", false, new float[]{-1.5F, 0.155F, 0F}, new float[]{0F, 180F, 180F}, null, "smoke", 3, new ArrayList() { + { + } + }, "", null, 0, false), + class158motor(EntityLocoDieselClass158.class, new ModelClass158(), "Class_158_", true, new float[]{-1.85F, -0.45F, 0.0F}, new float[]{0F, 180F, 180F}, null, "smoke", 2, new ArrayList() { + { + } + }, "", null, 0, false), + class158car(EntityClass158Coach.class, new ModelClass158Middle(), "Class_158_", true, new float[]{0.5F, -0.45F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + //HBC1C(EntityCabooseBapHBC1C.class, new ModelHBC1C(),"HBC1C_", true, null, null, null, "", 0, null, "", null, 0, false), + DRGWCaboose(EntityCabooseBapDRGW.class, new ModelDRGW01400Caboose(), "BAP_DRGW_01400_", true, null, null, null, "", 0, null, "", null, 0, false), + passengerPSSleeper565(EntityPassengerPSSleeper565.class, new ModelPSSleeper565(), "PS_lightweight_5-6-5_sleeper_", true, new float[]{0F, 0.15F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + passengerPSSleeper565DRGW(EntityPassengerPSSleeper565DRGW.class, new ModelPSSleeper565DRGW(), "PS_DRGW_lightweight_5-6-5_sleeper", false, new float[]{0F, 0.15F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + AlcoPA1(EntityLocoDieselAlcoPA1.class, new ModelAlcoPA(), "AlcoPA1_", true, new float[]{-1.6F, 0.15F, 0F}, new float[]{0F, 180F, 180F}, new float[]{1F, 1.0F, 1F}, "smoke", 3, new ArrayList() { + { + } + }, "", null, 0, false), + AlcoPB1(EntityLocoDieselAlcoPB1.class, new ModelAlcoPB(), "AlcoPB1_", true, new float[]{-1.55F, 0.15F, 0F}, new float[]{0F, 180F, 180F}, new float[]{1F, 1.0F, 1F}, "smoke", 3, new ArrayList() { + { + } + }, "", null, 0, false), + EMDE8A(EntityLocoDieselEMDE8A.class, new ModelEMDE8A(), "EMDE8A_", true, new float[]{-1.85F, 0.15F, 0F}, new float[]{0F, 180F, 180F}, new float[]{1F, 1.0F, 1F}, "smoke", 3, new ArrayList() { + { + } + }, "", null, 0, false), + + //tcce4 new stuff + SNCB_M6(EntityPassengerSNCB_M6.class, new ModelSNCB_M6(), "SNCB_M6_", true, new float[]{-2.0f, .095F, 0F}, new float[]{0f, 180F, 180F}, null, "", 0, null, "", null, 0, false), + SNCB_M6_TAIL(EntityPassengerSNCB_M6_TAIL.class, new ModelSNCB_M6_TAIL(), "SNCB_M6_Tail_", true, new float[]{-2.30F, 0.04f, 0F}, new float[]{0F, 0, 180F}, null, "", 0, null, "", null, 0, false), + + Class153Engine(EntityLocoDieselClass153.class, new ModelClass153(), "class_153_", true, new float[]{-2.1F, 0.18F, 0F}, new float[]{0F, 180F, 180F}, null, "smoke", 3, new ArrayList() { + }, "", null, 0, false), + Class153Coach(EntityPassengerClass153.class, new ModelClass153(), "class_153_", true, new float[]{0F, 0.18F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Class156Engine(EntityLocoDieselClass156.class, new ModelClass156(), "Class_156_", true, new float[]{-1.3F, -0.57F, 0F}, new float[]{0F, 180F, 180F}, null, "smoke", 3, new ArrayList() { + }, "", null, 0, false), + Class47(EntityLocoDieselClass47.class, new ModelClass47(), "Class_47_", true, new float[]{-4f, 0f, 0f}, new float[]{0f, 180f, 180f}, null, "smoke", 3, new ArrayList() { + }, "", null, 0, false), + Class319Engine(EntityElectricClass319.class, new ModelClass319Engine(), "Br_319_", true, new float[]{-1.65F, 0.15F, 0F}, new float[]{0F, 180F, 180F}, null, "smoke", 3, new ArrayList(), "", null, 0, false), + Class319Middle(EntityPassengerClass319Middle.class, new ModelClass319Middle(), "Br_319_", true, new float[]{0F, 0.15F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Class319Panto(EntityPassengerClass319Panto.class, new ModelClass319Panto(), "Br_319_", true, new float[]{0F, 0.15F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Class319Tail(EntityPassengerClass319Tail.class, new ModelClass319Engine(), "Br_319_", true, new float[]{0F, 0.15F, 0F}, new float[]{0F, 0F, 180F}, null, "", 0, null, "", null, 0, false), + PSRPOPM(EntityFreightPSRPOPM.class, new ModelPSRPOPM(), "PSRPOPM_", true, new float[]{0F, 0.15F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + PSRPO(EntityFreightPSRPO.class, new ModelPSRPO(), "PSRPO_", true, new float[]{0F, 0.15F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + KVB_2300(EntityElectricKVB_2300.class, new ModelKVB_2300(), "kvb_2300_", true, new float[]{-1.25F, 0.15F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + KVB_2300_B(EntityPassengerKVB_2300_B.class, new ModelKVB_2300_B(), "kvb_2300_", true, new float[]{-1.25F, 0.15F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + //tcce5 new stuff (its mixed around in the file tbh) + BR_MK2F_Coach(EntityPassengerBR_MK2F_Coach.class, new ModelBR_MK2F_Coach(), "BR_Mk2f_", true, new float[]{0.485F, 0F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + BR_MK2F_BSO(EntityPassengerBR_MK2F_BSO.class, new ModelBR_MK2F_BSO(), "BR_Mk2f_BSO_", true, new float[]{0.485F, 0F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + BR_MK2F_DBSO(EntityElectricBR_MK2F_DBSO.class, new ModelBR_MK2F_DBSO(), "BR_Mk2f_DBSO_", true, new float[]{-1.5F, 0F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + BR_MK3_Buffet(EntityPassengerBR_MK3_Buffet.class, new ModelBR_MK3_Buffet(), "BR_Mk3_Buffet_", true, new float[]{0.15F, 0F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + BR_MK3_Coach(EntityPassengerBR_MK3_Coach.class, new ModelBR_MK3_Coach(), "BR_Mk3_Coach_", true, new float[]{0.15F, 0F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + BR_MK3a_Coach(EntityPassengerBR_MK3a_Coach.class, new ModelBR_Mk3a_Coach(), "BR_Mk3a_", true, new float[]{0.15F, 0F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + BR_MK3_Pantograph(EntityPassengerBR_MK3_Pantograph.class, new ModelBR_MK3_Pantograph(), "BR_Mk3_Pantograph_", true, new float[]{0.15F, 0F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + BR_MK3_DVT(EntityElectricBR_MK3_DVT.class, new ModelBR_MK3_DVT(), "BR_Mk3_DVT_", true, new float[]{-1.5F, 0F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + BR_MK4_DVT(EntityElectricBR_MK4_DVT.class, new ModelBR_MK4_DVT(), "BR_Mk4_DVT_", true, new float[]{-1.9F, 0F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + BR_MK4_Coach(EntityPassengerBR_MK4_Coach.class, new ModelBR_MK4_Coach(), "BR_Mk4_", true, new float[]{0.2F, 0F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + BR_MK4_Buffet(EntityPassengerBR_MK4_Buffet.class, new ModelBR_MK4_Buffet(), "BR_Mk4_Buffet_", true, new float[]{0.22F, 0F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Class43(EntityLocoDieselClass43.class, new ModelClass43(), "Class_43_", true, new float[]{-0.65F, 0F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Class90(EntityElectricClass90.class, new ModelClass90(), "Class_90_", true, new float[]{-0.55F, 0F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Class91(EntityElectricClass91.class, new ModelClass91(), "Class_91_", true, new float[]{-1.2F, 0.05F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Class321(EntityElectricClass321.class, new ModelClass321(), "Class_321_", true, new float[]{-1.2F, -0.455F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Class321Panto(EntityPassengerClass321Panto.class, new ModelClass321_Panto(), "Class_321_Panto_Car_", true, new float[]{0.6F, -0.455F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Class321Coach(EntityPassengerClass321Coach.class, new ModelClass321Coach(), "Class_321_Trailer_Car_", true, new float[]{0.6F, -0.455F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + passengerMinetrain(EntityPassengerMinetrain.class, new ModelPassengerMinetrain(), "minetrain", false, new float[]{0.0F, -0.47F, 0.0F}, null, null, "", 0, null, "", null, 0, false), + asteri(EntityLocoSteamasteri.class, new Modelasteri(), "asteri", false, new float[]{-1.0F, 0.16F, 0F}, new float[]{5F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + //TCCE6 + C415H(EntityLocoDieselC415H.class, new ModelC415H(), "C415h_", true, new float[]{0F, 0.0F, 0F}, new float[]{0F, 180F, 180F}, null, "smoke", 4, new ArrayList() { + { + } + }, "", null, 0, false), + C415S(EntityLocoDieselC415S.class, new ModelC415S(), "C415s_", true, new float[]{0F, 0.0F, 0F}, new float[]{0F, 180F, 180F}, null, "smoke", 4, new ArrayList() { + { + } + }, "", null, 0, false), + C415L(EntityLocoDieselC415L.class, new ModelC415L(), "C415l_", true, new float[]{-1.2F, 0.105F, 0F}, new float[]{0F, 180F, 180F}, null, "smoke", 4, new ArrayList() { + { + add(new double[]{1.85D, 1.55D, 0.0D}); + } + }, "", null, 0, false), + GE25Ton(EntityLocoDieselGE25Ton.class, new ModelGE25Ton(), "25ton_", true, new float[]{0.0F, 0.15F, 0F}, new float[]{0F, 180F, 180F}, null, "smoke", 3, new ArrayList() { + { + add(new double[]{0.6D, 1.1D, 0.0D}); + } + }, "", null, 0, false), + GSI60FootBulkhead(EntityFreightGSI60FootBulkhead.class, new ModelGSI60FootBulkheadFlat(), "gsi_60bulk_", true, new float[]{0F, 0.0F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + GSC60FootFlat(EntityFreightGSC60FootFlat.class, new ModelGSI60FootBulkheadFlat(), "gsc_60flat_", true, new float[]{0F, 0.0F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + FMH24_66(EntityLocoDieselFMH24_66.class, new ModelFMH24_66(), "FM_H24-66_", true, new float[]{-1.9F, 0.15F, 0F}, new float[]{0F, 180F, 180F}, null, "smoke", 4, new ArrayList() { + { + //add(new double[]{1.85D, 1.55D, 0.0D}); + } + }, "", null, 0, false), + FMH24_66L(EntityLocoDieselFMH24_66L.class, new ModelFMH24_66L(), "FM_H24-66_L_", true, new float[]{-1.9F, 0.15F, 0F}, new float[]{0F, 180F, 180F}, null, "smoke", 3, new ArrayList() { + { + } + }, "", null, 0, false), + EMDE8B(EntityLocoDieselEMDE8B.class, new ModelEMDE8B(), "EMDE8B_", true, new float[]{-1.75F, 0.15F, 0F}, new float[]{0F, 180F, 180F}, new float[]{1F, 1.0F, 1F}, "smoke", 3, new ArrayList() { + { + } + }, "", null, 0, false), + passengerPSLunchCounter_Lounge(EntityPassengerPSLunchCounter_Lounge.class, new ModelPSLunchCounter_Lounge(), "PS_lightweight_LunchCounter_Lounge_", true, new float[]{0F, 0.15F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + passengerPS30SeatParlor(EntityPassengerPS30SeatParlor.class, new ModelPS30SeatParlor(), "PS_lightweight_30SeatParlor_", true, new float[]{0F, 0.15F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + passengerPS54SeatCoach_Lounge(EntityPassengerPS54SeatCoach_Lounge.class, new ModelPS54SeatCoach_Lounge(), "PS_lightweight_54SeatCoach_Lounge_", true, new float[]{0F, 0.15F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + passengerPS58SeatCoach_Observation(EntityPassengerPS58SeatCoach_Observation.class, new ModelPS58SeatCoach_Observation(), "PS_lightweight_58SeatCoach_Observation_", true, new float[]{0F, 0.15F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + passengerPSBM56SeatCoach(EntityPassengerPSBM56SeatCoach.class, new ModelPSBM56SeatCoach(), "PS_lightweight_BM56SeatCoach_", true, new float[]{0F, 0.15F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + passengerPSBMCombine(EntityPassengerPSBMCombine.class, new ModelPSBMCombine(), "PS_lightweight_BMCombine_", true, new float[]{0F, 0.15F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + passengerPSBMDiner_Lounge(EntityPassengerPSBMDiner_Lounge.class, new ModelPSBMDiner_Lounge(), "PS_lightweight_BMDiner_Lounge_", true, new float[]{0F, 0.15F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + EMDE7A(EntityLocoDieselEMDE7A.class, new ModelEMDE7A(), "EMDE7A_", true, new float[]{-1.85F, 0.15F, 0F}, new float[]{0F, 180F, 180F}, new float[]{1F, 1.0F, 1F}, "smoke", 3, new ArrayList() { + { + } + }, "", null, 0, false), + EMDE7B(EntityLocoDieselEMDE7B.class, new ModelEMDE7B(), "EMDE7B_", true, new float[]{-1.75F, 0.15F, 0F}, new float[]{0F, 180F, 180F}, new float[]{1F, 1.0F, 1F}, "smoke", 3, new ArrayList() { + { + } + }, "", null, 0, false), + freight5Plank(EntityFreight5Plank.class, new Model5Plank(), "5_plank_", true, new float[]{0f, 0.15f, 0f}, new float[]{0f, 180f, 180f}, null, "", 0, null, "", null, 0, false), + NMBS_HLE_18(EntityLocoElectricNMBS_HLE_18.class, new ModelNMBS_HLE_18(), "hle19_", true, new float[]{-1.5F, 0.05F, 0}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + BR_Mk_1_BSO(EntityPassengerBR_Mk1_BSO.class, new ModelBR_Mk1_BSO(), "BR_Mk1_BSO_", true, new float[]{0, 0, 0,}, new float[]{0, 180, 180}, null, "", 0, null, "", null, 0, false), + BR_Mk_1_TSO(EntityPassengerBR_Mk1_TSO.class, new ModelBR_Mk1_TSO(), "BR_Mk1_TSO_", true, new float[]{0, 0, 0,}, new float[]{0, 180, 180}, null, "", 0, null, "", null, 0, false), + BR_Mk_1_Buffet(EntityPassengerBR_Mk1_Buffet.class, new ModelBR_Mk1_Buffet(), "BR_Mk1_Buffet_", true, new float[]{0, 0, 0,}, new float[]{0, 180, 180}, null, "", 0, null, "", null, 0, false), + BR_Mk_1_TPO_Stowage(EntityFreightBR_Mk1_TPO_Stowage.class, new ModelBR_Mk1_TPO_Stowage(), "BR_Mk1_TPO_", true, new float[]{0F, 0F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + BR_Mk_1_BG(EntityPassengerBR_Mk1_BG.class, new ModelBR_Mk1_BG(), "BR_Mk1_BG_", true, new float[]{0, 0, 0}, new float[]{0, 180, 180}, null, "", 0, null, "", null, 0, false), + Class175(EntityLocoDieselClass175.class, new ModelClass175(), "Class_175_", true, new float[]{-2.25f, -0.127f, 0}, new float[]{0, 180, 180}, null, "smoke", 1, new ArrayList() { + }, "", null, 0, false), + Class175Coach(EntityPassengerClass175Coach.class, new ModelClass175Coach(), "Class_175_Middle_Car_", true, new float[]{0, -0.127f, 0}, new float[]{0, 180F, 180F}, null, "", 0, null, "", null, 0, false), + FMH16_66(EntityLocoDieselFMH16_66.class, new ModelFMH16_66(), "FM_H16-66_", true, new float[]{-1.7F, 0.15F, 0F}, new float[]{0F, 180F, 180F}, null, "smoke", 4, new ArrayList() { + { + //add(new double[]{1.85D, 1.55D, 0.0D}); + } + }, "", null, 0, false), + ACFGNRPO_30(EntityPassengerACFGNRPO_30.class, new ModelACFGNRPO_30(), "AC&F_lightweight_GNRPO30_", true, new float[]{0F, 0.15F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + ACFGN60SeatCoach(EntityPassengerACFGN60SeatCoach.class, new ModelACFGN60SeatCoach(), "AC&F_lightweight_GN60SeatCoach_", true, new float[]{0F, 0.15F, 0.0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + FGV4300Motor(EntityLocoElectricFGV4300.class, new ModelFGV4300Motor(), "4300_motorcar", false, new float[]{-1.3F, -0.03F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + FGV4300Coach(EntityPassengerFGV4300Coach.class, new ModelFGV4300Coach(), "4300_middle", false, new float[]{0F, -0.03F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + FGV4300Tail(EntityPassengerFGV4300Tail.class, new ModelFGV4300Tail(), "4300_motorcar", false, new float[]{0F, -0.03F, 0F}, new float[]{0F, 0F, 180F}, null, "", 0, null, "", null, 0, false), + MetroMadrid3000Loco(EntityElectricMetro3000Motor.class, new ModelMetroMadrid3000Loco(), "MM3000_", true, new float[]{-1.5F, 0.2F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + PassengerMetro3000(EntityPassengerMetro3000.class, new ModelMetroMadrid3000Passenger(), "MM3000_", true, new float[]{0F, 0.2F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + PassengerMetro3000Tail(EntityPassengerMetro3000Tail.class, new ModelMetroMadrid3000Loco(), "MM3000_", true, new float[]{0F, 0.2F, 0F}, new float[]{0F, 0F, 180F}, null, "", 0, null, "", null, 0, false), + CQ310(EntityElectricCQ310Loco.class, new Modelcq310loco(), "CQ_310_", true, new float[]{-1.5F, 0.2F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + CQ310Passenger(EntityPassengerCQ310Passenger.class, new Modelcq310loco(), "CQ_310_", true, new float[]{0F, 0.2F, 0F}, new float[]{0F, 0F, 180F}, null, "", 0, null, "", null, 0, false), + Class162Engine(EntityElectricClass162.class, new ModelClass162Engine(), "Class_162_engine_", true, new float[]{-2F, 0.155F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Class162CoachB(EntityPassengerClass162CoachB.class, new ModelClass162CoachB(), "Class_162_Coach_B_", true, new float[]{0F, 0.155F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Class162CoachA(EntityPassengerClass162CoachA.class, new ModelClass162CoachA(), "Class_162_Coach_A_", true, new float[]{0F, 0.155F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Class162Tail(EntityPassengerClass162Tail.class, new ModelClass162Engine(), "Class_162_engine_", true, new float[]{0F, 0.155F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Class34(EntityLocoDieselClass34.class, new ModelClass34(), "class_34_", true, new float[]{-2.75F, 0.17F, 0F}, new float[]{0F, 180F, 180F}, null, "smoke", 3, new ArrayList() { + }, "", null, 0, false), + tankerUK(EntityTankerUK.class, new ModelTankerUK(), "Tanker_UK_", true, new float[]{0F, 0.155F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + MetalTram(EntityLocoElectricMetalTram.class, new ModelMetalTram(), "Metal_Tram_", true, new float[]{-1F, 0.18F, 0.0F}, new float[]{0.0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + MetalTramCoach(EntityPassengerMetalTramCoach.class, new ModelMetalTramCoach(), "Metal_Tram_", true, new float[]{0.0F, 0.18F, 0.0F}, new float[]{0.0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + HopperUK(EntityFreightHopperUK.class, new ModelHopper_UK(), "Hopper_UK_", true, new float[]{0F, 0.1F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + B80C_A(EntityElectricB80C_A.class, new ModelB80C_A(), "B80C_", true, new float[]{-1.25F, 0.15F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + B80C_B(EntityPassengerB80C_B.class, new ModelB80C_B(), "B80C_", true, new float[]{-1.25F, 0.15F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + WoodenTramCoach(EntityPassengerWoodenTramCoach.class, new ModelWoodenTramCoach(), "Wooden_Tram_Coach_", true, new float[]{0.0F, 0.18F, 0.0F}, new float[]{0.0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + MA100_Loco(EntityElectricMA100_Loco.class, new ModelMA100_Loco(), "MA100_", true, new float[]{-0.95F, 0.16F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + MA100_Tail(EntityPassengerMA100_Tail.class, new ModelMA100_Tail(), "MA100_", true, new float[]{0F, 0.16F, 0F}, new float[]{0F, 0F, 180F}, null, "", 0, null, "", null, 0, false), + ExpressFreightVan(EntityFreightExpressFreightVan.class, new ModelExpressFreightVan(), "Express_Freight_Van_", true, new float[]{0F, 0.1F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Class390Front(EntityElectricClass390.class, new ModelClass390Front(), "Class_390_Front_", true, new float[]{-2.3F, 0F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Class390Coach(EntityPassengerClass390Coach.class, new ModelClass390Coach(), "Class_390_Coach_", true, new float[]{0F, 0.F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Class390Panto(EntityPassengerClass390Panto.class, new ModelClass390Panto(), "Class_390_Panto_", true, new float[]{0F, 0.F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Class121Bubblecar(EntityLocoDieselClass121.class, new ModelClass121(), "bubble_car_", true, new float[]{-2.1F, 0.17F, 0F}, new float[]{0F, 180F, 180F}, null, "smoke", 3, new ArrayList() { + }, "", null, 0, false), + Class121Trailer(EntityPassengerClass121Trailer.class, new ModelClass121Trailer(), "bubble_car_", true, new float[]{0F, 0.17F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Class117(EntityLocoDieselClass117.class, new ModelClass117(), "bubble_car_", true, new float[]{-2.1F, 0.17F, 0F}, new float[]{0F, 180F, 180F}, null, "smoke", 3, new ArrayList() { + }, "", null, 0, false), + Class117Middle(EntityPassengerClass117Middle.class, new ModelClass117Middle(), "bubble_car_", true, new float[]{0F, 0.17F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + TipperUK(EntityFreightTipperUK.class, new ModelTipperUK(), "tipper_", true, new float[]{0F, 0.1F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + ShuntingTenderUK(EntityTenderShuntingTenderUK.class, new ModelShuntingTenderUK(), "shunting_tender_", true, new float[]{0f, 0.15f, 0f}, new float[]{0f, 180f, 180f}, null, "", 0, null, "", null, 0, false), + BRBrakeVan(EntityCabooseBRBrakeVan.class, new ModelBRBrakeVan(), "br_brake_van_", true, new float[]{0F, 0.1F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + + //TCCE7 + DuewagT4ER(EntityElectricDuewagT4ER.class, new ModelDuewagT4ER(), "Duewag_T4_", true, new float[]{-1.25F, 0.2F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + DuewagGT6ZRLoco(EntityElectricDuewagGT6ZRLoco.class, new ModelDuewagGT6ZRLoco(), "Duewag_GT6_", true, new float[]{-0.85F, 0.2F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + DuewagGT6ZTail(EntityPassengerDuewagGT6ZRTail.class, new ModelDuewagGT6ZRTail(), "Duewag_GT6_", true, new float[]{-0.85F, 0.2F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + M8CLoco(EntityElectricM8CLoco.class, new ModelM8CLoco(), "M8C_", true, new float[]{-1F, 0.2F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + M8CTail(EntityPassengerM8CTail.class, new ModelM8CTail(), "M8C_", true, new float[]{-1F, 0.2F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Class416Loco(EntityElectricClass416Loco.class, new ModelClass416Engine(), "Class_205_", true, new float[]{-2F, 0.15F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Class416Tail(EntityPassengerClass416Tail.class, new ModelClass416Tail(), "Class_205_", true, new float[]{0f, 0.15f, 0f}, new float[]{0F, 0F, 180F}, null, "", 0, null, "", null, 0, false), + DB420Loco(EntityElectricDB420Loco.class, new ModelDB420End(), "db420_", true, new float[]{-1.5F, 0.16F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + DB420Middle(EntityPassengerDB420Middle.class, new ModelDB420Middle(), "db420_", true, new float[]{0F, 0.16F, 0F}, new float[]{0F, 0F, 180F}, null, "", 0, null, "", null, 0, false), + DB420Tail(EntityPassengerDB420Tail.class, new ModelDB420End(), "db420_", true, new float[]{-1.5F, 0.16F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + CattleVan(EntityCattleVan.class, new ModelCattleVan(), "cattle_van", false, new float[]{0F, 0.15F, 0.0F}, new float[]{0F, 0F, 180F}, null, "", 0, null, "", null, 0, false), + Class401Loco(EntityLocoElectricClass401.class, new ModelClass401Engine(), "2-bil_", true, new float[]{-1.7F, 0.17F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Class401Tail(EntityPassengerClass401Tail.class, new ModelClass401tail(), "2-bil_", true, new float[]{0.02F, 0.17F, 0.03F}, new float[]{0F, 0F, 180F}, null, "", 0, null, "", null, 0, false), + passenger10tonBrakeVan(EntityPassenger10tonBrakeVan.class, new Model10tonBrakeVan(), "10ton_brakevan_", true, new float[]{0F, 0.15F, 0.0F}, new float[]{0F, 0F, 180F}, null, "", 0, null, "", null, 0, false), + BR_MK2C_Coach(EntityPassengerBR_MK2C_Coach.class, new ModelBR_MK2C_Coach(), "BR_Mk2c_", true, new float[]{0.485F, 0F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + BR_MK2C_BSO(EntityPassengerBR_MK2C_BSO.class, new ModelBR_MK2C_BSO(), "BR_Mk2c_BSO_", true, new float[]{0.485F, 0F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Class230Engine(EntityElectricClass230.class, new ModelClass230(), "Class_230_", true, new float[]{-1.3F, 0.16F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Class230Middle(EntityClass230Middle.class, new ModelClass230Middle(), "Class_230_", true, new float[]{0F, 0.16F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + DuewagGT6ERLoco(EntityElectricDuewagGT6ERLoco.class, new ModelDuewagGT6ERLoco(), "Duewag_GT6ER_", true, new float[]{-0.85F, 0.2F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + DuewagGT6ERTail(EntityPassengerDuewagGT6ERTail.class, new ModelDuewagGT6ERTail(), "Duewag_GT6ER_", true, new float[]{-0.85F, 0.2F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Mineralwagon(EntityFreightMineralwagon.class, new ModelMineralwagon(), "Mineral_wagon_", true, new float[]{0f, 0.15f, 0f}, new float[]{0f, 180f, 180f}, null, "", 0, null, "", null, 0, false), + VentilatedVan(EntityFreightVentilatedVan.class, new ModelVentilatedVan(), "Ventilated_van_", true, new float[]{0f, 0.15f, 0f}, new float[]{0f, 180f, 180f}, null, "", 0, null, "", null, 0, false), + Class143Rear(EntityPassengerClass143.class, new ModelClass143(), "Class143_", true, new float[]{0F, 0.15F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Class143Middle(EntityPassengerClass143M.class, new ModelClass144(), "Class143_", true, new float[]{0F, 0.15F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Class374Front(EntityElectricClass374.class, new ModelClass374Front(), "Class_374_Front_", true, new float[]{-2.6F, 0.162F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Class374PremierPanto(EntityPassengerClass374PremierPanto.class, new ModelClass374PremierPanto(), "Class_374_Premier_Panto_", true, new float[]{0F, 0.162F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Class374StandardPanto(EntityPassengerClass374StandardPanto.class, new ModelClass374StandardPanto(), "Class_374_Standard_Panto_", true, new float[]{0F, 0.162F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Class374Buffet(EntityPassengerClass374Buffet.class, new ModelClass374Buffet(), "Class_374_Buffet_", true, new float[]{0F, 0.162F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Class387Front(EntityElectricClass387Front.class, new ModelClass387Front(), "Class_387_", true, new float[]{-2F, 0F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Class387Coach(EntityPassengerClass387Coach.class, new ModelClass387Coach(), "Class_387_Middle_", true, new float[]{0F, 0F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Class387Panto(EntityPassengerClass387Panto.class, new ModelClass387Panto(), "Class_387_Middle_", true, new float[]{0F, 0F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Class387Tail(EntityPassengerClass387Tail.class, new ModelClass387Front(), "Class_387_", true, new float[]{0F, 0F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Class378Front(EntityElectricClass378Front.class, new ModelClass378Front(), "Class_378_", true, new float[]{-1.9F, 0.2F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Class378Middle(EntityPassengerClass378Middle.class, new ModelClass378Middle(), "Class_378_Middle_", true, new float[]{0F, 0.2F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Class378Tail(EntityPassengerClass378Tail.class, new ModelClass378Front(), "Class_378_", true, new float[]{0F, 0.2F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Class142Front(EntityLocoDieselClass142.class, new ModelClass142(), "Class_142_", true, new float[]{-1.8F, 0.2F, 0F}, new float[]{0F, 180F, 180F}, null, "smoke", 2, new ArrayList() { + }, "", null, 0, false), + Class142Tail(EntityPassengerClass142Tail.class, new ModelClass142(), "Class_142_", true, new float[]{-0.53F, 0.2F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Bagnall(EntityLocoDieselBagnall.class, new ModelBagnall(), "Bagnall_Shunter_0-4-0_", true, new float[]{-0.85F, 0.18F, 0F}, new float[]{0F, 180F, 180F}, null, "smoke", 2, new ArrayList() { + }, "", null, 0, false), + Class389Front(EntityElectricClass389Front.class, new ModelClass389Front(), "Class_389_", true, new float[]{-2.4F, 0F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Class389Middle(EntityPassengerClass389Middle.class, new ModelClass389Middle(), "Class_389_Middle_", true, new float[]{-0.31F, 0F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Class389Tail(EntityPassengerClass389Tail.class, new ModelClass389Front(), "Class_389_", true, new float[]{-0.31F, 0F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Class442DTS(EntityElectricClass442DTS.class, new ModelClass442DTS(), "class_442_DTS_", true, new float[]{-2F, 0F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Class442TS(EntityPassengerClass442TS.class, new ModelClass442TS(), "class_442_TS_", true, new float[]{0.15F, 0F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Class442MBLS(EntityPassengerClass442MBLS.class, new ModelClass442MBLS(), "class_442_MBLS_", true, new float[]{0.15F, 0F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Class205loco(EntityLocoDieselClass205loco.class, new ModelClass205(), "Class_205_", true, new float[]{-2F, 0.15F, 0F}, new float[]{0F, 180F, 180F}, null, "smoke", 3, new ArrayList() { + }, "", null, 0, false), + Class205tso(EntityPassengerClass205tso.class, new ModelClass205tso(), "Class_205_", true, new float[]{0f, 0.15f, 0f}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + Class205tail(EntityPassengerClass205tail.class, new ModelClass205tail(), "Class_205_", true, new float[]{0f, 0.15f, 0f}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + M8DNF1Loco(EntityElectricM8DNF1Loco.class, new ModelM8DNF1End(), "m8d_nf1_", true, new float[]{-0.65F, 0.2F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + M8DNF1Middlelong(EntityPassengerM8DNF1MiddleLong.class, new ModelM8DNF1Middle1(), "m8d_nf1_", true, new float[]{0F, 0.2F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + M8DNF1Middleshort(EntityPassengerM8DNF1MiddleShort.class, new ModelM8DNF1Middle2(), "m8d_nf1_", true, new float[]{0F, 0.2F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + M8DNF1Tail(EntityPassengerM8DNF1Tail.class, new ModelM8DNF1End(), "m8d_nf1_", true, new float[]{-0.65F, 0.2F, 0F}, new float[]{0F, 180F, 180F}, null, "", 0, null, "", null, 0, false), + ; + + private final Class entityClass; + private final ModelBase model; + private final String texture; + private final boolean multiTexture; + private final float[] trans; + private final float[] rotate; + private final float[] scale; + private final String smokeType; + private final ArrayList smokeFX; + private final String explosionType; + private final ArrayList explosionFX; + private final int smokeIterations; + private final int explosionFXIterations; + private final boolean hasSmokeOnSlopes; + + /** + * Defines the render @param for a RollingStock + * + * @param model ModelBase + * @param texture String + * @param multiTexture boolean + * @param trans float[] + * @param rotate float[] + * @param scale float[] + * @param smokeType String + * @param smokeFX ArrayList + * @param explosionType String + * @param explosionFX ArrayList + * @see RenderRollingStock + */ + RenderEnum(Class entityClass, ModelBase model, String texture, boolean multiTexture, float[] trans, float[] rotate, float[] scale, String smokeType, int smokeIterations, ArrayList smokeFX, String explosionType, ArrayList explosionFX, int explosionFXIterations, boolean hasSmokeOnSlopes) { + this.entityClass = entityClass; + this.model = model; + this.texture = texture; + this.multiTexture = multiTexture; + this.trans = trans; + this.rotate = rotate; + this.scale = scale; + this.smokeType = smokeType; + this.smokeFX = smokeFX; + this.explosionType = explosionType; + this.explosionFX = explosionFX; + this.smokeIterations = smokeIterations; + this.explosionFXIterations = explosionFXIterations; + this.hasSmokeOnSlopes = hasSmokeOnSlopes; + } + + @Override + public Class getEntityClass() { + return entityClass; + } + + @Override + public ModelBase getModel() { + return model; + } + + public boolean getIsMultiTextured() { + return multiTexture; + } + + @Override + public boolean hasSmoke() { + return !smokeType.isEmpty(); + } + + @Override + public boolean hasSmokeOnSlopes() { + return hasSmokeOnSlopes; + } + + @Override + public String getSmokeType() { + return smokeType; + } + + @Override + public ArrayList getSmokeFX() { + return smokeFX; + } + + @Override + public String getExplosionType() { + return explosionType; + } + + @Override + public boolean hasExplosion() { + return !explosionType.isEmpty(); + } + + @Override + public ArrayList getExplosionFX() { + return explosionFX; + } + + @Override + public float[] getTrans() { + return trans; + } + + @Override + public float[] getRotate() { + return rotate; + } + + @Override + public float[] getScale() { + return scale; + } + + @Override + public ResourceLocation getTextureFile(String colorString) { + if (multiTexture) { + return new ResourceLocation(Info.resourceLocation, Info.trainsPrefix + texture + colorString + ".png"); + } else { + return new ResourceLocation(Info.resourceLocation, Info.trainsPrefix + texture + ".png"); + } + } + + @Override + public int getSmokeIterations() { + return smokeIterations; + } + + @Override + public int getExplosionFXIterations() { + return explosionFXIterations; + } } diff --git a/src/main/java/train/client/render/RenderGeneratorDiesel.java b/src/main/java/train/client/render/RenderGeneratorDiesel.java index b9818aa599..b653fbdd92 100644 --- a/src/main/java/train/client/render/RenderGeneratorDiesel.java +++ b/src/main/java/train/client/render/RenderGeneratorDiesel.java @@ -1,6 +1,6 @@ /******************************************************************************* * Copyright (c) 2012 Mrbrutal. All rights reserved. - * + * * @name TrainCraft * @author Mrbrutal ******************************************************************************/ @@ -17,27 +17,27 @@ public class RenderGeneratorDiesel extends TileEntitySpecialRenderer { - private static final ModelGeneratorDiesel modelGenerator = new ModelGeneratorDiesel((float) (1.0 / 16.0)); - private static final ResourceLocation texture = new ResourceLocation(Info.resourceLocation,Info.modelTexPrefix + "generator_diesel.png"); + private static final ModelGeneratorDiesel modelGenerator = new ModelGeneratorDiesel((float) (1.0 / 16.0)); + private static final ResourceLocation texture = new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "generator_diesel.png"); - public RenderGeneratorDiesel() { - } + public RenderGeneratorDiesel() { + } - public void render(TileEntity var1, double x, double y, double z) { - GL11.glPushMatrix(); + public void render(TileEntity var1, double x, double y, double z) { + GL11.glPushMatrix(); - GL11.glTranslated(x, y, z); - tmt.Tessellator.bindTexture(texture); + GL11.glTranslated(x, y, z); + tmt.Tessellator.bindTexture(texture); - //System.out.println(((TileStopper) var1).getFacing()); - GL11.glTranslatef(0.5F, 0.0F, 0.5F); - modelGenerator.render(0.0625F, ((TileGeneratorDiesel) var1).getFacing()); + //System.out.println(((TileStopper) var1).getFacing()); + GL11.glTranslatef(0.5F, 0.0F, 0.5F); + modelGenerator.render(0.0625F, ((TileGeneratorDiesel) var1).getFacing()); - GL11.glPopMatrix(); - } + GL11.glPopMatrix(); + } - @Override - public void renderTileEntityAt(TileEntity var1, double var2, double var4, double var6, float var8) { - render(var1, var2, var4, var6); - } + @Override + public void renderTileEntityAt(TileEntity var1, double var2, double var4, double var6, float var8) { + render(var1, var2, var4, var6); + } } diff --git a/src/main/java/train/client/render/RenderLasersLines.java b/src/main/java/train/client/render/RenderLasersLines.java index 034b493e44..f68def5f3e 100644 --- a/src/main/java/train/client/render/RenderLasersLines.java +++ b/src/main/java/train/client/render/RenderLasersLines.java @@ -9,65 +9,67 @@ import train.common.entity.EntityLasersLines; public class RenderLasersLines extends Render { - /** instance of ModelBoat for rendering */ - private static final ModelBase model = new ModelBase() {}; - private ModelRenderer box; + /** + * instance of ModelBoat for rendering + */ + private static final ModelBase model = new ModelBase() { + }; + private final ModelRenderer box; - public RenderLasersLines() { - this.shadowSize = 0.5F; - box = new ModelRenderer(model, 0, 0); - box.addBox(0, -0.5F, -0.5F, 16, 1, 1); - box.rotationPointX = 0; - box.rotationPointY = 0; - box.rotationPointZ = 0; - } + public RenderLasersLines() { + this.shadowSize = 0.5F; + box = new ModelRenderer(model, 0, 0); + box.addBox(0, -0.5F, -0.5F, 16, 1, 1); + box.rotationPointX = 0; + box.rotationPointY = 0; + box.rotationPointZ = 0; + } - /** - * The render method used in RenderBoat that renders the boat model. - */ - public void renderLasersLines(EntityLasersLines en, double x, double y, double z, float f, float f1) { - if (en.hidden ^ en.isDead) { - return; - } + /** + * The render method used in RenderBoat that renders the boat model. + */ + public void renderLasersLines(EntityLasersLines en, double x, double y, double z, float f, float f1) { + if (en.hidden ^ en.isDead) { + return; + } - GL11.glPushMatrix(); - GL11.glTranslated(x, y, z); - GL11.glRotatef((float) en.angleZ, 0, 1, 0); - GL11.glRotatef((float) en.angleY, 0, 0, 1); + GL11.glPushMatrix(); + GL11.glTranslated(x, y, z); + GL11.glRotatef((float) en.angleZ, 0, 1, 0); + GL11.glRotatef((float) en.angleY, 0, 0, 1); - //en.getTexture(); - //loadTexture(en.getTexture()); - float lasti = 0; + //en.getTexture(); + //loadTexture(en.getTexture()); + float lasti = 0; - for (float i = 0; i <= en.renderSize - 1; ++i) { - getBox(en).render(1.0F / 16.0F); - GL11.glTranslated(1, 0, 0); - lasti = i; - } + for (float i = 0; i <= en.renderSize - 1; ++i) { + getBox(en).render(1.0F / 16.0F); + GL11.glTranslated(1, 0, 0); + lasti = i; + } - lasti++; + lasti++; - GL11.glScalef(((float) en.renderSize - lasti), 1, 1); - getBox(en).render(1); - GL11.glPopMatrix(); - } + GL11.glScalef(((float) en.renderSize - lasti), 1, 1); + getBox(en).render(1); + GL11.glPopMatrix(); + } - protected ModelRenderer getBox(EntityLasersLines laser) { - return box; - } + protected ModelRenderer getBox(EntityLasersLines laser) { + return box; + } - /** - * Actually renders the given argument. This is a synthetic bridge method, always casting down its argument and then handing it off to a worker function which does the actual work. In all probabilty, the class Render is generic (Render> 16 & 7L) + 0.5F) / 8.0F - 0.5F) * 0.004F; - float var13 = (((var10 >> 20 & 7L) + 0.5F) / 8.0F - 0.5F) * 0.004F; - float var14 = (((var10 >> 24 & 7L) + 0.5F) / 8.0F - 0.5F) * 0.004F; - GL11.glTranslatef(var12, var13, var14); - double var15 = cart.lastTickPosX + (cart.posX - cart.lastTickPosX) * time; - double var17 = cart.lastTickPosY + (cart.posY - cart.lastTickPosY) * time; - double var19 = cart.lastTickPosZ + (cart.posZ - cart.lastTickPosZ) * time; - Vec3 var23 = cart.func_70489_a(var15, var17, var19); - float pitch = cart.prevRotationPitch + (cart.rotationPitch - cart.prevRotationPitch) * time; - Vec3 renderYVect = cart.yVector(var15, var17, var19);//only on TC rails - if (var23 != null) { - Vec3 var25 = cart.func_70495_a(var15, var17, var19, 0.30000001192092896D); - Vec3 var26 = cart.func_70495_a(var15, var17, var19, -0.30000001192092896D); - - if (var25 == null) { - var25 = var23; - } - - if (var26 == null) { - var26 = var23; - } - - x += var23.xCoord - var15; - y += (var25.yCoord + var26.yCoord) / 2.0D - var17; - z += var23.zCoord - var19; - Vec3 var27 = var26.addVector(-var25.xCoord, -var25.yCoord, -var25.zCoord); - - if (var27.lengthVector() != 0.0D) { - var27 = var27.normalize(); - yaw = TraincraftUtil.atan2degreesf(var27.zCoord, var27.xCoord); - pitch = (float) (Math.atan(var27.yCoord) * 73.0D); - } - - }else if (renderYVect != null) {//only on TC rails - Vec3 var25 = cart.renderY(var15, var17, var19, 0.30000001192092896D); - Vec3 var26 = cart.renderY(var15, var17, var19, -0.30000001192092896D); - - if (var25 == null) { - var25 = renderYVect; - } - - if (var26 == null) { - var26 = renderYVect; - } - y += (var25.yCoord + var26.yCoord) / 2.0D - var17; - } - - yaw %= 360.0F; - if (yaw < 0.0F) { - yaw += 360.0F; - } - yaw += 360.0F; - - float serverYaw = (cart.rotationYaw + 180) % 360; - if (serverYaw < 0.0F) { - serverYaw += 360.0F; - } - serverYaw += 360.0F; - if (Math.abs(yaw - serverYaw) > 90.0F) { - yaw += 180.0F; - pitch = -pitch; - } + private static final Random random = new Random(); + + public RenderRollingStock() { + this.shadowSize = 0.5F; + } + + /** + * Renders the Minecart. + */ + public static void renderTheMinecart(EntityRollingStock cart, double x, double y, double z, float yaw, float time) { + Tessellator.bindTexture(getTexture(cart)); + GL11.glPushMatrix(); + long var10 = cart.getEntityId() * 493286711L; + var10 = var10 * var10 * 4392167121L + var10 * 98761L; + float var12 = (((var10 >> 16 & 7L) + 0.5F) / 8.0F - 0.5F) * 0.004F; + float var13 = (((var10 >> 20 & 7L) + 0.5F) / 8.0F - 0.5F) * 0.004F; + float var14 = (((var10 >> 24 & 7L) + 0.5F) / 8.0F - 0.5F) * 0.004F; + GL11.glTranslatef(var12, var13, var14); + double var15 = cart.lastTickPosX + (cart.posX - cart.lastTickPosX) * time; + double var17 = cart.lastTickPosY + (cart.posY - cart.lastTickPosY) * time; + double var19 = cart.lastTickPosZ + (cart.posZ - cart.lastTickPosZ) * time; + Vec3 var23 = cart.func_70489_a(var15, var17, var19); + float pitch = cart.prevRotationPitch + (cart.rotationPitch - cart.prevRotationPitch) * time; + Vec3 renderYVect = cart.yVector(var15, var17, var19);//only on TC rails + if (var23 != null) { + Vec3 var25 = cart.func_70495_a(var15, var17, var19, 0.30000001192092896D); + Vec3 var26 = cart.func_70495_a(var15, var17, var19, -0.30000001192092896D); + + if (var25 == null) { + var25 = var23; + } + + if (var26 == null) { + var26 = var23; + } + + x += var23.xCoord - var15; + y += (var25.yCoord + var26.yCoord) / 2.0D - var17; + z += var23.zCoord - var19; + Vec3 var27 = var26.addVector(-var25.xCoord, -var25.yCoord, -var25.zCoord); + + if (var27.lengthVector() != 0.0D) { + var27 = var27.normalize(); + yaw = TraincraftUtil.atan2degreesf(var27.zCoord, var27.xCoord); + pitch = (float) (Math.atan(var27.yCoord) * 73.0D); + } + + } else if (renderYVect != null) {//only on TC rails + Vec3 var25 = cart.renderY(var15, var17, var19, 0.30000001192092896D); + Vec3 var26 = cart.renderY(var15, var17, var19, -0.30000001192092896D); + + if (var25 == null) { + var25 = renderYVect; + } + + if (var26 == null) { + var26 = renderYVect; + } + y += (var25.yCoord + var26.yCoord) / 2.0D - var17; + } + + yaw %= 360.0F; + if (yaw < 0.0F) { + yaw += 360.0F; + } + yaw += 360.0F; + + float serverYaw = (cart.rotationYaw + 180) % 360; + if (serverYaw < 0.0F) { + serverYaw += 360.0F; + } + serverYaw += 360.0F; + if (Math.abs(yaw - serverYaw) > 90.0F) { + yaw += 180.0F; + pitch = -pitch; + } /*if (var23 == null && Math.abs(yaw - serverYaw) < 90.0D) { pitch = -pitch; }*/ - //System.out.println(Math.abs(yaw - serverYaw)); - //System.out.println("yaw after "+yaw+" server yaw after "+serverYaw); - - GL11.glTranslatef((float) x, (float) y, (float) z); - int i = MathHelper.floor_double(cart.posX); - int j = MathHelper.floor_double(cart.posY); - int k = MathHelper.floor_double(cart.posZ); - - // NOTE: func_150049_b_ = isRailBlockAt - if (cart.worldObj != null && (BlockRailBase.func_150049_b_(cart.worldObj, i, j, k) - || BlockRailBase.func_150049_b_(cart.worldObj, i, j - 1, k))) { - cart.setMountedYOffset(-0.55); - } else if (cart.posYFromServer != 0) { - cart.setMountedYOffset(-0.5); - GL11.glTranslatef(0f, -0.30f, 0f); - } - if(cart.worldObj != null && cart.worldObj.getBlock(i,j,k).getClass().getName().equals("ebf.tim.blocks.rails.BlockRailCore")){ - GL11.glTranslatef(0f, 0.15f, 0f); - } - if (cart.bogieLoco != null) {// || cart.bogieUtility[0]!=null){ - //GL11.glRotatef((float)(90-cart.rotationYawClientReal), 0.0F, 1.0F, 0.0F); - if (cart.oldClientYaw == 0) cart.oldClientYaw = cart.rotationYawClientReal; - - float rotationYawBogie = cart.rotationYawClientReal; - float tempYaw = (cart.rotationYawClientReal - cart.oldClientYaw); - float newYaw = 0; - //System.out.println("rotationYawBogie "+rotationYawBogie+" oldYaw "+cart.oldClientYaw+" tempYaw "+(Math.abs(tempYaw)/10)); - //System.out.println(Math.abs(cart.oldClientYaw-rotationYawBogie)); - if(Math.abs(cart.oldClientYaw-rotationYawBogie)>170){ - cart.oldClientYaw = rotationYawBogie; - } - if (cart.oldClientYaw != rotationYawBogie && Math.abs(cart.oldClientYaw-rotationYawBogie)>(Math.abs(tempYaw)/10)) { - newYaw = cart.oldClientYaw + Math.copySign((Math.abs(tempYaw)/10), tempYaw); - cart.oldClientYaw += Math.copySign((Math.abs(tempYaw)/10), tempYaw); - } - else { - newYaw = rotationYawBogie; - cart.oldClientYaw = rotationYawBogie; - } - //System.out.println("newYaw "+newYaw); - //System.out.println(90 - cart.rotationYawClientReal); - GL11.glRotatef((90.0f-newYaw), 0.0F, 1.0F, 0.0F); - cart.setRenderYaw(newYaw); - cart.setRenderPitch(pitch); - } - else { - // NOTE: func_150049_b_ = isRailBlockAt - if (cart.worldObj!=null && (BlockRailBase.func_150049_b_(cart.worldObj, i, j, k) || BlockRailBase.func_150049_b_(cart.worldObj, i, j-1, k) )){ - if(cart.isClientInReverse){ - yaw+=180; - pitch = -pitch; - } - GL11.glRotatef(180.0F - yaw, 0.0F, 1.0F, 0.0F); - cart.setRenderYaw(yaw); - cart.setRenderPitch(pitch); - }else{ - if (cart.oldClientYaw == 0) cart.oldClientYaw = cart.rotationYawClientReal; - - float rotationYaw = cart.rotationYawClientReal; - float tempYaw = (cart.rotationYawClientReal - cart.oldClientYaw); - float newYaw = 0; - //System.out.println("rotationYawBogie "+rotationYawBogie+" oldYaw "+cart.oldClientYaw+" tempYaw "+(Math.abs(tempYaw)/10)); - //System.out.println(Math.abs(cart.oldClientYaw-rotationYawBogie)); - if(Math.abs(cart.oldClientYaw-rotationYaw)>170){ - cart.oldClientYaw = rotationYaw; - } - if (cart.oldClientYaw != rotationYaw && Math.abs(cart.oldClientYaw-rotationYaw)>(Math.abs(tempYaw)/10)) { - newYaw = cart.oldClientYaw + Math.copySign((Math.abs(tempYaw)/10), tempYaw); - cart.oldClientYaw += Math.copySign((Math.abs(tempYaw)/10), tempYaw); - } - else { - newYaw = rotationYaw; - cart.oldClientYaw = rotationYaw; - } - GL11.glRotatef((90.0f-(newYaw+90.0f)), 0.0F, 1.0F, 0.0F); - cart.setRenderYaw(yaw); - cart.setRenderPitch(pitch); - } - } - - //if(cart.bogie!=null)cart.worldObj.spawnParticle("reddust", cart.bogie.posX, cart.bogie.posY, cart.bogie.posZ, 0.1, 0.4, 0.1); - - //GL11.glRotatef(180.0F - yaw, 0.0F, 1.0F, 0.0F); - if (cart.bogieLoco != null) {// || cart.bogieUtility[0]!=null){ - GL11.glRotatef((float) -cart.anglePitchClient, 0.0F, 0.0F, 1.0F); - } - else { - if(renderYVect != null){ - pitch = (float)cart.anglePitchClient/60; - if(cart.rotationYawClientReal>-5 && cart.rotationYawClientReal<5){ - pitch=-pitch; - } - if(!cart.isClientInReverse && (cart.rotationYawClientReal>85 && cart.rotationYawClientReal<95 )){ - pitch=-pitch; - } - if(cart.isClientInReverse && (cart.rotationYawClientReal<-265 && cart.rotationYawClientReal>-275 )){ - pitch=-pitch; - } - GL11.glRotatef(pitch, 0.0F, 0.0F, 1.0F); - } - else{ - GL11.glRotatef(-pitch, 0.0F, 0.0F, 1.0F); - } - } - float var28 = cart.getRollingAmplitude() - time; - float var30 = cart.getDamage() - time; - - if (var30 < 0.0F) { - var30 = 0.0F; - } - - if (var28 > 0.0F) { - float angle = MathHelper.sin(var28) * var28 * var30 / 10.0F; - angle = Math.min(angle, 0.8F); - angle = Math.copySign(angle, cart.getRollingDirection()); - GL11.glRotatef(angle, 1.0F, 0.0F, 0.0F); - } - TrainRenderRecord render = Traincraft.instance.traincraftRegistry.getTrainRenderRecord(cart.getClass()); - if (render != null) { - //loadTexture(getTextureFile(renders.getTexture(), renders.getIsMultiTextured(), cart)); - - try { - if (render.getModel().getClass().getDeclaredMethod("getTrans") != null) { - Method theTransMethod = render.getModel().getClass().getDeclaredMethod("getTrans"); - float[] theTrans = (float[]) theTransMethod.invoke(render.getModel().getClass().newInstance()); - if (theTrans != null) { - GL11.glTranslatef(theTrans[0], theTrans[1], theTrans[2]); - } - - } - } catch (InstantiationException e) { - e.printStackTrace(); - } catch (Exception e){ - if (render.getTrans() != null) { - GL11.glTranslatef(render.getTrans()[0], render.getTrans()[1], render.getTrans()[2]); - } - } + //System.out.println(Math.abs(yaw - serverYaw)); + //System.out.println("yaw after "+yaw+" server yaw after "+serverYaw); + + GL11.glTranslatef((float) x, (float) y, (float) z); + int i = MathHelper.floor_double(cart.posX); + int j = MathHelper.floor_double(cart.posY); + int k = MathHelper.floor_double(cart.posZ); + + // NOTE: func_150049_b_ = isRailBlockAt + if (cart.worldObj != null && (BlockRailBase.func_150049_b_(cart.worldObj, i, j, k) + || BlockRailBase.func_150049_b_(cart.worldObj, i, j - 1, k))) { + cart.setMountedYOffset(-0.55); + } else if (cart.posYFromServer != 0) { + cart.setMountedYOffset(-0.5); + GL11.glTranslatef(0f, -0.30f, 0f); + } + if (cart.worldObj != null && cart.worldObj.getBlock(i, j, k).getClass().getName().equals("ebf.tim.blocks.rails.BlockRailCore")) { + GL11.glTranslatef(0f, 0.15f, 0f); + } + if (cart.bogieLoco != null) {// || cart.bogieUtility[0]!=null){ + //GL11.glRotatef((float)(90-cart.rotationYawClientReal), 0.0F, 1.0F, 0.0F); + if (cart.oldClientYaw == 0) cart.oldClientYaw = cart.rotationYawClientReal; + + float rotationYawBogie = cart.rotationYawClientReal; + float tempYaw = (cart.rotationYawClientReal - cart.oldClientYaw); + float newYaw = 0; + //System.out.println("rotationYawBogie "+rotationYawBogie+" oldYaw "+cart.oldClientYaw+" tempYaw "+(Math.abs(tempYaw)/10)); + //System.out.println(Math.abs(cart.oldClientYaw-rotationYawBogie)); + if (Math.abs(cart.oldClientYaw - rotationYawBogie) > 170) { + cart.oldClientYaw = rotationYawBogie; + } + if (cart.oldClientYaw != rotationYawBogie && Math.abs(cart.oldClientYaw - rotationYawBogie) > (Math.abs(tempYaw) / 10)) { + newYaw = cart.oldClientYaw + Math.copySign((Math.abs(tempYaw) / 10), tempYaw); + cart.oldClientYaw += Math.copySign((Math.abs(tempYaw) / 10), tempYaw); + } else { + newYaw = rotationYawBogie; + cart.oldClientYaw = rotationYawBogie; + } + //System.out.println("newYaw "+newYaw); + //System.out.println(90 - cart.rotationYawClientReal); + GL11.glRotatef((90.0f - newYaw), 0.0F, 1.0F, 0.0F); + cart.setRenderYaw(newYaw); + cart.setRenderPitch(pitch); + } else { + // NOTE: func_150049_b_ = isRailBlockAt + if (cart.worldObj != null && (BlockRailBase.func_150049_b_(cart.worldObj, i, j, k) || BlockRailBase.func_150049_b_(cart.worldObj, i, j - 1, k))) { + if (cart.isClientInReverse) { + yaw += 180; + pitch = -pitch; + } + GL11.glRotatef(180.0F - yaw, 0.0F, 1.0F, 0.0F); + cart.setRenderYaw(yaw); + cart.setRenderPitch(pitch); + } else { + if (cart.oldClientYaw == 0) cart.oldClientYaw = cart.rotationYawClientReal; + + float rotationYaw = cart.rotationYawClientReal; + float tempYaw = (cart.rotationYawClientReal - cart.oldClientYaw); + float newYaw = 0; + //System.out.println("rotationYawBogie "+rotationYawBogie+" oldYaw "+cart.oldClientYaw+" tempYaw "+(Math.abs(tempYaw)/10)); + //System.out.println(Math.abs(cart.oldClientYaw-rotationYawBogie)); + if (Math.abs(cart.oldClientYaw - rotationYaw) > 170) { + cart.oldClientYaw = rotationYaw; + } + if (cart.oldClientYaw != rotationYaw && Math.abs(cart.oldClientYaw - rotationYaw) > (Math.abs(tempYaw) / 10)) { + newYaw = cart.oldClientYaw + Math.copySign((Math.abs(tempYaw) / 10), tempYaw); + cart.oldClientYaw += Math.copySign((Math.abs(tempYaw) / 10), tempYaw); + } else { + newYaw = rotationYaw; + cart.oldClientYaw = rotationYaw; + } + GL11.glRotatef((90.0f - (newYaw + 90.0f)), 0.0F, 1.0F, 0.0F); + cart.setRenderYaw(yaw); + cart.setRenderPitch(pitch); + } + } + + //if(cart.bogie!=null)cart.worldObj.spawnParticle("reddust", cart.bogie.posX, cart.bogie.posY, cart.bogie.posZ, 0.1, 0.4, 0.1); + + //GL11.glRotatef(180.0F - yaw, 0.0F, 1.0F, 0.0F); + if (cart.bogieLoco != null) {// || cart.bogieUtility[0]!=null){ + GL11.glRotatef((float) -cart.anglePitchClient, 0.0F, 0.0F, 1.0F); + } else { + if (renderYVect != null) { + pitch = (float) cart.anglePitchClient / 60; + if (cart.rotationYawClientReal > -5 && cart.rotationYawClientReal < 5) { + pitch = -pitch; + } + if (!cart.isClientInReverse && (cart.rotationYawClientReal > 85 && cart.rotationYawClientReal < 95)) { + pitch = -pitch; + } + if (cart.isClientInReverse && (cart.rotationYawClientReal < -265 && cart.rotationYawClientReal > -275)) { + pitch = -pitch; + } + GL11.glRotatef(pitch, 0.0F, 0.0F, 1.0F); + } else { + GL11.glRotatef(-pitch, 0.0F, 0.0F, 1.0F); + } + } + float var28 = cart.getRollingAmplitude() - time; + float var30 = cart.getDamage() - time; + + if (var30 < 0.0F) { + var30 = 0.0F; + } + + if (var28 > 0.0F) { + float angle = MathHelper.sin(var28) * var28 * var30 / 10.0F; + angle = Math.min(angle, 0.8F); + angle = Math.copySign(angle, cart.getRollingDirection()); + GL11.glRotatef(angle, 1.0F, 0.0F, 0.0F); + } + TrainRenderRecord render = Traincraft.instance.traincraftRegistry.getTrainRenderRecord(cart.getClass()); + if (render != null) { + //loadTexture(getTextureFile(renders.getTexture(), renders.getIsMultiTextured(), cart)); + + try { + if (render.getModel().getClass().getDeclaredMethod("getTrans") != null) { + Method theTransMethod = render.getModel().getClass().getDeclaredMethod("getTrans"); + float[] theTrans = (float[]) theTransMethod.invoke(render.getModel().getClass().newInstance()); + if (theTrans != null) { + GL11.glTranslatef(theTrans[0], theTrans[1], theTrans[2]); + } + + } + } catch (InstantiationException e) { + e.printStackTrace(); + } catch (Exception e) { + if (render.getTrans() != null) { + GL11.glTranslatef(render.getTrans()[0], render.getTrans()[1], render.getTrans()[2]); + } + } /*if (renders.getTrans() != null) { GL11.glTranslatef(renders.getTrans()[0], renders.getTrans()[1], renders.getTrans()[2]); }*/ - try { - if (render.getModel().getClass().getDeclaredMethod("getRotate") != null) { - Method theTransMethod = render.getModel().getClass().getDeclaredMethod("getRotate"); - float[] theRotate = (float[]) theTransMethod.invoke(render.getModel().getClass().newInstance()); - if (theRotate != null) { - GL11.glRotatef(theRotate[0], 1.0F, 0.0F, 0.0F); - GL11.glRotatef(theRotate[1], 0.0F, 1.0F, 0.0F); - GL11.glRotatef(theRotate[2], 0.0F, 0.0F, 1.0F); - } - - } - } catch (InstantiationException e) { - e.printStackTrace(); - } catch (Exception e) { - if (render.getRotate() != null) { - GL11.glRotatef(render.getRotate()[0], 1.0F, 0.0F, 0.0F); - GL11.glRotatef(render.getRotate()[1], 0.0F, 1.0F, 0.0F); - GL11.glRotatef(render.getRotate()[2], 0.0F, 0.0F, 1.0F); - } - } + try { + if (render.getModel().getClass().getDeclaredMethod("getRotate") != null) { + Method theTransMethod = render.getModel().getClass().getDeclaredMethod("getRotate"); + float[] theRotate = (float[]) theTransMethod.invoke(render.getModel().getClass().newInstance()); + if (theRotate != null) { + GL11.glRotatef(theRotate[0], 1.0F, 0.0F, 0.0F); + GL11.glRotatef(theRotate[1], 0.0F, 1.0F, 0.0F); + GL11.glRotatef(theRotate[2], 0.0F, 0.0F, 1.0F); + } + + } + } catch (InstantiationException e) { + e.printStackTrace(); + } catch (Exception e) { + if (render.getRotate() != null) { + GL11.glRotatef(render.getRotate()[0], 1.0F, 0.0F, 0.0F); + GL11.glRotatef(render.getRotate()[1], 0.0F, 1.0F, 0.0F); + GL11.glRotatef(render.getRotate()[2], 0.0F, 0.0F, 1.0F); + } + } /*if (renders.getRotate() != null) { GL11.glRotatef(renders.getRotate()[0], 1.0F, 0.0F, 0.0F); @@ -274,22 +270,22 @@ public static void renderTheMinecart(EntityRollingStock cart, double x, double y GL11.glRotatef(renders.getRotate()[2], 0.0F, 0.0F, 1.0F); }*/ - try { - if (render.getModel().getClass().getDeclaredMethod("getScale") != null) { - Method theScaleMethod = render.getModel().getClass().getDeclaredMethod("getScale"); - float[] theRotate = (float[]) theScaleMethod.invoke(render.getModel().getClass().newInstance()); - if (theRotate != null) { - GL11.glScalef(theRotate[0], theRotate[1], theRotate[2]); - } - } - } catch (InstantiationException e) { - e.printStackTrace(); - } catch (Exception e) { - if (render.getScale() != null) { - GL11.glScalef(render.getScale()[0], render.getScale()[1], render.getScale()[2]); - } + try { + if (render.getModel().getClass().getDeclaredMethod("getScale") != null) { + Method theScaleMethod = render.getModel().getClass().getDeclaredMethod("getScale"); + float[] theRotate = (float[]) theScaleMethod.invoke(render.getModel().getClass().newInstance()); + if (theRotate != null) { + GL11.glScalef(theRotate[0], theRotate[1], theRotate[2]); + } + } + } catch (InstantiationException e) { + e.printStackTrace(); + } catch (Exception e) { + if (render.getScale() != null) { + GL11.glScalef(render.getScale()[0], render.getScale()[1], render.getScale()[2]); + } - } + } /*if (renders.getScale() != null) { @@ -297,158 +293,155 @@ public static void renderTheMinecart(EntityRollingStock cart, double x, double y }*/ - - GL11.glEnable(GL11.GL_LIGHTING); - int skyLight = cart.worldObj.getLightBrightnessForSkyBlocks(i, j, k, 0); - OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, skyLight % 65536, - skyLight / 65536f); - - - render.getModel().render(cart, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - - //GL11.glEnable(GL11.GL_LIGHTING); - - if (render.hasSmoke()) { - ArrayList smokePosition = new ArrayList(); - try { - if (render.getModel().getClass().getDeclaredMethod("getSmokePosition") != null) { - Method theScaleMethod = render.getModel().getClass().getDeclaredMethod("getSmokePosition"); - ArrayList thePos = (ArrayList) theScaleMethod.invoke(render.getModel().getClass().newInstance()); - if (thePos != null) { - smokePosition = thePos; - } - } - } catch (Exception e) { - - smokePosition = render.getSmokeFX(); - } - - if (cart.bogieLoco != null) {// || cart.bogieUtility[0]!=null){ - renderSmokeFX(cart, 90 + cart.rotationYawClientReal, (float) cart.anglePitchClient, render.getSmokeType(), smokePosition, render.getSmokeIterations(), time, render.hasSmokeOnSlopes()); - } - else { - renderSmokeFX(cart, (yaw), pitch, render.getSmokeType(), smokePosition, render.getSmokeIterations(), time, render.hasSmokeOnSlopes()); - } - } - if (render.hasExplosion()) { - if (cart.bogieLoco != null) {// || cart.bogieUtility[0]!=null){ - renderExplosionFX(cart, 90 + cart.rotationYawClientReal, (float) cart.anglePitchClient, render.getExplosionType(), render.getExplosionFX(), render.getExplosionFXIterations(), render.hasSmokeOnSlopes()); - } - else { - renderExplosionFX(cart, yaw, pitch, render.getExplosionType(), render.getExplosionFX(), render.getExplosionFXIterations(), render.hasSmokeOnSlopes()); - } - } - } - - GL11.glPopMatrix(); - } - - private static void renderSmokeFX(EntityRollingStock cart, float yaw, float pitch, String smokeType, ArrayList smokeFX, int smokeIterations, float time, boolean hasSmokeOnSlopes) { - if(cart instanceof Locomotive && !((Locomotive)cart).isLocoTurnedOn()){return;} - if(Math.abs(pitch)>30)return; - //if (pitch != 0 && !hasSmokeOnSlopes) { return; } - if ((cart instanceof Locomotive && ((Locomotive) cart).getFuel() > 0) || (cart instanceof EntityTracksBuilder && ((EntityTracksBuilder) cart).getFuel() > 0)) { - int r = random.nextInt(10 * smokeIterations); - double speed = 0; - if (cart instanceof Locomotive) speed = ((Locomotive) cart).getSpeed(); - if (r < ((smokeIterations * 4) + (speed * 5))) { - double rotatedvec[]; - for (int j = 0; j < smokeIterations; j++) { - - - for (double[] explosion : smokeFX) { - rotatedvec = rotatePointF(explosion[0], explosion[1], explosion[2], pitch, yaw); - cart.worldObj.spawnParticle(smokeType, - cart.posX + rotatedvec[0], cart.posY + rotatedvec[1], cart.posZ +rotatedvec[2], - 0,0,0); - } - } - } - } - } - public static final float radianF = (float) Math.PI / 180.0f; - public static double[] rotatePointF(double x, double y, double z, float pitch, float yaw) { - double[] xyz = new double[]{x,y,z}; - float sin, cos; - //rotate pitch - if (pitch != 0.0F) { - pitch *= radianF; - cos = MathHelper.cos(pitch); - sin = MathHelper.sin(pitch); - - xyz[0] = (y * sin) + (x * cos); - xyz[1] = (y * cos) - (x * sin); - } - //rotate yaw - if (yaw != 0.0F) { - yaw *= radianF; - cos = MathHelper.cos(yaw); - sin = MathHelper.sin(yaw); - - xyz[0] = (x * cos) - (z * sin); - xyz[2] = (x * sin) + (z * cos); - } - - return xyz; - } - - - private static void renderExplosionFX(EntityRollingStock cart, float yaw, float pitch, String explosionType, ArrayList explosionFX, int explosionFXIterations, boolean hasSmokeOnSlopes) { - if(cart instanceof Locomotive && !((Locomotive)cart).isLocoTurnedOn())return; - float yawMod = yaw % 360; - double pitchRads = Math.toDegrees(pitch); - //if (pitch != 0 && !hasSmokeOnSlopes) { return; } - if(Math.abs(pitch)>30)return; - if (cart instanceof Locomotive && ((Locomotive) cart).getFuel() > 0) { - int r = random.nextInt(300); - if (r < (explosionFXIterations * 10)) { - for (int j = 0; j < explosionFXIterations; j++) { - if (yawMod == 180) { - for (double[] explosion : explosionFX) { - cart.worldObj.spawnParticle(explosionType, cart.posX - explosion[0], cart.posY + explosion[1] + ((Math.tan(pitchRads)* 4 * -explosion[1])), cart.posZ + explosion[2], 0.0D, 0.0D, 0.0D); - cart.worldObj.spawnParticle(explosionType, cart.posX - explosion[0], cart.posY + explosion[1] + ((Math.tan(pitchRads)* 4 * -explosion[1])), cart.posZ - explosion[2], 0.0D, 0.0D, 0.0D); - } - } - else if (yawMod == 90) { - for (double[] explosion : explosionFX) { - cart.worldObj.spawnParticle(explosionType, cart.posX + explosion[2], cart.posY + explosion[1] + ((Math.tan(pitchRads)*4 * -explosion[1])), cart.posZ + explosion[0], 0.0D, 0.0D, 0.0D); - cart.worldObj.spawnParticle(explosionType, cart.posX - explosion[2], cart.posY + explosion[1] + ((Math.tan(pitchRads)*4 * -explosion[1])), cart.posZ + explosion[0], 0.0D, 0.0D, 0.0D); - } - } - else if (yawMod == 0) { - for (double[] explosion : explosionFX) { - cart.worldObj.spawnParticle(explosionType, cart.posX + explosion[0], cart.posY + explosion[1] + ((Math.tan(pitchRads)*4 * -explosion[1])), cart.posZ + explosion[2], 0.0D, 0.0D, 0.0D); - cart.worldObj.spawnParticle(explosionType, cart.posX + explosion[0], cart.posY + explosion[1] + ((Math.tan(pitchRads)*4 * -explosion[1])), cart.posZ - explosion[2], 0.0D, 0.0D, 0.0D); - } - } - else if (yawMod == -90) { - for (double[] explosion : explosionFX) { - cart.worldObj.spawnParticle(explosionType, cart.posX + explosion[2], cart.posY + explosion[1] + ((Math.tan(pitchRads)*4 * -explosion[1])), cart.posZ - explosion[0], 0.0D, 0.0D, 0.0D); - cart.worldObj.spawnParticle(explosionType, cart.posX - explosion[2], cart.posY + explosion[1] + ((Math.tan(pitchRads)*4 * -explosion[1])), cart.posZ - explosion[0], 0.0D, 0.0D, 0.0D); - } - } - } - } - } - } - - @Override - public void doRender(Entity par1Entity, double x, double y, double d2, float yaw, float time) { - renderTheMinecart((EntityRollingStock) par1Entity, x, y, d2, yaw, time); - } - - - - //@Override - protected ResourceLocation getEntityTexture(Entity entity) { - return getTexture(entity); - } - - public static ResourceLocation getTexture(Entity entity) { - TrainRenderRecord render = Traincraft.instance.traincraftRegistry.getTrainRenderRecord(entity.getClass()); - if (render != null) { - return render.getTextureFile(((EntityRollingStock) entity).getColor()); - } - return null; - } + GL11.glEnable(GL11.GL_LIGHTING); + int skyLight = cart.worldObj.getLightBrightnessForSkyBlocks(i, j, k, 0); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, skyLight % 65536, + skyLight / 65536f); + + + render.getModel().render(cart, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); + + //GL11.glEnable(GL11.GL_LIGHTING); + + if (render.hasSmoke()) { + ArrayList smokePosition = new ArrayList(); + try { + if (render.getModel().getClass().getDeclaredMethod("getSmokePosition") != null) { + Method theScaleMethod = render.getModel().getClass().getDeclaredMethod("getSmokePosition"); + ArrayList thePos = (ArrayList) theScaleMethod.invoke(render.getModel().getClass().newInstance()); + if (thePos != null) { + smokePosition = thePos; + } + } + } catch (Exception e) { + + smokePosition = render.getSmokeFX(); + } + + if (cart.bogieLoco != null) {// || cart.bogieUtility[0]!=null){ + renderSmokeFX(cart, 90 + cart.rotationYawClientReal, (float) cart.anglePitchClient, render.getSmokeType(), smokePosition, render.getSmokeIterations(), time, render.hasSmokeOnSlopes()); + } else { + renderSmokeFX(cart, (yaw), pitch, render.getSmokeType(), smokePosition, render.getSmokeIterations(), time, render.hasSmokeOnSlopes()); + } + } + if (render.hasExplosion()) { + if (cart.bogieLoco != null) {// || cart.bogieUtility[0]!=null){ + renderExplosionFX(cart, 90 + cart.rotationYawClientReal, (float) cart.anglePitchClient, render.getExplosionType(), render.getExplosionFX(), render.getExplosionFXIterations(), render.hasSmokeOnSlopes()); + } else { + renderExplosionFX(cart, yaw, pitch, render.getExplosionType(), render.getExplosionFX(), render.getExplosionFXIterations(), render.hasSmokeOnSlopes()); + } + } + } + + GL11.glPopMatrix(); + } + + private static void renderSmokeFX(EntityRollingStock cart, float yaw, float pitch, String smokeType, ArrayList smokeFX, int smokeIterations, float time, boolean hasSmokeOnSlopes) { + if (cart instanceof Locomotive && !((Locomotive) cart).isLocoTurnedOn()) { + return; + } + if (Math.abs(pitch) > 30) return; + //if (pitch != 0 && !hasSmokeOnSlopes) { return; } + if ((cart instanceof Locomotive && ((Locomotive) cart).getFuel() > 0) || (cart instanceof EntityTracksBuilder && ((EntityTracksBuilder) cart).getFuel() > 0)) { + int r = random.nextInt(10 * smokeIterations); + double speed = 0; + if (cart instanceof Locomotive) speed = ((Locomotive) cart).getSpeed(); + if (r < ((smokeIterations * 4) + (speed * 5))) { + double rotatedvec[]; + for (int j = 0; j < smokeIterations; j++) { + + + for (double[] explosion : smokeFX) { + rotatedvec = rotatePointF(explosion[0], explosion[1], explosion[2], pitch, yaw); + cart.worldObj.spawnParticle(smokeType, + cart.posX + rotatedvec[0], cart.posY + rotatedvec[1], cart.posZ + rotatedvec[2], + 0, 0, 0); + } + } + } + } + } + + public static final float radianF = (float) Math.PI / 180.0f; + + public static double[] rotatePointF(double x, double y, double z, float pitch, float yaw) { + double[] xyz = new double[]{x, y, z}; + float sin, cos; + //rotate pitch + if (pitch != 0.0F) { + pitch *= radianF; + cos = MathHelper.cos(pitch); + sin = MathHelper.sin(pitch); + + xyz[0] = (y * sin) + (x * cos); + xyz[1] = (y * cos) - (x * sin); + } + //rotate yaw + if (yaw != 0.0F) { + yaw *= radianF; + cos = MathHelper.cos(yaw); + sin = MathHelper.sin(yaw); + + xyz[0] = (x * cos) - (z * sin); + xyz[2] = (x * sin) + (z * cos); + } + + return xyz; + } + + + private static void renderExplosionFX(EntityRollingStock cart, float yaw, float pitch, String explosionType, ArrayList explosionFX, int explosionFXIterations, boolean hasSmokeOnSlopes) { + if (cart instanceof Locomotive && !((Locomotive) cart).isLocoTurnedOn()) return; + float yawMod = yaw % 360; + double pitchRads = Math.toDegrees(pitch); + //if (pitch != 0 && !hasSmokeOnSlopes) { return; } + if (Math.abs(pitch) > 30) return; + if (cart instanceof Locomotive && ((Locomotive) cart).getFuel() > 0) { + int r = random.nextInt(300); + if (r < (explosionFXIterations * 10)) { + for (int j = 0; j < explosionFXIterations; j++) { + if (yawMod == 180) { + for (double[] explosion : explosionFX) { + cart.worldObj.spawnParticle(explosionType, cart.posX - explosion[0], cart.posY + explosion[1] + ((Math.tan(pitchRads) * 4 * -explosion[1])), cart.posZ + explosion[2], 0.0D, 0.0D, 0.0D); + cart.worldObj.spawnParticle(explosionType, cart.posX - explosion[0], cart.posY + explosion[1] + ((Math.tan(pitchRads) * 4 * -explosion[1])), cart.posZ - explosion[2], 0.0D, 0.0D, 0.0D); + } + } else if (yawMod == 90) { + for (double[] explosion : explosionFX) { + cart.worldObj.spawnParticle(explosionType, cart.posX + explosion[2], cart.posY + explosion[1] + ((Math.tan(pitchRads) * 4 * -explosion[1])), cart.posZ + explosion[0], 0.0D, 0.0D, 0.0D); + cart.worldObj.spawnParticle(explosionType, cart.posX - explosion[2], cart.posY + explosion[1] + ((Math.tan(pitchRads) * 4 * -explosion[1])), cart.posZ + explosion[0], 0.0D, 0.0D, 0.0D); + } + } else if (yawMod == 0) { + for (double[] explosion : explosionFX) { + cart.worldObj.spawnParticle(explosionType, cart.posX + explosion[0], cart.posY + explosion[1] + ((Math.tan(pitchRads) * 4 * -explosion[1])), cart.posZ + explosion[2], 0.0D, 0.0D, 0.0D); + cart.worldObj.spawnParticle(explosionType, cart.posX + explosion[0], cart.posY + explosion[1] + ((Math.tan(pitchRads) * 4 * -explosion[1])), cart.posZ - explosion[2], 0.0D, 0.0D, 0.0D); + } + } else if (yawMod == -90) { + for (double[] explosion : explosionFX) { + cart.worldObj.spawnParticle(explosionType, cart.posX + explosion[2], cart.posY + explosion[1] + ((Math.tan(pitchRads) * 4 * -explosion[1])), cart.posZ - explosion[0], 0.0D, 0.0D, 0.0D); + cart.worldObj.spawnParticle(explosionType, cart.posX - explosion[2], cart.posY + explosion[1] + ((Math.tan(pitchRads) * 4 * -explosion[1])), cart.posZ - explosion[0], 0.0D, 0.0D, 0.0D); + } + } + } + } + } + } + + @Override + public void doRender(Entity par1Entity, double x, double y, double d2, float yaw, float time) { + renderTheMinecart((EntityRollingStock) par1Entity, x, y, d2, yaw, time); + } + + + //@Override + protected ResourceLocation getEntityTexture(Entity entity) { + return getTexture(entity); + } + + public static ResourceLocation getTexture(Entity entity) { + TrainRenderRecord render = Traincraft.instance.traincraftRegistry.getTrainRenderRecord(entity.getClass()); + if (render != null) { + return render.getTextureFile(((EntityRollingStock) entity).getColor()); + } + return null; + } } diff --git a/src/main/java/train/client/render/RenderRotativeDigger.java b/src/main/java/train/client/render/RenderRotativeDigger.java index 6b89b9c028..8644b22ef4 100644 --- a/src/main/java/train/client/render/RenderRotativeDigger.java +++ b/src/main/java/train/client/render/RenderRotativeDigger.java @@ -11,48 +11,49 @@ public class RenderRotativeDigger extends Render { - private static final ModelBase modelRotaryExcavator = new ModelRotaryExcavator(); - - public RenderRotativeDigger() { - shadowSize = 0.5F; - } - - private void func_157_a(EntityRotativeDigger digger, double d, double d1, double d2, float f, float f1) { - GL11.glPushMatrix(); - GL11.glTranslatef((float) d, (float) d1, (float) d2); - GL11.glRotatef(90F - f, 0.0F, 1.0F, 0.0F); - /** - * Damage mouvements - */ - float f2 = (float) digger.boatTimeSinceHit - f1; - float f3 = (float) digger.boatCurrentDamage - f1; - if (f3 < 0.0F) { - f3 = 0.0F; - } - if (f2 > 0.0F) { - GL11.glRotatef(((MathHelper.sin(f2) * f2 * f3) / 10F) * (float) digger.boatRockDirection, 1.0F, 0.0F, 0.0F); - } - - /** - * Pitch - */ - /* float pitch = digger.pitch/1.5F; - * - * if(pitch>30){ pitch=30; } if(pitch<-30){ pitch=-30; } GL11.glRotatef(pitch, 1.0F, 0.0F, 0.0F); */ - - GL11.glTranslatef(0.0F, 0.5F, 0.0F); - //loadTexture(Info.trainsPrefix + "rotaryExcavator.png"); - modelRotaryExcavator.render(digger, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - } - @Override - public void doRender(Entity entity, double d, double d1, double d2, float f, float f1) { - func_157_a((EntityRotativeDigger) entity, d, d1, d2, f, f1); - } - - - @Override - protected ResourceLocation getEntityTexture(Entity entity) { - return null; - } + private static final ModelBase modelRotaryExcavator = new ModelRotaryExcavator(); + + public RenderRotativeDigger() { + shadowSize = 0.5F; + } + + private void render(EntityRotativeDigger digger, double x, double y, double z, float yaw, float f1) { + GL11.glPushMatrix(); + GL11.glTranslatef((float) x, (float) y, (float) z); + GL11.glRotatef(90F - yaw, 0.0F, 1.0F, 0.0F); + + // Damage movements + float f2 = (float) digger.boatTimeSinceHit - f1; + float f3 = (float) digger.boatCurrentDamage - f1; + if (f3 < 0.0F) { + f3 = 0.0F; + } + + if (f2 > 0.0F) { + GL11.glRotatef(((MathHelper.sin(f2) * f2 * f3) / 10F) * (float) digger.boatRockDirection, 1.0F, 0.0F, 0.0F); + } + + /** + * Pitch + */ + /* float pitch = digger.pitch/1.5F; + * + * if(pitch>30){ pitch=30; } if(pitch<-30){ pitch=-30; } GL11.glRotatef(pitch, 1.0F, 0.0F, 0.0F); */ + + GL11.glTranslatef(0.0F, 0.5F, 0.0F); + //loadTexture(Info.trainsPrefix + "rotaryExcavator.png"); + modelRotaryExcavator.render(digger, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); + GL11.glPopMatrix(); + } + + @Override + public void doRender(Entity entity, double d, double d1, double d2, float f, float f1) { + render((EntityRotativeDigger) entity, d, d1, d2, f, f1); + } + + + @Override + protected ResourceLocation getEntityTexture(Entity entity) { + return null; + } } diff --git a/src/main/java/train/client/render/RenderRotativeWheel.java b/src/main/java/train/client/render/RenderRotativeWheel.java index 999500d8b8..8c521d6153 100644 --- a/src/main/java/train/client/render/RenderRotativeWheel.java +++ b/src/main/java/train/client/render/RenderRotativeWheel.java @@ -10,48 +10,47 @@ import train.common.entity.digger.EntityRotativeWheel; public class RenderRotativeWheel extends Render { + private long lastframe; + private float mvt = 0.0F; - private long lastframe; - private float mvt = 0.0F; - private EntityRotativeDigger entity; - - private static final ModelBase modelRotaryExcavator_Wheel = new ModelRotaryExcavator_Wheel(); - - public RenderRotativeWheel() { - //shadowSize = 0.5F; - lastframe = System.nanoTime(); - - } - - private void func_157_a(EntityRotativeWheel wheel, double d, double d1, double d2, float f) { - GL11.glPushMatrix(); - GL11.glTranslatef((float) d, (float) d1, (float) d2); - GL11.glRotatef(90F - f, 0.0F, 1.0F, 0.0F); - - GL11.glTranslatef(0.0F, 0.5F, 0.0F); - GL11.glScalef(0.4F, 0.6F, 0.6F); - - entity = (EntityRotativeDigger) wheel.entity; - if (entity != null && entity.getFuel() > 0) { - long now = System.nanoTime(); - int elapsed = (int) ((now - lastframe) / (1000 * 1000)); - mvt -= (float) elapsed / 300.0f; - lastframe = now; - - GL11.glRotatef((mvt + 0.4188790204786391F) * 100, 1F, 0F, 0F); - } - //loadTexture(Info.trainsPrefix + "rotativeExcavatorWheel.png"); - modelRotaryExcavator_Wheel.render(wheel, 0.0F, +0.2F, -0.1F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - } - @Override - public void doRender(Entity entity, double d, double d1, double d2, float f, float f1) { - func_157_a((EntityRotativeWheel) entity, d, d1, d2, f); - } - - - @Override - protected ResourceLocation getEntityTexture(Entity entity) { - return null; - } + private static final ModelBase modelRotaryExcavator_Wheel = new ModelRotaryExcavator_Wheel(); + + public RenderRotativeWheel() { + //shadowSize = 0.5F; + lastframe = System.nanoTime(); + + } + + private void render(EntityRotativeWheel wheel, double x, double y, double z, float f) { + GL11.glPushMatrix(); + GL11.glTranslatef((float) x, (float) y, (float) z); + GL11.glRotatef(90F - f, 0.0F, 1.0F, 0.0F); + + GL11.glTranslatef(0.0F, 0.5F, 0.0F); + GL11.glScalef(0.4F, 0.6F, 0.6F); + + EntityRotativeDigger entity = (EntityRotativeDigger) wheel.entity; + + if (entity != null && entity.getFuel() > 0) { + long now = System.nanoTime(); + int elapsed = (int) ((now - lastframe) / (1000 * 1000)); + mvt -= (float) elapsed / 300.0f; + lastframe = now; + + GL11.glRotatef((mvt + 0.4188790204786391F) * 100, 1F, 0F, 0F); + } + + modelRotaryExcavator_Wheel.render(wheel, 0.0F, +0.2F, -0.1F, 0.0F, 0.0F, 0.0625F); + GL11.glPopMatrix(); + } + + @Override + public void doRender(Entity entity, double x, double y, double z, float yaw, float pitch) { + render((EntityRotativeWheel) entity, x, y, z, yaw); + } + + @Override + protected ResourceLocation getEntityTexture(Entity entity) { + return null; + } } diff --git a/src/main/java/train/client/render/RenderSignal.java b/src/main/java/train/client/render/RenderSignal.java index 94359d2195..51eac5e272 100644 --- a/src/main/java/train/client/render/RenderSignal.java +++ b/src/main/java/train/client/render/RenderSignal.java @@ -8,26 +8,20 @@ public class RenderSignal extends TileEntitySpecialRenderer { - private static final ModelBlockSignal modelSignal = new ModelBlockSignal(1.0F / 16.0F); + private static final ModelBlockSignal modelSignal = new ModelBlockSignal(1.0F / 16.0F); - public RenderSignal() { - } + public RenderSignal() { + } - public void renderAModelAt(TileSignal var1, double d, double d1, double d2, float f) { - GL11.glPushMatrix(); - GL11.glTranslatef((float) d + 0.46F, (float) d1 + 0.0F, (float) d2 + 0.46F); - /*if (var1.state == 1) { - bindTextureByName(Info.trainsPrefix + "signal_suisse_green.png"); - } - else { - bindTextureByName(Info.trainsPrefix + "signal_suisse_red.png"); - }*/ - modelSignal.render(0.0625F, var1.getFacing()); - GL11.glPopMatrix(); - } - - @Override - public void renderTileEntityAt(TileEntity tileentity, double d, double d1, double d2, float f) { - renderAModelAt((TileSignal) tileentity, d, d1, d2, f); - } + public void renderAModelAt(TileSignal tile, double x, double y, double z, float f) { + GL11.glPushMatrix(); + GL11.glTranslatef((float) x + 0.46F, (float) y + 0.0F, (float) z + 0.46F); + modelSignal.render(0.0625F, tile.getFacing()); + GL11.glPopMatrix(); + } + + @Override + public void renderTileEntityAt(TileEntity tileentity, double x, double y, double z, float f) { + renderAModelAt((TileSignal) tileentity, x, y, z, f); + } } \ No newline at end of file diff --git a/src/main/java/train/client/render/RenderStopper.java b/src/main/java/train/client/render/RenderStopper.java index 40bae34705..80946e4e87 100644 --- a/src/main/java/train/client/render/RenderStopper.java +++ b/src/main/java/train/client/render/RenderStopper.java @@ -1,6 +1,6 @@ /******************************************************************************* * Copyright (c) 2012 Mrbrutal. All rights reserved. - * + * * @name TrainCraft * @author Mrbrutal ******************************************************************************/ @@ -17,26 +17,26 @@ public class RenderStopper extends TileEntitySpecialRenderer { - private static final ModelStopper modelStopper = new ModelStopper(1.0F / 16.0F); - private static final ResourceLocation texture = new ResourceLocation(Info.resourceLocation,Info.modelTexPrefix + "buffer.png"); + private static final ModelStopper modelStopper = new ModelStopper(1.0F / 16.0F); + private static final ResourceLocation texture = new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "buffer.png"); - public RenderStopper() { - } + public RenderStopper() { + } - public void render(TileEntity var1, double x, double y, double z) { - GL11.glPushMatrix(); + public void render(TileEntity tile, double x, double y, double z) { + GL11.glPushMatrix(); - GL11.glTranslated(x, y, z); - tmt.Tessellator.bindTexture(texture); + GL11.glTranslated(x, y, z); + tmt.Tessellator.bindTexture(texture); - GL11.glTranslatef(0.5F, 0.0F, 0.5F); - modelStopper.render(0.0625F, ((TileStopper) var1).getFacing()); + GL11.glTranslatef(0.5F, 0.0F, 0.5F); + modelStopper.render(0.0625F, ((TileStopper) tile).getFacing()); - GL11.glPopMatrix(); - } + GL11.glPopMatrix(); + } - @Override - public void renderTileEntityAt(TileEntity var1, double var2, double var4, double var6, float var8) { - render(var1, var2, var4, var6); - } + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float var8) { + render(tile, x, z, z); + } } diff --git a/src/main/java/train/client/render/RenderSwitchStand.java b/src/main/java/train/client/render/RenderSwitchStand.java index 9ea0f3e251..bff467a3ff 100644 --- a/src/main/java/train/client/render/RenderSwitchStand.java +++ b/src/main/java/train/client/render/RenderSwitchStand.java @@ -12,60 +12,63 @@ import train.common.tile.TileSwitchStand; public class RenderSwitchStand extends TileEntitySpecialRenderer { - private static final ModelSwitchStandOn modelSwitch = new ModelSwitchStandOn(); - private static final ModelSwitchStandOff modelSwitch2 = new ModelSwitchStandOff(); - private static final ResourceLocation texture = new ResourceLocation(Info.resourceLocation,Info.modelTexPrefix + "switchStand_uv_draw_1.png"); - private static final ResourceLocation texture2 = new ResourceLocation(Info.resourceLocation,Info.modelTexPrefix + "switchStand_uv_draw_2.png"); + private static final ModelSwitchStandOn modelSwitch = new ModelSwitchStandOn(); + private static final ModelSwitchStandOff modelSwitch2 = new ModelSwitchStandOff(); + private static final ResourceLocation texture = new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "switchStand_uv_draw_1.png"); + private static final ResourceLocation texture2 = new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "switchStand_uv_draw_2.png"); - @Override - public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float tick) { + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float tick) { + boolean skipRender = false, powered = tileEntity.getWorldObj().getBlock(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord).isProvidingWeakPower(tileEntity.getWorldObj(), tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord, 0) > 0; + TileSwitchStand tile = ((TileSwitchStand) tileEntity); + if (tile.getFacing() != ForgeDirection.UNKNOWN) { + Tessellator.bindTexture(powered ? texture2 : texture); + } - boolean skipRender = false, powered = tileEntity.getWorldObj().getBlock(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord).isProvidingWeakPower(tileEntity.getWorldObj(), tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord, 0) > 0; - TileSwitchStand tile = ((TileSwitchStand)tileEntity); - if(tile.getFacing()!= ForgeDirection.UNKNOWN){ - Tessellator.bindTexture(powered?texture2:texture); - } + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y + 0.6, z + 0.5); + GL11.glRotated(180, 0, 1, 0); - GL11.glPushMatrix(); - GL11.glTranslated(x+0.5,y+0.6,z+0.5); - GL11.glRotated(180,0,1,0); + switch (((TileSwitchStand) tileEntity).getFacing()) { + case NORTH: { + GL11.glRotated(180, 0, 0, 1); + GL11.glRotated(90, 0, 1, 0); + GL11.glTranslated(0, 0, 0.125); + break; + } - switch (((TileSwitchStand)tileEntity).getFacing()){ - case NORTH:{ - GL11.glRotated(180,0,0,1); - GL11.glRotated(90,0,1,0); - GL11.glTranslated(0,0,0.125); - break; - } - case SOUTH:{ - GL11.glRotated(180,0,0,1); - GL11.glRotated(270,0,1,0); - GL11.glTranslated(0,0,-0.125); - break; - } - case EAST:{ - GL11.glRotated(180,0,0,1); - GL11.glRotated(180,0,1,0); - GL11.glTranslated(0.125,0,0); - break; - } - case WEST:{ - GL11.glRotated(180,0,0,1); - GL11.glTranslated(-0.125,0,0); - break; - } - default:{ - skipRender = true; - } - } + case SOUTH: { + GL11.glRotated(180, 0, 0, 1); + GL11.glRotated(270, 0, 1, 0); + GL11.glTranslated(0, 0, -0.125); + break; + } - if (!skipRender) { - if (powered) { - modelSwitch2.render(null, 0, 0, 0, 0, 0, 0.0625f); - } else { - modelSwitch.render(null, 0, 0, 0, 0, 0, 0.0625f); - } - } - GL11.glPopMatrix(); - } + case EAST: { + GL11.glRotated(180, 0, 0, 1); + GL11.glRotated(180, 0, 1, 0); + GL11.glTranslated(0.125, 0, 0); + break; + } + + case WEST: { + GL11.glRotated(180, 0, 0, 1); + GL11.glTranslated(-0.125, 0, 0); + break; + } + + default: { + skipRender = true; + } + } + + if (!skipRender) { + if (powered) { + modelSwitch2.render(null, 0, 0, 0, 0, 0, 0.0625f); + } else { + modelSwitch.render(null, 0, 0, 0, 0, 0, 0.0625f); + } + } + GL11.glPopMatrix(); + } } diff --git a/src/main/java/train/client/render/RenderTCBook.java b/src/main/java/train/client/render/RenderTCBook.java index 2d10b6d639..9edf9fefbf 100644 --- a/src/main/java/train/client/render/RenderTCBook.java +++ b/src/main/java/train/client/render/RenderTCBook.java @@ -1,6 +1,6 @@ /******************************************************************************* * Copyright (c) 2013 Mrbrutal. All rights reserved. - * + * * @name Traincraft * @author Mrbrutal ******************************************************************************/ @@ -14,10 +14,10 @@ public class RenderTCBook extends TileEntitySpecialRenderer { - private ModelTCBook book = new ModelTCBook(); - - @Override - public void renderTileEntityAt(TileEntity tileentity, double x, double y, double z, float tick) { - book.render((TileBook) tileentity, x, y, z); - } + private final ModelTCBook book = new ModelTCBook(); + + @Override + public void renderTileEntityAt(TileEntity tileentity, double x, double y, double z, float tick) { + book.render((TileBook) tileentity, x, y, z); + } } \ No newline at end of file diff --git a/src/main/java/train/client/render/RenderTCRail.java b/src/main/java/train/client/render/RenderTCRail.java index c7b0300397..8aa1048faf 100644 --- a/src/main/java/train/client/render/RenderTCRail.java +++ b/src/main/java/train/client/render/RenderTCRail.java @@ -6,567 +6,551 @@ import train.common.tile.TileTCRail; public class RenderTCRail extends TileEntitySpecialRenderer { - /**Normal Tracks*/ - public static final ModelSmallStraightTCTrack modelSmallStraight = new ModelSmallStraightTCTrack(); - public static final ModelSmallStraightTCTrack modelRoadCrossing = new ModelSmallStraightTCTrack(); - public static final ModelMediumStraightTCTrack modelMediumStraight = new ModelMediumStraightTCTrack(); - public static final ModelSmallDiagonalStraightTCTrack modelSmallDiagonalStraight = new ModelSmallDiagonalStraightTCTrack(); - public static final ModelMediumDiagonalStraightTCTrack modelMediumDiagonalStraight = new ModelMediumDiagonalStraightTCTrack(); - public static final ModelRightTurnTCTrack modelRightTurn = new ModelRightTurnTCTrack(); - public static final ModelLeftTurnTCTrack modelLeftTurn = new ModelLeftTurnTCTrack(); - public static final ModelRight45DegreeTurnTCTrack model45DegreeRightTurn = new ModelRight45DegreeTurnTCTrack(); - public static final ModelLeft45DegreeTurnTCTrack model45DegreeLeftTurn = new ModelLeft45DegreeTurnTCTrack(); - public static final ModelRightParallelCurveTCTrack modelRightParallelCurve = new ModelRightParallelCurveTCTrack(); - public static final ModelLeftParallelCurveTCTrack modelLeftParallelCurve = new ModelLeftParallelCurveTCTrack(); - public static final ModelTwoWaysCrossingTCTrack modelTwoWaysCrossing = new ModelTwoWaysCrossingTCTrack(); - public static final ModelRightSwitchTCTrack modelRightSwitchTurn = new ModelRightSwitchTCTrack(); - public static final ModelLeftSwitchTCTrack modelLeftSwitchTurn = new ModelLeftSwitchTCTrack(); - public static final ModelSlopeTCTrack modelSlope = new ModelSlopeTCTrack(); - public static final ModelLargeSlopeTCTrack modelLargeSlope = new ModelLargeSlopeTCTrack(); - public static final ModelVeryLargeSlopeTCTrack modelVeryLargeSlope = new ModelVeryLargeSlopeTCTrack(); - public static final ModelRightCurvedSlopeTCTrack modelRightCurvedSlope = new ModelRightCurvedSlopeTCTrack(); - public static final ModelLeftCurvedSlopeTCTrack modelLeftCurvedSlope = new ModelLeftCurvedSlopeTCTrack(); - public static final ModelRightDiamondCrossing modelRightDiamondCrossing = new ModelRightDiamondCrossing(); - public static final ModelLeftDiamondCrossing modelLeftDiamondCrossing = new ModelLeftDiamondCrossing(); + /** + * Normal Tracks + */ + public static final ModelSmallStraightTCTrack modelSmallStraight = new ModelSmallStraightTCTrack(); + public static final ModelSmallStraightTCTrack modelRoadCrossing = new ModelSmallStraightTCTrack(); + public static final ModelMediumStraightTCTrack modelMediumStraight = new ModelMediumStraightTCTrack(); + public static final ModelSmallDiagonalStraightTCTrack modelSmallDiagonalStraight = new ModelSmallDiagonalStraightTCTrack(); + public static final ModelMediumDiagonalStraightTCTrack modelMediumDiagonalStraight = new ModelMediumDiagonalStraightTCTrack(); + public static final ModelRightTurnTCTrack modelRightTurn = new ModelRightTurnTCTrack(); + public static final ModelLeftTurnTCTrack modelLeftTurn = new ModelLeftTurnTCTrack(); + public static final ModelRight45DegreeTurnTCTrack model45DegreeRightTurn = new ModelRight45DegreeTurnTCTrack(); + public static final ModelLeft45DegreeTurnTCTrack model45DegreeLeftTurn = new ModelLeft45DegreeTurnTCTrack(); + public static final ModelRightParallelCurveTCTrack modelRightParallelCurve = new ModelRightParallelCurveTCTrack(); + public static final ModelLeftParallelCurveTCTrack modelLeftParallelCurve = new ModelLeftParallelCurveTCTrack(); + public static final ModelTwoWaysCrossingTCTrack modelTwoWaysCrossing = new ModelTwoWaysCrossingTCTrack(); + public static final ModelRightSwitchTCTrack modelRightSwitchTurn = new ModelRightSwitchTCTrack(); + public static final ModelLeftSwitchTCTrack modelLeftSwitchTurn = new ModelLeftSwitchTCTrack(); + public static final ModelSlopeTCTrack modelSlope = new ModelSlopeTCTrack(); + public static final ModelLargeSlopeTCTrack modelLargeSlope = new ModelLargeSlopeTCTrack(); + public static final ModelVeryLargeSlopeTCTrack modelVeryLargeSlope = new ModelVeryLargeSlopeTCTrack(); + public static final ModelRightCurvedSlopeTCTrack modelRightCurvedSlope = new ModelRightCurvedSlopeTCTrack(); + public static final ModelLeftCurvedSlopeTCTrack modelLeftCurvedSlope = new ModelLeftCurvedSlopeTCTrack(); + public static final ModelRightDiamondCrossing modelRightDiamondCrossing = new ModelRightDiamondCrossing(); + public static final ModelLeftDiamondCrossing modelLeftDiamondCrossing = new ModelLeftDiamondCrossing(); - /**Embedded Tracks*/ + /** + * Embedded Tracks + */ + public RenderTCRail() { + } + @Override + public void renderTileEntityAt(TileEntity var1, double x, double y, double z, float var8) { + if (var1 instanceof TileTCRail) { + TileTCRail railTile = (TileTCRail) var1; + if (railTile.hasModel && railTile.getTrackType() != null) { + switch (railTile.getTrackType()) { + // Normal Tracks + case SMALL_STRAIGHT: { + modelSmallStraight.render("normal", railTile, x, y, z); + break; + } + case MEDIUM_STRAIGHT: + case LONG_STRAIGHT: + case VERY_LONG_STRAIGHT: { + modelMediumStraight.render("medium", railTile, x, y, z); + break; + } + case SMALL_DIAGONAL_STRAIGHT: { + modelSmallDiagonalStraight.render("diagonal", railTile, x, y, z); + break; + } + case MEDIUM_DIAGONAL_STRAIGHT: + case LONG_DIAGONAL_STRAIGHT: + case VERY_LONG_DIAGONAL_STRAIGHT: { + modelMediumDiagonalStraight.render("diagonal", railTile, x, y, z); + break; + } + case MEDIUM_TURN: + case MEDIUM_RIGHT_TURN: { + modelRightTurn.render("medium", railTile, x, y, z); + break; + } + case MEDIUM_LEFT_TURN: { + modelLeftTurn.render("medium", railTile, x, y, z); + break; + } + case LARGE_TURN: + case LARGE_RIGHT_TURN: { + modelRightTurn.render("large", railTile, x, y, z); + break; + } + case LARGE_LEFT_TURN: { + modelLeftTurn.render("large", railTile, x, y, z); + break; + } + case VERY_LARGE_TURN: + case VERY_LARGE_RIGHT_TURN: { + modelRightTurn.render("very_large", railTile, x, y, z); + break; + } + case VERY_LARGE_LEFT_TURN: { + modelLeftTurn.render("very_large", railTile, x, y, z); + break; + } + case SUPER_LARGE_TURN: + case SUPER_LARGE_RIGHT_TURN: { + modelRightTurn.render("super_large", railTile, x, y, z); + break; + } + case SUPER_LARGE_LEFT_TURN: { + modelLeftTurn.render("super_large", railTile, x, y, z); + break; + } + case MEDIUM_45DEGREE_TURN: + case MEDIUM_RIGHT_45DEGREE_TURN: { + model45DegreeRightTurn.render("medium", "", railTile, x, y, z); + break; + } + case MEDIUM_LEFT_45DEGREE_TURN: { + model45DegreeLeftTurn.render("medium", "", railTile, x, y, z); + break; + } + case LARGE_45DEGREE_TURN: + case LARGE_RIGHT_45DEGREE_TURN: { + model45DegreeRightTurn.render("large", "", railTile, x, y, z); + break; + } + case LARGE_LEFT_45DEGREE_TURN: { + model45DegreeLeftTurn.render("large", "", railTile, x, y, z); + break; + } + case VERY_LARGE_45DEGREE_TURN: + case VERY_LARGE_RIGHT_45DEGREE_TURN: { + model45DegreeRightTurn.render("verylarge", "", railTile, x, y, z); + break; + } + case VERY_LARGE_LEFT_45DEGREE_TURN: { + model45DegreeLeftTurn.render("verylarge", "", railTile, x, y, z); + break; + } + case SUPER_LARGE_45DEGREE_TURN: + case SUPER_LARGE_RIGHT_45DEGREE_TURN: { + model45DegreeRightTurn.render("superlarge", "", railTile, x, y, z); + break; + } + case SUPER_LARGE_LEFT_45DEGREE_TURN: { + model45DegreeLeftTurn.render("superlarge", "", railTile, x, y, z); + break; + } + case SMALL_PARALLEL_CURVE: + case SMALL_RIGHT_PARALLEL_CURVE: { + modelRightParallelCurve.render("small", "", railTile, x, y, z); + break; + } + case SMALL_LEFT_PARALLEL_CURVE: { + modelLeftParallelCurve.render("small", "", railTile, x, y, z); + break; + } - public RenderTCRail() { + case MEDIUM_PARALLEL_CURVE: + case MEDIUM_RIGHT_PARALLEL_CURVE: { + modelRightParallelCurve.render("medium", "", railTile, x, y, z); + break; + } + case MEDIUM_LEFT_PARALLEL_CURVE: { + modelLeftParallelCurve.render("medium", "", railTile, x, y, z); + break; + } + case LARGE_PARALLEL_CURVE: + case LARGE_RIGHT_PARALLEL_CURVE: { + modelRightParallelCurve.render("large", "", railTile, x, y, z); + break; + } + case LARGE_LEFT_PARALLEL_CURVE: { + modelLeftParallelCurve.render("large", "", railTile, x, y, z); + break; + } + case TWO_WAYS_CROSSING: { + modelTwoWaysCrossing.render("normal_crossing", railTile, x, y, z); + break; + } + case FOUR_WAYS_CROSSING: { + modelTwoWaysCrossing.render("normal_universal_crossing", railTile, x, y, z); + break; + } + case DIAMOND_CROSSING: + case RIGHT_DIAMOND_CROSSING: { + modelRightDiamondCrossing.render("normal", railTile, x, y, z); + break; + } + case LEFT_DIAMOND_CROSSING: { + modelLeftDiamondCrossing.render("normal", railTile, x, y, z); + break; + } + case DOUBLE_DIAMOND_CROSSING: { + modelTwoWaysCrossing.render("normal_diamond", railTile, x, y, z); + break; + } + case DIAGONAL_TWO_WAYS_CROSSING: { + modelTwoWaysCrossing.render("normal_diagonal_crossing", railTile, x, y, z); + break; + } + case MEDIUM_SWITCH: + case MEDIUM_RIGHT_SWITCH: { + modelRightSwitchTurn.render("medium", "", railTile, x, y, z); + break; + } + case MEDIUM_LEFT_SWITCH: { + modelLeftSwitchTurn.render("medium", "", railTile, x, y, z); + break; + } + case LARGE_SWITCH: + case LARGE_RIGHT_SWITCH: { + modelRightSwitchTurn.render("large_90", "", railTile, x, y, z); + break; + } + case LARGE_LEFT_SWITCH: { + modelLeftSwitchTurn.render("large_90", "", railTile, x, y, z); + break; + } + case MEDIUM_PARALLEL_SWITCH: + case MEDIUM_RIGHT_PARALLEL_SWITCH: { + modelRightSwitchTurn.render("medium_parallel", "", railTile, x, y, z); + break; + } + case MEDIUM_LEFT_PARALLEL_SWITCH: { + modelLeftSwitchTurn.render("medium_parallel", "", railTile, x, y, z); + break; + } + case MEDIUM_45DEGREE_SWITCH: + case MEDIUM_RIGHT_45DEGREE_SWITCH: { + modelRightSwitchTurn.render("medium_45degree", "", railTile, x, y, z); + break; + } + case MEDIUM_LEFT_45DEGREE_SWITCH: { + modelLeftSwitchTurn.render("medium_45degree", "", railTile, x, y, z); + break; + } + case SLOPE_WOOD: { + modelSlope.render("wood", railTile, x, y, z); + break; + } + case SLOPE_GRAVEL: { + modelSlope.render("gravel", railTile, x, y, z); + break; + } + case SLOPE_BALLAST: { + modelSlope.render("ballast", railTile, x, y, z); + break; + } + case SLOPE_SNOW_GRAVEL: { + modelSlope.render("snow", railTile, x, y, z); + break; + } + case SLOPE_DYNAMIC: { + modelSlope.render("dynamic", railTile, x, y, z); + break; + } + case EMBEDDED_SLOPE_DYNAMIC: { + modelSlope.render("embedded_dynamic", railTile, x, y, z); + break; + } + case LARGE_SLOPE_WOOD: { + modelLargeSlope.render("wood", railTile, x, y, z); + break; + } + case LARGE_SLOPE_GRAVEL: { + modelLargeSlope.render("gravel", railTile, x, y, z); + break; + } + case LARGE_SLOPE_BALLAST: { + modelLargeSlope.render("ballast", railTile, x, y, z); + break; + } + case LARGE_SLOPE_SNOW_GRAVEL: { + modelLargeSlope.render("snow", railTile, x, y, z); + break; + } + case LARGE_SLOPE_DYNAMIC: { + modelLargeSlope.render("dynamic", railTile, x, y, z); + break; + } + case EMBEDDED_LARGE_SLOPE_DYNAMIC: { + modelLargeSlope.render("embedded_dynamic", railTile, x, y, z); + break; + } + case VERY_LARGE_SLOPE_WOOD: { + modelVeryLargeSlope.render("wood", railTile, x, y, z); + break; + } + case VERY_LARGE_SLOPE_GRAVEL: { + modelVeryLargeSlope.render("gravel", railTile, x, y, z); + break; + } + case VERY_LARGE_SLOPE_BALLAST: { + modelVeryLargeSlope.render("ballast", railTile, x, y, z); + break; + } + case VERY_LARGE_SLOPE_SNOW_GRAVEL: { + modelVeryLargeSlope.render("snow", railTile, x, y, z); + break; + } + case VERY_LARGE_SLOPE_DYNAMIC: { + modelVeryLargeSlope.render("dynamic", railTile, x, y, z); + break; + } + case EMBEDDED_VERY_LARGE_SLOPE_DYNAMIC: { + modelVeryLargeSlope.render("embedded_dynamic", railTile, x, y, z); + break; + } + case LARGE_CURVED_SLOPE_DYNAMIC: + case LARGE_RIGHT_CURVED_SLOPE_DYNAMIC: { + modelRightCurvedSlope.render("large", railTile, x, y, z); + break; + } + case LARGE_LEFT_CURVED_SLOPE_DYNAMIC: { + modelLeftCurvedSlope.render("large", railTile, x, y, z); + break; + } + case VERY_LARGE_CURVED_SLOPE_DYNAMIC: + case VERY_LARGE_RIGHT_CURVED_SLOPE_DYNAMIC: { + modelRightCurvedSlope.render("verylarge", railTile, x, y, z); + break; + } + case VERY_LARGE_LEFT_CURVED_SLOPE_DYNAMIC: { + modelLeftCurvedSlope.render("verylarge", railTile, x, y, z); + break; + } + case SUPER_LARGE_CURVED_SLOPE_DYNAMIC: + case SUPER_LARGE_RIGHT_CURVED_SLOPE_DYNAMIC: { + modelRightCurvedSlope.render("superlarge", railTile, x, y, z); + break; + } + case SUPER_LARGE_LEFT_CURVED_SLOPE_DYNAMIC: { + modelLeftCurvedSlope.render("superlarge", railTile, x, y, z); + break; + } - } + // Embedded Tracks + case EMBEDDED_SMALL_STRAIGHT: { + modelSmallStraight.render("embedded", railTile, x, y, z); + break; + } + case SMALL_ROAD_CROSSING: { + modelRoadCrossing.render("crossing", railTile, x, y, z); + break; + } + case SMALL_ROAD_CROSSING_1: { + modelRoadCrossing.render("crossing1", railTile, x, y, z); + break; + } + case SMALL_ROAD_CROSSING_2: { + modelRoadCrossing.render("crossing2", railTile, x, y, z); + break; + } + case EMBEDDED_MEDIUM_STRAIGHT: + case EMBEDDED_LONG_STRAIGHT: + case EMBEDDED_VERY_LONG_STRAIGHT: { + modelMediumStraight.render("embedded_medium", railTile, x, y, z); + break; + } + case EMBEDDED_SMALL_DIAGONAL_STRAIGHT: { + modelSmallDiagonalStraight.render("embedded_diagonal", railTile, x, y, z); + break; + } + case EMBEDDED_MEDIUM_DIAGONAL_STRAIGHT: + case EMBEDDED_LONG_DIAGONAL_STRAIGHT: + case EMBEDDED_VERY_LONG_DIAGONAL_STRAIGHT: { + modelMediumDiagonalStraight.render("embedded_diagonal", railTile, x, y, z); + break; + } + case EMBEDDED_MEDIUM_TURN: + case EMBEDDED_MEDIUM_RIGHT_TURN: { + modelRightTurn.render("embedded_medium", railTile, x, y, z); + break; + } + case EMBEDDED_MEDIUM_LEFT_TURN: { + modelLeftTurn.render("embedded_medium", railTile, x, y, z); + break; + } + case EMBEDDED_LARGE_TURN: + case EMBEDDED_LARGE_RIGHT_TURN: { + modelRightTurn.render("embedded_large", railTile, x, y, z); + break; + } + case EMBEDDED_LARGE_LEFT_TURN: { + modelLeftTurn.render("embedded_large", railTile, x, y, z); + break; + } + case EMBEDDED_VERY_LARGE_TURN: + case EMBEDDED_VERY_LARGE_RIGHT_TURN: { + modelRightTurn.render("embedded_very_large", railTile, x, y, z); + break; + } + case EMBEDDED_VERY_LARGE_LEFT_TURN: { + modelLeftTurn.render("embedded_very_large", railTile, x, y, z); + break; + } + case EMBEDDED_SUPER_LARGE_TURN: + case EMBEDDED_SUPER_LARGE_RIGHT_TURN: { + modelRightTurn.render("embedded_super_large", railTile, x, y, z); + break; + } + case EMBEDDED_SUPER_LARGE_LEFT_TURN: { + modelLeftTurn.render("embedded_super_large", railTile, x, y, z); + break; + } + case EMBEDDED_MEDIUM_45DEGREE_TURN: + case EMBEDDED_MEDIUM_RIGHT_45DEGREE_TURN: { + model45DegreeRightTurn.render("medium", "embedded", railTile, x, y, z); + break; + } + case EMBEDDED_MEDIUM_LEFT_45DEGREE_TURN: { + model45DegreeLeftTurn.render("medium", "embedded", railTile, x, y, z); + break; + } + case EMBEDDED_LARGE_45DEGREE_TURN: + case EMBEDDED_LARGE_RIGHT_45DEGREE_TURN: { + model45DegreeRightTurn.render("large", "embedded", railTile, x, y, z); + break; + } + case EMBEDDED_LARGE_LEFT_45DEGREE_TURN: { + model45DegreeLeftTurn.render("large", "embedded", railTile, x, y, z); + break; + } + case EMBEDDED_VERY_LARGE_45DEGREE_TURN: + case EMBEDDED_VERY_LARGE_RIGHT_45DEGREE_TURN: { + model45DegreeRightTurn.render("verylarge", "embedded", railTile, x, y, z); + break; + } + case EMBEDDED_VERY_LARGE_LEFT_45DEGREE_TURN: { + model45DegreeLeftTurn.render("verylarge", "embedded", railTile, x, y, z); + break; + } + case EMBEDDED_SUPER_LARGE_45DEGREE_TURN: + case EMBEDDED_SUPER_LARGE_RIGHT_45DEGREE_TURN: { + model45DegreeRightTurn.render("superlarge", "embedded", railTile, x, y, z); + break; + } + case EMBEDDED_SUPER_LARGE_LEFT_45DEGREE_TURN: { + model45DegreeLeftTurn.render("superlarge", "embedded", railTile, x, y, z); + break; + } + case EMBEDDED_SMALL_PARALLEL_CURVE: + case EMBEDDED_SMALL_RIGHT_PARALLEL_CURVE: { + modelRightParallelCurve.render("small", "embedded", railTile, x, y, z); + break; + } + case EMBEDDED_SMALL_LEFT_PARALLEL_CURVE: { + modelLeftParallelCurve.render("small", "embedded", railTile, x, y, z); + break; + } - @Override - public void renderTileEntityAt(TileEntity var1, double x, double y, double z, float var8 ) { - if(var1 instanceof TileTCRail){ - TileTCRail railTile = (TileTCRail) var1; - if (railTile.hasModel && railTile.getTrackType() != null) { - switch (railTile.getTrackType()){ + case EMBEDDED_MEDIUM_PARALLEL_CURVE: + case EMBEDDED_MEDIUM_RIGHT_PARALLEL_CURVE: { + modelRightParallelCurve.render("medium", "embedded", railTile, x, y, z); + break; + } + case EMBEDDED_MEDIUM_LEFT_PARALLEL_CURVE: { + modelLeftParallelCurve.render("medium", "embedded", railTile, x, y, z); + break; + } + case EMBEDDED_LARGE_PARALLEL_CURVE: + case EMBEDDED_LARGE_RIGHT_PARALLEL_CURVE: { + modelRightParallelCurve.render("large", "embedded", railTile, x, y, z); + break; + } + case EMBEDDED_LARGE_LEFT_PARALLEL_CURVE: { + modelLeftParallelCurve.render("large", "embedded", railTile, x, y, z); + break; + } + case EMBEDDED_TWO_WAYS_CROSSING: { + modelTwoWaysCrossing.render("embedded_crossing", railTile, x, y, z); + break; + } + case EMBEDDED_FOUR_WAYS_CROSSING: { + modelTwoWaysCrossing.render("embedded_universal_crossing", railTile, x, y, z); + break; + } + case EMBEDDED_DIAGONAL_TWO_WAYS_CROSSING: { + modelTwoWaysCrossing.render("embedded_diagonal_crossing", railTile, x, y, z); + break; + } - - /**Normal Tracks*/ - case SMALL_STRAIGHT:{ - modelSmallStraight.render("normal", railTile, x, y, z); - break; - } - case MEDIUM_STRAIGHT: - case LONG_STRAIGHT: - case VERY_LONG_STRAIGHT:{ - modelMediumStraight.render("medium", railTile, x, y, z); - break; - } - case SMALL_DIAGONAL_STRAIGHT:{ - modelSmallDiagonalStraight.render("diagonal", railTile, x, y, z); - break; - } - case MEDIUM_DIAGONAL_STRAIGHT: - case LONG_DIAGONAL_STRAIGHT: - case VERY_LONG_DIAGONAL_STRAIGHT:{ - modelMediumDiagonalStraight.render("diagonal", railTile, x, y, z); - break; - } - - case MEDIUM_TURN: - case MEDIUM_RIGHT_TURN: { - modelRightTurn.render("medium", railTile, x, y, z); - break; - } - case MEDIUM_LEFT_TURN: { - modelLeftTurn.render("medium", railTile, x, y, z); - break; - } - case LARGE_TURN: - case LARGE_RIGHT_TURN: { - modelRightTurn.render("large", railTile, x, y, z); - break; - } - case LARGE_LEFT_TURN: { - modelLeftTurn.render("large", railTile, x, y, z); - break; - } - case VERY_LARGE_TURN: - case VERY_LARGE_RIGHT_TURN: { - modelRightTurn.render("very_large", railTile, x, y, z); - break; - } - case VERY_LARGE_LEFT_TURN: { - modelLeftTurn.render("very_large", railTile, x, y, z); - break; - } - case SUPER_LARGE_TURN: - case SUPER_LARGE_RIGHT_TURN: { - modelRightTurn.render("super_large", railTile, x , y, z); - break; - } - case SUPER_LARGE_LEFT_TURN: { - modelLeftTurn.render("super_large", railTile, x , y, z); - break; - } - case MEDIUM_45DEGREE_TURN: - case MEDIUM_RIGHT_45DEGREE_TURN: { - model45DegreeRightTurn.render("medium", "", railTile, x, y, z); - break; - } - case MEDIUM_LEFT_45DEGREE_TURN:{ - model45DegreeLeftTurn.render("medium", "", railTile, x, y, z); - break; - } - case LARGE_45DEGREE_TURN: - case LARGE_RIGHT_45DEGREE_TURN: { - model45DegreeRightTurn.render("large","", railTile, x, y, z); - break; - } - case LARGE_LEFT_45DEGREE_TURN:{ - model45DegreeLeftTurn.render("large","", railTile, x, y, z); - break; - } - case VERY_LARGE_45DEGREE_TURN: - case VERY_LARGE_RIGHT_45DEGREE_TURN: { - model45DegreeRightTurn.render("verylarge","", railTile, x, y, z); - break; - } - case VERY_LARGE_LEFT_45DEGREE_TURN:{ - model45DegreeLeftTurn.render("verylarge","", railTile, x, y, z); - break; - } - case SUPER_LARGE_45DEGREE_TURN: - case SUPER_LARGE_RIGHT_45DEGREE_TURN: { - model45DegreeRightTurn.render("superlarge","", railTile, x, y, z); - break; - } - case SUPER_LARGE_LEFT_45DEGREE_TURN:{ - model45DegreeLeftTurn.render("superlarge","", railTile, x, y, z); - break; - } - case SMALL_PARALLEL_CURVE: - case SMALL_RIGHT_PARALLEL_CURVE:{ - modelRightParallelCurve.render("small", "", railTile, x, y, z); - break; - } - case SMALL_LEFT_PARALLEL_CURVE:{ - modelLeftParallelCurve.render("small", "",railTile, x, y, z); - break; - } - - case MEDIUM_PARALLEL_CURVE: - case MEDIUM_RIGHT_PARALLEL_CURVE:{ - modelRightParallelCurve.render("medium","", railTile, x, y, z); - break; - } - case MEDIUM_LEFT_PARALLEL_CURVE:{ - modelLeftParallelCurve.render("medium", "",railTile, x, y, z); - break; - } - case LARGE_PARALLEL_CURVE: - case LARGE_RIGHT_PARALLEL_CURVE: { - modelRightParallelCurve.render("large","", railTile, x, y, z); - break; - } - case LARGE_LEFT_PARALLEL_CURVE: { - modelLeftParallelCurve.render("large","", railTile, x, y, z); - break; - } - case TWO_WAYS_CROSSING: { - modelTwoWaysCrossing.render("normal_crossing",railTile, x, y, z); - break; - } - case FOUR_WAYS_CROSSING: { - modelTwoWaysCrossing.render("normal_universal_crossing",railTile, x, y, z); - break; - } - case DIAMOND_CROSSING: - case RIGHT_DIAMOND_CROSSING: { - modelRightDiamondCrossing.render("normal", railTile, x, y, z); - break; - } - case LEFT_DIAMOND_CROSSING: { - modelLeftDiamondCrossing.render("normal", railTile,x, y, z); - break; - } - case DOUBLE_DIAMOND_CROSSING:{ - modelTwoWaysCrossing.render("normal_diamond", railTile, x, y, z); - break; - } - case DIAGONAL_TWO_WAYS_CROSSING:{ - modelTwoWaysCrossing.render("normal_diagonal_crossing", railTile, x, y, z); - break; - } - case MEDIUM_SWITCH: - case MEDIUM_RIGHT_SWITCH: { - modelRightSwitchTurn.render("medium", "", railTile, x, y, z); - break; - } - case MEDIUM_LEFT_SWITCH: { - modelLeftSwitchTurn.render("medium", "", railTile, x, y, z); - break; - } - case LARGE_SWITCH: - case LARGE_RIGHT_SWITCH: { - modelRightSwitchTurn.render("large_90", "", railTile, x, y, z); - break; - } - case LARGE_LEFT_SWITCH: { - modelLeftSwitchTurn.render("large_90","", railTile, x, y, z); - break; - } - case MEDIUM_PARALLEL_SWITCH: - case MEDIUM_RIGHT_PARALLEL_SWITCH: { - modelRightSwitchTurn.render("medium_parallel", "",railTile, x, y, z); - break; - } - case MEDIUM_LEFT_PARALLEL_SWITCH: { - modelLeftSwitchTurn.render("medium_parallel", "",railTile, x, y, z); - break; - } - case MEDIUM_45DEGREE_SWITCH: - case MEDIUM_RIGHT_45DEGREE_SWITCH: { - modelRightSwitchTurn.render("medium_45degree","", railTile, x, y, z); - break; - } - case MEDIUM_LEFT_45DEGREE_SWITCH: { - modelLeftSwitchTurn.render("medium_45degree","", railTile, x, y, z); - break; - } - case SLOPE_WOOD: { - modelSlope.render("wood", railTile, x, y, z); - break; - } - case SLOPE_GRAVEL: { - modelSlope.render("gravel", railTile, x, y, z); - break; - } - case SLOPE_BALLAST: { - modelSlope.render("ballast", railTile, x, y, z); - break; - } - case SLOPE_SNOW_GRAVEL: { - modelSlope.render("snow", railTile, x, y, z); - break; - } - case SLOPE_DYNAMIC: { - modelSlope.render("dynamic", railTile, x, y, z); - break; - } - case EMBEDDED_SLOPE_DYNAMIC: { - modelSlope.render("embedded_dynamic", railTile, x, y, z); - break; - } - case LARGE_SLOPE_WOOD: { - modelLargeSlope.render("wood", railTile, x, y, z); - break; - } - case LARGE_SLOPE_GRAVEL: { - modelLargeSlope.render("gravel", railTile, x, y, z); - break; - } - case LARGE_SLOPE_BALLAST: { - modelLargeSlope.render("ballast", railTile, x, y, z); - break; - } - case LARGE_SLOPE_SNOW_GRAVEL: { - modelLargeSlope.render("snow", railTile, x, y, z); - break; - } - case LARGE_SLOPE_DYNAMIC: { - modelLargeSlope.render("dynamic", railTile, x, y, z); - break; - } - case EMBEDDED_LARGE_SLOPE_DYNAMIC: { - modelLargeSlope.render("embedded_dynamic", railTile, x, y, z); - break; - } - case VERY_LARGE_SLOPE_WOOD: { - modelVeryLargeSlope.render("wood", railTile, x, y, z); - break; - } - case VERY_LARGE_SLOPE_GRAVEL: { - modelVeryLargeSlope.render("gravel", railTile, x, y, z); - break; - } - case VERY_LARGE_SLOPE_BALLAST: { - modelVeryLargeSlope.render("ballast", railTile, x, y, z); - break; - } - case VERY_LARGE_SLOPE_SNOW_GRAVEL: { - modelVeryLargeSlope.render("snow", railTile, x, y, z); - break; - } - case VERY_LARGE_SLOPE_DYNAMIC: { - modelVeryLargeSlope.render("dynamic", railTile, x, y, z); - break; - } - case EMBEDDED_VERY_LARGE_SLOPE_DYNAMIC: { - modelVeryLargeSlope.render("embedded_dynamic", railTile, x, y, z); - break; - } - case LARGE_CURVED_SLOPE_DYNAMIC: - case LARGE_RIGHT_CURVED_SLOPE_DYNAMIC:{ - modelRightCurvedSlope.render("large", railTile, x, y, z); - break; - } - case LARGE_LEFT_CURVED_SLOPE_DYNAMIC:{ - modelLeftCurvedSlope.render("large", railTile, x, y, z); - break; - } - case VERY_LARGE_CURVED_SLOPE_DYNAMIC: - case VERY_LARGE_RIGHT_CURVED_SLOPE_DYNAMIC:{ - modelRightCurvedSlope.render("verylarge", railTile, x, y, z); - break; - } - case VERY_LARGE_LEFT_CURVED_SLOPE_DYNAMIC:{ - modelLeftCurvedSlope.render("verylarge", railTile, x, y, z); - break; - } - case SUPER_LARGE_CURVED_SLOPE_DYNAMIC: - case SUPER_LARGE_RIGHT_CURVED_SLOPE_DYNAMIC:{ - modelRightCurvedSlope.render("superlarge", railTile, x, y, z); - break; - } - case SUPER_LARGE_LEFT_CURVED_SLOPE_DYNAMIC:{ - modelLeftCurvedSlope.render("superlarge", railTile, x, y, z); - break; - } - - - /**Embedded Tracks*/ - case EMBEDDED_SMALL_STRAIGHT: { - modelSmallStraight.render("embedded", railTile, x, y, z); - break; - } - case SMALL_ROAD_CROSSING:{ - modelRoadCrossing.render("crossing", railTile, x, y, z); - break; - } - case SMALL_ROAD_CROSSING_1:{ - modelRoadCrossing.render("crossing1", railTile, x, y, z); - break; - } - case SMALL_ROAD_CROSSING_2:{ - modelRoadCrossing.render("crossing2", railTile, x, y, z); - break; - } - case EMBEDDED_MEDIUM_STRAIGHT: - case EMBEDDED_LONG_STRAIGHT: - case EMBEDDED_VERY_LONG_STRAIGHT:{ - modelMediumStraight.render("embedded_medium", railTile, x, y, z); - break; - } - case EMBEDDED_SMALL_DIAGONAL_STRAIGHT:{ - modelSmallDiagonalStraight.render("embedded_diagonal", railTile, x, y, z); - break; - } - case EMBEDDED_MEDIUM_DIAGONAL_STRAIGHT: - case EMBEDDED_LONG_DIAGONAL_STRAIGHT: - case EMBEDDED_VERY_LONG_DIAGONAL_STRAIGHT:{ - modelMediumDiagonalStraight.render("embedded_diagonal", railTile, x, y, z); - break; - } - case EMBEDDED_MEDIUM_TURN: - case EMBEDDED_MEDIUM_RIGHT_TURN: { - modelRightTurn.render("embedded_medium", railTile, x, y, z); - break; - } - case EMBEDDED_MEDIUM_LEFT_TURN: { - modelLeftTurn.render("embedded_medium", railTile, x, y, z); - break; - } - case EMBEDDED_LARGE_TURN: - case EMBEDDED_LARGE_RIGHT_TURN: { - modelRightTurn.render("embedded_large", railTile, x, y, z); - break; - } - case EMBEDDED_LARGE_LEFT_TURN: { - modelLeftTurn.render("embedded_large", railTile, x, y, z); - break; - } - case EMBEDDED_VERY_LARGE_TURN: - case EMBEDDED_VERY_LARGE_RIGHT_TURN: { - modelRightTurn.render("embedded_very_large", railTile, x, y, z); - break; - } - case EMBEDDED_VERY_LARGE_LEFT_TURN: { - modelLeftTurn.render("embedded_very_large", railTile, x, y, z); - break; - } - case EMBEDDED_SUPER_LARGE_TURN: - case EMBEDDED_SUPER_LARGE_RIGHT_TURN: { - modelRightTurn.render("embedded_super_large", railTile, x, y, z); - break; - } - case EMBEDDED_SUPER_LARGE_LEFT_TURN: { - modelLeftTurn.render("embedded_super_large", railTile, x, y, z); - break; - } - case EMBEDDED_MEDIUM_45DEGREE_TURN: - case EMBEDDED_MEDIUM_RIGHT_45DEGREE_TURN: { - model45DegreeRightTurn.render("medium", "embedded" ,railTile, x, y, z); - break; - } - case EMBEDDED_MEDIUM_LEFT_45DEGREE_TURN:{ - model45DegreeLeftTurn.render("medium", "embedded" ,railTile, x, y, z); - break; - } - case EMBEDDED_LARGE_45DEGREE_TURN: - case EMBEDDED_LARGE_RIGHT_45DEGREE_TURN: { - model45DegreeRightTurn.render("large", "embedded" ,railTile, x, y, z); - break; - } - case EMBEDDED_LARGE_LEFT_45DEGREE_TURN:{ - model45DegreeLeftTurn.render("large","embedded" , railTile, x, y, z); - break; - } - case EMBEDDED_VERY_LARGE_45DEGREE_TURN: - case EMBEDDED_VERY_LARGE_RIGHT_45DEGREE_TURN: { - model45DegreeRightTurn.render("verylarge","embedded" ,railTile, x, y, z); - break; - } - case EMBEDDED_VERY_LARGE_LEFT_45DEGREE_TURN: { - model45DegreeLeftTurn.render("verylarge","embedded" ,railTile, x, y, z); - break; - } - case EMBEDDED_SUPER_LARGE_45DEGREE_TURN: - case EMBEDDED_SUPER_LARGE_RIGHT_45DEGREE_TURN: { - model45DegreeRightTurn.render("superlarge","embedded" ,railTile, x, y, z); - break; - } - case EMBEDDED_SUPER_LARGE_LEFT_45DEGREE_TURN: { - model45DegreeLeftTurn.render("superlarge", "embedded" ,railTile, x, y, z); - break; - } - case EMBEDDED_SMALL_PARALLEL_CURVE: - case EMBEDDED_SMALL_RIGHT_PARALLEL_CURVE:{ - modelRightParallelCurve.render("small", "embedded", railTile, x, y, z); - break; - } - case EMBEDDED_SMALL_LEFT_PARALLEL_CURVE:{ - modelLeftParallelCurve.render("small", "embedded", railTile, x, y, z); - break; - } - - case EMBEDDED_MEDIUM_PARALLEL_CURVE: - case EMBEDDED_MEDIUM_RIGHT_PARALLEL_CURVE:{ - modelRightParallelCurve.render("medium", "embedded", railTile, x, y, z); - break; - } - case EMBEDDED_MEDIUM_LEFT_PARALLEL_CURVE:{ - modelLeftParallelCurve.render("medium", "embedded",railTile, x, y, z); - break; - } - case EMBEDDED_LARGE_PARALLEL_CURVE: - case EMBEDDED_LARGE_RIGHT_PARALLEL_CURVE:{ - modelRightParallelCurve.render("large", "embedded",railTile, x, y, z); - break; - } - case EMBEDDED_LARGE_LEFT_PARALLEL_CURVE:{ - modelLeftParallelCurve.render("large", "embedded", railTile, x, y, z); - break; - } - - case EMBEDDED_TWO_WAYS_CROSSING: { - modelTwoWaysCrossing.render("embedded_crossing", railTile, x, y, z); - break; - } - case EMBEDDED_FOUR_WAYS_CROSSING: { - modelTwoWaysCrossing.render("embedded_universal_crossing", railTile, x, y, z); - break; - } - case EMBEDDED_DIAGONAL_TWO_WAYS_CROSSING:{ - modelTwoWaysCrossing.render("embedded_diagonal_crossing", railTile, x, y, z); - break; - } - - case EMBEDDED_DIAMOND_CROSSING: - case EMBEDDED_RIGHT_DIAMOND_CROSSING: { - modelRightDiamondCrossing.render("embedded", railTile, x, y, z); - break; - } - case EMBEDDED_LEFT_DIAMOND_CROSSING: { - modelLeftDiamondCrossing.render("embedded", railTile,x, y, z); - break; - } - case EMBEDDED_DOUBLE_DIAMOND_CROSSING:{ - modelTwoWaysCrossing.render("embedded_diamond", railTile, x, y, z); - break; - } - case EMBEDDED_MEDIUM_SWITCH: - case EMBEDDED_MEDIUM_RIGHT_SWITCH: { - modelRightSwitchTurn.render("medium", "embedded", railTile, x, y, z); - break; - } - case EMBEDDED_MEDIUM_LEFT_SWITCH: { - modelLeftSwitchTurn.render("medium","embedded", railTile, x, y, z); - break; - } - case EMBEDDED_LARGE_SWITCH: - case EMBEDDED_LARGE_RIGHT_SWITCH: { - modelRightSwitchTurn.render("large_90","embedded", railTile, x, y, z); - break; - } - case EMBEDDED_LARGE_LEFT_SWITCH: { - modelLeftSwitchTurn.render("large_90","embedded", railTile, x, y, z); - break; - } - case EMBEDDED_MEDIUM_PARALLEL_SWITCH: - case EMBEDDED_MEDIUM_RIGHT_PARALLEL_SWITCH: { - modelRightSwitchTurn.render("medium_parallel","embedded", railTile, x, y, z); - break; - } - case EMBEDDED_MEDIUM_LEFT_PARALLEL_SWITCH: { - modelLeftSwitchTurn.render("medium_parallel","embedded", railTile, x, y, z); - break; - } - case EMBEDDED_MEDIUM_45DEGREE_SWITCH: - case EMBEDDED_MEDIUM_RIGHT_45DEGREE_SWITCH: { - modelRightSwitchTurn.render("medium_45degree","embedded", railTile, x, y, z); - break; - } - case EMBEDDED_MEDIUM_LEFT_45DEGREE_SWITCH: { - modelLeftSwitchTurn.render("medium_45degree","embedded", railTile, x, y, z); - break; - } - case EMBEDDED_LARGE_CURVED_SLOPE_DYNAMIC: - case EMBEDDED_LARGE_RIGHT_CURVED_SLOPE_DYNAMIC:{ - modelRightCurvedSlope.render("embedded_large", railTile, x, y, z); - break; - } - case EMBEDDED_LARGE_LEFT_CURVED_SLOPE_DYNAMIC:{ - modelLeftCurvedSlope.render("embedded_large", railTile, x, y, z); - break; - } - case EMBEDDED_VERY_LARGE_CURVED_SLOPE_DYNAMIC: - case EMBEDDED_VERY_LARGE_RIGHT_CURVED_SLOPE_DYNAMIC:{ - modelRightCurvedSlope.render("embedded_verylarge", railTile, x, y, z); - break; - } - case EMBEDDED_VERY_LARGE_LEFT_CURVED_SLOPE_DYNAMIC:{ - modelLeftCurvedSlope.render("embedded_verylarge", railTile, x, y, z); - break; - } - case EMBEDDED_SUPER_LARGE_CURVED_SLOPE_DYNAMIC: - case EMBEDDED_SUPER_LARGE_RIGHT_CURVED_SLOPE_DYNAMIC:{ - modelRightCurvedSlope.render("embedded_superlarge", railTile, x, y, z); - break; - } - case EMBEDDED_SUPER_LARGE_LEFT_CURVED_SLOPE_DYNAMIC:{ - modelLeftCurvedSlope.render("embedded_superlarge", railTile, x, y, z); - break; - } - - - - - - - - - - - } - - - } - } - } + case EMBEDDED_DIAMOND_CROSSING: + case EMBEDDED_RIGHT_DIAMOND_CROSSING: { + modelRightDiamondCrossing.render("embedded", railTile, x, y, z); + break; + } + case EMBEDDED_LEFT_DIAMOND_CROSSING: { + modelLeftDiamondCrossing.render("embedded", railTile, x, y, z); + break; + } + case EMBEDDED_DOUBLE_DIAMOND_CROSSING: { + modelTwoWaysCrossing.render("embedded_diamond", railTile, x, y, z); + break; + } + case EMBEDDED_MEDIUM_SWITCH: + case EMBEDDED_MEDIUM_RIGHT_SWITCH: { + modelRightSwitchTurn.render("medium", "embedded", railTile, x, y, z); + break; + } + case EMBEDDED_MEDIUM_LEFT_SWITCH: { + modelLeftSwitchTurn.render("medium", "embedded", railTile, x, y, z); + break; + } + case EMBEDDED_LARGE_SWITCH: + case EMBEDDED_LARGE_RIGHT_SWITCH: { + modelRightSwitchTurn.render("large_90", "embedded", railTile, x, y, z); + break; + } + case EMBEDDED_LARGE_LEFT_SWITCH: { + modelLeftSwitchTurn.render("large_90", "embedded", railTile, x, y, z); + break; + } + case EMBEDDED_MEDIUM_PARALLEL_SWITCH: + case EMBEDDED_MEDIUM_RIGHT_PARALLEL_SWITCH: { + modelRightSwitchTurn.render("medium_parallel", "embedded", railTile, x, y, z); + break; + } + case EMBEDDED_MEDIUM_LEFT_PARALLEL_SWITCH: { + modelLeftSwitchTurn.render("medium_parallel", "embedded", railTile, x, y, z); + break; + } + case EMBEDDED_MEDIUM_45DEGREE_SWITCH: + case EMBEDDED_MEDIUM_RIGHT_45DEGREE_SWITCH: { + modelRightSwitchTurn.render("medium_45degree", "embedded", railTile, x, y, z); + break; + } + case EMBEDDED_MEDIUM_LEFT_45DEGREE_SWITCH: { + modelLeftSwitchTurn.render("medium_45degree", "embedded", railTile, x, y, z); + break; + } + case EMBEDDED_LARGE_CURVED_SLOPE_DYNAMIC: + case EMBEDDED_LARGE_RIGHT_CURVED_SLOPE_DYNAMIC: { + modelRightCurvedSlope.render("embedded_large", railTile, x, y, z); + break; + } + case EMBEDDED_LARGE_LEFT_CURVED_SLOPE_DYNAMIC: { + modelLeftCurvedSlope.render("embedded_large", railTile, x, y, z); + break; + } + case EMBEDDED_VERY_LARGE_CURVED_SLOPE_DYNAMIC: + case EMBEDDED_VERY_LARGE_RIGHT_CURVED_SLOPE_DYNAMIC: { + modelRightCurvedSlope.render("embedded_verylarge", railTile, x, y, z); + break; + } + case EMBEDDED_VERY_LARGE_LEFT_CURVED_SLOPE_DYNAMIC: { + modelLeftCurvedSlope.render("embedded_verylarge", railTile, x, y, z); + break; + } + case EMBEDDED_SUPER_LARGE_CURVED_SLOPE_DYNAMIC: + case EMBEDDED_SUPER_LARGE_RIGHT_CURVED_SLOPE_DYNAMIC: { + modelRightCurvedSlope.render("embedded_superlarge", railTile, x, y, z); + break; + } + case EMBEDDED_SUPER_LARGE_LEFT_CURVED_SLOPE_DYNAMIC: { + modelLeftCurvedSlope.render("embedded_superlarge", railTile, x, y, z); + break; + } + } + } + } + } } diff --git a/src/main/java/train/client/render/RenderWaterWheel.java b/src/main/java/train/client/render/RenderWaterWheel.java index 9de3f866ab..4f80d7fd01 100644 --- a/src/main/java/train/client/render/RenderWaterWheel.java +++ b/src/main/java/train/client/render/RenderWaterWheel.java @@ -6,10 +6,10 @@ import train.common.tile.TileWaterWheel; public class RenderWaterWheel extends TileEntitySpecialRenderer { - private static final ModelWaterWheel modelWaterWheel = new ModelWaterWheel(); + private static final ModelWaterWheel modelWaterWheel = new ModelWaterWheel(); - @Override - public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float tick) { - modelWaterWheel.render((TileWaterWheel) tileEntity, x, y, z); - } + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float tick) { + modelWaterWheel.render((TileWaterWheel) tileEntity, x, y, z); + } } diff --git a/src/main/java/train/client/render/RenderWindMill.java b/src/main/java/train/client/render/RenderWindMill.java index e56e8530f7..41fe5de0e6 100644 --- a/src/main/java/train/client/render/RenderWindMill.java +++ b/src/main/java/train/client/render/RenderWindMill.java @@ -7,12 +7,12 @@ import train.common.tile.TileWindMill; public class RenderWindMill extends TileEntitySpecialRenderer { - private static final ModelWindMill modelWindMill = new ModelWindMill(); - private static final ModelWindMillWheel modelWindMillWheel = new ModelWindMillWheel(); + private static final ModelWindMill modelWindMill = new ModelWindMill(); + private static final ModelWindMillWheel modelWindMillWheel = new ModelWindMillWheel(); - @Override - public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float tick) { - modelWindMill.render((TileWindMill) tileEntity, x, y, z); - modelWindMillWheel.render((TileWindMill) tileEntity, x, y, z); - } + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float tick) { + modelWindMill.render((TileWindMill) tileEntity, x, y, z); + modelWindMillWheel.render((TileWindMill) tileEntity, x, y, z); + } } diff --git a/src/main/java/train/client/render/RenderZeppelins.java b/src/main/java/train/client/render/RenderZeppelins.java index 4b573bdfbe..b4af0ab449 100644 --- a/src/main/java/train/client/render/RenderZeppelins.java +++ b/src/main/java/train/client/render/RenderZeppelins.java @@ -14,82 +14,75 @@ public class RenderZeppelins extends Render { - private static final ModelBase modelZeppelinTwoBalloons = new ModelZeppelinTwoBalloons(); - private static final ModelBase modelZeppelinOneBalloon = new ModelZeppelinOneBalloon(); - - private static final ResourceLocation oneBalloon = new ResourceLocation(Info.resourceLocation, Info.zeppelinTexturePrefix + "zeppelin_one_balloon.png"); - private static final ResourceLocation twoBalloon = new ResourceLocation(Info.resourceLocation, Info.zeppelinTexturePrefix + "zeppelin_two_balloons.png"); - - public RenderZeppelins() { - shadowSize = 0.5F; - } - - private void func_157_a(AbstractZeppelin entityzepplin, double d, double d1, double d2, float f, float f1) { - GL11.glPushMatrix(); - GL11.glTranslatef((float) d, (float) d1, (float) d2); - GL11.glRotatef(90F - f, 0.0F, 1.0F, 0.0F); - /** - * Damage mouvements - */ - float f2 = (float) entityzepplin.boatTimeSinceHit - f1; - float f3 = (float) entityzepplin.boatCurrentDamage - f1; - if (f3 < 0.0F) { - f3 = 0.0F; - } - if (f2 > 0.0F) { - GL11.glRotatef(((MathHelper.sin(f2) * f2 * f3) / 10F) * (float) entityzepplin.boatRockDirection, 1.0F, 0.0F, 0.0F); - } - - /** - * Pitch - */ - float pitch = entityzepplin.pitch / 1.5F; - - if (pitch > 30) { - pitch = 30; - } - if (pitch < -30) { - pitch = -30; - } - GL11.glRotatef(pitch, 1.0F, 0.0F, 0.0F); - - /** - * Roll - */ - float roll = entityzepplin.roll * 20F; - if (roll > 15) { - roll = 15; - } - if (roll < -15) { - roll = -15; - } - - GL11.glRotatef(roll, 0.0F, 0.0F, 1.0F); - - - bindEntityTexture(entityzepplin); - if(entityzepplin instanceof EntityZeppelinOneBalloon){ - GL11.glTranslatef(0.0F, -0.45F, 0.55F); - GL11.glRotatef(90, 0.0F, 1.0F, 0.0F); - modelZeppelinOneBalloon.render(entityzepplin, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - }else{ - GL11.glTranslatef(0.0F, -0.25F, 0.9F); - modelZeppelinTwoBalloons.render(entityzepplin, 0.0F, +0.2F, -0.1F, 0.0F, 0.0F, 0.0625F); - } - GL11.glPopMatrix(); - } - - @Override - public void doRender(Entity entity, double d, double d1, double d2, float f, float f1) { - func_157_a((AbstractZeppelin) entity, d, d1, d2, f, f1); - } - - @Override - protected ResourceLocation getEntityTexture(Entity entity) { - if(entity instanceof EntityZeppelinOneBalloon){ - return oneBalloon; - } else { - return twoBalloon; - } - } + private static final ModelBase modelZeppelinTwoBalloons = new ModelZeppelinTwoBalloons(); + private static final ModelBase modelZeppelinOneBalloon = new ModelZeppelinOneBalloon(); + + private static final ResourceLocation oneBalloon = new ResourceLocation(Info.resourceLocation, Info.zeppelinTexturePrefix + "zeppelin_one_balloon.png"); + private static final ResourceLocation twoBalloon = new ResourceLocation(Info.resourceLocation, Info.zeppelinTexturePrefix + "zeppelin_two_balloons.png"); + + public RenderZeppelins() { + shadowSize = 0.5F; + } + + private void func_157_a(AbstractZeppelin entityzepplin, double d, double d1, double d2, float f, float f1) { + GL11.glPushMatrix(); + GL11.glTranslatef((float) d, (float) d1, (float) d2); + GL11.glRotatef(90F - f, 0.0F, 1.0F, 0.0F); + + // Damage movements + float f2 = (float) entityzepplin.boatTimeSinceHit - f1; + float f3 = (float) entityzepplin.boatCurrentDamage - f1; + if (f3 < 0.0F) { + f3 = 0.0F; + } + + if (f2 > 0.0F) { + GL11.glRotatef(((MathHelper.sin(f2) * f2 * f3) / 10F) * (float) entityzepplin.boatRockDirection, 1.0F, 0.0F, 0.0F); + } + + // Pitch + float pitch = entityzepplin.pitch / 1.5F; + if (pitch > 30) { + pitch = 30; + } + + if (pitch < -30) { + pitch = -30; + } + + GL11.glRotatef(pitch, 1.0F, 0.0F, 0.0F); + + // Roll + float roll = entityzepplin.roll * 20F; + if (roll > 15) { + roll = 15; + } + + if (roll < -15) { + roll = -15; + } + + GL11.glRotatef(roll, 0.0F, 0.0F, 1.0F); + + bindEntityTexture(entityzepplin); + if (entityzepplin instanceof EntityZeppelinOneBalloon) { + GL11.glTranslatef(0.0F, -0.45F, 0.55F); + GL11.glRotatef(90, 0.0F, 1.0F, 0.0F); + modelZeppelinOneBalloon.render(entityzepplin, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); + } else { + GL11.glTranslatef(0.0F, -0.25F, 0.9F); + modelZeppelinTwoBalloons.render(entityzepplin, 0.0F, +0.2F, -0.1F, 0.0F, 0.0F, 0.0625F); + } + GL11.glPopMatrix(); + } + + @Override + public void doRender(Entity entity, double d, double d1, double d2, float f, float f1) { + func_157_a((AbstractZeppelin) entity, d, d1, d2, f, f1); + } + + @Override + protected ResourceLocation getEntityTexture(Entity entity) { + return entity instanceof EntityZeppelinOneBalloon ? oneBalloon : twoBalloon; + } } diff --git a/src/main/java/train/client/render/TileLinesRenderer.java b/src/main/java/train/client/render/TileLinesRenderer.java index ad4af5adbf..b0a23d4ac9 100644 --- a/src/main/java/train/client/render/TileLinesRenderer.java +++ b/src/main/java/train/client/render/TileLinesRenderer.java @@ -8,22 +8,22 @@ * @author Spitfire4466 */ public class TileLinesRenderer extends TileEntitySpecialRenderer { - private static final ModelLines model = new ModelLines(); + private static final ModelLines model = new ModelLines(); - public TileLinesRenderer() { - } + public TileLinesRenderer() { + } - /* public void renderAModelAt(TileEntityElectricConverter tile, double d, double d1, double d2, float f) { int i = 0; - * - * if (tile.worldObj != null) { i = tile.getBlockMetadata(); } GL11.glPushMatrix(); bindTextureByName("/train_textures/overheadlines.png"); GL11.glTranslatef((float) d + 0.5F, (float) d1 + 1.5F, (float) d2 + 0.5F); GL11.glScalef(1.0F, -1F, -1F); if(tile.Up == true)model.renderUp(); if(tile.Down == true)model.renderDown(); if(tile.Left == true)model.renderLeft(); if(tile.Right == true)model.renderRight(); if(tile.Back == true)model.renderBack(); if(tile.Front == true)model.renderFront(); model.renderMiddle(); GL11.glPopMatrix(); - * - * - * - * } */ - @Override - public void renderTileEntityAt(TileEntity tileentity, double d, double d1, double d2, float f) { - // renderAModelAt((TileEntityElectricConverter)tileentity, d, d1, d2, f); - } + /* public void renderAModelAt(TileEntityElectricConverter tile, double d, double d1, double d2, float f) { int i = 0; + * + * if (tile.worldObj != null) { i = tile.getBlockMetadata(); } GL11.glPushMatrix(); bindTextureByName("/train_textures/overheadlines.png"); GL11.glTranslatef((float) d + 0.5F, (float) d1 + 1.5F, (float) d2 + 0.5F); GL11.glScalef(1.0F, -1F, -1F); if(tile.Up == true)model.renderUp(); if(tile.Down == true)model.renderDown(); if(tile.Left == true)model.renderLeft(); if(tile.Right == true)model.renderRight(); if(tile.Back == true)model.renderBack(); if(tile.Front == true)model.renderFront(); model.renderMiddle(); GL11.glPopMatrix(); + * + * + * + * } */ + @Override + public void renderTileEntityAt(TileEntity tileentity, double d, double d1, double d2, float f) { + // renderAModelAt((TileEntityElectricConverter)tileentity, d, d1, d2, f); + } } \ No newline at end of file diff --git a/src/main/java/train/common/Traincraft.java b/src/main/java/train/common/Traincraft.java index cd74f6ba3b..870f6a2a85 100644 --- a/src/main/java/train/common/Traincraft.java +++ b/src/main/java/train/common/Traincraft.java @@ -237,4 +237,8 @@ public static boolean hasComputerCraft() { public static boolean hasNotEnoughItems() { return Loader.isModLoaded("NotEnoughItems"); } + + public static boolean hasRailcraft() { + return Loader.isModLoaded("Railcraft"); + } } diff --git a/src/main/java/train/common/adminbook/GUIAdminBook.java b/src/main/java/train/common/adminbook/GUIAdminBook.java index d5ef515905..c92ae0eb9b 100644 --- a/src/main/java/train/common/adminbook/GUIAdminBook.java +++ b/src/main/java/train/common/adminbook/GUIAdminBook.java @@ -21,29 +21,29 @@ public class GUIAdminBook extends GuiScreen { /**the amount to scale the GUI by, same as vanilla*/ private static final float guiScaler = 0.00390625F; - private String[] list; + private final String[] list; static boolean isTrainPage = false; private int guiLeft; private int guiTop; - private int page=0; - private List items = new ArrayList(); + private int page = 0; + private List items = new ArrayList<>(); - public GUIAdminBook(String csv){ + public GUIAdminBook(String csv) { //if its the xml enable train page mode. - if (csv.length()<3){ - list=null; + if (csv.length() < 3) { + list = null; return; } - if(csv.charAt(0) == '<') { - isTrainPage=true; + if (csv.charAt(0) == '<') { + isTrainPage = true; } else { isTrainPage = false; } list = csv.split(","); } + @Override - public boolean doesGuiPauseGame() - { + public boolean doesGuiPauseGame() { return false; } @@ -51,41 +51,43 @@ public boolean doesGuiPauseGame() @Override public void actionPerformed(GuiButton button) { - switch (button.id){ - case -1:{ - Traincraft.keyChannel.sendToServer(new ItemAdminBook.PacketAdminBookClient( "0:"+list[0].substring(1,list[0].length()), Minecraft.getMinecraft().thePlayer.getEntityId()));//tell server to drop items + switch (button.id) { + case -1: { + // Tell the server to drop items + Traincraft.keyChannel.sendToServer(new ItemAdminBook.PacketAdminBookClient("0:" + list[0].substring(1), Minecraft.getMinecraft().thePlayer.getEntityId())); break; } - case 0:{ - Traincraft.keyChannel.sendToServer(new ItemAdminBook.PacketAdminBookClient( "1:"+list[0].substring(1), Minecraft.getMinecraft().thePlayer.getEntityId()));//tell server to drop items + case 0: { + // Tell the server to drop items + Traincraft.keyChannel.sendToServer(new ItemAdminBook.PacketAdminBookClient("1:" + list[0].substring(1), Minecraft.getMinecraft().thePlayer.getEntityId())); break; } - case 1:{ - if (!isTrainPage){ + case 1: { + if (!isTrainPage) { page--; - buttonList = new ArrayList(); + buttonList = new ArrayList<>(); initGui(); } else { - Traincraft.keyChannel.sendToServer(new ItemAdminBook.PacketAdminBookClient( list[1], Minecraft.getMinecraft().thePlayer.getEntityId()));//tell server to send a new gui + Traincraft.keyChannel.sendToServer(new ItemAdminBook.PacketAdminBookClient(list[1], Minecraft.getMinecraft().thePlayer.getEntityId()));//tell server to send a new gui } break; } - case 2:{ + case 2: { page++; - buttonList = new ArrayList(); + buttonList = new ArrayList<>(); initGui(); break; } - case 3:{ - if(list[0]!=null && list[0].length()>1) { + case 3: { + if (list[0] != null && list[0].length() > 1) { Traincraft.keyChannel.sendToServer(new ItemAdminBook.PacketAdminBookClient("0:" + list[0].substring(1), Minecraft.getMinecraft().thePlayer.getEntityId()));//tell server to drop items Traincraft.keyChannel.sendToServer(new ItemAdminBook.PacketAdminBookClient("1:" + list[0].substring(1), Minecraft.getMinecraft().thePlayer.getEntityId()));//tell server to drop items } break; } - default:{ - Traincraft.keyChannel.sendToServer(new ItemAdminBook.PacketAdminBookClient( list[button.id-3], Minecraft.getMinecraft().thePlayer.getEntityId()));//tell server to send a new gui + default: { + Traincraft.keyChannel.sendToServer(new ItemAdminBook.PacketAdminBookClient(list[button.id - 3], Minecraft.getMinecraft().thePlayer.getEntityId()));//tell server to send a new gui break; } } @@ -95,61 +97,68 @@ public void actionPerformed(GuiButton button) { @Override public void initGui() { super.initGui(); - if(list==null){ + if (list == null) { return; } + this.guiLeft = (this.width - 176) / 2; this.guiTop = (this.height - 166) / 2; - if(!isTrainPage) { - int index=0; - for (int i = 6 * page; i < 6+(6*page) && i0 && list[i].indexOf(".txt")>0) { + if (!isTrainPage) { + int index = 0; + for (int i = 6 * page; i < 6 + (6 * page) && i < list.length; i++) {//only show 6 entries per page + this.buttonList.add(new GuiButton(i + 3, guiLeft - 80, guiTop + 20 + (index * 18), 140, 20, + list[i].isEmpty() ? "Back" : + list[i].contains("_") ? + list[i].substring(list[i].indexOf("~") + 1, list[i].lastIndexOf("_")).replace("minecart", "") : + list[i])); + + if (list[i].lastIndexOf("_") > 0 && list[i].indexOf(".txt") > 0) { this.buttonList.add(new GuiButton(i + 3, guiLeft + 70, guiTop + 20 + (index * 18), 220, 20, - list[i].substring(list[i].lastIndexOf("_")+1, list[i].indexOf(".txt")))); + list[i].substring(list[i].lastIndexOf("_") + 1, list[i].indexOf(".txt")))); } index++; } - if(list.length-6-(page*6)>0){ + + if (list.length - 6 - (page * 6) > 0) { //draw next - this.buttonList.add(new GuiButton(2, guiLeft-70, guiTop+140 , 70, 20, "next page")); + this.buttonList.add(new GuiButton(2, guiLeft - 70, guiTop + 140, 70, 20, "next page")); } - if (page>0){ - this.buttonList.add(new GuiButton(1, guiLeft+10, guiTop+140 , 70, 20, "back")); + + if (page > 0) { + this.buttonList.add(new GuiButton(1, guiLeft + 10, guiTop + 140, 70, 20, "back")); } } else { try { //draw back - this.buttonList.add(new GuiButton(-1,guiLeft+85,guiTop+140,90,20,"clone inventory")); - this.buttonList.add(new GuiButton(0,guiLeft+5,guiTop+140,70,20,"delete entry")); - this.buttonList.add(new GuiButton(3,guiLeft+180,guiTop+140,80,20,"clone & delete")); - this.buttonList.add(new GuiButton(1, guiLeft-70, guiTop+140 , 70, 20, "back")); + this.buttonList.add(new GuiButton(-1, guiLeft + 85, guiTop + 140, 90, 20, "clone inventory")); + this.buttonList.add(new GuiButton(0, guiLeft + 5, guiTop + 140, 70, 20, "delete entry")); + this.buttonList.add(new GuiButton(3, guiLeft + 180, guiTop + 140, 80, 20, "clone & delete")); + this.buttonList.add(new GuiButton(1, guiLeft - 70, guiTop + 140, 70, 20, "back")); items = ServerLogger.getItems(list[9]); - } catch (Exception e){} + } catch (Exception e) { + } } } @Override - public void drawScreen(int mouseX, int mouseY, float par3){ + public void drawScreen(int mouseX, int mouseY, float par3) { super.drawScreen(mouseX, mouseY, par3); - if(list==null){ + if (list == null) { return; } - if(isTrainPage){ - for (int i = 2+(6 * page); i < Math.min(list.length, 9); i++) {//only show 6 entries per page - drawTextOutlined(fontRendererObj, list[(page*i)+i], guiLeft-70, guiTop-16 +(i*16), 16777215); + + if (isTrainPage) { + for (int i = 2 + (6 * page); i < Math.min(list.length, 9); i++) {//only show 6 entries per page + drawTextOutlined(fontRendererObj, list[(page * i) + i], guiLeft - 70, guiTop - 16 + (i * 16), 16777215); } - drawTextOutlined(fontRendererObj, I18n.format("container.inventory", new Object()), guiLeft+80, guiTop+10, 16777215); - int index=0; - for (int y =0; y<6; y++){ - for(int x=0; x<9; x++){ - if(items.size()>index && items.get(index) !=null) { + + drawTextOutlined(fontRendererObj, I18n.format("container.inventory", new Object()), guiLeft + 80, guiTop + 10, 16777215); + int index = 0; + for (int y = 0; y < 6; y++) { + for (int x = 0; x < 9; x++) { + if (items.size() > index && items.get(index) != null) { func_146977_a(items.get(index), guiLeft + 80 + (x * 16), guiTop + 26 + (y * 16)); } index++; @@ -159,26 +168,25 @@ public void drawScreen(int mouseX, int mouseY, float par3){ } - public static void drawTextOutlined(FontRenderer font, String string, int x, int y, int color){ + public static void drawTextOutlined(FontRenderer font, String string, int x, int y, int color) { //bottom left - font.drawString(string, x-1, y+1, 0); + font.drawString(string, x - 1, y + 1, 0); //bottom - font.drawString(string, x, y+1, 0); + font.drawString(string, x, y + 1, 0); //bottom right - font.drawString(string, x+1, y+1, 0); + font.drawString(string, x + 1, y + 1, 0); //left - font.drawString(string, x-1, y, 0); + font.drawString(string, x - 1, y, 0); //right - font.drawString(string, x+1, y, 0); + font.drawString(string, x + 1, y, 0); //top left - font.drawString(string, x-1, y-1, 0); + font.drawString(string, x - 1, y - 1, 0); //top - font.drawString(string, x, y-1, 0); + font.drawString(string, x, y - 1, 0); //top right - font.drawString(string, x+1, y-1, 0); - + font.drawString(string, x + 1, y - 1, 0); - font.drawString(string,x,y,color); + font.drawString(string, x, y, color); } /** @@ -203,6 +211,7 @@ public static void drawTexturedRect(int posX, int posY, int posU, int posV, int tessellator.addVertexWithUV(posX, posY, 0, posU * guiScaler, posV * guiScaler); tessellator.draw(); } + public static void drawTexturedRect(int posX, int posY, int posU, int posV, int width, int height) { Tessellator tessellator = Tessellator.getInstance(); tessellator.startDrawing(GL11.GL_QUADS); @@ -214,7 +223,6 @@ public static void drawTexturedRect(int posX, int posY, int posU, int posV, int } - private void func_146977_a(ItemStack p_146977_1_, int xDisplayPosition, int yDisplayPosition) { GL11.glPushMatrix(); GL11.glDisable(GL11.GL_LIGHTING); @@ -223,6 +231,4 @@ private void func_146977_a(ItemStack p_146977_1_, int xDisplayPosition, int yDis GL11.glEnable(GL11.GL_LIGHTING); GL11.glPopMatrix(); } - - } \ No newline at end of file diff --git a/src/main/java/train/common/adminbook/ItemAdminBook.java b/src/main/java/train/common/adminbook/ItemAdminBook.java index 99c70d6bf2..aa06175f26 100644 --- a/src/main/java/train/common/adminbook/ItemAdminBook.java +++ b/src/main/java/train/common/adminbook/ItemAdminBook.java @@ -19,12 +19,13 @@ import train.common.library.Info; import java.io.File; -import java.io.UnsupportedEncodingException; +import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Paths; import java.util.Arrays; import java.util.Comparator; import java.util.List; +import java.util.Objects; /** *

Key Item

@@ -33,7 +34,7 @@ */ public class ItemAdminBook extends Item { - public ItemAdminBook(){ + public ItemAdminBook() { setCreativeTab(Traincraft.tcTab); setUnlocalizedName("adminbook"); } @@ -50,6 +51,7 @@ public void addInformation(ItemStack thisStack, EntityPlayer player, List string stringList.add("- drop trains/rollingstock and their inventory lost during a crash"); stringList.add("- Lock or unlock trains/rollingstock"); } + @Override public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { try { @@ -63,10 +65,10 @@ public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer pla //if player wasin't looking at a train StringBuilder sb = new StringBuilder(); File[] list = new File(Traincraft.configDirectory.getAbsolutePath() + "/traincraft/").listFiles(); - if (list!=null) { + if (list != null) { Arrays.sort(list, new compareFile()); for (File f : list) { - if (f.isDirectory() && f.list() != null && f.list().length > 0) { + if (f.isDirectory() && f.list() != null && Objects.requireNonNull(f.list()).length > 0) { sb.append(f.getName()); sb.append(","); } @@ -78,14 +80,14 @@ public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer pla } else { return stack; } - } catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); } return super.onItemRightClick(stack, world, player); } - class compareFile implements Comparator { + static class compareFile implements Comparator { // Overriding the compare method to sort the age public int compare(File d, File d1) { return d.getName().toLowerCase().compareTo(d1.getName().toLowerCase()); @@ -93,7 +95,6 @@ public int compare(File d, File d1) { } - @Override @SideOnly(Side.CLIENT) public void registerIcons(IIconRegister iconRegister) { @@ -101,7 +102,6 @@ public void registerIcons(IIconRegister iconRegister) { } - public static class PacketAdminBookClient implements IMessage { private String id; private int player; @@ -118,106 +118,103 @@ public PacketAdminBookClient(String data, int playerID) { /**reads the packet on server to get the variables from the Byte Buffer*/ @Override public void fromBytes(ByteBuf bbuf) { - try { - String data = new String(bbuf.array(), "UTF-8"); - if (!data.equals("")) { - player = Integer.parseInt(data.substring(data.indexOf(":") + 1, data.indexOf(","))); - id = data.substring(data.indexOf(",")+1, data.length()); - } - } catch (UnsupportedEncodingException e){ - + String data = new String(bbuf.array(), StandardCharsets.UTF_8); + if (!data.isEmpty()) { + player = Integer.parseInt(data.substring(data.indexOf(":") + 1, data.indexOf(","))); + id = data.substring(data.indexOf(",") + 1); } } + /**puts the variables into a Byte Buffer so they can be sent to server*/ @Override public void toBytes(ByteBuf bbuf) { - try{ - bbuf.writeBytes((":" + player +"," + id).getBytes("UTF-8")); - } catch (UnsupportedEncodingException e){ - - } + bbuf.writeBytes((":" + player + "," + id).getBytes(StandardCharsets.UTF_8)); } + public static class Handler implements IMessageHandler { @Override public IMessage onMessage(PacketAdminBookClient message, MessageContext context) { - int event=0; - if(message.id.length()>2 && message.id.substring(0,2).equals("0:")){ - message.id = message.id.substring(2, message.id.length()); - event=1; + int event = 0; + if (message.id.length() > 2 && message.id.startsWith("0:")) { + message.id = message.id.substring(2); + event = 1; } - if(message.id.length()>2 && message.id.substring(0,2).equals("1:")){ - message.id = message.id.substring(2, message.id.length()); - event=2; + if (message.id.length() > 2 && message.id.startsWith("1:")) { + message.id = message.id.substring(2); + event = 2; } File f = new File(Traincraft.configDirectory.getAbsolutePath() + "/traincraft/" + message.id); if (f.exists()) { - //if player wasin't looking at a train + // If player was not looking at a train StringBuilder sb = new StringBuilder(); - if (!f.isDirectory()){ + if (!f.isDirectory()) { try { - if(event==0) { + if (event == 0) { sb.append("<"); sb.append(message.id); sb.append(","); - sb.append(message.id.substring(0, message.id.indexOf("/") + 1)); + sb.append(message.id, 0, message.id.indexOf("/") + 1); sb.append(","); - String document = new String(Files.readAllBytes(Paths.get(Traincraft.configDirectory.getAbsolutePath() + "/traincraft/" + message.id)), "UTF-8"); + String document = new String(Files.readAllBytes(Paths.get(Traincraft.configDirectory.getAbsolutePath() + "/traincraft/" + message.id)), StandardCharsets.UTF_8); sb.append("Delegate:,"); - sb.append(document.substring(document.indexOf("") + 10, document.indexOf(""))); + sb.append(document, document.indexOf("") + 10, document.indexOf("")); sb.append(",UUID:,"); - sb.append(document.substring(document.indexOf("") + 6, document.indexOf("")).substring(0, 19)); + sb.append(document.substring(document.indexOf("") + 6, document.indexOf("")), 0, 19); sb.append(","); sb.append(document.substring(document.indexOf("") + 6, document.indexOf("")).substring(19)); sb.append(",Last Known Position:,X:"); - sb.append(document.substring(document.indexOf("") + 7, document.indexOf(""))); + sb.append(document, document.indexOf("") + 7, document.indexOf("")); sb.append("- Y:"); - sb.append(document.substring(document.indexOf("") + 7, document.indexOf(""))); + sb.append(document, document.indexOf("") + 7, document.indexOf("")); sb.append("- Z:"); - sb.append(document.substring(document.indexOf("") + 7, document.indexOf(""))); + sb.append(document, document.indexOf("") + 7, document.indexOf("")); + if (document.contains("")) { sb.append(",Fuel amount: "); - sb.append(document.substring(document.indexOf("") + 6, document.indexOf(""))); + sb.append(document, document.indexOf("") + 6, document.indexOf("")); } + if (document.contains("")) { sb.append(","); - sb.append(document.substring(document.indexOf(""), document.indexOf("") + 12)); + sb.append(document, document.indexOf(""), document.indexOf("") + 12); } - } - else if (event==1){ + } else if (event == 1) { for (WorldServer world : DimensionManager.getWorlds()) { if (world.getEntityByID(message.player) != null) { EntityPlayerMP p = (EntityPlayerMP) world.getEntityByID(message.player); - List items = ServerLogger.getItems(new String(Files.readAllBytes(Paths.get(Traincraft.configDirectory.getAbsolutePath() + "/traincraft/" + message.id)), "UTF-8")); - for (ItemStack i : items){ - if (i.stackSize != 0 && i.getItem() != null) - { + List items = ServerLogger.getItems(new String(Files.readAllBytes(Paths.get(Traincraft.configDirectory.getAbsolutePath() + "/traincraft/" + message.id)), StandardCharsets.UTF_8)); + for (ItemStack i : items) { + if (i.stackSize != 0 && i.getItem() != null) { EntityItem entityitem = new EntityItem(world, p.posX, p.posY + 3, p.posZ, i); entityitem.delayBeforeCanPickup = 120; if (p.captureDrops) { p.capturedDrops.add(entityitem); - } else{ + } else { world.spawnEntityInWorld(entityitem); } } } } } - } else if (event==2){ + } else { if (f.exists()) { f.delete(); } } - } catch (Exception e){} + } catch (Exception ignored) { + } } else { - if(!message.id.equals("")) { + if (!message.id.isEmpty()) { sb.append(","); } + File[] folder = f.listFiles(); - if (folder !=null) { + + if (folder != null) { for (File file : folder) { if (file != null) { sb.append(message.id); - if(!message.id.equals("")) { + if (!message.id.isEmpty()) { sb.append("/"); } sb.append(file.getName()); @@ -226,9 +223,11 @@ else if (event==1){ } } } - if(sb.toString().length()<5){ + + if (sb.toString().length() < 5) { return null; } + for (WorldServer world : DimensionManager.getWorlds()) { if (world.getEntityByID(message.player) != null) { Traincraft.keyChannel.sendTo(new PacketAdminBook(1, -1, sb.toString()), (EntityPlayerMP) world.getEntityByID(message.player)); @@ -239,20 +238,16 @@ else if (event==1){ return null; } } - } - public static class PacketAdminBook implements IMessage { - - /**the key to define what function to use*/ private int key; private int ID; private String datacsv; - public PacketAdminBook(){ + public PacketAdminBook() { } @@ -261,37 +256,29 @@ public PacketAdminBook(int key, int ID, String data) { this.ID = ID; this.datacsv = data; } + /**reads the packet on server to get the variables from the Byte Buffer*/ @Override public void fromBytes(ByteBuf bbuf) { - try { - String data = new String(bbuf.array(), "UTF-8"); - if (!data.equals("")) { - key = Integer.parseInt(data.substring(data.indexOf(":")+1, data.indexOf(","))); - data = data.substring(data.indexOf(",") + 1, data.length()); - ID = Integer.parseInt(data.substring(0, data.indexOf(","))); - datacsv = data.substring(data.indexOf(",") + 1, data.length()); - } - } catch (UnsupportedEncodingException e){ - + String data = new String(bbuf.array(), StandardCharsets.UTF_8); + if (!data.isEmpty()) { + key = Integer.parseInt(data.substring(data.indexOf(":") + 1, data.indexOf(","))); + data = data.substring(data.indexOf(",") + 1); + ID = Integer.parseInt(data.substring(0, data.indexOf(","))); + datacsv = data.substring(data.indexOf(",") + 1); } } + /**puts the variables into a Byte Buffer so they can be sent to server*/ @Override public void toBytes(ByteBuf bbuf) { - try{ - StringBuilder sb=new StringBuilder(); - sb.append(":"); - sb.append(key); - sb.append(","); - sb.append(ID); - sb.append(","); - sb.append(datacsv); - bbuf.writeBytes(sb.toString().getBytes("UTF-8")); - - } catch (UnsupportedEncodingException e){ - - } + String sb = ":" + + key + + "," + + ID + + "," + + datacsv; + bbuf.writeBytes(sb.getBytes(StandardCharsets.UTF_8)); } @@ -299,7 +286,6 @@ public static class Handler implements IMessageHandler");//seemingly unnecessary new line added to the end, linux needs this sometimes. fileoutputstream.write(sb.toString().getBytes()); fileoutputstream.close(); - } catch (Exception e){ + } catch (Exception e) { //apparently we don't have permission, so, nevermind. } } //run this on attack entity event if the entity dies - public static void deleteWagon(EntityRollingStock wagon){ + public static void deleteWagon(EntityRollingStock wagon) { StringBuilder sb = new StringBuilder(); sb.append(Traincraft.configDirectory.getAbsolutePath()); sb.append("/traincraft/"); - if(wagon.getOwner() != null && wagon.getOwner().getName()!=null && !wagon.getOwner().getName().equals("")){ + + if (wagon.getOwner() != null && wagon.getOwner().getName() != null && !wagon.getOwner().getName().isEmpty()) { sb.append(wagon.getOwner().getName().toLowerCase()); - } else if (wagon.getTrainOwner() !=null && !wagon.getTrainOwner().equals("")){ + } else if (wagon.getTrainOwner() != null && !wagon.getTrainOwner().isEmpty()) { sb.append(wagon.getTrainOwner().toLowerCase()); } else { - sb.append("unknown_player"); + sb.append("unknown_player"); } + sb.append("/"); sb.append(wagon.getCartItem().getItem().delegate.name().replace(":", "~").toLowerCase()); sb.append("_"); @@ -114,15 +116,16 @@ public static void deleteWagon(EntityRollingStock wagon){ if (f.exists() && !f.isDirectory()) { f.delete(); } - } catch (Exception e){}//if it fails there was nothing to delete, so same result + } catch (Exception ignored) { + }//if it fails there was nothing to delete, so same result } - - private static void addItemXML(StringBuilder string, ItemStack item){ - if (item == null || item.getItem() == null || item.stackSize<=0){ + private static void addItemXML(StringBuilder string, ItemStack item) { + if (item == null || item.getItem() == null || item.stackSize <= 0) { return; } + string.append(" \n "); string.append(Item.getIdFromItem(item.getItem())); string.append("\n "); @@ -134,15 +137,15 @@ private static void addItemXML(StringBuilder string, ItemStack item){ string.append("\n \n"); } - private static void addFluidXML(StringBuilder string, FluidStack item){ - if (item == null || item.getFluid() == null || item.amount<=0){ + private static void addFluidXML(StringBuilder string, FluidStack item) { + if (item == null || item.getFluid() == null || item.amount <= 0) { return; } - int fill=1000; - while(fill < item.amount) { - addItemXML(string, FluidContainerRegistry.fillFluidContainer(item, new ItemStack(Items.bucket))); - fill +=1000; + int fill = 1000; + while (fill < item.amount) { + addItemXML(string, FluidContainerRegistry.fillFluidContainer(item, new ItemStack(Items.bucket))); + fill += 1000; } } @@ -156,47 +159,44 @@ private static void addFluidXML(StringBuilder string, FluidStack item){ */ //parses the document for itemstacks - public static List getItems(String doc){ + public static List getItems(String doc) { try { - ArrayList itemStacks = new ArrayList(); - itemStacks.add(new ItemStack(GameData.getItemRegistry().getObject(doc.substring(doc.indexOf("")+10, doc.indexOf(""))))); + ArrayList itemStacks = new ArrayList<>(); + itemStacks.add(new ItemStack(GameData.getItemRegistry().getObject(doc.substring(doc.indexOf("") + 10, doc.indexOf(""))))); - List stacks = new ArrayList(); - while (doc.contains("")){ - stacks.add(doc.substring(doc.indexOf("")+11, doc.indexOf(""))); - doc = doc.substring(doc.indexOf("")+12); + List stacks = new ArrayList<>(); + while (doc.contains("")) { + stacks.add(doc.substring(doc.indexOf("") + 11, doc.indexOf(""))); + doc = doc.substring(doc.indexOf("") + 12); } - - for (String s : stacks){ + for (String s : stacks) { ItemStack stack = parseItemFromXML(s); - if (stack != null){ + if (stack != null) { itemStacks.add(stack); } } return itemStacks; - - } catch (Exception e){ - return new ArrayList(); + } catch (Exception e) { + return new ArrayList<>(); } } //parses the individual item - public static ItemStack parseItemFromXML(String doc){ + public static ItemStack parseItemFromXML(String doc) { try { ItemStack stack = new ItemStack( - GameData.getItemRegistry().getObject(doc.substring(doc.indexOf("")+10, doc.indexOf(""))),//get item by delegate name since it's static - Integer.parseInt(doc.substring(doc.indexOf("")+11, doc.indexOf("")))//we always get strings so gotta parse. + GameData.getItemRegistry().getObject(doc.substring(doc.indexOf("") + 10, doc.indexOf(""))),//get item by delegate name since it's static + Integer.parseInt(doc.substring(doc.indexOf("") + 11, doc.indexOf("")))//we always get strings so gotta parse. ); - stack.setItemDamage(Integer.parseInt(doc.substring(doc.indexOf("")+6, doc.indexOf("")))); + stack.setItemDamage(Integer.parseInt(doc.substring(doc.indexOf("") + 6, doc.indexOf("")))); return stack; - } catch (Exception e){ + } catch (Exception e) { return null; } } - } diff --git a/src/main/java/train/common/api/AbstractTrains.java b/src/main/java/train/common/api/AbstractTrains.java index 80eb99e17b..8a4c0d2852 100644 --- a/src/main/java/train/common/api/AbstractTrains.java +++ b/src/main/java/train/common/api/AbstractTrains.java @@ -36,127 +36,123 @@ public abstract class AbstractTrains extends EntityMinecart implements IMinecart, IRoutableCart, IEntityAdditionalSpawnData { - public boolean isAttached = false; - public boolean isAttaching = false; - public static int numberOfTrains; - public EntityPlayer playerEntity; - public double Link1; - public double Link2; - protected boolean linked = false; - public EntityRollingStock cartLinked1; - public EntityRollingStock cartLinked2; - //private Set chunks; - protected Ticket chunkTicket; - public float renderYaw; - protected float renderPitch; - public TrainHandler train; - public List loadedChunks = new ArrayList(); - public boolean shouldChunkLoad = true; - protected boolean itemdropped =false; - - public XmlBuilder entity_data= new XmlBuilder(); - /** - * A reference to EnumTrains containing all spec for this specific train - */ - private TrainRecord trainSpec=null; - - public TrainRecord getSpec(){ - if(trainSpec==null){ - trainSpec=Traincraft.instance.traincraftRegistry.getTrainRecord(this.getClass()); - } - return trainSpec; - } - - /** - * The name of the train based on the item name - */ - public String trainName = ""; - public double accelerate = 0.7D; - public double brake = 0.96D; - /** - * determines the mass of the carts from 0 to 10 it's then multiplied by 10 - * to pretend this is [tons] - */ - public double mass = 1; - /** - * the default mass, not affected by weight of items/liquids - */ - public double defaultMass = 1; - /** - * the power of locomotives, 0 for carts - */ - public int power = 0; - /** - * Whether this train is locked and can only be used by the Owner - */ - public boolean locked = false; - /** - * The owner of the train: The user who spawned it - */ - public String trainOwner = ""; - - public String getTrainOwner() { - return trainOwner; - } - - - public void setTrainOwner(String trainOwner) { - this.trainOwner = trainOwner; - } - - /** - * The creator of the train - */ - public String trainCreator = ""; - - /** - * The type of the train: steam tender diesel electric freight flat tank - * passenger work special - */ - public String trainType = ""; - - /** - * player who destroyed the train - */ - protected String trainDestroyer = ""; - - /** - * unique ID for a train. ID is create when item is created. This allows to - * track a train not only in his entity form - */ - public int uniqueID = -1; - /** - * supposed to store the last ID given; - */ - public static int uniqueIDs = 1; - - - /** - * The distance this train has traveled - */ - public double trainDistanceTraveled = 0; - - public String destination = ""; - - - public AbstractTrains(World world) { - super(world); - renderDistanceWeight = 2.0D; - if (getSpec().getLiveries().size()>0) { - entity_data.putString("color", getSpec().getLiveries().get(0)); - } else { - entity_data.putString("color", ""); - } - dataWatcher.addObject(12, entity_data.toXMLString()); - dataWatcher.addObject(6, trainType); - dataWatcher.addObject(7, trainOwner); - dataWatcher.addObject(8, trainDestroyer); - dataWatcher.addObject(9, trainName); - dataWatcher.addObject(10, numberOfTrains); - dataWatcher.addObject(11, uniqueID); - dataWatcher.addObject(13, trainCreator); - shouldChunkLoad=ConfigHandler.CHUNK_LOADING; - this.setFlag(7, shouldChunkLoad); + public boolean isAttached = false; + public boolean isAttaching = false; + public static int numberOfTrains; + public EntityPlayer playerEntity; + public double Link1; + public double Link2; + protected boolean linked = false; + public EntityRollingStock cartLinked1; + public EntityRollingStock cartLinked2; + //private Set chunks; + protected Ticket chunkTicket; + public float renderYaw; + protected float renderPitch; + public TrainHandler train; + public List loadedChunks = new ArrayList<>(); + public boolean shouldChunkLoad = true; + protected boolean itemdropped = false; + + public XmlBuilder entity_data = new XmlBuilder(); + /** + * A reference to EnumTrains containing all spec for this specific train + */ + private TrainRecord trainSpec = null; + + public TrainRecord getSpec() { + if (trainSpec == null) { + trainSpec = Traincraft.instance.traincraftRegistry.getTrainRecord(this.getClass()); + } + return trainSpec; + } + + /** + * The name of the train based on the item name + */ + public String trainName = ""; + public double accelerate = 0.7D; + public double brake = 0.96D; + /** + * determines the mass of the carts from 0 to 10 it's then multiplied by 10 + * to pretend this is [tons] + */ + public double mass = 1; + /** + * the default mass, not affected by weight of items/liquids + */ + public double defaultMass = 1; + /** + * the power of locomotives, 0 for carts + */ + public int power = 0; + /** + * Whether this train is locked and can only be used by the Owner + */ + public boolean locked = false; + /** + * The owner of the train: The user who spawned it + */ + public String trainOwner = ""; + + public String getTrainOwner() { + return trainOwner; + } + + + public void setTrainOwner(String trainOwner) { + this.trainOwner = trainOwner; + } + + /** + * The creator of the train + */ + public String trainCreator = ""; + + /** + * The type of the train: steam tender diesel electric freight flat tank + * passenger work special + */ + public String trainType = ""; + + /** + * player who destroyed the train + */ + protected String trainDestroyer = ""; + + /** + * unique ID for a train. ID is create when item is created. This allows to + * track a train not only in his entity form + */ + public int uniqueID = -1; + /** + * supposed to store the last ID given; + */ + public static int uniqueIDs = 1; + + + /** + * The distance this train has traveled + */ + public double trainDistanceTraveled = 0; + + public String destination = ""; + + + public AbstractTrains(World world) { + super(world); + renderDistanceWeight = 2.0D; + entity_data.putString("color", !getSpec().getLiveries().isEmpty() ? getSpec().getLiveries().get(0) : ""); + dataWatcher.addObject(12, entity_data.toXMLString()); + dataWatcher.addObject(6, trainType); + dataWatcher.addObject(7, trainOwner); + dataWatcher.addObject(8, trainDestroyer); + dataWatcher.addObject(9, trainName); + dataWatcher.addObject(10, numberOfTrains); + dataWatcher.addObject(11, uniqueID); + dataWatcher.addObject(13, trainCreator); + shouldChunkLoad = ConfigHandler.CHUNK_LOADING; + this.setFlag(7, shouldChunkLoad); /*for (EnumTrains trains : EnumTrains.values()) { @@ -174,170 +170,170 @@ public AbstractTrains(World world) { break; } }*/ - if (getSpec() != null) { - this.setDefaultMass(getSpec().getMass()); - this.setSize(0.98f, 1.98f); - this.setMinecartName(getSpec().getName()); - } - } - - public AbstractTrains(World world, double x, double y, double z){ - this(world); - this.setPosition(x, y, z); - } - - @Override - public AxisAlignedBB getCollisionBox(Entity p_70114_1_) { - if(riddenByEntity!=p_70114_1_){ - return super.getCollisionBox(p_70114_1_); - } else { - return null; - } - } - - /** - * this is basically NBT for entity spawn, to keep data between client and server in sync because some data is not automatically shared. - */ - @Override - public void readSpawnData(ByteBuf additionalData) { - locked = additionalData.readBoolean(); - } - @Override - public void writeSpawnData(ByteBuf buffer) { - buffer.writeBoolean(locked); - } - - - public abstract boolean isLocomotive(); - - public abstract boolean isPassenger(); - - public abstract boolean isFreightCart(); - - public abstract boolean isFreightOrPassenger(); - - public abstract boolean isBuilder(); - - public abstract boolean isTender(); - - public abstract boolean isWorkCart(); - - public abstract boolean isElectricTrain(); - - public abstract boolean isLinked(); - - protected abstract boolean canOverheat(); - - protected abstract int getOverheatTime(); - - public abstract float getLinkageDistance(EntityMinecart cart); - - //public abstract int getID(); - - public abstract boolean canBeAdjusted(EntityMinecart cart2); - - public abstract float getOptimalDistance(EntityMinecart cart2); - - public abstract List getItemsDropped(); - - public int getUniqueTrainID(){ - return uniqueID; - } - - public void manageChunkLoading(){ - //if(this instanceof Locomotive)System.out.println("I'm alive. Remote: " + worldObj.isRemote); - if (!worldObj.isRemote && this.uniqueID == -1) { - if (FMLCommonHandler.instance().getMinecraftServerInstance() != null) { - //TraincraftSaveHandler.createFile(FMLCommonHandler.instance().getMinecraftServerInstance()); - //int readID = TraincraftSaveHandler.readInt(FMLCommonHandler.instance().getMinecraftServerInstance(), "numberOfTrains:"); - //int newID = setNewUniqueID(readID); - setNewUniqueID(this.getEntityId()); - //TraincraftSaveHandler.writeValue(FMLCommonHandler.instance().getMinecraftServerInstance(), "numberOfTrains:", new String("" + newID)); - //System.out.println("Train is missing an ID, adding new one for "+this.trainName+" "+this.uniqueID); - } - } - shouldChunkLoad = getFlag(7); - if (shouldChunkLoad){ - if(this.chunkTicket == null) { - this.requestTicket(); - } - } - } - - @Override - public void onUpdate() { - super.onUpdate(); - if(!(this instanceof EntityRollingStock)) { - manageChunkLoading(); - } - /* - * if (worldObj.isRemote) { if (this.getFlag(6)) { if (this.chunks != - * null) { Iterator var3 = this.chunks.iterator(); while - * (var3.hasNext()) { ChunkCoordIntPair var4 = (ChunkCoordIntPair) - * var3.next(); int x = var4.getCenterXPos(); int z = - * var4.getCenterZPosition(); - * this.worldObj.spawnParticle("mobSpellAmbient", x, posY, z, 0, 0, 0); - * for (int i = 0; i < 10; i++) { this.worldObj.spawnParticle("portal", - * x + (this.rand.nextDouble() - 0.5D) * (double) 8, this.posY + - * this.rand.nextDouble() * (double) 6 - 0.25D, z + - * (this.rand.nextDouble() - 0.5D) * (double) 8, (this.rand.nextDouble() - * - 0.5D) * 2.0D, -this.rand.nextDouble(), (this.rand.nextDouble() - - * 0.5D) * 2.0D); } } } else { this.setupChunks(this.chunkCoordX, - * this.chunkCoordZ); } } } else if (!ConfigHandler.CHUNK_LOADING) { - * this.releaseTicket(); } else { if (this.ticket == null) { - * this.requestTicket(); } } - */ - } - @Override - public void setDead() { - ForgeChunkManager.releaseTicket(chunkTicket); - } - - public int setNewUniqueID(int numberOfTrains) { - // System.out.println(numberOfTrains); - if (numberOfTrains <= 0) { - numberOfTrains = uniqueIDs++; - } - else { - uniqueIDs = numberOfTrains++; - } - this.uniqueID = numberOfTrains; - getEntityData().setInteger("uniqueID", numberOfTrains); - // System.out.println("setting new ID "+uniqueID); - return numberOfTrains; - } - - @Override - public boolean interactFirst(EntityPlayer entityplayer) { - ItemStack itemstack = entityplayer.inventory.getCurrentItem(); - if (!worldObj.isRemote && ConfigHandler.CHUNK_LOADING && (this instanceof Locomotive) ) { - if (itemstack != null && itemstack.getItem() instanceof ItemChunkLoaderActivator) { - this.playerEntity = entityplayer; - if (getFlag(7)) { - this.setFlag(7, false); - entityplayer.addChatMessage(new ChatComponentText("Stop loading chunks")); - ForgeChunkManager.releaseTicket(chunkTicket); - chunkTicket = null; - } - else if (!getFlag(7)) { - this.setFlag(7, true); - entityplayer.addChatMessage(new ChatComponentText("Start loading chunks")); - } - itemstack.damageItem(1, entityplayer); - return true; - } else if(lockThisCart(itemstack, entityplayer)) { - return true; - } - } - return false; - } - - /** - * set the color of the rollingstock - * - * @see ItemRollingStock - * @param color - */ + if (getSpec() != null) { + this.setDefaultMass(getSpec().getMass()); + this.setSize(0.98f, 1.98f); + this.setMinecartName(getSpec().getName()); + } + } + + public AbstractTrains(World world, double x, double y, double z) { + this(world); + this.setPosition(x, y, z); + } + + @Override + public AxisAlignedBB getCollisionBox(Entity p_70114_1_) { + if (riddenByEntity != p_70114_1_) { + return super.getCollisionBox(p_70114_1_); + } else { + return null; + } + } + + /** + * this is basically NBT for entity spawn, to keep data between client and server in sync because some data is not automatically shared. + */ + @Override + public void readSpawnData(ByteBuf additionalData) { + locked = additionalData.readBoolean(); + } + + @Override + public void writeSpawnData(ByteBuf buffer) { + buffer.writeBoolean(locked); + } + + + public abstract boolean isLocomotive(); + + public abstract boolean isPassenger(); + + public abstract boolean isFreightCart(); + + public abstract boolean isFreightOrPassenger(); + + public abstract boolean isBuilder(); + + public abstract boolean isTender(); + + public abstract boolean isWorkCart(); + + public abstract boolean isElectricTrain(); + + public abstract boolean isLinked(); + + protected abstract boolean canOverheat(); + + protected abstract int getOverheatTime(); + + public abstract float getLinkageDistance(EntityMinecart cart); + + //public abstract int getID(); + + public abstract boolean canBeAdjusted(EntityMinecart cart2); + + public abstract float getOptimalDistance(EntityMinecart cart2); + + public abstract List getItemsDropped(); + + public int getUniqueTrainID() { + return uniqueID; + } + + public void manageChunkLoading() { + //if(this instanceof Locomotive)System.out.println("I'm alive. Remote: " + worldObj.isRemote); + if (!worldObj.isRemote && this.uniqueID == -1) { + if (FMLCommonHandler.instance().getMinecraftServerInstance() != null) { + //TraincraftSaveHandler.createFile(FMLCommonHandler.instance().getMinecraftServerInstance()); + //int readID = TraincraftSaveHandler.readInt(FMLCommonHandler.instance().getMinecraftServerInstance(), "numberOfTrains:"); + //int newID = setNewUniqueID(readID); + setNewUniqueID(this.getEntityId()); + //TraincraftSaveHandler.writeValue(FMLCommonHandler.instance().getMinecraftServerInstance(), "numberOfTrains:", new String("" + newID)); + //System.out.println("Train is missing an ID, adding new one for "+this.trainName+" "+this.uniqueID); + } + } + shouldChunkLoad = getFlag(7); + if (shouldChunkLoad) { + if (this.chunkTicket == null) { + this.requestTicket(); + } + } + } + + @Override + public void onUpdate() { + super.onUpdate(); + if (!(this instanceof EntityRollingStock)) { + manageChunkLoading(); + } + /* + * if (worldObj.isRemote) { if (this.getFlag(6)) { if (this.chunks != + * null) { Iterator var3 = this.chunks.iterator(); while + * (var3.hasNext()) { ChunkCoordIntPair var4 = (ChunkCoordIntPair) + * var3.next(); int x = var4.getCenterXPos(); int z = + * var4.getCenterZPosition(); + * this.worldObj.spawnParticle("mobSpellAmbient", x, posY, z, 0, 0, 0); + * for (int i = 0; i < 10; i++) { this.worldObj.spawnParticle("portal", + * x + (this.rand.nextDouble() - 0.5D) * (double) 8, this.posY + + * this.rand.nextDouble() * (double) 6 - 0.25D, z + + * (this.rand.nextDouble() - 0.5D) * (double) 8, (this.rand.nextDouble() + * - 0.5D) * 2.0D, -this.rand.nextDouble(), (this.rand.nextDouble() - + * 0.5D) * 2.0D); } } } else { this.setupChunks(this.chunkCoordX, + * this.chunkCoordZ); } } } else if (!ConfigHandler.CHUNK_LOADING) { + * this.releaseTicket(); } else { if (this.ticket == null) { + * this.requestTicket(); } } + */ + } + + @Override + public void setDead() { + ForgeChunkManager.releaseTicket(chunkTicket); + } + + public int setNewUniqueID(int numberOfTrains) { + // System.out.println(numberOfTrains); + if (numberOfTrains <= 0) { + numberOfTrains = uniqueIDs++; + } else { + uniqueIDs = numberOfTrains++; + } + this.uniqueID = numberOfTrains; + getEntityData().setInteger("uniqueID", numberOfTrains); + // System.out.println("setting new ID "+uniqueID); + return numberOfTrains; + } + + @Override + public boolean interactFirst(EntityPlayer entityplayer) { + ItemStack itemstack = entityplayer.inventory.getCurrentItem(); + if (!worldObj.isRemote && ConfigHandler.CHUNK_LOADING && (this instanceof Locomotive)) { + if (itemstack != null && itemstack.getItem() instanceof ItemChunkLoaderActivator) { + this.playerEntity = entityplayer; + if (getFlag(7)) { + this.setFlag(7, false); + entityplayer.addChatMessage(new ChatComponentText("Stop loading chunks")); + ForgeChunkManager.releaseTicket(chunkTicket); + chunkTicket = null; + } else if (!getFlag(7)) { + this.setFlag(7, true); + entityplayer.addChatMessage(new ChatComponentText("Start loading chunks")); + } + itemstack.damageItem(1, entityplayer); + return true; + } else if (lockThisCart(itemstack, entityplayer)) { + return true; + } + } + return false; + } + + /** + * set the color of the rollingstock + * + * @param color + * @see ItemRollingStock + */ /*public void setColor(int color) { if (color==-1 && EnumTrains.getCurrentTrain(getCartItem().getItem()).getColors()!=null){ color = getColorFromString(EnumTrains.getCurrentTrain(getCartItem().getItem()).getColors()[0]); @@ -353,410 +349,417 @@ else if (!getFlag(7)) { dataWatcher.updateObject(12, color); this.getEntityData().setInteger("color", color); }*/ - public void setColor(int color) { - TrainRecord trainRecord = Traincraft.instance.traincraftRegistry.findTrainRecordByItem(getCartItem().getItem()); - if (trainRecord != null && trainRecord.getLiveries().size()>0){ - if (color==-1 || !trainRecord.getLiveries().contains(getColorAsString(color))) { - color = 0; - } - } - - entity_data.stringMap.put("color", trainRecord.getLiveries().get(color)); - dataWatcher.updateObject(12, entity_data.toXMLString()); - this.getEntityData().setString("xml", entity_data.toXMLString()); - } - - public void setColor(String color) { - TrainRecord trainRecord = Traincraft.instance.traincraftRegistry.findTrainRecordByItem(getCartItem().getItem()); - if (trainRecord != null && trainRecord.getLiveries() != null){ - if (color.equals("-1") || trainRecord.getLiveries().contains(color)) { - color = (trainRecord.getLiveries().get(0)); - } - } - - entity_data.stringMap.put("color", color); - dataWatcher.updateObject(12, entity_data.toXMLString()); - this.getEntityData().setString("xml", entity_data.toXMLString()); - } - - public void setRenderYaw(float yaw) { - this.renderYaw = yaw; - } - - public void setRenderPitch(float pitch) { - this.renderPitch = pitch; - } - - public String getColor() { - entity_data = new XmlBuilder(dataWatcher.getWatchableObjectString(12)); - return entity_data.getString("color"); - } - - @Override - protected void writeEntityToNBT(NBTTagCompound nbttagcompound) { - //super.writeEntityToNBT(nbttagcompound); - if(getColor().length()>0) { - nbttagcompound.setString("colorstr", getColor()); - } - nbttagcompound.setBoolean("chunkLoadingState", getFlag(7)); - nbttagcompound.setDouble("trainDistanceTraveled", trainDistanceTraveled); - nbttagcompound.setString("theOwner", trainOwner); - nbttagcompound.setBoolean("locked", locked); - nbttagcompound.setString("theCreator", trainCreator); - nbttagcompound.setString("theName", trainName); - nbttagcompound.setString("theType", trainType); - nbttagcompound.setInteger("uniqueID", uniqueID); - //nbttagcompound.setInteger("uniqueIDs",uniqueIDs); - - nbttagcompound.setInteger("numberOfTrains", AbstractTrains.numberOfTrains); - nbttagcompound.setBoolean("isAttached", this.isAttached); - nbttagcompound.setBoolean("linked", this.linked); - //nbttagcompound.setDouble("motionX", motionX); - //nbttagcompound.setDouble("motionZ", motionZ); - nbttagcompound.setDouble("Link1", Link1); - nbttagcompound.setDouble("Link2", Link2); - - nbttagcompound.setInteger("Dim", this.dimension); - - nbttagcompound.setLong("UUIDM", this.getUniqueID().getMostSignificantBits()); - nbttagcompound.setLong("UUIDL", this.getUniqueID().getLeastSignificantBits()); - } - - @Override - protected void readEntityFromNBT(NBTTagCompound nbttagcompound) { - //super.readEntityFromNBT(nbttagcompound); - if(nbttagcompound.hasKey("color")) { - setColor(nbttagcompound.getInteger("color")); - } else if(nbttagcompound.hasKey("colorstr")) { - setColor(nbttagcompound.getString("colorstr")); - } - setFlag(7, nbttagcompound.getBoolean("chunkLoadingState")); - trainDistanceTraveled = nbttagcompound.getDouble("trainDistanceTraveled"); - trainOwner = nbttagcompound.getString("theOwner"); - this.locked = nbttagcompound.getBoolean("locked"); - setFlag(8, locked); - trainCreator = nbttagcompound.getString("theCreator"); - trainName = nbttagcompound.getString("theName"); - trainType = nbttagcompound.getString("theType"); - uniqueID = nbttagcompound.getInteger("uniqueID"); - //uniqueIDs = nbttagcompound.getInteger("uniqueIDs"); - setInformation(trainType, trainOwner, trainCreator, trainName, uniqueID); - - numberOfTrains = nbttagcompound.getInteger("numberOfTrains"); - isAttached = nbttagcompound.getBoolean("isAttached"); - linked = nbttagcompound.getBoolean("linked"); - //motionX = nbttagcompound.getDouble("motionX"); - //motionZ = nbttagcompound.getDouble("motionZ"); - Link1 = nbttagcompound.getDouble("Link1"); - Link2 = nbttagcompound.getDouble("Link2"); - if(nbttagcompound.hasKey("Dim")){ - this.dimension=nbttagcompound.getInteger("Dim"); - } - - if(nbttagcompound.hasKey("UUIDM")){ - this.entityUniqueID = new UUID(nbttagcompound.getLong("UUIDM"), nbttagcompound.getLong("UUIDL")); - } - } - - @Override - public boolean writeMountToNBT(NBTTagCompound tag){ - return false; - } - @Override - public boolean writeToNBTOptional(NBTTagCompound p_70039_1_) { - if (!this.isDead && this.getEntityString() != null) { - p_70039_1_.setString("id", this.getEntityString()); - this.writeToNBT(p_70039_1_); - return true; - } - return false; - } - - public void setInformation(String trainType, String trainOwner, String trainCreator, String trainName, int uniqueID) { - if (!worldObj.isRemote) { - dataWatcher.updateObject(6, trainType); - dataWatcher.updateObject(7, trainOwner); - dataWatcher.updateObject(9, trainName); - dataWatcher.updateObject(11, uniqueID); - if (trainCreator != null && trainCreator.length() > 0){ dataWatcher.updateObject(13, trainCreator);} - } - } - - public static String getColorAsString(int i) { - switch (i) { - case 0: - return "Black"; - case 1: - return "Red"; - case 2: - return "Green"; - case 3: - return "Brown"; - case 4: - return "Blue"; - case 5: - return "Purple"; - case 6: - return "Cyan"; - case 7: - return "LightGrey"; - case 8: - return "Grey"; - case 13: - return "Magenta"; - case 10: - return "Lime"; - case 11: - return "Yellow"; - case 12: - return "LightBlue"; - case 9: - return "Pink"; - case 14: - return "Orange"; - case 15: - return "White"; - case 16: - return "Skin16"; - case 17: - return "Skin17"; - case 18: - return "Skin18"; - case 19: - return "Skin19"; - case 20: - return "Skin20"; - case 21: - return "Skin21"; - case 22: - return "Skin22"; - case 23: - return "Skin23"; - case 24: - return "Skin24"; - case 25: - return "Skin25"; - case 26: - return "Skin26"; - case 27: - return "Skin27"; - case 28: - return "Skin28"; - case 29: - return "Skin29"; - case 30: - return "Skin30"; - case 100: - return "Empty"; - case 101: - return "Full"; - default: - return "" + i; - } - } - - public static int getColorFromString(String color) { - if (color.equals("Black")) return 0; - if (color.equals("Red")) return 1; - if (color.equals("Green")) return 2; - if (color.equals("Brown")) return 3; - if (color.equals("Blue")) return 4; - if (color.equals("Purple")) return 5; - if (color.equals("Cyan")) return 6; - if (color.equals("LightGrey")) return 7; - if (color.equals("Grey")) return 8; - if (color.equals("Magenta")) return 13; - if (color.equals("Lime")) return 10; - if (color.equals("Yellow")) return 11; - if (color.equals("LightBlue")) return 12; - if (color.equals("Pink")) return 9; - if (color.equals("Orange")) return 14; - if (color.equals("White")) return 15; - if (color.equals("Skin16")) return 16; - if (color.equals("Skin17")) return 17; - if (color.equals("Skin18")) return 18; - if (color.equals("Skin19")) return 19; - if (color.equals("Skin20")) return 20; - if (color.equals("Skin21")) return 21; - if (color.equals("Skin22")) return 22; - if (color.equals("Skin23")) return 23; - if (color.equals("Skin24")) return 24; - if (color.equals("Skin25")) return 25; - if (color.equals("Empty")) return 100; - if (color.equals("Full")) return 101; - return -1; - } - - public void dropCartAsItem(boolean isCreative) { - if (!isCreative && !itemdropped) { - itemdropped=true; - for (ItemStack item : getItemsDropped()) { - if (item.getItem() instanceof ItemRollingStock){ - ItemStack stack = ItemRollingStock.setPersistentData(item,this,this.getUniqueTrainID(),trainCreator, trainOwner, getColor()); - entityDropItem(stack!=null?stack:item,0); - } else { - setUniqueIDToItem(item); - entityDropItem(item, 0); - } - } - } - } - - protected void setUniqueIDToItem(ItemStack stack) { - NBTTagCompound var3 = stack.getTagCompound(); - if (var3 == null) { - var3 = new NBTTagCompound(); - stack.setTagCompound(var3); - } - if (this.uniqueID != -1) stack.getTagCompound().setInteger("uniqueID", this.uniqueID); - if (this.trainCreator != null && this.trainCreator.length() > 0) stack.getTagCompound().setString("trainCreator", this.trainCreator); - stack.getTagCompound().setString("trainColor", this.getColor()); - } - - protected void setDefaultMass(double def) { - this.mass = def; - this.defaultMass = def; - } - - protected double getDefaultMass() { - return defaultMass; - } - - /** - * Lock packet - */ - public boolean getTrainLockedFromPacket() { - return locked; - } - - /** - * Lock packet - */ - public void setTrainLockedFromPacket(boolean set) { - // System.out.println(worldObj.isRemote + " " + set); - locked = set; - } - - - /** Locking for passengers, flat, caboose, jukebox,workcart */ - protected boolean lockThisCart(ItemStack itemstack, EntityPlayer entityplayer) { - if (itemstack != null && (itemstack.getItem() instanceof ItemWrench || itemstack.getItem() instanceof ItemAdminBook)) { - if (entityplayer.getDisplayName().equals(this.trainOwner) || entityplayer.getGameProfile().getName().equals(this.trainOwner) - || this.trainOwner.equals("") || entityplayer.canCommandSenderUseCommand(2, "")) { - if (locked) { - locked = false; - if(worldObj.isRemote) { - entityplayer.addChatMessage(new ChatComponentText("Unlocked.")); - } - } - else { - locked = true; - if(worldObj.isRemote) { - entityplayer.addChatMessage(new ChatComponentText("Locked.")); - } - } - } - else if (worldObj.isRemote) { - entityplayer.addChatMessage(new ChatComponentText("You are not the owner!")); - } - return true; - } - return false; - } - - protected boolean canBeRiddenWhileLocked(AbstractTrains train) { - return (train instanceof Locomotive) || (train instanceof IPassenger) || (train instanceof AbstractWorkCart); - } - - protected boolean canBeDestroyedByPlayer(DamageSource damagesource) { - if (this.getTrainLockedFromPacket()) { - if (damagesource.getEntity() instanceof EntityPlayer) { - if ((damagesource.getEntity() instanceof EntityPlayerMP) && - ((EntityPlayerMP)damagesource.getEntity()).canCommandSenderUseCommand(2, "") && - ((EntityPlayer) damagesource.getEntity()).inventory.getCurrentItem() != null && - ((EntityPlayer) damagesource.getEntity()).inventory.getCurrentItem().getItem() instanceof ItemWrench) { - - ((EntityPlayer) damagesource.getEntity()).addChatMessage(new ChatComponentText("Removing the train using OP permission")); - return false; - } - else if (!((EntityPlayer) damagesource.getEntity()).getDisplayName().toLowerCase().equals(this.trainOwner.toLowerCase())) { - ((EntityPlayer) damagesource.getEntity()).addChatMessage(new ChatComponentText("You are not the owner!")); - return true; - } - } - else if (!damagesource.isProjectile()) { - return true; - } - } - return false; - } - - /** Railcraft routing integration */ - @Override - public boolean doesCartMatchFilter(ItemStack stack, EntityMinecart cart) { - if (stack == null || cart == null) { return false; } - ItemStack cartItem = cart.getCartItem(); - return cartItem.getItem() == stack.getItem(); - } - - @Override - public String getDestination() { - if (destination == null) return ""; - return destination; - } - - /** - * Only locomotives can receive a destination from a track. It is then - * transmitted to attached carts - */ - @Override - public boolean setDestination(ItemStack ticket) { - return false; - } - - public static String getTicketDestination(ItemStack ticket) { - if ((ticket == null)) { return ""; } - NBTTagCompound nbt = ticket.getTagCompound(); - if (nbt == null) { return ""; } - return nbt.getString("dest"); - } - - - @Override - public String getCommandSenderName(){ - String s = EntityList.getEntityString(this); - if (s == null) { - s = "generic"; - } - - return StatCollector.translateToLocal("entity." + s + ".name"); - } - - - - public void setTicket(ForgeChunkManager.Ticket ticket){ - this.chunkTicket = ticket; - } - public ForgeChunkManager.Ticket getTicket(){ - return this.chunkTicket; - } - - public void requestTicket() { - ForgeChunkManager.Ticket chunkTicket = ForgeChunkManager.requestTicket(Traincraft.instance, worldObj , ForgeChunkManager.Type.ENTITY); - if(chunkTicket != null) { - chunkTicket.setChunkListDepth(25); - chunkTicket.bindEntity(this); - this.setTicket(chunkTicket); - } - } - - public String getPersistentUUID() { - if(getEntityData().hasKey("puuid")) { - return getEntityData().getString("puuid"); - } else { - getEntityData().setString("puuid", getUniqueID().toString()); - return this.getUniqueID().toString(); - } - } + public void setColor(int color) { + TrainRecord trainRecord = Traincraft.instance.traincraftRegistry.findTrainRecordByItem(getCartItem().getItem()); + if (trainRecord != null && !trainRecord.getLiveries().isEmpty()) { + if (color == -1 || !trainRecord.getLiveries().contains(getColorAsString(color))) { + color = 0; + } + entity_data.stringMap.put("color", trainRecord.getLiveries().get(color)); + } + dataWatcher.updateObject(12, entity_data.toXMLString()); + this.getEntityData().setString("xml", entity_data.toXMLString()); + } + + public void setColor(String color) { + TrainRecord trainRecord = Traincraft.instance.traincraftRegistry.findTrainRecordByItem(getCartItem().getItem()); + if (trainRecord != null && trainRecord.getLiveries() != null) { + if (color.equals("-1") || trainRecord.getLiveries().contains(color)) { + color = (trainRecord.getLiveries().get(0)); + } + } + + entity_data.stringMap.put("color", color); + dataWatcher.updateObject(12, entity_data.toXMLString()); + this.getEntityData().setString("xml", entity_data.toXMLString()); + } + + public void setRenderYaw(float yaw) { + this.renderYaw = yaw; + } + + public void setRenderPitch(float pitch) { + this.renderPitch = pitch; + } + + public String getColor() { + entity_data = new XmlBuilder(dataWatcher.getWatchableObjectString(12)); + return entity_data.getString("color"); + } + + @Override + protected void writeEntityToNBT(NBTTagCompound nbttagcompound) { + //super.writeEntityToNBT(nbttagcompound); + if (!getColor().isEmpty()) { + nbttagcompound.setString("colorstr", getColor()); + } + nbttagcompound.setBoolean("chunkLoadingState", getFlag(7)); + nbttagcompound.setDouble("trainDistanceTraveled", trainDistanceTraveled); + nbttagcompound.setString("theOwner", trainOwner); + nbttagcompound.setBoolean("locked", locked); + nbttagcompound.setString("theCreator", trainCreator); + nbttagcompound.setString("theName", trainName); + nbttagcompound.setString("theType", trainType); + nbttagcompound.setInteger("uniqueID", uniqueID); + //nbttagcompound.setInteger("uniqueIDs",uniqueIDs); + + nbttagcompound.setInteger("numberOfTrains", AbstractTrains.numberOfTrains); + nbttagcompound.setBoolean("isAttached", this.isAttached); + nbttagcompound.setBoolean("linked", this.linked); + //nbttagcompound.setDouble("motionX", motionX); + //nbttagcompound.setDouble("motionZ", motionZ); + nbttagcompound.setDouble("Link1", Link1); + nbttagcompound.setDouble("Link2", Link2); + + nbttagcompound.setInteger("Dim", this.dimension); + + nbttagcompound.setLong("UUIDM", this.getUniqueID().getMostSignificantBits()); + nbttagcompound.setLong("UUIDL", this.getUniqueID().getLeastSignificantBits()); + } + + @Override + protected void readEntityFromNBT(NBTTagCompound nbttagcompound) { + //super.readEntityFromNBT(nbttagcompound); + if (nbttagcompound.hasKey("color")) { + setColor(nbttagcompound.getInteger("color")); + } else if (nbttagcompound.hasKey("colorstr")) { + setColor(nbttagcompound.getString("colorstr")); + } + setFlag(7, nbttagcompound.getBoolean("chunkLoadingState")); + trainDistanceTraveled = nbttagcompound.getDouble("trainDistanceTraveled"); + trainOwner = nbttagcompound.getString("theOwner"); + this.locked = nbttagcompound.getBoolean("locked"); + setFlag(8, locked); + trainCreator = nbttagcompound.getString("theCreator"); + trainName = nbttagcompound.getString("theName"); + trainType = nbttagcompound.getString("theType"); + uniqueID = nbttagcompound.getInteger("uniqueID"); + //uniqueIDs = nbttagcompound.getInteger("uniqueIDs"); + setInformation(trainType, trainOwner, trainCreator, trainName, uniqueID); + + numberOfTrains = nbttagcompound.getInteger("numberOfTrains"); + isAttached = nbttagcompound.getBoolean("isAttached"); + linked = nbttagcompound.getBoolean("linked"); + //motionX = nbttagcompound.getDouble("motionX"); + //motionZ = nbttagcompound.getDouble("motionZ"); + Link1 = nbttagcompound.getDouble("Link1"); + Link2 = nbttagcompound.getDouble("Link2"); + if (nbttagcompound.hasKey("Dim")) { + this.dimension = nbttagcompound.getInteger("Dim"); + } + + if (nbttagcompound.hasKey("UUIDM")) { + this.entityUniqueID = new UUID(nbttagcompound.getLong("UUIDM"), nbttagcompound.getLong("UUIDL")); + } + } + + @Override + public boolean writeMountToNBT(NBTTagCompound tag) { + return false; + } + + @Override + public boolean writeToNBTOptional(NBTTagCompound p_70039_1_) { + if (!this.isDead && this.getEntityString() != null) { + p_70039_1_.setString("id", this.getEntityString()); + this.writeToNBT(p_70039_1_); + return true; + } + return false; + } + + public void setInformation(String trainType, String trainOwner, String trainCreator, String trainName, int uniqueID) { + if (!worldObj.isRemote) { + dataWatcher.updateObject(6, trainType); + dataWatcher.updateObject(7, trainOwner); + dataWatcher.updateObject(9, trainName); + dataWatcher.updateObject(11, uniqueID); + if (trainCreator != null && !trainCreator.isEmpty()) { + dataWatcher.updateObject(13, trainCreator); + } + } + } + + public static String getColorAsString(int i) { + switch (i) { + case 0: + return "Black"; + case 1: + return "Red"; + case 2: + return "Green"; + case 3: + return "Brown"; + case 4: + return "Blue"; + case 5: + return "Purple"; + case 6: + return "Cyan"; + case 7: + return "LightGrey"; + case 8: + return "Grey"; + case 13: + return "Magenta"; + case 10: + return "Lime"; + case 11: + return "Yellow"; + case 12: + return "LightBlue"; + case 9: + return "Pink"; + case 14: + return "Orange"; + case 15: + return "White"; + case 16: + return "Skin16"; + case 17: + return "Skin17"; + case 18: + return "Skin18"; + case 19: + return "Skin19"; + case 20: + return "Skin20"; + case 21: + return "Skin21"; + case 22: + return "Skin22"; + case 23: + return "Skin23"; + case 24: + return "Skin24"; + case 25: + return "Skin25"; + case 26: + return "Skin26"; + case 27: + return "Skin27"; + case 28: + return "Skin28"; + case 29: + return "Skin29"; + case 30: + return "Skin30"; + case 100: + return "Empty"; + case 101: + return "Full"; + default: + return "" + i; + } + } + + public static int getColorFromString(String color) { + if (color.equals("Black")) return 0; + if (color.equals("Red")) return 1; + if (color.equals("Green")) return 2; + if (color.equals("Brown")) return 3; + if (color.equals("Blue")) return 4; + if (color.equals("Purple")) return 5; + if (color.equals("Cyan")) return 6; + if (color.equals("LightGrey")) return 7; + if (color.equals("Grey")) return 8; + if (color.equals("Magenta")) return 13; + if (color.equals("Lime")) return 10; + if (color.equals("Yellow")) return 11; + if (color.equals("LightBlue")) return 12; + if (color.equals("Pink")) return 9; + if (color.equals("Orange")) return 14; + if (color.equals("White")) return 15; + if (color.equals("Skin16")) return 16; + if (color.equals("Skin17")) return 17; + if (color.equals("Skin18")) return 18; + if (color.equals("Skin19")) return 19; + if (color.equals("Skin20")) return 20; + if (color.equals("Skin21")) return 21; + if (color.equals("Skin22")) return 22; + if (color.equals("Skin23")) return 23; + if (color.equals("Skin24")) return 24; + if (color.equals("Skin25")) return 25; + if (color.equals("Empty")) return 100; + if (color.equals("Full")) return 101; + return -1; + } + + public void dropCartAsItem(boolean isCreative) { + if (!isCreative && !itemdropped) { + itemdropped = true; + for (ItemStack item : getItemsDropped()) { + if (item.getItem() instanceof ItemRollingStock) { + ItemStack stack = ItemRollingStock.setPersistentData(item, this, this.getUniqueTrainID(), trainCreator, trainOwner, getColor()); + entityDropItem(stack != null ? stack : item, 0); + } else { + setUniqueIDToItem(item); + entityDropItem(item, 0); + } + } + } + } + + protected void setUniqueIDToItem(ItemStack stack) { + NBTTagCompound var3 = stack.getTagCompound(); + if (var3 == null) { + var3 = new NBTTagCompound(); + stack.setTagCompound(var3); + } + if (this.uniqueID != -1) stack.getTagCompound().setInteger("uniqueID", this.uniqueID); + if (this.trainCreator != null && !this.trainCreator.isEmpty()) + stack.getTagCompound().setString("trainCreator", this.trainCreator); + stack.getTagCompound().setString("trainColor", this.getColor()); + } + + protected void setDefaultMass(double def) { + this.mass = def; + this.defaultMass = def; + } + + protected double getDefaultMass() { + return defaultMass; + } + + /** + * Lock packet + */ + public boolean getTrainLockedFromPacket() { + return locked; + } + + /** + * Lock packet + */ + public void setTrainLockedFromPacket(boolean set) { + // System.out.println(worldObj.isRemote + " " + set); + locked = set; + } + + + /** + * Locking for passengers, flat, caboose, jukebox,workcart + */ + protected boolean lockThisCart(ItemStack itemstack, EntityPlayer entityplayer) { + if (itemstack != null && (itemstack.getItem() instanceof ItemWrench || itemstack.getItem() instanceof ItemAdminBook)) { + if (entityplayer.getDisplayName().equals(this.trainOwner) || entityplayer.getGameProfile().getName().equals(this.trainOwner) + || this.trainOwner.isEmpty() || entityplayer.canCommandSenderUseCommand(2, "")) { + if (locked) { + locked = false; + if (worldObj.isRemote) { + entityplayer.addChatMessage(new ChatComponentText("Unlocked.")); + } + } else { + locked = true; + if (worldObj.isRemote) { + entityplayer.addChatMessage(new ChatComponentText("Locked.")); + } + } + } else if (worldObj.isRemote) { + entityplayer.addChatMessage(new ChatComponentText("You are not the owner!")); + } + return true; + } + return false; + } + + protected boolean canBeRiddenWhileLocked(AbstractTrains train) { + return (train instanceof Locomotive) || (train instanceof IPassenger) || (train instanceof AbstractWorkCart); + } + + protected boolean canBeDestroyedByPlayer(DamageSource damagesource) { + if (this.getTrainLockedFromPacket()) { + if (damagesource.getEntity() instanceof EntityPlayer) { + if ((damagesource.getEntity() instanceof EntityPlayerMP) && + ((EntityPlayerMP) damagesource.getEntity()).canCommandSenderUseCommand(2, "") && + ((EntityPlayer) damagesource.getEntity()).inventory.getCurrentItem() != null && + ((EntityPlayer) damagesource.getEntity()).inventory.getCurrentItem().getItem() instanceof ItemWrench) { + + ((EntityPlayer) damagesource.getEntity()).addChatMessage(new ChatComponentText("Removing the train using OP permission")); + return false; + } else if (!((EntityPlayer) damagesource.getEntity()).getDisplayName().equalsIgnoreCase(this.trainOwner)) { + ((EntityPlayer) damagesource.getEntity()).addChatMessage(new ChatComponentText("You are not the owner!")); + return true; + } + } else return !damagesource.isProjectile(); + } + return false; + } + + /** + * Railcraft routing integration + */ + @Override + public boolean doesCartMatchFilter(ItemStack stack, EntityMinecart cart) { + if (stack == null || cart == null) { + return false; + } + ItemStack cartItem = cart.getCartItem(); + return cartItem.getItem() == stack.getItem(); + } + + @Override + public String getDestination() { + if (destination == null) return ""; + return destination; + } + + /** + * Only locomotives can receive a destination from a track. It is then + * transmitted to attached carts + */ + @Override + public boolean setDestination(ItemStack ticket) { + return false; + } + + public static String getTicketDestination(ItemStack ticket) { + if ((ticket == null)) { + return ""; + } + NBTTagCompound nbt = ticket.getTagCompound(); + if (nbt == null) { + return ""; + } + return nbt.getString("dest"); + } + + + @Override + public String getCommandSenderName() { + String s = EntityList.getEntityString(this); + if (s == null) { + s = "generic"; + } + + return StatCollector.translateToLocal("entity." + s + ".name"); + } + + + public void setTicket(ForgeChunkManager.Ticket ticket) { + this.chunkTicket = ticket; + } + + public ForgeChunkManager.Ticket getTicket() { + return this.chunkTicket; + } + + public void requestTicket() { + ForgeChunkManager.Ticket chunkTicket = ForgeChunkManager.requestTicket(Traincraft.instance, worldObj, ForgeChunkManager.Type.ENTITY); + if (chunkTicket != null) { + chunkTicket.setChunkListDepth(25); + chunkTicket.bindEntity(this); + this.setTicket(chunkTicket); + } + } + + public String getPersistentUUID() { + if (getEntityData().hasKey("puuid")) { + return getEntityData().getString("puuid"); + } else { + getEntityData().setString("puuid", getUniqueID().toString()); + return this.getUniqueID().toString(); + } + } } \ No newline at end of file diff --git a/src/main/java/train/common/api/EntityRollingStock.java b/src/main/java/train/common/api/EntityRollingStock.java index b82c16276e..cb5b503452 100644 --- a/src/main/java/train/common/api/EntityRollingStock.java +++ b/src/main/java/train/common/api/EntityRollingStock.java @@ -66,2557 +66,2513 @@ import static train.common.core.util.TraincraftUtil.isRailBlockAt; public class EntityRollingStock extends AbstractTrains implements ILinkableCart { - public int fuelTrain; - protected static final int[][][] matrix = { - { { 0, 0,-1}, { 0, 0, 1} }, - { {-1, 0, 0}, { 1, 0, 0} }, - { {-1,-1, 0}, { 1, 0, 0} }, - { {-1, 0, 0}, { 1,-1, 0} }, - { { 0, 0,-1}, { 0,-1, 1} }, - { { 0,-1,-1}, { 0, 0, 1} }, - { { 0, 0, 1}, { 1, 0, 0} }, - { { 0, 0, 1}, {-1, 0, 0} }, - { { 0, 0,-1}, {-1, 0, 0} }, - { { 0, 0,-1}, { 1, 0, 0} } }; - - protected EntityPlayer playerEntity; - - /** Axis aligned bounding box. this needs to be it's own thing because collisions */ - private AxisAlignedBB boundingBoxSmall; - - public float maxSpeed; - public float railMaxSpeed; - public double speedLimiter = 1; - public boolean speedWasSet = false; - - public ItemStack item; - public float rotation; - - public int rail; - public int meta; - public double d6; - public double d7; - - /** appears to be the progress of the turn */ - private int rollingturnProgress; - private double rollingX; - private double rollingY; - private double rollingZ; - private float rollingServerPitch; - public double rotationYawClient; - public float rotationYawClientReal; - public float anglePitchClient;//was a double - public float serverRealRotation; - private float previousServerRealRotation; - public boolean isServerInReverse = false; - public boolean isClientInReverse = false; - public boolean serverInReverseSignPositive = false; - public float serverRealPitch; - private double rollingPitch; - public float oldClientYaw = 0;//used in rendering class - @SideOnly(Side.CLIENT) - private double rollingVelocityX; - @SideOnly(Side.CLIENT) - private double rollingVelocityY; - @SideOnly(Side.CLIENT) - private double rollingVelocityZ; - - private CollisionHandler collisionhandler; - private LinkHandler linkhandler; - private TrainsOnClick trainsOnClick; - public boolean isBraking; - public boolean isClimbing; - public int overheatLevel; - public int linkageNumber; - - public Side side; - @SideOnly(Side.CLIENT) - private SoundHandler theSoundManager; - @SideOnly(Side.CLIENT) - private SoundUpdaterRollingStock sndUpdater; - /** - * Array containing @TrainHandler objects. In other words it contains all - * the "trains" object the train object contains an array which contains all @RollingStocks - * that are part of the train - */ - public static ArrayList allTrains = new ArrayList(); - public int updateTicks = 0; - private HandleOverheating handleOverheating; - public ArrayList RollingStock; - /** - * each ticks: numLaps++ used for fuel consumption rate - */ - private int numLaps; - - private int ticksSinceHeld = 0; - private boolean cartLocked = false; - - /** - * New physics integration - */ - private double bogieShift = 0; - private boolean needsBogieUpdate; - private boolean firstLoad = true; - public EntityBogie bogieLoco = null; - private boolean hasSpawnedBogie = false; - private double mountedOffset = -0.5; - public double posYFromServer; - private double derailSpeed = 0.46; - - private int scrollPosition; - - public EntityRollingStock(World world) { - super(world); - initRollingStock(world); - } - - @Override - public GameProfile getOwner() { - return CartTools.getCartOwner(this); - } - - public EntityRollingStock(World world, double d, double d1, double d2) { - super(world,d,d1,d2); - initRollingStock(world); - setPosition(d, d1 + yOffset, d2); - motionX = 0.0D; - motionY = 0.0D; - motionZ = 0.0D; - prevPosX = d; - prevPosY = d1; - prevPosZ = d2; - } - - public void initRollingStock(World world) { - dataWatcher.addObject(20, 0);//heat - dataWatcher.addObject(14, 0); - dataWatcher.addObject(21, 0); - - preventEntitySpawning = true; - isImmuneToFire = true; - //field_70499_f = false; - - setSize(0.98F, 1.98F); - //yOffset = 0; - //ySize = 0.98F; - yOffset = 0.65f; - - linkageNumber = 0; - - entityCollisionReduction = 0.8F; - - boundingBoxSmall = AxisAlignedBB.getBoundingBox(0.0D, 0.0D, 0.0D, 0.0D, 2.0D, 1.0D); - //setBoundingBoxSmall(0.0D, 0.0D, 0.0D, 0.98F, 0.7F); - setBoundingBoxSmall(0.0D, 0.0D, 0.0D, 2.0F, 1.5F); - RollingStock = new ArrayList(); - handleOverheating = new HandleOverheating(this); - - collisionhandler = new CollisionHandler(world); - linkhandler = new LinkHandler(world); - trainsOnClick = new TrainsOnClick(); - - /* Railcraft's stuff */ - //maxSpeed = defaultMaxSpeedRail; - //maxSpeedGround = defaultMaxSpeedGround; - maxSpeedAirLateral = defaultMaxSpeedAirLateral; - maxSpeedAirVertical = defaultMaxSpeedAirVertical; - dragAir = defaultDragAir; - - /** - * Trains are always rendered even if out player's sight => no more - * flickering/disappearing - */ - if (ConfigHandler.FLICKERING) { - this.ignoreFrustumCheck = true; - } - side = FMLCommonHandler.instance().getEffectiveSide(); - if (side == Side.CLIENT) { - sndUpdater = new SoundUpdaterRollingStock(); - } - - this.needsBogieUpdate = false; - setCollisionHandler(null); - //this.boundingBox.offset(0, 0.5, 0); - } - - - /** - * this is basically NBT for entity spawn, to keep data between client and server in sync because some data is not automatically shared. - */ - @Override - public void readSpawnData(ByteBuf additionalData) { - isBraking = additionalData.readBoolean(); - setTrainLockedFromPacket(additionalData.readBoolean()); - } - @Override - public void writeSpawnData(ByteBuf buffer) { - buffer.writeBoolean(isBraking); - buffer.writeBoolean(getTrainLockedFromPacket()); - } - - public String getTrainName() { - return dataWatcher.getWatchableObjectString(9); - } - - public String getTrainType() { - return dataWatcher.getWatchableObjectString(6); - } - - @Override - public String getTrainOwner() { - return dataWatcher.getWatchableObjectString(7); - } - - public String getTrainCreator() { - return dataWatcher.getWatchableObjectString(13); - } - - public int getIDForServer() { - return dataWatcher.getWatchableObjectInt(5); - } - - public int getNumberOfTrainsForServer() { - return dataWatcher.getWatchableObjectInt(10); - } - - public int getUniqueTrainIDClient() { - return dataWatcher.getWatchableObjectInt(11); - } - - /* - * @Override public int getID() { return ID; } - */ - - @Override - protected boolean canTriggerWalking() { - return false; - } - - @Override - public double getMountedYOffset() { - return mountedOffset; - } - - public void setMountedYOffset(double offset) { - mountedOffset = offset; - } - - public void setYFromServer(double posYServer) { - this.posYFromServer = posYServer; - } - - @Override - protected void entityInit() { - dataWatcher.addObject(16, (byte) 0); - dataWatcher.addObject(17, 0); - dataWatcher.addObject(18, 1); - dataWatcher.addObject(19, 0.0F); - } - - @Override - public AxisAlignedBB getCollisionBox(Entity entity) { - return null; - } - - @Override - public boolean canBePushed() { - return true; - } - - @Override - public boolean isLocomotive() { - return (this instanceof Locomotive); - } - - @Override - public boolean isPassenger() { - return (this instanceof IPassenger); - } - - @Override - public boolean isFreightCart() { - return (this instanceof Freight || this instanceof LiquidTank); - } - - @Override - public boolean isFreightOrPassenger() { - return (this instanceof Freight || this instanceof IPassenger || this instanceof LiquidTank); - } - - @Override - public boolean isBuilder() { - return (this instanceof EntityTracksBuilder); - } - - @Override - public boolean isTender() { - return (this instanceof Tender); - } - - @Override - public boolean isWorkCart() { - return (this instanceof AbstractWorkCart); - } - - @Override - public boolean isElectricTrain() { - return (this instanceof ElectricTrain); - } - - protected int steamFuelLast(ItemStack it) { - return FuelHandler.steamFuelLast(it); - } - - @Override - public boolean attackEntityFrom(DamageSource damagesource, float i) { - if (worldObj.isRemote || isDead) { return true; } - if (damagesource.getEntity() instanceof EntityPlayer && !damagesource.isProjectile()) { - if(this instanceof IPassenger){ - if (canBeDestroyedByPlayer(damagesource)) return false; - } - setRollingDirection(-getRollingDirection()); - setRollingAmplitude(10); - setBeenAttacked(); - if (((EntityPlayer) damagesource.getEntity()).capabilities.isCreativeMode) { - this.setDamage(1000); - if (ConfigHandler.ENABLE_WAGON_REMOVAL_NOTICES && ((EntityPlayer) damagesource.getEntity()).canCommandSenderUseCommand(2,"")) { - ((EntityPlayer) damagesource.getEntity()).addChatComponentMessage(new ChatComponentText("Operator removed train owned by " + getTrainOwner())); - } - } - setDamage(getDamage() + i * 10); - if (getDamage() > 40) { - if (riddenByEntity != null) { - riddenByEntity.mountEntity(this); - } - ServerLogger.deleteWagon(this); - /** - * Destroy IPassenger since they don't extend Freight or - * Locomotive and don't have a proper attackEntityFrom() method - */ - if (this instanceof IPassenger) { - this.setDead(); - dropCartAsItem(((EntityPlayer)damagesource.getEntity()).capabilities.isCreativeMode); - } - } - } - return true; - } - - @Override - @SideOnly(Side.CLIENT) - public void performHurtAnimation() { - setRollingDirection(-getRollingDirection()); - setRollingAmplitude(10); - setDamage(getDamage() + getDamage() * 10); - } - - public void unLink(){ - if (this.isAttached) { - if (this.cartLinked1 != null) { - if (cartLinked1.Link1 == this.uniqueID) { - cartLinked1.Link1 = 0; - cartLinked1.cartLinked1 = null; - if(cartLinked1.RollingStock!=null)cartLinked1.RollingStock.clear(); - - } - else if (cartLinked1.Link2 == this.uniqueID) { - cartLinked1.Link2 = 0; - cartLinked1.cartLinked2 = null; - if(cartLinked1.RollingStock!=null)cartLinked1.RollingStock.clear(); - - } - } - if (this.cartLinked2 != null) { - if (cartLinked2.Link1 == this.uniqueID) { - cartLinked2.Link1 = 0; - cartLinked2.cartLinked1 = null; - if(cartLinked2.RollingStock!=null)cartLinked2.RollingStock.clear(); - - } - else if (cartLinked2.Link2 == this.uniqueID) { - cartLinked2.Link2 = 0; - cartLinked2.cartLinked2 = null; - if(cartLinked2.RollingStock!=null)cartLinked2.RollingStock.clear(); - - } - } - this.cartLinked1 = null; - this.cartLinked2 = null; - this.isAttached = false; - } - } - - @Override - public void setDead() { - super.setDead(); - this.unLink(); - if (train != null) { - if (train.getTrains() != null) { - for (int i2 = 0; i2 < train.getTrains().size(); i2++) { - if ((train.getTrains().get(i2)) instanceof Locomotive) { - train.getTrains().get(i2).cartLinked1 = null; - train.getTrains().get(i2).Link1 = 0; - train.getTrains().get(i2).cartLinked2 = null; - train.getTrains().get(i2).Link2 = 0; - } - if ((train.getTrains().get(i2)) != this) { - if (train != null && train.getTrains() != null && train.getTrains().get(i2) != null && train.getTrains().get(i2).train != null && train.getTrains().get(i2).train.getTrains() != null) train.getTrains().get(i2).train.getTrains().clear(); - } - } - } - } - if (train != null && train.getTrains().size() <= 1) { - train.getTrains().clear(); - allTrains.remove(train); - } - if (this.bogieLoco != null) { - bogieLoco.setDead(); - bogieLoco.isDead = true; - } - isDead = true; - Side side = FMLCommonHandler.instance().getEffectiveSide(); - if (side == Side.CLIENT) { - soundUpdater(); - } - } - - @Override - public boolean canBeCollidedWith() { - return !isDead; - } - - public void pressKey(int i) {} - - /** - * gets packet from server and distribute for GUI handles motion - * - * @param i - */ - public void keyHandlerFromPacket(int i) { - this.pressKey(i); - } - - private void handleTrain() { - if (this instanceof Locomotive && train != null) { - for (int i2 = 0; i2 < train.getTrains().size(); i2++) { - if (RailTools.isCartLockedDown(train.getTrains().get(i2))) { - cartLocked = true; - /** If something in the train is locked down */ - ticksSinceHeld = 40; - if (!((Locomotive) this).canBeAdjusted) { - ((Locomotive) this).setCanBeAdjusted(true); - - } - } - cartLocked = false; - } - if (ticksSinceHeld > 0 && !cartLocked) { - ticksSinceHeld--; - } - if (ticksSinceHeld <= 0 && !cartLocked) { - if (((Locomotive) this).canBeAdjusted && !((Locomotive) this).canBePulled) { - ((Locomotive) this).setCanBeAdjusted(false); - - } - } - } - - /* - * if(train!=null && RailTools.isCartLockedDown((EntityMinecart) this)){ - * train.setTicksSinceHeld(100); train.setCartLocked(true); for(int - * i2=0;i2 1) { - if (this instanceof Locomotive && !((Locomotive) this).canBeAdjusted && this.getDestination().length() > 0) { - for (int i = 0; i < train.getTrains().size(); i++) { - if (train.getTrains().get(i) != null && !train.getTrains().get(i).equals(this)) train.getTrains().get(i).destination = this.getDestination(); - CartTools.setCartOwner(train.getTrains().get(i), CartTools.getCartOwner(this)); - } - } - } - /** - * Resets destination - */ - else if (!(this instanceof Locomotive)) { - destination = ""; - } - } - - @Override - @SideOnly(Side.CLIENT) - /** - * Sets the position and rotation. Only difference from the other one is no bounding on the rotation. Args: posX, - * posY, posZ, yaw, pitch - */ - public void setPositionAndRotation2(double par1, double par3, double par5, float par7, float par8, int par9) { - this.rollingX = par1; - this.rollingY = par3; - this.rollingZ = par5; - this.rollingPitch = par8; - this.rollingturnProgress = par9 + 2; - this.motionX = this.rollingVelocityX; - this.motionY = this.rollingVelocityY; - this.motionZ = this.rollingVelocityZ; - } - - List list =null; - Block l; - - @Override - public void onUpdate() { - - if (addedToChunk && !this.hasSpawnedBogie && this.getSpec().getBogieLocoPosition() != 0) { - - if (bogieLoco == null) { - this.bogieShift = this.getSpec().getBogieLocoPosition(); - this.bogieLoco = new EntityBogie(worldObj, - (posX - Math.cos(this.serverRealRotation * TraincraftUtil.radian) * this.bogieShift), - posY + ((Math.tan(this.renderPitch * TraincraftUtil.radian) * -this.bogieShift) + getMountedYOffset()-0.1d), - (posZ - Math.sin(this.serverRealRotation * TraincraftUtil.radian) * this.bogieShift), this, this.uniqueID, 0, this.bogieShift); - - - if (!worldObj.isRemote) worldObj.spawnEntityInWorld(bogieLoco); - this.needsBogieUpdate = true; - } - this.hasSpawnedBogie = true; - } - - super.manageChunkLoading(); - - /** - * Set the uniqueID if the entity doesn't have one. - */ - if (!worldObj.isRemote && this.uniqueID == -1) { - if (FMLCommonHandler.instance().getMinecraftServerInstance() != null) { - //TraincraftSaveHandler.createFile(FMLCommonHandler.instance().getMinecraftServerInstance()); - //int readID = TraincraftSaveHandler.readInt(FMLCommonHandler.instance().getMinecraftServerInstance(), "numberOfTrains:"); - //int newID = setNewUniqueID(readID); - - //TraincraftSaveHandler seems to not work, may cause uniqueID bug. - setNewUniqueID(this.getEntityId()); - - //TraincraftSaveHandler.writeValue(FMLCommonHandler.instance().getMinecraftServerInstance(), "numberOfTrains:", "" + newID); - - } - } - - if (riddenByEntity instanceof EntityPlayer){ - ((EntityPlayer) riddenByEntity).addPotionEffect(new PotionEffect(Potion.resistance.id, 20, 5, true)); - } - - if (getRollingAmplitude() > 0) { - setRollingAmplitude(getRollingAmplitude() - 1); - } - if (getDamage() > 0) { - setDamage(getDamage() - 1); - } - - isBraking = false; - - if (worldObj.isRemote && Traincraft.proxy.getCurrentScreen() == null && riddenByEntity instanceof EntityLivingBase) { - EntityLivingBase entity = (EntityLivingBase) riddenByEntity; - if (TraincraftEntityHelper.getIsJumping(entity)) isBraking = true; - } - - int var2; - if (!this.worldObj.isRemote && this.worldObj instanceof WorldServer) { - this.worldObj.theProfiler.startSection("portal"); - MinecraftServer var1 = MinecraftServer.getServer(); - var2 = this.getMaxInPortalTime(); - - if (this.inPortal) { - if (var1.getAllowNether()) { - if (this.ridingEntity == null && this.portalCounter++ >= var2) { - this.portalCounter = var2; - this.timeUntilPortal = this.getPortalCooldown(); - byte var3; - - if (this.worldObj.provider.dimensionId == -1) { - var3 = 0; - } - else { - var3 = -1; - } - - this.travelToDimension(var3); - } - - this.inPortal = false; - } - } - else { - if (this.portalCounter > 0) { - this.portalCounter -= 4; - } - - if (this.portalCounter < 0) { - this.portalCounter = 0; - } - } - - if (this.timeUntilPortal > 0) { - --this.timeUntilPortal; - } - - this.worldObj.theProfiler.endSection(); - } - - Side side = FMLCommonHandler.instance().getEffectiveSide(); - if (side == Side.CLIENT) { - soundUpdater(); - } - - if (worldObj.isRemote) { - //rotationYaw = (float) rotationYawClient; - if (rollingturnProgress > 0) { - rotationYaw = (float) rotationYawClient; - this.rotationPitch = (float) (this.rotationPitch + (this.rollingPitch - this.rotationPitch) / this.rollingturnProgress); - - this.setPosition(this.posX + (this.rollingX - this.posX) / this.rollingturnProgress, - this.posY + (this.rollingY - this.posY) / this.rollingturnProgress, - this.posZ + (this.rollingZ - this.posZ) / this.rollingturnProgress); - --this.rollingturnProgress; - this.setRotation(this.rotationYaw, this.rotationPitch); - - } - else { - setPosition(posX, posY, posZ); - setRotation(rotationYaw, rotationPitch); - - } - return; - } - - /* - * if(this.updateTicks<5){ - - */ - /** - * As entities can't be registered in nbttagcompound I had to setup this - * system... When world loads, only the (double) Link1 and Link2 are - * known. This method search for the entity with the ID corresponding to - * Link1 or Link2 When it finds it, (EntityRollingStock)cartLinked1 and - * cartLinked2 will be updated accordingly - */ - if (addedToChunk && ((this.cartLinked1 == null && this.Link1 != 0) || (this.cartLinked2 == null && this.Link2 != 0))) { - list = worldObj.getEntitiesWithinAABBExcludingEntity(this, boundingBox.expand(15, 15, 15)); - - if (list != null && list.size() > 0) { - for (Object entity : list) { - if (entity instanceof EntityRollingStock) { - if (((EntityRollingStock) entity).uniqueID == this.Link1) { - this.cartLinked1 = (EntityRollingStock) entity; - } - else if (((EntityRollingStock) entity).uniqueID == this.Link2) { - this.cartLinked2 = (EntityRollingStock) entity; - } - } - } - } - } - - prevPosX = posX; - prevPosY = posY; - prevPosZ = posZ; - - int i = MathHelper.floor_double(posX); - int j = MathHelper.floor_double(posY); - int k = MathHelper.floor_double(posZ); - - if (needsBogieUpdate) { - if (bogieLoco != null) { - float rotationCos1 = (float) Math.cos(Math.toRadians(serverRealRotation)); - float rotationSin1 = (float) Math.sin(Math.toRadians((serverRealRotation))); - if (!firstLoad) { - rotationCos1 = (float) Math.cos(Math.toRadians(serverRealRotation + 90)); - rotationSin1 = (float) Math.sin(Math.toRadians((serverRealRotation + 90))); - } - double bogieX1 = (this.posX + (rotationCos1 * Math.abs(bogieShift))); - double bogieZ1 = (this.posZ + (rotationSin1 * Math.abs(bogieShift))); - this.bogieLoco.setPosition(bogieX1, bogieLoco.posY, bogieZ1); - /* - * double rads = this.serverRealRotation * - * 3.141592653589793D / 180.0D; double pitchRads = - * this.renderPitch * 3.141592653589793D / 180.0D; - * this.bogieLoco[bog].setPosition((float) (posX - - * Math.cos(rads) * this.bogieShift[bog]), (float) posY + - * ((Math.tan(pitchRads) * -this.bogieShift[bog]) + - * getMountedYOffset()), (float) (posZ - Math.sin(rads) * - * this.bogieShift[bog])); - */ - } - firstLoad = false; - /* - * for (int bog = 0; bog < this.bogieUtility.length; bog++) { if - * (bogieUtility[bog] != null) { - * - * double rads = this.serverRealRotation * 3.141592653589793D / - * 180.0D; double pitchRads = this.renderPitch * 3.141592653589793D - * / 180.0D; this.bogieUtility[bog].setPosition((float) (posX - - * Math.cos(rads) * this.bogieShift[bog]), (float) posY + - * ((Math.tan(pitchRads) * -this.bogieShift[bog]) + - * getMountedYOffset()), (float) (posZ - Math.sin(rads) * - * this.bogieShift[bog])); - - * [bog].posX+" "+ this.bogieUtility[bog].posY - * +" "+this.bogieUtility[bog].posZ); } } - */ - needsBogieUpdate = false; - } - if (bogieLoco != null) { - bogieLoco.updateDistance(); - } - - if (worldObj.isAirBlock(i,j,k)) { - j--; - } - else if (isRailBlockAt(worldObj, i, j + 1, k) || worldObj.getBlock(i, j + 1, k) == BlockIDs.tcRail.block || worldObj.getBlock(i, j + 1, k) == BlockIDs.tcRailGag.block) { - j++; - } - - l = worldObj.getBlock(i, j, k); - - updateOnTrack(i, j, k, l); - - - updateTicks++; - d6 = prevPosX - posX; - d7 = prevPosZ - posZ; - prevRotationYaw = rotationYaw; - - //this.rotationPitch = 0.0F; - - if (d6 * d6 + d7 * d7 > 0.0001D) { - this.rotationYaw = (float) (Math.atan2(d7, d6) * 180.0D / Math.PI); - if (this.isClientInReverse) { - this.rotationYaw += 180.0F; - } - } - - //double var49 = MathHelper.wrapAngleTo180_float(this.rotationYaw - this.prevRotationYaw); - - float anglePitch=0; - if (bogieLoco != null) { - - serverRealRotation = MathHelper.wrapAngleTo180_float((float) Math.toDegrees(Math.atan2((float) (bogieLoco.posZ - this.posZ), (float) (bogieLoco.posX - this.posX))) - 90F); - - anglePitch = (float) Math.atan(((bogieLoco.posY - posY)) / - MathHelper.sqrt_double(((bogieLoco.posX - posX) * (bogieLoco.posX - posX)) + - ((bogieLoco.posZ - posZ) * (bogieLoco.posZ - posZ))));//1.043749988079071 - serverRealPitch = anglePitch +(float) - ((bogieLoco.posZ - posZ) * (bogieLoco.posZ - posZ));//1.043749988079071 - } - else { - float rotation = rotationYaw; - - float delta = MathHelper.wrapAngleTo180_float(this.rotationYaw - this.previousServerRealRotation); //Math.abs(this.rotationYaw - this.previousServerRealRotation); - - this.previousServerRealRotation = this.rotationYaw; - - if (delta < -179.0F || delta > 179.0F) { // if (delta > 170.0F || delta < 190.0F) { - - this.rotationYaw += 180.0F; - this.isServerInReverse = !this.isServerInReverse; - } - previousServerRealRotation = rotation; - if (this.isServerInReverse) { - if (serverInReverseSignPositive) { - rotation += 180.0f; - } - else { - rotation -= 180.0f; - } - } - - serverRealRotation = rotation; - - double zDist = posZ - prevPosZ; - double xDist = posX - prevPosX; - float tempPitch = rollingServerPitch; - float tempPitch2 = tempPitch; - if (Math.abs(zDist) > 0.02) { - double rads = Math.atan((posY - prevPosY) / zDist); - tempPitch = (float) ((Math.atan((posY - prevPosY) / zDist)) * degrees); - } - else if (Math.abs(xDist) > 0.02) { - tempPitch = (float) (( Math.atan((posY - prevPosY) / xDist)) * degrees); - //pitch=tempPitch; - } - - //if (Math.abs(tempPitch) > 16) { - //tempPitch=Math.copySign(16, tempPitch); - //} - if (tempPitch2 < tempPitch && Math.abs(tempPitch2 - tempPitch) > 3) { - tempPitch2 += 3; - } - else if (tempPitch2 > tempPitch && Math.abs(tempPitch2 - tempPitch) > 3) { - tempPitch2 -= 3; - } - else if (tempPitch2 < tempPitch && Math.abs(tempPitch2 - tempPitch) > 0.5) { - tempPitch2 += 0.5; - } - else if (tempPitch2 > tempPitch && Math.abs(tempPitch2 - tempPitch) > 0.5) { - tempPitch2 -= 0.5; - } - anglePitch = -tempPitch2; - rollingServerPitch = 0; - } - - - if (updateTicks % 2 == 0) { - Traincraft.rotationChannel.sendToAllAround(new PacketRollingStockRotation(this, (int) (anglePitch * 60)), new TargetPoint(worldObj.provider.dimensionId, posX, posY, posZ, 300.0D)); - } - if(!worldObj.isRemote){ - anglePitchClient=(anglePitch * 60); - } - - //this.setRotation(this.rotationYaw, this.rotationPitch); - - list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, getCollisionHandler()!=null? - getCollisionHandler().getMinecartCollisionBox(this): - boundingBox.expand(0.2D, 0.0D, 0.2D)); - - if (list != null && !list.isEmpty()) { - Entity entity; - for (Object obj : list) { - if(obj==this.riddenByEntity){continue;} - entity = (Entity) obj; - - if (entity.canBePushed() && entity instanceof EntityMinecart) { - entity.applyEntityCollision(this); - } - else if (entity.canBePushed() && !(entity instanceof EntityMinecart)) { - this.applyEntityCollision(entity); - } - } - } - - handleTrain(); - handleOverheating.HandleHeatLevel(this); - linkhandler.handleStake(this, boundingBox); - collisionhandler.handleCollisions(this, boundingBox); - this.func_145775_I(); - MinecraftForge.EVENT_BUS.post(new MinecartUpdateEvent(this, i, j, k)); - //setBoundingBoxSmall(posX, posY, posZ, 0.98F, 0.7F); - numLaps++; - if ((this instanceof Locomotive) && (this.Link1 == 0) && (this.Link2 == 0) && numLaps > 700) { - this.RollingStock.clear(); - } - - if (this.riddenByEntity != null && this.riddenByEntity.isDead) { - if (this.riddenByEntity.ridingEntity == this) { - this.riddenByEntity.ridingEntity = null; - } - this.riddenByEntity = null; - } - this.dataWatcher.updateObject(14, (int) (motionX * 100)); - this.dataWatcher.updateObject(21, (int) (motionZ * 100)); - - if (ConfigHandler.ENABLE_LOGGING && !worldObj.isRemote && updateTicks%120==0){ - ServerLogger.writeWagonToFolder(this); - } - } - - boolean flag,flag1; - private void updateOnTrack(int i, int j, int k, Block l) { - if (canUseRail() && BlockRailBase.func_150051_a(l)) { - - Vec3 vec3d = TraincraftUtil.func_514_g(posX, posY, posZ); - int i1 = ((BlockRailBase) l).getBasicRailMetadata(worldObj, this, i, j, k); - meta = i1; - posY = j; - flag = false; - flag1=l == Blocks.golden_rail; - if (l == Blocks.golden_rail) { - flag = worldObj.getBlockMetadata(i,j,k) >2; - if (i1 == 8) {i1 = 0;} - else if(i1 == 9) {i1 = 1;} - } - - if (l == Blocks.detector_rail){ - worldObj.setBlockMetadataWithNotify(i, j, k, meta | 8, 3); - worldObj.notifyBlocksOfNeighborChange(i, j, k, l); - worldObj.notifyBlocksOfNeighborChange(i, j - 1, k, l); - worldObj.markBlockRangeForRenderUpdate(i, j, k, i, j, k); - worldObj.scheduleBlockUpdate(i, j, k, l, l.tickRate(worldObj)); - } - - if (i1 >= 2 && i1 <= 5) { - posY = (j + 1); - } - - adjustSlopeVelocities(i1); - - - int ai[][] = matrix[i1]; - double d9 = ai[1][0] - ai[0][0]; - double d10 = ai[1][2] - ai[0][2]; - double d11 = Math.sqrt(d9 * d9 + d10 * d10); - if (motionX * d9 + motionZ * d10 < 0.0D) { - d9 = -d9; - d10 = -d10; - } - double d13 = Math.sqrt(motionX * motionX + motionZ * motionZ); - motionX = (d13 * d9) / d11; - motionZ = (d13 * d10) / d11; - if (flag1 && !flag && shouldDoRailFunctions()) { - if (Math.sqrt(motionX * motionX + motionZ * motionZ) < 0.029999999999999999D) { - motionX = 0.0D; - motionY = 0.0D; - motionZ = 0.0D; - } - else { - motionX *= 0.5D; - motionY *= 0.0D; - motionZ *= 0.5D; - } - } - double d17 = 0.0D; - double d18 = i + 0.5D + ai[0][0] * 0.5D; - double d19 = k + 0.5D + ai[0][2] * 0.5D; - double d20 = i + 0.5D + ai[1][0] * 0.5D; - double d21 = k + 0.5D + ai[1][2] * 0.5D; - d9 = d20 - d18; - d10 = d21 - d19; - if (d9 == 0.0D) { - posX = i + 0.5D; - d17 = posZ - k; - } - else if (d10 == 0.0D) { - posZ = k + 0.5D; - d17 = posX - i; - } - else { - double d22 = posX - d18; - double d24 = posZ - d19; - d17 = (d22 * d9 + d24 * d10) * 2D; - //double derailSpeed = 0;//0.46; - } - if(bogieLoco != null) { - if (!bogieLoco.isOnRail()) { - derailSpeed = 0; - this.unLink(); - } - } - /** - * Handles derail - */ - if ((this instanceof Locomotive || this instanceof ISecondBogie) && d13 > derailSpeed && i1 >= 6) { - if (d9 > 0 && d10 < 0) { - d10 = 0; - d9 += 2; - } - else if (d9 < 0 && d10 > 0) { - d9 = 0; - d10 += 2; - } - else if (d10 < 0 && d9 < 0) { - d10 -= 2; - d9 = 0; - } - else if (d9 > 0 && d10 > 0) { - d10 += 2; - d9 = 0; - } - if (FMLCommonHandler.instance().getMinecraftServerInstance() != null && - this.riddenByEntity != null && this.riddenByEntity instanceof EntityPlayer) { - FMLCommonHandler.instance().getMinecraftServerInstance().getConfigurationManager().sendChatMsg(new - ChatComponentText(((EntityPlayer) this.riddenByEntity).getDisplayName() + "derailed" - + this.trainOwner + "'s locomotive")); - } - } - - - posX = d18 + d9 * d17; - posZ = d19 + d10 * d17; - setPosition(posX, posY + yOffset + 0.35, posZ); - - moveMinecartOnRail(i, j, k, 0.0D); - - if (ai[0][1] != 0 && MathHelper.floor_double(posX) - i == ai[0][0] && - MathHelper.floor_double(posZ) - k == ai[0][2]) { - setPosition(posX, posY + ai[0][1], posZ); - } - else if (ai[1][1] != 0 && MathHelper.floor_double(posX) - i == ai[1][0] && - MathHelper.floor_double(posZ) - k == ai[1][2]) { - setPosition(posX, posY + ai[1][1], posZ); - } - - applyDragAndPushForces(); - - Vec3 vec3d1 = TraincraftUtil.func_514_g(posX, posY, posZ); - double d28 = (vec3d.yCoord - vec3d1.yCoord) * 0.050000000000000003D; - if (this instanceof Locomotive) d28 = 0; - double d14 = Math.sqrt(motionX * motionX + motionZ * motionZ); - if (d14 > 0.0D) { - motionX = (motionX / d14) * (d14 + d28); - motionZ = (motionZ / d14) * (d14 + d28); - } - setPosition(posX, posY + yOffset - 0.8d, posZ); - int k1 = MathHelper.floor_double(posX); - int l1 = MathHelper.floor_double(posZ); - if (k1 != i || l1 != k) { - double d15 = Math.sqrt(motionX * motionX + motionZ * motionZ); - motionX = d15 * (k1 - i); - motionZ = d15 * (l1 - k); - } - - if (shouldDoRailFunctions()) { - ((BlockRailBase) l).onMinecartPass(worldObj, this, i, j, k); - } - - if (flag && shouldDoRailFunctions()) { - double d31 = Math.sqrt(motionX * motionX + motionZ * motionZ); - if (d31 > 0.01D) { - motionX += (motionX / d31) * 0.059999999999999998D; - motionZ += (motionZ / d31) * 0.059999999999999998D; - } - else if (i1 == 1) { - if (worldObj.isBlockNormalCubeDefault(i - 1, j, k,false)) { - motionX = 0.02D; - } - else if (worldObj.isBlockNormalCubeDefault(i + 1, j, k,false)) { - motionX = -0.02D; - } - } - else if (i1 == 0) { - if (worldObj.isBlockNormalCubeDefault(i, j, k - 1,false)) { - motionZ = 0.02D; - } - else if (worldObj.isBlockNormalCubeDefault(i, j, k + 1,false)) { - motionZ = -0.02D; - } - } - } - } - else if (l == BlockIDs.tcRail.block) { - limitSpeedOnTCRail(); - //if(worldObj.getTileEntity(i,j,k)==null || !(worldObj.getTileEntity(i,j,k) instanceof TileTCRail))return; - TileTCRail tile = (TileTCRail) worldObj.getTileEntity(i, j, k); - int meta = tile.getBlockMetadata(); - - if (ItemTCRail.isTCStraightTrack(tile)) { - moveOnTCStraight(i, j, k, tile.xCoord, tile.zCoord, meta); - } - else if (ItemTCRail.isTCTurnTrack(tile)) { - - if(bogieLoco != null) { - if (!bogieLoco.isOnRail()) { - derailSpeed = 0; - } - } - if(derailSpeed == 0){ - this.unLink(); - moveOnTCStraight(i, j, k, tile.xCoord, tile.zCoord, meta); - } - else{ - - if (shouldIgnoreSwitch(tile, i, j, k, meta)) { - moveOnTCStraight(i, j, k, tile.xCoord, tile.zCoord, meta); - } - else { - if (ItemTCRail.isTCTurnTrack(tile)) - moveOnTC90TurnRail(i, j, k, tile.r, tile.cx, tile.cz); - } - // shouldIgnoreSwitch(tile, i, j, k, meta); - // if (ItemTCRail.isTCTurnTrack(tile)) moveOnTC90TurnRail(i, j, k, r, cx, cy, - // cz, tile.getType(), meta); - } - } - else if (ItemTCRail.isTCSlopeTrack(tile)) { - moveOnTCSlope( j, tile.xCoord, tile.zCoord, tile.slopeAngle, tile.slopeHeight, meta); - } - else if (ItemTCRail.isTCTwoWaysCrossingTrack(tile)) { - moveOnTCTwoWaysCrossing(i, j, k, tile.xCoord, tile.yCoord, tile.zCoord, meta); - } - else if (ItemTCRail.isTCDiagonalCrossingTrack(tile)) { - moveOnTCDiamondCrossing(i, j, k, tile.xCoord, tile.yCoord, tile.zCoord, meta ); - } - else if (ItemTCRail.isTCDiagonalStraightTrack(tile)) { - moveOnTCDiagonal(i, j, k, tile.xCoord, tile.zCoord, tile.getBlockMetadata(), tile.getRailLength()); - } - else if (ItemTCRail.isTCCurvedSlopeTrack(tile)) { - moveOnTCCurvedSlope(i, j, k, tile.r, tile.cx, tile.cz, tile.xCoord, tile.zCoord, meta, 1, tile.slopeAngle); - } - - } - else if (l == BlockIDs.tcRailGag.block) { - limitSpeedOnTCRail(); - TileTCRailGag tileGag = (TileTCRailGag) worldObj.getTileEntity(i, j, k); - if (worldObj.getTileEntity(tileGag.originX, tileGag.originY, tileGag.originZ) instanceof TileTCRail) { - TileTCRail tile = (TileTCRail) worldObj.getTileEntity(tileGag.originX, tileGag.originY, tileGag.originZ); - - if (ItemTCRail.isTCTurnTrack(tile)) { - moveOnTC90TurnRail(i, j, k, tile.r, tile.cx, tile.cz); - } - if (ItemTCRail.isTCStraightTrack(tile)) { - moveOnTCStraight(i, j, k, tile.xCoord, tile.zCoord, tile.getBlockMetadata()); - } - if (ItemTCRail.isTCSlopeTrack(tile)) { - moveOnTCSlope(j, tile.xCoord, tile.zCoord, tile.slopeAngle, tile.slopeHeight, tile.getBlockMetadata()); - } - if (ItemTCRail.isTCDiagonalStraightTrack(tile)) { - moveOnTCDiagonal(i, j, k, tile.xCoord, tile.zCoord, tile.getBlockMetadata(), tile.getRailLength()); - } - else if (ItemTCRail.isTCDiagonalCrossingTrack(tile)) { - moveOnTCDiamondCrossing(i, j, k, tile.xCoord, tile.yCoord, tile.zCoord, meta ); - } - if (ItemTCRail.isTCCurvedSlopeTrack(tile)) { - moveOnTCCurvedSlope(i, j, k, tile.r, tile.cx, tile.cz, tile.xCoord, tile.zCoord, tile.getBlockMetadata(), 1, tile.slopeAngle); - } - } - } - else { - //moveMinecartOffRail(i,j,k); - super.onUpdate(); - } - - } - - private boolean shouldIgnoreSwitch(TileTCRail tile, int i, int j, int k, int meta) { - if (tile != null - && (tile.getType().equals(TrackTypes.MEDIUM_RIGHT_TURN.getLabel()) - || tile.getType().equals(TrackTypes.MEDIUM_LEFT_TURN.getLabel()) - || tile.getType().equals(TrackTypes.LARGE_LEFT_TURN.getLabel()) - || tile.getType().equals(TrackTypes.LARGE_RIGHT_TURN.getLabel())) - || tile.getType().equals(TrackTypes.MEDIUM_RIGHT_45DEGREE_TURN.getLabel()) - || tile.getType().equals(TrackTypes.MEDIUM_LEFT_45DEGREE_TURN.getLabel()) - || tile.getType().equals(TrackTypes.EMBEDDED_MEDIUM_RIGHT_TURN.getLabel()) - || tile.getType().equals(TrackTypes.EMBEDDED_MEDIUM_LEFT_TURN.getLabel()) - || tile.getType().equals(TrackTypes.EMBEDDED_LARGE_LEFT_TURN.getLabel()) - || tile.getType().equals(TrackTypes.EMBEDDED_LARGE_RIGHT_TURN.getLabel()) - || tile.getType().equals(TrackTypes.EMBEDDED_MEDIUM_RIGHT_45DEGREE_TURN.getLabel()) - || tile.getType().equals(TrackTypes.EMBEDDED_MEDIUM_LEFT_45DEGREE_TURN.getLabel()) - - && tile.canTypeBeModifiedBySwitch) { - - /* Handles reverse straight movement of a cart on a switch that happened to be turned on*/ - if (meta == 2) { - if (motionZ > 0 && Math.abs(motionX) < 0.01) { - TileEntity tile2 = worldObj.getTileEntity(i, j, k + 1); - if (tile2 instanceof TileTCRail) { - ((TileTCRail) tile2).setSwitchState(false, true); - } - return true; - } - } - else if (meta == 0) { - if (motionZ < 0 && Math.abs(motionX) < 0.01) { - TileEntity tile2 = worldObj.getTileEntity(i, j, k - 1); - if (tile2 instanceof TileTCRail) { - ((TileTCRail) tile2).setSwitchState(false, true); - } - return true; - } - } - else if (meta == 1) { - if (Math.abs(motionZ) < 0.01 && motionX > 0) { - TileEntity tile2 = worldObj.getTileEntity(i + 1, j, k); - if (tile2 instanceof TileTCRail) { - ((TileTCRail) tile2).setSwitchState(false, true); - } - return true; - } - } - else if (meta == 3) { - if (Math.abs(motionZ) < 0.01 && motionX < 0) { - TileEntity tile2 = worldObj.getTileEntity(i - 1, j, k); - if (tile2 instanceof TileTCRail) { - ((TileTCRail) tile2).setSwitchState(false, true); - } - return true; - } - } - } - return false; - } - - private void moveOnTCDiagonal(int i, int j, int k, double cx, double cz, int meta, double length) { - - double Y_OFFSET = 0.2; - double X_OFFSET = 0.5; - double Z_OFFSET = 1.5; - posY = j + Y_OFFSET; - if (length == 0){ - length = 1; - } - double exitX = 0; - double exitZ = 0; - double directionX; - double directionZ; - double norm = Math.sqrt(motionX * motionX + motionZ * motionZ); - double distanceNorm; - - if (meta == 6) { - exitX = (motionX > 0) ? cx + length + X_OFFSET : cx - X_OFFSET; - exitZ = (motionX > 0) ? cz - length + X_OFFSET : cz + Z_OFFSET; - } else if (meta == 4) { - exitX = (motionX > 0) ? cx + Z_OFFSET : cx - (length - X_OFFSET); - exitZ = (motionX > 0) ? cz - X_OFFSET : cz + (length + X_OFFSET); - } else if (meta == 5) { - exitX = (motionX > 0) ? cx + Z_OFFSET : cx - (length + X_OFFSET); - exitZ = (motionX > 0) ? cz + Z_OFFSET : cz - (length + X_OFFSET); - } else if (meta == 7) { - exitX = (motionX > 0) ? cx + (length + X_OFFSET) : cx - X_OFFSET; - exitZ = (motionX > 0) ? cz + (length + X_OFFSET) : cz - X_OFFSET; - } - - directionX = exitX - posX; - directionZ = exitZ - posZ; - distanceNorm = Math.sqrt(directionX * directionX + directionZ * directionZ); - motionX = (directionX / distanceNorm) * norm; - motionZ = (directionZ / distanceNorm) * norm; - this.boundingBox.offset(Math.copySign(motionX, this.motionX), 0 , Math.copySign(motionZ, this.motionZ)); - - List boxes = worldObj.getCollidingBoundingBoxes(this, boundingBox); - for(Object b : boxes){ - if(!(b instanceof BlockRailBase) && !(b instanceof BlockTCRail) && !(b instanceof BlockTCRailGag) && !(b instanceof BlockAir)){ + public int fuelTrain; + protected static final int[][][] matrix = { + {{0, 0, -1}, {0, 0, 1}}, + {{-1, 0, 0}, {1, 0, 0}}, + {{-1, -1, 0}, {1, 0, 0}}, + {{-1, 0, 0}, {1, -1, 0}}, + {{0, 0, -1}, {0, -1, 1}}, + {{0, -1, -1}, {0, 0, 1}}, + {{0, 0, 1}, {1, 0, 0}}, + {{0, 0, 1}, {-1, 0, 0}}, + {{0, 0, -1}, {-1, 0, 0}}, + {{0, 0, -1}, {1, 0, 0}}}; + + protected EntityPlayer playerEntity; + + /** + * Axis aligned bounding box. this needs to be it's own thing because collisions + */ + private AxisAlignedBB boundingBoxSmall; + + public float maxSpeed; + public float railMaxSpeed; + public double speedLimiter = 1; + public boolean speedWasSet = false; + + public ItemStack item; + public float rotation; + + public int rail; + public int meta; + public double d6; + public double d7; + + /** + * appears to be the progress of the turn + */ + private int rollingturnProgress; + private double rollingX; + private double rollingY; + private double rollingZ; + private float rollingServerPitch; + public double rotationYawClient; + public float rotationYawClientReal; + public float anglePitchClient;//was a double + public float serverRealRotation; + private float previousServerRealRotation; + public boolean isServerInReverse = false; + public boolean isClientInReverse = false; + public boolean serverInReverseSignPositive = false; + public float serverRealPitch; + private double rollingPitch; + public float oldClientYaw = 0;//used in rendering class + @SideOnly(Side.CLIENT) + private double rollingVelocityX; + @SideOnly(Side.CLIENT) + private double rollingVelocityY; + @SideOnly(Side.CLIENT) + private double rollingVelocityZ; + + private CollisionHandler collisionhandler; + private LinkHandler linkhandler; + private TrainsOnClick trainsOnClick; + public boolean isBraking; + public boolean isClimbing; + public int overheatLevel; + public int linkageNumber; + + public Side side; + @SideOnly(Side.CLIENT) + private SoundHandler theSoundManager; + @SideOnly(Side.CLIENT) + private SoundUpdaterRollingStock sndUpdater; + /** + * Array containing @TrainHandler objects. In other words it contains all + * the "trains" object the train object contains an array which contains all @RollingStocks + * that are part of the train + */ + public static ArrayList allTrains = new ArrayList(); + public int updateTicks = 0; + private HandleOverheating handleOverheating; + public ArrayList RollingStock; + /** + * each ticks: numLaps++ used for fuel consumption rate + */ + private int numLaps; + + private int ticksSinceHeld = 0; + private boolean cartLocked = false; + + /** + * New physics integration + */ + private double bogieShift = 0; + private boolean needsBogieUpdate; + private boolean firstLoad = true; + public EntityBogie bogieLoco = null; + private boolean hasSpawnedBogie = false; + private double mountedOffset = -0.5; + public double posYFromServer; + private double derailSpeed = 0.46; + + private int scrollPosition; + + public EntityRollingStock(World world) { + super(world); + initRollingStock(world); + } + + @Override + public GameProfile getOwner() { + return CartTools.getCartOwner(this); + } + + public EntityRollingStock(World world, double d, double d1, double d2) { + super(world, d, d1, d2); + initRollingStock(world); + setPosition(d, d1 + yOffset, d2); + motionX = 0.0D; + motionY = 0.0D; + motionZ = 0.0D; + prevPosX = d; + prevPosY = d1; + prevPosZ = d2; + } + + public void initRollingStock(World world) { + dataWatcher.addObject(20, 0);//heat + dataWatcher.addObject(14, 0); + dataWatcher.addObject(21, 0); + + preventEntitySpawning = true; + isImmuneToFire = true; + //field_70499_f = false; + + setSize(0.98F, 1.98F); + //yOffset = 0; + //ySize = 0.98F; + yOffset = 0.65f; + + linkageNumber = 0; + + entityCollisionReduction = 0.8F; + + boundingBoxSmall = AxisAlignedBB.getBoundingBox(0.0D, 0.0D, 0.0D, 0.0D, 2.0D, 1.0D); + //setBoundingBoxSmall(0.0D, 0.0D, 0.0D, 0.98F, 0.7F); + setBoundingBoxSmall(0.0D, 0.0D, 0.0D, 2.0F, 1.5F); + RollingStock = new ArrayList(); + handleOverheating = new HandleOverheating(this); + + collisionhandler = new CollisionHandler(world); + linkhandler = new LinkHandler(world); + trainsOnClick = new TrainsOnClick(); + + /* Railcraft's stuff */ + //maxSpeed = defaultMaxSpeedRail; + //maxSpeedGround = defaultMaxSpeedGround; + maxSpeedAirLateral = defaultMaxSpeedAirLateral; + maxSpeedAirVertical = defaultMaxSpeedAirVertical; + dragAir = defaultDragAir; + + /** + * Trains are always rendered even if out player's sight => no more + * flickering/disappearing + */ + if (ConfigHandler.FLICKERING) { + this.ignoreFrustumCheck = true; + } + side = FMLCommonHandler.instance().getEffectiveSide(); + if (side == Side.CLIENT) { + sndUpdater = new SoundUpdaterRollingStock(); + } + + this.needsBogieUpdate = false; + setCollisionHandler(null); + //this.boundingBox.offset(0, 0.5, 0); + } + + + /** + * this is basically NBT for entity spawn, to keep data between client and server in sync because some data is not automatically shared. + */ + @Override + public void readSpawnData(ByteBuf additionalData) { + isBraking = additionalData.readBoolean(); + setTrainLockedFromPacket(additionalData.readBoolean()); + } + + @Override + public void writeSpawnData(ByteBuf buffer) { + buffer.writeBoolean(isBraking); + buffer.writeBoolean(getTrainLockedFromPacket()); + } + + public String getTrainName() { + return dataWatcher.getWatchableObjectString(9); + } + + public String getTrainType() { + return dataWatcher.getWatchableObjectString(6); + } + + @Override + public String getTrainOwner() { + return dataWatcher.getWatchableObjectString(7); + } + + public String getTrainCreator() { + return dataWatcher.getWatchableObjectString(13); + } + + public int getIDForServer() { + return dataWatcher.getWatchableObjectInt(5); + } + + public int getNumberOfTrainsForServer() { + return dataWatcher.getWatchableObjectInt(10); + } + + public int getUniqueTrainIDClient() { + return dataWatcher.getWatchableObjectInt(11); + } + + /* + * @Override public int getID() { return ID; } + */ + + @Override + public double getMountedYOffset() { + return mountedOffset; + } + + public void setMountedYOffset(double offset) { + mountedOffset = offset; + } + + public void setYFromServer(double posYServer) { + this.posYFromServer = posYServer; + } + + @Override + protected void entityInit() { + dataWatcher.addObject(16, (byte) 0); + dataWatcher.addObject(17, 0); + dataWatcher.addObject(18, 1); + dataWatcher.addObject(19, 0.0F); + } + + @Override + public AxisAlignedBB getCollisionBox(Entity entity) { + return null; + } + + @Override + public boolean canBePushed() { + return true; + } + + @Override + public boolean isLocomotive() { + return (this instanceof Locomotive); + } + + @Override + public boolean isPassenger() { + return (this instanceof IPassenger); + } + + @Override + public boolean isFreightCart() { + return (this instanceof Freight || this instanceof LiquidTank); + } + + @Override + public boolean isFreightOrPassenger() { + return (this instanceof Freight || this instanceof IPassenger || this instanceof LiquidTank); + } + + @Override + public boolean isBuilder() { + return (this instanceof EntityTracksBuilder); + } + + @Override + public boolean isTender() { + return (this instanceof Tender); + } + + @Override + public boolean isWorkCart() { + return (this instanceof AbstractWorkCart); + } + + @Override + public boolean isElectricTrain() { + return (this instanceof ElectricTrain); + } + + protected int steamFuelLast(ItemStack it) { + return FuelHandler.steamFuelLast(it); + } + + @Override + public boolean attackEntityFrom(DamageSource damagesource, float i) { + if (worldObj.isRemote || isDead) { + return true; + } + if (damagesource.getEntity() instanceof EntityPlayer && !damagesource.isProjectile()) { + if (this instanceof IPassenger) { + if (canBeDestroyedByPlayer(damagesource)) return false; + } + setRollingDirection(-getRollingDirection()); + setRollingAmplitude(10); + setBeenAttacked(); + if (((EntityPlayer) damagesource.getEntity()).capabilities.isCreativeMode) { + this.setDamage(1000); + if (ConfigHandler.ENABLE_WAGON_REMOVAL_NOTICES && ((EntityPlayer) damagesource.getEntity()).canCommandSenderUseCommand(2, "")) { + ((EntityPlayer) damagesource.getEntity()).addChatComponentMessage(new ChatComponentText("Operator removed train owned by " + getTrainOwner())); + } + } + setDamage(getDamage() + i * 10); + if (getDamage() > 40) { + if (riddenByEntity != null) { + riddenByEntity.mountEntity(this); + } + ServerLogger.deleteWagon(this); + /** + * Destroy IPassenger since they don't extend Freight or + * Locomotive and don't have a proper attackEntityFrom() method + */ + if (this instanceof IPassenger) { + this.setDead(); + dropCartAsItem(((EntityPlayer) damagesource.getEntity()).capabilities.isCreativeMode); + } + } + } + return true; + } + + @Override + @SideOnly(Side.CLIENT) + public void performHurtAnimation() { + setRollingDirection(-getRollingDirection()); + setRollingAmplitude(10); + setDamage(getDamage() + getDamage() * 10); + } + + public void unLink() { + if (this.isAttached) { + if (this.cartLinked1 != null) { + if (cartLinked1.Link1 == this.uniqueID) { + cartLinked1.Link1 = 0; + cartLinked1.cartLinked1 = null; + if (cartLinked1.RollingStock != null) cartLinked1.RollingStock.clear(); + + } else if (cartLinked1.Link2 == this.uniqueID) { + cartLinked1.Link2 = 0; + cartLinked1.cartLinked2 = null; + if (cartLinked1.RollingStock != null) cartLinked1.RollingStock.clear(); + + } + } + if (this.cartLinked2 != null) { + if (cartLinked2.Link1 == this.uniqueID) { + cartLinked2.Link1 = 0; + cartLinked2.cartLinked1 = null; + if (cartLinked2.RollingStock != null) cartLinked2.RollingStock.clear(); + + } else if (cartLinked2.Link2 == this.uniqueID) { + cartLinked2.Link2 = 0; + cartLinked2.cartLinked2 = null; + if (cartLinked2.RollingStock != null) cartLinked2.RollingStock.clear(); + + } + } + this.cartLinked1 = null; + this.cartLinked2 = null; + this.isAttached = false; + } + } + + @Override + public void setDead() { + super.setDead(); + this.unLink(); + { + if (train == null) { return; } - } - this.posX = (this.boundingBox.minX + this.boundingBox.maxX) / 2.0D; - this.posY = this.boundingBox.minY + (double)this.yOffset - (double)this.ySize; - this.posZ = (this.boundingBox.minZ + this.boundingBox.maxZ) / 2.0D; - - } - - - private void moveOnTCCurvedSlope(int i, int j, int k,double r, double cx, double cz, int tilex, int tilez, int meta, double slopeHeight, double slopeAngle) { - double newTilex = tilex; - double newTilez = tilez; - if (meta == 2 ) { - newTilez += 1; - newTilex += 0.5; - } - if (meta == 0) { - newTilex += 0.5; - } - if (meta == 1 ) { - newTilex += 1; - newTilez += 0.5; - } - if (meta == 3) { - newTilez += 0.5; - } - double cpx = posX - cx; - double cpz = posZ - cz; - double tpx = newTilex - posX; - double tpz = newTilez - posZ; - - double tpnorm = Math.sqrt(tpx * tpx + tpz * tpz); - - double cp_norm = Math.sqrt(cpx * cpx + cpz * cpz); - double vnorm = Math.sqrt(motionX * motionX + motionZ * motionZ); - - double norm_cpx = cpx / cp_norm; //u - double norm_cpz = cpz / cp_norm; //v - - double vx2 = -norm_cpz * vnorm;//-v - double vz2 = norm_cpx * vnorm;//u - - double px2 = posX + motionX; - double pz2 = posZ + motionZ; - - double px2_cx = px2 - cx; - double pz2_cz = pz2 - cz; - - double p2_c_norm = Math.sqrt((px2_cx * px2_cx) + (pz2_cz * pz2_cz)); - - double px2_cx_norm = px2_cx / p2_c_norm; - double pz2_cz_norm = pz2_cz / p2_c_norm; - - double px3 = cx + (px2_cx_norm * r); - double pz3 = cz + (pz2_cz_norm * r); - - double signX = px3 - posX; - double signZ = pz3 - posZ; - - vx2 = Math.copySign(vx2, signX); - vz2 = Math.copySign(vz2, signZ); - - double p_corr_x = cx + ((cpx / cp_norm) * r); - double p_corr_z = cz + ((cpz / cp_norm) * r); - motionX = vx2; - motionZ = vz2; - - double newYPos = Math.abs(j+ Math.min(1, (slopeAngle * Math.abs(tpnorm))) + yOffset + 0.34f); - setPosition(p_corr_x, newYPos, p_corr_z); - moveEntity(vx2, 0, vz2); - - - } - - private void moveOnTCStraight(int i, int j, int k, double cx, double cz, int meta) { - posY = j + 0.2; - if (meta == 2 || meta == 0) { - double norm = Math.sqrt(motionX * motionX + motionZ * motionZ); - - setPosition(cx + 0.5, posY + yOffset, posZ); - - motionX = 0; - motionZ = Math.copySign(norm, motionZ); - this.boundingBox.offset(0, 0 , Math.copySign(norm, this.motionZ)); - - List boxes = worldObj.getCollidingBoundingBoxes(this, boundingBox); - for(Object b : boxes){ - if(!(b instanceof BlockRailBase) && !(b instanceof BlockTCRail) && !(b instanceof BlockTCRailGag) && !(b instanceof BlockAir)){ - return; - } - } - this.posX = (this.boundingBox.minX + this.boundingBox.maxX) / 2.0D; - this.posY = this.boundingBox.minY + (double)this.yOffset - (double)this.ySize; - this.posZ = (this.boundingBox.minZ + this.boundingBox.maxZ) / 2.0D; - - } - else if (meta == 1 || meta == 3) { - - setPosition(posX, posY + yOffset, cz + 0.5); - //setPosition(posX, posY + yOffset, posZ); - - motionX = Math.copySign(Math.sqrt(motionX * motionX + motionZ * motionZ), motionX); - motionZ = 0; - this.boundingBox.offset(motionX, 0 , 0); - - List boxes = worldObj.getCollidingBoundingBoxes(this, boundingBox); - for(Object b : boxes){ - if(!(b instanceof BlockRailBase) && !(b instanceof BlockTCRail) && !(b instanceof BlockTCRailGag) && !(b instanceof BlockAir)){ - return; - } - } - this.posX = (this.boundingBox.minX + this.boundingBox.maxX) / 2.0D; - this.posY = this.boundingBox.minY + (double)this.yOffset - (double)this.ySize; - this.posZ = (this.boundingBox.minZ + this.boundingBox.maxZ) / 2.0D; - - - } - } - - private void moveOnTCSlope(int j, double cx, double cz, double slopeAngle, double slopeHeight, int meta) { - //posY = j + 2.5; - if (meta == 2 || meta == 0) { - - if (meta == 2) { - cz += 1; - } - - double norm = Math.sqrt(this.motionX * this.motionX + this.motionZ * this.motionZ); - this.setPosition(cx + 0.5D, Math.abs(j + (Math.tan(slopeAngle * Math.abs(cz - this.posZ))) + this.yOffset +0.3), this.posZ); - this.boundingBox.offset(0, 0 , Math.copySign(norm, this.motionZ)); - this.posX = (this.boundingBox.minX + this.boundingBox.maxX) / 2.0D; - this.posY = this.boundingBox.minY + (double)this.yOffset - (double)this.ySize; - this.posZ = (this.boundingBox.minZ + this.boundingBox.maxZ) / 2.0D; - - if (!(this instanceof Locomotive) && !(this instanceof EntityTracksBuilder)) { - if ((this.posY - this.prevPosY) < 0) { - norm *= 1.02; - } else if ((this.posY - this.prevPosY) > 0) { - norm *= 0.98; - } - if (norm < 0.01) { - - if ((motionZ) < 0 && meta == 2) { - norm += 0.0001; - motionZ = Math.copySign(motionZ, 1); - } - if ((motionZ) > 0 && meta == 0) { - norm += 0.0001; - motionZ = Math.copySign(motionZ, -1); - } - } - } - - this.motionX = 0.0D; - this.motionY = 0.0D; - this.motionZ = Math.copySign(norm, this.motionZ); - } - else if (meta == 1 || meta == 3) { - if (meta == 1) { - cx += 1; - } - - double norm = Math.sqrt(this.motionX * this.motionX + this.motionZ * this.motionZ); - this.setPosition(this.posX, (j + (Math.tan(slopeAngle * Math.abs(cx - this.posX))) + this.yOffset+0.3), cz + 0.5D); - this.boundingBox.offset(Math.copySign(norm, this.motionX), 0 ,0); - this.posX = (this.boundingBox.minX + this.boundingBox.maxX) / 2.0D; - this.posY = this.boundingBox.minY + (double)this.yOffset - (double)this.ySize; - this.posZ = (this.boundingBox.minZ + this.boundingBox.maxZ) / 2.0D; - - if (!(this instanceof Locomotive) && !(this instanceof EntityTracksBuilder)) { - if ((this.posY - this.prevPosY) < 0) { - norm *= 1.02; - } else if ((this.posY - this.prevPosY) > 0) { - norm *= 0.98; - } - if (norm < 0.01) { - - if ((motionX) < 0 && meta == 1) { - norm += 0.0001; - motionX = Math.copySign(motionX, 1); - } - if ((motionX) > 0 && meta == 3) { - norm += 0.0001; - motionX = Math.copySign(motionX, -1); - } - } - } - this.motionX = Math.copySign(norm, this.motionX); - this.motionY = 0.0D; - this.motionZ = 0.0D; - } - } - protected void moveOnTC90TurnRail(int i, int j, int k, double r, double cx, double cz) { - posY = j + 0.2; - double cpx = posX - cx; - double cpz = posZ - cz; - - double cp_norm = Math.sqrt(cpx * cpx + cpz * cpz); - double vnorm = Math.sqrt(motionX * motionX + motionZ * motionZ); - - double norm_cpx = cpx / cp_norm; //u - double norm_cpz = cpz / cp_norm; //v - - double vx2 = -norm_cpz * vnorm;//-v - double vz2 = norm_cpx * vnorm;//u - - double px2 = posX + motionX; - double pz2 = posZ + motionZ; - - double px2_cx = px2 - cx; - double pz2_cz = pz2 - cz; - - double p2_c_norm = Math.sqrt((px2_cx * px2_cx) + (pz2_cz * pz2_cz)); - - double px2_cx_norm = px2_cx / p2_c_norm; - double pz2_cz_norm = pz2_cz / p2_c_norm; - - double px3 = cx + (px2_cx_norm * r); - double pz3 = cz + (pz2_cz_norm * r); - - double signX = px3 - posX; - double signZ = pz3 - posZ; - vx2 = Math.copySign(vx2, signX); - vz2 = Math.copySign(vz2, signZ); - - double p_corr_x = cx + ((cpx / cp_norm) * r); - double p_corr_z = cz + ((cpz / cp_norm) * r); - - setPosition(p_corr_x, posY + yOffset, p_corr_z); - moveEntity(vx2, 0.0D, vz2); - - motionX = vx2; - motionZ = vz2; - - } - - protected void moveOnTCTwoWaysCrossing(int i, int j, int k, double cx, double cy, double cz, int meta) { - posY = j + 0.2; - if (!(this instanceof Locomotive)) { - int l = MathHelper.floor_double(serverRealRotation * 4.0F / 360.0F + 0.5D) & 3; - if (l == 2 || l == 0){ - moveEntity(motionX, 0.0D, 0.0D); - } else if (l == 1 || l == 3){ - moveEntity(0.0D, 0.0D, motionZ); - } - } - else { - int l = MathHelper.floor_double(rotationYaw * 4.0F / 360.0F + 0.5D) & 3; - if (l == 2 || l == 0){ - moveEntity(motionX, 0.0D, 0.0D); - } - else if (l == 1 || l == 3){ - moveEntity(0.0D, 0.0D, motionZ); - } - //moveEntity(motionX, 0.0D, motionZ); - } - } protected void moveOnTCDiamondCrossing(int i, int j, int k, double cx, double cy, double cz, int meta) { - - int l; - if ((this.bogieLoco == null)) { - l = MathHelper.floor_double(serverRealRotation * 8.0F / 360.0F + 0.5) & 7; - } - - else { - l = MathHelper.floor_double(rotationYaw * 8.0F / 360.0F + 0.5) & 7; - - } - if (l == 0 || l == 4) { - moveEntity(motionX, 0.0D, 0.0D); - } - else if (l == 2 || l == 6) { - moveEntity(0.0D, 0.0D, motionZ); - } - else if (l == 1) { - moveOnTCDiagonal(i, j, k, cx, cz, 5, 1); - } - else if (l == 3){ - moveOnTCDiagonal(i, j, k, cx, cz, 6, 1); - } - else if (l == 5) { - moveOnTCDiagonal(i, j, k, cx, cz, 7, 1); - } - else if (l == 7) { - moveOnTCDiagonal(i, j, k, cx, cz, 4, 1); - } - } - public void limitSpeedOnTCRail() { - railMaxSpeed = 3; - maxSpeed = Math.min(railMaxSpeed, getMaxCartSpeedOnRail()); - maxSpeed = SpeedHandler.handleSpeed(railMaxSpeed, maxSpeed, this); - - if (this.speedLimiter != 0 && speedWasSet) { - //maxSpeed *= this.speedLimiter; - adjustSpeed(maxSpeed, speedLimiter); - } - motionX *= 0.9D; - motionZ *= 0.9D; - - if (motionX < -maxSpeed) { - motionX = -maxSpeed; - } - if (motionX > maxSpeed) { - motionX = maxSpeed; - } - if (motionZ < -maxSpeed) { - motionZ = -maxSpeed; - } - if (motionZ > maxSpeed) { - motionZ = maxSpeed; - } - } - - protected void moveMinecartOffRail(int i, int j, int k) { - motionY -= 0.039999999105930328D; - double d2 = getMaxCartSpeedOnRail(); - if (!onGround) { - d2 = getMaxSpeedAirLateral(); - } - if (motionX < -d2) motionX = -d2; - if (motionX > d2) motionX = d2; - if (motionZ < -d2) motionZ = -d2; - if (motionZ > d2) motionZ = d2; - double moveY = motionY; - if (getMaxSpeedAirVertical() > 0 && motionY > getMaxSpeedAirVertical()) { - moveY = getMaxSpeedAirVertical(); - if (Math.abs(motionX) < 0.3f && Math.abs(motionZ) < 0.3f) { - moveY = 0.15f; - motionY = moveY; - } - } - if (onGround) { - motionX *= 0.5D; - motionY *= 0.5D; - motionZ *= 0.5D; - } - moveEntity(motionX, moveY, motionZ); - if (!onGround) { - motionX *= getDragAir(); - motionY *= getDragAir(); - motionZ *= getDragAir(); - } - } - - - @Override - protected void writeEntityToNBT(NBTTagCompound nbttagcompound) { - super.writeEntityToNBT(nbttagcompound); - nbttagcompound.setDouble("speedLimiter", this.speedLimiter); - nbttagcompound.setFloat("serverRealRotation", this.serverRealRotation); - nbttagcompound.setFloat("yawRotation", this.rotationYaw); - //nbttagcompound.setBoolean("hasSpawnedBogie", this.hasSpawnedBogie); - //nbttagcompound.setBoolean("needsBogieUpdate", this.needsBogieUpdate); - nbttagcompound.setBoolean("firstLoad", this.firstLoad); - nbttagcompound.setFloat("rotation", this.rotation); - nbttagcompound.setBoolean("brake", isBraking); - } - - @Override - protected void readEntityFromNBT(NBTTagCompound nbttagcompound) { - super.readEntityFromNBT(nbttagcompound); - this.speedLimiter = nbttagcompound.getDouble("speedLimiter"); - this.serverRealRotation = nbttagcompound.getFloat("serverRealRotation"); - - if (nbttagcompound.hasKey("yawRotation")){ - rotationYaw = nbttagcompound.getFloat("yawRotation"); - } - //if (Math.abs(this.serverRealRotation) > 178.5f) this.serverRealRotation = Math.copySign(178.5f, this.serverRealRotation); - //this.hasSpawnedBogie = nbttagcompound.getBoolean("hasSpawnedBogie"); - //this.needsBogieUpdate = nbttagcompound.getBoolean("needsBogieUpdate"); - this.firstLoad = nbttagcompound.getBoolean("firstLoad"); - this.rotation = nbttagcompound.getFloat("rotation"); - this.isBraking = nbttagcompound.getBoolean("brake"); - } - - @Override - @SideOnly(Side.CLIENT) - public float getShadowSize() { - return 0.0F; - } - - @Override - public boolean interactFirst(EntityPlayer entityplayer) { - if (super.interactFirst(entityplayer)){ - return true; - } - if (entityplayer.ridingEntity == this){ - return false; - } - - if(lockThisCart(entityplayer.inventory.getCurrentItem(), entityplayer)){ - return true; - } - - playerEntity = entityplayer; - ItemStack itemstack = entityplayer.inventory.getCurrentItem(); - - if (this.getTrainLockedFromPacket()) { - if (!playerEntity.getDisplayName().toLowerCase().equals(this.trainOwner.toLowerCase()) && !canBeRiddenWhileLocked(this)) { - if (!worldObj.isRemote) entityplayer.addChatMessage(new ChatComponentText("Train is locked")); - return true; - } - else if (!playerEntity.getDisplayName().toLowerCase().equals(this.trainOwner.toLowerCase()) && entityplayer.inventory.getCurrentItem() != null && entityplayer.inventory.getCurrentItem().getItem() instanceof ItemDye && (this instanceof Locomotive)) { - if (!worldObj.isRemote) entityplayer.addChatMessage(new ChatComponentText("Train is locked")); - return true; - } - - } - - if (itemstack != null && itemstack.getItem() instanceof ItemWrench && this instanceof Locomotive && entityplayer.isSneaking() && !worldObj.isRemote) { - destination = ""; - entityplayer.addChatMessage(new ChatComponentText("Destination reset")); - return true; - } - if (MinecraftForge.EVENT_BUS.post(new MinecartInteractEvent(this, entityplayer))) { - entityplayer.addChatMessage(new ChatComponentText("test")); } - if (itemstack != null && itemstack.hasTagCompound() && getTicketDestination(itemstack) != null && getTicketDestination(itemstack).length() > 0) { - this.setDestination(itemstack); - /** - * ticket are single use but golden ones are multiple uses - */ - ItemStack ticket = GameRegistry.findItemStack("Railcraft", "railcraft.routing.ticket", 1); - if (ticket != null && ticket.getItem() != null && itemstack.getItem() == ticket.getItem()) { - if (--itemstack.stackSize == 0) { - entityplayer.inventory.setInventorySlotContents(entityplayer.inventory.currentItem, null); - } - } - return true; - } - /** - * If the color is valid for the cart, then change it and reduce - * itemstack size - */ - if (itemstack != null && itemstack.getItem() instanceof ItemDye) { - if (this.getSpec().getLiveries().size() > 0) { - for (int i = 0; i < this.getSpec().getLiveries().size(); i++) { - if (itemstack.getItemDamage() == getColorFromString(this.getSpec().getLiveries().get(i))) { - this.setColor(this.getSpec().getLiveries().get(i)); - itemstack.stackSize--; - - //if (!worldObj.isRemote)PacketHandler.sendPacketToClients(PacketHandler.sendStatsToServer(10,this.uniqueID,trainName ,trainType, this.trainOwner, this.getColorAsString(itemstack.getItemDamage()), (int)posX, (int)posY, (int)posZ),this.worldObj, (int)posX,(int)posY,(int)posZ, 12.0D); - - return true; - } - } - if (worldObj.isRemote && ConfigHandler.SHOW_POSSIBLE_COLORS) { - String concatColors = ": "; - for (int t = 0; t < this.getSpec().getLiveries().size(); t++) { - concatColors = concatColors.concat(this.getSpec().getLiveries().get(t) + ", "); - } - entityplayer.addChatMessage(new ChatComponentText("Possible colors" + concatColors)); - entityplayer.addChatMessage(new ChatComponentText("To paint, click me with the right dye")); - return true; - } - } - else if (this.getSpec().getLiveries() != null || this.getSpec().getLiveries().size() == 0) { - entityplayer.addChatMessage(new ChatComponentText("No other colors available")); - } - } - if ((trainsOnClick.onClickWithStake(this, itemstack, playerEntity, worldObj))) { - entityplayer.addChatMessage(new ChatComponentText("test")); - return true; } - - if (itemstack != null && itemstack.getItem() instanceof ItemPaintbrushThing && entityplayer.isSneaking()) { - if (this.getSpec().getLiveries().size() > 0) { - if (scrollPosition > this.getSpec().getLiveries().size() - 1) { - this.setColor(getSpec().getLiveries().get(0)); - scrollPosition = 0; - } else { - this.setColor(getSpec().getLiveries().get(scrollPosition)); - scrollPosition++; - - } - } - - if (this.getSpec().getLiveries().size() == 0) { - entityplayer.addChatMessage(new ChatComponentText("There are no other colors available.")); - } - return true; - } - - return worldObj.isRemote; - } - - @SideOnly(Side.CLIENT) - private void soundUpdater() { - if (FMLClientHandler.instance().getClient() != null) { - this.theSoundManager = FMLClientHandler.instance().getClient().getSoundHandler(); - } - if (FMLClientHandler.instance().getClient() != null && this.theSoundManager != null && FMLClientHandler.instance().getClient().thePlayer != null) { - if (sndUpdater != null) { - sndUpdater.update(FMLClientHandler.instance().getClient().getSoundHandler(), this, FMLClientHandler.instance().getClient().thePlayer); - } - } - } - - /** - * Applies a velocity to each of the entities pushing them away from each - * other. Args: entity - */ - @Override - public void applyEntityCollision(Entity par1Entity) { - //if(par1Entity instanceof EntityPlayer)return; - if (this.bogieLoco == null) return; - - if (par1Entity == this){ - return; - } - if (par1Entity instanceof EntityBogie) { - if (((EntityBogie) par1Entity).entityMainTrainID == this.uniqueID) return; - } - if (par1Entity == bogieLoco){ return;} - if (par1Entity instanceof EntityRollingStock && ((EntityRollingStock) par1Entity).bogieLoco != null) { - if (par1Entity == ((EntityRollingStock) par1Entity).bogieLoco) return; - } - - MinecraftForge.EVENT_BUS.post(new MinecartCollisionEvent(this, par1Entity)); - if (getCollisionHandler() != null) { - getCollisionHandler().onEntityCollision(this, par1Entity); - return; - } - if (!this.worldObj.isRemote) { - if (par1Entity != this.riddenByEntity) { - /* - * if (par1Entity instanceof EntityLiving && !(par1Entity - * instanceof EntityPlayer) && !(par1Entity instanceof - * EntityIronGolem) && canBeRidden() && this.motionX * - * this.motionX + this.motionZ * this.motionZ > 0.01D && - * this.riddenByEntity == null && par1Entity.ridingEntity == - * null) { par1Entity.mountEntity(this); } - */ - /* - * if ((this instanceof EntityStockCar)) { if - * (!(unAutorizedMob(par1Entity, this)) && (par1Entity - * instanceof EntityLiving) && !(par1Entity instanceof - * EntityPlayer)) { if (this.canBeRidden() && - * this.riddenByEntity == null && par1Entity.ridingEntity == - * null) { par1Entity.mountEntity(this); } } } - */ - /* - * if(this.isAttached)return; if(par1Entity instanceof - * EntityRollingStock && - * ((EntityRollingStock)par1Entity).isAttached)return; - * if(par1Entity instanceof EntityBogie){ - * if(((EntityBogie)par1Entity).entityMainTrain!=null && - * ((EntityBogie)par1Entity).entityMainTrain.isAttached)return; - * } - */ - double d0 = par1Entity.posX - this.posX; - double d1 = par1Entity.posZ - this.posZ; - double distancesX[] = new double[4]; - double distancesZ[] = new double[4]; - double euclidian[] = new double[4]; - if (par1Entity instanceof EntityRollingStock) { - EntityRollingStock entity = (EntityRollingStock)par1Entity; - if (((EntityRollingStock) par1Entity).bogieLoco != null || this.bogieLoco != null) { - - if (((EntityRollingStock) par1Entity).bogieLoco != null && this.bogieLoco == null) { - distancesX[0] = entity.posX - this.posX; - distancesZ[0] = entity.posZ - this.posZ; - euclidian[0] = MathHelper.sqrt_double((distancesX[0] * distancesX[0]) + (distancesZ[0] * distancesZ[0])); - distancesX[1] = entity.bogieLoco.posX - this.posX; - distancesZ[1] = entity.bogieLoco.posZ - this.posZ; - euclidian[1] = MathHelper.sqrt_double((distancesX[1] * distancesX[1]) + (distancesZ[1] * distancesZ[1])); - distancesX[2] = 100; - distancesZ[2] = 100; - euclidian[2] = MathHelper.sqrt_double((distancesX[2] * distancesX[2]) + (distancesZ[2] * distancesZ[2])); - distancesX[3] = 100; - distancesZ[3] = 100; - euclidian[3] = MathHelper.sqrt_double((distancesX[3] * distancesX[3]) + (distancesZ[3] * distancesZ[3])); - } - else if (((EntityRollingStock) par1Entity).bogieLoco == null && this.bogieLoco != null) { - distancesX[0] = entity.posX - this.posX; - distancesZ[0] = entity.posZ - this.posZ; - euclidian[0] = MathHelper.sqrt_double((distancesX[0] * distancesX[0]) + (distancesZ[0] * distancesZ[0])); - distancesX[1] = entity.posX - this.bogieLoco.posX; - distancesZ[1] = entity.posZ - this.bogieLoco.posZ; - euclidian[1] = MathHelper.sqrt_double((distancesX[1] * distancesX[1]) + (distancesZ[1] * distancesZ[1])); - distancesX[2] = 100; - distancesZ[2] = 100; - euclidian[2] = MathHelper.sqrt_double((distancesX[2] * distancesX[2]) + (distancesZ[2] * distancesZ[2])); - distancesX[3] = 100; - distancesZ[3] = 100; - euclidian[3] = MathHelper.sqrt_double((distancesX[3] * distancesX[3]) + (distancesZ[3] * distancesZ[3])); - } - else { - distancesX[0] = entity.posX - this.posX; - distancesZ[0] = entity.posZ - this.posZ; - euclidian[0] = MathHelper.sqrt_double((distancesX[0] * distancesX[0]) + (distancesZ[0] * distancesZ[0])); - distancesX[1] = entity.bogieLoco.posX - this.posX; - distancesZ[1] = entity.bogieLoco.posZ - this.posZ; - euclidian[1] = MathHelper.sqrt_double((distancesX[1] * distancesX[1]) + (distancesZ[1] * distancesZ[1])); - distancesX[2] = entity.posX - this.bogieLoco.posX; - distancesZ[2] = entity.posZ - this.bogieLoco.posZ; - euclidian[2] = MathHelper.sqrt_double((distancesX[2] * distancesX[2]) + (distancesZ[2] * distancesZ[2])); - distancesX[3] = entity.bogieLoco.posX - this.bogieLoco.posX; - distancesZ[3] = entity.bogieLoco.posZ - this.bogieLoco.posZ; - euclidian[3] = MathHelper.sqrt_double((distancesX[3] * distancesX[3]) + (distancesZ[3] * distancesZ[3])); - } - double min = euclidian[0]; - int minIndex = 0; - for (int k = 0; k < euclidian.length; k++) { - if (Math.abs(euclidian[k]) < Math.abs(min)) { - min = euclidian[k]; - minIndex = k; - } - } - d0 = distancesX[minIndex]; - d1 = distancesZ[minIndex]; - } - } - double d2 = d0 * d0 + d1 * d1; - - if ((par1Entity instanceof AbstractTrains && d2 <= ((AbstractTrains) par1Entity).getLinkageDistance((EntityMinecart) par1Entity) * 0.7 && d2 >= 9.999999747378752E-5D) || (par1Entity instanceof EntityBogie && ((EntityBogie) par1Entity).entityMainTrain != null && d2 <= ((EntityBogie) par1Entity).entityMainTrain.getLinkageDistance((EntityMinecart) par1Entity) * 0.7 && d2 >= 9.999999747378752E-5D) || (!(par1Entity instanceof AbstractTrains) && d2 >= 9.999999747378752E-5D))// >= 9.999999747378752E-5D) - { - d2 = MathHelper.sqrt_double(d2); - if (d0 != 0) { - d0 /= d2; - } else { - d2=0; - } - if (d1 != 0) { - d1 /= d2; - } else { - d2=0; - } - - if (d2 > 1.0D) { - d2 = 1.0D; - } - - d0 *= d2; - d1 *= d2; - d0 *= 0.10000000149011612D; - d1 *= 0.10000000149011612D; - d0 *= 1.0F - this.entityCollisionReduction; - d1 *= 1.0F - this.entityCollisionReduction; - d0 *= 0.5D; - d1 *= 0.5D; - - if ((par1Entity instanceof EntityMinecart ) && !this.isAttached) { - - Vec3 vec31 = Vec3.createVectorHelper(MathHelper.cos(this.rotationYaw * (float) Math.PI / 180.0F), 0.0D, MathHelper.sin(this.rotationYaw * (float) Math.PI / 180.0F)).normalize(); - - if (Math.abs(Vec3.createVectorHelper(par1Entity.posX - this.posX, 0.0D,par1Entity.posZ - this.posZ).normalize().dotProduct(vec31)) < 0.800000011920929D) { return; } - - double d9 = par1Entity.motionX + this.motionX; - double d8 = par1Entity.motionZ + this.motionZ; - - if ((par1Entity instanceof Locomotive && !isPoweredCart()) || (((EntityMinecart) par1Entity).isPoweredCart()) && !isPoweredCart()) { - - this.motionX *= 0.20000000298023224D; - this.motionZ *= 0.20000000298023224D; - this.addVelocity(par1Entity.motionX - d0, 0.0D, par1Entity.motionZ - d1); - if (!(par1Entity instanceof Locomotive)) { - par1Entity.motionX *= 0.949999988079071D; - par1Entity.motionZ *= 0.949999988079071D; - } - } - else if ((!(par1Entity instanceof Locomotive) && isPoweredCart()) || (!((EntityMinecart) par1Entity).isPoweredCart() && isPoweredCart())) { - if (par1Entity instanceof EntityBogie && ((EntityBogie) par1Entity).entityMainTrain != null) { - this.motionX *= 0.2; - this.motionZ *= 0.2; - this.addVelocity(this.motionX + d0 * 3, 0.0D, this.motionZ + d1 * 3); - if (this instanceof Locomotive && ((EntityBogie) par1Entity).entityMainTrain instanceof Locomotive) { - this.motionX *= 0; - this.motionZ *= 0; - ((EntityBogie) par1Entity).entityMainTrain.motionX *= 0; - ((EntityBogie) par1Entity).entityMainTrain.motionZ *= 0; - } - } - else { - par1Entity.motionX *= 0.20000000298023224D; - par1Entity.motionZ *= 0.20000000298023224D; - par1Entity.addVelocity(this.motionX + d0, 0.0D, this.motionZ + d1); - } - if (!(this instanceof Locomotive)) { - this.motionX *= 0.949999988079071D; - this.motionZ *= 0.949999988079071D; - } - - } - else { - d9 *= 0.4D; - d8 *= 0.4D; - - if (par1Entity instanceof EntityBogie || par1Entity instanceof Locomotive) { - d9 *= -1;//-3 - d8 *= -1;//-3 - } - - this.motionX *= 0.20000000298023224D; - this.motionZ *= 0.20000000298023224D; - this.addVelocity(d9 - d0, 0.0D, d8 - d1); - if (par1Entity instanceof EntityBogie) { - //d7/=3; - //d8/=3; - d9 *= 0.333333333333; - d8 *= 0.333333333333; - } - - par1Entity.motionX *= 0.20000000298023224D; - par1Entity.motionZ *= 0.20000000298023224D; - par1Entity.addVelocity(d9 + d0, 0.0D, d8 + d1); - - } - } - else { - - if (!(par1Entity instanceof EntityItem) && !(par1Entity instanceof EntityPlayer && this instanceof Locomotive) && !(par1Entity instanceof EntityLiving) && !(par1Entity instanceof EntityBogie)) { - this.addVelocity(-d0 * 2, 0.0D, -d1 * 2); - } - else if ((par1Entity instanceof EntityBogie)) { - this.addVelocity(-d0, 0.0D, -d1); - }/* - * else if(par1Entity instanceof EntityBogie){ - * par1Entity.addVelocity(-d0, 0.0D, -d1); - * - * } - */ - //if(!(par1Entity instanceof EntityPlayer))par1Entity.addVelocity(d0 / 4.0D, 0.0D, d1 / 4.0D); - //par1Entity.setVelocity(0, 0.0D, 0); - par1Entity.addVelocity(d0 * 2, 0.0D, d1 * 2 ); - /* - * if(this.bogieUtility[0]!=null && - * this.bogieUtility[1]!=null){ - * this.bogieUtility[0].addVelocity(-d0*2, 0.0D, -d1*2); - * this.bogieUtility[1].addVelocity(-d0*2, 0.0D, -d1*2); - * } - */ - - if (par1Entity instanceof EntityPlayer) { - - MovingObjectPosition movingobjectposition = new MovingObjectPosition(par1Entity); - if (movingobjectposition.entityHit != null) { - // float f1 = MathHelper.sqrt_double(this.motionX * this.motionX + - // this.motionY * this.motionY + this.motionZ * this.motionZ); - // float f7 = MathHelper.sqrt_double(this.motionX * this.motionX + - // this.motionZ * this.motionZ); - //movingobjectposition.entityHit.setVelocity(-par1Entity.motionX, 0, -par1Entity.motionZ); - //movingobjectposition.entityHit.addVelocity(-((par1Entity.motionX * (double) (Math.abs(this.motionX+0.01)) * 2.60000002384185791D)) / (double) f7, 0.00000000000000001D, -(((par1Entity.motionZ * (double) (Math.abs(this.motionZ+0.01)) * 2.60000002384185791D)) / (double) f7)); - //movingobjectposition.entityHit.addVelocity(-((Math.abs(this.motionX) * (double) 1 * 0.0260000002384185791D)) / (double) f7, 0.00000000000000001D, -(((Math.abs(this.motionZ) * (double) 1 * 0.0260000002384185791D)) / (double) f7)); - par1Entity.velocityChanged = true; - } - } - - if (par1Entity instanceof EntityLiving) { - float f1 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ) *60; - //f1 *= 6;//ratio - //f1 *= 10;//to get speed in "pseudo m/s" - if ((f1 * 3.6) < 35) {//if speed is smaller than 35km/h then don't do any damage but push entities - return; - } - int j1 = (int) Math.ceil((f1) * ((par1Entity instanceof EntityCreeper)?100:1)); - par1Entity.attackEntityFrom(TrainsDamageSource.ranOver, j1); - } - } - } + if (train.getTrains() == null && train.getTrains().isEmpty()) { + return; } - } - } - - /** - * To disable linking altogether, return false here. - * - * @return True if this cart is linkable. - */ - @Override - public boolean isLinkable() { - return true; - } - - /** - * Check called when attempting to link carts. - * - * @param cart - * The cart that we are attempting to link with. - * @return True if we can link with this cart. - */ - @Override - public boolean canLinkWithCart(EntityMinecart cart) { - return true; - } - - /** - * Returns true if this cart has two links or false if it can only link with - * one cart. - * - * @return True if two links - */ - @Override - public boolean hasTwoLinks() { - return true; - } - - /** - * Gets the distance at which this cart can be linked. This is called on - * both carts and added together to determine how close two carts need to be - * for a successful link. Default = LinkageManager.LINKAGE_DISTANCE - * - * @param cart - * The cart that you are attempting to link with. - * @return The linkage distance - */ - @Override - public float getLinkageDistance(EntityMinecart cart) { - return this.getOptimalDistance(cart) + 2.4F; - } - - /** - * Gets the optimal distance between linked carts. This is called on both - * carts and added together to determine the optimal rest distance between - * linked carts. The LinkageManager will attempt to maintain this distance - * between linked carts at all times. Default = - * LinkageManager.OPTIMAL_DISTANCE - * ETERNAL's NOTE: because this is forcing the value of EntityMinecart, it's actually a call to the super but using this instance. Not actually an infinate look like compiler thinks. - * - * @param cart - * The cart that you are linked with. - * @return The optimal rest distance - */ - @Override - public float getOptimalDistance(EntityMinecart cart) { - return this.getOptimalDistance(cart); - } - - /** - * Return false if linked carts have no effect on the velocity of this cart. - * Use carefully, if you link two carts that can't be adjusted, it will - * behave as if they are not linked. - * - * @param cart - * The cart doing the adjusting. - * @return Whether the cart can have its velocity adjusted. - */ - @Override - public boolean canBeAdjusted(EntityMinecart cart) { - return true; - } - - @Override - public void onLinkCreated(EntityMinecart cart) { - linked = true; - } - - /** - * Called when a link is broken (usually). - * - * @param cart - * The cart we were linked with. - */ - @Override - public void onLinkBroken(EntityMinecart cart) { - linked = false; - } - - @Override - public boolean isLinked() { - return linked; - } - - /** - * This function returns an ItemStack that represents this cart. This should - * be an ItemStack that can be used by the player to place the cart. This is - * the item that was registered with the cart via the registerMinecart - * function, but is not necessary the item the cart drops when destroyed. - * - * @return An ItemStack that can be used to place the cart. - */ - @Override - public ItemStack getCartItem() { - return getItemsDropped().get(0); - } - - /** - * Returns true if this cart is self propelled. - * - * @return True if powered. - */ - @Override - public boolean isPoweredCart() { - return (isLocomotive()); - } - - /** - * Returns true if this cart is a storage cart Some carts may have - * inventories but not be storage carts and some carts without inventories - * may be storage carts. - * - * @return True if this cart should be classified as a storage cart. - */ - public boolean isStorageCart() { - return (isFreightCart()); - } - - /** - * Returns true if this cart can be ridden by an Entity. - * - * @return True if this cart can be ridden. - */ - @Override - public boolean canBeRidden() { - return ((isLocomotive() || isPassenger() || isWorkCart())); - } - - /** - * Returns true if this cart can currently use rails. This function is - * mainly used to gracefully detach a minecart from a rail. - * - * @return True if the minecart can use rails. - */ - @Override - public boolean canUseRail() { - return canUseRail; - } - - /** - * Set whether the minecart can use rails. This function is mainly used to - * gracefully detach a minecart from a rail. - * - * @param use - * Whether the minecart can currently use rails. - */ - @Override - public void setCanUseRail(boolean use) { - canUseRail = use; - } - - /** - * Return false if this cart should not call IRail.onMinecartPass() and - * should ignore Powered Rails. - * - * @return True if this cart should call IRail.onMinecartPass(). - */ - @Override - public boolean shouldDoRailFunctions() { - return true; - } - - protected void applyDragAndPushForces() { - motionX *= getDragAir(); - motionY *= 0.0D; - motionZ *= getDragAir(); - } - - /** - * Carts should return their drag factor here - * - * @return The drag rate. - */ - @Override - public double getDragAir() { - return 0.98D; - } - - @Override - public void moveMinecartOnRail(int i, int j, int k, double d) { - Block id = worldObj.getBlock(i, j, k); - if (!BlockRailBase.func_150051_a(id)) { return; } - railMaxSpeed = ((BlockRailBase) id).getRailMaxSpeed(worldObj, this, i, j, k); - maxSpeed = Math.max(railMaxSpeed, getMaxCartSpeedOnRail()); - maxSpeed = SpeedHandler.handleSpeed(railMaxSpeed, maxSpeed, this); - if (this.speedLimiter != 0 && speedWasSet) { - //maxSpeed *= this.speedLimiter; - adjustSpeed(maxSpeed, speedLimiter); - } - if ((!isLocomotive())) { - motionX *= 0.99D; - motionZ *= 0.99D; - } - else { - motionX *= 1D; - motionZ *= 1D; - } - if (motionX < -maxSpeed) { - motionX = -maxSpeed; - } - if (motionX > maxSpeed) { - motionX = maxSpeed; - } - if (motionZ < -maxSpeed) { - motionZ = -maxSpeed; - } - if (motionZ > maxSpeed) { - motionZ = maxSpeed; - } - moveEntity(motionX, 0.0D, motionZ); - } - - public void adjustSpeed(float maxSpeed, double limiter) { - float targetSpeed = (float) (maxSpeed * limiter); - float targetSpeedX = (float) Math.copySign(targetSpeed, motionX); - float targetSpeedZ = (float) Math.copySign(targetSpeed, motionZ); - if (motionX > targetSpeedX && motionX != 0) motionX -= 0.01; - if (motionZ > targetSpeedZ && motionZ != 0) motionZ -= 0.01; - if (motionX < targetSpeedX && motionX != 0) motionX += 0.01; - if (motionZ < targetSpeedZ && motionZ != 0) motionZ += 0.01; - if ((Math.abs(motionX) < Math.abs(targetSpeedX) + 0.01) && (Math.abs(motionX) > Math.abs(targetSpeedX) - 0.01)) { - speedWasSet = false; - } - if ((Math.abs(motionZ) < Math.abs(targetSpeedZ) + 0.01) && (Math.abs(motionZ) > Math.abs(targetSpeedZ) - 0.01)) { - speedWasSet = false; - } - } - - protected void adjustSlopeVelocities(int i1) { - if (this instanceof Locomotive) { return; } - double d4 = -0.002D;//0.0078125D - if (i1 == 2) { - motionX -= d4; - } - else if (i1 == 3) { - motionX += d4; - } - else if (i1 == 4) { - motionZ += d4; - } - else if (i1 == 5) { - motionZ -= d4; - } - } - - public boolean isUseableByPlayer(EntityPlayer entityplayer) { - return (!isDead && entityplayer.getDistanceSqToEntity(this) <= 300D); - } - - /** - * Returns the carts max speed. Carts going faster than 1.1 cause issues - * with chunk loading. This value is compared with the rails max speed to determine - * the carts current max speed. A normal rails max speed is 0.4. - * - * @return Carts max speed. - */ - @Override - public float getMaxCartSpeedOnRail() { - return maxSpeed; - } - - @Override - public float getMaxSpeedAirLateral() { - return maxSpeedAirLateral; - } - - @Override - public void setMaxSpeedAirLateral(float value) { - maxSpeedAirLateral = value; - } - - @Override - public float getMaxSpeedAirVertical() { - return maxSpeedAirVertical; - } - - @Override - public void setMaxSpeedAirVertical(float value) { - maxSpeedAirVertical = value; - } - - @Override - public void setDragAir(double value) { - dragAir = value; - } - - @Override - public boolean canOverheat() { - return false; - } - - @Override - public int getOverheatTime() { - return 0; - } - - /** - * returns the middle of the overheat bar in the HUD - * - */ - public int getAverageOverheat() { - return (this.getOverheatTime() + 30) / 2; - } - - /** - * client-server communication - */ - public void setOverheatLevel(int overheatLevel) { - this.overheatLevel = overheatLevel; - this.dataWatcher.updateObject(20, overheatLevel); - } - - /** - * client-server communication - * - */ - public int getOverheatLevel() { - return (this.dataWatcher.getWatchableObjectInt(20)); - } - - /** - * @see SpeedHandler description in SpeedHandler - */ - public double convertSpeed(Locomotive entity) { - double speed = entity.getCustomSpeed();// speed in m/s - if (ConfigHandler.REAL_TRAIN_SPEED) { - speed /= 2;// applying ratio - } - else { - speed /= 6; - } - speed /= 10; - return speed; - } - - /** - * Used in SoundUpdaterRollingStock - * - */ - public int getMotionXClient() { - return (this.dataWatcher.getWatchableObjectInt(14)); - } - - /** - * Used in SoundUpdaterRollingStock - * - */ - public int getMotionZClient() { - return (this.dataWatcher.getWatchableObjectInt(21)); - } - - @Override - protected void func_145775_I() { - int var1 = MathHelper.floor_double(this.boundingBoxSmall.minX + 0.001D); - int var2 = MathHelper.floor_double(this.boundingBoxSmall.minY + 0.001D); - int var3 = MathHelper.floor_double(this.boundingBoxSmall.minZ + 0.001D); - int var4 = MathHelper.floor_double(this.boundingBoxSmall.maxX - 0.001D); - int var5 = MathHelper.floor_double(this.boundingBoxSmall.maxY - 0.001D); - int var6 = MathHelper.floor_double(this.boundingBoxSmall.maxZ - 0.001D); - - if (this.worldObj.checkChunksExist(var1, var2, var3, var4, var5, var6)) { - for (int var7 = var1; var7 <= var4; ++var7) { - for (int var8 = var2; var8 <= var5; ++var8) { - for (int var9 = var3; var9 <= var6; ++var9) { - Block var10 = this.worldObj.getBlock(var7, var8, var9); - - if (var10 != null) { - var10.onEntityCollidedWithBlock(this.worldObj, var7, var8, var9, this); - } - } + for (int i2 = 0; i2 < train.getTrains().size(); i2++) { + if (train.getTrains().get(i2) instanceof Locomotive) { + train.getTrains().get(i2).cartLinked1 = null; + train.getTrains().get(i2).Link1 = 0; + train.getTrains().get(i2).cartLinked2 = null; + train.getTrains().get(i2).Link2 = 0; } - } - } - } - - private void setBoundingBoxSmall(double par1, double par3, double par5, float width, float height) { - float var7 = width * 0.5F; - this.boundingBoxSmall.setBounds(par1 - var7, par3 - this.yOffset + this.ySize, par5 - var7, par1 + var7, par3 - this.yOffset + this.ySize + height, par5 + var7); - } - - public float getYaw() { - return this.rotationYaw; - } - - public float getPitch() { - return this.rotationPitch; - } - - @Override - public int getMinecartType() { - return 0; - } - - @Override - public List getItemsDropped() { - List items = new ArrayList(); - TrainRecord train = Traincraft.instance.traincraftRegistry.getTrainRecord(this.getClass()); - if (train != null) { - items.add(ItemRollingStock.setPersistentData(new ItemStack(train.getItem()), this,this.getUniqueTrainID(),trainCreator, trainOwner, getColor())); - return items; - } - return null; - } - - @SideOnly(Side.CLIENT) - public Vec3 renderY(double par1, double par3, double par5, double par7) { - int i = MathHelper.floor_double(par1); - int j = MathHelper.floor_double(par3); - int k = MathHelper.floor_double(par5); - - if (worldObj.getBlock(i, j - 1, k) == BlockIDs.tcRail.block || worldObj.getBlock(i, j - 1, k) == BlockIDs.tcRailGag.block) { - --j; - } else if (worldObj.getBlock(i, j + 1, k) == BlockIDs.tcRail.block || worldObj.getBlock(i, j + 1, k) == BlockIDs.tcRailGag.block){ - j++; - } - Block l = this.worldObj.getBlock(i, j, k); - int i1; - if (l == BlockIDs.tcRail.block || l == BlockIDs.tcRailGag.block) { - i1 = worldObj.getBlockMetadata(i, j, k); - if (i1 == 2){ i1 = 0;} - else if (i1 == 3){ i1 = 1;} - } - else { - return null; - } - if (l != BlockIDs.tcRail.block && l != BlockIDs.tcRailGag.block) { - par3 = j; - - if (i1 >= 2 && i1 <= 5) { - par3 = j + 1; - } - } - else if (l == BlockIDs.tcRail.block || l == BlockIDs.tcRailGag.block) { - TileEntity tile = worldObj.getTileEntity(i, j, k); - if (tile != null && tile instanceof TileTCRail) { - if (((TileTCRail) tile).getType() != null && !ItemTCRail.isTCSlopeTrack((TileTCRail) tile)) { - par3 = j; + if ((train.getTrains().get(i2)) != this) { + if (train != null && train.getTrains() != null && train.getTrains().get(i2) != null && train.getTrains().get(i2).train != null && train.getTrains().get(i2).train.getTrains() != null) + train.getTrains().get(i2).train.getTrains().clear(); } - } else if (tile != null && tile instanceof TileTCRailGag) { - int xOrigin = ((TileTCRailGag) tile).originX; - int yOrigin = ((TileTCRailGag) tile).originY; - int zOrigin = ((TileTCRailGag) tile).originZ; - TileEntity tileOrigin = worldObj.getTileEntity(xOrigin, yOrigin, zOrigin); - if (tileOrigin != null && (tileOrigin instanceof TileTCRail) && ((TileTCRail) tileOrigin).getType() != null && !ItemTCRail.isTCSlopeTrack((TileTCRail) tileOrigin)) { - par3 = j; - } - } - } - int[][] aint = matrix[i1]; - double d4 = aint[1][0] - aint[0][0]; - double d5 = aint[1][2] - aint[0][2]; - double d6 = Math.sqrt(d4 * d4 + d5 * d5); - d4 /= d6; - d5 /= d6; - par1 += d4 * par7; - par5 += d5 * par7; - - if (l != BlockIDs.tcRail.block && l != BlockIDs.tcRailGag.block) { - if (aint[0][1] != 0 && MathHelper.floor_double(par1) - i == aint[0][0] && MathHelper.floor_double(par5) - k == aint[0][2]) { - par3 += aint[0][1]; } - else if (aint[1][1] != 0 && MathHelper.floor_double(par1) - i == aint[1][0] && MathHelper.floor_double(par5) - k == aint[1][2]) { - par3 += aint[1][1]; - } - } - return this.func_70489_a(par1, par3, par5); - } - - //private int renderTicks; - public Vec3 yVector(double par1, double par3, double par5) { - int i = MathHelper.floor_double(par1); - int j = MathHelper.floor_double(par3); - int k = MathHelper.floor_double(par5); - if (worldObj.getBlock(i, j - 1, k) == BlockIDs.tcRail.block || worldObj.getBlock(i, j - 1, k) == BlockIDs.tcRailGag.block) { - --j; - } else if (worldObj.getBlock(i, j + 1, k) == BlockIDs.tcRail.block || worldObj.getBlock(i, j + 1, k) == BlockIDs.tcRailGag.block){ - j++; - } - - Block l = this.worldObj.getBlock(i, j, k); - int i1 = 0; - - /* - * boolean shouldIgnoreYCoord = false; TileEntity tile = - * worldObj.getBlockTileEntity(i, j, k); if(tile!=null && tile - * instanceof TileTCRail){ if(((TileTCRail)tile).getType()!=null && - * ((TileTCRail - * )tile).getType().equals(TrackTypes.MEDIUM_SLOPE.getLabel())){ - * shouldIgnoreYCoord = true; } } if(tile!=null && tile instanceof - * TileTCRailGag){ int xOrigin = ((TileTCRailGag)tile).originX; int - * yOrigin = ((TileTCRailGag)tile).originY; int zOrigin = - * ((TileTCRailGag)tile).originZ; TileEntity tileOrigin = - * worldObj.getBlockTileEntity(xOrigin, yOrigin, zOrigin); - * if(tileOrigin!=null && (tileOrigin instanceof TileTCRail) && - * ((TileTCRail)tileOrigin).getType()!=null && - * ((TileTCRail)tileOrigin).getType - * ().equals(TrackTypes.MEDIUM_SLOPE.getLabel())){ shouldIgnoreYCoord = - * true; } } - */ - if (l == BlockIDs.tcRail.block || l == BlockIDs.tcRailGag.block) { - //par3 = (double) j; - int[][] aint = matrix[i1]; - double d3 = 0.0D; - double d4 = i + 0.5D + aint[0][0] * 0.5D; - double d6 = k + 0.5D + aint[0][2] * 0.5D; - double d10 = (i + 0.5D + aint[1][0] * 0.5D) - d4; - double d12 = (k + 0.5D + aint[1][2] * 0.5D) - d6; - - if (d10 == 0.0D) { - d3 = par5 - k; - } - else if (d12 == 0.0D) { - d3 = par1 - i; - } - else { - double d13 = par1 - d4; - double d14 = par5 - d6; - d3 = (d13 * d10 + d14 * d12) * 2.0D; - } - return Vec3.createVectorHelper(d4 + d10 * d3, par3, d6 + d12 * d3); - } - else { - return null; } - } - public ItemStack[] getInventory(){return null;} + if (train != null && train.getTrains().size() <= 1) { + train.getTrains().clear(); + allTrains.remove(train); + } + + if (this.bogieLoco != null) { + bogieLoco.setDead(); + bogieLoco.isDead = true; + } + + isDead = true; + Side side = FMLCommonHandler.instance().getEffectiveSide(); + if (side == Side.CLIENT) { + soundUpdater(); + } + } + + @Override + public boolean canBeCollidedWith() { + return !isDead; + } + + public void pressKey(int i) { + } + + /** + * gets packet from server and distribute for GUI handles motion + * + * @param i + */ + public void keyHandlerFromPacket(int i) { + this.pressKey(i); + } + + private void handleTrain() { + if (this instanceof Locomotive && train != null) { + for (int i2 = 0; i2 < train.getTrains().size(); i2++) { + if (RailTools.isCartLockedDown(train.getTrains().get(i2))) { + cartLocked = true; + /** If something in the train is locked down */ + ticksSinceHeld = 40; + if (!((Locomotive) this).canBeAdjusted) { + ((Locomotive) this).setCanBeAdjusted(true); + + } + } + cartLocked = false; + } + if (ticksSinceHeld > 0 && !cartLocked) { + ticksSinceHeld--; + } + if (ticksSinceHeld <= 0 && !cartLocked) { + if (((Locomotive) this).canBeAdjusted && !((Locomotive) this).canBePulled) { + ((Locomotive) this).setCanBeAdjusted(false); + + } + } + } + + /* + * if(train!=null && RailTools.isCartLockedDown((EntityMinecart) this)){ + * train.setTicksSinceHeld(100); train.setCartLocked(true); for(int + * i2=0;i2 1) { + if (this instanceof Locomotive && !((Locomotive) this).canBeAdjusted && !this.getDestination().isEmpty()) { + for (int i = 0; i < train.getTrains().size(); i++) { + if (train.getTrains().get(i) != null && !train.getTrains().get(i).equals(this)) + train.getTrains().get(i).destination = this.getDestination(); + CartTools.setCartOwner(train.getTrains().get(i), CartTools.getCartOwner(this)); + } + } + } + /** + * Resets destination + */ + else if (!(this instanceof Locomotive)) { + destination = ""; + } + } + + @Override + @SideOnly(Side.CLIENT) + /** + * Sets the position and rotation. Only difference from the other one is no bounding on the rotation. Args: posX, + * posY, posZ, yaw, pitch + */ + public void setPositionAndRotation2(double par1, double par3, double par5, float par7, float par8, int par9) { + this.rollingX = par1; + this.rollingY = par3; + this.rollingZ = par5; + this.rollingPitch = par8; + this.rollingturnProgress = par9 + 2; + this.motionX = this.rollingVelocityX; + this.motionY = this.rollingVelocityY; + this.motionZ = this.rollingVelocityZ; + } + + List list = null; + Block l; + + @Override + public void onUpdate() { + + if (addedToChunk && !this.hasSpawnedBogie && this.getSpec().getBogieLocoPosition() != 0) { + + if (bogieLoco == null) { + this.bogieShift = this.getSpec().getBogieLocoPosition(); + this.bogieLoco = new EntityBogie(worldObj, + (posX - Math.cos(this.serverRealRotation * TraincraftUtil.radian) * this.bogieShift), + posY + ((Math.tan(this.renderPitch * TraincraftUtil.radian) * -this.bogieShift) + getMountedYOffset() - 0.1d), + (posZ - Math.sin(this.serverRealRotation * TraincraftUtil.radian) * this.bogieShift), this, this.uniqueID, 0, this.bogieShift); + + + if (!worldObj.isRemote) worldObj.spawnEntityInWorld(bogieLoco); + this.needsBogieUpdate = true; + } + this.hasSpawnedBogie = true; + } + + super.manageChunkLoading(); + + /** + * Set the uniqueID if the entity doesn't have one. + */ + if (!worldObj.isRemote && this.uniqueID == -1) { + if (FMLCommonHandler.instance().getMinecraftServerInstance() != null) { + //TraincraftSaveHandler.createFile(FMLCommonHandler.instance().getMinecraftServerInstance()); + //int readID = TraincraftSaveHandler.readInt(FMLCommonHandler.instance().getMinecraftServerInstance(), "numberOfTrains:"); + //int newID = setNewUniqueID(readID); + + //TraincraftSaveHandler seems to not work, may cause uniqueID bug. + setNewUniqueID(this.getEntityId()); + + //TraincraftSaveHandler.writeValue(FMLCommonHandler.instance().getMinecraftServerInstance(), "numberOfTrains:", "" + newID); + + } + } + + if (riddenByEntity instanceof EntityPlayer) { + ((EntityPlayer) riddenByEntity).addPotionEffect(new PotionEffect(Potion.resistance.id, 20, 5, true)); + } + + if (getRollingAmplitude() > 0) { + setRollingAmplitude(getRollingAmplitude() - 1); + } + if (getDamage() > 0) { + setDamage(getDamage() - 1); + } + + isBraking = false; + + if (worldObj.isRemote && Traincraft.proxy.getCurrentScreen() == null && riddenByEntity instanceof EntityLivingBase) { + EntityLivingBase entity = (EntityLivingBase) riddenByEntity; + if (TraincraftEntityHelper.getIsJumping(entity)) isBraking = true; + } + + int var2; + if (!this.worldObj.isRemote && this.worldObj instanceof WorldServer) { + this.worldObj.theProfiler.startSection("portal"); + MinecraftServer var1 = MinecraftServer.getServer(); + var2 = this.getMaxInPortalTime(); + + if (this.inPortal) { + if (var1.getAllowNether()) { + if (this.ridingEntity == null && this.portalCounter++ >= var2) { + this.portalCounter = var2; + this.timeUntilPortal = this.getPortalCooldown(); + byte var3; + + if (this.worldObj.provider.dimensionId == -1) { + var3 = 0; + } else { + var3 = -1; + } + + this.travelToDimension(var3); + } + + this.inPortal = false; + } + } else { + if (this.portalCounter > 0) { + this.portalCounter -= 4; + } + + if (this.portalCounter < 0) { + this.portalCounter = 0; + } + } + + if (this.timeUntilPortal > 0) { + --this.timeUntilPortal; + } + + this.worldObj.theProfiler.endSection(); + } + + Side side = FMLCommonHandler.instance().getEffectiveSide(); + if (side == Side.CLIENT) { + soundUpdater(); + } + + if (worldObj.isRemote) { + //rotationYaw = (float) rotationYawClient; + if (rollingturnProgress > 0) { + rotationYaw = (float) rotationYawClient; + this.rotationPitch = (float) (this.rotationPitch + (this.rollingPitch - this.rotationPitch) / this.rollingturnProgress); + + this.setPosition(this.posX + (this.rollingX - this.posX) / this.rollingturnProgress, + this.posY + (this.rollingY - this.posY) / this.rollingturnProgress, + this.posZ + (this.rollingZ - this.posZ) / this.rollingturnProgress); + --this.rollingturnProgress; + this.setRotation(this.rotationYaw, this.rotationPitch); + + } else { + setPosition(posX, posY, posZ); + setRotation(rotationYaw, rotationPitch); + + } + return; + } + + /* + * if(this.updateTicks<5){ + + */ + /** + * As entities can't be registered in nbttagcompound I had to setup this + * system... When world loads, only the (double) Link1 and Link2 are + * known. This method search for the entity with the ID corresponding to + * Link1 or Link2 When it finds it, (EntityRollingStock)cartLinked1 and + * cartLinked2 will be updated accordingly + */ + if (addedToChunk && ((this.cartLinked1 == null && this.Link1 != 0) || (this.cartLinked2 == null && this.Link2 != 0))) { + list = worldObj.getEntitiesWithinAABBExcludingEntity(this, boundingBox.expand(15, 15, 15)); + + if (list != null && list.size() > 0) { + for (Object entity : list) { + if (entity instanceof EntityRollingStock) { + if (((EntityRollingStock) entity).uniqueID == this.Link1) { + this.cartLinked1 = (EntityRollingStock) entity; + } else if (((EntityRollingStock) entity).uniqueID == this.Link2) { + this.cartLinked2 = (EntityRollingStock) entity; + } + } + } + } + } + + prevPosX = posX; + prevPosY = posY; + prevPosZ = posZ; + + int i = MathHelper.floor_double(posX); + int j = MathHelper.floor_double(posY); + int k = MathHelper.floor_double(posZ); + + if (needsBogieUpdate) { + if (bogieLoco != null) { + float rotationCos1 = (float) Math.cos(Math.toRadians(serverRealRotation)); + float rotationSin1 = (float) Math.sin(Math.toRadians((serverRealRotation))); + if (!firstLoad) { + rotationCos1 = (float) Math.cos(Math.toRadians(serverRealRotation + 90)); + rotationSin1 = (float) Math.sin(Math.toRadians((serverRealRotation + 90))); + } + double bogieX1 = (this.posX + (rotationCos1 * Math.abs(bogieShift))); + double bogieZ1 = (this.posZ + (rotationSin1 * Math.abs(bogieShift))); + this.bogieLoco.setPosition(bogieX1, bogieLoco.posY, bogieZ1); + /* + * double rads = this.serverRealRotation * + * 3.141592653589793D / 180.0D; double pitchRads = + * this.renderPitch * 3.141592653589793D / 180.0D; + * this.bogieLoco[bog].setPosition((float) (posX - + * Math.cos(rads) * this.bogieShift[bog]), (float) posY + + * ((Math.tan(pitchRads) * -this.bogieShift[bog]) + + * getMountedYOffset()), (float) (posZ - Math.sin(rads) * + * this.bogieShift[bog])); + */ + } + firstLoad = false; + /* + * for (int bog = 0; bog < this.bogieUtility.length; bog++) { if + * (bogieUtility[bog] != null) { + * + * double rads = this.serverRealRotation * 3.141592653589793D / + * 180.0D; double pitchRads = this.renderPitch * 3.141592653589793D + * / 180.0D; this.bogieUtility[bog].setPosition((float) (posX - + * Math.cos(rads) * this.bogieShift[bog]), (float) posY + + * ((Math.tan(pitchRads) * -this.bogieShift[bog]) + + * getMountedYOffset()), (float) (posZ - Math.sin(rads) * + * this.bogieShift[bog])); + + * [bog].posX+" "+ this.bogieUtility[bog].posY + * +" "+this.bogieUtility[bog].posZ); } } + */ + needsBogieUpdate = false; + } + if (bogieLoco != null) { + bogieLoco.updateDistance(); + } + + if (worldObj.isAirBlock(i, j, k)) { + j--; + } else if (isRailBlockAt(worldObj, i, j + 1, k) || worldObj.getBlock(i, j + 1, k) == BlockIDs.tcRail.block || worldObj.getBlock(i, j + 1, k) == BlockIDs.tcRailGag.block) { + j++; + } + + l = worldObj.getBlock(i, j, k); + + updateOnTrack(i, j, k, l); + + + updateTicks++; + d6 = prevPosX - posX; + d7 = prevPosZ - posZ; + prevRotationYaw = rotationYaw; + + //this.rotationPitch = 0.0F; + + if (d6 * d6 + d7 * d7 > 0.0001D) { + this.rotationYaw = (float) (Math.atan2(d7, d6) * 180.0D / Math.PI); + if (this.isClientInReverse) { + this.rotationYaw += 180.0F; + } + } + + //double var49 = MathHelper.wrapAngleTo180_float(this.rotationYaw - this.prevRotationYaw); + + float anglePitch = 0; + if (bogieLoco != null) { + + serverRealRotation = MathHelper.wrapAngleTo180_float((float) Math.toDegrees(Math.atan2((float) (bogieLoco.posZ - this.posZ), (float) (bogieLoco.posX - this.posX))) - 90F); + + anglePitch = (float) Math.atan(((bogieLoco.posY - posY)) / + MathHelper.sqrt_double(((bogieLoco.posX - posX) * (bogieLoco.posX - posX)) + + ((bogieLoco.posZ - posZ) * (bogieLoco.posZ - posZ))));//1.043749988079071 + serverRealPitch = anglePitch + (float) + ((bogieLoco.posZ - posZ) * (bogieLoco.posZ - posZ));//1.043749988079071 + } else { + float rotation = rotationYaw; + + float delta = MathHelper.wrapAngleTo180_float(this.rotationYaw - this.previousServerRealRotation); //Math.abs(this.rotationYaw - this.previousServerRealRotation); + + this.previousServerRealRotation = this.rotationYaw; + + if (delta < -179.0F || delta > 179.0F) { // if (delta > 170.0F || delta < 190.0F) { + + this.rotationYaw += 180.0F; + this.isServerInReverse = !this.isServerInReverse; + } + previousServerRealRotation = rotation; + if (this.isServerInReverse) { + if (serverInReverseSignPositive) { + rotation += 180.0f; + } else { + rotation -= 180.0f; + } + } + + serverRealRotation = rotation; + + double zDist = posZ - prevPosZ; + double xDist = posX - prevPosX; + float tempPitch = rollingServerPitch; + float tempPitch2 = tempPitch; + if (Math.abs(zDist) > 0.02) { + double rads = Math.atan((posY - prevPosY) / zDist); + tempPitch = (float) ((Math.atan((posY - prevPosY) / zDist)) * degrees); + } else if (Math.abs(xDist) > 0.02) { + tempPitch = (float) ((Math.atan((posY - prevPosY) / xDist)) * degrees); + //pitch=tempPitch; + } + + //if (Math.abs(tempPitch) > 16) { + //tempPitch=Math.copySign(16, tempPitch); + //} + if (tempPitch2 < tempPitch && Math.abs(tempPitch2 - tempPitch) > 3) { + tempPitch2 += 3; + } else if (tempPitch2 > tempPitch && Math.abs(tempPitch2 - tempPitch) > 3) { + tempPitch2 -= 3; + } else if (tempPitch2 < tempPitch && Math.abs(tempPitch2 - tempPitch) > 0.5) { + tempPitch2 += 0.5; + } else if (tempPitch2 > tempPitch && Math.abs(tempPitch2 - tempPitch) > 0.5) { + tempPitch2 -= 0.5; + } + anglePitch = -tempPitch2; + rollingServerPitch = 0; + } + + + if (updateTicks % 2 == 0) { + Traincraft.rotationChannel.sendToAllAround(new PacketRollingStockRotation(this, (int) (anglePitch * 60)), new TargetPoint(worldObj.provider.dimensionId, posX, posY, posZ, 300.0D)); + } + if (!worldObj.isRemote) { + anglePitchClient = (anglePitch * 60); + } + + //this.setRotation(this.rotationYaw, this.rotationPitch); + + list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, getCollisionHandler() != null ? + getCollisionHandler().getMinecartCollisionBox(this) : + boundingBox.expand(0.2D, 0.0D, 0.2D)); + + if (list != null && !list.isEmpty()) { + Entity entity; + for (Object obj : list) { + if (obj == this.riddenByEntity) { + continue; + } + entity = (Entity) obj; + + if (entity.canBePushed() && entity instanceof EntityMinecart) { + entity.applyEntityCollision(this); + } else if (entity.canBePushed() && !(entity instanceof EntityMinecart)) { + this.applyEntityCollision(entity); + } + } + } + + handleTrain(); + handleOverheating.HandleHeatLevel(this); + linkhandler.handleStake(this, boundingBox); + collisionhandler.handleCollisions(this, boundingBox); + this.func_145775_I(); + MinecraftForge.EVENT_BUS.post(new MinecartUpdateEvent(this, i, j, k)); + //setBoundingBoxSmall(posX, posY, posZ, 0.98F, 0.7F); + numLaps++; + if ((this instanceof Locomotive) && (this.Link1 == 0) && (this.Link2 == 0) && numLaps > 700) { + this.RollingStock.clear(); + } + + if (this.riddenByEntity != null && this.riddenByEntity.isDead) { + if (this.riddenByEntity.ridingEntity == this) { + this.riddenByEntity.ridingEntity = null; + } + this.riddenByEntity = null; + } + this.dataWatcher.updateObject(14, (int) (motionX * 100)); + this.dataWatcher.updateObject(21, (int) (motionZ * 100)); + + if (ConfigHandler.ENABLE_LOGGING && !worldObj.isRemote && updateTicks % 120 == 0) { + ServerLogger.writeWagonToFolder(this); + } + } + + boolean flag, flag1; + + private void updateOnTrack(int i, int j, int k, Block l) { + if (canUseRail() && BlockRailBase.func_150051_a(l)) { + + Vec3 vec3d = TraincraftUtil.func_514_g(posX, posY, posZ); + int i1 = ((BlockRailBase) l).getBasicRailMetadata(worldObj, this, i, j, k); + meta = i1; + posY = j; + flag = false; + flag1 = l == Blocks.golden_rail; + if (l == Blocks.golden_rail) { + flag = worldObj.getBlockMetadata(i, j, k) > 2; + if (i1 == 8) { + i1 = 0; + } else if (i1 == 9) { + i1 = 1; + } + } + + if (l == Blocks.detector_rail) { + worldObj.setBlockMetadataWithNotify(i, j, k, meta | 8, 3); + worldObj.notifyBlocksOfNeighborChange(i, j, k, l); + worldObj.notifyBlocksOfNeighborChange(i, j - 1, k, l); + worldObj.markBlockRangeForRenderUpdate(i, j, k, i, j, k); + worldObj.scheduleBlockUpdate(i, j, k, l, l.tickRate(worldObj)); + } + + if (i1 >= 2 && i1 <= 5) { + posY = (j + 1); + } + + adjustSlopeVelocities(i1); + + + int ai[][] = matrix[i1]; + double d9 = ai[1][0] - ai[0][0]; + double d10 = ai[1][2] - ai[0][2]; + double d11 = Math.sqrt(d9 * d9 + d10 * d10); + if (motionX * d9 + motionZ * d10 < 0.0D) { + d9 = -d9; + d10 = -d10; + } + double d13 = Math.sqrt(motionX * motionX + motionZ * motionZ); + motionX = (d13 * d9) / d11; + motionZ = (d13 * d10) / d11; + if (flag1 && !flag && shouldDoRailFunctions()) { + if (Math.sqrt(motionX * motionX + motionZ * motionZ) < 0.029999999999999999D) { + motionX = 0.0D; + motionY = 0.0D; + motionZ = 0.0D; + } else { + motionX *= 0.5D; + motionY *= 0.0D; + motionZ *= 0.5D; + } + } + double d17 = 0.0D; + double d18 = i + 0.5D + ai[0][0] * 0.5D; + double d19 = k + 0.5D + ai[0][2] * 0.5D; + double d20 = i + 0.5D + ai[1][0] * 0.5D; + double d21 = k + 0.5D + ai[1][2] * 0.5D; + d9 = d20 - d18; + d10 = d21 - d19; + if (d9 == 0.0D) { + posX = i + 0.5D; + d17 = posZ - k; + } else if (d10 == 0.0D) { + posZ = k + 0.5D; + d17 = posX - i; + } else { + double d22 = posX - d18; + double d24 = posZ - d19; + d17 = (d22 * d9 + d24 * d10) * 2D; + //double derailSpeed = 0;//0.46; + } + if (bogieLoco != null) { + if (!bogieLoco.isOnRail()) { + derailSpeed = 0; + this.unLink(); + } + } + /** + * Handles derail + */ + if ((this instanceof Locomotive || this instanceof ISecondBogie) && d13 > derailSpeed && i1 >= 6) { + if (d9 > 0 && d10 < 0) { + d10 = 0; + d9 += 2; + } else if (d9 < 0 && d10 > 0) { + d9 = 0; + d10 += 2; + } else if (d10 < 0 && d9 < 0) { + d10 -= 2; + d9 = 0; + } else if (d9 > 0 && d10 > 0) { + d10 += 2; + d9 = 0; + } + if (FMLCommonHandler.instance().getMinecraftServerInstance() != null && + this.riddenByEntity != null && this.riddenByEntity instanceof EntityPlayer) { + FMLCommonHandler.instance().getMinecraftServerInstance().getConfigurationManager().sendChatMsg(new + ChatComponentText(((EntityPlayer) this.riddenByEntity).getDisplayName() + "derailed" + + this.trainOwner + "'s locomotive")); + } + } + + + posX = d18 + d9 * d17; + posZ = d19 + d10 * d17; + setPosition(posX, posY + yOffset + 0.35, posZ); + + moveMinecartOnRail(i, j, k, 0.0D); + + if (ai[0][1] != 0 && MathHelper.floor_double(posX) - i == ai[0][0] && + MathHelper.floor_double(posZ) - k == ai[0][2]) { + setPosition(posX, posY + ai[0][1], posZ); + } else if (ai[1][1] != 0 && MathHelper.floor_double(posX) - i == ai[1][0] && + MathHelper.floor_double(posZ) - k == ai[1][2]) { + setPosition(posX, posY + ai[1][1], posZ); + } + + applyDragAndPushForces(); + + Vec3 vec3d1 = TraincraftUtil.func_514_g(posX, posY, posZ); + double d28 = (vec3d.yCoord - vec3d1.yCoord) * 0.050000000000000003D; + if (this instanceof Locomotive) d28 = 0; + double d14 = Math.sqrt(motionX * motionX + motionZ * motionZ); + if (d14 > 0.0D) { + motionX = (motionX / d14) * (d14 + d28); + motionZ = (motionZ / d14) * (d14 + d28); + } + setPosition(posX, posY + yOffset - 0.8d, posZ); + int k1 = MathHelper.floor_double(posX); + int l1 = MathHelper.floor_double(posZ); + if (k1 != i || l1 != k) { + double d15 = Math.sqrt(motionX * motionX + motionZ * motionZ); + motionX = d15 * (k1 - i); + motionZ = d15 * (l1 - k); + } + + if (shouldDoRailFunctions()) { + ((BlockRailBase) l).onMinecartPass(worldObj, this, i, j, k); + } + + if (flag && shouldDoRailFunctions()) { + double d31 = Math.sqrt(motionX * motionX + motionZ * motionZ); + if (d31 > 0.01D) { + motionX += (motionX / d31) * 0.059999999999999998D; + motionZ += (motionZ / d31) * 0.059999999999999998D; + } else if (i1 == 1) { + if (worldObj.isBlockNormalCubeDefault(i - 1, j, k, false)) { + motionX = 0.02D; + } else if (worldObj.isBlockNormalCubeDefault(i + 1, j, k, false)) { + motionX = -0.02D; + } + } else if (i1 == 0) { + if (worldObj.isBlockNormalCubeDefault(i, j, k - 1, false)) { + motionZ = 0.02D; + } else if (worldObj.isBlockNormalCubeDefault(i, j, k + 1, false)) { + motionZ = -0.02D; + } + } + } + } else if (l == BlockIDs.tcRail.block) { + limitSpeedOnTCRail(); + //if(worldObj.getTileEntity(i,j,k)==null || !(worldObj.getTileEntity(i,j,k) instanceof TileTCRail))return; + TileTCRail tile = (TileTCRail) worldObj.getTileEntity(i, j, k); + int meta = tile.getBlockMetadata(); + + if (ItemTCRail.isTCStraightTrack(tile)) { + moveOnTCStraight(i, j, k, tile.xCoord, tile.zCoord, meta); + } else if (ItemTCRail.isTCTurnTrack(tile)) { + + if (bogieLoco != null) { + if (!bogieLoco.isOnRail()) { + derailSpeed = 0; + } + } + if (derailSpeed == 0) { + this.unLink(); + moveOnTCStraight(i, j, k, tile.xCoord, tile.zCoord, meta); + } else { + + if (shouldIgnoreSwitch(tile, i, j, k, meta)) { + moveOnTCStraight(i, j, k, tile.xCoord, tile.zCoord, meta); + } else { + if (ItemTCRail.isTCTurnTrack(tile)) + moveOnTC90TurnRail(i, j, k, tile.r, tile.cx, tile.cz); + } + // shouldIgnoreSwitch(tile, i, j, k, meta); + // if (ItemTCRail.isTCTurnTrack(tile)) moveOnTC90TurnRail(i, j, k, r, cx, cy, + // cz, tile.getType(), meta); + } + } else if (ItemTCRail.isTCSlopeTrack(tile)) { + moveOnTCSlope(j, tile.xCoord, tile.zCoord, tile.slopeAngle, tile.slopeHeight, meta); + } else if (ItemTCRail.isTCTwoWaysCrossingTrack(tile)) { + moveOnTCTwoWaysCrossing(i, j, k, tile.xCoord, tile.yCoord, tile.zCoord, meta); + } else if (ItemTCRail.isTCDiagonalCrossingTrack(tile)) { + moveOnTCDiamondCrossing(i, j, k, tile.xCoord, tile.yCoord, tile.zCoord, meta); + } else if (ItemTCRail.isTCDiagonalStraightTrack(tile)) { + moveOnTCDiagonal(i, j, k, tile.xCoord, tile.zCoord, tile.getBlockMetadata(), tile.getRailLength()); + } else if (ItemTCRail.isTCCurvedSlopeTrack(tile)) { + moveOnTCCurvedSlope(i, j, k, tile.r, tile.cx, tile.cz, tile.xCoord, tile.zCoord, meta, 1, tile.slopeAngle); + } + + } else if (l == BlockIDs.tcRailGag.block) { + limitSpeedOnTCRail(); + TileTCRailGag tileGag = (TileTCRailGag) worldObj.getTileEntity(i, j, k); + if (worldObj.getTileEntity(tileGag.originX, tileGag.originY, tileGag.originZ) instanceof TileTCRail) { + TileTCRail tile = (TileTCRail) worldObj.getTileEntity(tileGag.originX, tileGag.originY, tileGag.originZ); + + if (ItemTCRail.isTCTurnTrack(tile)) { + moveOnTC90TurnRail(i, j, k, tile.r, tile.cx, tile.cz); + } + if (ItemTCRail.isTCStraightTrack(tile)) { + moveOnTCStraight(i, j, k, tile.xCoord, tile.zCoord, tile.getBlockMetadata()); + } + if (ItemTCRail.isTCSlopeTrack(tile)) { + moveOnTCSlope(j, tile.xCoord, tile.zCoord, tile.slopeAngle, tile.slopeHeight, tile.getBlockMetadata()); + } + if (ItemTCRail.isTCDiagonalStraightTrack(tile)) { + moveOnTCDiagonal(i, j, k, tile.xCoord, tile.zCoord, tile.getBlockMetadata(), tile.getRailLength()); + } else if (ItemTCRail.isTCDiagonalCrossingTrack(tile)) { + moveOnTCDiamondCrossing(i, j, k, tile.xCoord, tile.yCoord, tile.zCoord, meta); + } + if (ItemTCRail.isTCCurvedSlopeTrack(tile)) { + moveOnTCCurvedSlope(i, j, k, tile.r, tile.cx, tile.cz, tile.xCoord, tile.zCoord, tile.getBlockMetadata(), 1, tile.slopeAngle); + } + } + } else { + //moveMinecartOffRail(i,j,k); + super.onUpdate(); + } + + } + + private boolean shouldIgnoreSwitch(TileTCRail tile, int i, int j, int k, int meta) { + if (tile != null + && (tile.getType().equals(TrackTypes.MEDIUM_RIGHT_TURN.getLabel()) + || tile.getType().equals(TrackTypes.MEDIUM_LEFT_TURN.getLabel()) + || tile.getType().equals(TrackTypes.LARGE_LEFT_TURN.getLabel()) + || tile.getType().equals(TrackTypes.LARGE_RIGHT_TURN.getLabel())) + || tile.getType().equals(TrackTypes.MEDIUM_RIGHT_45DEGREE_TURN.getLabel()) + || tile.getType().equals(TrackTypes.MEDIUM_LEFT_45DEGREE_TURN.getLabel()) + || tile.getType().equals(TrackTypes.EMBEDDED_MEDIUM_RIGHT_TURN.getLabel()) + || tile.getType().equals(TrackTypes.EMBEDDED_MEDIUM_LEFT_TURN.getLabel()) + || tile.getType().equals(TrackTypes.EMBEDDED_LARGE_LEFT_TURN.getLabel()) + || tile.getType().equals(TrackTypes.EMBEDDED_LARGE_RIGHT_TURN.getLabel()) + || tile.getType().equals(TrackTypes.EMBEDDED_MEDIUM_RIGHT_45DEGREE_TURN.getLabel()) + || tile.getType().equals(TrackTypes.EMBEDDED_MEDIUM_LEFT_45DEGREE_TURN.getLabel()) + + && tile.canTypeBeModifiedBySwitch) { + + /* Handles reverse straight movement of a cart on a switch that happened to be turned on*/ + if (meta == 2) { + if (motionZ > 0 && Math.abs(motionX) < 0.01) { + TileEntity tile2 = worldObj.getTileEntity(i, j, k + 1); + if (tile2 instanceof TileTCRail) { + ((TileTCRail) tile2).setSwitchState(false, true); + } + return true; + } + } else if (meta == 0) { + if (motionZ < 0 && Math.abs(motionX) < 0.01) { + TileEntity tile2 = worldObj.getTileEntity(i, j, k - 1); + if (tile2 instanceof TileTCRail) { + ((TileTCRail) tile2).setSwitchState(false, true); + } + return true; + } + } else if (meta == 1) { + if (Math.abs(motionZ) < 0.01 && motionX > 0) { + TileEntity tile2 = worldObj.getTileEntity(i + 1, j, k); + if (tile2 instanceof TileTCRail) { + ((TileTCRail) tile2).setSwitchState(false, true); + } + return true; + } + } else if (meta == 3) { + if (Math.abs(motionZ) < 0.01 && motionX < 0) { + TileEntity tile2 = worldObj.getTileEntity(i - 1, j, k); + if (tile2 instanceof TileTCRail) { + ((TileTCRail) tile2).setSwitchState(false, true); + } + return true; + } + } + } + return false; + } + + private void moveOnTCDiagonal(int i, int j, int k, double cx, double cz, int meta, double length) { + + double Y_OFFSET = 0.2; + double X_OFFSET = 0.5; + double Z_OFFSET = 1.5; + posY = j + Y_OFFSET; + if (length == 0) { + length = 1; + } + double exitX = 0; + double exitZ = 0; + double directionX; + double directionZ; + double norm = Math.sqrt(motionX * motionX + motionZ * motionZ); + double distanceNorm; + + if (meta == 6) { + exitX = (motionX > 0) ? cx + length + X_OFFSET : cx - X_OFFSET; + exitZ = (motionX > 0) ? cz - length + X_OFFSET : cz + Z_OFFSET; + } else if (meta == 4) { + exitX = (motionX > 0) ? cx + Z_OFFSET : cx - (length - X_OFFSET); + exitZ = (motionX > 0) ? cz - X_OFFSET : cz + (length + X_OFFSET); + } else if (meta == 5) { + exitX = (motionX > 0) ? cx + Z_OFFSET : cx - (length + X_OFFSET); + exitZ = (motionX > 0) ? cz + Z_OFFSET : cz - (length + X_OFFSET); + } else if (meta == 7) { + exitX = (motionX > 0) ? cx + (length + X_OFFSET) : cx - X_OFFSET; + exitZ = (motionX > 0) ? cz + (length + X_OFFSET) : cz - X_OFFSET; + } + + directionX = exitX - posX; + directionZ = exitZ - posZ; + distanceNorm = Math.sqrt(directionX * directionX + directionZ * directionZ); + motionX = (directionX / distanceNorm) * norm; + motionZ = (directionZ / distanceNorm) * norm; + this.boundingBox.offset(Math.copySign(motionX, this.motionX), 0, Math.copySign(motionZ, this.motionZ)); + + List boxes = worldObj.getCollidingBoundingBoxes(this, boundingBox); + for (Object b : boxes) { + if (!(b instanceof BlockRailBase) && !(b instanceof BlockTCRail) && !(b instanceof BlockTCRailGag) && !(b instanceof BlockAir)) { + return; + } + } + this.posX = (this.boundingBox.minX + this.boundingBox.maxX) / 2.0D; + this.posY = this.boundingBox.minY + (double) this.yOffset - (double) this.ySize; + this.posZ = (this.boundingBox.minZ + this.boundingBox.maxZ) / 2.0D; + + } + + + private void moveOnTCCurvedSlope(int i, int j, int k, double r, double cx, double cz, int tilex, int tilez, int meta, double slopeHeight, double slopeAngle) { + double newTilex = tilex; + double newTilez = tilez; + if (meta == 2) { + newTilez += 1; + newTilex += 0.5; + } + if (meta == 0) { + newTilex += 0.5; + } + if (meta == 1) { + newTilex += 1; + newTilez += 0.5; + } + if (meta == 3) { + newTilez += 0.5; + } + double cpx = posX - cx; + double cpz = posZ - cz; + double tpx = newTilex - posX; + double tpz = newTilez - posZ; + + double tpnorm = Math.sqrt(tpx * tpx + tpz * tpz); + + double cp_norm = Math.sqrt(cpx * cpx + cpz * cpz); + double vnorm = Math.sqrt(motionX * motionX + motionZ * motionZ); + + double norm_cpx = cpx / cp_norm; //u + double norm_cpz = cpz / cp_norm; //v + + double vx2 = -norm_cpz * vnorm;//-v + double vz2 = norm_cpx * vnorm;//u + + double px2 = posX + motionX; + double pz2 = posZ + motionZ; + + double px2_cx = px2 - cx; + double pz2_cz = pz2 - cz; + + double p2_c_norm = Math.sqrt((px2_cx * px2_cx) + (pz2_cz * pz2_cz)); + + double px2_cx_norm = px2_cx / p2_c_norm; + double pz2_cz_norm = pz2_cz / p2_c_norm; + + double px3 = cx + (px2_cx_norm * r); + double pz3 = cz + (pz2_cz_norm * r); + + double signX = px3 - posX; + double signZ = pz3 - posZ; + + vx2 = Math.copySign(vx2, signX); + vz2 = Math.copySign(vz2, signZ); + + double p_corr_x = cx + ((cpx / cp_norm) * r); + double p_corr_z = cz + ((cpz / cp_norm) * r); + motionX = vx2; + motionZ = vz2; + + double newYPos = Math.abs(j + Math.min(1, (slopeAngle * Math.abs(tpnorm))) + yOffset + 0.34f); + setPosition(p_corr_x, newYPos, p_corr_z); + moveEntity(vx2, 0, vz2); + + + } + + private void moveOnTCStraight(int i, int j, int k, double cx, double cz, int meta) { + posY = j + 0.2; + if (meta == 2 || meta == 0) { + double norm = Math.sqrt(motionX * motionX + motionZ * motionZ); + + setPosition(cx + 0.5, posY + yOffset, posZ); + + motionX = 0; + motionZ = Math.copySign(norm, motionZ); + this.boundingBox.offset(0, 0, Math.copySign(norm, this.motionZ)); + + List boxes = worldObj.getCollidingBoundingBoxes(this, boundingBox); + for (Object b : boxes) { + if (!(b instanceof BlockRailBase) && !(b instanceof BlockTCRail) && !(b instanceof BlockTCRailGag) && !(b instanceof BlockAir)) { + return; + } + } + this.posX = (this.boundingBox.minX + this.boundingBox.maxX) / 2.0D; + this.posY = this.boundingBox.minY + (double) this.yOffset - (double) this.ySize; + this.posZ = (this.boundingBox.minZ + this.boundingBox.maxZ) / 2.0D; + + } else if (meta == 1 || meta == 3) { + + setPosition(posX, posY + yOffset, cz + 0.5); + //setPosition(posX, posY + yOffset, posZ); + + motionX = Math.copySign(Math.sqrt(motionX * motionX + motionZ * motionZ), motionX); + motionZ = 0; + this.boundingBox.offset(motionX, 0, 0); + + List boxes = worldObj.getCollidingBoundingBoxes(this, boundingBox); + for (Object b : boxes) { + if (!(b instanceof BlockRailBase) && !(b instanceof BlockTCRail) && !(b instanceof BlockTCRailGag) && !(b instanceof BlockAir)) { + return; + } + } + this.posX = (this.boundingBox.minX + this.boundingBox.maxX) / 2.0D; + this.posY = this.boundingBox.minY + (double) this.yOffset - (double) this.ySize; + this.posZ = (this.boundingBox.minZ + this.boundingBox.maxZ) / 2.0D; + + + } + } + + private void moveOnTCSlope(int j, double cx, double cz, double slopeAngle, double slopeHeight, int meta) { + //posY = j + 2.5; + if (meta == 2 || meta == 0) { + + if (meta == 2) { + cz += 1; + } + + double norm = Math.sqrt(this.motionX * this.motionX + this.motionZ * this.motionZ); + this.setPosition(cx + 0.5D, Math.abs(j + (Math.tan(slopeAngle * Math.abs(cz - this.posZ))) + this.yOffset + 0.3), this.posZ); + this.boundingBox.offset(0, 0, Math.copySign(norm, this.motionZ)); + this.posX = (this.boundingBox.minX + this.boundingBox.maxX) / 2.0D; + this.posY = this.boundingBox.minY + (double) this.yOffset - (double) this.ySize; + this.posZ = (this.boundingBox.minZ + this.boundingBox.maxZ) / 2.0D; + + if (!(this instanceof Locomotive) && !(this instanceof EntityTracksBuilder)) { + if ((this.posY - this.prevPosY) < 0) { + norm *= 1.02; + } else if ((this.posY - this.prevPosY) > 0) { + norm *= 0.98; + } + if (norm < 0.01) { + + if ((motionZ) < 0 && meta == 2) { + norm += 0.0001; + motionZ = Math.copySign(motionZ, 1); + } + if ((motionZ) > 0 && meta == 0) { + norm += 0.0001; + motionZ = Math.copySign(motionZ, -1); + } + } + } + + this.motionX = 0.0D; + this.motionY = 0.0D; + this.motionZ = Math.copySign(norm, this.motionZ); + } else if (meta == 1 || meta == 3) { + if (meta == 1) { + cx += 1; + } + + double norm = Math.sqrt(this.motionX * this.motionX + this.motionZ * this.motionZ); + this.setPosition(this.posX, (j + (Math.tan(slopeAngle * Math.abs(cx - this.posX))) + this.yOffset + 0.3), cz + 0.5D); + this.boundingBox.offset(Math.copySign(norm, this.motionX), 0, 0); + this.posX = (this.boundingBox.minX + this.boundingBox.maxX) / 2.0D; + this.posY = this.boundingBox.minY + (double) this.yOffset - (double) this.ySize; + this.posZ = (this.boundingBox.minZ + this.boundingBox.maxZ) / 2.0D; + + if (!(this instanceof Locomotive) && !(this instanceof EntityTracksBuilder)) { + if ((this.posY - this.prevPosY) < 0) { + norm *= 1.02; + } else if ((this.posY - this.prevPosY) > 0) { + norm *= 0.98; + } + if (norm < 0.01) { + + if ((motionX) < 0 && meta == 1) { + norm += 0.0001; + motionX = Math.copySign(motionX, 1); + } + if ((motionX) > 0 && meta == 3) { + norm += 0.0001; + motionX = Math.copySign(motionX, -1); + } + } + } + this.motionX = Math.copySign(norm, this.motionX); + this.motionY = 0.0D; + this.motionZ = 0.0D; + } + } + + protected void moveOnTC90TurnRail(int i, int j, int k, double r, double cx, double cz) { + posY = j + 0.2; + double cpx = posX - cx; + double cpz = posZ - cz; + + double cp_norm = Math.sqrt(cpx * cpx + cpz * cpz); + double vnorm = Math.sqrt(motionX * motionX + motionZ * motionZ); + + double norm_cpx = cpx / cp_norm; //u + double norm_cpz = cpz / cp_norm; //v + + double vx2 = -norm_cpz * vnorm;//-v + double vz2 = norm_cpx * vnorm;//u + + double px2 = posX + motionX; + double pz2 = posZ + motionZ; + + double px2_cx = px2 - cx; + double pz2_cz = pz2 - cz; + + double p2_c_norm = Math.sqrt((px2_cx * px2_cx) + (pz2_cz * pz2_cz)); + + double px2_cx_norm = px2_cx / p2_c_norm; + double pz2_cz_norm = pz2_cz / p2_c_norm; + + double px3 = cx + (px2_cx_norm * r); + double pz3 = cz + (pz2_cz_norm * r); + + double signX = px3 - posX; + double signZ = pz3 - posZ; + + vx2 = Math.copySign(vx2, signX); + vz2 = Math.copySign(vz2, signZ); + + double p_corr_x = cx + ((cpx / cp_norm) * r); + double p_corr_z = cz + ((cpz / cp_norm) * r); + + setPosition(p_corr_x, posY + yOffset, p_corr_z); + moveEntity(vx2, 0.0D, vz2); + + motionX = vx2; + motionZ = vz2; + + } + + protected void moveOnTCTwoWaysCrossing(int i, int j, int k, double cx, double cy, double cz, int meta) { + posY = j + 0.2; + if (!(this instanceof Locomotive)) { + int l = MathHelper.floor_double(serverRealRotation * 4.0F / 360.0F + 0.5D) & 3; + if (l == 2 || l == 0) { + moveEntity(motionX, 0.0D, 0.0D); + } else if (l == 1 || l == 3) { + moveEntity(0.0D, 0.0D, motionZ); + } + } else { + int l = MathHelper.floor_double(rotationYaw * 4.0F / 360.0F + 0.5D) & 3; + if (l == 2 || l == 0) { + moveEntity(motionX, 0.0D, 0.0D); + } else if (l == 1 || l == 3) { + moveEntity(0.0D, 0.0D, motionZ); + } + //moveEntity(motionX, 0.0D, motionZ); + } + } + + protected void moveOnTCDiamondCrossing(int i, int j, int k, double cx, double cy, double cz, int meta) { + + int l; + if ((this.bogieLoco == null)) { + l = MathHelper.floor_double(serverRealRotation * 8.0F / 360.0F + 0.5) & 7; + } else { + l = MathHelper.floor_double(rotationYaw * 8.0F / 360.0F + 0.5) & 7; + + } + if (l == 0 || l == 4) { + moveEntity(motionX, 0.0D, 0.0D); + } else if (l == 2 || l == 6) { + moveEntity(0.0D, 0.0D, motionZ); + } else if (l == 1) { + moveOnTCDiagonal(i, j, k, cx, cz, 5, 1); + } else if (l == 3) { + moveOnTCDiagonal(i, j, k, cx, cz, 6, 1); + } else if (l == 5) { + moveOnTCDiagonal(i, j, k, cx, cz, 7, 1); + } else if (l == 7) { + moveOnTCDiagonal(i, j, k, cx, cz, 4, 1); + } + } + + public void limitSpeedOnTCRail() { + railMaxSpeed = 3; + maxSpeed = Math.min(railMaxSpeed, getMaxCartSpeedOnRail()); + maxSpeed = SpeedHandler.handleSpeed(railMaxSpeed, maxSpeed, this); + + if (this.speedLimiter != 0 && speedWasSet) { + //maxSpeed *= this.speedLimiter; + adjustSpeed(maxSpeed, speedLimiter); + } + motionX *= 0.9D; + motionZ *= 0.9D; + + if (motionX < -maxSpeed) { + motionX = -maxSpeed; + } + if (motionX > maxSpeed) { + motionX = maxSpeed; + } + if (motionZ < -maxSpeed) { + motionZ = -maxSpeed; + } + if (motionZ > maxSpeed) { + motionZ = maxSpeed; + } + } + + protected void moveMinecartOffRail(int i, int j, int k) { + motionY -= 0.039999999105930328D; + double d2 = getMaxCartSpeedOnRail(); + if (!onGround) { + d2 = getMaxSpeedAirLateral(); + } + if (motionX < -d2) motionX = -d2; + if (motionX > d2) motionX = d2; + if (motionZ < -d2) motionZ = -d2; + if (motionZ > d2) motionZ = d2; + double moveY = motionY; + if (getMaxSpeedAirVertical() > 0 && motionY > getMaxSpeedAirVertical()) { + moveY = getMaxSpeedAirVertical(); + if (Math.abs(motionX) < 0.3f && Math.abs(motionZ) < 0.3f) { + moveY = 0.15f; + motionY = moveY; + } + } + if (onGround) { + motionX *= 0.5D; + motionY *= 0.5D; + motionZ *= 0.5D; + } + moveEntity(motionX, moveY, motionZ); + if (!onGround) { + motionX *= getDragAir(); + motionY *= getDragAir(); + motionZ *= getDragAir(); + } + } + + + @Override + protected void writeEntityToNBT(NBTTagCompound nbttagcompound) { + super.writeEntityToNBT(nbttagcompound); + nbttagcompound.setDouble("speedLimiter", this.speedLimiter); + nbttagcompound.setFloat("serverRealRotation", this.serverRealRotation); + nbttagcompound.setFloat("yawRotation", this.rotationYaw); + //nbttagcompound.setBoolean("hasSpawnedBogie", this.hasSpawnedBogie); + //nbttagcompound.setBoolean("needsBogieUpdate", this.needsBogieUpdate); + nbttagcompound.setBoolean("firstLoad", this.firstLoad); + nbttagcompound.setFloat("rotation", this.rotation); + nbttagcompound.setBoolean("brake", isBraking); + } + + @Override + protected void readEntityFromNBT(NBTTagCompound nbttagcompound) { + super.readEntityFromNBT(nbttagcompound); + this.speedLimiter = nbttagcompound.getDouble("speedLimiter"); + this.serverRealRotation = nbttagcompound.getFloat("serverRealRotation"); + + if (nbttagcompound.hasKey("yawRotation")) { + rotationYaw = nbttagcompound.getFloat("yawRotation"); + } + //if (Math.abs(this.serverRealRotation) > 178.5f) this.serverRealRotation = Math.copySign(178.5f, this.serverRealRotation); + //this.hasSpawnedBogie = nbttagcompound.getBoolean("hasSpawnedBogie"); + //this.needsBogieUpdate = nbttagcompound.getBoolean("needsBogieUpdate"); + this.firstLoad = nbttagcompound.getBoolean("firstLoad"); + this.rotation = nbttagcompound.getFloat("rotation"); + this.isBraking = nbttagcompound.getBoolean("brake"); + } + + @Override + @SideOnly(Side.CLIENT) + public float getShadowSize() { + return 0.0F; + } + + @Override + public boolean interactFirst(EntityPlayer entityplayer) { + if (super.interactFirst(entityplayer)) { + return true; + } + if (entityplayer.ridingEntity == this) { + return false; + } + + if (lockThisCart(entityplayer.inventory.getCurrentItem(), entityplayer)) { + return true; + } + + playerEntity = entityplayer; + ItemStack itemstack = entityplayer.inventory.getCurrentItem(); + + if (this.getTrainLockedFromPacket()) { + if (!playerEntity.getDisplayName().toLowerCase().equals(this.trainOwner.toLowerCase()) && !canBeRiddenWhileLocked(this)) { + if (!worldObj.isRemote) entityplayer.addChatMessage(new ChatComponentText("Train is locked")); + return true; + } else if (!playerEntity.getDisplayName().toLowerCase().equals(this.trainOwner.toLowerCase()) && entityplayer.inventory.getCurrentItem() != null && entityplayer.inventory.getCurrentItem().getItem() instanceof ItemDye && (this instanceof Locomotive)) { + if (!worldObj.isRemote) entityplayer.addChatMessage(new ChatComponentText("Train is locked")); + return true; + } + + } + + if (itemstack != null && itemstack.getItem() instanceof ItemWrench && this instanceof Locomotive && entityplayer.isSneaking() && !worldObj.isRemote) { + destination = ""; + entityplayer.addChatMessage(new ChatComponentText("Destination reset")); + return true; + } + if (MinecraftForge.EVENT_BUS.post(new MinecartInteractEvent(this, entityplayer))) { + entityplayer.addChatMessage(new ChatComponentText("test")); + } + if (itemstack != null && itemstack.hasTagCompound() && getTicketDestination(itemstack) != null && getTicketDestination(itemstack).length() > 0) { + this.setDestination(itemstack); + /** + * ticket are single use but golden ones are multiple uses + */ + ItemStack ticket = GameRegistry.findItemStack("Railcraft", "railcraft.routing.ticket", 1); + if (ticket != null && ticket.getItem() != null && itemstack.getItem() == ticket.getItem()) { + if (--itemstack.stackSize == 0) { + entityplayer.inventory.setInventorySlotContents(entityplayer.inventory.currentItem, null); + } + } + return true; + } + /** + * If the color is valid for the cart, then change it and reduce + * itemstack size + */ + if (itemstack != null && itemstack.getItem() instanceof ItemDye) { + if (this.getSpec().getLiveries().size() > 0) { + for (int i = 0; i < this.getSpec().getLiveries().size(); i++) { + if (itemstack.getItemDamage() == getColorFromString(this.getSpec().getLiveries().get(i))) { + this.setColor(this.getSpec().getLiveries().get(i)); + itemstack.stackSize--; + + //if (!worldObj.isRemote)PacketHandler.sendPacketToClients(PacketHandler.sendStatsToServer(10,this.uniqueID,trainName ,trainType, this.trainOwner, this.getColorAsString(itemstack.getItemDamage()), (int)posX, (int)posY, (int)posZ),this.worldObj, (int)posX,(int)posY,(int)posZ, 12.0D); + + return true; + } + } + if (worldObj.isRemote && ConfigHandler.SHOW_POSSIBLE_COLORS) { + String concatColors = ": "; + for (int t = 0; t < this.getSpec().getLiveries().size(); t++) { + concatColors = concatColors.concat(this.getSpec().getLiveries().get(t) + ", "); + } + entityplayer.addChatMessage(new ChatComponentText("Possible colors" + concatColors)); + entityplayer.addChatMessage(new ChatComponentText("To paint, click me with the right dye")); + return true; + } + } else if (this.getSpec().getLiveries() != null || this.getSpec().getLiveries().size() == 0) { + entityplayer.addChatMessage(new ChatComponentText("No other colors available")); + } + } + if ((trainsOnClick.onClickWithStake(this, itemstack, playerEntity, worldObj))) { + entityplayer.addChatMessage(new ChatComponentText("test")); + return true; + } + + if (itemstack != null && itemstack.getItem() instanceof ItemPaintbrushThing && entityplayer.isSneaking()) { + if (this.getSpec().getLiveries().size() > 0) { + if (scrollPosition > this.getSpec().getLiveries().size() - 1) { + this.setColor(getSpec().getLiveries().get(0)); + scrollPosition = 0; + } else { + this.setColor(getSpec().getLiveries().get(scrollPosition)); + scrollPosition++; + + } + } + + if (this.getSpec().getLiveries().size() == 0) { + entityplayer.addChatMessage(new ChatComponentText("There are no other colors available.")); + } + return true; + } + + return worldObj.isRemote; + } + + @SideOnly(Side.CLIENT) + private void soundUpdater() { + if (FMLClientHandler.instance().getClient() != null) { + this.theSoundManager = FMLClientHandler.instance().getClient().getSoundHandler(); + } + if (FMLClientHandler.instance().getClient() != null && this.theSoundManager != null && FMLClientHandler.instance().getClient().thePlayer != null) { + if (sndUpdater != null) { + sndUpdater.update(FMLClientHandler.instance().getClient().getSoundHandler(), this, FMLClientHandler.instance().getClient().thePlayer); + } + } + } + + /** + * Applies a velocity to each of the entities pushing them away from each + * other. Args: entity + */ + @Override + public void applyEntityCollision(Entity par1Entity) { + //if(par1Entity instanceof EntityPlayer)return; + if (this.bogieLoco == null) return; + + if (par1Entity == this) { + return; + } + if (par1Entity instanceof EntityBogie) { + if (((EntityBogie) par1Entity).entityMainTrainID == this.uniqueID) return; + } + if (par1Entity == bogieLoco) { + return; + } + if (par1Entity instanceof EntityRollingStock && ((EntityRollingStock) par1Entity).bogieLoco != null) { + if (par1Entity == ((EntityRollingStock) par1Entity).bogieLoco) return; + } + + MinecraftForge.EVENT_BUS.post(new MinecartCollisionEvent(this, par1Entity)); + if (getCollisionHandler() != null) { + getCollisionHandler().onEntityCollision(this, par1Entity); + return; + } + if (!this.worldObj.isRemote) { + if (par1Entity != this.riddenByEntity) { + /* + * if (par1Entity instanceof EntityLiving && !(par1Entity + * instanceof EntityPlayer) && !(par1Entity instanceof + * EntityIronGolem) && canBeRidden() && this.motionX * + * this.motionX + this.motionZ * this.motionZ > 0.01D && + * this.riddenByEntity == null && par1Entity.ridingEntity == + * null) { par1Entity.mountEntity(this); } + */ + /* + * if ((this instanceof EntityStockCar)) { if + * (!(unAutorizedMob(par1Entity, this)) && (par1Entity + * instanceof EntityLiving) && !(par1Entity instanceof + * EntityPlayer)) { if (this.canBeRidden() && + * this.riddenByEntity == null && par1Entity.ridingEntity == + * null) { par1Entity.mountEntity(this); } } } + */ + /* + * if(this.isAttached)return; if(par1Entity instanceof + * EntityRollingStock && + * ((EntityRollingStock)par1Entity).isAttached)return; + * if(par1Entity instanceof EntityBogie){ + * if(((EntityBogie)par1Entity).entityMainTrain!=null && + * ((EntityBogie)par1Entity).entityMainTrain.isAttached)return; + * } + */ + double d0 = par1Entity.posX - this.posX; + double d1 = par1Entity.posZ - this.posZ; + double distancesX[] = new double[4]; + double distancesZ[] = new double[4]; + double euclidian[] = new double[4]; + if (par1Entity instanceof EntityRollingStock) { + EntityRollingStock entity = (EntityRollingStock) par1Entity; + if (((EntityRollingStock) par1Entity).bogieLoco != null || this.bogieLoco != null) { + + if (((EntityRollingStock) par1Entity).bogieLoco != null && this.bogieLoco == null) { + distancesX[0] = entity.posX - this.posX; + distancesZ[0] = entity.posZ - this.posZ; + euclidian[0] = MathHelper.sqrt_double((distancesX[0] * distancesX[0]) + (distancesZ[0] * distancesZ[0])); + distancesX[1] = entity.bogieLoco.posX - this.posX; + distancesZ[1] = entity.bogieLoco.posZ - this.posZ; + euclidian[1] = MathHelper.sqrt_double((distancesX[1] * distancesX[1]) + (distancesZ[1] * distancesZ[1])); + distancesX[2] = 100; + distancesZ[2] = 100; + euclidian[2] = MathHelper.sqrt_double((distancesX[2] * distancesX[2]) + (distancesZ[2] * distancesZ[2])); + distancesX[3] = 100; + distancesZ[3] = 100; + euclidian[3] = MathHelper.sqrt_double((distancesX[3] * distancesX[3]) + (distancesZ[3] * distancesZ[3])); + } else if (((EntityRollingStock) par1Entity).bogieLoco == null && this.bogieLoco != null) { + distancesX[0] = entity.posX - this.posX; + distancesZ[0] = entity.posZ - this.posZ; + euclidian[0] = MathHelper.sqrt_double((distancesX[0] * distancesX[0]) + (distancesZ[0] * distancesZ[0])); + distancesX[1] = entity.posX - this.bogieLoco.posX; + distancesZ[1] = entity.posZ - this.bogieLoco.posZ; + euclidian[1] = MathHelper.sqrt_double((distancesX[1] * distancesX[1]) + (distancesZ[1] * distancesZ[1])); + distancesX[2] = 100; + distancesZ[2] = 100; + euclidian[2] = MathHelper.sqrt_double((distancesX[2] * distancesX[2]) + (distancesZ[2] * distancesZ[2])); + distancesX[3] = 100; + distancesZ[3] = 100; + euclidian[3] = MathHelper.sqrt_double((distancesX[3] * distancesX[3]) + (distancesZ[3] * distancesZ[3])); + } else { + distancesX[0] = entity.posX - this.posX; + distancesZ[0] = entity.posZ - this.posZ; + euclidian[0] = MathHelper.sqrt_double((distancesX[0] * distancesX[0]) + (distancesZ[0] * distancesZ[0])); + distancesX[1] = entity.bogieLoco.posX - this.posX; + distancesZ[1] = entity.bogieLoco.posZ - this.posZ; + euclidian[1] = MathHelper.sqrt_double((distancesX[1] * distancesX[1]) + (distancesZ[1] * distancesZ[1])); + distancesX[2] = entity.posX - this.bogieLoco.posX; + distancesZ[2] = entity.posZ - this.bogieLoco.posZ; + euclidian[2] = MathHelper.sqrt_double((distancesX[2] * distancesX[2]) + (distancesZ[2] * distancesZ[2])); + distancesX[3] = entity.bogieLoco.posX - this.bogieLoco.posX; + distancesZ[3] = entity.bogieLoco.posZ - this.bogieLoco.posZ; + euclidian[3] = MathHelper.sqrt_double((distancesX[3] * distancesX[3]) + (distancesZ[3] * distancesZ[3])); + } + double min = euclidian[0]; + int minIndex = 0; + for (int k = 0; k < euclidian.length; k++) { + if (Math.abs(euclidian[k]) < Math.abs(min)) { + min = euclidian[k]; + minIndex = k; + } + } + d0 = distancesX[minIndex]; + d1 = distancesZ[minIndex]; + } + } + double d2 = d0 * d0 + d1 * d1; + + if ((par1Entity instanceof AbstractTrains && d2 <= ((AbstractTrains) par1Entity).getLinkageDistance((EntityMinecart) par1Entity) * 0.7 && d2 >= 9.999999747378752E-5D) || (par1Entity instanceof EntityBogie && ((EntityBogie) par1Entity).entityMainTrain != null && d2 <= ((EntityBogie) par1Entity).entityMainTrain.getLinkageDistance((EntityMinecart) par1Entity) * 0.7 && d2 >= 9.999999747378752E-5D) || (!(par1Entity instanceof AbstractTrains) && d2 >= 9.999999747378752E-5D))// >= 9.999999747378752E-5D) + { + d2 = MathHelper.sqrt_double(d2); + if (d0 != 0) { + d0 /= d2; + } else { + d2 = 0; + } + if (d1 != 0) { + d1 /= d2; + } else { + d2 = 0; + } + + if (d2 > 1.0D) { + d2 = 1.0D; + } + + d0 *= d2; + d1 *= d2; + d0 *= 0.10000000149011612D; + d1 *= 0.10000000149011612D; + d0 *= 1.0F - this.entityCollisionReduction; + d1 *= 1.0F - this.entityCollisionReduction; + d0 *= 0.5D; + d1 *= 0.5D; + + if ((par1Entity instanceof EntityMinecart) && !this.isAttached) { + + Vec3 vec31 = Vec3.createVectorHelper(MathHelper.cos(this.rotationYaw * (float) Math.PI / 180.0F), 0.0D, MathHelper.sin(this.rotationYaw * (float) Math.PI / 180.0F)).normalize(); + + if (Math.abs(Vec3.createVectorHelper(par1Entity.posX - this.posX, 0.0D, par1Entity.posZ - this.posZ).normalize().dotProduct(vec31)) < 0.800000011920929D) { + return; + } + + double d9 = par1Entity.motionX + this.motionX; + double d8 = par1Entity.motionZ + this.motionZ; + + if ((par1Entity instanceof Locomotive && !isPoweredCart()) || (((EntityMinecart) par1Entity).isPoweredCart()) && !isPoweredCart()) { + + this.motionX *= 0.20000000298023224D; + this.motionZ *= 0.20000000298023224D; + this.addVelocity(par1Entity.motionX - d0, 0.0D, par1Entity.motionZ - d1); + if (!(par1Entity instanceof Locomotive)) { + par1Entity.motionX *= 0.949999988079071D; + par1Entity.motionZ *= 0.949999988079071D; + } + } else if ((!(par1Entity instanceof Locomotive) && isPoweredCart()) || (!((EntityMinecart) par1Entity).isPoweredCart() && isPoweredCart())) { + if (par1Entity instanceof EntityBogie && ((EntityBogie) par1Entity).entityMainTrain != null) { + this.motionX *= 0.2; + this.motionZ *= 0.2; + this.addVelocity(this.motionX + d0 * 3, 0.0D, this.motionZ + d1 * 3); + if (this instanceof Locomotive && ((EntityBogie) par1Entity).entityMainTrain instanceof Locomotive) { + this.motionX *= 0; + this.motionZ *= 0; + ((EntityBogie) par1Entity).entityMainTrain.motionX *= 0; + ((EntityBogie) par1Entity).entityMainTrain.motionZ *= 0; + } + } else { + par1Entity.motionX *= 0.20000000298023224D; + par1Entity.motionZ *= 0.20000000298023224D; + par1Entity.addVelocity(this.motionX + d0, 0.0D, this.motionZ + d1); + } + if (!(this instanceof Locomotive)) { + this.motionX *= 0.949999988079071D; + this.motionZ *= 0.949999988079071D; + } + + } else { + d9 *= 0.4D; + d8 *= 0.4D; + + if (par1Entity instanceof EntityBogie || par1Entity instanceof Locomotive) { + d9 *= -1;//-3 + d8 *= -1;//-3 + } + + this.motionX *= 0.20000000298023224D; + this.motionZ *= 0.20000000298023224D; + this.addVelocity(d9 - d0, 0.0D, d8 - d1); + if (par1Entity instanceof EntityBogie) { + //d7/=3; + //d8/=3; + d9 *= 0.333333333333; + d8 *= 0.333333333333; + } + + par1Entity.motionX *= 0.20000000298023224D; + par1Entity.motionZ *= 0.20000000298023224D; + par1Entity.addVelocity(d9 + d0, 0.0D, d8 + d1); + + } + } else { + + if (!(par1Entity instanceof EntityItem) && !(par1Entity instanceof EntityPlayer && this instanceof Locomotive) && !(par1Entity instanceof EntityLiving) && !(par1Entity instanceof EntityBogie)) { + this.addVelocity(-d0 * 2, 0.0D, -d1 * 2); + } else if ((par1Entity instanceof EntityBogie)) { + this.addVelocity(-d0, 0.0D, -d1); + }/* + * else if(par1Entity instanceof EntityBogie){ + * par1Entity.addVelocity(-d0, 0.0D, -d1); + * + * } + */ + //if(!(par1Entity instanceof EntityPlayer))par1Entity.addVelocity(d0 / 4.0D, 0.0D, d1 / 4.0D); + //par1Entity.setVelocity(0, 0.0D, 0); + par1Entity.addVelocity(d0 * 2, 0.0D, d1 * 2); + /* + * if(this.bogieUtility[0]!=null && + * this.bogieUtility[1]!=null){ + * this.bogieUtility[0].addVelocity(-d0*2, 0.0D, -d1*2); + * this.bogieUtility[1].addVelocity(-d0*2, 0.0D, -d1*2); + * } + */ + + if (par1Entity instanceof EntityPlayer) { + + MovingObjectPosition movingobjectposition = new MovingObjectPosition(par1Entity); + if (movingobjectposition.entityHit != null) { + // float f1 = MathHelper.sqrt_double(this.motionX * this.motionX + + // this.motionY * this.motionY + this.motionZ * this.motionZ); + // float f7 = MathHelper.sqrt_double(this.motionX * this.motionX + + // this.motionZ * this.motionZ); + //movingobjectposition.entityHit.setVelocity(-par1Entity.motionX, 0, -par1Entity.motionZ); + //movingobjectposition.entityHit.addVelocity(-((par1Entity.motionX * (double) (Math.abs(this.motionX+0.01)) * 2.60000002384185791D)) / (double) f7, 0.00000000000000001D, -(((par1Entity.motionZ * (double) (Math.abs(this.motionZ+0.01)) * 2.60000002384185791D)) / (double) f7)); + //movingobjectposition.entityHit.addVelocity(-((Math.abs(this.motionX) * (double) 1 * 0.0260000002384185791D)) / (double) f7, 0.00000000000000001D, -(((Math.abs(this.motionZ) * (double) 1 * 0.0260000002384185791D)) / (double) f7)); + par1Entity.velocityChanged = true; + } + } + + if (par1Entity instanceof EntityLiving) { + float f1 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ) * 60; + //f1 *= 6;//ratio + //f1 *= 10;//to get speed in "pseudo m/s" + if ((f1 * 3.6) < 35) {//if speed is smaller than 35km/h then don't do any damage but push entities + return; + } + int j1 = (int) Math.ceil((f1) * ((par1Entity instanceof EntityCreeper) ? 100 : 1)); + par1Entity.attackEntityFrom(TrainsDamageSource.ranOver, j1); + } + } + } + } + } + } + + /** + * To disable linking altogether, return false here. + * + * @return True if this cart is linkable. + */ + @Override + public boolean isLinkable() { + return true; + } + + /** + * Check called when attempting to link carts. + * + * @param cart The cart that we are attempting to link with. + * @return True if we can link with this cart. + */ + @Override + public boolean canLinkWithCart(EntityMinecart cart) { + return true; + } + + /** + * Returns true if this cart has two links or false if it can only link with + * one cart. + * + * @return True if two links + */ + @Override + public boolean hasTwoLinks() { + return true; + } + + /** + * Gets the distance at which this cart can be linked. This is called on + * both carts and added together to determine how close two carts need to be + * for a successful link. Default = LinkageManager.LINKAGE_DISTANCE + * + * @param cart The cart that you are attempting to link with. + * @return The linkage distance + */ + @Override + public float getLinkageDistance(EntityMinecart cart) { + return this.getOptimalDistance(cart) + 2.4F; + } + + /** + * Gets the optimal distance between linked carts. This is called on both + * carts and added together to determine the optimal rest distance between + * linked carts. The LinkageManager will attempt to maintain this distance + * between linked carts at all times. Default = + * LinkageManager.OPTIMAL_DISTANCE + * ETERNAL's NOTE: because this is forcing the value of EntityMinecart, it's actually a call to the super but using this instance. Not actually an infinate look like compiler thinks. + * + * @param cart The cart that you are linked with. + * @return The optimal rest distance + */ + @Override + public float getOptimalDistance(EntityMinecart cart) { + return this.getOptimalDistance(cart); + } + + /** + * Return false if linked carts have no effect on the velocity of this cart. + * Use carefully, if you link two carts that can't be adjusted, it will + * behave as if they are not linked. + * + * @param cart The cart doing the adjusting. + * @return Whether the cart can have its velocity adjusted. + */ + @Override + public boolean canBeAdjusted(EntityMinecart cart) { + return true; + } + + @Override + public void onLinkCreated(EntityMinecart cart) { + linked = true; + } + + /** + * Called when a link is broken (usually). + * + * @param cart The cart we were linked with. + */ + @Override + public void onLinkBroken(EntityMinecart cart) { + linked = false; + } + + @Override + public boolean isLinked() { + return linked; + } + + /** + * This function returns an ItemStack that represents this cart. This should + * be an ItemStack that can be used by the player to place the cart. This is + * the item that was registered with the cart via the registerMinecart + * function, but is not necessary the item the cart drops when destroyed. + * + * @return An ItemStack that can be used to place the cart. + */ + @Override + public ItemStack getCartItem() { + return getItemsDropped().get(0); + } + + /** + * Returns true if this cart is self propelled. + * + * @return True if powered. + */ + @Override + public boolean isPoweredCart() { + return (isLocomotive()); + } + + /** + * Returns true if this cart is a storage cart Some carts may have + * inventories but not be storage carts and some carts without inventories + * may be storage carts. + * + * @return True if this cart should be classified as a storage cart. + */ + public boolean isStorageCart() { + return (isFreightCart()); + } + + /** + * Returns true if this cart can be ridden by an Entity. + * + * @return True if this cart can be ridden. + */ + @Override + public boolean canBeRidden() { + return ((isLocomotive() || isPassenger() || isWorkCart())); + } + + /** + * Returns true if this cart can currently use rails. This function is + * mainly used to gracefully detach a minecart from a rail. + * + * @return True if the minecart can use rails. + */ + @Override + public boolean canUseRail() { + return canUseRail; + } + + /** + * Set whether the minecart can use rails. This function is mainly used to + * gracefully detach a minecart from a rail. + * + * @param use Whether the minecart can currently use rails. + */ + @Override + public void setCanUseRail(boolean use) { + canUseRail = use; + } + + /** + * Return false if this cart should not call IRail.onMinecartPass() and + * should ignore Powered Rails. + * + * @return True if this cart should call IRail.onMinecartPass(). + */ + @Override + public boolean shouldDoRailFunctions() { + return true; + } + + protected void applyDragAndPushForces() { + motionX *= getDragAir(); + motionY *= 0.0D; + motionZ *= getDragAir(); + } + + /** + * Carts should return their drag factor here + * + * @return The drag rate. + */ + @Override + public double getDragAir() { + return 0.98D; + } + + @Override + public void moveMinecartOnRail(int i, int j, int k, double d) { + Block id = worldObj.getBlock(i, j, k); + if (!BlockRailBase.func_150051_a(id)) { + return; + } + railMaxSpeed = ((BlockRailBase) id).getRailMaxSpeed(worldObj, this, i, j, k); + maxSpeed = Math.max(railMaxSpeed, getMaxCartSpeedOnRail()); + maxSpeed = SpeedHandler.handleSpeed(railMaxSpeed, maxSpeed, this); + if (this.speedLimiter != 0 && speedWasSet) { + //maxSpeed *= this.speedLimiter; + adjustSpeed(maxSpeed, speedLimiter); + } + if ((!isLocomotive())) { + motionX *= 0.99D; + motionZ *= 0.99D; + } else { + motionX *= 1D; + motionZ *= 1D; + } + if (motionX < -maxSpeed) { + motionX = -maxSpeed; + } + if (motionX > maxSpeed) { + motionX = maxSpeed; + } + if (motionZ < -maxSpeed) { + motionZ = -maxSpeed; + } + if (motionZ > maxSpeed) { + motionZ = maxSpeed; + } + moveEntity(motionX, 0.0D, motionZ); + } + + public void adjustSpeed(float maxSpeed, double limiter) { + float targetSpeed = (float) (maxSpeed * limiter); + float targetSpeedX = (float) Math.copySign(targetSpeed, motionX); + float targetSpeedZ = (float) Math.copySign(targetSpeed, motionZ); + if (motionX > targetSpeedX && motionX != 0) motionX -= 0.01; + if (motionZ > targetSpeedZ && motionZ != 0) motionZ -= 0.01; + if (motionX < targetSpeedX && motionX != 0) motionX += 0.01; + if (motionZ < targetSpeedZ && motionZ != 0) motionZ += 0.01; + if ((Math.abs(motionX) < Math.abs(targetSpeedX) + 0.01) && (Math.abs(motionX) > Math.abs(targetSpeedX) - 0.01)) { + speedWasSet = false; + } + if ((Math.abs(motionZ) < Math.abs(targetSpeedZ) + 0.01) && (Math.abs(motionZ) > Math.abs(targetSpeedZ) - 0.01)) { + speedWasSet = false; + } + } + + + protected void adjustSlopeVelocities(int i1) { + if (this instanceof Locomotive) { + return; + } + double d4 = -0.002D;//0.0078125D + if (i1 == 2) { + motionX -= d4; + } else if (i1 == 3) { + motionX += d4; + } else if (i1 == 4) { + motionZ += d4; + } else if (i1 == 5) { + motionZ -= d4; + } + } + + public boolean isUseableByPlayer(EntityPlayer entityplayer) { + return (!isDead && entityplayer.getDistanceSqToEntity(this) <= 300D); + } + + /** + * Returns the carts max speed. Carts going faster than 1.1 cause issues + * with chunk loading. This value is compared with the rails max speed to determine + * the carts current max speed. A normal rails max speed is 0.4. + * + * @return Carts max speed. + */ + @Override + public float getMaxCartSpeedOnRail() { + return maxSpeed; + } + + @Override + public float getMaxSpeedAirLateral() { + return maxSpeedAirLateral; + } + + @Override + public void setMaxSpeedAirLateral(float value) { + maxSpeedAirLateral = value; + } + + @Override + public float getMaxSpeedAirVertical() { + return maxSpeedAirVertical; + } + + @Override + public void setMaxSpeedAirVertical(float value) { + maxSpeedAirVertical = value; + } + + @Override + public void setDragAir(double value) { + dragAir = value; + } + + @Override + public boolean canOverheat() { + return false; + } + + @Override + public int getOverheatTime() { + return 0; + } + + /** + * returns the middle of the overheat bar in the HUD + */ + public int getAverageOverheat() { + return (this.getOverheatTime() + 30) / 2; + } + + /** + * client-server communication + */ + public void setOverheatLevel(int overheatLevel) { + this.overheatLevel = overheatLevel; + this.dataWatcher.updateObject(20, overheatLevel); + } + + /** + * client-server communication + */ + public int getOverheatLevel() { + return (this.dataWatcher.getWatchableObjectInt(20)); + } + + /** + * @see SpeedHandler description in SpeedHandler + */ + public double convertSpeed(Locomotive entity) { + double speed = entity.getCustomSpeed();// speed in m/s + if (ConfigHandler.REAL_TRAIN_SPEED) { + speed /= 2;// applying ratio + } else { + speed /= 6; + } + speed /= 10; + return speed; + } + + /** + * Used in SoundUpdaterRollingStock + */ + public int getMotionXClient() { + return (this.dataWatcher.getWatchableObjectInt(14)); + } + + /** + * Used in SoundUpdaterRollingStock + */ + public int getMotionZClient() { + return (this.dataWatcher.getWatchableObjectInt(21)); + } + + @Override + protected void func_145775_I() { + int var1 = MathHelper.floor_double(this.boundingBoxSmall.minX + 0.001D); + int var2 = MathHelper.floor_double(this.boundingBoxSmall.minY + 0.001D); + int var3 = MathHelper.floor_double(this.boundingBoxSmall.minZ + 0.001D); + int var4 = MathHelper.floor_double(this.boundingBoxSmall.maxX - 0.001D); + int var5 = MathHelper.floor_double(this.boundingBoxSmall.maxY - 0.001D); + int var6 = MathHelper.floor_double(this.boundingBoxSmall.maxZ - 0.001D); + + if (this.worldObj.checkChunksExist(var1, var2, var3, var4, var5, var6)) { + for (int var7 = var1; var7 <= var4; ++var7) { + for (int var8 = var2; var8 <= var5; ++var8) { + for (int var9 = var3; var9 <= var6; ++var9) { + Block var10 = this.worldObj.getBlock(var7, var8, var9); + + if (var10 != null) { + var10.onEntityCollidedWithBlock(this.worldObj, var7, var8, var9, this); + } + } + } + } + } + } + + private void setBoundingBoxSmall(double par1, double par3, double par5, float width, float height) { + float var7 = width * 0.5F; + this.boundingBoxSmall.setBounds(par1 - var7, par3 - this.yOffset + this.ySize, par5 - var7, par1 + var7, par3 - this.yOffset + this.ySize + height, par5 + var7); + } + + public float getYaw() { + return this.rotationYaw; + } + + public float getPitch() { + return this.rotationPitch; + } + + @Override + public int getMinecartType() { + return 0; + } + + @Override + public List getItemsDropped() { + List items = new ArrayList(); + TrainRecord train = Traincraft.instance.traincraftRegistry.getTrainRecord(this.getClass()); + if (train != null) { + items.add(ItemRollingStock.setPersistentData(new ItemStack(train.getItem()), this, this.getUniqueTrainID(), trainCreator, trainOwner, getColor())); + return items; + } + return null; + } + + @SideOnly(Side.CLIENT) + public Vec3 renderY(double par1, double par3, double par5, double par7) { + int i = MathHelper.floor_double(par1); + int j = MathHelper.floor_double(par3); + int k = MathHelper.floor_double(par5); + + if (worldObj.getBlock(i, j - 1, k) == BlockIDs.tcRail.block || worldObj.getBlock(i, j - 1, k) == BlockIDs.tcRailGag.block) { + --j; + } else if (worldObj.getBlock(i, j + 1, k) == BlockIDs.tcRail.block || worldObj.getBlock(i, j + 1, k) == BlockIDs.tcRailGag.block) { + j++; + } + + Block l = this.worldObj.getBlock(i, j, k); + int i1; + if (l == BlockIDs.tcRail.block || l == BlockIDs.tcRailGag.block) { + i1 = worldObj.getBlockMetadata(i, j, k); + if (i1 == 2) { + i1 = 0; + } else if (i1 == 3) { + i1 = 1; + } + } else { + return null; + } + if (l != BlockIDs.tcRail.block && l != BlockIDs.tcRailGag.block) { + par3 = j; + + if (i1 >= 2 && i1 <= 5) { + par3 = j + 1; + } + } else if (l == BlockIDs.tcRail.block || l == BlockIDs.tcRailGag.block) { + TileEntity tile = worldObj.getTileEntity(i, j, k); + if (tile != null && tile instanceof TileTCRail) { + if (((TileTCRail) tile).getType() != null && !ItemTCRail.isTCSlopeTrack((TileTCRail) tile)) { + par3 = j; + } + } else if (tile != null && tile instanceof TileTCRailGag) { + int xOrigin = ((TileTCRailGag) tile).originX; + int yOrigin = ((TileTCRailGag) tile).originY; + int zOrigin = ((TileTCRailGag) tile).originZ; + TileEntity tileOrigin = worldObj.getTileEntity(xOrigin, yOrigin, zOrigin); + if (tileOrigin != null && (tileOrigin instanceof TileTCRail) && ((TileTCRail) tileOrigin).getType() != null && !ItemTCRail.isTCSlopeTrack((TileTCRail) tileOrigin)) { + par3 = j; + } + } + } + int[][] aint = matrix[i1]; + double d4 = aint[1][0] - aint[0][0]; + double d5 = aint[1][2] - aint[0][2]; + double d6 = Math.sqrt(d4 * d4 + d5 * d5); + d4 /= d6; + d5 /= d6; + par1 += d4 * par7; + par5 += d5 * par7; + + if (l != BlockIDs.tcRail.block && l != BlockIDs.tcRailGag.block) { + if (aint[0][1] != 0 && MathHelper.floor_double(par1) - i == aint[0][0] && MathHelper.floor_double(par5) - k == aint[0][2]) { + par3 += aint[0][1]; + } else if (aint[1][1] != 0 && MathHelper.floor_double(par1) - i == aint[1][0] && MathHelper.floor_double(par5) - k == aint[1][2]) { + par3 += aint[1][1]; + } + } + return this.func_70489_a(par1, par3, par5); + } + + //private int renderTicks; + public Vec3 yVector(double par1, double par3, double par5) { + int i = MathHelper.floor_double(par1); + int j = MathHelper.floor_double(par3); + int k = MathHelper.floor_double(par5); + if (worldObj.getBlock(i, j - 1, k) == BlockIDs.tcRail.block || worldObj.getBlock(i, j - 1, k) == BlockIDs.tcRailGag.block) { + --j; + } else if (worldObj.getBlock(i, j + 1, k) == BlockIDs.tcRail.block || worldObj.getBlock(i, j + 1, k) == BlockIDs.tcRailGag.block) { + j++; + } + + Block l = this.worldObj.getBlock(i, j, k); + int i1 = 0; + + /* + * boolean shouldIgnoreYCoord = false; TileEntity tile = + * worldObj.getBlockTileEntity(i, j, k); if(tile!=null && tile + * instanceof TileTCRail){ if(((TileTCRail)tile).getType()!=null && + * ((TileTCRail + * )tile).getType().equals(TrackTypes.MEDIUM_SLOPE.getLabel())){ + * shouldIgnoreYCoord = true; } } if(tile!=null && tile instanceof + * TileTCRailGag){ int xOrigin = ((TileTCRailGag)tile).originX; int + * yOrigin = ((TileTCRailGag)tile).originY; int zOrigin = + * ((TileTCRailGag)tile).originZ; TileEntity tileOrigin = + * worldObj.getBlockTileEntity(xOrigin, yOrigin, zOrigin); + * if(tileOrigin!=null && (tileOrigin instanceof TileTCRail) && + * ((TileTCRail)tileOrigin).getType()!=null && + * ((TileTCRail)tileOrigin).getType + * ().equals(TrackTypes.MEDIUM_SLOPE.getLabel())){ shouldIgnoreYCoord = + * true; } } + */ + if (l == BlockIDs.tcRail.block || l == BlockIDs.tcRailGag.block) { + //par3 = (double) j; + int[][] aint = matrix[i1]; + double d3 = 0.0D; + double d4 = i + 0.5D + aint[0][0] * 0.5D; + double d6 = k + 0.5D + aint[0][2] * 0.5D; + double d10 = (i + 0.5D + aint[1][0] * 0.5D) - d4; + double d12 = (k + 0.5D + aint[1][2] * 0.5D) - d6; + + if (d10 == 0.0D) { + d3 = par5 - k; + } else if (d12 == 0.0D) { + d3 = par1 - i; + } else { + double d13 = par1 - d4; + double d14 = par5 - d6; + d3 = (d13 * d10 + d14 * d12) * 2.0D; + } + return Vec3.createVectorHelper(d4 + d10 * d3, par3, d6 + d12 * d3); + } else { + return null; + } + } + + public ItemStack[] getInventory() { + return null; + } } \ No newline at end of file diff --git a/src/main/java/train/common/api/Freight.java b/src/main/java/train/common/api/Freight.java index 4ec8175881..6bc0083660 100644 --- a/src/main/java/train/common/api/Freight.java +++ b/src/main/java/train/common/api/Freight.java @@ -11,195 +11,210 @@ import train.common.adminbook.ServerLogger; public abstract class Freight extends EntityRollingStock implements IInventory { - public ItemStack cargoItems[]; - protected double itemInsideCount = 0; - private int slotsFilled=0; - public Freight(World world) { - super(world); - dataWatcher.addObject(22, 0); - } - - @Override - public boolean attackEntityFrom(DamageSource damagesource, float i) { - if (worldObj.isRemote) { + public ItemStack[] cargoItems; + protected double itemInsideCount = 0; + private int slotsFilled = 0; + + public Freight(World world) { + super(world); + dataWatcher.addObject(22, 0); + } + + @Override + public boolean attackEntityFrom(DamageSource damagesource, float i) { + if (worldObj.isRemote) { + return true; + } + + if (canBeDestroyedByPlayer(damagesource)) { return true; } - if(canBeDestroyedByPlayer(damagesource))return true; - super.attackEntityFrom(damagesource, i); - setRollingDirection(-getRollingDirection()); - setRollingAmplitude(10); - setBeenAttacked(); - setDamage(getDamage() + i * 10); - if (getDamage() > 40) { - if (riddenByEntity != null) { - riddenByEntity.mountEntity(this); - } - this.setDead(); - ServerLogger.deleteWagon(this); - if(damagesource.getEntity() instanceof EntityPlayer) { - dropCartAsItem(((EntityPlayer)damagesource.getEntity()).capabilities.isCreativeMode); - } - } - return true; - } - - /* IInventory implements */ - @Override - public ItemStack getStackInSlot(int i) { - return cargoItems[i]; - } - - @Override - public void openInventory() {} - - @Override - public void closeInventory() {} - - @Override - public ItemStack getStackInSlotOnClosing(int par1) { - if (this.cargoItems[par1] != null) { - ItemStack var2 = this.cargoItems[par1]; - this.cargoItems[par1] = null; - return var2; - } - else { - return null; - } - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if (cargoItems[i] != null) { - if (cargoItems[i].stackSize <= j) { - ItemStack itemstack = cargoItems[i]; - cargoItems[i] = null; - return itemstack; - } - ItemStack itemstack1 = cargoItems[i].splitStack(j); - if (cargoItems[i].stackSize == 0) { - cargoItems[i] = null; - } - return itemstack1; - } - else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemstack) { - cargoItems[i] = itemstack; - if (itemstack != null && itemstack.stackSize > getInventoryStackLimit()) { - itemstack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public void markDirty() { - if(!worldObj.isRemote){ - this.slotsFilled=0; - for (int i = 0; i < getSizeInventory(); i++) { - ItemStack itemstack = getStackInSlot(i); - if(itemstack != null) { - slotsFilled++; - } - } - this.dataWatcher.updateObject(22, slotsFilled); - } - } - - @Override - public String getInventoryName() { - return "Freight cart"; - } - - @Override - public abstract int getSizeInventory(); - - /** - * Returns true if this cart is a storage cart Some carts may have inventories but not be storage carts and some carts without inventories may be storage carts. - * - * @return True if this cart should be classified as a storage cart. - */ - @Override - public boolean isStorageCart() { - return true; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public void onUpdate() { - super.onUpdate(); - handleMass(); - } - - /** - * Handle mass depending on item count tenders are done differently - */ - protected void handleMass() { - if (this.updateTicks % 10 != 0) - return; - if (worldObj.isRemote) - return; - this.mass = this.getDefaultMass(); - this.itemInsideCount = 0; - for (int i = 0; i < getSizeInventory(); i++) { - ItemStack itemstack = getStackInSlot(i); - if (itemstack != null && itemstack.stackSize > 0) { - this.itemInsideCount += itemstack.stackSize; - } - } - mass += (this.itemInsideCount * 0.0001); - } - - @Override - public boolean isItemValidForSlot(int i, ItemStack itemstack) { - return true; - } - public int getAmmountOfCargo() { - return this.dataWatcher.getWatchableObjectInt(22); - } - @Override - protected void readEntityFromNBT(NBTTagCompound nbttagcompound) { - super.readEntityFromNBT(nbttagcompound); - ItemStack cargoItemsCount[]; - NBTTagList nbttaglist = nbttagcompound.getTagList("Items", Constants.NBT.TAG_COMPOUND); - cargoItemsCount = new ItemStack[getSizeInventory()]; - for (int i = 0; i < nbttaglist.tagCount(); i++) { - NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); - int j = nbttagcompound1.getByte("Slot") & 0xff; - if (j >= 0 && j < cargoItemsCount.length) { - cargoItemsCount[j] = ItemStack.loadItemStackFromNBT(nbttagcompound1); - } - } - slotsFilled = 0; - for (int i = 0; i < getSizeInventory(); i++) { - ItemStack itemstack = cargoItemsCount[i]; - if(itemstack != null) { - slotsFilled++; - } - } - this.dataWatcher.updateObject(22, slotsFilled); - } - - @Override - public void dropCartAsItem(boolean isCreative){ - if(!itemdropped) { - super.dropCartAsItem(isCreative); - if (!(this instanceof Tender) && cargoItems != null) { - for (ItemStack stack : cargoItems) { - if (stack != null) { - entityDropItem(stack, 0); - } - } - } - } - } - @Override - public ItemStack[] getInventory(){return cargoItems;} + super.attackEntityFrom(damagesource, i); + setRollingDirection(-getRollingDirection()); + setRollingAmplitude(10); + setBeenAttacked(); + setDamage(getDamage() + i * 10); + + if (getDamage() > 40) { + if (riddenByEntity != null) { + riddenByEntity.mountEntity(this); + } + + this.setDead(); + ServerLogger.deleteWagon(this); + + if (damagesource.getEntity() instanceof EntityPlayer) { + dropCartAsItem(((EntityPlayer) damagesource.getEntity()).capabilities.isCreativeMode); + } + } + return true; + } + + /* IInventory implements */ + @Override + public ItemStack getStackInSlot(int i) { + return cargoItems[i]; + } + + @Override + public void openInventory() { + } + + @Override + public void closeInventory() { + } + + @Override + public ItemStack getStackInSlotOnClosing(int par1) { + if (this.cargoItems[par1] != null) { + ItemStack var2 = this.cargoItems[par1]; + this.cargoItems[par1] = null; + return var2; + } else { + return null; + } + } + + @Override + public ItemStack decrStackSize(int i, int j) { + if (cargoItems[i] != null) { + if (cargoItems[i].stackSize <= j) { + ItemStack itemstack = cargoItems[i]; + cargoItems[i] = null; + return itemstack; + } + ItemStack itemstack1 = cargoItems[i].splitStack(j); + if (cargoItems[i].stackSize == 0) { + cargoItems[i] = null; + } + return itemstack1; + } else { + return null; + } + } + + @Override + public void setInventorySlotContents(int i, ItemStack itemstack) { + cargoItems[i] = itemstack; + if (itemstack != null && itemstack.stackSize > getInventoryStackLimit()) { + itemstack.stackSize = getInventoryStackLimit(); + } + } + + @Override + public void markDirty() { + if (!worldObj.isRemote) { + this.slotsFilled = 0; + for (int i = 0; i < getSizeInventory(); i++) { + ItemStack itemstack = getStackInSlot(i); + if (itemstack != null) { + slotsFilled++; + } + } + this.dataWatcher.updateObject(22, slotsFilled); + } + } + + @Override + public String getInventoryName() { + return "Freight cart"; + } + + @Override + public abstract int getSizeInventory(); + + /** + * Returns true if this cart is a storage cart Some carts may have inventories but not be storage carts and some carts without inventories may be storage carts. + * + * @return True if this cart should be classified as a storage cart. + */ + @Override + public boolean isStorageCart() { + return true; + } + + @Override + public int getInventoryStackLimit() { + return 64; + } + + @Override + public void onUpdate() { + super.onUpdate(); + handleMass(); + } + + /** + * Handle mass depending on item count tenders are done differently + */ + protected void handleMass() { + if (this.updateTicks % 10 != 0) + return; + if (worldObj.isRemote) + return; + this.mass = this.getDefaultMass(); + this.itemInsideCount = 0; + for (int i = 0; i < getSizeInventory(); i++) { + ItemStack itemstack = getStackInSlot(i); + if (itemstack != null && itemstack.stackSize > 0) { + this.itemInsideCount += itemstack.stackSize; + } + } + mass += (this.itemInsideCount * 0.0001); + } + + @Override + public boolean isItemValidForSlot(int i, ItemStack itemstack) { + return true; + } + + public int getAmmountOfCargo() { + return this.dataWatcher.getWatchableObjectInt(22); + } + + @Override + protected void readEntityFromNBT(NBTTagCompound nbttagcompound) { + super.readEntityFromNBT(nbttagcompound); + ItemStack[] cargoItemsCount; + NBTTagList nbttaglist = nbttagcompound.getTagList("Items", Constants.NBT.TAG_COMPOUND); + cargoItemsCount = new ItemStack[getSizeInventory()]; + + for (int i = 0; i < nbttaglist.tagCount(); i++) { + NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); + int j = nbttagcompound1.getByte("Slot") & 0xff; + if (j < cargoItemsCount.length) { + cargoItemsCount[j] = ItemStack.loadItemStackFromNBT(nbttagcompound1); + } + } + + slotsFilled = 0; + + for (int i = 0; i < getSizeInventory(); i++) { + ItemStack itemstack = cargoItemsCount[i]; + if (itemstack != null) { + slotsFilled++; + } + } + this.dataWatcher.updateObject(22, slotsFilled); + } + + @Override + public void dropCartAsItem(boolean isCreative) { + if (!itemdropped) { + super.dropCartAsItem(isCreative); + if (!(this instanceof Tender) && cargoItems != null) { + for (ItemStack stack : cargoItems) { + if (stack != null) { + entityDropItem(stack, 0); + } + } + } + } + } + + @Override + public ItemStack[] getInventory() { + return cargoItems; + } } \ No newline at end of file diff --git a/src/main/java/train/common/api/TrainRecord.java b/src/main/java/train/common/api/TrainRecord.java index d4ba8f8557..ff42ef1a2f 100644 --- a/src/main/java/train/common/api/TrainRecord.java +++ b/src/main/java/train/common/api/TrainRecord.java @@ -2,10 +2,10 @@ import net.minecraft.item.Item; import net.minecraft.world.World; -import scala.actors.threadpool.Arrays; import java.lang.reflect.InvocationTargetException; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; public abstract class TrainRecord { @@ -38,11 +38,11 @@ public abstract class TrainRecord { public abstract int getTankCapacity(); - public abstract List getColors(); + public abstract List getColors(); - public List getLiveries(){ - if(skins.size()==0 && getColors()!=null){ - skins=getColors(); + public List getLiveries() { + if (skins.isEmpty() && getColors() != null) { + skins = getColors(); } return skins; } @@ -62,21 +62,19 @@ public List getLiveries(){ public abstract AbstractTrains getEntity(World world, double x, double y, double z); - - - public static TrainRecord makeEntry(String entryName, String internalName, Class entityClass, Item item, String trainType, int MHP, int maxSpeed, double mass, int fuelConsumption, int waterConsumption, int heatingTime, double accelerationRate, double brakeRate, int tankCapacity, String[] colors, int guiRenderScale, double bogieLocoPosition){ - return makeEntry(entryName, internalName, entityClass, item, trainType, MHP, maxSpeed, mass, fuelConsumption, waterConsumption, heatingTime, accelerationRate, brakeRate, tankCapacity,0, colors, guiRenderScale, bogieLocoPosition, ""); + public static TrainRecord makeEntry(String entryName, String internalName, Class entityClass, Item item, String trainType, int MHP, int maxSpeed, double mass, int fuelConsumption, int waterConsumption, int heatingTime, double accelerationRate, double brakeRate, int tankCapacity, String[] colors, int guiRenderScale, double bogieLocoPosition) { + return makeEntry(entryName, internalName, entityClass, item, trainType, MHP, maxSpeed, mass, fuelConsumption, waterConsumption, heatingTime, accelerationRate, brakeRate, tankCapacity, 0, colors, guiRenderScale, bogieLocoPosition, ""); } - public static TrainRecord makeEntry(String entryName, String internalName, Class entityClass, Item item, String trainType, int MHP, int maxSpeed, double mass, int fuelConsumption, int waterConsumption, int heatingTime, double accelerationRate, double brakeRate, int tankCapacity, String[] colors, int guiRenderScale, double bogieLocoPositions, String additionnalTooltip){ - return makeEntry(entryName, internalName, entityClass, item, trainType, MHP, maxSpeed, mass, fuelConsumption, waterConsumption, heatingTime, accelerationRate, brakeRate, tankCapacity,0, colors, guiRenderScale, bogieLocoPositions, additionnalTooltip); + public static TrainRecord makeEntry(String entryName, String internalName, Class entityClass, Item item, String trainType, int MHP, int maxSpeed, double mass, int fuelConsumption, int waterConsumption, int heatingTime, double accelerationRate, double brakeRate, int tankCapacity, String[] colors, int guiRenderScale, double bogieLocoPositions, String additionnalTooltip) { + return makeEntry(entryName, internalName, entityClass, item, trainType, MHP, maxSpeed, mass, fuelConsumption, waterConsumption, heatingTime, accelerationRate, brakeRate, tankCapacity, 0, colors, guiRenderScale, bogieLocoPositions, additionnalTooltip); } - public static TrainRecord makeEntry(String entryName, String internalName,Class entityClass, Item item, String trainType, double mass, String[] colors, int guiRenderScale, int cargoCapacity, String additionnalTooltip){ - return makeEntry(entryName, internalName, entityClass, item, trainType, 0, 0, mass, 0, 0, 0, 0, 0, 0,cargoCapacity, colors, guiRenderScale, 0, additionnalTooltip); + public static TrainRecord makeEntry(String entryName, String internalName, Class entityClass, Item item, String trainType, double mass, String[] colors, int guiRenderScale, int cargoCapacity, String additionnalTooltip) { + return makeEntry(entryName, internalName, entityClass, item, trainType, 0, 0, mass, 0, 0, 0, 0, 0, 0, cargoCapacity, colors, guiRenderScale, 0, additionnalTooltip); } - public static TrainRecord makeEntry(final String entryName, final String internalName, final Class entityClass, final Item item, final String trainType, final int MHP, final int maxSpeed, final double mass, final int fuelConsumption, final int waterConsumption, final int heatingTime, final double accelerationRate, final double brakeRate, final int tankCapacity, final int cargoCapacity, final String[] colors, final int guiRenderScale, final double bogieLocoPositions, final String additionnalTooltip){ + public static TrainRecord makeEntry(final String entryName, final String internalName, final Class entityClass, final Item item, final String trainType, final int MHP, final int maxSpeed, final double mass, final int fuelConsumption, final int waterConsumption, final int heatingTime, final double accelerationRate, final double brakeRate, final int tankCapacity, final int cargoCapacity, final String[] colors, final int guiRenderScale, final double bogieLocoPositions, final String additionnalTooltip) { return new TrainRecord() { @Override public String getName() { @@ -145,7 +143,7 @@ public int getTankCapacity() { @Override public List getColors() { - if(colors==null){ + if (colors == null) { return new ArrayList<>(); } else { return Arrays.asList(colors); @@ -181,17 +179,8 @@ public int getCargoCapacity() { public AbstractTrains getEntity(World world) { try { return (AbstractTrains) entityClass.getConstructor(World.class).newInstance(world); - } catch (IllegalArgumentException e) { - e.printStackTrace(); - } catch (SecurityException e) { - e.printStackTrace(); - } catch (InstantiationException e) { - e.printStackTrace(); - } catch (IllegalAccessException e) { - e.printStackTrace(); - } catch (InvocationTargetException e) { - e.printStackTrace(); - } catch (NoSuchMethodException e) { + } catch (IllegalArgumentException | NoSuchMethodException | SecurityException | InstantiationException | + IllegalAccessException | InvocationTargetException e) { e.printStackTrace(); } return null; @@ -200,22 +189,13 @@ public AbstractTrains getEntity(World world) { @Override public AbstractTrains getEntity(World world, double x, double y, double z) { try { - if(world.isRemote){ + if (world.isRemote) { entityClass.getConstructor(World.class).newInstance(world); } else { return (AbstractTrains) entityClass.getConstructor(World.class, double.class, double.class, double.class).newInstance(world, x, y, z); } - } catch (IllegalArgumentException e) { - e.printStackTrace(); - } catch (SecurityException e) { - e.printStackTrace(); - } catch (InstantiationException e) { - e.printStackTrace(); - } catch (IllegalAccessException e) { - e.printStackTrace(); - } catch (InvocationTargetException e) { - e.printStackTrace(); - } catch (NoSuchMethodException e) { + } catch (IllegalArgumentException | SecurityException | InstantiationException | + IllegalAccessException | InvocationTargetException | NoSuchMethodException e) { e.printStackTrace(); } return null; diff --git a/src/main/java/train/common/core/CommonProxy.java b/src/main/java/train/common/core/CommonProxy.java index 2cd739dee5..1333002154 100644 --- a/src/main/java/train/common/core/CommonProxy.java +++ b/src/main/java/train/common/core/CommonProxy.java @@ -2,7 +2,6 @@ import cpw.mods.fml.client.FMLClientHandler; import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.Loader; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.network.IGuiHandler; import cpw.mods.fml.common.registry.GameRegistry; @@ -41,225 +40,229 @@ import java.util.List; public class CommonProxy implements IGuiHandler { - public static List playerList = new ArrayList(); - public static boolean debug = false; - - public void throwAlphaException() { - throw new IllegalStateException("You're trying to use a Traincraft alpha-version past its expiry date. Download a release-build at https://minecraft.curseforge.com/projects/traincraft."); - } - - public void setKeyBinding(String name, int value) {} - - public void registerRenderInformation() {} - - public void registerEvents(FMLPreInitializationEvent event){ - WorldEvents worldEvents = new WorldEvents(); - ChunkEvents chunkEvents = new ChunkEvents(); - - registerEvent(worldEvents); - registerEvent(chunkEvents); - ForgeChunkManager.setForcedChunkLoadingCallback(Traincraft.instance, chunkEvents); - - } - - public void registerEvent(Object o){ - FMLCommonHandler.instance().bus().register(o); - MinecraftForge.EVENT_BUS.register(o); - } - - public void registerTileEntities() { - GameRegistry.registerTileEntity(TileCrafterTierI.class, "TileCrafterTierI"); - GameRegistry.registerTileEntity(TileCrafterTierII.class, "TileCrafterTierII"); - GameRegistry.registerTileEntity(TileCrafterTierIII.class, "TileCrafterTierIII"); - GameRegistry.registerTileEntity(TileTrainWbench.class, "TileTrainWbench"); - GameRegistry.registerTileEntity(TileEntityDistil.class, "Tile Distil"); - GameRegistry.registerTileEntity(TileEntityOpenHearthFurnace.class, "Tile OpenHearthFurnace"); - GameRegistry.registerTileEntity(TileStopper.class, "TileStopper"); - GameRegistry.registerTileEntity(TileEmbeddedStopper.class, "TileEmbeddedStopper"); - GameRegistry.registerTileEntity(TileAmericanStopper.class, "TileAmericanStopper"); - GameRegistry.registerTileEntity(TileSignal.class, "TileTrainSignal"); - GameRegistry.registerTileEntity(TileLantern.class, "tileLantern"); - GameRegistry.registerTileEntity(TileSwitchStand.class, "tileSwitchStand"); - GameRegistry.registerTileEntity(TileMFPBWigWag.class, "tileMFPBWigWag"); - GameRegistry.registerTileEntity(TileWaterWheel.class, "tileWaterWheel"); - GameRegistry.registerTileEntity(TileWindMill.class, "tileWindMill"); - GameRegistry.registerTileEntity(TileGeneratorDiesel.class, "tileGeneratorDiesel"); - GameRegistry.registerTileEntity(TileBook.class, "tileBook"); - GameRegistry.registerTileEntity(TileTCRailGag.class, "tileTCRailGag"); - GameRegistry.registerTileEntity(TileTCRail.class, "tileTCRail"); - GameRegistry.registerTileEntity(TileBridgePillar.class, "tileTCBridgePillar"); - GameRegistry.registerTileEntity(TileMetroMadridPole.class, "tileMetroMadridPole"); - - //switches -hariesh - GameRegistry.registerTileEntity(TileowoSwitchStand.class, "tileowoswitchstand"); - GameRegistry.registerTileEntity(TilecircleSwitchStand.class, "tilecircleswitchstand"); - GameRegistry.registerTileEntity(TileMILWSwitchStand.class, "tileMILWSwitchStand"); - GameRegistry.registerTileEntity(TileautoSwitchStand.class, "tileautoSwitchStand"); - GameRegistry.registerTileEntity(TileowoYardSwitchStand.class, "tileowoYardSwitchStand"); - - GameRegistry.registerTileEntity(TileoverheadWire.class, "tileoverheadwire"); - GameRegistry.registerTileEntity(TileoverheadWireDouble.class, "tileoverheadwiredouble"); - GameRegistry.registerTileEntity(TilesignalSpanish.class, "tilesignalspanish"); - GameRegistry.registerTileEntity(TilekSignal.class, "tileksignal"); - GameRegistry.registerTileEntity(TileSpeedSign.class, "tilespeedsign"); - - if (Loader.isModLoaded("ComputerCraft")) { - GameRegistry.registerTileEntity(TileInfoTransmitterSpeed.class, "tileInfoTransmitterSpeed"); - GameRegistry.registerTileEntity(TileInfoTransmitterMTC.class, "tileInfoTransmitterMTC"); - GameRegistry.registerTileEntity(TileInfoGrabberMTC.class, "tileInfoReceiverMTC"); - GameRegistry.registerTileEntity(TileInfoGrabberDestination.class, "tileInfoReceiverDestination"); - GameRegistry.registerTileEntity(TileATOTransmitterStopPoint.class, "tileATOTransmitterStopPoint"); - GameRegistry.registerTileEntity(TilePDMInstructionRadio.class, "tilePDMInstructionRadio"); - } - - //GameRegistry.registerTileEntity(TileFortyFootContainer.class, "tileFortyFootContainer"); - } - - public void registerComputerCraftPeripherals() throws ClassNotFoundException { - Class computerCraft = Class.forName("dan200.computercraft.ComputerCraft"); - try { - Method computerCraft_registerPeripheralProvider = computerCraft.getMethod("registerPeripheralProvider", new Class[] { Class.forName("dan200.computercraft.api.peripheral.IPeripheralProvider") }); - - //Register all CC required blocks - computerCraft_registerPeripheralProvider.invoke(null, BlockInfoTransmitterSpeed.instance); - computerCraft_registerPeripheralProvider.invoke(null, BlockInfoGrabberMTC.instance); - computerCraft_registerPeripheralProvider.invoke(null, BlockInfoTransmitterMTC.instance); - computerCraft_registerPeripheralProvider.invoke(null, BlockATOTransmitterStopPoint.instance); - - } catch (NoSuchMethodException e) { - e.printStackTrace(); - } catch (ClassNotFoundException e) { - e.printStackTrace(); - } catch (IllegalAccessException e) { - e.printStackTrace(); - } catch (InvocationTargetException e) { - e.printStackTrace(); - } - } - @Override - public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { - TileEntity te = world.getTileEntity(x, y, z); - EntityPlayer riddenByEntity = null; - Entity entity = player.ridingEntity; - - if (player.ridingEntity != null) { - riddenByEntity = (EntityPlayer) entity.riddenByEntity; - } - - Entity entity1 = null; - if (y == -1) { - entity1 = getEntity(world, x); - } - - switch (ID) { - case (GuiIDs.CRAFTER_TIER_I): - return te != null && te instanceof TileCrafterTierI ? new ContainerTier(player.inventory, (TileCrafterTierI) te) : null; - case (GuiIDs.CRAFTER_TIER_II): - return te != null && te instanceof TileCrafterTierII ? new ContainerTier(player.inventory, (TileCrafterTierII) te) : null; - case (GuiIDs.CRAFTER_TIER_III): - return te != null && te instanceof TileCrafterTierIII ? new ContainerTier(player.inventory, (TileCrafterTierIII) te) : null; - case (GuiIDs.DISTIL): - return te != null && te instanceof TileEntityDistil ? new ContainerDistil(player.inventory, (TileEntityDistil) te) : null; - case (GuiIDs.GENERATOR_DIESEL): - return te != null && te instanceof TileGeneratorDiesel ? new ContainerGeneratorDiesel(player.inventory, (TileGeneratorDiesel) te) : null; - case (GuiIDs.OPEN_HEARTH_FURNACE): - return te != null && te instanceof TileEntityOpenHearthFurnace ? new ContainerOpenHearthFurnace(player.inventory, (TileEntityOpenHearthFurnace) te) : null; - case (GuiIDs.TRAIN_WORKBENCH): - return te != null && te instanceof TileTrainWbench ? new ContainerTrainWorkbench(player.inventory, player.worldObj, (TileTrainWbench) te) : null; - case (GuiIDs.LOCO): - return riddenByEntity != null ? new InventoryLoco(riddenByEntity.inventory, (EntityRollingStock) entity) : null; - case (GuiIDs.FORNEY): - return riddenByEntity != null ? new InventoryForney(player.inventory, (EntityRollingStock) entity) : null; - case (GuiIDs.CRAFTING_CART): - return new ContainerWorkbenchCart(player.inventory, player.worldObj); - case (GuiIDs.FURNACE_CART): - return riddenByEntity != null ? new InventoryWorkCart(player.inventory, entity) : null; - case (GuiIDs.ZEPPELIN): - return riddenByEntity != null ? new InventoryZepp(player.inventory, (AbstractZeppelin) entity) : null; - case (GuiIDs.DIGGER): - return riddenByEntity != null ? new InventoryRotativeDigger(player.inventory, (EntityRotativeDigger) entity) : null; - - /* Stationary entities while player is not riding. */ - case (GuiIDs.FREIGHT): - //System.out.println("Freight: " + ID + " | " + entity1.getEntityName() + " | " + x + ":" + y + ":" + z); - return entity1 != null && entity1 instanceof Freight ? new InventoryFreight(player.inventory, (Freight) entity1) : null; - case (GuiIDs.JUKEBOX): - return entity1 != null && entity1 instanceof EntityJukeBoxCart ? new InventoryJukeBoxCart(player.inventory, (EntityJukeBoxCart) entity1) : null; - case (GuiIDs.TENDER): - return entity1 != null && entity1 instanceof Tender ? new InventoryTender(player.inventory, (Tender) entity1) : null; - case (GuiIDs.BUILDER): - return entity1 != null && entity1 instanceof EntityTracksBuilder ? new InventoryBuilder(player.inventory, (EntityTracksBuilder) entity1) : null; - case (GuiIDs.LIQUID): - return entity1 != null && entity1 instanceof LiquidTank ? new InventoryLiquid(player.inventory, (LiquidTank) entity1) : null; + public static List playerList = new ArrayList(); + public static boolean debug = false; + + public void throwAlphaException() { + throw new IllegalStateException("You're trying to use a Traincraft alpha-version past its expiry date. Download a release-build at https://minecraft.curseforge.com/projects/traincraft."); + } + + public void setKeyBinding(String name, int value) { + } + + public void registerRenderInformation() { + } + + public void registerEvents(FMLPreInitializationEvent event) { + WorldEvents worldEvents = new WorldEvents(); + ChunkEvents chunkEvents = new ChunkEvents(); + + registerEvent(worldEvents); + registerEvent(chunkEvents); + ForgeChunkManager.setForcedChunkLoadingCallback(Traincraft.instance, chunkEvents); + + } + + public void registerEvent(Object o) { + FMLCommonHandler.instance().bus().register(o); + MinecraftForge.EVENT_BUS.register(o); + } + + public void registerTileEntities() { + GameRegistry.registerTileEntity(TileCrafterTierI.class, "TileCrafterTierI"); + GameRegistry.registerTileEntity(TileCrafterTierII.class, "TileCrafterTierII"); + GameRegistry.registerTileEntity(TileCrafterTierIII.class, "TileCrafterTierIII"); + GameRegistry.registerTileEntity(TileTrainWbench.class, "TileTrainWbench"); + GameRegistry.registerTileEntity(TileEntityDistil.class, "Tile Distil"); + GameRegistry.registerTileEntity(TileEntityOpenHearthFurnace.class, "Tile OpenHearthFurnace"); + GameRegistry.registerTileEntity(TileStopper.class, "TileStopper"); + GameRegistry.registerTileEntity(TileEmbeddedStopper.class, "TileEmbeddedStopper"); + GameRegistry.registerTileEntity(TileAmericanStopper.class, "TileAmericanStopper"); + GameRegistry.registerTileEntity(TileSignal.class, "TileTrainSignal"); + GameRegistry.registerTileEntity(TileLantern.class, "tileLantern"); + GameRegistry.registerTileEntity(TileSwitchStand.class, "tileSwitchStand"); + GameRegistry.registerTileEntity(TileMFPBWigWag.class, "tileMFPBWigWag"); + GameRegistry.registerTileEntity(TileWaterWheel.class, "tileWaterWheel"); + GameRegistry.registerTileEntity(TileWindMill.class, "tileWindMill"); + GameRegistry.registerTileEntity(TileGeneratorDiesel.class, "tileGeneratorDiesel"); + GameRegistry.registerTileEntity(TileBook.class, "tileBook"); + GameRegistry.registerTileEntity(TileTCRailGag.class, "tileTCRailGag"); + GameRegistry.registerTileEntity(TileTCRail.class, "tileTCRail"); + GameRegistry.registerTileEntity(TileBridgePillar.class, "tileTCBridgePillar"); + GameRegistry.registerTileEntity(TileMetroMadridPole.class, "tileMetroMadridPole"); + + //switches -hariesh + GameRegistry.registerTileEntity(TileowoSwitchStand.class, "tileowoswitchstand"); + GameRegistry.registerTileEntity(TilecircleSwitchStand.class, "tilecircleswitchstand"); + GameRegistry.registerTileEntity(TileMILWSwitchStand.class, "tileMILWSwitchStand"); + GameRegistry.registerTileEntity(TileautoSwitchStand.class, "tileautoSwitchStand"); + GameRegistry.registerTileEntity(TileowoYardSwitchStand.class, "tileowoYardSwitchStand"); + + GameRegistry.registerTileEntity(TileoverheadWire.class, "tileoverheadwire"); + GameRegistry.registerTileEntity(TileoverheadWireDouble.class, "tileoverheadwiredouble"); + GameRegistry.registerTileEntity(TilesignalSpanish.class, "tilesignalspanish"); + GameRegistry.registerTileEntity(TilekSignal.class, "tileksignal"); + GameRegistry.registerTileEntity(TileSpeedSign.class, "tilespeedsign"); + + if (Traincraft.hasComputerCraft()) { + GameRegistry.registerTileEntity(TileInfoTransmitterSpeed.class, "tileInfoTransmitterSpeed"); + GameRegistry.registerTileEntity(TileInfoTransmitterMTC.class, "tileInfoTransmitterMTC"); + GameRegistry.registerTileEntity(TileInfoGrabberMTC.class, "tileInfoReceiverMTC"); + GameRegistry.registerTileEntity(TileInfoGrabberDestination.class, "tileInfoReceiverDestination"); + GameRegistry.registerTileEntity(TileATOTransmitterStopPoint.class, "tileATOTransmitterStopPoint"); + GameRegistry.registerTileEntity(TilePDMInstructionRadio.class, "tilePDMInstructionRadio"); + } + + //GameRegistry.registerTileEntity(TileFortyFootContainer.class, "tileFortyFootContainer"); + } + + public void registerComputerCraftPeripherals() throws ClassNotFoundException { + Class computerCraft = Class.forName("dan200.computercraft.ComputerCraft"); + try { + Method computerCraft_registerPeripheralProvider = computerCraft.getMethod("registerPeripheralProvider", Class.forName("dan200.computercraft.api.peripheral.IPeripheralProvider")); + + //Register all CC required blocks + computerCraft_registerPeripheralProvider.invoke(null, BlockInfoTransmitterSpeed.instance); + computerCraft_registerPeripheralProvider.invoke(null, BlockInfoGrabberMTC.instance); + computerCraft_registerPeripheralProvider.invoke(null, BlockInfoTransmitterMTC.instance); + computerCraft_registerPeripheralProvider.invoke(null, BlockATOTransmitterStopPoint.instance); + + } catch (NoSuchMethodException | ClassNotFoundException | IllegalAccessException | InvocationTargetException e) { + e.printStackTrace(); + } + } + + @Override + public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { + TileEntity te = world.getTileEntity(x, y, z); + EntityPlayer riddenByEntity = null; + Entity entity = player.ridingEntity; + + if (player.ridingEntity != null) { + riddenByEntity = (EntityPlayer) entity.riddenByEntity; + } + + Entity entity1 = null; + if (y == -1) { + entity1 = getEntity(world, x); + } + + switch (ID) { + case (GuiIDs.CRAFTER_TIER_I): + return te instanceof TileCrafterTierI ? new ContainerTier(player.inventory, (TileCrafterTierI) te) : null; + case (GuiIDs.CRAFTER_TIER_II): + return te instanceof TileCrafterTierII ? new ContainerTier(player.inventory, (TileCrafterTierII) te) : null; + case (GuiIDs.CRAFTER_TIER_III): + return te instanceof TileCrafterTierIII ? new ContainerTier(player.inventory, (TileCrafterTierIII) te) : null; + case (GuiIDs.DISTIL): + return te instanceof TileEntityDistil ? new ContainerDistil(player.inventory, (TileEntityDistil) te) : null; + case (GuiIDs.GENERATOR_DIESEL): + return te instanceof TileGeneratorDiesel ? new ContainerGeneratorDiesel(player.inventory, (TileGeneratorDiesel) te) : null; + case (GuiIDs.OPEN_HEARTH_FURNACE): + return te instanceof TileEntityOpenHearthFurnace ? new ContainerOpenHearthFurnace(player.inventory, (TileEntityOpenHearthFurnace) te) : null; + case (GuiIDs.TRAIN_WORKBENCH): + return te instanceof TileTrainWbench ? new ContainerTrainWorkbench(player.inventory, player.worldObj, (TileTrainWbench) te) : null; + case (GuiIDs.LOCO): + return riddenByEntity != null ? new InventoryLoco(riddenByEntity.inventory, (EntityRollingStock) entity) : null; + case (GuiIDs.FORNEY): + return riddenByEntity != null ? new InventoryForney(player.inventory, (EntityRollingStock) entity) : null; + case (GuiIDs.CRAFTING_CART): + return new ContainerWorkbenchCart(player.inventory, player.worldObj); + case (GuiIDs.FURNACE_CART): + return riddenByEntity != null ? new InventoryWorkCart(player.inventory, entity) : null; + case (GuiIDs.ZEPPELIN): + return riddenByEntity != null ? new InventoryZepp(player.inventory, (AbstractZeppelin) entity) : null; + case (GuiIDs.DIGGER): + return riddenByEntity != null ? new InventoryRotativeDigger(player.inventory, (EntityRotativeDigger) entity) : null; + + /* Stationary entities while player is not riding. */ + case (GuiIDs.FREIGHT): + //System.out.println("Freight: " + ID + " | " + entity1.getEntityName() + " | " + x + ":" + y + ":" + z); + return entity1 instanceof Freight ? new InventoryFreight(player.inventory, (Freight) entity1) : null; + case (GuiIDs.JUKEBOX): + return entity1 instanceof EntityJukeBoxCart ? new InventoryJukeBoxCart(player.inventory, (EntityJukeBoxCart) entity1) : null; + case (GuiIDs.TENDER): + return entity1 instanceof Tender ? new InventoryTender(player.inventory, (Tender) entity1) : null; + case (GuiIDs.BUILDER): + return entity1 instanceof EntityTracksBuilder ? new InventoryBuilder(player.inventory, (EntityTracksBuilder) entity1) : null; + case (GuiIDs.LIQUID): + return entity1 instanceof LiquidTank ? new InventoryLiquid(player.inventory, (LiquidTank) entity1) : null; /*case (GuiIDs.FORTY_FOOT_CONTAINER): return new ContainerStorage((TileFortyFootContainer)te, player);*/ - default: - return null; + default: + return null; - } - } + } + } - @Override - public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { - return null; - } + @Override + public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { + return null; + } - public static Entity getEntity(World world, int entityId) { - if ((world != null) && (world instanceof WorldServer)) { - return world.getEntityByID(entityId); - } - return null; - } + public static Entity getEntity(World world, int entityId) { + if (world instanceof WorldServer) { + return world.getEntityByID(entityId); + } + return null; + } - public int addArmor(String armor) { - return 0; - } + public int addArmor(String armor) { + return 0; + } - public Minecraft getClientInstance() { - return FMLClientHandler.instance().getClient(); - } + public Minecraft getClientInstance() { + return FMLClientHandler.instance().getClient(); + } - public GuiScreen getCurrentScreen() { - return null; - } + public GuiScreen getCurrentScreen() { + return null; + } - public void registerTextureFX() {} + public void registerTextureFX() { + } - public void registerSounds() {} + public void registerSounds() { + } - public void registerBookHandler() {} + public void registerBookHandler() { + } - public Minecraft getMinecraft() { - return null; - } + public Minecraft getMinecraft() { + return null; + } - public void registerVillagerSkin(int villagerId, String textureName) {} + public void registerVillagerSkin(int villagerId, String textureName) { + } - public static void killAllStreams() { - for (MP3Player p : playerList) { - p.stop(); - } - } + public static void killAllStreams() { + for (MP3Player p : playerList) { + p.stop(); + } + } - public void openadmingui(String data){} + public void openadmingui(String data) { + } - public static boolean checkJukeboxEntity(World world, int id) { - return world.getEntityByID(id)!=null; - } + public static boolean checkJukeboxEntity(World world, int id) { + return world.getEntityByID(id) != null; + } - public void doNEICheck(ItemStack stack) {} + public void doNEICheck(ItemStack stack) { + } - public EntityPlayer getPlayer() { - return null; - } + public EntityPlayer getPlayer() { + return null; + } - public float getJukeboxVolume() { - return 0; - } + public float getJukeboxVolume() { + return 0; + } - public void registerKeyBindingHandler() {} + public void registerKeyBindingHandler() { + } - public void setHook() {} - + public void setHook() { + } } \ No newline at end of file diff --git a/src/main/java/train/common/core/CreativeTabTraincraft.java b/src/main/java/train/common/core/CreativeTabTraincraft.java index 03ba8246f5..d4da351841 100644 --- a/src/main/java/train/common/core/CreativeTabTraincraft.java +++ b/src/main/java/train/common/core/CreativeTabTraincraft.java @@ -1,6 +1,6 @@ /******************************************************************************* * Copyright (c) 2012 Mrbrutal. All rights reserved. - * + * * @name TrainCraft * @author Mrbrutal ******************************************************************************/ @@ -14,20 +14,22 @@ public class CreativeTabTraincraft extends CreativeTabs { - public CreativeTabTraincraft(int par1, String par2Str) { - super(par1, par2Str); - } + public CreativeTabTraincraft(int par1, String par2Str) { + super(par1, par2Str); + } - @Override - public ItemStack getIconItemStack() { - return new ItemStack(ItemIDs.minecartLocoBR80_DB.item); - } + @Override + public ItemStack getIconItemStack() { + return new ItemStack(ItemIDs.minecartLocoBR80_DB.item); + } - @Override - public String getTranslatedTabLabel() { - return super.getTabLabel(); - } + @Override + public String getTranslatedTabLabel() { + return super.getTabLabel(); + } - @Override - public Item getTabIconItem(){return ItemIDs.minecartLocoBR80_DB.item;} + @Override + public Item getTabIconItem() { + return ItemIDs.minecartLocoBR80_DB.item; + } } diff --git a/src/main/java/train/common/core/CreativeTabTraincraftTrains.java b/src/main/java/train/common/core/CreativeTabTraincraftTrains.java index 01dc3542d9..6146972ea9 100644 --- a/src/main/java/train/common/core/CreativeTabTraincraftTrains.java +++ b/src/main/java/train/common/core/CreativeTabTraincraftTrains.java @@ -1,6 +1,6 @@ /******************************************************************************* * Copyright (c) 2012 Mrbrutal. All rights reserved. - * + * * @name TrainCraft * @author Mrbrutal ******************************************************************************/ @@ -14,20 +14,22 @@ public class CreativeTabTraincraftTrains extends CreativeTabs { - public CreativeTabTraincraftTrains(int par1, String par2Str) { - super(par1, par2Str); - } + public CreativeTabTraincraftTrains(int par1, String par2Str) { + super(par1, par2Str); + } - @Override - public ItemStack getIconItemStack() { - return new ItemStack(ItemIDs.minecartLocoBR01_DB.item); - } + @Override + public ItemStack getIconItemStack() { + return new ItemStack(ItemIDs.minecartLocoBR01_DB.item); + } - @Override - public String getTranslatedTabLabel() { - return super.getTabLabel(); - } + @Override + public String getTranslatedTabLabel() { + return super.getTabLabel(); + } - @Override - public Item getTabIconItem(){return ItemIDs.minecartLocoBR01_DB.item;} + @Override + public Item getTabIconItem() { + return ItemIDs.minecartLocoBR01_DB.item; + } } diff --git a/src/main/java/train/common/core/EntityIds.java b/src/main/java/train/common/core/EntityIds.java index 260360803a..7d83f9fe74 100644 --- a/src/main/java/train/common/core/EntityIds.java +++ b/src/main/java/train/common/core/EntityIds.java @@ -1,13 +1,13 @@ package train.common.core; public class EntityIds { - public static final int ZEPPELIN = 31; - public static final int LASERS_LINES = 111; - public static final int HELICOPTER = 40; - public static final int ZEPPELIN_BIG = 112; - public static final int ROTATIVE_DIGGER = 116; - public static final int LOCOMOTIVE_BOGIE = 51; - public static final int UTILITY_BOGIE = 52; - - public static final int FALLING = 120; + public static final int ZEPPELIN = 31; + public static final int LASERS_LINES = 111; + public static final int HELICOPTER = 40; + public static final int ZEPPELIN_BIG = 112; + public static final int ROTATIVE_DIGGER = 116; + public static final int LOCOMOTIVE_BOGIE = 51; + public static final int UTILITY_BOGIE = 52; + + public static final int FALLING = 120; } \ No newline at end of file diff --git a/src/main/java/train/common/core/FakePlayer.java b/src/main/java/train/common/core/FakePlayer.java index 14738a03c0..c77e0d4b9c 100644 --- a/src/main/java/train/common/core/FakePlayer.java +++ b/src/main/java/train/common/core/FakePlayer.java @@ -14,7 +14,6 @@ import net.minecraft.stats.StatBase; import net.minecraft.util.ChunkCoordinates; import net.minecraft.util.DamageSource; -import net.minecraft.util.FoodStats; import net.minecraft.util.IChatComponent; import net.minecraft.world.World; @@ -22,219 +21,214 @@ /** * Fake player entity, which is used in calls requiring player instance. All methods are modified to do nothing, to prevent modification of player stats. - * + * * @author MightyPork * @copy 2012 */ public class FakePlayer extends EntityPlayer { - /** - * Create fake player in world - * - * @param world the world - */ - public FakePlayer(World world) { - super(world, new GameProfile(new UUID(0,0),"")); - inventory = new InventoryPlayer(this); - inventory.currentItem = 0; - inventory.setInventorySlotContents(0, new ItemStack(Items.diamond_pickaxe, 1, 0)); - flyToggleTimer = 0; - // score = 0; - boolean isSwinging = false; // Maybe spawnForced ?? - xpCooldown = 0; - timeUntilPortal = 20; - inPortal = false; - capabilities = new PlayerCapabilities(); - speedOnGround = 0.1F; - speedInAir = 0.02F; - fishEntity = null; - this.inventoryContainer = new ContainerPlayer(this.inventory, !world.isRemote, this); - this.openContainer = this.inventoryContainer; - yOffset = 1.62F; - - fireResistance = 20; - } - - @Override - protected void entityInit() { - super.entityInit(); - } - - @Override - public void onUpdate() {} - - @Override - public void preparePlayerToSpawn() {} - - @Override - protected void updateEntityActionState() {} - - @Override - public void onLivingUpdate() {} - - @Override - public void onDeath(DamageSource damagesource) { - super.onDeath(damagesource); - } - - - @Override - public EntityItem dropPlayerItemWithRandomChoice(ItemStack itemstack, boolean flag) { - return null; - } - - @Override - public boolean canHarvestBlock(Block block) { - return true; - } - - @Override - public void readEntityFromNBT(NBTTagCompound nbttagcompound) {} - - @Override - public void writeEntityToNBT(NBTTagCompound nbttagcompound) {} - - @Override - public int getTotalArmorValue() { - return 0; - } - - @Override - public ItemStack getCurrentEquippedItem() { - return null; - } - - @Override - public void destroyCurrentEquippedItem() {} - - @Override - public double getYOffset() { - return 0; - } - - @Override - public void swingItem() {} - - @Override - public void attackTargetEntityWithCurrentItem(Entity entity) {} - - @Override - public void onCriticalHit(Entity entity) {} - - @Override - public void onEnchantmentCritical(Entity entity) {} - - @Override - public void respawnPlayer() {} - - @Override - public void setDead() { - super.setDead(); - } - - @Override - public boolean isEntityInsideOpaqueBlock() { - return false; - } - - @Override - public EnumStatus sleepInBedAt(int i, int j, int k) { - return EnumStatus.OK; - } - - @Override - public void wakeUpPlayer(boolean flag, boolean flag1, boolean flag2) {} - - @Override - public float getBedOrientationInDegrees() { - return 0.0F; - } - - @Override - public boolean isPlayerSleeping() { - return sleeping; - } - - @Override - public boolean isPlayerFullyAsleep() { - return false; - } - - @Override - public int getSleepTimer() { - return 0; - } - - @Override - public void addChatMessage(IChatComponent chatComponent) {} - - @Override - public void triggerAchievement(StatBase statbase) {} - - @Override - public void addStat(StatBase statbase, int i) {} - - @Override - public void addToPlayerScore(Entity par1Entity, int par2) {} - - @Override - public void jump() {} - - @Override - public void moveEntityWithHeading(float f, float f1) {} - - @Override - public void addMovementStat(double d, double d1, double d2) {} - - @Override - protected void fall(float f) {} - - @Override - public void setInPortal() {} - - @Override - public int xpBarCap() { - return 1000; - } - - @Override - public void addExhaustion(float f) {} - - @Override - public FoodStats getFoodStats() { - return foodStats; - } - - @Override - public boolean canEat(boolean flag) { - return false; - } - - @Override - public boolean shouldHeal() { - return false; - } - - @Override - public void setItemInUse(ItemStack itemstack, int i) {} - - @Override - protected int getExperiencePoints(EntityPlayer entityplayer) { - return 0; - } - - @Override - protected boolean isPlayer() { - return true; - } - - @Override - public boolean canCommandSenderUseCommand(int var1, String var2) { - return false; - } - - @Override - public ChunkCoordinates getPlayerCoordinates() { - return null; - } + /** + * Create fake player in world + * + * @param world the world + */ + public FakePlayer(World world) { + super(world, new GameProfile(new UUID(0, 0), "")); + inventory = new InventoryPlayer(this); + inventory.currentItem = 0; + inventory.setInventorySlotContents(0, new ItemStack(Items.diamond_pickaxe, 1, 0)); + flyToggleTimer = 0; + xpCooldown = 0; + timeUntilPortal = 20; + inPortal = false; + capabilities = new PlayerCapabilities(); + speedOnGround = 0.1F; + speedInAir = 0.02F; + fishEntity = null; + this.inventoryContainer = new ContainerPlayer(this.inventory, !world.isRemote, this); + this.openContainer = this.inventoryContainer; + yOffset = 1.62F; + + fireResistance = 20; + } + + @Override + protected void entityInit() { + super.entityInit(); + } + + @Override + public void onUpdate() { + } + + @Override + public void preparePlayerToSpawn() { + } + + @Override + protected void updateEntityActionState() { + } + + @Override + public void onLivingUpdate() { + } + + @Override + public void onDeath(DamageSource damagesource) { + super.onDeath(damagesource); + } + + + @Override + public EntityItem dropPlayerItemWithRandomChoice(ItemStack itemstack, boolean flag) { + return null; + } + + @Override + public boolean canHarvestBlock(Block block) { + return true; + } + + @Override + public void readEntityFromNBT(NBTTagCompound nbttagcompound) { + } + + @Override + public void writeEntityToNBT(NBTTagCompound nbttagcompound) { + } + + @Override + public int getTotalArmorValue() { + return 0; + } + + @Override + public ItemStack getCurrentEquippedItem() { + return null; + } + + @Override + public void destroyCurrentEquippedItem() { + } + + @Override + public double getYOffset() { + return 0; + } + + @Override + public void swingItem() { + } + + @Override + public void attackTargetEntityWithCurrentItem(Entity entity) { + } + + @Override + public void respawnPlayer() { + } + + @Override + public void setDead() { + super.setDead(); + } + + @Override + public boolean isEntityInsideOpaqueBlock() { + return false; + } + + @Override + public EnumStatus sleepInBedAt(int i, int j, int k) { + return EnumStatus.OK; + } + + @Override + public void wakeUpPlayer(boolean flag, boolean flag1, boolean flag2) { + } + + @Override + public float getBedOrientationInDegrees() { + return 0.0F; + } + + @Override + public boolean isPlayerFullyAsleep() { + return false; + } + + @Override + public int getSleepTimer() { + return 0; + } + + @Override + public void addChatMessage(IChatComponent chatComponent) { + } + + @Override + public void triggerAchievement(StatBase statbase) { + } + + @Override + public void addToPlayerScore(Entity par1Entity, int par2) { + } + + @Override + public void jump() { + } + + @Override + public void moveEntityWithHeading(float f, float f1) { + } + + @Override + public void addMovementStat(double d, double d1, double d2) { + } + + @Override + protected void fall(float f) { + } + + @Override + public void setInPortal() { + } + + @Override + public int xpBarCap() { + return 1000; + } + + @Override + public void addExhaustion(float f) { + } + + @Override + public boolean canEat(boolean flag) { + return false; + } + + @Override + public boolean shouldHeal() { + return false; + } + + @Override + public void setItemInUse(ItemStack itemstack, int i) { + } + + @Override + protected int getExperiencePoints(EntityPlayer entityplayer) { + return 0; + } + + @Override + public boolean canCommandSenderUseCommand(int var1, String var2) { + return false; + } + + @Override + public ChunkCoordinates getPlayerCoordinates() { + return null; + } } diff --git a/src/main/java/train/common/core/HandleMaxAttachedCarts.java b/src/main/java/train/common/core/HandleMaxAttachedCarts.java index ce59dc03b7..f2615a1bac 100644 --- a/src/main/java/train/common/core/HandleMaxAttachedCarts.java +++ b/src/main/java/train/common/core/HandleMaxAttachedCarts.java @@ -5,165 +5,164 @@ /** * Power is not limited to 1000 anymore. Power is shared between locomotives in a train. - * + *

* Speed: MaxSpeed-= (totalMass/(power/400)); - * + *

* Then fuel rate: fuelRate -= (int) (scaledPower * totalMass*100) - * + *

* Power is scaled again to fit the acceleration/brake values * scaledPower = (totalMass/(power/200)); * Then * scaledPower = scalePower(scaledPower) * scalePower() => (power/1000)*0.8 - * + *

* Then acceleration: accelerate-=ScaledPower*Mass - * + *

* Then brake: brake+=ScaledPower*Mass - * */ public class HandleMaxAttachedCarts { - - public HandleMaxAttachedCarts() { - - } - - /** - * handles the physic for the locomotive speed, acceleration, brake and fuel consumption depending of the carts attached to it - */ - public static void PullPhysic(Locomotive cart1) { - double totalMass = 0; - if (( cart1).train != null && ( cart1).train.getTrains().size() != 0) { - - for (int j1 = 0; j1 < ( cart1).train.getTrains().size(); j1++) { - totalMass += ( cart1).train.getTrains().get(j1).mass; - } - (cart1).currentNumCartsPulled = (cart1).train.getTrains().size() - 1; - ( cart1).currentMassPulled = Math.round(totalMass * 10); - } - else { - totalMass = 0; - (cart1).currentNumCartsPulled = 0; - ( cart1).currentMassPulled = 0; - } - /** - * Speed is scaled by the mass of carts pulled and the power of the locomotive Power is converted before this calculation MaxSpeed-=exp((Power*Mass)/2) - */ - if(totalMass<0){ - totalMass=0; - } else { - totalMass*=0.745; - } - - double power = 0; - if ((cart1).train != null && (cart1).train.getTrains().size() != 0 && ( cart1).train.getTrains().size()>1){ - power = (cart1).getPower(); - for (int i = 0; i < ( cart1).train.getTrains().size(); i++) { - EntityRollingStock stock = (cart1).train.getTrains().get(i); - if(stock instanceof Locomotive && stock.uniqueID != (cart1).uniqueID){ - power += ((Locomotive)stock).getPower(); - } - } - //power = ((Locomotive) cart1).getPower();//((EntityRollingStock) cart1).train.getTrainPower(); - double maxSpeed = (cart1).getMaxSpeed();// reset speed and get default - - maxSpeed -= totalMass==0?0:(totalMass/(power/74.57)); - if (maxSpeed > 0) {// if maxSpeed=0 then default is used: not good here! and we don't want negative speed - (cart1).setCustomSpeed(maxSpeed); - }else{ - (cart1).setCustomSpeed(0.1); - } - (cart1).currentSpeedSlowDown = totalMass==0?0:(totalMass/(power/74.57)); - //System.out.println("mass "+totalMass +" power "+power +" "+cart1 ); - - }else if (( cart1).train == null || ( cart1).train.getTrains().size() < 2) { - double maxSpeed = (cart1).getMaxSpeed(); - ( cart1).setCustomSpeed(maxSpeed); - (cart1).currentSpeedSlowDown = 0; - } - - /** - * acceleration is scaled by the mass of carts pulled and the power of the locomotive Power is converted and scaled before this calculation accelerate-=ScaledPower*Mass - */ - double scaledPower = totalMass==0?0:(totalMass/(power/745.7));//(power*totalMass)/(power*6);//scalePower(power); - scaledPower = scalePower(scaledPower); - double accelerate = (cart1).setAccel(0);// reset acceleration and get default - if((power * totalMass)>0){ - accelerate -= (scaledPower * totalMass * 1.13); - } - if (accelerate > 0) {// if accelerate=0 then default is used: not good here! and we don't want negative acceleration - ( cart1).setAccel(accelerate); - } - if((power * totalMass)>0){ - ( cart1).currentAccelSlowDown = (scaledPower * (totalMass * 1.13)); - }else{ - ( cart1).currentAccelSlowDown =0; - } - - - /** - * brake is scaled by the mass of carts pulled and the power of the locomotive Power is converted and scaled before this calculation brake+=ScaledPower*Mass - */ - double brake = ( cart1).setBrake(0);// reset brake and get default - brake += (scaledPower * totalMass); - if (brake > 1) - brake = 0.998; - if (brake > 0) {// if accelerate=0 then default is used: not good here! and we don't want negative brake or brake values higher than 1 (which mean acceleration) - if((power * totalMass)>0)( cart1).setBrake(brake); - } - if((power * totalMass)>0){ - (cart1).currentBrakeSlowDown = (scaledPower * (totalMass)); - }else{ - ( cart1).currentBrakeSlowDown = 0; - } - - - /** - * fuel consumption is scaled by the mass of carts pulled and the power of the locomotive Power is converted before this calculation fuelRate-=power*Mass - */ - - int fuelRate = (cart1).setFuelConsumption(0);// reset and get default - fuelRate -= (int) (scaledPower * totalMass*100); - //if((power * totalMass)>0)System.out.println(cart1+"fuelRate "+fuelRate); - if (fuelRate > 0) {// if fuelRate=0 then default is used: not good here! and we don't want negative fuelRate - ( cart1).setFuelConsumption(fuelRate); - } - if((power * totalMass)>0){ - ( cart1).currentFuelConsumptionChange = (fuelRate); - }else{ - (cart1).currentFuelConsumptionChange=0; - } - - - } - - /** - * Possible values: from 0 to 1000 example: power=800 800/1000=0.8 1-0.8=0.2 return 0.2 - * - * @param power - * @return - */ - @Deprecated - private double convertPower(double power) { - power /= 1000; - power = 1 - power; - - return power; - - } - - /** - * Used to scale power for calculation like Brake and Acceleration rates - * - * @return - */ - private static double scalePower(double power) { - if (power ==0){ - return 0; - } - power /= 1000; - power *= 0.8; - return power; - - } + + public HandleMaxAttachedCarts() { + + } + + /** + * handles the physic for the locomotive speed, acceleration, brake and fuel consumption depending of the carts attached to it + */ + public static void PullPhysic(Locomotive cart1) { + double totalMass = 0; + if ((cart1).train != null && !(cart1).train.getTrains().isEmpty()) { + + for (int j1 = 0; j1 < (cart1).train.getTrains().size(); j1++) { + totalMass += (cart1).train.getTrains().get(j1).mass; + } + (cart1).currentNumCartsPulled = (cart1).train.getTrains().size() - 1; + (cart1).currentMassPulled = Math.round(totalMass * 10); + } else { + totalMass = 0; + (cart1).currentNumCartsPulled = 0; + (cart1).currentMassPulled = 0; + } + /** + * Speed is scaled by the mass of carts pulled and the power of the locomotive Power is converted before this calculation MaxSpeed-=exp((Power*Mass)/2) + */ + if (totalMass < 0) { + totalMass = 0; + } else { + totalMass *= 0.745; + } + + double power = 0; + if ((cart1).train != null && !(cart1).train.getTrains().isEmpty() && (cart1).train.getTrains().size() > 1) { + power = (cart1).getPower(); + for (int i = 0; i < (cart1).train.getTrains().size(); i++) { + EntityRollingStock stock = (cart1).train.getTrains().get(i); + if (stock instanceof Locomotive && stock.uniqueID != (cart1).uniqueID) { + power += ((Locomotive) stock).getPower(); + } + } + //power = ((Locomotive) cart1).getPower();//((EntityRollingStock) cart1).train.getTrainPower(); + double maxSpeed = (cart1).getMaxSpeed();// reset speed and get default + + double maxSpeed1 = totalMass == 0 ? 0 : (totalMass / (power / 74.57)); + maxSpeed -= maxSpeed1; + if (maxSpeed > 0) {// if maxSpeed=0 then default is used: not good here! and we don't want negative speed + (cart1).setCustomSpeed(maxSpeed); + } else { + (cart1).setCustomSpeed(0.1); + } + (cart1).currentSpeedSlowDown = maxSpeed1; + //System.out.println("mass "+totalMass +" power "+power +" "+cart1 ); + + } else if ((cart1).train == null || (cart1).train.getTrains().size() < 2) { + double maxSpeed = (cart1).getMaxSpeed(); + (cart1).setCustomSpeed(maxSpeed); + (cart1).currentSpeedSlowDown = 0; + } + + /** + * acceleration is scaled by the mass of carts pulled and the power of the locomotive Power is converted and scaled before this calculation accelerate-=ScaledPower*Mass + */ + double scaledPower = totalMass == 0 ? 0 : (totalMass / (power / 745.7));//(power*totalMass)/(power*6);//scalePower(power); + scaledPower = scalePower(scaledPower); + double accelerate = (cart1).setAccel(0);// reset acceleration and get default + if ((power * totalMass) > 0) { + accelerate -= (scaledPower * totalMass * 1.13); + } + if (accelerate > 0) {// if accelerate=0 then default is used: not good here! and we don't want negative acceleration + (cart1).setAccel(accelerate); + } + if ((power * totalMass) > 0) { + (cart1).currentAccelSlowDown = (scaledPower * (totalMass * 1.13)); + } else { + (cart1).currentAccelSlowDown = 0; + } + + + /** + * brake is scaled by the mass of carts pulled and the power of the locomotive Power is converted and scaled before this calculation brake+=ScaledPower*Mass + */ + double brake = (cart1).setBrake(0);// reset brake and get default + brake += (scaledPower * totalMass); + if (brake > 1) + brake = 0.998; + if (brake > 0) {// if accelerate=0 then default is used: not good here! and we don't want negative brake or brake values higher than 1 (which mean acceleration) + if ((power * totalMass) > 0) (cart1).setBrake(brake); + } + if ((power * totalMass) > 0) { + (cart1).currentBrakeSlowDown = (scaledPower * (totalMass)); + } else { + (cart1).currentBrakeSlowDown = 0; + } + + + /** + * fuel consumption is scaled by the mass of carts pulled and the power of the locomotive Power is converted before this calculation fuelRate-=power*Mass + */ + + int fuelRate = (cart1).setFuelConsumption(0);// reset and get default + fuelRate -= (int) (scaledPower * totalMass * 100); + //if((power * totalMass)>0)System.out.println(cart1+"fuelRate "+fuelRate); + if (fuelRate > 0) {// if fuelRate=0 then default is used: not good here! and we don't want negative fuelRate + (cart1).setFuelConsumption(fuelRate); + } + if ((power * totalMass) > 0) { + (cart1).currentFuelConsumptionChange = (fuelRate); + } else { + (cart1).currentFuelConsumptionChange = 0; + } + + + } + + /** + * Possible values: from 0 to 1000 example: power=800 800/1000=0.8 1-0.8=0.2 return 0.2 + * + * @param power the power of the locomotive + * @return the converted power + */ + @Deprecated + private double convertPower(double power) { + power /= 1000; + power = 1 - power; + + return power; + + } + + /** + * Used to scale power for calculation like Brake and Acceleration rates + * + * @return + */ + private static double scalePower(double power) { + if (power == 0) { + return 0; + } + power /= 1000; + power *= 0.8; + return power; + + } } \ No newline at end of file diff --git a/src/main/java/train/common/core/HandleOverheating.java b/src/main/java/train/common/core/HandleOverheating.java index b0d1f91dc4..cc13dd663f 100644 --- a/src/main/java/train/common/core/HandleOverheating.java +++ b/src/main/java/train/common/core/HandleOverheating.java @@ -7,142 +7,147 @@ public class HandleOverheating { - /** - * a delayer to avoid instant overheating - */ - private int breakDelay = 0; - - /** - * constructor - * - * @param entity - */ - public HandleOverheating(EntityRollingStock entity) { - - } - - /** - * Handle the overheating for locomotives - */ - public void HandleHeatLevel(EntityRollingStock entity) { - - entity.overheatLevel = entity.getOverheatLevel(); - - if (entity instanceof Locomotive && entity.canOverheat()) { - double locoActualSpeed = MathHelper.sqrt_double(entity.motionX * entity.motionX + entity.motionZ * entity.motionZ); - - /** - * speed is low, overheat goes down to normal - */ - if ((locoActualSpeed <= 0 + 0.05) && !entity.isBraking && entity.overheatLevel > entity.getAverageOverheat() && (entity.worldObj.rand.nextInt(10) == 0) && !((Locomotive) entity).getState().equals("broken")) { - entity.overheatLevel--; - } - /** - * speed is low, overheat goes down to normal - */ - if ((locoActualSpeed <= 0 + 0.10) && !entity.isBraking && entity.overheatLevel > entity.getAverageOverheat() && (entity.worldObj.rand.nextInt(10) == 0) && !((Locomotive) entity).getState().equals("broken")) { - entity.overheatLevel--; - - } - /** - * fuel is empty, heat level goes down - */ - if (entity.fuelTrain < 1 && entity.overheatLevel > 0 && (entity.worldObj.rand.nextInt(10) == 0) && !((Locomotive) entity).getState().equals("broken")) { - entity.overheatLevel--; - - } - /** - * Heat goes down with time - */ - if ((entity.overheatLevel > (entity.getOverheatTime() + 30) / 2) && (entity.worldObj.rand.nextInt(30) == 0) && !((Locomotive) entity).getState().equals("broken")) { - entity.overheatLevel--; - } - /** - * train is fueled => heat level goes up to normal - */ - if (((Locomotive)entity).isLocoTurnedOn() && entity.fuelTrain > 1 && (entity.overheatLevel < (entity.getOverheatTime() + 30) / 2) && (entity.worldObj.rand.nextInt(7) == 0)) { - entity.overheatLevel++; - } - - /** - * train is breaking, increment a delayer break won't overheat too quickly - */ - if (entity.isBraking) { - breakDelay++; - } - - /** - * Delayer has reached max and speed is not 0: overheat - */ - if (entity.isBraking && breakDelay > 40 && (Math.abs(entity.motionX) + Math.abs(entity.motionZ)) > 0.05) { - if (entity.worldObj.rand.nextInt(10) == 0) { - entity.overheatLevel += 2; - } - } - /** - * When breaking is stopped: delayer goes back to 0 - */ - if (!entity.isBraking) { - breakDelay = 0; - } - - /** - * train is climbing, overheat goes up 0.05 = 10km/h 0.1 = 21km/h - */ - if (entity.isClimbing && (locoActualSpeed >= entity.convertSpeed((Locomotive) entity) - 0.05) && (entity.worldObj.rand.nextInt(10) == 0)) { - //entity.overheatLevel++; - } - - if (entity instanceof SteamTrain) { - int waterLevel = ((SteamTrain) entity).getWater(); - /** - * water is empty => overheats - */ - if ((waterLevel < 1) && entity.fuelTrain > 10) { - if (entity.worldObj.rand.nextInt(10) == 0) { - entity.overheatLevel += 3; - } - } - int maxWaterLevel = ((SteamTrain) entity).getCartTankCapacity(); - if ((waterLevel > maxWaterLevel - (maxWaterLevel / 2)) && entity.overheatLevel > entity.getAverageOverheat() && !((Locomotive) entity).getState().equals("broken")) { - entity.overheatLevel--; - } - } - - if (entity.overheatLevel < entity.getAverageOverheat() - (overheatRatio(17, entity))) { - ((Locomotive) entity).setState("cold"); - } - if (entity.overheatLevel < entity.getAverageOverheat() - (overheatRatio(4, entity)) && entity.overheatLevel > entity.getAverageOverheat() - (overheatRatio(17, entity))) { - ((Locomotive) entity).setState("warm"); - } - if (entity.overheatLevel > entity.getAverageOverheat() - (overheatRatio(4, entity)) && entity.overheatLevel < entity.getAverageOverheat() + (overheatRatio(12, entity))) { - ((Locomotive) entity).setState("hot"); - } - if (entity.overheatLevel > entity.getAverageOverheat() + (overheatRatio(12, entity))) { - ((Locomotive) entity).setState("very hot"); - } - if (entity.overheatLevel > entity.getAverageOverheat() + (overheatRatio(17, entity))) { - ((Locomotive) entity).setState("too hot"); - } - if (entity.overheatLevel > entity.getAverageOverheat() + (overheatRatio(24, entity))) { - ((Locomotive) entity).setState("broken"); - } - entity.setOverheatLevel(entity.overheatLevel); - } - - } - - /** - * locomotives have different heating time this convert to the size of the heat bar in the HUD - * - * @param pixels - * @return - */ - private double overheatRatio(double pixels, EntityRollingStock entity) { - /** - * size in pixels of the heat bar - */ - double barSize = 50; - return (entity.getOverheatTime() * (pixels / barSize)); - } + /** + * a delayer to avoid instant overheating + */ + private int breakDelay = 0; + + /** + * constructor + * + * @param entity the entity to handle + */ + public HandleOverheating(EntityRollingStock entity) { + + } + + /** + * Handle the overheating for locomotives + */ + public void HandleHeatLevel(EntityRollingStock entity) { + + entity.overheatLevel = entity.getOverheatLevel(); + + if (entity instanceof Locomotive && entity.canOverheat()) { + double locoActualSpeed = MathHelper.sqrt_double(entity.motionX * entity.motionX + entity.motionZ * entity.motionZ); + + /** + * speed is low, overheat goes down to normal + */ + if ((locoActualSpeed <= 0 + 0.05) && !entity.isBraking && entity.overheatLevel > entity.getAverageOverheat() && (entity.worldObj.rand.nextInt(10) == 0) && !((Locomotive) entity).getState().equals("broken")) { + entity.overheatLevel--; + } + /** + * speed is low, overheat goes down to normal + */ + if ((locoActualSpeed <= 0 + 0.10) && !entity.isBraking && entity.overheatLevel > entity.getAverageOverheat() && (entity.worldObj.rand.nextInt(10) == 0) && !((Locomotive) entity).getState().equals("broken")) { + entity.overheatLevel--; + + } + /** + * fuel is empty, heat level goes down + */ + if (entity.fuelTrain < 1 && entity.overheatLevel > 0 && (entity.worldObj.rand.nextInt(10) == 0) && !((Locomotive) entity).getState().equals("broken")) { + entity.overheatLevel--; + + } + /** + * Heat goes down with time + */ + if ((entity.overheatLevel > (entity.getOverheatTime() + 30) / 2) && (entity.worldObj.rand.nextInt(30) == 0) && !((Locomotive) entity).getState().equals("broken")) { + entity.overheatLevel--; + } + /** + * train is fueled => heat level goes up to normal + */ + if (((Locomotive) entity).isLocoTurnedOn() && entity.fuelTrain > 1 && (entity.overheatLevel < (entity.getOverheatTime() + 30) / 2) && (entity.worldObj.rand.nextInt(7) == 0)) { + entity.overheatLevel++; + } + + /** + * train is breaking, increment a delayer break won't overheat too quickly + */ + if (entity.isBraking) { + breakDelay++; + } + + /** + * Delayer has reached max and speed is not 0: overheat + */ + if (entity.isBraking && breakDelay > 40 && (Math.abs(entity.motionX) + Math.abs(entity.motionZ)) > 0.05) { + if (entity.worldObj.rand.nextInt(10) == 0) { + entity.overheatLevel += 2; + } + } + /** + * When breaking is stopped: delayer goes back to 0 + */ + if (!entity.isBraking) { + breakDelay = 0; + } + + /** + * train is climbing, overheat goes up 0.05 = 10km/h 0.1 = 21km/h + */ + if (entity.isClimbing && (locoActualSpeed >= entity.convertSpeed((Locomotive) entity) - 0.05) && (entity.worldObj.rand.nextInt(10) == 0)) { + //entity.overheatLevel++; + } + + if (entity instanceof SteamTrain) { + int waterLevel = ((SteamTrain) entity).getWater(); + /** + * water is empty => overheats + */ + if ((waterLevel < 1) && entity.fuelTrain > 10) { + if (entity.worldObj.rand.nextInt(10) == 0) { + entity.overheatLevel += 3; + } + } + int maxWaterLevel = ((SteamTrain) entity).getCartTankCapacity(); + if ((waterLevel > maxWaterLevel - (maxWaterLevel / 2)) && entity.overheatLevel > entity.getAverageOverheat() && !((Locomotive) entity).getState().equals("broken")) { + entity.overheatLevel--; + } + } + + if (entity.overheatLevel < entity.getAverageOverheat() - (overheatRatio(17, entity))) { + ((Locomotive) entity).setState("cold"); + } + + if (entity.overheatLevel < entity.getAverageOverheat() - (overheatRatio(4, entity)) && entity.overheatLevel > entity.getAverageOverheat() - (overheatRatio(17, entity))) { + ((Locomotive) entity).setState("warm"); + } + + if (entity.overheatLevel > entity.getAverageOverheat() - (overheatRatio(4, entity)) && entity.overheatLevel < entity.getAverageOverheat() + (overheatRatio(12, entity))) { + ((Locomotive) entity).setState("hot"); + } + + if (entity.overheatLevel > entity.getAverageOverheat() + (overheatRatio(12, entity))) { + ((Locomotive) entity).setState("very hot"); + } + + if (entity.overheatLevel > entity.getAverageOverheat() + (overheatRatio(17, entity))) { + ((Locomotive) entity).setState("too hot"); + } + + if (entity.overheatLevel > entity.getAverageOverheat() + (overheatRatio(24, entity))) { + ((Locomotive) entity).setState("broken"); + } + entity.setOverheatLevel(entity.overheatLevel); + } + + } + + /** + * locomotives have different heating time this convert to the size of the heat bar in the HUD + * + * @param pixels the size of the heat bar in the HUD + * @return the ratio of the heat bar + */ + private double overheatRatio(double pixels, EntityRollingStock entity) { + /** + * size in pixels of the heat bar + */ + double barSize = 50; + return (entity.getOverheatTime() * (pixels / barSize)); + } } \ No newline at end of file diff --git a/src/main/java/train/common/core/TrainModBlockUtil.java b/src/main/java/train/common/core/TrainModBlockUtil.java index 0009e9e41e..e376e00d81 100644 --- a/src/main/java/train/common/core/TrainModBlockUtil.java +++ b/src/main/java/train/common/core/TrainModBlockUtil.java @@ -7,14 +7,14 @@ import java.util.ArrayList; public class TrainModBlockUtil { - public static ArrayList getItemStackFromBlock(World world, int i, int j, int k) { - Block block = world.getBlock(i, j, k); + public static ArrayList getItemStackFromBlock(World world, int i, int j, int k) { + Block block = world.getBlock(i, j, k); - if (block == null) { - return null; - } + if (block == null) { + return null; + } - int meta = world.getBlockMetadata(i, j, k); - return block.getDrops(world, i, j, k, meta, 0); - } + int meta = world.getBlockMetadata(i, j, k); + return block.getDrops(world, i, j, k, meta, 0); + } } \ No newline at end of file diff --git a/src/main/java/train/common/core/TrainModCore.java b/src/main/java/train/common/core/TrainModCore.java index 6a2e733951..3e42069a0d 100644 --- a/src/main/java/train/common/core/TrainModCore.java +++ b/src/main/java/train/common/core/TrainModCore.java @@ -1,6 +1,5 @@ package train.common.core; -import cpw.mods.fml.common.Loader; import train.common.Traincraft; import train.common.core.plugins.PluginRailcraft; @@ -10,39 +9,39 @@ import java.util.Scanner; public class TrainModCore { - - private static Boolean rcVanillaRecipes = true; - - public static void readRailcraftConfig() { - File file = new File("./config/railcraft/railcraft.cfg"); - try { - @SuppressWarnings("resource") Scanner scanner = new Scanner(new FileInputStream(file)); - - while (scanner.hasNextLine()) { - String line = scanner.nextLine().trim(); - - if (line.equals("B:useAltRecipes=true")) { - rcVanillaRecipes = true; - } else if (line.equals("B:useAltRecipes=false")) { - rcVanillaRecipes = false; - } - } - } catch (FileNotFoundException e) { - e.printStackTrace(); - } - } - - public static void ModsLoaded() { - if(Loader.isModLoaded("Railcraft")){ - readRailcraftConfig(); - if (!rcVanillaRecipes) { - PluginRailcraft.init(); - Traincraft.tcLog.info("Enabled Traincraft additional tracks for Railcraft"); - } else { - Traincraft.tcLog.info( - "You've enabled vanilla rail recipes in Railcraft. Disable them to get Traincraft additional tracks"); - } - } - } + + private static Boolean rcVanillaRecipes = true; + + public static void readRailcraftConfig() { + File file = new File("./config/railcraft/railcraft.cfg"); + try { + Scanner scanner = new Scanner(new FileInputStream(file)); + + while (scanner.hasNextLine()) { + String line = scanner.nextLine().trim(); + + if (line.equals("B:useAltRecipes=true")) { + rcVanillaRecipes = true; + } else if (line.equals("B:useAltRecipes=false")) { + rcVanillaRecipes = false; + } + } + } catch (FileNotFoundException exception) { + exception.printStackTrace(); + } + } + + public static void ModsLoaded() { + if (Traincraft.hasRailcraft()) { + readRailcraftConfig(); + if (!rcVanillaRecipes) { + PluginRailcraft.init(); + Traincraft.tcLog.info("Enabled Traincraft additional tracks for Railcraft"); + } else { + Traincraft.tcLog.info( + "You've enabled vanilla rail recipes in Railcraft. Disable them to get Traincraft additional tracks"); + } + } + } } \ No newline at end of file diff --git a/src/main/java/train/common/core/Traincraft_EventSounds.java b/src/main/java/train/common/core/Traincraft_EventSounds.java index 337744af2b..c747c6543a 100644 --- a/src/main/java/train/common/core/Traincraft_EventSounds.java +++ b/src/main/java/train/common/core/Traincraft_EventSounds.java @@ -2,7 +2,7 @@ public class Traincraft_EventSounds { - //TODO audio has moved to JSON support only + //TODO audio has moved to JSON support only /* @SubscribeEvent public void onSound(SoundLoadEvent event) { diff --git a/src/main/java/train/common/core/handlers/RecipeHandler.java b/src/main/java/train/common/core/handlers/RecipeHandler.java index 418976126a..978d1a922e 100644 --- a/src/main/java/train/common/core/handlers/RecipeHandler.java +++ b/src/main/java/train/common/core/handlers/RecipeHandler.java @@ -1,6 +1,6 @@ /******************************************************************************* * Copyright (c) 2012 Mrbrutal. All rights reserved. - * + * * @name TrainCraft * @author Mrbrutal ******************************************************************************/ @@ -15,7 +15,6 @@ import net.minecraft.item.ItemStack; import net.minecraftforge.oredict.OreDictionary; import net.minecraftforge.oredict.ShapedOreRecipe; -import scala.Char; import train.common.inventory.TrainCraftingManager; import train.common.library.BlockIDs; import train.common.library.ItemIDs; @@ -28,537 +27,526 @@ public class RecipeHandler { - private static ArrayList multiNameOreDict(String ... names){ - ArrayList entries = new ArrayList(); - for (String name : names){ - entries.addAll(OreDictionary.getOres(name)); - - } - return entries; - } - - public static void initBlockRecipes() { - ArrayList iron = OreDictionary.getOres("ingotIron"); - - TrainCraftingManager.instance.getRecipeList().add(new RecipesArmorDyes()); - /* Assembly tables */ - for (ItemStack ironingot : iron) { - GameRegistry.addRecipe(new ItemStack(BlockIDs.assemblyTableI.block, 1), "IPI", "S S", "SPS", Character.valueOf('I'), ironingot, Character.valueOf('P'), Blocks.piston, Character.valueOf('S'), Blocks.stone); - } - GameRegistry.addRecipe(new ItemStack(BlockIDs.assemblyTableII.block, 1), "GPG", "O O", "OPO", Character.valueOf('G'), Items.gold_ingot, Character.valueOf('P'), Blocks.piston, Character.valueOf('O'), Blocks.obsidian ); - GameRegistry.addRecipe(new ItemStack(BlockIDs.assemblyTableIII.block, 1), "GPG", "DLD", "OPO", Character.valueOf('G'), Items.gold_ingot, Character.valueOf('P'), Blocks.piston, Character.valueOf('D'), Items.diamond, Character.valueOf('L'), Blocks.glowstone, Character.valueOf('O'), Blocks.obsidian ); - - if (!ConfigHandler.DISABLE_TRAIN_WORKBENCH) { - for (ItemStack ironingot : iron) { - addDictRecipe(new ItemStack(BlockIDs.trainWorkbench.block, 1), "###", "IFI", "###", Character.valueOf('#'), "plankWood", Character.valueOf('F'), Blocks.furnace, Character.valueOf('I'), ironingot); - } - } - addDictRecipe(new ItemStack(BlockIDs.distilIdle.block, 1), "###", "#F#", "###", Character.valueOf('#'), "ingotSteel", Character.valueOf('F'), ItemIDs.firebox.item ); - - /* Open Hearth Furnace */ - if (!ConfigHandler.MAKE_MODPACKS_GREAT_AGAIN) { - GameRegistry.addRecipe(new ItemStack(BlockIDs.openFurnaceIdle.block, 1), "#L#", "#B#", "#I#", - Character.valueOf('#'), Blocks.nether_brick, Character.valueOf('L'), Items.lava_bucket, - Character.valueOf('B'), Items.bucket, Character.valueOf('I'), Blocks.iron_block); - } - - /* Lantern */ - for (ItemStack ironingot : iron) { - GameRegistry.addRecipe(new ItemStack(BlockIDs.lantern.block, 4), "III", "PTP", "III", Character.valueOf('I'), ironingot, Character.valueOf('P'), Blocks.glass_pane, Character.valueOf('T'), Blocks.torch); - } - - /* Clothes */ - GameRegistry.addRecipe(new ItemStack(ItemIDs.overalls.item, 1), " # ", "X$X", "X$X", Character.valueOf('X'), new ItemStack(Items.dye, 1, 4), Character.valueOf('$'), Items.leather_leggings, Character.valueOf('#'), new ItemStack(Items.dye, 1, 1) ); - GameRegistry.addRecipe(new ItemStack(ItemIDs.jacket.item, 1), "X X", "X$X", "X#X", Character.valueOf('X'), new ItemStack(Items.dye, 1, 14), Character.valueOf('$'), Items.leather_chestplate, Character.valueOf('#'), Items.string ); - GameRegistry.addRecipe(new ItemStack(ItemIDs.hat.item, 1), " X ", "X$X", "#X#", Character.valueOf('X'), new ItemStack(Items.dye, 1, 4), Character.valueOf('$'), Items.leather_helmet, Character.valueOf('#'), Items.string ); - - /* Driver Clothes*/ - GameRegistry.addRecipe(new ItemStack(ItemIDs.pants_driver_paintable.item, 1), "XXX", "XLX", "X$X", Character.valueOf('L'), Items.leather_leggings,Character.valueOf('$'), new ItemStack(Items.dye, 1, 4), Character.valueOf('X'), Items.string); - GameRegistry.addRecipe(new ItemStack(ItemIDs.jacket_driver_paintable.item, 1), "X X", "XRX", "XPX", Character.valueOf('X'), new ItemStack(Items.dye, 1, 4), Character.valueOf('P'), Items.leather_chestplate,Character.valueOf('R'), new ItemStack(Items.dye, 1, 1) ); - GameRegistry.addRecipe(new ItemStack(ItemIDs.hat_driver_paintable.item, 1), "#$#", "# #", Character.valueOf('$'), new ItemStack(Items.dye, 1, 4), Character.valueOf('#'), Items.string ); - - /* Ticket Man Clothes */ - GameRegistry.addRecipe(new ItemStack(ItemIDs.pants_ticketMan_paintable.item, 1), "XXX", "XLX", "X$X", Character.valueOf('L'), Items.leather_leggings,Character.valueOf('$'), new ItemStack(Items.dye, 1, 8), Character.valueOf('X'), Items.string); - GameRegistry.addRecipe(new ItemStack(ItemIDs.jacket_ticketMan_paintable.item, 1), "X X", "XPX", "X#X", Character.valueOf('P'), Items.leather_chestplate, Character.valueOf('#'), new ItemStack(Items.dye, 1, 4), Character.valueOf('X'), Items.string); - GameRegistry.addRecipe(new ItemStack(ItemIDs.hat_ticketMan_paintable.item, 1), "#$#", "# #", Character.valueOf('$'), new ItemStack(Items.dye, 1, 0), Character.valueOf('#'), Items.string ); - - /* Recipe book */ - GameRegistry.addRecipe(new ItemStack(ItemIDs.recipeBook.item, 1), "TTT", "TBT", "TTT", Character.valueOf('T'), Blocks.rail, Character.valueOf('B'), Items.book ); - - - - // Track recipes for crafting table - TheDoctor1138 - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailSmallStraight.item, 16), "G G", "BPB", "G G", Character.valueOf('G'), Items.iron_ingot, Character.valueOf('P'), Blocks.planks, Character.valueOf('B'), ItemIDs.bolt.item); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailMediumStraight.item, 1), "G ", "G ", "G ", Character.valueOf('G'), ItemIDs.tcRailSmallStraight.item ); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailLongStraight.item, 1), "G ", "G ", " ", Character.valueOf('G'), ItemIDs.tcRailMediumStraight.item ); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailVeryLongStraight.item, 1), "G ", "G ", " ", Character.valueOf('G'), ItemIDs.tcRailLongStraight.item); - - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailSmallDiagonalStraight.item, 1 ), " G ", "G ", " ", Character.valueOf('G'), ItemIDs.tcRailSmallStraight.item); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailMediumDiagonalStraight.item, 1 ), " G", " G ", "G ", Character.valueOf('G'), ItemIDs.tcRailSmallDiagonalStraight.item); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailLongDiagonalStraight.item, 1 ), " G ", "G ", " ", Character.valueOf('G'), ItemIDs.tcRailMediumDiagonalStraight.item); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailVeryLongDiagonalStraight.item, 1 ), " G ", "G ", " ", Character.valueOf('G'), ItemIDs.tcRailLongDiagonalStraight.item); - - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailMediumTurn.item, 1), "GG ", "G ", " ", Character.valueOf('G'), ItemIDs.tcRailSmallStraight.item ); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailLargeTurn.item, 1), " SS", "SS ", "S ", Character.valueOf('S'), ItemIDs.tcRailSmallStraight.item ); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailVeryLargeTurn.item, 1), "GG ","G "," ", Character.valueOf('G'), ItemIDs.tcRailLargeTurn.item ); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailSuperLargeTurn.item, 1), "GG ","G "," ", Character.valueOf('G'), ItemIDs.tcRailVeryLargeTurn.item ); - - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailMedium45DegreeTurn.item, 1), "TG ", "G ", " ", Character.valueOf('G'), ItemIDs.tcRailSmallStraight.item, Character.valueOf('T'), ItemIDs.tcRailMediumTurn.item); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailLarge45DegreeTurn.item, 1), "TG ", "G ", " ", Character.valueOf('G'), ItemIDs.tcRailSmallStraight.item, Character.valueOf('T'), ItemIDs.tcRailLargeTurn.item); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailVeryLarge45DegreeTurn.item, 1), "TG ", "G ", " ", Character.valueOf('G'), ItemIDs.tcRailSmallStraight.item, Character.valueOf('T'), ItemIDs.tcRailVeryLargeTurn.item); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailSuperLarge45DegreeTurn.item, 1), "TG ", "G ", " ", Character.valueOf('G'), ItemIDs.tcRailSmallStraight.item, Character.valueOf('T'), ItemIDs.tcRailSuperLargeTurn.item); - - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailSmallParallelCurve.item, 1), " S ", "SS ", "S ", Character.valueOf('S'), ItemIDs.tcRailSmallStraight.item); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailMediumParallelCurve.item, 1), " S ", "S ", " ", Character.valueOf('S'), ItemIDs.tcRailSmallParallelCurve.item); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailLargeParallelCurve.item, 1), " S ", "S ", " ", Character.valueOf('S'), ItemIDs.tcRailMediumParallelCurve.item); - - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailMediumSwitch.item, 1), "G ", "GHG", "G ", Character.valueOf('G'), ItemIDs.tcRailSmallStraight.item, Character.valueOf('H'), ItemIDs.tcRailMediumTurn.item ); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailMediumParallelSwitch.item, 1), "I G", "IHH", "IH ", Character.valueOf('G'), ItemIDs.tcRailSmallStraight.item, Character.valueOf('H'), ItemIDs.tcRailMediumTurn.item, Character.valueOf('I'), ItemIDs.tcRailMediumStraight.item ); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailLargeSwitch.item, 1), "G ", "HIG", "G ", Character.valueOf('G'), ItemIDs.tcRailSmallStraight.item, Character.valueOf('H'), ItemIDs.tcRailMediumStraight.item, Character.valueOf('I'), ItemIDs.tcRailLargeTurn.item ); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailMedium45DegreeSwitch.item, 1), "G D", "GH ", "G ", Character.valueOf('G'), ItemIDs.tcRailSmallStraight.item, Character.valueOf('H'), ItemIDs.tcRailMedium45DegreeTurn.item, Character.valueOf('D'), ItemIDs.tcRailSmallDiagonalStraight.item); - - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailSlopeWood.item, 1), " TP","TPP","PPP", Character.valueOf('T'), ItemIDs.tcRailMediumStraight.item, Character.valueOf('P'), Blocks.planks); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailLargeSlopeWood.item, 1), " "," T"," T ", Character.valueOf('T'), ItemIDs.tcRailSlopeWood.item); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailVeryLargeSlopeWood.item, 1), " T"," T ","T ", Character.valueOf('T'), ItemIDs.tcRailSlopeWood.item); - - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailSlopeSnowGravel.item, 1), " TS","TSS","SSS", Character.valueOf('T'), ItemIDs.tcRailMediumStraight.item, Character.valueOf('S'), new ItemStack(BlockIDs.snowGravel.block, 1,4)); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailLargeSlopeSnowGravel.item, 1), " "," T"," T ", Character.valueOf('T'), ItemIDs.tcRailSlopeSnowGravel.item); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailVeryLargeSlopeSnowGravel.item, 1), " T"," T ","T ", Character.valueOf('T'), ItemIDs.tcRailSlopeSnowGravel.item); - - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailSlopeGravel.item, 1), " TG","TGG","GGG", Character.valueOf('T'), ItemIDs.tcRailMediumStraight.item, Character.valueOf('G'), Blocks.gravel); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailLargeSlopeGravel.item,1), " "," S"," S ", Character.valueOf('S'), ItemIDs.tcRailSlopeGravel.item); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailVeryLargeSlopeGravel.item, 1), " T", " T ","T ", Character.valueOf('T'), ItemIDs.tcRailSlopeGravel.item); - - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailSlopeDynamic.item, 1), " TG","TGG","GGG", Character.valueOf('T'), ItemIDs.tcRailMediumStraight.item, Character.valueOf('G'), new ItemStack(Items.dye, 1, 1)); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailLargeSlopeDynamic.item,1), " "," S"," S ", Character.valueOf('S'), ItemIDs.tcRailSlopeDynamic.item); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailVeryLargeSlopeDynamic.item, 1), " T", " T ","T ", Character.valueOf('T'), ItemIDs.tcRailSlopeDynamic.item); - - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedSlopeDynamic.item, 1), " TG","TGG","GGG", Character.valueOf('T'), ItemIDs.tcRailEmbeddedMediumStraight.item, Character.valueOf('G'), new ItemStack(Items.dye, 1, 1)); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedLargeSlopeDynamic.item,1), " "," S"," S ", Character.valueOf('S'), ItemIDs.tcRailEmbeddedSlopeDynamic.item); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedVeryLargeSlopeDynamic.item, 1), " T", " T ","T ", Character.valueOf('T'), ItemIDs.tcRailEmbeddedSlopeDynamic.item); - - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailLargeCurvedSlopeDynamic.item, 1), " ", " T ", " S ", Character.valueOf('T'), ItemIDs.tcRailLargeTurn.item, Character.valueOf('S'), ItemIDs.tcRailSlopeDynamic.item); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailVeryLargeCurvedSlopeDynamic.item, 1), " ", " T ", " S ", Character.valueOf('T'), ItemIDs.tcRailVeryLargeTurn.item, Character.valueOf('S'), ItemIDs.tcRailLargeSlopeDynamic.item); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailSuperLargeCurvedSlopeDynamic.item, 1), " ", " T ", " S ", Character.valueOf('T'), ItemIDs.tcRailSuperLargeTurn.item, Character.valueOf('S'), ItemIDs.tcRailVeryLargeSlopeDynamic.item); - - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailSlopeBallast.item, 1), " TG","TGG","GGG", Character.valueOf('T'), ItemIDs.tcRailMediumStraight.item, Character.valueOf('G'), new ItemStack(BlockIDs.oreTC.block, 1, 3)); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailLargeSlopeBallast.item,1), " "," S"," S ", Character.valueOf('S'), ItemIDs.tcRailSlopeBallast.item); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailVeryLargeSlopeBallast.item, 1), " T", " T ","T ", Character.valueOf('T'), ItemIDs.tcRailSlopeBallast.item); - - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailTwoWaysCrossing.item, 1), " S ", "SSS", " S ", Character.valueOf('S'), ItemIDs.tcRailSmallStraight.item ); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailDiagonalTwoWaysCrossing.item, 1), "D D", " D ","D D", Character.valueOf('D'), ItemIDs.tcRailSmallDiagonalStraight.item) ; - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailDiamondCrossing.item, 1), " SD", " S ", "DS ", Character.valueOf('S'), ItemIDs.tcRailSmallStraight.item, Character.valueOf('D'), ItemIDs.tcRailSmallDiagonalStraight.item); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailDiamondCrossing.item, 1), "DS ", " S ", " SD", Character.valueOf('S'), ItemIDs.tcRailSmallStraight.item, Character.valueOf('D'), ItemIDs.tcRailSmallDiagonalStraight.item); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailDoubleDiamondCrossing.item, 1),"DSD", " S ", "DSD", Character.valueOf('S'), ItemIDs.tcRailSmallStraight.item, Character.valueOf('D'), ItemIDs.tcRailSmallDiagonalStraight.item); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailFourWaysCrossing.item, 1), "DSD", "SDS", "DSD", Character.valueOf('S'), ItemIDs.tcRailSmallStraight.item, Character.valueOf('D'), ItemIDs.tcRailSmallDiagonalStraight.item); - - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedSmallStraight.item, 16), "I I", "B B", "I I", Character.valueOf('I'), Items.iron_ingot, Character.valueOf('B'), ItemIDs.bolt.item); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedMediumStraight.item, 1), "G ", "G ", "G ", Character.valueOf('G'), ItemIDs.tcRailEmbeddedSmallStraight.item ); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedLongStraight.item, 1), "G ", "G ", " ", Character.valueOf('G'), ItemIDs.tcRailEmbeddedMediumStraight.item ); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedVeryLongStraight.item, 1), "G ", "G ", " ", Character.valueOf('G'), ItemIDs.tcRailEmbeddedLongStraight.item ); - - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedSmallDiagonalStraight.item, 1 ), " G ", "G ", " ", Character.valueOf('G'), ItemIDs.tcRailEmbeddedSmallStraight.item); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedMediumDiagonalStraight.item, 1 ), " G", " G ", "G ", Character.valueOf('G'), ItemIDs.tcRailEmbeddedSmallDiagonalStraight.item); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedLongDiagonalStraight.item, 1 ), " G ", "G ", " ", Character.valueOf('G'), ItemIDs.tcRailEmbeddedMediumDiagonalStraight.item); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedVeryLongDiagonalStraight.item, 1 ), " G ", "G ", " ", Character.valueOf('G'), ItemIDs.tcRailEmbeddedLongDiagonalStraight.item); - - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedMediumTurn.item, 1), "GG ", "G ", " ", Character.valueOf('G'), ItemIDs.tcRailEmbeddedSmallStraight.item ); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedLargeTurn.item, 1), " SS", "SS ", "S ", Character.valueOf('S'), ItemIDs.tcRailEmbeddedSmallStraight.item ); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedVeryLargeTurn.item, 1), "GG ","G "," ", Character.valueOf('G'), ItemIDs.tcRailEmbeddedLargeTurn.item ); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedSuperLargeTurn.item, 1), "GG ","G "," ", Character.valueOf('G'), ItemIDs.tcRailEmbeddedVeryLargeTurn.item ); - - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedMedium45DegreeTurn.item, 1), "TG ", "G ", " ", Character.valueOf('G'), ItemIDs.tcRailEmbeddedSmallStraight.item, Character.valueOf('T'), ItemIDs.tcRailEmbeddedMediumTurn.item); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedLarge45DegreeTurn.item, 1), "TG ", "G ", " ", Character.valueOf('G'), ItemIDs.tcRailEmbeddedSmallStraight.item, Character.valueOf('T'), ItemIDs.tcRailEmbeddedLargeTurn.item); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedVeryLarge45DegreeTurn.item, 1), "TG ", "G ", " ", Character.valueOf('G'), ItemIDs.tcRailEmbeddedSmallStraight.item, Character.valueOf('T'), ItemIDs.tcRailEmbeddedVeryLargeTurn.item); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedSuperLarge45DegreeTurn.item, 1), "TG ", "G ", " ", Character.valueOf('G'), ItemIDs.tcRailEmbeddedSmallStraight.item, Character.valueOf('T'), ItemIDs.tcRailEmbeddedSuperLargeTurn.item); - - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedSmallParallelCurve.item, 1), " S ", "SS ", "S ", Character.valueOf('S'), ItemIDs.tcRailEmbeddedSmallStraight.item); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedMediumParallelCurve.item, 1), " S ", "SS ", "S ", Character.valueOf('S'), ItemIDs.tcRailEmbeddedSmallParallelCurve.item); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedLargeParallelCurve.item, 1), " S ", "SS ", "S ", Character.valueOf('S'), ItemIDs.tcRailEmbeddedMediumParallelCurve.item); - - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedMediumSwitch.item, 1), "G ", "GHG", "G ", Character.valueOf('G'), ItemIDs.tcRailEmbeddedSmallStraight.item, Character.valueOf('H'), ItemIDs.tcRailEmbeddedMediumTurn.item ); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedMediumParallelSwitch.item, 1), "I G", "IHH", "IH ", Character.valueOf('G'), ItemIDs.tcRailEmbeddedSmallStraight.item, Character.valueOf('H'), ItemIDs.tcRailEmbeddedMediumTurn.item, Character.valueOf('I'), ItemIDs.tcRailEmbeddedMediumStraight.item ); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedLargeSwitch.item, 1), "G ", "HIG", "G ", Character.valueOf('G'), ItemIDs.tcRailEmbeddedSmallStraight.item, Character.valueOf('H'), ItemIDs.tcRailEmbeddedMediumStraight.item, Character.valueOf('I'), ItemIDs.tcRailEmbeddedLargeTurn.item ); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedMedium45DegreeSwitch.item, 1), "G D", "GH ", "G ", Character.valueOf('G'), ItemIDs.tcRailEmbeddedSmallStraight.item, Character.valueOf('H'), ItemIDs.tcRailEmbeddedMedium45DegreeTurn.item, Character.valueOf('D'), ItemIDs.tcRailEmbeddedSmallDiagonalStraight.item); - - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedLargeCurvedSlopeDynamic.item, 1), " ", " T ", " S ", Character.valueOf('T'), ItemIDs.tcRailEmbeddedLargeTurn.item, Character.valueOf('S'), ItemIDs.tcRailEmbeddedSlopeDynamic.item); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedVeryLargeCurvedSlopeDynamic.item, 1), " ", " T ", " S ", Character.valueOf('T'), ItemIDs.tcRailEmbeddedVeryLargeTurn.item, Character.valueOf('S'), ItemIDs.tcRailEmbeddedLargeSlopeDynamic.item); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedSuperLargeCurvedSlopeDynamic.item, 1), " ", " T ", " S ", Character.valueOf('T'), ItemIDs.tcRailEmbeddedSuperLargeTurn.item, Character.valueOf('S'), ItemIDs.tcRailEmbeddedVeryLargeSlopeDynamic.item); - - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedTwoWaysCrossing.item, 1), " S ", "SSS", " S ", Character.valueOf('S'), ItemIDs.tcRailEmbeddedSmallStraight.item ); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedDiagonalTwoWaysCrossing.item, 1), "D D", " D ","D D", Character.valueOf('D'), ItemIDs.tcRailEmbeddedSmallDiagonalStraight.item) ; - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedDiamondCrossing.item, 1), " SD", " S ", "DS ", Character.valueOf('S'), ItemIDs.tcRailEmbeddedSmallStraight.item, Character.valueOf('D'), ItemIDs.tcRailEmbeddedSmallDiagonalStraight.item); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedDiamondCrossing.item, 1), "DS ", " S ", " SD", Character.valueOf('S'), ItemIDs.tcRailEmbeddedSmallStraight.item, Character.valueOf('D'), ItemIDs.tcRailEmbeddedSmallDiagonalStraight.item); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedDoubleDiamondCrossing.item, 1),"DSD", " S ", "DSD", Character.valueOf('S'), ItemIDs.tcRailEmbeddedSmallStraight.item, Character.valueOf('D'), ItemIDs.tcRailEmbeddedSmallDiagonalStraight.item); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedFourWaysCrossing.item, 1), "DSD", "SDS", "DSD", Character.valueOf('S'), ItemIDs.tcRailEmbeddedSmallStraight.item, Character.valueOf('D'), ItemIDs.tcRailEmbeddedSmallDiagonalStraight.item); - - - //Track Conversion Recipes to Normal Rails - - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailSmallStraight.item, 1), " ", " R ", " ", Character.valueOf('R'), Item.getItemFromBlock(Blocks.rail));// small straight track - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailSmallRoadCrossing.item, 1), " ", "SRS", " ", Character.valueOf('S'), new ItemStack(Blocks.stained_hardened_clay, 1, 15), Character.valueOf('R'), Item.getItemFromBlock(Blocks.rail) ); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailSmallRoadCrossing1.item, 1), " ", "SRS", " ", Character.valueOf('S'), new ItemStack(Blocks.stained_hardened_clay, 1, 7), Character.valueOf('R'), Item.getItemFromBlock(Blocks.rail) ); - GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailSmallRoadCrossing2.item, 1), " ", "SRS", " ", Character.valueOf('S'), new ItemStack(Blocks.stained_hardened_clay, 1, 3), Character.valueOf('R'), Item.getItemFromBlock(Blocks.rail) ); - GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(Blocks.rail), 1), " ", " R ", " ", Character.valueOf('R'), ItemIDs.tcRailSmallStraight.item); - GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(Blocks.rail), 1), " ", " R ", " ", Character.valueOf('R'), ItemIDs.tcRailSmallRoadCrossing.item); - GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(Blocks.rail), 1), " ", " R ", " ", Character.valueOf('R'), ItemIDs.tcRailSmallRoadCrossing1.item); - GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(Blocks.rail), 1), " ", " R ", " ", Character.valueOf('R'), ItemIDs.tcRailSmallRoadCrossing2.item); - - GameRegistry.addRecipe(new ItemStack(ItemIDs.paintbrushThing.item,1),"GB ","RIS"," ST", Character.valueOf('G'), new ItemStack(Items.dye,1,2), Character.valueOf('B'), new ItemStack(Items.dye,1,4), Character.valueOf('R'), new ItemStack(Items.dye,1,1), Character.valueOf('I'), new ItemStack(Items.iron_ingot), Character.valueOf('S'), new ItemStack(Items.string), Character.valueOf('T'), new ItemStack(Items.stick)); - GameRegistry.addShapelessRecipe(new ItemStack(BlockIDs.poweredGravel.block,1), new ItemStack(Items.redstone), new ItemStack(Blocks.gravel)); - GameRegistry.addShapelessRecipe(new ItemStack(BlockIDs.snowGravel.block,1 ), new ItemStack(Items.snowball), new ItemStack(Blocks.gravel)); - GameRegistry.addShapelessRecipe(new ItemStack(BlockIDs.snowGravel.block,4 ), new ItemStack(Blocks.snow), new ItemStack(Blocks.gravel), new ItemStack(Blocks.gravel), new ItemStack(Blocks.gravel), new ItemStack(Blocks.gravel)); - GameRegistry.addShapelessRecipe(new ItemStack(BlockIDs.asphalt.block, 8), new ItemStack(ItemIDs.coaldust.item),new ItemStack(ItemIDs.coaldust.item),new ItemStack(ItemIDs.coaldust.item),new ItemStack(ItemIDs.coaldust.item), new ItemStack(Blocks.cobblestone), new ItemStack(Blocks.cobblestone), new ItemStack(Blocks.cobblestone), new ItemStack(Blocks.cobblestone), new ItemStack(Blocks.cobblestone)); - GameRegistry.addRecipe(new ItemStack(BlockIDs.asphaltSlab.block, 6), "BBB", " ", " ", Character.valueOf('B'), new ItemStack(BlockIDs.asphalt.block)); - GameRegistry.addRecipe(new ItemStack(BlockIDs.asphaltSlab.block, 6), " ", "BBB", " ", Character.valueOf('B'), new ItemStack(BlockIDs.asphalt.block)); - GameRegistry.addRecipe(new ItemStack(BlockIDs.asphaltSlab.block, 6), " ", " ", "BBB", Character.valueOf('B'), new ItemStack(BlockIDs.asphalt.block)); - GameRegistry.addRecipe(new ItemStack(BlockIDs.asphaltStairs.block, 4), "B ", "BB ", "BBB", Character.valueOf('B'), new ItemStack(BlockIDs.asphalt.block)); - GameRegistry.addRecipe(new ItemStack(BlockIDs.asphaltStairs.block, 4), " B", " BB", "BBB", Character.valueOf('B'), new ItemStack(BlockIDs.asphalt.block)); - GameRegistry.addRecipe(new ItemStack(BlockIDs.signalSpanish.block,1), " L ", " I ", "RIR", Character.valueOf('L'), new ItemStack(Blocks.redstone_lamp), Character.valueOf('I'), new ItemStack(Items.iron_ingot), Character.valueOf('R'), new ItemStack(Items.redstone)); - GameRegistry.addRecipe(new ItemStack(BlockIDs.kSignal.block,1), "RIR", " I ", " L ", Character.valueOf('L'), new ItemStack(Blocks.redstone_lamp), Character.valueOf('I'), new ItemStack(Items.iron_ingot), Character.valueOf('R'), new ItemStack(Items.redstone)); - GameRegistry.addRecipe(new ItemStack(BlockIDs.bridgePillar.block, 8), "SSS", "SLS", "SSS", Character.valueOf('S'), new ItemStack(Items.stick), Character.valueOf('L'), new ItemStack(Blocks.log)); - GameRegistry.addRecipe(new ItemStack(BlockIDs.speedSign.block, 8), " R ", " I ", " I ", Character.valueOf('R'), new ItemStack(Items.dye,1,1), Character.valueOf('I'), new ItemStack(Items.iron_ingot)); - - //Gravel - GameRegistry.addShapelessRecipe(new ItemStack(BlockIDs.oreTC.block, 4,3), Blocks.gravel, Blocks.gravel, Items.clay_ball); - GameRegistry.addShapelessRecipe(new ItemStack(BlockIDs.oreTC.block, 16, 3), Blocks.gravel,Blocks.gravel,Blocks.gravel,Blocks.gravel,Blocks.gravel,Blocks.gravel,Blocks.gravel,Blocks.gravel,Blocks.clay); - GameRegistry.addShapelessRecipe(new ItemStack(BlockIDs.highSpeedBallast.block, 16),Items.quartz,Blocks.gravel,Blocks.gravel,Blocks.gravel,Blocks.gravel,Blocks.gravel,Blocks.gravel,Blocks.gravel, Blocks.clay); - GameRegistry.addShapelessRecipe(new ItemStack(BlockIDs.dirtyBallast.block, 16),Blocks.gravel,Blocks.gravel,Blocks.gravel,Blocks.gravel,Blocks.gravel,Blocks.gravel,Blocks.gravel,Blocks.gravel, Blocks.dirt); - GameRegistry.addShapelessRecipe(new ItemStack(BlockIDs.dirtierBallast.block, 16), new ItemStack(BlockIDs.dirtyBallast.block,1 ), new ItemStack(BlockIDs.dirtyBallast.block,1 ),new ItemStack(BlockIDs.dirtyBallast.block,1 ),new ItemStack(BlockIDs.dirtyBallast.block,1 ),new ItemStack(BlockIDs.dirtyBallast.block,1 ),new ItemStack(BlockIDs.dirtyBallast.block,1 ),new ItemStack(BlockIDs.dirtyBallast.block,1 ),new ItemStack(BlockIDs.dirtyBallast.block,1 ), Blocks.dirt); - - for (ItemStack ironingot : iron) { - addDictRecipe(new ItemStack(BlockIDs.switchStand.block, 1), " W ", " I ", " R ", Character.valueOf('W'), Blocks.lever, Character.valueOf('R'), Items.stick, Character.valueOf('I'), ironingot); - addDictRecipe(new ItemStack(BlockIDs.MILWSwitchStand.block, 1)," RW","BWR","AAA", Character.valueOf('A'), new ItemStack(Items.stick), Character.valueOf('B'), Blocks.iron_bars, Character.valueOf('R'), new ItemStack(Items.dye, 1, 1), Character.valueOf('W'), new ItemStack(Items.dye, 1, 15)); - addDictRecipe(new ItemStack(BlockIDs.MFPBWigWag.block, 1), "IWI", " I ", " I ", Character.valueOf('W'), Blocks.lever, Character.valueOf('I'), ironingot); - /*Buffer*/ - addDictRecipe(new ItemStack(BlockIDs.stopper.block, 1), "WWW", "I I", "RRR", Character.valueOf('W'), "plankWood", Character.valueOf('R'), Blocks.rail, Character.valueOf('I'), ironingot); - addDictRecipe(new ItemStack(BlockIDs.embeddedStopper.block, 1), " ", "I I", "RRR", Character.valueOf('R'), Blocks.rail, Character.valueOf('I'), ironingot); - addDictRecipe(new ItemStack(BlockIDs.americanstopper.block, 1), "III", "I I", "RRR", Character.valueOf('R'), Blocks.rail, Character.valueOf('I'), ironingot); - addDictRecipe(new ItemStack(BlockIDs.metroMadridPole.block, 1), "III", " I ", "C C", Character.valueOf('I'), ironingot, Character.valueOf('C'), ItemIDs.ingotCopper.item); - } - - GameRegistry.addRecipe(new ItemStack(ItemIDs.bolt.item, 16), " II", " I ", " I ", Character.valueOf('I'), Items.iron_ingot); - - } - - public static void initItemRecipes() { - - ArrayList steel = OreDictionary.getOres("ingotSteel"); - ArrayList iron = OreDictionary.getOres("ingotIron"); - ArrayList planks = OreDictionary.getOres("plankWood"); - ArrayList logs = OreDictionary.getOres("logWood"); - ArrayList plastics = multiNameOreDict("itemPlastic", "dustPlastic");//dustPlastic for MFR support - ArrayList copper = OreDictionary.getOres("ingotCopper"); - ArrayList dustCoal = OreDictionary.getOres("dustCoal"); - List coal = new ArrayList(); - coal.add(new ItemStack(Items.coal)); - coal.addAll(OreDictionary.getOres("coal")); - ArrayList redstone = OreDictionary.getOres("dustRedstone"); - ArrayList waterbucket = waterContainers(); - // Always do this " X " instead of this "X", and do not put "" empty brackets - - /* I placed it here because workbench should be one of the first recipe shown in the recipe book */ - for (ItemStack plank : planks) { - for (ItemStack ironingot : iron) { - TrainCraftingManager.instance.addRecipe(new ItemStack(BlockIDs.trainWorkbench.block, 1), "###", "IFI", "###", Character.valueOf('#'), plank, Character.valueOf('F'), Blocks.furnace, Character.valueOf('I'), ironingot); - } - } - - /* Recipe book */ - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.recipeBook.item, 1), "TTT", "TBT", "TTT", Character.valueOf('T'), Blocks.rail, Character.valueOf('B'), Items.book ); - - /* Chunk Loader Activator */ - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.chunkLoaderActivator.item, 1), " P", " S ", "S ", Character.valueOf('S'), Items.blaze_rod, Character.valueOf('P'), Items.ender_pearl ); - - // Switches -hariesh - GameRegistry.addRecipe(new ItemStack(BlockIDs.owoYardSwitchStand.block,1), " ","OS ","IW ", Character.valueOf('O'), new ItemStack(Items.dye, 1, 14), Character.valueOf('S'), Items.stick, Character.valueOf('I'), Items.iron_ingot, Character.valueOf('W'), Blocks.planks); - GameRegistry.addRecipe(new ItemStack(BlockIDs.owoSwitchStand.block, 1), " O "," S ", " IW", Character.valueOf('O'), new ItemStack(Items.dye, 1, 14), Character.valueOf('S'), Items.stick, Character.valueOf('I'), Items.iron_ingot, Character.valueOf('W'), Blocks.planks); - GameRegistry.addRecipe(new ItemStack(BlockIDs.circleSwitchStand.block, 1), " R ", " S ", " IW", Character.valueOf('R'), new ItemStack(Items.dye, 1, 1), Character.valueOf('S'), Items.stick, Character.valueOf('I'), Items.iron_ingot, Character.valueOf('W'), Blocks.planks); - GameRegistry.addRecipe(new ItemStack(BlockIDs.autoSwtichStand.block, 1), " ","C ","BIW", Character.valueOf('C'), new ItemStack(ItemIDs.electronicCircuit.item,1), Character.valueOf('B'), Blocks.iron_block, Character.valueOf('S'), Items.stick, Character.valueOf('I'), Items.iron_ingot, Character.valueOf('W'), Blocks.planks); - GameRegistry.addRecipe(new ItemStack(ItemIDs.paintbrushThing.item,1),"GB ","RIS"," ST", Character.valueOf('G'), new ItemStack(Items.dye,1,2), Character.valueOf('B'), new ItemStack(Items.dye,1,4), Character.valueOf('R'), new ItemStack(Items.dye,1,1), Character.valueOf('I'), new ItemStack(Items.iron_ingot), Character.valueOf('S'), new ItemStack(Items.string), Character.valueOf('T'), new ItemStack(Items.stick)); - - - - /* Assembly tables */ - - for (ItemStack ironingot : iron) { - TrainCraftingManager.instance.addRecipe(new ItemStack(BlockIDs.assemblyTableI.block, 1), "IPI", "S S", "SPS", Character.valueOf('I'), ironingot, Character.valueOf('P'), Blocks.piston, Character.valueOf('S'), Blocks.stone); - } - TrainCraftingManager.instance.addRecipe(new ItemStack(BlockIDs.assemblyTableII.block, 1), "GPG", "O O", "OPO", Character.valueOf('G'), Items.gold_ingot, Character.valueOf('P'), Blocks.piston, Character.valueOf('O'), Blocks.obsidian ); - TrainCraftingManager.instance.addRecipe(new ItemStack(BlockIDs.assemblyTableIII.block, 1), "GPG", "DLD", "OPO", Character.valueOf('G'), Items.gold_ingot, Character.valueOf('P'), Blocks.piston, Character.valueOf('D'), Items.diamond, Character.valueOf('L'), Blocks.glowstone, Character.valueOf('O'), Blocks.obsidian ); - - /* Open Hearth Furnace */ - TrainCraftingManager.instance.addRecipe(new ItemStack(BlockIDs.openFurnaceIdle.block, 1), "#L#", "#B#", "#I#", Character.valueOf('#'), Blocks.nether_brick, Character.valueOf('L'), Items.lava_bucket, Character.valueOf('B'), Items.bucket, Character.valueOf('I'), Blocks.iron_block ); - - /* Lantern */ - for (ItemStack ironingot : iron) { - TrainCraftingManager.instance.addRecipe(new ItemStack(BlockIDs.lantern.block, 4), "III", "PTP", "III", Character.valueOf('I'), ironingot, Character.valueOf('P'), Blocks.glass_pane, Character.valueOf('T'), Blocks.torch); - } - /* Clothes */ - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.overalls.item, 1), " # ", "X$X", "X X", Character.valueOf('X'), new ItemStack(Items.dye, 1, 4), Character.valueOf('$'), Items.leather_leggings, Character.valueOf('#'), new ItemStack(Items.dye, 1, 1) ); - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.jacket.item, 1), "X X", "X$X", "X#X", Character.valueOf('X'), new ItemStack(Items.dye, 1, 14), Character.valueOf('$'), Items.leather_chestplate, Character.valueOf('#'), Items.string ); - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.hat.item, 1), " X ", "X$X", "#X#", Character.valueOf('X'), new ItemStack(Items.dye, 1, 4), Character.valueOf('$'), Items.leather_helmet, Character.valueOf('#'), Items.string ); - - /* Driver Clothes*/ - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.pants_driver_paintable.item, 1), "XXX", "XLX", "X$X", Character.valueOf('L'), Items.leather_leggings,Character.valueOf('$'), new ItemStack(Items.dye, 1, 4), Character.valueOf('X'), Items.string); - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.jacket_driver_paintable.item, 1), "X X", "XRX", "XPX", Character.valueOf('X'), new ItemStack(Items.dye, 1, 4), Character.valueOf('P'), Items.leather_chestplate,Character.valueOf('R'), new ItemStack(Items.dye, 1, 1) ); - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.hat_driver_paintable.item, 1), "#$#", "# #", Character.valueOf('$'), new ItemStack(Items.dye, 1, 4), Character.valueOf('#'), Items.string ); - - /* Ticket Man Clothes */ - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.pants_ticketMan_paintable.item, 1), "XXX", "XLX", "X$X", Character.valueOf('L'), Items.leather_leggings,Character.valueOf('$'), new ItemStack(Items.dye, 1, 8), Character.valueOf('X'), Items.string); - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.jacket_ticketMan_paintable.item, 1), "X X", "XPX", "X#X", Character.valueOf('P'), Items.leather_chestplate, Character.valueOf('#'), new ItemStack(Items.dye, 1, 4), Character.valueOf('X'), Items.string); - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.hat_ticketMan_paintable.item, 1), "#$#", "# #", Character.valueOf('$'), new ItemStack(Items.dye, 1, 0), Character.valueOf('#'), Items.string ); - - - - if (plastics != null && plastics.size() >= 0) { - for (ItemStack plastic : plastics) { - /* Empty canister */ - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.emptyCanister.item, 4), "PPP", "P P", "PPP", Character.valueOf('P'), plastic); - for (ItemStack rs :redstone) { - /* Electronic circuit */ - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.electronicCircuit.item, 1), "XXX", "RPR", "XXX", Character.valueOf('X'), ItemIDs.copperWireFine.item, Character.valueOf('P'), plastic, Character.valueOf('R'), rs.getItem()); - } - /* Composite Material*/ - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.reinforcedPlastic.item, 16), "LPL", "PLP", "GPG", Character.valueOf('G'), Blocks.glass_pane, Character.valueOf('P'), ItemIDs.graphite.item, Character.valueOf('L'), plastic); - - if (copper != null && copper.size() >= 0) { - for (ItemStack copp : copper) { - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.copperWireFine.item, 6), "XXX", "XPX", "XXX", Character.valueOf('X'), copp, Character.valueOf('P'), plastic ); - GameRegistry.addRecipe(new ItemStack(BlockIDs.overheadWire.block, 16), "IC ","I ","I ", Character.valueOf('I'), new ItemStack(Items.iron_ingot,1), Character.valueOf('C'), copp); - GameRegistry.addRecipe(new ItemStack(BlockIDs.overheadWireDouble.block, 16), "ICI","ICI","I I", Character.valueOf('I'), new ItemStack(Items.iron_ingot,1), Character.valueOf('C'), copp); - - } - } - } - } - - /* Composite Suit */ - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.boots_suit_paintable.item, 1), " D ","X X", "XFX", Character.valueOf('F'), Items.feather, Character.valueOf('D'), Items.diamond, Character.valueOf('X'), ItemIDs.reinforcedPlates.item); - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.pants_suit_paintable.item, 1), "XDX", "X$X", "X X", Character.valueOf('$'), Items.fire_charge, Character.valueOf('X'), ItemIDs.reinforcedPlates.item,Character.valueOf('D'), Items.diamond); - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.jacket_suit_paintable.item, 1), "X X", "XDX", "XAX", Character.valueOf('A'), Items.golden_apple, Character.valueOf('X'), ItemIDs.reinforcedPlates.item,Character.valueOf('D'), Blocks.diamond_block); - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.helmet_suit_paintable.item, 1), "#D#", "# #", Character.valueOf('D'), Blocks.diamond_block, Character.valueOf('#'), ItemIDs.reinforcedPlates.item ); - - /* Trains parts */ - - for (ItemStack ironingot : iron) { - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.generator.item, 1), " ##", "E$$", " ##", Character.valueOf('#'), ItemIDs.copperWireFine.item, Character.valueOf('E'), ItemIDs.electronicCircuit.item, Character.valueOf('$'), ironingot);// generator - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.controls.item, 1), "#X#", "#E#", "$$$", Character.valueOf('#'), Blocks.lever, Character.valueOf('X'), Blocks.stone_button, Character.valueOf('$'), ironingot, Character.valueOf('E'), ItemIDs.electronicCircuit.item);// train controls - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.electmotor.item, 1), "I#I", "#E#", "I#I", Character.valueOf('#'), ItemIDs.copperWireFine.item, Character.valueOf('I'), ironingot, Character.valueOf('E'), ItemIDs.electronicCircuit.item);// Electric motor - for (ItemStack bucketWater : waterbucket) { - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.ironBoiler.item, 2), "###", "XXX", "###", Character.valueOf('#'), ironingot, Character.valueOf('X'), bucketWater.getItem());// iron Boiler - } - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.ironFirebox.item, 2), "###", "#X#", "###", Character.valueOf('#'), ironingot, Character.valueOf('X'), Items.flint_and_steel );// iron Firebox - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.ironChimney.item, 2), "# #", "# #", "# #", Character.valueOf('#'), ironingot ); - } - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.dieselengine.item, 2), "###", "XXX", "CCC", Character.valueOf('#'), ItemIDs.piston.item, Character.valueOf('X'), ItemIDs.cylinder.item, Character.valueOf('C'), ItemIDs.camshaft.item);// diesel engine - for (ItemStack dustStack : dustCoal) { - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.graphite.item, 2), "###", "#X#", "###", Character.valueOf('#'), dustStack, Character.valueOf('X'), Items.clay_ball );// Graphite - } - - if (!ConfigHandler.MAKE_MODPACKS_GREAT_AGAIN) { - for (ItemStack c : coal) { - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.coaldust.item, 4), - "###", " ", " ", Character.valueOf('#'), c.getItem()); - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.coaldust.item, 4), - " ", "###", " ", Character.valueOf('#'), c.getItem()); - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.coaldust.item, 4), - " ", " ", "###", Character.valueOf('#'), c.getItem()); - } - } - //TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.signal.item, 2), "#", "X", "X", Character.valueOf('X'), ItemIDs.steel.item, Character.valueOf('#'), rs ); - /* diesel generator */ - TrainCraftingManager.instance.addRecipe(new ItemStack(BlockIDs.generatorDiesel.block, 1), "C ", "DE ", Character.valueOf('C'), ItemIDs.steelchimney.item, Character.valueOf('D'), ItemIDs.dieselengine.item, Character.valueOf('E'), ItemIDs.electronicCircuit.item ); - - /* Zepplin parts and zeppelin item */ - if (ConfigHandler.ENABLE_ZEPPELIN) { - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.balloon.item, 1), "###", "# #", "###", Character.valueOf('#'), Blocks.wool );// Balloon - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.steamengine.item, 1), "C ", "BF ", Character.valueOf('C'), ItemIDs.steelchimney.item, Character.valueOf('B'), ItemIDs.boiler.item, Character.valueOf('F'), ItemIDs.firebox.item );// Small steam engine - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.airship.item, 1), "B B", "SES", "POP", Character.valueOf('B'), ItemIDs.balloon.item, Character.valueOf('S'), Items.stick, Character.valueOf('E'), ItemIDs.steamengine.item, Character.valueOf('P'), ItemIDs.propeller.item, Character.valueOf('O'), Items.boat ); - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.zeppelin.item, 1), "BBB", "SES", "POP", Character.valueOf('B'), ItemIDs.balloon.item, Character.valueOf('S'), ItemIDs.propeller.item, Character.valueOf('E'), ItemIDs.controls.item, Character.valueOf('P'), ItemIDs.electmotor.item, Character.valueOf('O'), ItemIDs.seats.item ); - } - - for (ItemStack plankItem : planks) { - for (ItemStack steelItem: steel) { - - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.reinforcedPlates.item, 1), "RRR", "SSS", "CCC", Character.valueOf('R'), ItemIDs.reinforcedPlastic.item, Character.valueOf('S'), steelItem, Character.valueOf('C'), Items.clay_ball); - - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.composite_wrench.item, 1), "S S", " R "," R ", Character.valueOf('R'), ItemIDs.reinforcedPlastic.item, Character.valueOf('S'),steelItem ); - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.steelcab.item, 2), "###", "X X", "XXX", Character.valueOf('X'), steelItem, Character.valueOf('#'), plankItem );// Steel cab - TrainCraftingManager.instance.addRecipe(new ItemStack(BlockIDs.distilIdle.block, 1), "###", "#F#", "###", Character.valueOf('#'), steelItem, Character.valueOf('F'), ItemIDs.firebox.item ); - for (ItemStack rs :redstone) { - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.transformer.item, 1), "# #", "XEX", "###", Character.valueOf('#'), steelItem, Character.valueOf('E'), ItemIDs.electronicCircuit.item, Character.valueOf('X'), rs.getItem());// transformer - } - - for (ItemStack bucketWater :waterbucket) { - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.boiler.item, 2), "###", "XXX", "###", Character.valueOf('#'), steelItem, Character.valueOf('X'), bucketWater.getItem());// Boiler - } - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.firebox.item, 2), "###", "#X#", "###", Character.valueOf('#'), steelItem, Character.valueOf('X'), Items.flint_and_steel );// Firebox - for (ItemStack ironingot : iron) { - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.bogie.item, 4), " # ", "#X#", " # ", Character.valueOf('#'), steelItem, Character.valueOf('X'), ironingot);// Bogie - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.steelframe.item, 2), "# #", "AAA", Character.valueOf('A'), steelItem, Character.valueOf('#'), ironingot);// Steel Frame - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.steelframe.item, 2), " ", "# #", "AAA", Character.valueOf('A'), steelItem, Character.valueOf('#'), ironingot);// Steel Frame - - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.stake.item, 1), " ", "IFI", " ", Character.valueOf('I'), steelItem, Character.valueOf('F'), ironingot ); - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.stake.item, 1), "IFI", " ", " ", Character.valueOf('I'), steelItem, Character.valueOf('F'), ironingot ); - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.stake.item, 1), " ", " ", "IFI", Character.valueOf('I'), steelItem, Character.valueOf('F'), ironingot ); - - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.propeller.item, 2), " # ", "#X#", " # ", Character.valueOf('#'), plankItem, Character.valueOf('X'), ironingot );// Propeller - } - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.steelchimney.item, 2), "# #", "# #", "# #", Character.valueOf('#'), steelItem );// Bogie - TrainCraftingManager.instance.addRecipe(new ItemStack(Items.flint_and_steel, 2), "* ", " #", Character.valueOf('*'), steelItem, Character.valueOf('#'), Items.flint ); - - - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.transmition.item, 1), " # ", "#X#", " # ", Character.valueOf('#'), steelItem, Character.valueOf('X'), ItemIDs.diesel.item );// transmition - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.piston.item, 3), " # ", " X ", Character.valueOf('#'), steelItem, Character.valueOf('X'), Items.stick );// piston - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.camshaft.item, 3), "###", " ", " ", Character.valueOf('#'), steelItem );// camshaft - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.camshaft.item, 3), " ", "###", " ", Character.valueOf('#'), steelItem );// camshaft - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.camshaft.item, 3), " ", " ", "###", Character.valueOf('#'), steelItem );// camshaft - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.cylinder.item, 3), "# #", "# #", "###", Character.valueOf('#'), steelItem );// cylinder - - } - - for (ItemStack logStack :logs) { - /* Water Wheel */ - TrainCraftingManager.instance.addRecipe(new ItemStack(BlockIDs.waterWheel.block, 1), " P ", "PGP", " P ", Character.valueOf('P'), logStack,Character.valueOf('G'), ItemIDs.generator.item); - - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.woodenBogie.item, 4), " # ", "#X#", " # ", Character.valueOf('#'), plankItem, Character.valueOf('X'), logStack );// wooden Bogie - } - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.woodenFrame.item, 2), "# #", "AAA", Character.valueOf('A'), plankItem, Character.valueOf('#'), plankItem );// wooden Frame - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.woodenFrame.item, 2), " ", "# #", "AAA", Character.valueOf('A'), plankItem, Character.valueOf('#'), plankItem );// wooden Frame - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.woodenCab.item, 2), "###", "X X", "XXX", Character.valueOf('X'), plankItem, Character.valueOf('#'), plankItem );// wooden cab - - for (ItemStack ironingot : iron) { - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.seats.item, 1), "# ", "## ", "XXX", Character.valueOf('#'), plankItem, Character.valueOf('X'), ironingot);// transformer - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.ironBogie.item, 4), " # ", "#X#", " # ", Character.valueOf('#'), ironingot, Character.valueOf('X'), plankItem);// iron Bogie - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.ironFrame.item, 2), "# #", "AAA", Character.valueOf('A'), ironingot, Character.valueOf('#'), plankItem);// iron Frame - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.ironFrame.item, 2), " ", "# #", "AAA", Character.valueOf('A'), ironingot, Character.valueOf('#'), plankItem);// iron Frame - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.ironCab.item, 2), "###", "X X", "XXX", Character.valueOf('X'), ironingot, Character.valueOf('#'), plankItem);// iron cab - TrainCraftingManager.instance.addRecipe(new ItemStack(BlockIDs.stopper.block, 1), "WWW", "I I", "RRR", Character.valueOf('W'), plankItem, Character.valueOf('R'), Blocks.rail, Character.valueOf('I'), ironingot);// stopper - TrainCraftingManager.instance.addRecipe(new ItemStack(BlockIDs.switchStand.block, 1), " W ", " I ", " R ", Character.valueOf('W'), Blocks.lever, Character.valueOf('R'), Items.stick, Character.valueOf('I'), ironingot);//switchstand - TrainCraftingManager.instance.addRecipe(new ItemStack(BlockIDs.MFPBWigWag.block, 1), "IWI", " I ", " I ", Character.valueOf('W'), Blocks.lever, Character.valueOf('I'), ironingot);//wigwag - } - // Short Wood Slope - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailSlopeWood.item, 1), - " MW", "MWW", "WWW", Character.valueOf('M'), ItemIDs.tcRailMediumStraight.item, - Character.valueOf('W'), plankItem ); - } - /* Wind mill */ - for (ItemStack ironingot : iron) { - TrainCraftingManager.instance.addRecipe(new ItemStack(BlockIDs.windMill.block, 1), " R ", " G ", "B B", Character.valueOf('G'), ItemIDs.generator.item, Character.valueOf('B'), ironingot, Character.valueOf('R'), ItemIDs.propeller.item); - - if (Loader.isModLoaded("ComputerCraft")) { - TrainCraftingManager.instance.addRecipe(new ItemStack(BlockIDs.mtcTransmitterSpeed.block, 1), "SRS", "RTR", "SRS", 'S', ironingot, 'R', Items.redstone, 'T', Blocks.stone_pressure_plate); - TrainCraftingManager.instance.addRecipe(new ItemStack(BlockIDs.mtcReceiverMTC.block, 1), "STS", " R ", "SPS", 'S', ironingot, 'R', Items.redstone, 'P', Items.repeater, 'T', new ItemStack(Blocks.torch, 1)); - TrainCraftingManager.instance.addRecipe(new ItemStack(BlockIDs.mtcTransmitterMTC.block, 1), "SPS", " R ", "STS", 'S', ironingot, 'R', Items.redstone, 'P', Items.repeater, 'T', new ItemStack(Blocks.torch, 1)); - TrainCraftingManager.instance.addRecipe(new ItemStack(BlockIDs.mtcReceiverDestination.block, 1), "SRS", "RTR", "SRS", 'S', ironingot, 'R', Items.redstone, 'T', Items.sign); - TrainCraftingManager.instance.addRecipe(new ItemStack(BlockIDs.mtcATOStopTransmitter.block, 1), " S ", "RTS", " R ", 'S', ironingot, 'R', Items.redstone, 'T', ItemIDs.electronicCircuit.item); - } - } - - -/* - for (ItemStack s: iron) { - - }*/ - - - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailSmallRoadCrossing.item, 1), " ", "SRS", " ", Character.valueOf('S'), new ItemStack(Blocks.stained_hardened_clay, 1, 15), Character.valueOf('R'), Item.getItemFromBlock(Blocks.rail) ); - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailSmallRoadCrossing1.item, 1), " ", "SRS", " ", Character.valueOf('S'), new ItemStack(Blocks.stained_hardened_clay, 1, 7), Character.valueOf('R'), Item.getItemFromBlock(Blocks.rail) ); - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailSmallRoadCrossing2.item, 1), " ", "SRS", " ", Character.valueOf('S'), new ItemStack(Blocks.stained_hardened_clay, 1, 3), Character.valueOf('R'), Item.getItemFromBlock(Blocks.rail) ); - TrainCraftingManager.instance.addRecipe(new ItemStack(Item.getItemFromBlock(Blocks.rail), 1), " ", " R ", " ", Character.valueOf('R'), ItemIDs.tcRailSmallStraight.item); - TrainCraftingManager.instance.addRecipe(new ItemStack(Item.getItemFromBlock(Blocks.rail), 1), " ", " R ", " ", Character.valueOf('R'), ItemIDs.tcRailSmallRoadCrossing.item); - TrainCraftingManager.instance.addRecipe(new ItemStack(Item.getItemFromBlock(Blocks.rail), 1), " ", " R ", " ", Character.valueOf('R'), ItemIDs.tcRailSmallRoadCrossing1.item); - TrainCraftingManager.instance.addRecipe(new ItemStack(Item.getItemFromBlock(Blocks.rail), 1), " ", " R ", " ", Character.valueOf('R'), ItemIDs.tcRailSmallRoadCrossing2.item); - - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailSlopeWood.item, 1), " TP","TPP","PPP", Character.valueOf('T'), ItemIDs.tcRailMediumStraight.item, Character.valueOf('P'), Blocks.planks); - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailLargeSlopeWood.item, 1), " "," T"," T ", Character.valueOf('T'), ItemIDs.tcRailSlopeWood.item); - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailVeryLargeSlopeWood.item, 1), " T"," T ","T ", Character.valueOf('T'), ItemIDs.tcRailSlopeWood.item); - - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailSlopeSnowGravel.item, 1), " TS","TSS","SSS", Character.valueOf('T'), ItemIDs.tcRailMediumStraight.item, Character.valueOf('S'), new ItemStack(BlockIDs.snowGravel.block, 1,4)); - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailLargeSlopeSnowGravel.item, 1), " "," T"," T ", Character.valueOf('T'), ItemIDs.tcRailSlopeSnowGravel.item); - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailVeryLargeSlopeSnowGravel.item, 1), " T"," T ","T ", Character.valueOf('T'), ItemIDs.tcRailSlopeSnowGravel.item); - - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailSlopeGravel.item, 1), " TG","TGG","GGG", Character.valueOf('T'), ItemIDs.tcRailMediumStraight.item, Character.valueOf('G'), Blocks.gravel); - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailLargeSlopeGravel.item,1), " "," S"," S ", Character.valueOf('S'), ItemIDs.tcRailSlopeGravel.item); - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailVeryLargeSlopeGravel.item, 1), " T", " T ","T ", Character.valueOf('T'), ItemIDs.tcRailSlopeGravel.item); - - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailSlopeBallast.item, 1), " TG","TGG","GGG", Character.valueOf('T'), ItemIDs.tcRailMediumStraight.item, Character.valueOf('G'), new ItemStack(BlockIDs.oreTC.block, 1, 3)); - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailLargeSlopeBallast.item,1), " "," S"," S ", Character.valueOf('S'), ItemIDs.tcRailSlopeBallast.item); - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailVeryLargeSlopeBallast.item, 1), " T", " T ","T ", Character.valueOf('T'), ItemIDs.tcRailSlopeBallast.item); - - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailSmallStraight.item, 16), "G G", "BPB", "G G", Character.valueOf('G'), Items.iron_ingot, Character.valueOf('P'), Blocks.planks, Character.valueOf('B'), ItemIDs.bolt.item); - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailMediumStraight.item, 1), "S ", "S ", "S ", Character.valueOf('S'), ItemIDs.tcRailSmallStraight.item ); - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailLongStraight.item, 1), "M ", "M ", " ", Character.valueOf('M'), ItemIDs.tcRailMediumStraight.item ); - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailVeryLongStraight.item, 1), "L ", "L ", " ", Character.valueOf('L'), ItemIDs.tcRailLongStraight.item); - - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailSmallDiagonalStraight.item, 1), " G ", "G ", " ", Character.valueOf('G'), ItemIDs.tcRailSmallStraight.item); - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailMediumDiagonalStraight.item, 1), " G", " G ", "G ", Character.valueOf('G'), ItemIDs.tcRailSmallDiagonalStraight.item); - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailLongDiagonalStraight.item, 1), " G ", "G ", " ", Character.valueOf('G'), ItemIDs.tcRailMediumDiagonalStraight.item); - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailVeryLongDiagonalStraight.item, 1), " G ", "G ", " ", Character.valueOf('G'), ItemIDs.tcRailLongDiagonalStraight.item); - - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailMediumTurn.item, 1), "SS ", "S ", Character.valueOf('S'), ItemIDs.tcRailSmallStraight.item ); - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailLargeTurn.item, 1), " SS", "SS ", "S ", Character.valueOf('S'), ItemIDs.tcRailSmallStraight.item ); - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailVeryLargeTurn.item, 1), "MM ", "M ", " ", Character.valueOf('M'), ItemIDs.tcRailMediumTurn.item ); - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailSuperLargeTurn.item, 1), "VV ", "V ", " ", Character.valueOf('V'), ItemIDs.tcRailVeryLargeTurn.item ); - - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailSmallParallelCurve.item, 1), " S ", "SS ", "S ", Character.valueOf('S'), ItemIDs.tcRailSmallStraight.item); - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailMediumParallelCurve.item, 1), " S ", "S ", " ", Character.valueOf('S'), ItemIDs.tcRailSmallParallelCurve.item); - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailLargeParallelCurve.item, 1), " S ", "S ", " ", Character.valueOf('S'), ItemIDs.tcRailMediumParallelCurve.item); - - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailMediumSwitch.item, 1), "S ", "SRS", "S ", Character.valueOf('S'), ItemIDs.tcRailSmallStraight.item, Character.valueOf('R'), ItemIDs.tcRailMediumTurn.item ); - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailLargeSwitch.item, 1), "S ", "MRS", "S ", Character.valueOf('S'), ItemIDs.tcRailSmallStraight.item, Character.valueOf('M'), ItemIDs.tcRailMediumStraight.item, Character.valueOf('R'), ItemIDs.tcRailLargeTurn.item ); - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailMediumParallelSwitch.item, 1), "M S", "MRR", "MR ", Character.valueOf('S'), ItemIDs.tcRailSmallStraight.item, Character.valueOf('M'), ItemIDs.tcRailMediumStraight.item, Character.valueOf('R'), ItemIDs.tcRailMediumTurn.item ); - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailTwoWaysCrossing.item, 1), " S ", "SSS", " S ", Character.valueOf('S'), ItemIDs.tcRailSmallStraight.item ); - - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailMedium45DegreeSwitch.item, 1), "S D", "ST ", "S ", Character.valueOf('S'), ItemIDs.tcRailSmallStraight.item, Character.valueOf('D'), ItemIDs.tcRailSmallDiagonalStraight.item, Character.valueOf('T'), ItemIDs.tcRailMedium45DegreeTurn.item); - - /**Embedded Versions*/ - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedSmallStraight.item, 16), "I I", "B B", "I I", Character.valueOf('I'), Items.iron_ingot, Character.valueOf('B'), ItemIDs.bolt.item); - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedMediumStraight.item, 1), "S ", "S ", "S ", Character.valueOf('S'), ItemIDs.tcRailEmbeddedSmallStraight.item ); - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedLongStraight.item, 1), "M ", "M ", " ", Character.valueOf('M'), ItemIDs.tcRailEmbeddedMediumStraight.item ); - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedVeryLongStraight.item, 1), "L ", "L ", " ", Character.valueOf('L'), ItemIDs.tcRailEmbeddedLongStraight.item); - - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedSmallDiagonalStraight.item, 1 ), " G ", "G ", " ", Character.valueOf('G'), ItemIDs.tcRailEmbeddedSmallStraight.item); - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedMediumDiagonalStraight.item, 1 ), " G", " G ", "G ", Character.valueOf('G'), ItemIDs.tcRailEmbeddedSmallDiagonalStraight.item); - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedLongDiagonalStraight.item, 1 ), " G ", "G ", " ", Character.valueOf('G'), ItemIDs.tcRailEmbeddedMediumDiagonalStraight.item); - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedVeryLongDiagonalStraight.item, 1 ), " G ", "G ", " ", Character.valueOf('G'), ItemIDs.tcRailEmbeddedLongDiagonalStraight.item); - - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedMediumTurn.item, 1), "SS ", "S ", Character.valueOf('S'), ItemIDs.tcRailEmbeddedSmallStraight.item ); - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedLargeTurn.item, 1), " SS", "SS ", "S ", Character.valueOf('S'), ItemIDs.tcRailEmbeddedSmallStraight.item ); - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedVeryLargeTurn.item, 1), "MM ", "M ", " ", Character.valueOf('M'), ItemIDs.tcRailEmbeddedMediumTurn.item ); - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedSuperLargeTurn.item, 1), "VV ", "V ", " ", Character.valueOf('V'), ItemIDs.tcRailEmbeddedVeryLargeTurn.item ); - - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedSmallParallelCurve.item, 1), " S ", "SS ", "S ", Character.valueOf('S'), ItemIDs.tcRailEmbeddedSmallStraight.item); - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedMediumParallelCurve.item, 1), " S ", "SS ", "S ", Character.valueOf('S'), ItemIDs.tcRailEmbeddedSmallParallelCurve.item); - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedLargeParallelCurve.item, 1), " S ", "SS ", "S ", Character.valueOf('S'), ItemIDs.tcRailEmbeddedMediumParallelCurve.item); - - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedTwoWaysCrossing.item, 1), " S ", "SSS", " S ", Character.valueOf('S'), ItemIDs.tcRailEmbeddedSmallStraight.item ); - TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedMedium45DegreeSwitch.item, 1), "S D", "ST ", "S ", Character.valueOf('S'), ItemIDs.tcRailEmbeddedSmallStraight.item, Character.valueOf('D'), ItemIDs.tcRailEmbeddedSmallDiagonalStraight.item, Character.valueOf('T'), ItemIDs.tcRailEmbeddedMedium45DegreeTurn.item); - // Bridge Pillar - TrainCraftingManager.instance.addRecipe(new ItemStack(BlockIDs.bridgePillar.block, 8), - "SSS", "SLS", "SSS", Character.valueOf('S'), Items.stick, Character.valueOf('L'), Blocks.log ); - } - - public static void initSmeltingRecipes(){ - - /* OpenHearthFurnace recipes */ - if (!ConfigHandler.MAKE_MODPACKS_GREAT_AGAIN) { - ArrayList steel = OreDictionary.getOres("ingotSteel"); - ArrayList iron = OreDictionary.getOres("ingotIron"); - for (ItemStack s : steel) { - for (ItemStack ironitm : iron) - TrainCraftingManager.instance.addHearthFurnaceRecipe(ironitm, - new ItemStack(ItemIDs.graphite.item), s, 2F, 1000); - } - } - - /* Vanilla Furnace recipes */ - GameRegistry.addSmelting(new ItemStack(Item.getItemFromBlock(BlockIDs.oreTC.block), 0), OreDictionary.getOres("ingotCopper").get(0), 0.7f); - } - - public static void addDictRecipe(ItemStack stack, Object... obj) { - ShapedOreRecipe recipe = new ShapedOreRecipe(stack, obj); - GameRegistry.addRecipe(recipe); - } + private static ArrayList multiNameOreDict(String... names) { + ArrayList entries = new ArrayList<>(); + for (String name : names) { + entries.addAll(OreDictionary.getOres(name)); + + } + return entries; + } + + public static void initBlockRecipes() { + ArrayList iron = OreDictionary.getOres("ingotIron"); + + TrainCraftingManager.instance.getRecipeList().add(new RecipesArmorDyes()); + /* Assembly tables */ + for (ItemStack ironingot : iron) { + GameRegistry.addRecipe(new ItemStack(BlockIDs.assemblyTableI.block, 1), "IPI", "S S", "SPS", 'I', ironingot, 'P', Blocks.piston, 'S', Blocks.stone); + } + GameRegistry.addRecipe(new ItemStack(BlockIDs.assemblyTableII.block, 1), "GPG", "O O", "OPO", 'G', Items.gold_ingot, 'P', Blocks.piston, 'O', Blocks.obsidian); + GameRegistry.addRecipe(new ItemStack(BlockIDs.assemblyTableIII.block, 1), "GPG", "DLD", "OPO", 'G', Items.gold_ingot, 'P', Blocks.piston, 'D', Items.diamond, 'L', Blocks.glowstone, 'O', Blocks.obsidian); + + if (!ConfigHandler.DISABLE_TRAIN_WORKBENCH) { + for (ItemStack ironingot : iron) { + addDictRecipe(new ItemStack(BlockIDs.trainWorkbench.block, 1), "###", "IFI", "###", '#', "plankWood", 'F', Blocks.furnace, 'I', ironingot); + } + } + addDictRecipe(new ItemStack(BlockIDs.distilIdle.block, 1), "###", "#F#", "###", '#', "ingotSteel", 'F', ItemIDs.firebox.item); + + /* Open Hearth Furnace */ + if (!ConfigHandler.MAKE_MODPACKS_GREAT_AGAIN) { + GameRegistry.addRecipe(new ItemStack(BlockIDs.openFurnaceIdle.block, 1), "#L#", "#B#", "#I#", + '#', Blocks.nether_brick, 'L', Items.lava_bucket, + 'B', Items.bucket, 'I', Blocks.iron_block); + } + + /* Lantern */ + for (ItemStack ironingot : iron) { + GameRegistry.addRecipe(new ItemStack(BlockIDs.lantern.block, 4), "III", "PTP", "III", 'I', ironingot, 'P', Blocks.glass_pane, 'T', Blocks.torch); + } + + /* Clothes */ + GameRegistry.addRecipe(new ItemStack(ItemIDs.overalls.item, 1), " # ", "X$X", "X$X", 'X', new ItemStack(Items.dye, 1, 4), '$', Items.leather_leggings, '#', new ItemStack(Items.dye, 1, 1)); + GameRegistry.addRecipe(new ItemStack(ItemIDs.jacket.item, 1), "X X", "X$X", "X#X", 'X', new ItemStack(Items.dye, 1, 14), '$', Items.leather_chestplate, '#', Items.string); + GameRegistry.addRecipe(new ItemStack(ItemIDs.hat.item, 1), " X ", "X$X", "#X#", 'X', new ItemStack(Items.dye, 1, 4), '$', Items.leather_helmet, '#', Items.string); + + /* Driver Clothes*/ + GameRegistry.addRecipe(new ItemStack(ItemIDs.pants_driver_paintable.item, 1), "XXX", "XLX", "X$X", 'L', Items.leather_leggings, '$', new ItemStack(Items.dye, 1, 4), 'X', Items.string); + GameRegistry.addRecipe(new ItemStack(ItemIDs.jacket_driver_paintable.item, 1), "X X", "XRX", "XPX", 'X', new ItemStack(Items.dye, 1, 4), 'P', Items.leather_chestplate, 'R', new ItemStack(Items.dye, 1, 1)); + GameRegistry.addRecipe(new ItemStack(ItemIDs.hat_driver_paintable.item, 1), "#$#", "# #", '$', new ItemStack(Items.dye, 1, 4), '#', Items.string); + + /* Ticket Man Clothes */ + GameRegistry.addRecipe(new ItemStack(ItemIDs.pants_ticketMan_paintable.item, 1), "XXX", "XLX", "X$X", 'L', Items.leather_leggings, '$', new ItemStack(Items.dye, 1, 8), 'X', Items.string); + GameRegistry.addRecipe(new ItemStack(ItemIDs.jacket_ticketMan_paintable.item, 1), "X X", "XPX", "X#X", 'P', Items.leather_chestplate, '#', new ItemStack(Items.dye, 1, 4), 'X', Items.string); + GameRegistry.addRecipe(new ItemStack(ItemIDs.hat_ticketMan_paintable.item, 1), "#$#", "# #", '$', new ItemStack(Items.dye, 1, 0), '#', Items.string); + + /* Recipe book */ + GameRegistry.addRecipe(new ItemStack(ItemIDs.recipeBook.item, 1), "TTT", "TBT", "TTT", 'T', Blocks.rail, 'B', Items.book); + + + // Track recipes for crafting table - TheDoctor1138 + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailSmallStraight.item, 16), "G G", "BPB", "G G", 'G', Items.iron_ingot, 'P', Blocks.planks, 'B', ItemIDs.bolt.item); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailMediumStraight.item, 1), "G ", "G ", "G ", 'G', ItemIDs.tcRailSmallStraight.item); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailLongStraight.item, 1), "G ", "G ", " ", 'G', ItemIDs.tcRailMediumStraight.item); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailVeryLongStraight.item, 1), "G ", "G ", " ", 'G', ItemIDs.tcRailLongStraight.item); + + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailSmallDiagonalStraight.item, 1), " G ", "G ", " ", 'G', ItemIDs.tcRailSmallStraight.item); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailMediumDiagonalStraight.item, 1), " G", " G ", "G ", 'G', ItemIDs.tcRailSmallDiagonalStraight.item); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailLongDiagonalStraight.item, 1), " G ", "G ", " ", 'G', ItemIDs.tcRailMediumDiagonalStraight.item); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailVeryLongDiagonalStraight.item, 1), " G ", "G ", " ", 'G', ItemIDs.tcRailLongDiagonalStraight.item); + + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailMediumTurn.item, 1), "GG ", "G ", " ", 'G', ItemIDs.tcRailSmallStraight.item); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailLargeTurn.item, 1), " SS", "SS ", "S ", 'S', ItemIDs.tcRailSmallStraight.item); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailVeryLargeTurn.item, 1), "GG ", "G ", " ", 'G', ItemIDs.tcRailLargeTurn.item); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailSuperLargeTurn.item, 1), "GG ", "G ", " ", 'G', ItemIDs.tcRailVeryLargeTurn.item); + + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailMedium45DegreeTurn.item, 1), "TG ", "G ", " ", 'G', ItemIDs.tcRailSmallStraight.item, 'T', ItemIDs.tcRailMediumTurn.item); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailLarge45DegreeTurn.item, 1), "TG ", "G ", " ", 'G', ItemIDs.tcRailSmallStraight.item, 'T', ItemIDs.tcRailLargeTurn.item); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailVeryLarge45DegreeTurn.item, 1), "TG ", "G ", " ", 'G', ItemIDs.tcRailSmallStraight.item, 'T', ItemIDs.tcRailVeryLargeTurn.item); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailSuperLarge45DegreeTurn.item, 1), "TG ", "G ", " ", 'G', ItemIDs.tcRailSmallStraight.item, 'T', ItemIDs.tcRailSuperLargeTurn.item); + + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailSmallParallelCurve.item, 1), " S ", "SS ", "S ", 'S', ItemIDs.tcRailSmallStraight.item); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailMediumParallelCurve.item, 1), " S ", "S ", " ", 'S', ItemIDs.tcRailSmallParallelCurve.item); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailLargeParallelCurve.item, 1), " S ", "S ", " ", 'S', ItemIDs.tcRailMediumParallelCurve.item); + + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailMediumSwitch.item, 1), "G ", "GHG", "G ", 'G', ItemIDs.tcRailSmallStraight.item, 'H', ItemIDs.tcRailMediumTurn.item); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailMediumParallelSwitch.item, 1), "I G", "IHH", "IH ", 'G', ItemIDs.tcRailSmallStraight.item, 'H', ItemIDs.tcRailMediumTurn.item, 'I', ItemIDs.tcRailMediumStraight.item); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailLargeSwitch.item, 1), "G ", "HIG", "G ", 'G', ItemIDs.tcRailSmallStraight.item, 'H', ItemIDs.tcRailMediumStraight.item, 'I', ItemIDs.tcRailLargeTurn.item); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailMedium45DegreeSwitch.item, 1), "G D", "GH ", "G ", 'G', ItemIDs.tcRailSmallStraight.item, 'H', ItemIDs.tcRailMedium45DegreeTurn.item, 'D', ItemIDs.tcRailSmallDiagonalStraight.item); + + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailSlopeWood.item, 1), " TP", "TPP", "PPP", 'T', ItemIDs.tcRailMediumStraight.item, 'P', Blocks.planks); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailLargeSlopeWood.item, 1), " ", " T", " T ", 'T', ItemIDs.tcRailSlopeWood.item); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailVeryLargeSlopeWood.item, 1), " T", " T ", "T ", 'T', ItemIDs.tcRailSlopeWood.item); + + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailSlopeSnowGravel.item, 1), " TS", "TSS", "SSS", 'T', ItemIDs.tcRailMediumStraight.item, 'S', new ItemStack(BlockIDs.snowGravel.block, 1, 4)); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailLargeSlopeSnowGravel.item, 1), " ", " T", " T ", 'T', ItemIDs.tcRailSlopeSnowGravel.item); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailVeryLargeSlopeSnowGravel.item, 1), " T", " T ", "T ", 'T', ItemIDs.tcRailSlopeSnowGravel.item); + + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailSlopeGravel.item, 1), " TG", "TGG", "GGG", 'T', ItemIDs.tcRailMediumStraight.item, 'G', Blocks.gravel); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailLargeSlopeGravel.item, 1), " ", " S", " S ", 'S', ItemIDs.tcRailSlopeGravel.item); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailVeryLargeSlopeGravel.item, 1), " T", " T ", "T ", 'T', ItemIDs.tcRailSlopeGravel.item); + + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailSlopeDynamic.item, 1), " TG", "TGG", "GGG", 'T', ItemIDs.tcRailMediumStraight.item, 'G', new ItemStack(Items.dye, 1, 1)); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailLargeSlopeDynamic.item, 1), " ", " S", " S ", 'S', ItemIDs.tcRailSlopeDynamic.item); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailVeryLargeSlopeDynamic.item, 1), " T", " T ", "T ", 'T', ItemIDs.tcRailSlopeDynamic.item); + + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedSlopeDynamic.item, 1), " TG", "TGG", "GGG", 'T', ItemIDs.tcRailEmbeddedMediumStraight.item, 'G', new ItemStack(Items.dye, 1, 1)); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedLargeSlopeDynamic.item, 1), " ", " S", " S ", 'S', ItemIDs.tcRailEmbeddedSlopeDynamic.item); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedVeryLargeSlopeDynamic.item, 1), " T", " T ", "T ", 'T', ItemIDs.tcRailEmbeddedSlopeDynamic.item); + + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailLargeCurvedSlopeDynamic.item, 1), " ", " T ", " S ", 'T', ItemIDs.tcRailLargeTurn.item, 'S', ItemIDs.tcRailSlopeDynamic.item); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailVeryLargeCurvedSlopeDynamic.item, 1), " ", " T ", " S ", 'T', ItemIDs.tcRailVeryLargeTurn.item, 'S', ItemIDs.tcRailLargeSlopeDynamic.item); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailSuperLargeCurvedSlopeDynamic.item, 1), " ", " T ", " S ", 'T', ItemIDs.tcRailSuperLargeTurn.item, 'S', ItemIDs.tcRailVeryLargeSlopeDynamic.item); + + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailSlopeBallast.item, 1), " TG", "TGG", "GGG", 'T', ItemIDs.tcRailMediumStraight.item, 'G', new ItemStack(BlockIDs.oreTC.block, 1, 3)); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailLargeSlopeBallast.item, 1), " ", " S", " S ", 'S', ItemIDs.tcRailSlopeBallast.item); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailVeryLargeSlopeBallast.item, 1), " T", " T ", "T ", 'T', ItemIDs.tcRailSlopeBallast.item); + + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailTwoWaysCrossing.item, 1), " S ", "SSS", " S ", 'S', ItemIDs.tcRailSmallStraight.item); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailDiagonalTwoWaysCrossing.item, 1), "D D", " D ", "D D", 'D', ItemIDs.tcRailSmallDiagonalStraight.item); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailDiamondCrossing.item, 1), " SD", " S ", "DS ", 'S', ItemIDs.tcRailSmallStraight.item, 'D', ItemIDs.tcRailSmallDiagonalStraight.item); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailDiamondCrossing.item, 1), "DS ", " S ", " SD", 'S', ItemIDs.tcRailSmallStraight.item, 'D', ItemIDs.tcRailSmallDiagonalStraight.item); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailDoubleDiamondCrossing.item, 1), "DSD", " S ", "DSD", 'S', ItemIDs.tcRailSmallStraight.item, 'D', ItemIDs.tcRailSmallDiagonalStraight.item); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailFourWaysCrossing.item, 1), "DSD", "SDS", "DSD", 'S', ItemIDs.tcRailSmallStraight.item, 'D', ItemIDs.tcRailSmallDiagonalStraight.item); + + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedSmallStraight.item, 16), "I I", "B B", "I I", 'I', Items.iron_ingot, 'B', ItemIDs.bolt.item); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedMediumStraight.item, 1), "G ", "G ", "G ", 'G', ItemIDs.tcRailEmbeddedSmallStraight.item); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedLongStraight.item, 1), "G ", "G ", " ", 'G', ItemIDs.tcRailEmbeddedMediumStraight.item); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedVeryLongStraight.item, 1), "G ", "G ", " ", 'G', ItemIDs.tcRailEmbeddedLongStraight.item); + + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedSmallDiagonalStraight.item, 1), " G ", "G ", " ", 'G', ItemIDs.tcRailEmbeddedSmallStraight.item); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedMediumDiagonalStraight.item, 1), " G", " G ", "G ", 'G', ItemIDs.tcRailEmbeddedSmallDiagonalStraight.item); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedLongDiagonalStraight.item, 1), " G ", "G ", " ", 'G', ItemIDs.tcRailEmbeddedMediumDiagonalStraight.item); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedVeryLongDiagonalStraight.item, 1), " G ", "G ", " ", 'G', ItemIDs.tcRailEmbeddedLongDiagonalStraight.item); + + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedMediumTurn.item, 1), "GG ", "G ", " ", 'G', ItemIDs.tcRailEmbeddedSmallStraight.item); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedLargeTurn.item, 1), " SS", "SS ", "S ", 'S', ItemIDs.tcRailEmbeddedSmallStraight.item); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedVeryLargeTurn.item, 1), "GG ", "G ", " ", 'G', ItemIDs.tcRailEmbeddedLargeTurn.item); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedSuperLargeTurn.item, 1), "GG ", "G ", " ", 'G', ItemIDs.tcRailEmbeddedVeryLargeTurn.item); + + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedMedium45DegreeTurn.item, 1), "TG ", "G ", " ", 'G', ItemIDs.tcRailEmbeddedSmallStraight.item, 'T', ItemIDs.tcRailEmbeddedMediumTurn.item); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedLarge45DegreeTurn.item, 1), "TG ", "G ", " ", 'G', ItemIDs.tcRailEmbeddedSmallStraight.item, 'T', ItemIDs.tcRailEmbeddedLargeTurn.item); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedVeryLarge45DegreeTurn.item, 1), "TG ", "G ", " ", 'G', ItemIDs.tcRailEmbeddedSmallStraight.item, 'T', ItemIDs.tcRailEmbeddedVeryLargeTurn.item); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedSuperLarge45DegreeTurn.item, 1), "TG ", "G ", " ", 'G', ItemIDs.tcRailEmbeddedSmallStraight.item, 'T', ItemIDs.tcRailEmbeddedSuperLargeTurn.item); + + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedSmallParallelCurve.item, 1), " S ", "SS ", "S ", 'S', ItemIDs.tcRailEmbeddedSmallStraight.item); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedMediumParallelCurve.item, 1), " S ", "SS ", "S ", 'S', ItemIDs.tcRailEmbeddedSmallParallelCurve.item); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedLargeParallelCurve.item, 1), " S ", "SS ", "S ", 'S', ItemIDs.tcRailEmbeddedMediumParallelCurve.item); + + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedMediumSwitch.item, 1), "G ", "GHG", "G ", 'G', ItemIDs.tcRailEmbeddedSmallStraight.item, 'H', ItemIDs.tcRailEmbeddedMediumTurn.item); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedMediumParallelSwitch.item, 1), "I G", "IHH", "IH ", 'G', ItemIDs.tcRailEmbeddedSmallStraight.item, 'H', ItemIDs.tcRailEmbeddedMediumTurn.item, 'I', ItemIDs.tcRailEmbeddedMediumStraight.item); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedLargeSwitch.item, 1), "G ", "HIG", "G ", 'G', ItemIDs.tcRailEmbeddedSmallStraight.item, 'H', ItemIDs.tcRailEmbeddedMediumStraight.item, 'I', ItemIDs.tcRailEmbeddedLargeTurn.item); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedMedium45DegreeSwitch.item, 1), "G D", "GH ", "G ", 'G', ItemIDs.tcRailEmbeddedSmallStraight.item, 'H', ItemIDs.tcRailEmbeddedMedium45DegreeTurn.item, 'D', ItemIDs.tcRailEmbeddedSmallDiagonalStraight.item); + + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedLargeCurvedSlopeDynamic.item, 1), " ", " T ", " S ", 'T', ItemIDs.tcRailEmbeddedLargeTurn.item, 'S', ItemIDs.tcRailEmbeddedSlopeDynamic.item); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedVeryLargeCurvedSlopeDynamic.item, 1), " ", " T ", " S ", 'T', ItemIDs.tcRailEmbeddedVeryLargeTurn.item, 'S', ItemIDs.tcRailEmbeddedLargeSlopeDynamic.item); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedSuperLargeCurvedSlopeDynamic.item, 1), " ", " T ", " S ", 'T', ItemIDs.tcRailEmbeddedSuperLargeTurn.item, 'S', ItemIDs.tcRailEmbeddedVeryLargeSlopeDynamic.item); + + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedTwoWaysCrossing.item, 1), " S ", "SSS", " S ", 'S', ItemIDs.tcRailEmbeddedSmallStraight.item); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedDiagonalTwoWaysCrossing.item, 1), "D D", " D ", "D D", 'D', ItemIDs.tcRailEmbeddedSmallDiagonalStraight.item); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedDiamondCrossing.item, 1), " SD", " S ", "DS ", 'S', ItemIDs.tcRailEmbeddedSmallStraight.item, 'D', ItemIDs.tcRailEmbeddedSmallDiagonalStraight.item); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedDiamondCrossing.item, 1), "DS ", " S ", " SD", 'S', ItemIDs.tcRailEmbeddedSmallStraight.item, 'D', ItemIDs.tcRailEmbeddedSmallDiagonalStraight.item); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedDoubleDiamondCrossing.item, 1), "DSD", " S ", "DSD", 'S', ItemIDs.tcRailEmbeddedSmallStraight.item, 'D', ItemIDs.tcRailEmbeddedSmallDiagonalStraight.item); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedFourWaysCrossing.item, 1), "DSD", "SDS", "DSD", 'S', ItemIDs.tcRailEmbeddedSmallStraight.item, 'D', ItemIDs.tcRailEmbeddedSmallDiagonalStraight.item); + + + //Track Conversion Recipes to Normal Rails + + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailSmallStraight.item, 1), " ", " R ", " ", 'R', Item.getItemFromBlock(Blocks.rail));// small straight track + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailSmallRoadCrossing.item, 1), " ", "SRS", " ", 'S', new ItemStack(Blocks.stained_hardened_clay, 1, 15), 'R', Item.getItemFromBlock(Blocks.rail)); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailSmallRoadCrossing1.item, 1), " ", "SRS", " ", 'S', new ItemStack(Blocks.stained_hardened_clay, 1, 7), 'R', Item.getItemFromBlock(Blocks.rail)); + GameRegistry.addRecipe(new ItemStack(ItemIDs.tcRailSmallRoadCrossing2.item, 1), " ", "SRS", " ", 'S', new ItemStack(Blocks.stained_hardened_clay, 1, 3), 'R', Item.getItemFromBlock(Blocks.rail)); + GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(Blocks.rail), 1), " ", " R ", " ", 'R', ItemIDs.tcRailSmallStraight.item); + GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(Blocks.rail), 1), " ", " R ", " ", 'R', ItemIDs.tcRailSmallRoadCrossing.item); + GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(Blocks.rail), 1), " ", " R ", " ", 'R', ItemIDs.tcRailSmallRoadCrossing1.item); + GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(Blocks.rail), 1), " ", " R ", " ", 'R', ItemIDs.tcRailSmallRoadCrossing2.item); + + GameRegistry.addRecipe(new ItemStack(ItemIDs.paintbrushThing.item, 1), "GB ", "RIS", " ST", 'G', new ItemStack(Items.dye, 1, 2), 'B', new ItemStack(Items.dye, 1, 4), 'R', new ItemStack(Items.dye, 1, 1), 'I', new ItemStack(Items.iron_ingot), 'S', new ItemStack(Items.string), 'T', new ItemStack(Items.stick)); + GameRegistry.addShapelessRecipe(new ItemStack(BlockIDs.poweredGravel.block, 1), new ItemStack(Items.redstone), new ItemStack(Blocks.gravel)); + GameRegistry.addShapelessRecipe(new ItemStack(BlockIDs.snowGravel.block, 1), new ItemStack(Items.snowball), new ItemStack(Blocks.gravel)); + GameRegistry.addShapelessRecipe(new ItemStack(BlockIDs.snowGravel.block, 4), new ItemStack(Blocks.snow), new ItemStack(Blocks.gravel), new ItemStack(Blocks.gravel), new ItemStack(Blocks.gravel), new ItemStack(Blocks.gravel)); + GameRegistry.addShapelessRecipe(new ItemStack(BlockIDs.asphalt.block, 8), new ItemStack(ItemIDs.coaldust.item), new ItemStack(ItemIDs.coaldust.item), new ItemStack(ItemIDs.coaldust.item), new ItemStack(ItemIDs.coaldust.item), new ItemStack(Blocks.cobblestone), new ItemStack(Blocks.cobblestone), new ItemStack(Blocks.cobblestone), new ItemStack(Blocks.cobblestone), new ItemStack(Blocks.cobblestone)); + GameRegistry.addRecipe(new ItemStack(BlockIDs.asphaltSlab.block, 6), "BBB", " ", " ", 'B', new ItemStack(BlockIDs.asphalt.block)); + GameRegistry.addRecipe(new ItemStack(BlockIDs.asphaltSlab.block, 6), " ", "BBB", " ", 'B', new ItemStack(BlockIDs.asphalt.block)); + GameRegistry.addRecipe(new ItemStack(BlockIDs.asphaltSlab.block, 6), " ", " ", "BBB", 'B', new ItemStack(BlockIDs.asphalt.block)); + GameRegistry.addRecipe(new ItemStack(BlockIDs.asphaltStairs.block, 4), "B ", "BB ", "BBB", 'B', new ItemStack(BlockIDs.asphalt.block)); + GameRegistry.addRecipe(new ItemStack(BlockIDs.asphaltStairs.block, 4), " B", " BB", "BBB", 'B', new ItemStack(BlockIDs.asphalt.block)); + GameRegistry.addRecipe(new ItemStack(BlockIDs.signalSpanish.block, 1), " L ", " I ", "RIR", 'L', new ItemStack(Blocks.redstone_lamp), 'I', new ItemStack(Items.iron_ingot), 'R', new ItemStack(Items.redstone)); + GameRegistry.addRecipe(new ItemStack(BlockIDs.kSignal.block, 1), "RIR", " I ", " L ", 'L', new ItemStack(Blocks.redstone_lamp), 'I', new ItemStack(Items.iron_ingot), 'R', new ItemStack(Items.redstone)); + GameRegistry.addRecipe(new ItemStack(BlockIDs.bridgePillar.block, 8), "SSS", "SLS", "SSS", 'S', new ItemStack(Items.stick), 'L', new ItemStack(Blocks.log)); + GameRegistry.addRecipe(new ItemStack(BlockIDs.speedSign.block, 8), " R ", " I ", " I ", 'R', new ItemStack(Items.dye, 1, 1), 'I', new ItemStack(Items.iron_ingot)); + + //Gravel + GameRegistry.addShapelessRecipe(new ItemStack(BlockIDs.oreTC.block, 4, 3), Blocks.gravel, Blocks.gravel, Items.clay_ball); + GameRegistry.addShapelessRecipe(new ItemStack(BlockIDs.oreTC.block, 16, 3), Blocks.gravel, Blocks.gravel, Blocks.gravel, Blocks.gravel, Blocks.gravel, Blocks.gravel, Blocks.gravel, Blocks.gravel, Blocks.clay); + GameRegistry.addShapelessRecipe(new ItemStack(BlockIDs.highSpeedBallast.block, 16), Items.quartz, Blocks.gravel, Blocks.gravel, Blocks.gravel, Blocks.gravel, Blocks.gravel, Blocks.gravel, Blocks.gravel, Blocks.clay); + GameRegistry.addShapelessRecipe(new ItemStack(BlockIDs.dirtyBallast.block, 16), Blocks.gravel, Blocks.gravel, Blocks.gravel, Blocks.gravel, Blocks.gravel, Blocks.gravel, Blocks.gravel, Blocks.gravel, Blocks.dirt); + GameRegistry.addShapelessRecipe(new ItemStack(BlockIDs.dirtierBallast.block, 16), new ItemStack(BlockIDs.dirtyBallast.block, 1), new ItemStack(BlockIDs.dirtyBallast.block, 1), new ItemStack(BlockIDs.dirtyBallast.block, 1), new ItemStack(BlockIDs.dirtyBallast.block, 1), new ItemStack(BlockIDs.dirtyBallast.block, 1), new ItemStack(BlockIDs.dirtyBallast.block, 1), new ItemStack(BlockIDs.dirtyBallast.block, 1), new ItemStack(BlockIDs.dirtyBallast.block, 1), Blocks.dirt); + + for (ItemStack ironingot : iron) { + addDictRecipe(new ItemStack(BlockIDs.switchStand.block, 1), " W ", " I ", " R ", 'W', Blocks.lever, 'R', Items.stick, 'I', ironingot); + addDictRecipe(new ItemStack(BlockIDs.MILWSwitchStand.block, 1), " RW", "BWR", "AAA", 'A', new ItemStack(Items.stick), 'B', Blocks.iron_bars, 'R', new ItemStack(Items.dye, 1, 1), 'W', new ItemStack(Items.dye, 1, 15)); + addDictRecipe(new ItemStack(BlockIDs.MFPBWigWag.block, 1), "IWI", " I ", " I ", 'W', Blocks.lever, 'I', ironingot); + /*Buffer*/ + addDictRecipe(new ItemStack(BlockIDs.stopper.block, 1), "WWW", "I I", "RRR", 'W', "plankWood", 'R', Blocks.rail, 'I', ironingot); + addDictRecipe(new ItemStack(BlockIDs.embeddedStopper.block, 1), " ", "I I", "RRR", 'R', Blocks.rail, 'I', ironingot); + addDictRecipe(new ItemStack(BlockIDs.americanstopper.block, 1), "III", "I I", "RRR", 'R', Blocks.rail, 'I', ironingot); + addDictRecipe(new ItemStack(BlockIDs.metroMadridPole.block, 1), "III", " I ", "C C", 'I', ironingot, 'C', ItemIDs.ingotCopper.item); + } + + GameRegistry.addRecipe(new ItemStack(ItemIDs.bolt.item, 16), " II", " I ", " I ", 'I', Items.iron_ingot); + + } + + public static void initItemRecipes() { + + ArrayList steel = OreDictionary.getOres("ingotSteel"); + ArrayList iron = OreDictionary.getOres("ingotIron"); + ArrayList planks = OreDictionary.getOres("plankWood"); + ArrayList logs = OreDictionary.getOres("logWood"); + ArrayList plastics = multiNameOreDict("itemPlastic", "dustPlastic");//dustPlastic for MFR support + ArrayList copper = OreDictionary.getOres("ingotCopper"); + ArrayList dustCoal = OreDictionary.getOres("dustCoal"); + List coal = new ArrayList(); + coal.add(new ItemStack(Items.coal)); + coal.addAll(OreDictionary.getOres("coal")); + ArrayList redstone = OreDictionary.getOres("dustRedstone"); + ArrayList waterbucket = waterContainers(); + // Always do this " X " instead of this "X", and do not put "" empty brackets + + /* I placed it here because workbench should be one of the first recipe shown in the recipe book */ + for (ItemStack plank : planks) { + for (ItemStack ironingot : iron) { + TrainCraftingManager.instance.addRecipe(new ItemStack(BlockIDs.trainWorkbench.block, 1), "###", "IFI", "###", '#', plank, 'F', Blocks.furnace, 'I', ironingot); + } + } + + /* Recipe book */ + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.recipeBook.item, 1), "TTT", "TBT", "TTT", 'T', Blocks.rail, 'B', Items.book); + + /* Chunk Loader Activator */ + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.chunkLoaderActivator.item, 1), " P", " S ", "S ", 'S', Items.blaze_rod, 'P', Items.ender_pearl); + + // Switches -hariesh + GameRegistry.addRecipe(new ItemStack(BlockIDs.owoYardSwitchStand.block, 1), " ", "OS ", "IW ", 'O', new ItemStack(Items.dye, 1, 14), 'S', Items.stick, 'I', Items.iron_ingot, 'W', Blocks.planks); + GameRegistry.addRecipe(new ItemStack(BlockIDs.owoSwitchStand.block, 1), " O ", " S ", " IW", 'O', new ItemStack(Items.dye, 1, 14), 'S', Items.stick, 'I', Items.iron_ingot, 'W', Blocks.planks); + GameRegistry.addRecipe(new ItemStack(BlockIDs.circleSwitchStand.block, 1), " R ", " S ", " IW", 'R', new ItemStack(Items.dye, 1, 1), 'S', Items.stick, 'I', Items.iron_ingot, 'W', Blocks.planks); + GameRegistry.addRecipe(new ItemStack(BlockIDs.autoSwtichStand.block, 1), " ", "C ", "BIW", 'C', new ItemStack(ItemIDs.electronicCircuit.item, 1), 'B', Blocks.iron_block, 'S', Items.stick, 'I', Items.iron_ingot, 'W', Blocks.planks); + GameRegistry.addRecipe(new ItemStack(ItemIDs.paintbrushThing.item, 1), "GB ", "RIS", " ST", 'G', new ItemStack(Items.dye, 1, 2), 'B', new ItemStack(Items.dye, 1, 4), 'R', new ItemStack(Items.dye, 1, 1), 'I', new ItemStack(Items.iron_ingot), 'S', new ItemStack(Items.string), 'T', new ItemStack(Items.stick)); + + + + /* Assembly tables */ + + for (ItemStack ironingot : iron) { + TrainCraftingManager.instance.addRecipe(new ItemStack(BlockIDs.assemblyTableI.block, 1), "IPI", "S S", "SPS", 'I', ironingot, 'P', Blocks.piston, 'S', Blocks.stone); + } + TrainCraftingManager.instance.addRecipe(new ItemStack(BlockIDs.assemblyTableII.block, 1), "GPG", "O O", "OPO", 'G', Items.gold_ingot, 'P', Blocks.piston, 'O', Blocks.obsidian); + TrainCraftingManager.instance.addRecipe(new ItemStack(BlockIDs.assemblyTableIII.block, 1), "GPG", "DLD", "OPO", 'G', Items.gold_ingot, 'P', Blocks.piston, 'D', Items.diamond, 'L', Blocks.glowstone, 'O', Blocks.obsidian); + + /* Open Hearth Furnace */ + TrainCraftingManager.instance.addRecipe(new ItemStack(BlockIDs.openFurnaceIdle.block, 1), "#L#", "#B#", "#I#", '#', Blocks.nether_brick, 'L', Items.lava_bucket, 'B', Items.bucket, 'I', Blocks.iron_block); + + /* Lantern */ + for (ItemStack ironingot : iron) { + TrainCraftingManager.instance.addRecipe(new ItemStack(BlockIDs.lantern.block, 4), "III", "PTP", "III", 'I', ironingot, 'P', Blocks.glass_pane, 'T', Blocks.torch); + } + /* Clothes */ + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.overalls.item, 1), " # ", "X$X", "X X", 'X', new ItemStack(Items.dye, 1, 4), '$', Items.leather_leggings, '#', new ItemStack(Items.dye, 1, 1)); + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.jacket.item, 1), "X X", "X$X", "X#X", 'X', new ItemStack(Items.dye, 1, 14), '$', Items.leather_chestplate, '#', Items.string); + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.hat.item, 1), " X ", "X$X", "#X#", 'X', new ItemStack(Items.dye, 1, 4), '$', Items.leather_helmet, '#', Items.string); + + /* Driver Clothes*/ + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.pants_driver_paintable.item, 1), "XXX", "XLX", "X$X", 'L', Items.leather_leggings, '$', new ItemStack(Items.dye, 1, 4), 'X', Items.string); + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.jacket_driver_paintable.item, 1), "X X", "XRX", "XPX", 'X', new ItemStack(Items.dye, 1, 4), 'P', Items.leather_chestplate, 'R', new ItemStack(Items.dye, 1, 1)); + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.hat_driver_paintable.item, 1), "#$#", "# #", '$', new ItemStack(Items.dye, 1, 4), '#', Items.string); + + /* Ticket Man Clothes */ + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.pants_ticketMan_paintable.item, 1), "XXX", "XLX", "X$X", 'L', Items.leather_leggings, '$', new ItemStack(Items.dye, 1, 8), 'X', Items.string); + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.jacket_ticketMan_paintable.item, 1), "X X", "XPX", "X#X", 'P', Items.leather_chestplate, '#', new ItemStack(Items.dye, 1, 4), 'X', Items.string); + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.hat_ticketMan_paintable.item, 1), "#$#", "# #", '$', new ItemStack(Items.dye, 1, 0), '#', Items.string); + + + for (ItemStack plastic : plastics) { + /* Empty canister */ + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.emptyCanister.item, 4), "PPP", "P P", "PPP", 'P', plastic); + for (ItemStack rs : redstone) { + /* Electronic circuit */ + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.electronicCircuit.item, 1), "XXX", "RPR", "XXX", 'X', ItemIDs.copperWireFine.item, 'P', plastic, 'R', rs.getItem()); + } + /* Composite Material*/ + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.reinforcedPlastic.item, 16), "LPL", "PLP", "GPG", 'G', Blocks.glass_pane, 'P', ItemIDs.graphite.item, 'L', plastic); + + if (copper != null) { + for (ItemStack copp : copper) { + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.copperWireFine.item, 6), "XXX", "XPX", "XXX", 'X', copp, 'P', plastic); + GameRegistry.addRecipe(new ItemStack(BlockIDs.overheadWire.block, 16), "IC ", "I ", "I ", 'I', new ItemStack(Items.iron_ingot, 1), 'C', copp); + GameRegistry.addRecipe(new ItemStack(BlockIDs.overheadWireDouble.block, 16), "ICI", "ICI", "I I", 'I', new ItemStack(Items.iron_ingot, 1), 'C', copp); + + } + } + } + + /* Composite Suit */ + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.boots_suit_paintable.item, 1), " D ", "X X", "XFX", 'F', Items.feather, 'D', Items.diamond, 'X', ItemIDs.reinforcedPlates.item); + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.pants_suit_paintable.item, 1), "XDX", "X$X", "X X", '$', Items.fire_charge, 'X', ItemIDs.reinforcedPlates.item, 'D', Items.diamond); + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.jacket_suit_paintable.item, 1), "X X", "XDX", "XAX", 'A', Items.golden_apple, 'X', ItemIDs.reinforcedPlates.item, 'D', Blocks.diamond_block); + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.helmet_suit_paintable.item, 1), "#D#", "# #", 'D', Blocks.diamond_block, '#', ItemIDs.reinforcedPlates.item); + + /* Trains parts */ + + for (ItemStack ironingot : iron) { + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.generator.item, 1), " ##", "E$$", " ##", '#', ItemIDs.copperWireFine.item, 'E', ItemIDs.electronicCircuit.item, '$', ironingot);// generator + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.controls.item, 1), "#X#", "#E#", "$$$", '#', Blocks.lever, 'X', Blocks.stone_button, '$', ironingot, 'E', ItemIDs.electronicCircuit.item);// train controls + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.electmotor.item, 1), "I#I", "#E#", "I#I", '#', ItemIDs.copperWireFine.item, 'I', ironingot, 'E', ItemIDs.electronicCircuit.item);// Electric motor + for (ItemStack bucketWater : waterbucket) { + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.ironBoiler.item, 2), "###", "XXX", "###", '#', ironingot, 'X', bucketWater.getItem());// iron Boiler + } + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.ironFirebox.item, 2), "###", "#X#", "###", '#', ironingot, 'X', Items.flint_and_steel);// iron Firebox + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.ironChimney.item, 2), "# #", "# #", "# #", '#', ironingot); + } + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.dieselengine.item, 2), "###", "XXX", "CCC", '#', ItemIDs.piston.item, 'X', ItemIDs.cylinder.item, 'C', ItemIDs.camshaft.item);// diesel engine + for (ItemStack dustStack : dustCoal) { + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.graphite.item, 2), "###", "#X#", "###", '#', dustStack, 'X', Items.clay_ball);// Graphite + } + + if (!ConfigHandler.MAKE_MODPACKS_GREAT_AGAIN) { + for (ItemStack c : coal) { + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.coaldust.item, 4), + "###", " ", " ", '#', c.getItem()); + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.coaldust.item, 4), + " ", "###", " ", '#', c.getItem()); + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.coaldust.item, 4), + " ", " ", "###", '#', c.getItem()); + } + } + //TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.signal.item, 2), "#", "X", "X", Character.valueOf('X'), ItemIDs.steel.item, Character.valueOf('#'), rs ); + /* diesel generator */ + TrainCraftingManager.instance.addRecipe(new ItemStack(BlockIDs.generatorDiesel.block, 1), "C ", "DE ", 'C', ItemIDs.steelchimney.item, 'D', ItemIDs.dieselengine.item, 'E', ItemIDs.electronicCircuit.item); + + /* Zepplin parts and zeppelin item */ + if (ConfigHandler.ENABLE_ZEPPELIN) { + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.balloon.item, 1), "###", "# #", "###", '#', Blocks.wool);// Balloon + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.steamengine.item, 1), "C ", "BF ", 'C', ItemIDs.steelchimney.item, 'B', ItemIDs.boiler.item, 'F', ItemIDs.firebox.item);// Small steam engine + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.airship.item, 1), "B B", "SES", "POP", 'B', ItemIDs.balloon.item, 'S', Items.stick, 'E', ItemIDs.steamengine.item, 'P', ItemIDs.propeller.item, 'O', Items.boat); + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.zeppelin.item, 1), "BBB", "SES", "POP", 'B', ItemIDs.balloon.item, 'S', ItemIDs.propeller.item, 'E', ItemIDs.controls.item, 'P', ItemIDs.electmotor.item, 'O', ItemIDs.seats.item); + } + + for (ItemStack plankItem : planks) { + for (ItemStack steelItem : steel) { + + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.reinforcedPlates.item, 1), "RRR", "SSS", "CCC", 'R', ItemIDs.reinforcedPlastic.item, 'S', steelItem, 'C', Items.clay_ball); + + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.composite_wrench.item, 1), "S S", " R ", " R ", 'R', ItemIDs.reinforcedPlastic.item, 'S', steelItem); + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.steelcab.item, 2), "###", "X X", "XXX", 'X', steelItem, '#', plankItem);// Steel cab + TrainCraftingManager.instance.addRecipe(new ItemStack(BlockIDs.distilIdle.block, 1), "###", "#F#", "###", '#', steelItem, 'F', ItemIDs.firebox.item); + for (ItemStack rs : redstone) { + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.transformer.item, 1), "# #", "XEX", "###", '#', steelItem, 'E', ItemIDs.electronicCircuit.item, 'X', rs.getItem());// transformer + } + + for (ItemStack bucketWater : waterbucket) { + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.boiler.item, 2), "###", "XXX", "###", '#', steelItem, 'X', bucketWater.getItem());// Boiler + } + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.firebox.item, 2), "###", "#X#", "###", '#', steelItem, 'X', Items.flint_and_steel);// Firebox + for (ItemStack ironingot : iron) { + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.bogie.item, 4), " # ", "#X#", " # ", '#', steelItem, 'X', ironingot);// Bogie + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.steelframe.item, 2), "# #", "AAA", 'A', steelItem, '#', ironingot);// Steel Frame + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.steelframe.item, 2), " ", "# #", "AAA", 'A', steelItem, '#', ironingot);// Steel Frame + + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.stake.item, 1), " ", "IFI", " ", 'I', steelItem, 'F', ironingot); + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.stake.item, 1), "IFI", " ", " ", 'I', steelItem, 'F', ironingot); + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.stake.item, 1), " ", " ", "IFI", 'I', steelItem, 'F', ironingot); + + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.propeller.item, 2), " # ", "#X#", " # ", '#', plankItem, 'X', ironingot);// Propeller + } + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.steelchimney.item, 2), "# #", "# #", "# #", '#', steelItem);// Bogie + TrainCraftingManager.instance.addRecipe(new ItemStack(Items.flint_and_steel, 2), "* ", " #", '*', steelItem, '#', Items.flint); + + + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.transmition.item, 1), " # ", "#X#", " # ", '#', steelItem, 'X', ItemIDs.diesel.item);// transmition + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.piston.item, 3), " # ", " X ", '#', steelItem, 'X', Items.stick);// piston + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.camshaft.item, 3), "###", " ", " ", '#', steelItem);// camshaft + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.camshaft.item, 3), " ", "###", " ", '#', steelItem);// camshaft + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.camshaft.item, 3), " ", " ", "###", '#', steelItem);// camshaft + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.cylinder.item, 3), "# #", "# #", "###", '#', steelItem);// cylinder + + } + + for (ItemStack logStack : logs) { + /* Water Wheel */ + TrainCraftingManager.instance.addRecipe(new ItemStack(BlockIDs.waterWheel.block, 1), " P ", "PGP", " P ", 'P', logStack, 'G', ItemIDs.generator.item); + + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.woodenBogie.item, 4), " # ", "#X#", " # ", '#', plankItem, 'X', logStack);// wooden Bogie + } + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.woodenFrame.item, 2), "# #", "AAA", 'A', plankItem, '#', plankItem);// wooden Frame + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.woodenFrame.item, 2), " ", "# #", "AAA", 'A', plankItem, '#', plankItem);// wooden Frame + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.woodenCab.item, 2), "###", "X X", "XXX", 'X', plankItem, '#', plankItem);// wooden cab + + for (ItemStack ironingot : iron) { + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.seats.item, 1), "# ", "## ", "XXX", '#', plankItem, 'X', ironingot);// transformer + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.ironBogie.item, 4), " # ", "#X#", " # ", '#', ironingot, 'X', plankItem);// iron Bogie + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.ironFrame.item, 2), "# #", "AAA", 'A', ironingot, '#', plankItem);// iron Frame + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.ironFrame.item, 2), " ", "# #", "AAA", 'A', ironingot, '#', plankItem);// iron Frame + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.ironCab.item, 2), "###", "X X", "XXX", 'X', ironingot, '#', plankItem);// iron cab + TrainCraftingManager.instance.addRecipe(new ItemStack(BlockIDs.stopper.block, 1), "WWW", "I I", "RRR", 'W', plankItem, 'R', Blocks.rail, 'I', ironingot);// stopper + TrainCraftingManager.instance.addRecipe(new ItemStack(BlockIDs.switchStand.block, 1), " W ", " I ", " R ", 'W', Blocks.lever, 'R', Items.stick, 'I', ironingot);//switchstand + TrainCraftingManager.instance.addRecipe(new ItemStack(BlockIDs.MFPBWigWag.block, 1), "IWI", " I ", " I ", 'W', Blocks.lever, 'I', ironingot);//wigwag + } + // Short Wood Slope + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailSlopeWood.item, 1), + " MW", "MWW", "WWW", 'M', ItemIDs.tcRailMediumStraight.item, 'W', plankItem); + } + /* Wind mill */ + for (ItemStack ironingot : iron) { + TrainCraftingManager.instance.addRecipe(new ItemStack(BlockIDs.windMill.block, 1), " R ", " G ", "B B", 'G', ItemIDs.generator.item, 'B', ironingot, 'R', ItemIDs.propeller.item); + + if (Loader.isModLoaded("ComputerCraft")) { + TrainCraftingManager.instance.addRecipe(new ItemStack(BlockIDs.mtcTransmitterSpeed.block, 1), "SRS", "RTR", "SRS", 'S', ironingot, 'R', Items.redstone, 'T', Blocks.stone_pressure_plate); + TrainCraftingManager.instance.addRecipe(new ItemStack(BlockIDs.mtcReceiverMTC.block, 1), "STS", " R ", "SPS", 'S', ironingot, 'R', Items.redstone, 'P', Items.repeater, 'T', new ItemStack(Blocks.torch, 1)); + TrainCraftingManager.instance.addRecipe(new ItemStack(BlockIDs.mtcTransmitterMTC.block, 1), "SPS", " R ", "STS", 'S', ironingot, 'R', Items.redstone, 'P', Items.repeater, 'T', new ItemStack(Blocks.torch, 1)); + TrainCraftingManager.instance.addRecipe(new ItemStack(BlockIDs.mtcReceiverDestination.block, 1), "SRS", "RTR", "SRS", 'S', ironingot, 'R', Items.redstone, 'T', Items.sign); + TrainCraftingManager.instance.addRecipe(new ItemStack(BlockIDs.mtcATOStopTransmitter.block, 1), " S ", "RTS", " R ", 'S', ironingot, 'R', Items.redstone, 'T', ItemIDs.electronicCircuit.item); + } + } + + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailSmallRoadCrossing.item, 1), " ", "SRS", " ", 'S', new ItemStack(Blocks.stained_hardened_clay, 1, 15), 'R', Item.getItemFromBlock(Blocks.rail)); + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailSmallRoadCrossing1.item, 1), " ", "SRS", " ", 'S', new ItemStack(Blocks.stained_hardened_clay, 1, 7), 'R', Item.getItemFromBlock(Blocks.rail)); + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailSmallRoadCrossing2.item, 1), " ", "SRS", " ", 'S', new ItemStack(Blocks.stained_hardened_clay, 1, 3), 'R', Item.getItemFromBlock(Blocks.rail)); + TrainCraftingManager.instance.addRecipe(new ItemStack(Item.getItemFromBlock(Blocks.rail), 1), " ", " R ", " ", 'R', ItemIDs.tcRailSmallStraight.item); + TrainCraftingManager.instance.addRecipe(new ItemStack(Item.getItemFromBlock(Blocks.rail), 1), " ", " R ", " ", 'R', ItemIDs.tcRailSmallRoadCrossing.item); + TrainCraftingManager.instance.addRecipe(new ItemStack(Item.getItemFromBlock(Blocks.rail), 1), " ", " R ", " ", 'R', ItemIDs.tcRailSmallRoadCrossing1.item); + TrainCraftingManager.instance.addRecipe(new ItemStack(Item.getItemFromBlock(Blocks.rail), 1), " ", " R ", " ", 'R', ItemIDs.tcRailSmallRoadCrossing2.item); + + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailSlopeWood.item, 1), " TP", "TPP", "PPP", 'T', ItemIDs.tcRailMediumStraight.item, 'P', Blocks.planks); + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailLargeSlopeWood.item, 1), " ", " T", " T ", 'T', ItemIDs.tcRailSlopeWood.item); + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailVeryLargeSlopeWood.item, 1), " T", " T ", "T ", 'T', ItemIDs.tcRailSlopeWood.item); + + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailSlopeSnowGravel.item, 1), " TS", "TSS", "SSS", 'T', ItemIDs.tcRailMediumStraight.item, 'S', new ItemStack(BlockIDs.snowGravel.block, 1, 4)); + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailLargeSlopeSnowGravel.item, 1), " ", " T", " T ", 'T', ItemIDs.tcRailSlopeSnowGravel.item); + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailVeryLargeSlopeSnowGravel.item, 1), " T", " T ", "T ", 'T', ItemIDs.tcRailSlopeSnowGravel.item); + + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailSlopeGravel.item, 1), " TG", "TGG", "GGG", 'T', ItemIDs.tcRailMediumStraight.item, 'G', Blocks.gravel); + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailLargeSlopeGravel.item, 1), " ", " S", " S ", 'S', ItemIDs.tcRailSlopeGravel.item); + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailVeryLargeSlopeGravel.item, 1), " T", " T ", "T ", 'T', ItemIDs.tcRailSlopeGravel.item); + + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailSlopeBallast.item, 1), " TG", "TGG", "GGG", 'T', ItemIDs.tcRailMediumStraight.item, 'G', new ItemStack(BlockIDs.oreTC.block, 1, 3)); + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailLargeSlopeBallast.item, 1), " ", " S", " S ", 'S', ItemIDs.tcRailSlopeBallast.item); + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailVeryLargeSlopeBallast.item, 1), " T", " T ", "T ", 'T', ItemIDs.tcRailSlopeBallast.item); + + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailSmallStraight.item, 16), "G G", "BPB", "G G", 'G', Items.iron_ingot, 'P', Blocks.planks, 'B', ItemIDs.bolt.item); + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailMediumStraight.item, 1), "S ", "S ", "S ", 'S', ItemIDs.tcRailSmallStraight.item); + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailLongStraight.item, 1), "M ", "M ", " ", 'M', ItemIDs.tcRailMediumStraight.item); + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailVeryLongStraight.item, 1), "L ", "L ", " ", 'L', ItemIDs.tcRailLongStraight.item); + + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailSmallDiagonalStraight.item, 1), " G ", "G ", " ", 'G', ItemIDs.tcRailSmallStraight.item); + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailMediumDiagonalStraight.item, 1), " G", " G ", "G ", 'G', ItemIDs.tcRailSmallDiagonalStraight.item); + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailLongDiagonalStraight.item, 1), " G ", "G ", " ", 'G', ItemIDs.tcRailMediumDiagonalStraight.item); + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailVeryLongDiagonalStraight.item, 1), " G ", "G ", " ", 'G', ItemIDs.tcRailLongDiagonalStraight.item); + + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailMediumTurn.item, 1), "SS ", "S ", 'S', ItemIDs.tcRailSmallStraight.item); + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailLargeTurn.item, 1), " SS", "SS ", "S ", 'S', ItemIDs.tcRailSmallStraight.item); + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailVeryLargeTurn.item, 1), "MM ", "M ", " ", 'M', ItemIDs.tcRailMediumTurn.item); + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailSuperLargeTurn.item, 1), "VV ", "V ", " ", 'V', ItemIDs.tcRailVeryLargeTurn.item); + + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailSmallParallelCurve.item, 1), " S ", "SS ", "S ", 'S', ItemIDs.tcRailSmallStraight.item); + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailMediumParallelCurve.item, 1), " S ", "S ", " ", 'S', ItemIDs.tcRailSmallParallelCurve.item); + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailLargeParallelCurve.item, 1), " S ", "S ", " ", 'S', ItemIDs.tcRailMediumParallelCurve.item); + + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailMediumSwitch.item, 1), "S ", "SRS", "S ", 'S', ItemIDs.tcRailSmallStraight.item, 'R', ItemIDs.tcRailMediumTurn.item); + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailLargeSwitch.item, 1), "S ", "MRS", "S ", 'S', ItemIDs.tcRailSmallStraight.item, 'M', ItemIDs.tcRailMediumStraight.item, 'R', ItemIDs.tcRailLargeTurn.item); + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailMediumParallelSwitch.item, 1), "M S", "MRR", "MR ", 'S', ItemIDs.tcRailSmallStraight.item, 'M', ItemIDs.tcRailMediumStraight.item, 'R', ItemIDs.tcRailMediumTurn.item); + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailTwoWaysCrossing.item, 1), " S ", "SSS", " S ", 'S', ItemIDs.tcRailSmallStraight.item); + + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailMedium45DegreeSwitch.item, 1), "S D", "ST ", "S ", 'S', ItemIDs.tcRailSmallStraight.item, 'D', ItemIDs.tcRailSmallDiagonalStraight.item, 'T', ItemIDs.tcRailMedium45DegreeTurn.item); + + // Embedded Versions + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedSmallStraight.item, 16), "I I", "B B", "I I", 'I', Items.iron_ingot, 'B', ItemIDs.bolt.item); + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedMediumStraight.item, 1), "S ", "S ", "S ", 'S', ItemIDs.tcRailEmbeddedSmallStraight.item); + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedLongStraight.item, 1), "M ", "M ", " ", 'M', ItemIDs.tcRailEmbeddedMediumStraight.item); + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedVeryLongStraight.item, 1), "L ", "L ", " ", 'L', ItemIDs.tcRailEmbeddedLongStraight.item); + + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedSmallDiagonalStraight.item, 1), " G ", "G ", " ", 'G', ItemIDs.tcRailEmbeddedSmallStraight.item); + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedMediumDiagonalStraight.item, 1), " G", " G ", "G ", 'G', ItemIDs.tcRailEmbeddedSmallDiagonalStraight.item); + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedLongDiagonalStraight.item, 1), " G ", "G ", " ", 'G', ItemIDs.tcRailEmbeddedMediumDiagonalStraight.item); + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedVeryLongDiagonalStraight.item, 1), " G ", "G ", " ", 'G', ItemIDs.tcRailEmbeddedLongDiagonalStraight.item); + + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedMediumTurn.item, 1), "SS ", "S ", 'S', ItemIDs.tcRailEmbeddedSmallStraight.item); + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedLargeTurn.item, 1), " SS", "SS ", "S ", 'S', ItemIDs.tcRailEmbeddedSmallStraight.item); + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedVeryLargeTurn.item, 1), "MM ", "M ", " ", 'M', ItemIDs.tcRailEmbeddedMediumTurn.item); + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedSuperLargeTurn.item, 1), "VV ", "V ", " ", 'V', ItemIDs.tcRailEmbeddedVeryLargeTurn.item); + + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedSmallParallelCurve.item, 1), " S ", "SS ", "S ", 'S', ItemIDs.tcRailEmbeddedSmallStraight.item); + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedMediumParallelCurve.item, 1), " S ", "SS ", "S ", 'S', ItemIDs.tcRailEmbeddedSmallParallelCurve.item); + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedLargeParallelCurve.item, 1), " S ", "SS ", "S ", 'S', ItemIDs.tcRailEmbeddedMediumParallelCurve.item); + + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedTwoWaysCrossing.item, 1), " S ", "SSS", " S ", 'S', ItemIDs.tcRailEmbeddedSmallStraight.item); + TrainCraftingManager.instance.addRecipe(new ItemStack(ItemIDs.tcRailEmbeddedMedium45DegreeSwitch.item, 1), "S D", "ST ", "S ", 'S', ItemIDs.tcRailEmbeddedSmallStraight.item, 'D', ItemIDs.tcRailEmbeddedSmallDiagonalStraight.item, 'T', ItemIDs.tcRailEmbeddedMedium45DegreeTurn.item); + // Bridge Pillar + TrainCraftingManager.instance.addRecipe(new ItemStack(BlockIDs.bridgePillar.block, 8), + "SSS", "SLS", "SSS", 'S', Items.stick, 'L', Blocks.log); + } + + public static void initSmeltingRecipes() { + + /* OpenHearthFurnace recipes */ + if (!ConfigHandler.MAKE_MODPACKS_GREAT_AGAIN) { + ArrayList steel = OreDictionary.getOres("ingotSteel"); + ArrayList iron = OreDictionary.getOres("ingotIron"); + for (ItemStack s : steel) { + for (ItemStack ironitm : iron) { + TrainCraftingManager.instance.addHearthFurnaceRecipe(ironitm, + new ItemStack(ItemIDs.graphite.item), s, 2F, 1000); + } + } + } + + /* Vanilla Furnace recipes */ + GameRegistry.addSmelting(new ItemStack(Item.getItemFromBlock(BlockIDs.oreTC.block), 0), OreDictionary.getOres("ingotCopper").get(0), 0.7f); + } + + public static void addDictRecipe(ItemStack stack, Object... obj) { + ShapedOreRecipe recipe = new ShapedOreRecipe(stack, obj); + GameRegistry.addRecipe(recipe); + } } diff --git a/src/main/java/train/common/core/handlers/RetrogenHandler.java b/src/main/java/train/common/core/handlers/RetrogenHandler.java index bab28ff196..253c2d7fdc 100644 --- a/src/main/java/train/common/core/handlers/RetrogenHandler.java +++ b/src/main/java/train/common/core/handlers/RetrogenHandler.java @@ -11,65 +11,78 @@ import java.util.Random; public class RetrogenHandler { - public static final byte VERSION = 1; // useful for world generation changes in future releases, to allow partial retrogen. - private static ArrayList chunksToRetroGen = new ArrayList(); - public static ArrayList gennedChunks = new ArrayList(); - private static Random rand = new Random(); - /** Called whenever a chunk is loaded, checks for retrogen flag and adds it to the list of chunks to retrogen if neededg. */ - @SubscribeEvent - public void onChunkLoad(ChunkDataEvent.Load event) { - ChunkData data = new ChunkData(event.getChunk()); - if (ConfigHandler.RETROGEN_CHUNKS && event.getData().getByte("TraincraftRetrogen") < VERSION && !gennedChunks.contains(data)) { - chunksToRetroGen.add(event.getChunk()); - } - gennedChunks.remove(data); - } - /** Called whenever a chunk is saved, sets the retrogen flag. */ - @SubscribeEvent - public void onChunkSave(ChunkDataEvent.Save event) { - if(event.getData()!=null && !event.getData().hasKey("TraincraftRetrogen")) { - event.getData().setByte("TraincraftRetrogen", VERSION); - } - } - /** called every server tick. Retrogens chunks if needed. **/ - @SubscribeEvent - public void onServerTick(TickEvent.ServerTickEvent event) { - if (ConfigHandler.RETROGEN_CHUNKS && chunksToRetroGen.size()>0) { - if (event.phase == TickEvent.Phase.END) { - WorldServer world; - for (Chunk chunk : chunksToRetroGen) { - if (chunk.worldObj instanceof WorldServer) { - world = (WorldServer) chunk.worldObj; - rand.setSeed((long)chunk.xPosition * 341873128712L + (long)chunk.zPosition * 132897987541L); - Traincraft.tcLog.info("Retrogen chunk at " + chunk.xPosition + ", " + chunk.zPosition + " for dimension " + world.provider.dimensionId + ", Version " + VERSION); - Traincraft.worldGen.generate(rand, chunk.xPosition, chunk.zPosition, world, world.theChunkProviderServer.currentChunkProvider, world.theChunkProviderServer.currentChunkProvider); - } - } - chunksToRetroGen= new ArrayList(); - gennedChunks= new ArrayList(); - } - } - } - - public static class ChunkData { - private final int chunkX, chunkZ, dimension; - private ChunkData(Chunk chunk) { - this.chunkX = chunk.xPosition; - this.chunkZ = chunk.zPosition; - this.dimension = chunk.worldObj.provider.dimensionId; - } - public ChunkData(int chunkX, int chunkZ, int dimension) { - this.chunkX = chunkX; - this.chunkZ = chunkZ; - this.dimension = dimension; - } - @Override - public boolean equals(Object o) { - if (o instanceof ChunkData) { - ChunkData data = (ChunkData) o; - return (data == this) || (data.chunkX == this.chunkX && data.chunkZ == this.chunkZ && data.dimension == this.dimension); - } - return false; - } - } + public static final byte VERSION = 1; // useful for world generation changes in future releases, to allow partial retrogen. + private static ArrayList chunksToRetroGen = new ArrayList<>(); + public static ArrayList gennedChunks = new ArrayList<>(); + private static final Random rand = new Random(); + + /** + * Called whenever a chunk is loaded, checks for retrogen flag and adds it to the list of chunks to retrogen if neededg. + */ + @SubscribeEvent + public void onChunkLoad(ChunkDataEvent.Load event) { + ChunkData data = new ChunkData(event.getChunk()); + if (ConfigHandler.RETROGEN_CHUNKS && event.getData().getByte("TraincraftRetrogen") < VERSION && !gennedChunks.contains(data)) { + chunksToRetroGen.add(event.getChunk()); + } + gennedChunks.remove(data); + } + + /** + * Called whenever a chunk is saved, sets the retrogen flag. + */ + @SubscribeEvent + public void onChunkSave(ChunkDataEvent.Save event) { + if (event.getData() != null && !event.getData().hasKey("TraincraftRetrogen")) { + event.getData().setByte("TraincraftRetrogen", VERSION); + } + } + + /** + * called every server tick. Retrogens chunks if needed. + **/ + @SubscribeEvent + public void onServerTick(TickEvent.ServerTickEvent event) { + if (ConfigHandler.RETROGEN_CHUNKS && !chunksToRetroGen.isEmpty()) { + if (event.phase == TickEvent.Phase.END) { + WorldServer world; + for (Chunk chunk : chunksToRetroGen) { + if (chunk.worldObj instanceof WorldServer) { + world = (WorldServer) chunk.worldObj; + rand.setSeed((long) chunk.xPosition * 341873128712L + (long) chunk.zPosition * 132897987541L); + Traincraft.tcLog.info("Retrogen chunk at " + chunk.xPosition + ", " + chunk.zPosition + " for dimension " + world.provider.dimensionId + ", Version " + VERSION); + Traincraft.worldGen.generate(rand, chunk.xPosition, chunk.zPosition, world, world.theChunkProviderServer.currentChunkProvider, world.theChunkProviderServer.currentChunkProvider); + } + } + + chunksToRetroGen = new ArrayList<>(); + gennedChunks = new ArrayList<>(); + } + } + } + + public static class ChunkData { + private final int chunkX, chunkZ, dimension; + + private ChunkData(Chunk chunk) { + this.chunkX = chunk.xPosition; + this.chunkZ = chunk.zPosition; + this.dimension = chunk.worldObj.provider.dimensionId; + } + + public ChunkData(int chunkX, int chunkZ, int dimension) { + this.chunkX = chunkX; + this.chunkZ = chunkZ; + this.dimension = dimension; + } + + @Override + public boolean equals(Object o) { + if (o instanceof ChunkData) { + ChunkData data = (ChunkData) o; + return (data == this) || (data.chunkX == this.chunkX && data.chunkZ == this.chunkZ && data.dimension == this.dimension); + } + return false; + } + } } \ No newline at end of file diff --git a/src/main/java/train/common/core/handlers/RollingStockStatsEventHandler.java b/src/main/java/train/common/core/handlers/RollingStockStatsEventHandler.java index 7a0940de3e..8299eeca72 100644 --- a/src/main/java/train/common/core/handlers/RollingStockStatsEventHandler.java +++ b/src/main/java/train/common/core/handlers/RollingStockStatsEventHandler.java @@ -8,63 +8,61 @@ public class RollingStockStatsEventHandler { - /** - * Stores the distance a player has done on this train - */ - private ArrayList plDist = new ArrayList(); - private AbstractTrains train; + /** + * Stores the distance a player has done on this train + */ + private final ArrayList plDist = new ArrayList<>(); + private final AbstractTrains train; - public RollingStockStatsEventHandler(AbstractTrains train) { - this.train = train; - } + public RollingStockStatsEventHandler(AbstractTrains train) { + this.train = train; + } - /** - * Calculates the distance this train has done if a player rides it, also calculates - */ - /* Ready for stats implement, unused for now** */ - public void trainDistance() { - double xDist = train.prevPosX - train.posX; - double yDist = train.prevPosY - train.posY; - double zDist = train.prevPosZ - train.posZ; - int var7 = Math.round(MathHelper.sqrt_double(xDist * xDist + yDist * yDist + zDist * zDist) * 100); - train.trainDistanceTraveled += (var7); - //System.out.println(trainDistanceTraveled); - if (train.riddenByEntity != null && train.riddenByEntity instanceof EntityPlayer) { - for (playerDistance d : plDist) { - if (((EntityPlayer) train.riddenByEntity).getDisplayName().equals(d.getUsername())) { - d.setDistance(d.getDistance() + (var7)); - //System.out.println(d.getDistance()+" "+((EntityPlayer)riddenByEntity).username); - return; - } - } - plDist.add(new playerDistance(((EntityPlayer) train.riddenByEntity).getDisplayName(), (var7))); - } - } + /** + * Calculates the distance this train has done if a player rides it, also calculates + */ + /* Ready for stats implement, unused for now** */ + public void trainDistance() { + double xDist = train.prevPosX - train.posX; + double yDist = train.prevPosY - train.posY; + double zDist = train.prevPosZ - train.posZ; + int var7 = Math.round(MathHelper.sqrt_double(xDist * xDist + yDist * yDist + zDist * zDist) * 100); + train.trainDistanceTraveled += (var7); + //System.out.println(trainDistanceTraveled); + if (train.riddenByEntity != null && train.riddenByEntity instanceof EntityPlayer) { + for (playerDistance d : plDist) { + if (((EntityPlayer) train.riddenByEntity).getDisplayName().equals(d.getUsername())) { + d.setDistance(d.getDistance() + (var7)); + //System.out.println(d.getDistance()+" "+((EntityPlayer)riddenByEntity).username); + return; + } + } + plDist.add(new playerDistance(((EntityPlayer) train.riddenByEntity).getDisplayName(), (var7))); + } + } - /** - * just an object to register the distance a player has done - * - */ - private class playerDistance { - private String username; - private double distance; + /** + * just an object to register the distance a player has done + */ + private static class playerDistance { + private final String username; + private double distance; - private playerDistance(String username, double distance) { - this.username = username; - this.distance = distance; - } + private playerDistance(String username, double distance) { + this.username = username; + this.distance = distance; + } - protected double getDistance() { - return distance; - } + protected double getDistance() { + return distance; + } - protected String getUsername() { - return username; - } - - protected void setDistance(double distance) { - this.distance = distance; - } - } + protected String getUsername() { + return username; + } + protected void setDistance(double distance) { + this.distance = distance; + } + } } diff --git a/src/main/java/train/common/core/handlers/TrainHandler.java b/src/main/java/train/common/core/handlers/TrainHandler.java index 05fc1d6be1..e421decb3d 100644 --- a/src/main/java/train/common/core/handlers/TrainHandler.java +++ b/src/main/java/train/common/core/handlers/TrainHandler.java @@ -4,48 +4,53 @@ import train.common.api.Locomotive; import java.util.ArrayList; +import java.util.List; public class TrainHandler { - private EntityRollingStock rolling; - private ArrayList train = new ArrayList(); + private final List train = new ArrayList<>(); private int trainPower; - public TrainHandler() {} + public TrainHandler() { + } public TrainHandler(EntityRollingStock rolling) { - this.rolling = rolling; addRollingStock(rolling); - rolling.allTrains.add(this); + EntityRollingStock.allTrains.add(this); } public void addRollingStock(EntityRollingStock rolling) { - for (int i = 0; i < train.size(); i++) { - if (train.get(i).equals(rolling)) { - return; - } - } + for (EntityRollingStock entityRollingStock : train) { + if (entityRollingStock.equals(rolling)) { + return; + } + } + if (rolling instanceof Locomotive) { trainPower += ((Locomotive) rolling).getPower(); } + train.add(rolling); (rolling).train = this; //System.out.println("added "+rolling); - if (rolling.cartLinked1 != null) + if (rolling.cartLinked1 != null) { addRollingStock((rolling.cartLinked1)); - if (rolling.cartLinked2 != null) + } + + if (rolling.cartLinked2 != null) { addRollingStock((rolling.cartLinked2)); + } } public void resetTrain() { - for (int i = 0; i < train.size(); i++) { - if (train.get(i) != null) - train.get(i).train = null; - } + for (EntityRollingStock entityRollingStock : train) { + if (entityRollingStock != null) + entityRollingStock.train = null; + } train.clear(); } - public ArrayList getTrains() { - return train; + public List getTrains() { + return this.train; } public int getTrainPower() { diff --git a/src/main/java/train/common/core/handlers/TraincraftSaveHandler.java b/src/main/java/train/common/core/handlers/TraincraftSaveHandler.java index fb413863dc..fc37b6c1b5 100644 --- a/src/main/java/train/common/core/handlers/TraincraftSaveHandler.java +++ b/src/main/java/train/common/core/handlers/TraincraftSaveHandler.java @@ -6,107 +6,103 @@ import java.util.ArrayList; public class TraincraftSaveHandler { - - public static boolean createFile(MinecraftServer server) { - try { - File file; - //System.out.println(server.getFile("Traincraft.dat")); - if (server.isDedicatedServer()) { - file = server.getFile(server.getFolderName() + "/data/Traincraft.dat"); - } - else { - file = server.getFile("saves/" + server.getFolderName() + "/data/Traincraft.dat"); - } - if (file != null && file.exists()) { - return true; - } - else if (file != null) { - file.createNewFile(); - return false; - } - return false; - } catch (Throwable throwable) { - throw new RuntimeException(throwable); - } - } - public static int readInt(MinecraftServer server, String name) { - try { - File file; - if (server.isDedicatedServer()) { - file = server.getFile(server.getFolderName() + "/data/Traincraft.dat"); - } - else { - file = server.getFile("saves/" + server.getFolderName() + "/data/Traincraft.dat"); - } - if (file != null && file.exists()) { - BufferedReader reader = new BufferedReader(new FileReader(file)); - String line; - while ((line = reader.readLine()) != null) { - //if(!line.startsWith(name))continue;//numberOfTrains: - if (line.startsWith(name)) { - return (Integer.parseInt(line.substring(name.length()))); - } - else { - reader.close(); - } - } - } - } catch (Throwable throwable) { - throw new RuntimeException(throwable); - } - return -1; - } + public static boolean createFile(MinecraftServer server) { + try { + File file; + //System.out.println(server.getFile("Traincraft.dat")); + if (server.isDedicatedServer()) { + file = server.getFile(server.getFolderName() + "/data/Traincraft.dat"); + } else { + file = server.getFile("saves/" + server.getFolderName() + "/data/Traincraft.dat"); + } + if (file != null && file.exists()) { + return true; + } else if (file != null) { + file.createNewFile(); + return false; + } + return false; + } catch (Throwable throwable) { + throw new RuntimeException(throwable); + } + } - public static void writeValue(MinecraftServer server, String name, String value) { - try { - File file; - File newFile; - ArrayList content = new ArrayList(); - if (server.isDedicatedServer()) { - file = server.getFile(server.getFolderName() + "/data/Traincraft.dat"); - newFile = server.getFile(server.getFolderName() + "/data/newTraincraft.dat"); - } - else { - file = server.getFile("saves/" + server.getFolderName() + "/data/Traincraft.dat"); - newFile = server.getFile("saves/" + server.getFolderName() + "/data/newTraincraft.dat"); - } - if (file != null && file.exists()) { - newFile.createNewFile(); - BufferedReader reader = new BufferedReader(new FileReader(file)); - BufferedWriter bw = new BufferedWriter(new FileWriter(newFile)); - String line; - while ((line = reader.readLine()) != null) { - content.add(line); - } - reader.close(); - boolean replaced = false; - for (int i = 0; i < content.size(); i++) { - if (content.get(i).startsWith(name)) { - content.remove(i); - content.add(i, name + value); - replaced = true; - } - if (i == content.size() - 1 && !replaced) { - content.add(name + value); - } - } - if (content.size() == 0) { - bw.write(name + value + "\n"); - } - else { - for (String item : content) { - bw.write(item + "\n"); - } - } + public static int readInt(MinecraftServer server, String name) { + try { + File file; + if (server.isDedicatedServer()) { + file = server.getFile(server.getFolderName() + "/data/Traincraft.dat"); + } else { + file = server.getFile("saves/" + server.getFolderName() + "/data/Traincraft.dat"); + } + if (file != null && file.exists()) { + BufferedReader reader = new BufferedReader(new FileReader(file)); + String line; + while ((line = reader.readLine()) != null) { + //if(!line.startsWith(name))continue;//numberOfTrains: + if (line.startsWith(name)) { + return (Integer.parseInt(line.substring(name.length()))); + } else { + reader.close(); + } + } + } + } catch (Throwable throwable) { + throw new RuntimeException(throwable); + } + return -1; + } - bw.close(); + public static void writeValue(MinecraftServer server, String name, String value) { + try { + File file; + File newFile; + ArrayList content = new ArrayList(); + if (server.isDedicatedServer()) { + file = server.getFile(server.getFolderName() + "/data/Traincraft.dat"); + newFile = server.getFile(server.getFolderName() + "/data/newTraincraft.dat"); + } else { + file = server.getFile("saves/" + server.getFolderName() + "/data/Traincraft.dat"); + newFile = server.getFile("saves/" + server.getFolderName() + "/data/newTraincraft.dat"); + } + if (file != null && file.exists()) { + newFile.createNewFile(); + BufferedReader reader = new BufferedReader(new FileReader(file)); + BufferedWriter bw = new BufferedWriter(new FileWriter(newFile)); + String line; + while ((line = reader.readLine()) != null) { + content.add(line); + } - file.delete(); - newFile.renameTo(file); - } - } catch (Throwable throwable) { - throw new RuntimeException(throwable); - } - } + reader.close(); + boolean replaced = false; + for (int i = 0; i < content.size(); i++) { + if (content.get(i).startsWith(name)) { + content.remove(i); + content.add(i, name + value); + replaced = true; + } + if (i == content.size() - 1 && !replaced) { + content.add(name + value); + } + } + + if (content.isEmpty()) { + bw.write(name + value + "\n"); + } else { + for (String item : content) { + bw.write(item + "\n"); + } + } + + bw.close(); + + file.delete(); + newFile.renameTo(file); + } + } catch (Throwable throwable) { + throw new RuntimeException(throwable); + } + } } \ No newline at end of file diff --git a/src/main/java/train/common/core/handlers/TrainsDamageSource.java b/src/main/java/train/common/core/handlers/TrainsDamageSource.java index 7edc1785c8..e9e81e725d 100644 --- a/src/main/java/train/common/core/handlers/TrainsDamageSource.java +++ b/src/main/java/train/common/core/handlers/TrainsDamageSource.java @@ -11,43 +11,45 @@ public class TrainsDamageSource extends DamageSource { - public static final List damageSources = new ArrayList(); - - public static final TrainsDamageSource ranOver = (TrainsDamageSource) new TrainsDamageSource("ranOver", " was rolled over by a train!").setDamageBypassesArmor(); - public String deathMessage; - - public TrainsDamageSource(String damageType) { - super(damageType); - damageSources.add(this); - } - - public TrainsDamageSource(String damageType, String deathMessage) { - this(damageType); - setDeathMessage(deathMessage); - } - - public TrainsDamageSource setDeathMessage(String deathMessage) { - this.deathMessage = deathMessage; - return this; - } - @Override - public DamageSource setDamageAllowedInCreativeMode() { - return super.setDamageAllowedInCreativeMode(); - } - - /* - * public void registerDeathMessage() { LanguageRegistry.instance().addName("death.ranOver", "was rolled over!");//.addStringLocalization("death." + this.damageType, this.deathMessage); } */ - /** - * Returns the message to be displayed on player death. - */ - @Override - public ChatComponentText func_151519_b(EntityLivingBase living) { - if(living instanceof EntityPlayer) { - return new ChatComponentText(((EntityPlayer) living).getDisplayName() + deathMessage); - } else if(living instanceof EntityLiving &&((EntityLiving)living).getCustomNameTag() !=null && ((EntityLiving)living).getCustomNameTag().length()>0) { - return new ChatComponentText( ((EntityLiving)living).getCustomNameTag() + deathMessage); - } else { - return new ChatComponentText(living.getCommandSenderName() +deathMessage); - } - } + public static final List damageSources = new ArrayList<>(); + + public static final TrainsDamageSource ranOver = (TrainsDamageSource) new TrainsDamageSource("ranOver", " was rolled over by a train!").setDamageBypassesArmor(); + public String deathMessage; + + public TrainsDamageSource(String damageType) { + super(damageType); + damageSources.add(this); + } + + public TrainsDamageSource(String damageType, String deathMessage) { + this(damageType); + setDeathMessage(deathMessage); + } + + public TrainsDamageSource setDeathMessage(String deathMessage) { + this.deathMessage = deathMessage; + return this; + } + + @Override + public DamageSource setDamageAllowedInCreativeMode() { + return super.setDamageAllowedInCreativeMode(); + } + + /* + * public void registerDeathMessage() { LanguageRegistry.instance().addName("death.ranOver", "was rolled over!");//.addStringLocalization("death." + this.damageType, this.deathMessage); } */ + + /** + * Returns the message to be displayed on player death. + */ + @Override + public ChatComponentText func_151519_b(EntityLivingBase living) { + if (living instanceof EntityPlayer) { + return new ChatComponentText(((EntityPlayer) living).getDisplayName() + deathMessage); + } else if (living instanceof EntityLiving && ((EntityLiving) living).getCustomNameTag() != null && !((EntityLiving) living).getCustomNameTag().isEmpty()) { + return new ChatComponentText(((EntityLiving) living).getCustomNameTag() + deathMessage); + } else { + return new ChatComponentText(living.getCommandSenderName() + deathMessage); + } + } } \ No newline at end of file diff --git a/src/main/java/train/common/core/handlers/VillagerTraincraftHandler.java b/src/main/java/train/common/core/handlers/VillagerTraincraftHandler.java index eeda37e674..c87a1bbb0c 100644 --- a/src/main/java/train/common/core/handlers/VillagerTraincraftHandler.java +++ b/src/main/java/train/common/core/handlers/VillagerTraincraftHandler.java @@ -19,77 +19,77 @@ import java.util.List; import java.util.Random; -public class VillagerTraincraftHandler implements IVillageCreationHandler,IVillageTradeHandler{ - //private Random rand = new Random(); - @Override - public void manipulateTradesForVillager(EntityVillager villager, - MerchantRecipeList recipeList, Random random) { - recipeList.add(new MerchantRecipe(getRandomSizedStack(Blocks.rail, random,20), Items.emerald)); - recipeList.add(new MerchantRecipe(getRandomSizedItemStack(Items.emerald, random,20), new ItemStack(Blocks.rail))); - - recipeList.add(new MerchantRecipe(getRandomSizedStack(Blocks.activator_rail, random,4), Items.emerald)); - recipeList.add(new MerchantRecipe(getRandomSizedItemStack(Items.emerald, random,4), new ItemStack(Blocks.activator_rail))); - - recipeList.add(new MerchantRecipe(getRandomSizedStack(Blocks.detector_rail, random,4), Items.emerald)); - recipeList.add(new MerchantRecipe(getRandomSizedItemStack(Items.emerald, random,4), new ItemStack(Blocks.detector_rail))); - - recipeList.add(new MerchantRecipe(getRandomSizedStack(Blocks.golden_rail, random,10), Items.emerald)); - recipeList.add(new MerchantRecipe(getRandomSizedItemStack(Items.emerald, random,10), new ItemStack(Blocks.golden_rail))); - - recipeList.add(new MerchantRecipe(getRandomSizedStack(Blocks.clay, random,10), Items.emerald)); - recipeList.add(new MerchantRecipe(getRandomSizedItemStack(Items.emerald, random,10), new ItemStack(Blocks.brick_block))); - - recipeList.add(new MerchantRecipe(getRandomSizedItemStack(Items.minecart, random,2), Items.emerald)); - recipeList.add(new MerchantRecipe(getRandomSizedItemStack(Items.emerald, random,2), new ItemStack(Items.minecart))); - - recipeList.add(new MerchantRecipe(getRandomSizedItemStack(Items.chest_minecart, random,4), Items.emerald)); - recipeList.add(new MerchantRecipe(getRandomSizedItemStack(Items.emerald, random,4), new ItemStack(Items.chest_minecart))); - - recipeList.add(new MerchantRecipe(getRandomSizedItemStack(Items.hopper_minecart, random,1), Items.emerald)); - recipeList.add(new MerchantRecipe(getRandomSizedItemStack(Items.emerald, random,1), new ItemStack(Items.hopper_minecart))); - - recipeList.add(new MerchantRecipe(getRandomSizedItemStack(Items.furnace_minecart, random,2), Items.emerald)); - recipeList.add(new MerchantRecipe(getRandomSizedItemStack(Items.emerald, random,2), new ItemStack(Items.furnace_minecart))); - - recipeList.add(new MerchantRecipe(getRandomSizedItemStack(Items.tnt_minecart, random,1), Items.emerald)); - recipeList.add(new MerchantRecipe(getRandomSizedItemStack(Items.emerald, random,1), new ItemStack(Items.tnt_minecart))); - - for(ItemIDs item : ItemIDs.values()){ - if(item!=null && item.item!=null){ - if(item.item instanceof ItemRollingStock){ - recipeList.add(new MerchantRecipe(new ItemStack(item.item), new ItemStack(Items.emerald,item.amountForEmerald))); - recipeList.add(new MerchantRecipe(new ItemStack(Items.emerald,item.amountForEmerald), item.item)); - }else if(item.amountForEmerald>0){ - if(!(item.item instanceof ItemRollingStock) && item.amountForEmerald>0){ - recipeList.add(new MerchantRecipe(new ItemStack(item.item,item.amountForEmerald), Items.emerald)); - recipeList.add(new MerchantRecipe(new ItemStack(Items.emerald), new ItemStack(item.item,item.amountForEmerald))); - } - } - } - } - } - private ItemStack getRandomSizedStack(Block par0, Random random, int amount) - { - return new ItemStack(par0, random.nextInt(amount)+1, 0); +public class VillagerTraincraftHandler implements IVillageCreationHandler, IVillageTradeHandler { + //private Random rand = new Random(); + @Override + public void manipulateTradesForVillager(EntityVillager villager, + MerchantRecipeList recipeList, Random random) { + recipeList.add(new MerchantRecipe(getRandomSizedStack(Blocks.rail, random, 20), Items.emerald)); + recipeList.add(new MerchantRecipe(getRandomSizedItemStack(Items.emerald, random, 20), new ItemStack(Blocks.rail))); + + recipeList.add(new MerchantRecipe(getRandomSizedStack(Blocks.activator_rail, random, 4), Items.emerald)); + recipeList.add(new MerchantRecipe(getRandomSizedItemStack(Items.emerald, random, 4), new ItemStack(Blocks.activator_rail))); + + recipeList.add(new MerchantRecipe(getRandomSizedStack(Blocks.detector_rail, random, 4), Items.emerald)); + recipeList.add(new MerchantRecipe(getRandomSizedItemStack(Items.emerald, random, 4), new ItemStack(Blocks.detector_rail))); + + recipeList.add(new MerchantRecipe(getRandomSizedStack(Blocks.golden_rail, random, 10), Items.emerald)); + recipeList.add(new MerchantRecipe(getRandomSizedItemStack(Items.emerald, random, 10), new ItemStack(Blocks.golden_rail))); + + recipeList.add(new MerchantRecipe(getRandomSizedStack(Blocks.clay, random, 10), Items.emerald)); + recipeList.add(new MerchantRecipe(getRandomSizedItemStack(Items.emerald, random, 10), new ItemStack(Blocks.brick_block))); + + recipeList.add(new MerchantRecipe(getRandomSizedItemStack(Items.minecart, random, 2), Items.emerald)); + recipeList.add(new MerchantRecipe(getRandomSizedItemStack(Items.emerald, random, 2), new ItemStack(Items.minecart))); + + recipeList.add(new MerchantRecipe(getRandomSizedItemStack(Items.chest_minecart, random, 4), Items.emerald)); + recipeList.add(new MerchantRecipe(getRandomSizedItemStack(Items.emerald, random, 4), new ItemStack(Items.chest_minecart))); + + recipeList.add(new MerchantRecipe(getRandomSizedItemStack(Items.hopper_minecart, random, 1), Items.emerald)); + recipeList.add(new MerchantRecipe(getRandomSizedItemStack(Items.emerald, random, 1), new ItemStack(Items.hopper_minecart))); + + recipeList.add(new MerchantRecipe(getRandomSizedItemStack(Items.furnace_minecart, random, 2), Items.emerald)); + recipeList.add(new MerchantRecipe(getRandomSizedItemStack(Items.emerald, random, 2), new ItemStack(Items.furnace_minecart))); + + recipeList.add(new MerchantRecipe(getRandomSizedItemStack(Items.tnt_minecart, random, 1), Items.emerald)); + recipeList.add(new MerchantRecipe(getRandomSizedItemStack(Items.emerald, random, 1), new ItemStack(Items.tnt_minecart))); + + for (ItemIDs item : ItemIDs.values()) { + if (item != null && item.item != null) { + if (item.item instanceof ItemRollingStock) { + recipeList.add(new MerchantRecipe(new ItemStack(item.item), new ItemStack(Items.emerald, item.amountForEmerald))); + recipeList.add(new MerchantRecipe(new ItemStack(Items.emerald, item.amountForEmerald), item.item)); + } else if (item.amountForEmerald > 0) { + recipeList.add(new MerchantRecipe(new ItemStack(item.item, item.amountForEmerald), Items.emerald)); + recipeList.add(new MerchantRecipe(new ItemStack(Items.emerald), new ItemStack(item.item, item.amountForEmerald))); + } + } + } + } + + private ItemStack getRandomSizedStack(Block par0, Random random, int amount) { + return new ItemStack(par0, random.nextInt(amount) + 1, 0); + } + + private ItemStack getRandomSizedItemStack(Item par0, Random random, int amount) { + return new ItemStack(par0, random.nextInt(amount) + 1, 0); + } + + @Override + public StructureVillagePieces.PieceWeight getVillagePieceWeight(Random random, + int size) { + return new StructureVillagePieces.PieceWeight(ComponentVillageTrainstation.class, 15, MathHelper.getRandomIntegerInRange(random, size, 1 + size)); + } + + @Override + public Class getComponentClass() { + return ComponentVillageTrainstation.class; + } + + @Override + public Object buildComponent(StructureVillagePieces.PieceWeight villagePiece, + StructureVillagePieces.Start startPiece, List pieces, Random random, + int p1, int p2, int p3, int p4, int p5) { + return ComponentVillageTrainstation.buildComponent(startPiece, pieces, random, p1, p2, p3, p4, p5); } - private ItemStack getRandomSizedItemStack(Item par0, Random random, int amount) - { - return new ItemStack(par0, random.nextInt(amount)+1, 0); - } - - @Override - public StructureVillagePieces.PieceWeight getVillagePieceWeight(Random random, - int size) { - return new StructureVillagePieces.PieceWeight(ComponentVillageTrainstation.class, 15, MathHelper.getRandomIntegerInRange(random, size, 1 + size)); - } - @Override - public Class getComponentClass() { - return ComponentVillageTrainstation.class; - } - @Override - public Object buildComponent(StructureVillagePieces.PieceWeight villagePiece, - StructureVillagePieces.Start startPiece, List pieces, Random random, - int p1, int p2, int p3, int p4, int p5) { - return ComponentVillageTrainstation.buildComponent(startPiece, pieces, random, p1, p2, p3, p4, p5); - } } diff --git a/src/main/java/train/common/core/handlers/WorldEvents.java b/src/main/java/train/common/core/handlers/WorldEvents.java index 72c8b9cd53..8c039c335b 100644 --- a/src/main/java/train/common/core/handlers/WorldEvents.java +++ b/src/main/java/train/common/core/handlers/WorldEvents.java @@ -14,75 +14,75 @@ import java.util.Random; -public class WorldEvents{ - private int windTicker = 0; - private static Random rand = new Random(); - public static int windStrength = 10 + rand.nextInt(10); +public class WorldEvents { + private int windTicker = 0; + private static final Random rand = new Random(); + public static int windStrength = 10 + rand.nextInt(10); - @SubscribeEvent - public void onWorldTick(TickEvent.WorldTickEvent handler){ - if(handler.world.isRemote){ - if(windTicker % 128 == 0){ - updateWind(); - windTicker=0; - } - windTicker++; - } - } + @SubscribeEvent + public void onWorldTick(TickEvent.WorldTickEvent handler) { + if (handler.world.isRemote) { + if (windTicker % 128 == 0) { + updateWind(); + windTicker = 0; + } + windTicker++; + } + } - private static void updateWind() { - int upChance = 10; - int downChance = 10; - if (windStrength > 20) { - upChance -= windStrength - 20; - } - else if (windStrength < 10) { - downChance -= 10 - windStrength; - } - if (rand.nextInt(100) <= upChance) { - windStrength += 1; - } - if (rand.nextInt(100) <= downChance) { - windStrength -= 1; - } - } - - @SubscribeEvent - public void entitySpawn(EntityJoinWorldEvent event) { - if(event.entity instanceof EntityAnimal) { - ((EntityAnimal) event.entity).tasks.addTask(0, new EntityAIFearHorn(((EntityAnimal) event.entity))); - } - } + private static void updateWind() { + int upChance = 10; + int downChance = 10; + if (windStrength > 20) { + upChance -= windStrength - 20; + } else if (windStrength < 10) { + downChance -= 10 - windStrength; + } - @SubscribeEvent - @SuppressWarnings("unused") - public void playerQuitEvent(PlayerEvent.PlayerLoggedOutEvent event){ - if (event.player.ridingEntity instanceof AbstractTrains){ - if (event.player.ridingEntity instanceof Locomotive) { - ((Locomotive) event.player.ridingEntity).isBraking=true; - ((Locomotive) event.player.ridingEntity).parkingBrake=true; - } - event.player.dismountEntity(event.player.ridingEntity); - event.player.ridingEntity = null; - } - } + if (rand.nextInt(100) <= upChance) { + windStrength += 1; + } - @SubscribeEvent - public void chunkUnloadEvent(ChunkEvent.Unload event){ - for(Object o : event.getChunk().entityLists){ - if (o instanceof EntityJukeBoxCart && ((EntityJukeBoxCart) o).isPlaying){ - ((EntityJukeBoxCart) o).player.stop(); - ((EntityJukeBoxCart) o).player.setVolume(0); - } - } - } + if (rand.nextInt(100) <= downChance) { + windStrength -= 1; + } + } + + @SubscribeEvent + public void entitySpawn(EntityJoinWorldEvent event) { + if (event.entity instanceof EntityAnimal) { + ((EntityAnimal) event.entity).tasks.addTask(0, new EntityAIFearHorn(((EntityAnimal) event.entity))); + } + } + + @SubscribeEvent + public void playerQuitEvent(PlayerEvent.PlayerLoggedOutEvent event) { + if (event.player.ridingEntity instanceof AbstractTrains) { + if (event.player.ridingEntity instanceof Locomotive) { + ((Locomotive) event.player.ridingEntity).isBraking = true; + ((Locomotive) event.player.ridingEntity).parkingBrake = true; + } + + event.player.dismountEntity(event.player.ridingEntity); + event.player.ridingEntity = null; + } + } + + @SubscribeEvent + public void chunkUnloadEvent(ChunkEvent.Unload event) { + for (Object o : event.getChunk().entityLists) { + if (o instanceof EntityJukeBoxCart && ((EntityJukeBoxCart) o).isPlaying) { + ((EntityJukeBoxCart) o).player.stop(); + ((EntityJukeBoxCart) o).player.setVolume(0); + } + } + } + + @SubscribeEvent + public void EntityStruckByLightningEvent(EntityStruckByLightningEvent event) { + if (event.entity instanceof AbstractTrains) { + event.setCanceled(true); + } + } - @SubscribeEvent - @SuppressWarnings("unused") - public void EntityStruckByLightningEvent(EntityStruckByLightningEvent event) { - if (event.entity instanceof AbstractTrains){ - event.setCanceled(true); - } - } - } diff --git a/src/main/java/train/common/core/interfaces/IPlugin.java b/src/main/java/train/common/core/interfaces/IPlugin.java index 26644071a0..a8cdbeab66 100644 --- a/src/main/java/train/common/core/interfaces/IPlugin.java +++ b/src/main/java/train/common/core/interfaces/IPlugin.java @@ -2,9 +2,9 @@ public interface IPlugin { - public abstract boolean isAvailable(); + boolean isAvailable(); - public abstract void initialize(); + void initialize(); //public HashMap getItems(); } \ No newline at end of file diff --git a/src/main/java/train/common/core/interfaces/ITier.java b/src/main/java/train/common/core/interfaces/ITier.java index ffa578e920..54b939313a 100644 --- a/src/main/java/train/common/core/interfaces/ITier.java +++ b/src/main/java/train/common/core/interfaces/ITier.java @@ -1,6 +1,6 @@ /******************************************************************************* * Copyright (c) 2012 Mrbrutal. All rights reserved. - * + * * @name TrainCraft * @author Mrbrutal ******************************************************************************/ @@ -11,19 +11,19 @@ import java.util.List; -public abstract interface ITier { +public interface ITier { - public abstract int Tier(); + int Tier(); - public abstract List knownRecipes(); + List knownRecipes(); - public abstract int[] getSlotSelected(); + int[] getSlotSelected(); - public abstract void setSlotSelected(int[] selected); + void setSlotSelected(int[] selected); - public abstract List getResultList(); + List getResultList(); - public abstract String getGUIName(); + String getGUIName(); - public abstract String getGUITexture(); + String getGUITexture(); } diff --git a/src/main/java/train/common/core/managers/TierRecipe.java b/src/main/java/train/common/core/managers/TierRecipe.java index 535aa3e636..75996b4bfd 100644 --- a/src/main/java/train/common/core/managers/TierRecipe.java +++ b/src/main/java/train/common/core/managers/TierRecipe.java @@ -1,6 +1,6 @@ /******************************************************************************* * Copyright (c) 2012 Mrbrutal. All rights reserved. - * + * * @name TrainCraft * @author Mrbrutal ******************************************************************************/ @@ -17,88 +17,90 @@ public class TierRecipe implements ITierRecipe { - private final int tier; - private final ItemStack output; - private final int outputSize; - - private final ItemStack[] stacks; - - public TierRecipe(int tier, ItemStack planks, ItemStack wheels, - ItemStack frame, ItemStack coupler, ItemStack chimney, - ItemStack cab, ItemStack boiler, ItemStack firebox, - ItemStack additional, ItemStack dye, ItemStack output, - int outputSize) { - this.tier = tier; - this.output = output; - this.outputSize = outputSize; - - stacks = new ItemStack[] { - planks, - wheels, - frame, - coupler, - chimney, - cab, - boiler, - firebox, - additional, - dye, - }; - } - - @Override - public int getTier() { - return tier; - } - - @Override - public ItemStack getOutput() { - return output; - } - - @Override - public List getInput() { - return Arrays.asList(stacks); - } - - public ItemStack hasComponents(ItemStack... items) { - for (int i = 0; i < stacks.length; i++) { - if(!areItemsIdentical(items[i], stacks[i])) { - return null; - } - if(!areSizesIdentical(items[i], stacks[i])) { - return null; - } - } - return output; - } - - public static boolean areItemsIdentical(ItemStack inSlot, ItemStack inRecipe) { - if (inRecipe == null || inSlot == null) { - return inRecipe == inSlot; - } else { - if (Item.getIdFromItem(inSlot.getItem()) != Item.getIdFromItem(inRecipe.getItem())) { - return false; - } - if (inRecipe.getItemDamage() == OreDictionary.WILDCARD_VALUE) { - return true; - } - return inSlot.getItemDamage() == inRecipe.getItemDamage(); - } - } - - public static boolean areSizesIdentical(ItemStack inSlot, ItemStack inRecipe) { - if (inRecipe == null || inSlot == null) { - return inRecipe == inSlot; - } - return inSlot.stackSize >= inRecipe.stackSize; - } - - @Override - public int toDecrease(int slot) { - if (slot < stacks.length) { - return stacks[slot].stackSize; - } - return 0; - } + private final int tier; + private final ItemStack output; + + private final ItemStack[] stacks; + + public TierRecipe(int tier, ItemStack planks, ItemStack wheels, + ItemStack frame, ItemStack coupler, ItemStack chimney, + ItemStack cab, ItemStack boiler, ItemStack firebox, + ItemStack additional, ItemStack dye, ItemStack output, + int outputSize) { + this.tier = tier; + this.output = output; + + stacks = new ItemStack[]{ + planks, + wheels, + frame, + coupler, + chimney, + cab, + boiler, + firebox, + additional, + dye, + }; + } + + @Override + public int getTier() { + return tier; + } + + @Override + public ItemStack getOutput() { + return output; + } + + @Override + public List getInput() { + return Arrays.asList(stacks); + } + + public ItemStack hasComponents(ItemStack... items) { + for (int i = 0; i < stacks.length; i++) { + if (!areItemsIdentical(items[i], stacks[i])) { + return null; + } + if (!areSizesIdentical(items[i], stacks[i])) { + return null; + } + } + return output; + } + + public static boolean areItemsIdentical(ItemStack inSlot, ItemStack inRecipe) { + if (inRecipe == null || inSlot == null) { + return inRecipe == inSlot; + } else { + if (Item.getIdFromItem(inSlot.getItem()) != Item.getIdFromItem(inRecipe.getItem())) { + return false; + } + + if (inRecipe.getItemDamage() == OreDictionary.WILDCARD_VALUE) { + return true; + } + + return inSlot.getItemDamage() == inRecipe.getItemDamage(); + } + } + + public static boolean areSizesIdentical(ItemStack inSlot, ItemStack inRecipe) { + if (inRecipe == null || inSlot == null) { + return inRecipe == inSlot; + } + + return inSlot.stackSize >= inRecipe.stackSize; + } + + @Override + public int toDecrease(int slot) { + if (slot < stacks.length) { + return stacks[slot].stackSize; + } + + return 0; + } } diff --git a/src/main/java/train/common/core/managers/TierRecipeManager.java b/src/main/java/train/common/core/managers/TierRecipeManager.java index 00e75a4c55..273ae6c263 100644 --- a/src/main/java/train/common/core/managers/TierRecipeManager.java +++ b/src/main/java/train/common/core/managers/TierRecipeManager.java @@ -1,6 +1,6 @@ /******************************************************************************* * Copyright (c) 2012 Mrbrutal. All rights reserved. - * + * * @name TrainCraft * @author Mrbrutal ******************************************************************************/ @@ -17,70 +17,72 @@ public class TierRecipeManager implements ITierCraftingManager { - private final List recipeList; - private static TierRecipeManager instance = new TierRecipeManager(); + private final List recipeList; + private static final TierRecipeManager instance = new TierRecipeManager(); - public TierRecipeManager() { - recipeList = new ArrayList(); - } + public TierRecipeManager() { + recipeList = new ArrayList<>(); + } - public static ITierCraftingManager getInstance() { - return instance; - } + public static ITierCraftingManager getInstance() { + return instance; + } - @Override - public void addRecipe(int tier, ItemStack planks, ItemStack wheels, - ItemStack frame, ItemStack coupler, ItemStack chimney, - ItemStack cab, ItemStack boiler, ItemStack firebox, - ItemStack additional, ItemStack dye, ItemStack output, - int outputSize) { - if ((tier > 0 && tier < 4) && outputSize > 0 && outputSize < 65) { - addRecipeFinal(tier, planks, wheels, frame, coupler, chimney, cab, - boiler, firebox, additional, dye, output, outputSize); - } else { - addRecipeFinal(1, planks, wheels, frame, coupler, chimney, cab, - boiler, firebox, additional, dye, output, 1); - } - } + @Override + public void addRecipe(int tier, ItemStack planks, ItemStack wheels, + ItemStack frame, ItemStack coupler, ItemStack chimney, + ItemStack cab, ItemStack boiler, ItemStack firebox, + ItemStack additional, ItemStack dye, ItemStack output, + int outputSize) { + if ((tier > 0 && tier < 4) && outputSize > 0 && outputSize < 65) { + addRecipeFinal(tier, planks, wheels, frame, coupler, chimney, cab, + boiler, firebox, additional, dye, output, outputSize); + } else { + addRecipeFinal(1, planks, wheels, frame, coupler, chimney, cab, + boiler, firebox, additional, dye, output, 1); + } + } - public void addRecipeFinal(int tier, ItemStack planks, ItemStack wheels, - ItemStack frame, ItemStack coupler, ItemStack chimney, - ItemStack cab, ItemStack boiler, ItemStack firebox, - ItemStack additional, ItemStack dye, ItemStack output, - int outputSize) { - recipeList.add(new TierRecipe(tier, planks, wheels, frame, coupler, - chimney, cab, boiler, firebox, additional, dye, output, - outputSize)); - } + public void addRecipeFinal(int tier, ItemStack planks, ItemStack wheels, + ItemStack frame, ItemStack coupler, ItemStack chimney, + ItemStack cab, ItemStack boiler, ItemStack firebox, + ItemStack additional, ItemStack dye, ItemStack output, + int outputSize) { + recipeList.add(new TierRecipe(tier, planks, wheels, frame, coupler, + chimney, cab, boiler, firebox, additional, dye, output, + outputSize)); + } - @Override - public ITierRecipe getTierRecipe(int tier, ItemStack output) { - if(output == null) { - return null; - } - for(ITierRecipe recipe: recipeList) { - if(Item.getIdFromItem(recipe.getOutput().getItem()) == Item.getIdFromItem(output.getItem()) && - recipe.getTier() == tier) { - return recipe; - } - } - return null; - } + @Override + public ITierRecipe getTierRecipe(int tier, ItemStack output) { + if (output == null) { + return null; + } - @Override - public List getRecipeList() { - return new ArrayList(this.recipeList); - } + for (ITierRecipe recipe : recipeList) { + if (Item.getIdFromItem(recipe.getOutput().getItem()) == Item.getIdFromItem(output.getItem()) && + recipe.getTier() == tier) { + return recipe; + } + } + return null; + } - @Override - public List getTierRecipeList(int tier) { - List list = new ArrayList(); - for (ITierRecipe recipe: recipeList) { - if (recipe.getTier() == tier) { - list.add(recipe); - } - } - return list; - } + @Override + public List getRecipeList() { + return new ArrayList<>(this.recipeList); + } + + @Override + public List getTierRecipeList(int tier) { + List list = new ArrayList<>(); + for (ITierRecipe recipe : recipeList) { + if (recipe.getTier() == tier) { + list.add(recipe); + } + } + + return list; + } } diff --git a/src/main/java/train/common/core/network/PacketDestination.java b/src/main/java/train/common/core/network/PacketDestination.java index 3ba0408d80..6071b70ba0 100644 --- a/src/main/java/train/common/core/network/PacketDestination.java +++ b/src/main/java/train/common/core/network/PacketDestination.java @@ -12,7 +12,8 @@ public class PacketDestination implements IMessage { public int entityID; public String destination; - public PacketDestination() {} + public PacketDestination() { + } public PacketDestination(Integer entityID, String destination) { this.entityID = entityID; @@ -33,14 +34,13 @@ public void toBytes(ByteBuf buf) { } public static class Handler implements IMessageHandler { - @Override public IMessage onMessage(PacketDestination message, MessageContext context) { - Entity TrainEntity = context.getServerHandler().playerEntity.worldObj.getEntityByID(message.entityID); if (TrainEntity instanceof Locomotive) { ((Locomotive) TrainEntity).destination = message.destination; } + return null; } } diff --git a/src/main/java/train/common/core/network/PacketHandler.java b/src/main/java/train/common/core/network/PacketHandler.java index 97662b6972..f96134f7cd 100644 --- a/src/main/java/train/common/core/network/PacketHandler.java +++ b/src/main/java/train/common/core/network/PacketHandler.java @@ -1,6 +1,6 @@ /******************************************************************************* * Copyright (c) 20getNetworkID()2 Mrbrutal. All rights reserved. - * + * * @name TrainCraft * @author Mrbrutal ******************************************************************************/ @@ -17,67 +17,58 @@ public class PacketHandler { - public static void init(){ - Traincraft.tcLog.info("Initialize Packets"); - Traincraft.modChannel = NetworkRegistry.INSTANCE.newSimpleChannel(Info.channel); - Traincraft.keyChannel = NetworkRegistry.INSTANCE.newSimpleChannel(Info.keyChannel); - Traincraft.rotationChannel = NetworkRegistry.INSTANCE.newSimpleChannel(Info.rotationChannel); + public static void init() { + Traincraft.tcLog.info("Initialize Packets"); + Traincraft.modChannel = NetworkRegistry.INSTANCE.newSimpleChannel(Info.channel); + Traincraft.keyChannel = NetworkRegistry.INSTANCE.newSimpleChannel(Info.keyChannel); + Traincraft.rotationChannel = NetworkRegistry.INSTANCE.newSimpleChannel(Info.rotationChannel); + Traincraft.slotschannel = NetworkRegistry.INSTANCE.newSimpleChannel("slots"); + Traincraft.ignitionChannel = NetworkRegistry.INSTANCE.newSimpleChannel("ignition"); + Traincraft.brakeChannel = NetworkRegistry.INSTANCE.newSimpleChannel("brake"); + Traincraft.lockChannel = NetworkRegistry.INSTANCE.newSimpleChannel("lock"); + Traincraft.builderChannel = NetworkRegistry.INSTANCE.newSimpleChannel("builder"); - Traincraft.slotschannel = NetworkRegistry.INSTANCE.newSimpleChannel("slots"); - Traincraft.ignitionChannel = NetworkRegistry.INSTANCE.newSimpleChannel("ignition"); - Traincraft.brakeChannel = NetworkRegistry.INSTANCE.newSimpleChannel("brake"); - Traincraft.lockChannel = NetworkRegistry.INSTANCE.newSimpleChannel("lock"); - Traincraft.builderChannel = NetworkRegistry.INSTANCE.newSimpleChannel("builder"); + Traincraft.keyChannel.registerMessage(ItemAdminBook.PacketAdminBook.Handler.class, ItemAdminBook.PacketAdminBook.class, 4, Side.CLIENT); + Traincraft.keyChannel.registerMessage(ItemAdminBook.PacketAdminBookClient.Handler.class, ItemAdminBook.PacketAdminBookClient.class, 5, Side.SERVER); + Traincraft.keyChannel.registerMessage(PacketKeyPress.Handler.class, PacketKeyPress.class, 1, + Side.SERVER); + Traincraft.rotationChannel.registerMessage(PacketRollingStockRotation.Handler.class, + PacketRollingStockRotation.class, 2, Side.CLIENT); + Traincraft.modChannel.registerMessage(PacketSetJukeboxStreamingUrl.Handler.class, + PacketSetJukeboxStreamingUrl.class, 1, Side.SERVER); + Traincraft.slotschannel.registerMessage(PacketSlotsFilled.Handler.class, PacketSlotsFilled.class, + 3, Side.CLIENT); + Traincraft.brakeChannel.registerMessage(PacketParkingBrake.Handler.class, PacketParkingBrake.class, + 4, Side.SERVER); + Traincraft.lockChannel.registerMessage(PacketSetTrainLockedToClient.Handler.class, + PacketSetTrainLockedToClient.class, 5, Side.SERVER); + Traincraft.ignitionChannel.registerMessage(PacketSetLocoTurnedOn.Handler.class, PacketSetLocoTurnedOn.class, + 6, Side.SERVER); + Traincraft.modChannel.registerMessage(PacketLantern.Handler.class, PacketLantern.class, 7, + Side.SERVER); + Traincraft.builderChannel.registerMessage(PacketTrackBuilderHeight.Handler.class, + PacketTrackBuilderHeight.class, 8, Side.SERVER); + Traincraft.builderChannel.registerMessage(PacketTrackBuilderFollow.Handler.class, + PacketTrackBuilderFollow.class, 9, Side.SERVER); - - Traincraft.keyChannel.registerMessage(ItemAdminBook.PacketAdminBook.Handler.class, ItemAdminBook.PacketAdminBook.class, 4, Side.CLIENT); - Traincraft.keyChannel.registerMessage(ItemAdminBook.PacketAdminBookClient.Handler.class, ItemAdminBook.PacketAdminBookClient.class, 5, Side.SERVER); - - Traincraft.keyChannel.registerMessage(PacketKeyPress.Handler.class, PacketKeyPress.class, 1, - Side.SERVER); - Traincraft.rotationChannel.registerMessage(PacketRollingStockRotation.Handler.class, - PacketRollingStockRotation.class, 2, Side.CLIENT); - Traincraft.modChannel.registerMessage(PacketSetJukeboxStreamingUrl.Handler.class, - PacketSetJukeboxStreamingUrl.class, 1, Side.SERVER); - Traincraft.slotschannel.registerMessage(PacketSlotsFilled.Handler.class, PacketSlotsFilled.class, - 3, Side.CLIENT); - Traincraft.brakeChannel.registerMessage(PacketParkingBrake.Handler.class, PacketParkingBrake.class, - 4, Side.SERVER); - Traincraft.lockChannel.registerMessage(PacketSetTrainLockedToClient.Handler.class, - PacketSetTrainLockedToClient.class, 5, Side.SERVER); - Traincraft.ignitionChannel.registerMessage(PacketSetLocoTurnedOn.Handler.class, PacketSetLocoTurnedOn.class, - 6, Side.SERVER); - Traincraft.modChannel.registerMessage(PacketLantern.Handler.class, PacketLantern.class, 7, - Side.SERVER); - Traincraft.builderChannel.registerMessage(PacketTrackBuilderHeight.Handler.class, - PacketTrackBuilderHeight.class, 8, Side.SERVER); - Traincraft.builderChannel.registerMessage(PacketTrackBuilderFollow.Handler.class, - PacketTrackBuilderFollow.class, 9, Side.SERVER); - - //Traincraft.degActivateChannel.registerMessage(PacketDEGActivate.Handler.class, - // PacketDEGActivate.class, 10, Side.SERVER); - - /*Traincraft.degActivateChannel.registerMessage(PacketDEGActivate.Handler.class, - PacketDEGActivate.class, 10, Side.SERVER);*/ - - Traincraft.updateTrainIDChannel.registerMessage(PacketUpdateTrainID.Handler.class, PacketUpdateTrainID.class, 11, Side.SERVER); + Traincraft.updateTrainIDChannel.registerMessage(PacketUpdateTrainID.Handler.class, PacketUpdateTrainID.class, 11, Side.SERVER); Traincraft.updateDestinationChannel.registerMessage(PacketDestination.Handler.class, PacketDestination.class, 12, Side.SERVER); - Traincraft.itsChannel.registerMessage(PacketSetSpeedHandler.class, PacketSetSpeed.class, 200, Side.CLIENT); - Traincraft.itsChannel.registerMessage(PacketSetSpeedHandler.class, PacketSetSpeed.class, 212, Side.SERVER); + Traincraft.itsChannel.registerMessage(PacketSetSpeedHandler.class, PacketSetSpeed.class, 200, Side.CLIENT); + Traincraft.itsChannel.registerMessage(PacketSetSpeedHandler.class, PacketSetSpeed.class, 212, Side.SERVER); + + Traincraft.itnsChannel.registerMessage(PacketNextSpeedHandler.class, PacketNextSpeed.class, 211, Side.CLIENT); + Traincraft.mtlChannel.registerMessage(PacketMTCLevelUpdateHandler.class, PacketMTCLevelUpdate.class, 201, Side.SERVER); + Traincraft.msChannel.registerMessage(PacketMTChandler.class, PacketMTC.class, 202, Side.SERVER); + Traincraft.mscChannel.registerMessage(PacketMTChandler.class, PacketMTC.class, 203, Side.CLIENT); + Traincraft.atoChannel.registerMessage(PacketATOHandler.class, PacketATO.class, 205, Side.SERVER); + Traincraft.atoDoSlowDownChannel.registerMessage(PacketATODOSlowDownHandler.class, PacketATODoSlowDown.class, 206, Side.SERVER); + Traincraft.atoDoAccelChannel.registerMessage(PacketATODoAccelHandler.class, PacketDoAccel.class, 207, Side.SERVER); + Traincraft.atoSetStopPoint.registerMessage(PacketATOSetStopPointHandler.class, PacketATOSetStopPoint.class, 208, Side.CLIENT); + Traincraft.NCSlowDownChannel.registerMessage(PacketNCSlowDownHandler.class, PacketNCSlowDown.class, 209, Side.SERVER); - Traincraft.itnsChannel.registerMessage(PacketNextSpeedHandler.class, PacketNextSpeed.class, 211, Side.CLIENT); - Traincraft.mtlChannel.registerMessage(PacketMTCLevelUpdateHandler.class, PacketMTCLevelUpdate.class, 201, Side.SERVER); - Traincraft.msChannel.registerMessage(PacketMTChandler.class, PacketMTC.class, 202, Side.SERVER); - Traincraft.mscChannel.registerMessage(PacketMTChandler.class, PacketMTC.class, 203, Side.CLIENT); - Traincraft.atoChannel.registerMessage(PacketATOHandler.class, PacketATO.class, 205, Side.SERVER); - Traincraft.atoDoSlowDownChannel.registerMessage(PacketATODOSlowDownHandler.class, PacketATODoSlowDown.class, 206, Side.SERVER); - Traincraft.atoDoAccelChannel.registerMessage(PacketATODoAccelHandler.class, PacketDoAccel.class, 207, Side.SERVER); - Traincraft.atoSetStopPoint.registerMessage(PacketATOSetStopPointHandler.class, PacketATOSetStopPoint.class, 208, Side.CLIENT); - Traincraft.NCSlowDownChannel.registerMessage(PacketNCSlowDownHandler.class, PacketNCSlowDown.class, 209, Side.SERVER); - //Traincraft.ctChannel.registerMessage(PacketWMTCChannelTransmitHandler.class, PacketWMTCChannelTransmit.class, 210, Side.CLIENT); - Traincraft.gsfsChannel.registerMessage(PacketGetSomethingFromServerHandler.class, PacketGetSomethingFromServer.class, 213, Side.SERVER); - Traincraft.gsfsrChannel.registerMessage(PacketThingFromServerHandler.class, PacketThingFromServer.class, 214, Side.CLIENT); - } + Traincraft.gsfsChannel.registerMessage(PacketGetSomethingFromServerHandler.class, PacketGetSomethingFromServer.class, 213, Side.SERVER); + Traincraft.gsfsrChannel.registerMessage(PacketThingFromServerHandler.class, PacketThingFromServer.class, 214, Side.CLIENT); + } } diff --git a/src/main/java/train/common/core/network/PacketKeyPress.java b/src/main/java/train/common/core/network/PacketKeyPress.java index 0b0c21a4b4..cd5c430b9b 100644 --- a/src/main/java/train/common/core/network/PacketKeyPress.java +++ b/src/main/java/train/common/core/network/PacketKeyPress.java @@ -12,79 +12,62 @@ /** * Sent to the server when a key is pressed on the client.

- * + *

* Values and their meanings as adapted from old source code:
- * 7 = R
- * 4 = W
- * 5 = S
- * 8 = H
- * 9 = F
- * 0 = Y
- * 1 = A
- * 2 = X
- * 3 = D
- * 6 = C
- * 10 = B
+ * 7 = R
+ * 4 = W
+ * 5 = S
+ * 8 = H
+ * 9 = F
+ * 0 = Y
+ * 1 = A
+ * 2 = X
+ * 3 = D
+ * 6 = C
+ * 10 = B
*/ public class PacketKeyPress implements IMessage { - /** The key that was pressed. */ - int key; - - public PacketKeyPress() {} - - public PacketKeyPress(int key) { - - this.key = key; - } - - @Override - public void fromBytes(ByteBuf bbuf) { - - this.key = bbuf.readInt(); - } - - @Override - public void toBytes(ByteBuf bbuf) { - - bbuf.writeInt(this.key); - } - - public static class Handler implements IMessageHandler { - - @Override - public IMessage onMessage(PacketKeyPress message, MessageContext context) { - - Entity ridingEntity = context.getServerHandler().playerEntity.ridingEntity; - - /* "instanceof" is null-safe, but we check to avoid four unnecessary instanceof checks for when the value is null anyways. */ - if (ridingEntity != null) { - - if (ridingEntity instanceof Locomotive) { - - ((Locomotive) ridingEntity).keyHandlerFromPacket(message.key); - } - else if (ridingEntity instanceof EntityRollingStock) { - - ((EntityRollingStock) ridingEntity).keyHandlerFromPacket(message.key); - } - else if (ridingEntity instanceof AbstractZeppelin) { - - ((AbstractZeppelin) ridingEntity).pressKey(message.key); - } - else if (ridingEntity instanceof EntityRotativeDigger) { - - ((EntityRotativeDigger) ridingEntity).pressKey(message.key); - } - } - - /*if (message.key == 404){ - CommonProxy.debug = CommonProxy.debug; - if (Minecraft.getMinecraft().theWorld != null) { - System.out.println(Minecraft.getMinecraft().theWorld.isRemote); - } - }*/ - return null; - } - } + /** + * The key that was pressed. + */ + int key; + + public PacketKeyPress() { + } + + public PacketKeyPress(int key) { + this.key = key; + } + + @Override + public void fromBytes(ByteBuf bbuf) { + this.key = bbuf.readInt(); + } + + @Override + public void toBytes(ByteBuf bbuf) { + bbuf.writeInt(this.key); + } + + public static class Handler implements IMessageHandler { + @Override + public IMessage onMessage(PacketKeyPress message, MessageContext context) { + Entity ridingEntity = context.getServerHandler().playerEntity.ridingEntity; + + /* "instanceof" is null-safe, but we check to avoid four unnecessary instanceof checks for when the value is null anyways. */ + if (ridingEntity != null) { + if (ridingEntity instanceof Locomotive) { + ((Locomotive) ridingEntity).keyHandlerFromPacket(message.key); + } else if (ridingEntity instanceof EntityRollingStock) { + ((EntityRollingStock) ridingEntity).keyHandlerFromPacket(message.key); + } else if (ridingEntity instanceof AbstractZeppelin) { + ((AbstractZeppelin) ridingEntity).pressKey(message.key); + } else if (ridingEntity instanceof EntityRotativeDigger) { + ((EntityRotativeDigger) ridingEntity).pressKey(message.key); + } + } + return null; + } + } } \ No newline at end of file diff --git a/src/main/java/train/common/core/network/PacketLantern.java b/src/main/java/train/common/core/network/PacketLantern.java index c3664ecd4d..24b470b9c0 100644 --- a/src/main/java/train/common/core/network/PacketLantern.java +++ b/src/main/java/train/common/core/network/PacketLantern.java @@ -9,15 +9,18 @@ public class PacketLantern implements IMessage { - /** The key that was pressed. */ + /** + * The key that was pressed. + */ int color; int xPos; int yPos; int zPos; - public PacketLantern() {} - public PacketLantern(int color, int x, int y, int z) { + public PacketLantern() { + } + public PacketLantern(int color, int x, int y, int z) { this.color = color; this.xPos = x; this.yPos = y; @@ -26,7 +29,6 @@ public PacketLantern(int color, int x, int y, int z) { @Override public void fromBytes(ByteBuf bbuf) { - this.color = bbuf.readInt(); this.xPos = bbuf.readInt(); this.yPos = bbuf.readInt(); @@ -35,7 +37,6 @@ public void fromBytes(ByteBuf bbuf) { @Override public void toBytes(ByteBuf bbuf) { - bbuf.writeInt(this.color); bbuf.writeInt(this.xPos); bbuf.writeInt(this.yPos); @@ -43,21 +44,17 @@ public void toBytes(ByteBuf bbuf) { } public static class Handler implements IMessageHandler { - @Override public IMessage onMessage(PacketLantern message, MessageContext context) { - TileEntity lantern = context.getServerHandler().playerEntity.worldObj.getTileEntity(message.xPos, message.yPos, message.zPos); - /* "instanceof" is null-safe, but we check to avoid four unnecessary instanceof checks for when the value is null anyways. */ + /* "instanceof" is null-safe, but we check to avoid four unnecessary instanceof checks for when the value is null anyways. */ if (lantern != null) { - if (lantern instanceof TileLantern) { ((TileLantern) lantern).setColor(message.color); } } - return null; } } diff --git a/src/main/java/train/common/core/network/PacketParkingBrake.java b/src/main/java/train/common/core/network/PacketParkingBrake.java index a58ad9a757..6fa9cd30e8 100644 --- a/src/main/java/train/common/core/network/PacketParkingBrake.java +++ b/src/main/java/train/common/core/network/PacketParkingBrake.java @@ -10,45 +10,41 @@ public class PacketParkingBrake implements IMessage { - boolean ParkingBrake; - int entityID; - public PacketParkingBrake() {} + boolean ParkingBrake; + int entityID; - public PacketParkingBrake(boolean parking, int trainEntity) { - this.ParkingBrake = parking; - this.entityID = trainEntity; + public PacketParkingBrake() { + } + + public PacketParkingBrake(boolean parking, int trainEntity) { + this.ParkingBrake = parking; + this.entityID = trainEntity; } @Override public void fromBytes(ByteBuf bbuf) { - this.ParkingBrake = bbuf.readBoolean(); - this.entityID = bbuf.readInt(); + this.ParkingBrake = bbuf.readBoolean(); + this.entityID = bbuf.readInt(); } @Override public void toBytes(ByteBuf bbuf) { - bbuf.writeBoolean(this.ParkingBrake); - bbuf.writeInt(this.entityID); + bbuf.writeBoolean(this.ParkingBrake); + bbuf.writeInt(this.entityID); } public static class Handler implements IMessageHandler { - @Override public IMessage onMessage(PacketParkingBrake message, MessageContext context) { - - Entity TrainEntity = context.getServerHandler().playerEntity.worldObj.getEntityByID(message.entityID); - - if (TrainEntity instanceof Locomotive) { - - ((Locomotive) TrainEntity).setParkingBrakeFromPacket(message.ParkingBrake); - - } - - if (TrainEntity instanceof EntityRollingStock) { + Entity TrainEntity = context.getServerHandler().playerEntity.worldObj.getEntityByID(message.entityID); - ((EntityRollingStock) TrainEntity).isBraking = message.ParkingBrake; + if (TrainEntity instanceof Locomotive) { + ((Locomotive) TrainEntity).setParkingBrakeFromPacket(message.ParkingBrake); + } - } + if (TrainEntity instanceof EntityRollingStock) { + ((EntityRollingStock) TrainEntity).isBraking = message.ParkingBrake; + } return null; } diff --git a/src/main/java/train/common/core/network/PacketRollingStockRotation.java b/src/main/java/train/common/core/network/PacketRollingStockRotation.java index 8594065dea..0cbf4d8afb 100644 --- a/src/main/java/train/common/core/network/PacketRollingStockRotation.java +++ b/src/main/java/train/common/core/network/PacketRollingStockRotation.java @@ -10,73 +10,67 @@ /** * Sent to nearby clients to update the rotation of rolling stock.

- * + *

* Field names adapted from 1.6 Packet code. */ public class PacketRollingStockRotation implements IMessage { - int entityID; - int rotationYawServer; - int realRotation; - int anglePitch; - int posY; - boolean isInReverse; - - public PacketRollingStockRotation() {} - - public PacketRollingStockRotation(EntityRollingStock entity, int anglePitch) { - - this.entityID = entity.getEntityId(); - this.rotationYawServer = (int) entity.rotationYaw; // Don't even ASK ME why we do this. Probably an attempt to reduce Packet size, but at what cost of precision..? - this.realRotation = (int) entity.serverRealRotation; - this.anglePitch = anglePitch; - this.posY = Float.floatToIntBits((float) entity.posY); // improved accuracy with no usage increase - this.isInReverse = entity.isServerInReverse; - } - - @Override - public void fromBytes(ByteBuf bbuf) { - - this.entityID = bbuf.readInt(); - this.rotationYawServer = bbuf.readInt(); - this.realRotation = bbuf.readInt(); - this.anglePitch = bbuf.readInt(); - this.posY = bbuf.readInt(); - this.isInReverse = bbuf.readBoolean(); - } - - @Override - public void toBytes(ByteBuf bbuf) { - - bbuf.writeInt(this.entityID); - bbuf.writeInt(this.rotationYawServer); - bbuf.writeInt(this.realRotation); - bbuf.writeInt(this.anglePitch); - bbuf.writeInt(this.posY); - bbuf.writeBoolean(this.isInReverse); - } - - public static class Handler implements IMessageHandler { - - @Override - public IMessage onMessage(PacketRollingStockRotation message, MessageContext context) { - - Minecraft mc = Minecraft.getMinecraft(); - if(mc.theWorld != null){ - Entity entity = mc.theWorld.getEntityByID(message.entityID); - if (entity instanceof EntityRollingStock) { - - EntityRollingStock rollingStock = (EntityRollingStock) entity; - rollingStock.rotationYawClient = message.rotationYawServer; - rollingStock.rotationYawClientReal = message.realRotation; - rollingStock.anglePitchClient = message.anglePitch; - rollingStock.isClientInReverse = message.isInReverse; - rollingStock.setYFromServer(Float.intBitsToFloat(message.posY)); - } - - } - - return null; - } - } + int entityID; + int rotationYawServer; + int realRotation; + int anglePitch; + int posY; + boolean isInReverse; + + public PacketRollingStockRotation() { + } + + public PacketRollingStockRotation(EntityRollingStock entity, int anglePitch) { + this.entityID = entity.getEntityId(); + this.rotationYawServer = (int) entity.rotationYaw; // Don't even ASK ME why we do this. Probably an attempt to reduce Packet size, but at what cost of precision..? + this.realRotation = (int) entity.serverRealRotation; + this.anglePitch = anglePitch; + this.posY = Float.floatToIntBits((float) entity.posY); // improved accuracy with no usage increase + this.isInReverse = entity.isServerInReverse; + } + + @Override + public void fromBytes(ByteBuf bbuf) { + this.entityID = bbuf.readInt(); + this.rotationYawServer = bbuf.readInt(); + this.realRotation = bbuf.readInt(); + this.anglePitch = bbuf.readInt(); + this.posY = bbuf.readInt(); + this.isInReverse = bbuf.readBoolean(); + } + + @Override + public void toBytes(ByteBuf bbuf) { + bbuf.writeInt(this.entityID); + bbuf.writeInt(this.rotationYawServer); + bbuf.writeInt(this.realRotation); + bbuf.writeInt(this.anglePitch); + bbuf.writeInt(this.posY); + bbuf.writeBoolean(this.isInReverse); + } + + public static class Handler implements IMessageHandler { + @Override + public IMessage onMessage(PacketRollingStockRotation message, MessageContext context) { + Minecraft mc = Minecraft.getMinecraft(); + if (mc.theWorld != null) { + Entity entity = mc.theWorld.getEntityByID(message.entityID); + if (entity instanceof EntityRollingStock) { + EntityRollingStock rollingStock = (EntityRollingStock) entity; + rollingStock.rotationYawClient = message.rotationYawServer; + rollingStock.rotationYawClientReal = message.realRotation; + rollingStock.anglePitchClient = message.anglePitch; + rollingStock.isClientInReverse = message.isInReverse; + rollingStock.setYFromServer(Float.intBitsToFloat(message.posY)); + } + } + + return null; + } + } } \ No newline at end of file diff --git a/src/main/java/train/common/core/network/PacketSetJukeboxStreamingUrl.java b/src/main/java/train/common/core/network/PacketSetJukeboxStreamingUrl.java index 9a22c9ffa7..69303cecc9 100644 --- a/src/main/java/train/common/core/network/PacketSetJukeboxStreamingUrl.java +++ b/src/main/java/train/common/core/network/PacketSetJukeboxStreamingUrl.java @@ -10,7 +10,7 @@ /** * Sent to the server to set a Jukebox' music stream URL.

- * + *

* Note:
* The sent packet is handled so that the server directly applies the data.
* This might be considered bad, as the client's data remains unchecked for validity and such.
@@ -18,51 +18,52 @@ */ public class PacketSetJukeboxStreamingUrl implements IMessage { - /** The entity ID of the {@link EntityJukeBoxCart}. */ - int entityID; - /** True if the EntityJukeBoxCart should start playing, false if it should stop playing. */ - boolean setPlaying; - /** The URL of the music that shall be played. */ - String url; - - public PacketSetJukeboxStreamingUrl() {} - - public PacketSetJukeboxStreamingUrl(EntityJukeBoxCart jukeBoxCart, String url, boolean setPlaying) { - - this.entityID = jukeBoxCart.getEntityId(); - this.url = url; - this.setPlaying = setPlaying; - } - - @Override - public void fromBytes(ByteBuf bbuf) { - - this.entityID = bbuf.readInt(); - this.setPlaying = bbuf.readBoolean(); - this.url = ByteBufUtils.readUTF8String(bbuf); - } - - @Override - public void toBytes(ByteBuf bbuf) { - - bbuf.writeInt(this.entityID); - bbuf.writeBoolean(this.setPlaying); - ByteBufUtils.writeUTF8String(bbuf, this.url); - } - - public static class Handler implements IMessageHandler { - - @Override - public IMessage onMessage(PacketSetJukeboxStreamingUrl message, MessageContext context) { - - Entity entity = context.getServerHandler().playerEntity.worldObj.getEntityByID(message.entityID); - - if (entity instanceof EntityJukeBoxCart) { - - ((EntityJukeBoxCart) entity).recievePacket(message.url, message.setPlaying); - } - - return null; - } - } + /** + * The entity ID of the {@link EntityJukeBoxCart}. + */ + int entityID; + /** + * True if the EntityJukeBoxCart should start playing, false if it should stop playing. + */ + boolean setPlaying; + /** + * The URL of the music that shall be played. + */ + String url; + + public PacketSetJukeboxStreamingUrl() { + } + + public PacketSetJukeboxStreamingUrl(EntityJukeBoxCart jukeBoxCart, String url, boolean setPlaying) { + this.entityID = jukeBoxCart.getEntityId(); + this.url = url; + this.setPlaying = setPlaying; + } + + @Override + public void fromBytes(ByteBuf bbuf) { + this.entityID = bbuf.readInt(); + this.setPlaying = bbuf.readBoolean(); + this.url = ByteBufUtils.readUTF8String(bbuf); + } + + @Override + public void toBytes(ByteBuf bbuf) { + bbuf.writeInt(this.entityID); + bbuf.writeBoolean(this.setPlaying); + ByteBufUtils.writeUTF8String(bbuf, this.url); + } + + public static class Handler implements IMessageHandler { + @Override + public IMessage onMessage(PacketSetJukeboxStreamingUrl message, MessageContext context) { + Entity entity = context.getServerHandler().playerEntity.worldObj.getEntityByID(message.entityID); + + if (entity instanceof EntityJukeBoxCart) { + ((EntityJukeBoxCart) entity).recievePacket(message.url, message.setPlaying); + } + + return null; + } + } } \ No newline at end of file diff --git a/src/main/java/train/common/core/network/PacketSetLocoTurnedOn.java b/src/main/java/train/common/core/network/PacketSetLocoTurnedOn.java index c0c0367443..131a74d255 100644 --- a/src/main/java/train/common/core/network/PacketSetLocoTurnedOn.java +++ b/src/main/java/train/common/core/network/PacketSetLocoTurnedOn.java @@ -9,37 +9,35 @@ public class PacketSetLocoTurnedOn implements IMessage { - /** The key that was pressed. */ + /** + * The key that was pressed. + */ Boolean LocoOn; - public PacketSetLocoTurnedOn() {} - public PacketSetLocoTurnedOn(Boolean LocoOn) { + public PacketSetLocoTurnedOn() { + } + public PacketSetLocoTurnedOn(Boolean LocoOn) { this.LocoOn = LocoOn; } @Override public void fromBytes(ByteBuf bbuf) { - this.LocoOn = bbuf.readBoolean(); } @Override public void toBytes(ByteBuf bbuf) { - bbuf.writeBoolean(this.LocoOn); } public static class Handler implements IMessageHandler { - @Override public IMessage onMessage(PacketSetLocoTurnedOn message, MessageContext context) { - Entity TrainEntity = context.getServerHandler().playerEntity.ridingEntity; - /* "instanceof" is null-safe, but we check to avoid four unnecessary instanceof checks for when the value is null anyways. */ + /* "instanceof" is null-safe, but we check to avoid four unnecessary instanceof checks for when the value is null anyways. */ if (TrainEntity != null) { - if (TrainEntity instanceof Locomotive) { ((Locomotive) TrainEntity).setLocoTurnedOnFromPacket(message.LocoOn); } diff --git a/src/main/java/train/common/core/network/PacketSetTrainLockedToClient.java b/src/main/java/train/common/core/network/PacketSetTrainLockedToClient.java index 32a7447144..a4ebed9182 100644 --- a/src/main/java/train/common/core/network/PacketSetTrainLockedToClient.java +++ b/src/main/java/train/common/core/network/PacketSetTrainLockedToClient.java @@ -9,38 +9,36 @@ public class PacketSetTrainLockedToClient implements IMessage { - boolean bool; - int entityID; - public PacketSetTrainLockedToClient(){} + boolean bool; + int entityID; - public PacketSetTrainLockedToClient(boolean bool, int trainEntity) { + public PacketSetTrainLockedToClient() { + } + + public PacketSetTrainLockedToClient(boolean bool, int trainEntity) { this.bool = bool; - this.entityID = trainEntity; + this.entityID = trainEntity; } @Override public void fromBytes(ByteBuf bbuf) { this.bool = bbuf.readBoolean(); - this.entityID = bbuf.readInt(); + this.entityID = bbuf.readInt(); } @Override public void toBytes(ByteBuf bbuf) { bbuf.writeBoolean(this.bool); - bbuf.writeInt(this.entityID); + bbuf.writeInt(this.entityID); } public static class Handler implements IMessageHandler { - @Override public IMessage onMessage(PacketSetTrainLockedToClient message, MessageContext context) { - - Entity TrainEntity = context.getServerHandler().playerEntity.worldObj.getEntityByID(message.entityID); + Entity TrainEntity = context.getServerHandler().playerEntity.worldObj.getEntityByID(message.entityID); if (TrainEntity instanceof AbstractTrains) { - - ((AbstractTrains) TrainEntity).setTrainLockedFromPacket(message.bool); - + ((AbstractTrains) TrainEntity).setTrainLockedFromPacket(message.bool); } return null; diff --git a/src/main/java/train/common/core/network/PacketSlotsFilled.java b/src/main/java/train/common/core/network/PacketSlotsFilled.java index 7a0df06639..f7e893566c 100644 --- a/src/main/java/train/common/core/network/PacketSlotsFilled.java +++ b/src/main/java/train/common/core/network/PacketSlotsFilled.java @@ -13,47 +13,46 @@ */ public class PacketSlotsFilled implements IMessage { - /** The amount of slots filled. */ - int slotsFilled; - - /** The ID of the entity. */ - int entityID; - - public PacketSlotsFilled() {} - - public PacketSlotsFilled(Locomotive train, int slotsFilled) { - - this.slotsFilled = slotsFilled; - this.entityID = train.getEntityId(); - } - - @Override - public void fromBytes(ByteBuf bbuf) { - - this.slotsFilled = bbuf.readInt(); - this.entityID = bbuf.readInt(); - } - - @Override - public void toBytes(ByteBuf bbuf) { - - bbuf.writeInt(this.slotsFilled); - bbuf.writeInt(this.entityID); - } - - public static class Handler implements IMessageHandler { - - @Override - public IMessage onMessage(PacketSlotsFilled message, MessageContext context) { - - Entity entity = Minecraft.getMinecraft().theWorld.getEntityByID(message.entityID); - - if (entity instanceof Locomotive) { - - ((Locomotive) entity).recieveSlotsFilled(message.slotsFilled); - } - - return null; - } - } + /** + * The amount of slots filled. + */ + int slotsFilled; + + /** + * The ID of the entity. + */ + int entityID; + + public PacketSlotsFilled() { + } + + public PacketSlotsFilled(Locomotive train, int slotsFilled) { + this.slotsFilled = slotsFilled; + this.entityID = train.getEntityId(); + } + + @Override + public void fromBytes(ByteBuf bbuf) { + this.slotsFilled = bbuf.readInt(); + this.entityID = bbuf.readInt(); + } + + @Override + public void toBytes(ByteBuf bbuf) { + bbuf.writeInt(this.slotsFilled); + bbuf.writeInt(this.entityID); + } + + public static class Handler implements IMessageHandler { + @Override + public IMessage onMessage(PacketSlotsFilled message, MessageContext context) { + Entity entity = Minecraft.getMinecraft().theWorld.getEntityByID(message.entityID); + + if (entity instanceof Locomotive) { + ((Locomotive) entity).recieveSlotsFilled(message.slotsFilled); + } + + return null; + } + } } \ No newline at end of file diff --git a/src/main/java/train/common/core/network/PacketTrackBuilderFollow.java b/src/main/java/train/common/core/network/PacketTrackBuilderFollow.java index f40400c590..8b587559e1 100644 --- a/src/main/java/train/common/core/network/PacketTrackBuilderFollow.java +++ b/src/main/java/train/common/core/network/PacketTrackBuilderFollow.java @@ -9,51 +9,47 @@ public class PacketTrackBuilderFollow implements IMessage { - /** The key that was pressed. */ - public int set; - public int id; - - public PacketTrackBuilderFollow() { - } - - public PacketTrackBuilderFollow(int set, int id) { - this.set = set; - this.id = id; - } - - @Override - public void fromBytes(ByteBuf bbuf) { - - this.set = bbuf.readInt(); - this.id = bbuf.readInt(); - } - - @Override - public void toBytes(ByteBuf bbuf) { - - bbuf.writeInt(this.set); - bbuf.writeInt(id); - } - - public static class Handler implements IMessageHandler { - - @Override - public IMessage onMessage(PacketTrackBuilderFollow message, MessageContext context) { - Entity builderEntity = context.getServerHandler().playerEntity.worldObj.getEntityByID(message.id); - /* - * "instanceof" is null-safe, but we check to avoid four unnecessary instanceof checks - * for when the value is null anyways. - */ - if (builderEntity != null) { - - if (builderEntity instanceof EntityTracksBuilder) { - - ((EntityTracksBuilder) builderEntity).setFollowTracksFromPacket(message.set); - - } - } - - return null; - } - } + /** + * The key that was pressed. + */ + public int set; + public int id; + + public PacketTrackBuilderFollow() { + } + + public PacketTrackBuilderFollow(int set, int id) { + this.set = set; + this.id = id; + } + + @Override + public void fromBytes(ByteBuf bbuf) { + this.set = bbuf.readInt(); + this.id = bbuf.readInt(); + } + + @Override + public void toBytes(ByteBuf bbuf) { + bbuf.writeInt(this.set); + bbuf.writeInt(id); + } + + public static class Handler implements IMessageHandler { + @Override + public IMessage onMessage(PacketTrackBuilderFollow message, MessageContext context) { + Entity builderEntity = context.getServerHandler().playerEntity.worldObj.getEntityByID(message.id); + /* + * "instanceof" is null-safe, but we check to avoid four unnecessary instanceof checks + * for when the value is null anyways. + */ + if (builderEntity != null) { + if (builderEntity instanceof EntityTracksBuilder) { + ((EntityTracksBuilder) builderEntity).setFollowTracksFromPacket(message.set); + } + } + + return null; + } + } } \ No newline at end of file diff --git a/src/main/java/train/common/core/network/PacketTrackBuilderHeight.java b/src/main/java/train/common/core/network/PacketTrackBuilderHeight.java index d34f7d387d..d037b16f0c 100644 --- a/src/main/java/train/common/core/network/PacketTrackBuilderHeight.java +++ b/src/main/java/train/common/core/network/PacketTrackBuilderHeight.java @@ -9,10 +9,14 @@ public class PacketTrackBuilderHeight implements IMessage { - /** The key that was pressed. */ + /** + * The key that was pressed. + */ public int set; public int id; - public PacketTrackBuilderHeight() {} + + public PacketTrackBuilderHeight() { + } public PacketTrackBuilderHeight(int set, int id) { this.set = set; @@ -21,30 +25,24 @@ public PacketTrackBuilderHeight(int set, int id) { @Override public void fromBytes(ByteBuf bbuf) { - this.set = bbuf.readInt(); this.id = bbuf.readInt(); } @Override public void toBytes(ByteBuf bbuf) { - bbuf.writeInt(this.set); bbuf.writeInt(id); } public static class Handler implements IMessageHandler { - @Override public IMessage onMessage(PacketTrackBuilderHeight message, MessageContext context) { Entity builderEntity = context.getServerHandler().playerEntity.worldObj.getEntityByID(message.id); - /* "instanceof" is null-safe, but we check to avoid four unnecessary instanceof checks for when the value is null anyways. */ + /* "instanceof" is null-safe, but we check to avoid four unnecessary instanceof checks for when the value is null anyways. */ if (builderEntity != null) { - if (builderEntity instanceof EntityTracksBuilder) { - ((EntityTracksBuilder) builderEntity).setPlannedHeightFromPacket(message.set); - } } diff --git a/src/main/java/train/common/core/network/PacketUpdateTrainID.java b/src/main/java/train/common/core/network/PacketUpdateTrainID.java index e3a9d10908..ed9c1a88cd 100644 --- a/src/main/java/train/common/core/network/PacketUpdateTrainID.java +++ b/src/main/java/train/common/core/network/PacketUpdateTrainID.java @@ -12,14 +12,14 @@ public class PacketUpdateTrainID implements IMessage { public int entityID; public String trainID; - public PacketUpdateTrainID() {} + public PacketUpdateTrainID() { + } public PacketUpdateTrainID(Integer entityID, String trainID) { this.entityID = entityID; this.trainID = trainID; } - @Override public void fromBytes(ByteBuf buf) { this.entityID = buf.readInt(); @@ -33,10 +33,8 @@ public void toBytes(ByteBuf buf) { } public static class Handler implements IMessageHandler { - @Override public IMessage onMessage(PacketUpdateTrainID message, MessageContext context) { - Entity TrainEntity = context.getServerHandler().playerEntity.worldObj.getEntityByID(message.entityID); if (TrainEntity instanceof Locomotive) { ((Locomotive) TrainEntity).trainID = message.trainID; diff --git a/src/main/java/train/common/core/plugins/NEIAssemblyTableRecipePlugin.java b/src/main/java/train/common/core/plugins/NEIAssemblyTableRecipePlugin.java index bc549de347..152172ec96 100644 --- a/src/main/java/train/common/core/plugins/NEIAssemblyTableRecipePlugin.java +++ b/src/main/java/train/common/core/plugins/NEIAssemblyTableRecipePlugin.java @@ -23,70 +23,63 @@ import static codechicken.lib.gui.GuiDraw.*; public class NEIAssemblyTableRecipePlugin extends ShapedRecipeHandler { - private List recipeList = assemblyListCleaner(TierRecipeManager.getInstance().getRecipeList()); + private final List recipeList = assemblyListCleaner(TierRecipeManager.getInstance().getRecipeList()); private CachedShapedRecipe getShape(TierRecipe recipe) { CachedShapedRecipe shape = new CachedShapedRecipe(0, 0, null, recipe.getOutput()); - PositionedStack stack = null; + PositionedStack stack; if (recipe.getInput().get(0) != null) { stack = new PositionedStack(recipe.getInput().get(0), 20, 16); stack.setMaxSize(recipe.getInput().get(0).stackSize); shape.ingredients.add(stack); - stack = null; } + if (recipe.getInput().get(1) != null) { stack = new PositionedStack(recipe.getInput().get(1), 38, 82); stack.setMaxSize(recipe.getInput().get(1).stackSize); shape.ingredients.add(stack); - stack = null; } + if (recipe.getInput().get(2) != null) { stack = new PositionedStack(recipe.getInput().get(2), 74, 82); stack.setMaxSize(recipe.getInput().get(2).stackSize); shape.ingredients.add(stack); - stack = null; } + if (recipe.getInput().get(3) != null) { stack = new PositionedStack(recipe.getInput().get(3), 140, 82); stack.setMaxSize(recipe.getInput().get(3).stackSize); shape.ingredients.add(stack); - stack = null; } if (recipe.getInput().get(4) != null) { stack = new PositionedStack(recipe.getInput().get(4), 74, 16); stack.setMaxSize(recipe.getInput().get(4).stackSize); shape.ingredients.add(stack); - stack = null; } if (recipe.getInput().get(5) != null) { stack = new PositionedStack(recipe.getInput().get(5), 110, 16); stack.setMaxSize(recipe.getInput().get(5).stackSize); shape.ingredients.add(stack); - stack = null; } if (recipe.getInput().get(6) != null) { stack = new PositionedStack(recipe.getInput().get(6), 74, 50); stack.setMaxSize(recipe.getInput().get(6).stackSize); shape.ingredients.add(stack); - stack = null; } if (recipe.getInput().get(7) != null) { stack = new PositionedStack(recipe.getInput().get(7), 110, 50); stack.setMaxSize(recipe.getInput().get(7).stackSize); shape.ingredients.add(stack); - stack = null; } if (recipe.getInput().get(8) != null) { stack = new PositionedStack(recipe.getInput().get(8), 20, 50); stack.setMaxSize(recipe.getInput().get(8).stackSize); shape.ingredients.add(stack); - stack = null; } if (recipe.getInput().get(9) != null) { stack = new PositionedStack(recipe.getInput().get(9), 140, 16); stack.setMaxSize(recipe.getInput().get(9).stackSize); shape.ingredients.add(stack); - stack = null; } shape.result.relx = 87; @@ -145,7 +138,7 @@ public void computeVisuals() { /** * This will perform default cycling of ingredients, mulitItem capable * - * @return + * @return The cycled ingredients */ private int cycleTicks = 0; @@ -156,7 +149,7 @@ public List getCycledIngredients(int cycle, List list = OreDictionary.getOres(OreDictionary.getOreName(OreDictionary.getOreID(ingredients.get(itemIndex).item))); Random rand = new Random(cycle + System.currentTimeMillis()); if (cycleTicks % 15 == 0) { int stackSize = ingredients.get(itemIndex).item.stackSize; @@ -263,22 +256,17 @@ public void loadCraftingRecipes(String outputId, Object... results) { } } - public static List assemblyListCleaner(List recipeList) { - HashSet outputList = new HashSet(); - ArrayList cleanedList = new ArrayList(); - for (int i = 0; i < recipeList.size(); i++) { - //ItemStack output = ((TierRecipe) recipeList.get(i)).getOutput(); - int id=Item.getIdFromItem(((TierRecipe) recipeList.get(i)).getOutput().getItem()); - if (outputList != null) { - if (!outputList.contains(id)) { - cleanedList.add(recipeList.get(i)); - } - } - else { - cleanedList.add(recipeList.get(i)); - } - outputList.add(id); - } + public static List assemblyListCleaner(List recipeList) { + HashSet outputList = new HashSet<>(); + ArrayList cleanedList = new ArrayList<>(); + for (Object o : recipeList) { + //ItemStack output = ((TierRecipe) recipeList.get(i)).getOutput(); + int id = Item.getIdFromItem(((TierRecipe) o).getOutput().getItem()); + if (!outputList.contains(id)) { + cleanedList.add((TierRecipe) o); + } + outputList.add(id); + } return cleanedList; } } \ No newline at end of file diff --git a/src/main/java/train/common/core/plugins/NEIDistillationTowerRecipePlugin.java b/src/main/java/train/common/core/plugins/NEIDistillationTowerRecipePlugin.java index a5dfd3ddd4..a633847c73 100644 --- a/src/main/java/train/common/core/plugins/NEIDistillationTowerRecipePlugin.java +++ b/src/main/java/train/common/core/plugins/NEIDistillationTowerRecipePlugin.java @@ -28,220 +28,195 @@ import static codechicken.lib.gui.GuiDraw.changeTexture; import static codechicken.lib.gui.GuiDraw.drawTexturedModalRect; -public class NEIDistillationTowerRecipePlugin extends FurnaceRecipeHandler{ - public class SmeltingPair extends CachedRecipe - { - public SmeltingPair(ItemStack ingred, ItemStack result) - { +public class NEIDistillationTowerRecipePlugin extends FurnaceRecipeHandler { + public class SmeltingPair extends CachedRecipe { + public SmeltingPair(ItemStack ingred, ItemStack result) { ingred.stackSize = 1; this.ingred = new PositionedStack(ingred, 51, 13); this.result = null;//new PositionedStack(result, 118, 29); } + @Override - public PositionedStack getIngredient() - { - int cycle = cycleticks *(1/48); - if(ingred.item.getItemDamage() == -1) - { + public PositionedStack getIngredient() { + int cycle = cycleticks * (1 / 48); + if (ingred.item.getItemDamage() == -1) { PositionedStack stack = ingred.copy(); int maxDamage = 0; - do - { + do { maxDamage++; stack.item.setItemDamage(maxDamage); - } - while(stack.item != null); - + } while (stack.item != null); + stack.item.setItemDamage(cycle % maxDamage); return stack; } return ingred; } + @Override - public PositionedStack getResult() - { + public PositionedStack getResult() { return result; } + @Override - public PositionedStack getOtherStack() - { - return afuelsDistil.get((cycleticks*(1/48)) % afuelsDistil.size()).stack; + public PositionedStack getOtherStack() { + return afuelsDistil.get((cycleticks * (1 / 48)) % afuelsDistil.size()).stack; } + /** * Return extra items that are not directly involved in the ingredient->result relationship. Eg fuels. * Use this if you have more than one other stack + * * @return A list of positioned items. */ @Override - public List getOtherStacks() - { + public List getOtherStacks() { ArrayList stacks = new ArrayList(); - PositionedStack stack = afuelsDistil.get((cycleticks*(1/48)) % afuelsDistil.size()).stack; - PositionedStack stackPlastic = new PositionedStack(new ItemStack(ItemIDs.rawPlastic.item,1,-1), 111, 56); - if(stack != null) - stacks.add(stack); - if(stackPlastic != null) - stacks.add(stackPlastic); - + PositionedStack stack = afuelsDistil.get((cycleticks * (1 / 48)) % afuelsDistil.size()).stack; + PositionedStack stackPlastic = new PositionedStack(new ItemStack(ItemIDs.rawPlastic.item, 1, -1), 111, 56); + if (stack != null) stacks.add(stack); + stacks.add(stackPlastic); + return stacks; } - + PositionedStack ingred; PositionedStack result; } - @Override - public void loadTransferRects() - { + + @Override + public void loadTransferRects() { transferRects.add(new RecipeTransferRect(new Rectangle(74, 23, 24, 41), "tc distillation tower")); } - + @Override - public Class getGuiClass() - { + public Class getGuiClass() { return GuiDistil.class; } - + @Override - public String getRecipeName() - { + public String getRecipeName() { return "Distillation tower"; } @Override - public void loadCraftingRecipes(String outputId, Object... results) - { - if(outputId.equals("tc distillation tower") && getClass() == NEIDistillationTowerRecipePlugin.class)//don't want subclasses getting a hold of this + public void loadCraftingRecipes(String outputId, Object... results) { + if (outputId.equals("tc distillation tower") && getClass() == NEIDistillationTowerRecipePlugin.class)//don't want subclasses getting a hold of this { - HashMap recipes = (HashMap) DistilRecipes.smelting().getSmeltingList(); + HashMap recipes = (HashMap) DistilRecipes.smelting().getSmeltingList(); - for (Entry recipe : recipes.entrySet()) - { + for (Entry recipe : recipes.entrySet()) { ItemStack item = recipe.getValue(); - ItemStack ingredient = new ItemStack((recipe.getKey()), 1, -1); - if(ingredient!=null && ingredient.getItem() instanceof ItemBlockOreTC){ - ingredient.setItemDamage(1); - arecipes.add(new SmeltingPair(ingredient, item)); - ingredient.setItemDamage(2); - arecipes.add(new SmeltingPair(ingredient, item)); - }else{ - arecipes.add(new SmeltingPair(ingredient, item)); - } + ItemStack ingredient = new ItemStack((recipe.getKey()), 1, -1); + if (ingredient.getItem() instanceof ItemBlockOreTC) { + ingredient.setItemDamage(1); + arecipes.add(new SmeltingPair(ingredient, item)); + ingredient.setItemDamage(2); + arecipes.add(new SmeltingPair(ingredient, item)); + } else { + arecipes.add(new SmeltingPair(ingredient, item)); + } } - - } - else - { + + } else { super.loadCraftingRecipes(outputId, results); } } - + @Override - public void loadCraftingRecipes(ItemStack result) - { - HashMap recipes = (HashMap) DistilRecipes.smelting().getSmeltingList(); + public void loadCraftingRecipes(ItemStack result) { + HashMap recipes = (HashMap) DistilRecipes.smelting().getSmeltingList(); - for (Entry recipe : recipes.entrySet()) - { + for (Entry recipe : recipes.entrySet()) { ItemStack item = recipe.getValue(); - if(NEIServerUtils.areStacksSameType(item, result)) - { - ItemStack ingredient = new ItemStack((recipe.getKey()), 1, -1); - if(ingredient!=null && ingredient.getItem() instanceof ItemBlockOreTC){ - ingredient.setItemDamage(1); - arecipes.add(new SmeltingPair(ingredient, item)); - ingredient.setItemDamage(2); - arecipes.add(new SmeltingPair(ingredient, item)); - }else{ - arecipes.add(new SmeltingPair(ingredient, item)); - } + if (NEIServerUtils.areStacksSameType(item, result)) { + ItemStack ingredient = new ItemStack((recipe.getKey()), 1, -1); + if (ingredient.getItem() instanceof ItemBlockOreTC) { + ingredient.setItemDamage(1); + arecipes.add(new SmeltingPair(ingredient, item)); + ingredient.setItemDamage(2); + arecipes.add(new SmeltingPair(ingredient, item)); + } else { + arecipes.add(new SmeltingPair(ingredient, item)); + } } } - + } @Override - public void loadUsageRecipes(String inputId, Object... ingredients) - { - if(inputId.equals("fuel") && getClass() == NEIDistillationTowerRecipePlugin.class)//don't want subclasses getting a hold of this - { + public void loadUsageRecipes(String inputId, Object... ingredients) { + // Don't want subclasses getting a hold of this + if (inputId.equals("fuel") && getClass() == NEIDistillationTowerRecipePlugin.class){ loadCraftingRecipes("tc distillation tower"); - } - else - { + } else { super.loadUsageRecipes(inputId, ingredients); } } - + @Override - public void loadUsageRecipes(ItemStack ingredient) - { - HashMap recipes = (HashMap) DistilRecipes.smelting().getSmeltingList(); - - for (Entry recipe : recipes.entrySet()) - { + public void loadUsageRecipes(ItemStack ingredient) { + HashMap recipes = (HashMap) DistilRecipes.smelting().getSmeltingList(); + + for (Entry recipe : recipes.entrySet()) { ItemStack item = recipe.getValue(); - if (ingredient.getItem() == recipe.getKey()) - { - if(ingredient!=null && ingredient.getItem() instanceof ItemBlockOreTC){ - ingredient.setItemDamage(1); - arecipes.add(new SmeltingPair(ingredient, item)); - ingredient.setItemDamage(2); - arecipes.add(new SmeltingPair(ingredient, item)); - }else{ - arecipes.add(new SmeltingPair(ingredient, item)); - } + if (ingredient.getItem() == recipe.getKey()) { + if (ingredient.getItem() instanceof ItemBlockOreTC) { + ingredient.setItemDamage(1); + arecipes.add(new SmeltingPair(ingredient, item)); + ingredient.setItemDamage(2); + arecipes.add(new SmeltingPair(ingredient, item)); + } else { + arecipes.add(new SmeltingPair(ingredient, item)); + } } } - + } - + @Override - public String getGuiTexture() - { + public String getGuiTexture() { return "tc:textures/gui/gui_distillation_tower2.png"; } @Override - public void drawExtras(int recipe) - { + public void drawExtras(int recipe) { drawProgressBar(51, 32, 176, 0, 14, 14, 48, 7); drawProgressBar(74, 30, 176, 14, 31, 41, 48, 0); - if(recipe==5){//TODO this is very bad - drawProgressBar(140, 2, 197, 57, 18, 52, 70, 3); - }else{ - drawProgressBar(140, 2, 177, 57, 18, 52, 70, 3); + if (recipe == 5) {//TODO this is very bad + drawProgressBar(140, 2, 197, 57, 18, 52, 70, 3); + } else { + drawProgressBar(140, 2, 177, 57, 18, 52, 70, 3); } } - - public void drawBackground(int recipe) - { + + public void drawBackground(int recipe) { GL11.glColor4f(1, 1, 1, 1); changeTexture(getGuiTexture()); drawTexturedModalRect(0, 0, 5, 4, 166, 75); } - + @Override - public String getOverlayIdentifier() - { + public String getOverlayIdentifier() { return "tc distillation tower"; } + @Override - public int recipiesPerPage() - { - return 1; - } + public int recipiesPerPage() { + return 1; + } + public static ArrayList afuelsDistil; public static TreeSet efuelsDistil; + @Override - public TemplateRecipeHandler newInstance() - { - if(afuelsDistil == null) - findFuelsDistil(); + public TemplateRecipeHandler newInstance() { + if (afuelsDistil == null) findFuelsDistil(); return super.newInstance(); } - private static void removeFuelsDistil() - { - efuelsDistil = new TreeSet(); + + private static void removeFuelsDistil() { + efuelsDistil = new TreeSet<>(); efuelsDistil.add(Block.getIdFromBlock(Blocks.brown_mushroom)); efuelsDistil.add(Block.getIdFromBlock(Blocks.red_mushroom)); efuelsDistil.add(Block.getIdFromBlock(Blocks.standing_sign)); @@ -249,32 +224,27 @@ private static void removeFuelsDistil() efuelsDistil.add(Block.getIdFromBlock(Blocks.wooden_door)); efuelsDistil.add(Block.getIdFromBlock(Blocks.trapped_chest)); } - - private static void findFuelsDistil() - { - afuelsDistil = new ArrayList(); - for(ItemStack item : ItemList.items) - { - if(!efuelsDistil.contains(Item.getIdFromItem(item.getItem()))) - { + + private static void findFuelsDistil() { + afuelsDistil = new ArrayList<>(); + for (ItemStack item : ItemList.items) { + if (!efuelsDistil.contains(Item.getIdFromItem(item.getItem()))) { int burnTime = TileEntityFurnace.getItemBurnTime(item); - if(burnTime > 0) - afuelsDistil.add(new FuelPairDistil(item.copy(), burnTime)); + if (burnTime > 0) afuelsDistil.add(new FuelPairDistil(item.copy(), burnTime)); } } } - static - { + + static { removeFuelsDistil(); } - public static class FuelPairDistil - { - public FuelPairDistil(ItemStack ingred, int burnTime) - { + + public static class FuelPairDistil { + public FuelPairDistil(ItemStack ingred, int burnTime) { this.stack = new PositionedStack(ingred, 51, 49, false); this.burnTime = burnTime; } - + public PositionedStack stack; public int burnTime; } diff --git a/src/main/java/train/common/core/plugins/NEIOpenHearthFurnaceRecipePlugin.java b/src/main/java/train/common/core/plugins/NEIOpenHearthFurnaceRecipePlugin.java index a798082c9f..2f0941d556 100644 --- a/src/main/java/train/common/core/plugins/NEIOpenHearthFurnaceRecipePlugin.java +++ b/src/main/java/train/common/core/plugins/NEIOpenHearthFurnaceRecipePlugin.java @@ -18,188 +18,176 @@ import java.util.List; public class NEIOpenHearthFurnaceRecipePlugin extends ShapedRecipeHandler { - CachedShapedRecipe getShape(ItemStack ingredient1, ItemStack ingredient2, ItemStack result) { - CachedShapedRecipe shape = new CachedShapedRecipe(0, 0, null, result); - - if (ingredient1 != null) { - PositionedStack stack = new PositionedStack(ingredient1, 30, 6); - stack.setMaxSize(1); - shape.ingredients.add(stack); - stack = null; - } - if (ingredient2 != null) { - PositionedStack stack = new PositionedStack(ingredient2, 51, 6); - stack.setMaxSize(1); - shape.ingredients.add(stack); + CachedShapedRecipe getShape(ItemStack ingredient1, ItemStack ingredient2, ItemStack result) { + CachedShapedRecipe shape = new CachedShapedRecipe(0, 0, null, result); + + if (ingredient1 != null) { + PositionedStack stack = new PositionedStack(ingredient1, 30, 6); + stack.setMaxSize(1); + shape.ingredients.add(stack); } + if (ingredient2 != null) { + PositionedStack stack = new PositionedStack(ingredient2, 51, 6); + stack.setMaxSize(1); + shape.ingredients.add(stack); + } - shape.result.relx = 111; - shape.result.rely = 24; - return shape; - } - public class CachedShapedRecipe extends CachedRecipe - { + shape.result.relx = 111; + shape.result.rely = 24; + return shape; + } + + public class CachedShapedRecipe extends CachedRecipe { public ArrayList ingredients; public PositionedStack result; - - public CachedShapedRecipe(int width, int height, Object[] items, ItemStack out) - { + + public CachedShapedRecipe(int width, int height, Object[] items, ItemStack out) { result = new PositionedStack(out, 119, 24); ingredients = new ArrayList(); setIngredients(width, height, items); } - - public CachedShapedRecipe(ShapedRecipes recipe) - { + + public CachedShapedRecipe(ShapedRecipes recipe) { this(recipe.recipeWidth, recipe.recipeHeight, recipe.recipeItems, recipe.getRecipeOutput()); } - + /** - * @param width - * @param height - * @param items an ItemStack[] or ItemStack[][] + * @param width of the recipe + * @param height of the recipe + * @param items an ItemStack[] or ItemStack[][] */ - public void setIngredients(int width, int height, Object[] items) - { - for(int x = 0; x < width; x++) - { - for(int y = 0; y < height; y++) - { - if(items[y*width+x] == null) + public void setIngredients(int width, int height, Object[] items) { + for (int x = 0; x < width; x++) { + for (int y = 0; y < height; y++) { + if (items[y * width + x] == null) continue; - - PositionedStack stack = new PositionedStack(items[y*width+x], 25+x*18, 6+y*18, false); + + PositionedStack stack = new PositionedStack(items[y * width + x], 25 + x * 18, 6 + y * 18, false); stack.setMaxSize(1); ingredients.add(stack); } } } - + @Override - public List getIngredients() - { + public List getIngredients() { return getCycledIngredients(cycleticks / 20, ingredients); } - - public PositionedStack getResult() - { + + public PositionedStack getResult() { return result; } - - public void computeVisuals() - { - for(PositionedStack p : ingredients) + + public void computeVisuals() { + for (PositionedStack p : ingredients) p.generatePermutations(); - + result.generatePermutations(); } + @Override - public PositionedStack getOtherStack() { - return afuels.get((cycleticks / 48) % afuels.size()).stack; - } + public PositionedStack getOtherStack() { + return afuels.get((cycleticks / 48) % afuels.size()).stack; + } } - @Override - public Class getGuiClass() { - return GuiOpenHearthFurnace.class; - } - - @Override - public String getRecipeName() { - return "Open Hearth Furnace"; - } - - @Override - public void loadTransferRects() { - //transferRects.add(new RecipeTransferRect(new Rectangle(50, 23, 18, 18), "fuel")); - transferRects.add(new RecipeTransferRect(new Rectangle(74, 23, 24, 18), "open hearth furnace")); - } - - @Override - public void loadCraftingRecipes(String outputId, Object... results) { - if (outputId.equals("open hearth furnace") && getClass() == NEIOpenHearthFurnaceRecipePlugin.class) { - for (OpenHearthFurnaceRecipe recipe : TrainCraftingManager.instance.getHearthFurnaceRecipeList()) { - ItemStack[] items = recipe.getRecipe(); - ItemStack output = recipe.getCraftingResult(); - arecipes.add(getShape(items[0], items[1], output)); - } - } - else { - super.loadCraftingRecipes(outputId, results); - } - } - - @Override - public void loadCraftingRecipes(ItemStack result) { - for (OpenHearthFurnaceRecipe recipe : TrainCraftingManager.instance.getHearthFurnaceRecipeList()) { - ItemStack item = recipe.getCraftingResult(); - if (NEIServerUtils.areStacksSameType(item, result)) { - ItemStack[] items = recipe.getRecipe(); - arecipes.add(getShape(items[0], items[1], result)); - } - } - } + @Override + public Class getGuiClass() { + return GuiOpenHearthFurnace.class; + } - @Override - public void loadUsageRecipes(String inputId, Object... ingredients) { - if (inputId.equals("fuel") && getClass() == NEIOpenHearthFurnaceRecipePlugin.class) { - loadCraftingRecipes("open hearth furnace"); - } - else { - super.loadUsageRecipes(inputId, ingredients); - } - } - - @Override - public void loadUsageRecipes(ItemStack ingredient) { - for (OpenHearthFurnaceRecipe recipe : TrainCraftingManager.instance.getHearthFurnaceRecipeList()) { - ItemStack item = recipe.getCraftingResult(); - ItemStack[] items = recipe.getRecipe(); - if (ingredient.getItem() == items[0].getItem() || ingredient.getItem() == items[1].getItem()) { - arecipes.add(getShape(items[0], items[1], item)); - } - } - } + @Override + public String getRecipeName() { + return "Open Hearth Furnace"; + } + + @Override + public void loadTransferRects() { + //transferRects.add(new RecipeTransferRect(new Rectangle(50, 23, 18, 18), "fuel")); + transferRects.add(new RecipeTransferRect(new Rectangle(74, 23, 24, 18), "open hearth furnace")); + } - @Override - public String getGuiTexture() { - return "tc:textures/gui/gui_open_hearth_furnace.png"; - } + @Override + public void loadCraftingRecipes(String outputId, Object... results) { + if (outputId.equals("open hearth furnace") && getClass() == NEIOpenHearthFurnaceRecipePlugin.class) { + for (OpenHearthFurnaceRecipe recipe : TrainCraftingManager.instance.getHearthFurnaceRecipeList()) { + ItemStack[] items = recipe.getRecipe(); + ItemStack output = recipe.getCraftingResult(); + arecipes.add(getShape(items[0], items[1], output)); + } + } else { + super.loadCraftingRecipes(outputId, results); + } + } - public static class FuelPair { - public FuelPair(ItemStack ingred, int burnTime) { - this.stack = new PositionedStack(ingred, 42, 42, false); - this.burnTime = burnTime; - } + @Override + public void loadCraftingRecipes(ItemStack result) { + for (OpenHearthFurnaceRecipe recipe : TrainCraftingManager.instance.getHearthFurnaceRecipeList()) { + ItemStack item = recipe.getCraftingResult(); + if (NEIServerUtils.areStacksSameType(item, result)) { + ItemStack[] items = recipe.getRecipe(); + arecipes.add(getShape(items[0], items[1], result)); + } + } - public PositionedStack stack; - public int burnTime; - } + } - public static ArrayList afuels; + @Override + public void loadUsageRecipes(String inputId, Object... ingredients) { + if (inputId.equals("fuel") && getClass() == NEIOpenHearthFurnaceRecipePlugin.class) { + loadCraftingRecipes("open hearth furnace"); + } else { + super.loadUsageRecipes(inputId, ingredients); + } + } - @Override - public TemplateRecipeHandler newInstance() { - if (afuels == null) findFuels(); - return super.newInstance(); - } + @Override + public void loadUsageRecipes(ItemStack ingredient) { + for (OpenHearthFurnaceRecipe recipe : TrainCraftingManager.instance.getHearthFurnaceRecipeList()) { + ItemStack item = recipe.getCraftingResult(); + ItemStack[] items = recipe.getRecipe(); + if (ingredient.getItem() == items[0].getItem() || ingredient.getItem() == items[1].getItem()) { + arecipes.add(getShape(items[0], items[1], item)); + } + } + } - @Override - public void drawExtras(int recipe) { - drawProgressBar(51, 25, 176, 0, 14, 14, 48, 7); - drawProgressBar(31, 25, 176, 0, 14, 14, 48, 7); - drawProgressBar(74, 23, 176, 14, 24, 16, 48, 0); - } + @Override + public String getGuiTexture() { + return "tc:textures/gui/gui_open_hearth_furnace.png"; + } + public static class FuelPair { + public FuelPair(ItemStack ingred, int burnTime) { + this.stack = new PositionedStack(ingred, 42, 42, false); + this.burnTime = burnTime; + } - private static void findFuels() { - afuels = new ArrayList(); - for (ItemStack item : ItemList.items) { - int burnTime = TileEntityFurnace.getItemBurnTime(item); - if (burnTime > 0) afuels.add(new FuelPair(item.copy(), burnTime)); - } - } + public PositionedStack stack; + public int burnTime; + } + + public static ArrayList afuels; + + @Override + public TemplateRecipeHandler newInstance() { + if (afuels == null) findFuels(); + return super.newInstance(); + } + + @Override + public void drawExtras(int recipe) { + drawProgressBar(51, 25, 176, 0, 14, 14, 48, 7); + drawProgressBar(31, 25, 176, 0, 14, 14, 48, 7); + drawProgressBar(74, 23, 176, 14, 24, 16, 48, 0); + } - static { - } + + private static void findFuels() { + afuels = new ArrayList<>(); + for (ItemStack item : ItemList.items) { + int burnTime = TileEntityFurnace.getItemBurnTime(item); + if (burnTime > 0) afuels.add(new FuelPair(item.copy(), burnTime)); + } + } } diff --git a/src/main/java/train/common/core/plugins/NEITraincraftConfig.java b/src/main/java/train/common/core/plugins/NEITraincraftConfig.java index d454713c64..4683cb5688 100644 --- a/src/main/java/train/common/core/plugins/NEITraincraftConfig.java +++ b/src/main/java/train/common/core/plugins/NEITraincraftConfig.java @@ -7,9 +7,9 @@ public class NEITraincraftConfig implements IConfigureNEI { - @Override - public void loadConfig() { - if (!ConfigHandler.DISABLE_NEI_RECIPES) { + @Override + public void loadConfig() { + if (!ConfigHandler.DISABLE_NEI_RECIPES) { API.registerRecipeHandler(new NEITraincraftWorkbenchRecipePlugin()); API.registerUsageHandler(new NEITraincraftWorkbenchRecipePlugin()); API.registerRecipeHandler(new NEIAssemblyTableRecipePlugin()); @@ -19,15 +19,15 @@ public void loadConfig() { API.registerRecipeHandler(new NEIDistillationTowerRecipePlugin()); API.registerUsageHandler(new NEIDistillationTowerRecipePlugin()); } - } + } - @Override + @Override public String getName() { - return Info.modName; + return Info.modName; } @Override public String getVersion() { - return Info.modVersion; - } + return Info.modVersion; + } } \ No newline at end of file diff --git a/src/main/java/train/common/core/plugins/NEITraincraftWorkbenchRecipePlugin.java b/src/main/java/train/common/core/plugins/NEITraincraftWorkbenchRecipePlugin.java index 9cdba50137..7967f7ebe2 100644 --- a/src/main/java/train/common/core/plugins/NEITraincraftWorkbenchRecipePlugin.java +++ b/src/main/java/train/common/core/plugins/NEITraincraftWorkbenchRecipePlugin.java @@ -5,10 +5,12 @@ import codechicken.nei.recipe.ShapedRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.inventory.Container; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.ShapedRecipes; import net.minecraftforge.oredict.OreDictionary; import train.client.gui.GuiTrainCraftingBlock; +import train.common.core.interfaces.ITCRecipe; import train.common.inventory.TrainCraftingManager; import train.common.recipes.ShapedTrainRecipes; import train.common.recipes.ShapelessTrainRecipe; @@ -19,190 +21,178 @@ import java.util.Random; public class NEITraincraftWorkbenchRecipePlugin extends ShapedRecipeHandler { - private List recipeListWB = workbenchListCleaner(TrainCraftingManager.getInstance().getShapedRecipes()); - - private CachedShapedRecipe getShape(ShapedTrainRecipes recipe) { - CachedShapedRecipe shape = new CachedShapedRecipe(0, 0, null, recipe.getRecipeOutput()); - for (int x = 0; x < 3; x++) { - for (int y = 0; y < 3; y++) { - if (recipe.recipeItems[y * 3 + x] == null) { - continue; - } - PositionedStack stack = new PositionedStack(recipe.recipeItems[y * 3 + x], 25 + x * 18, 6 + y * 18); - stack.setMaxSize(1); - shape.ingredients.add(stack); - } - } - shape.result.relx = 119; - shape.result.rely = 25; - return shape; - } - - public class CachedShapedRecipe extends CachedRecipe { - public ArrayList ingredients; - public PositionedStack result; - - public CachedShapedRecipe(int width, int height, Object[] items, ItemStack out) { - result = new PositionedStack(out, 119, 24); - ingredients = new ArrayList(); - setIngredients(width, height, items); - } - - public CachedShapedRecipe(ShapedRecipes recipe) { - this(recipe.recipeWidth, recipe.recipeHeight, recipe.recipeItems, recipe.getRecipeOutput()); - } - - /** - * @param width - * @param height - * @param items - * an ItemStack[] or ItemStack[][] - */ - public void setIngredients(int width, int height, Object[] items) { - for (int x = 0; x < width; x++) { - for (int y = 0; y < height; y++) { - if (items[y * width + x] == null) continue; - - PositionedStack stack = new PositionedStack(items[y * width + x], 25 + x * 18, 6 + y * 18, false); - stack.setMaxSize(1); - ingredients.add(stack); - } - } - } - - @Override - public List getIngredients() { - return getCycledIngredients(cycleticks / 20, ingredients); - } - - public PositionedStack getResult() { - return result; - } - - public void computeVisuals() { - for (PositionedStack p : ingredients) - p.generatePermutations(); - - result.generatePermutations(); - } - - /** - * This will perform default cycling of ingredients, mulitItem capable - * - * @return - */ - private int cycleTicks = 0; - - @Override - public List getCycledIngredients(int cycle, List ingredients) { - cycleTicks++; - for (int itemIndex = 0; itemIndex < ingredients.size(); itemIndex++) { - - String oreName = OreDictionary.getOreName(OreDictionary.getOreID(ingredients.get(itemIndex).item)); - if (oreName.equals("ingotSteel") || oreName.equals("ingotIron") || oreName.equals("ingotCopper") || oreName.equals("dustPlastic") || oreName.equals("dustCoal")) { - ArrayList list = OreDictionary.getOres(OreDictionary.getOreName(OreDictionary.getOreID(ingredients.get(itemIndex).item))); - Random rand = new Random(cycle + System.currentTimeMillis()); - if (cycleTicks % 15 == 0) { - int stackSize = ingredients.get(itemIndex).item.stackSize; - ingredients.get(itemIndex).item = (ItemStack) list.get(Math.abs(rand.nextInt()) % list.size()); - ingredients.get(itemIndex).item.stackSize = stackSize; - } - } - else { - randomRenderPermutation(ingredients.get(itemIndex), cycle + itemIndex); - } - } - - return ingredients; - } - } - - @Override - public void loadCraftingRecipes(ItemStack result) { - for (ShapedTrainRecipes recipe : recipeListWB) { - if (NEIClientUtils.areStacksSameTypeCrafting(recipe.getRecipeOutput(), result)) { - this.arecipes.add(getShape(recipe)); - } - } - } - - @Override - public Class getGuiClass() { - return GuiTrainCraftingBlock.class; - } - - @Override - public String getRecipeName() { - return "Train Workbench"; - } - - @Override - public String getGuiTexture() { - return "tc:textures/gui/crafting_table.png"; - } - - @Override - public boolean hasOverlay(GuiContainer gui, Container container, int recipe) { - return false; - } - - @Override - public void loadTransferRects() { - transferRects.add(new RecipeTransferRect(new Rectangle(84, 23, 24, 18), "train workbench")); - } - - @Override - public void loadUsageRecipes(ItemStack ingredient) { - for (ShapedTrainRecipes recipe : recipeListWB) { - for (ItemStack source : recipe.recipeItems) { - if (NEIClientUtils.areStacksSameTypeCrafting(source, ingredient)) { - this.arecipes.add(getShape(recipe)); - break; - } - } - } - } - - @Override - public void loadCraftingRecipes(String outputId, Object... results) { - if (outputId.equals("train workbench") && getClass() == NEITraincraftWorkbenchRecipePlugin.class) { - for (ShapedTrainRecipes recipe : recipeListWB) { - this.arecipes.add(getShape(recipe)); - } - } - else { - super.loadCraftingRecipes(outputId, results); - } - } - - public static List workbenchListCleaner(List recipeList) { - ArrayList outputList = new ArrayList(); - ArrayList cleanedList = new ArrayList(); - for (int i = 0; i < recipeList.size(); i++) { - if (recipeList.get(i) instanceof ShapedTrainRecipes) { - if (outputList != null) { - if (!outputList.contains(((ShapedTrainRecipes) recipeList.get(i)).getRecipeOutput().getItem())) { - cleanedList.add(recipeList.get(i)); - } - } - else { - cleanedList.add(recipeList.get(i)); - } - outputList.add(((ShapedTrainRecipes) recipeList.get(i)).getRecipeOutput().getItem()); - } - if (recipeList.get(i) instanceof ShapelessTrainRecipe) { - - if (outputList != null) { - if (!outputList.contains(((ShapelessTrainRecipe) recipeList.get(i)).getRecipeOutput().getItem())) { - cleanedList.add(recipeList.get(i)); - } - } - else { - cleanedList.add(recipeList.get(i)); - } - outputList.add(((ShapelessTrainRecipe) recipeList.get(i)).getRecipeOutput().getItem()); - } - } - return cleanedList; - } + private final List recipeListWB = workbenchListCleaner(TrainCraftingManager.getInstance().getShapedRecipes()); + + private CachedShapedRecipe getShape(ShapedTrainRecipes recipe) { + CachedShapedRecipe shape = new CachedShapedRecipe(0, 0, null, recipe.getRecipeOutput()); + for (int x = 0; x < 3; x++) { + for (int y = 0; y < 3; y++) { + if (recipe.recipeItems[y * 3 + x] == null) { + continue; + } + PositionedStack stack = new PositionedStack(recipe.recipeItems[y * 3 + x], 25 + x * 18, 6 + y * 18); + stack.setMaxSize(1); + shape.ingredients.add(stack); + } + } + shape.result.relx = 119; + shape.result.rely = 25; + return shape; + } + + public class CachedShapedRecipe extends CachedRecipe { + public ArrayList ingredients; + public PositionedStack result; + + public CachedShapedRecipe(int width, int height, Object[] items, ItemStack out) { + result = new PositionedStack(out, 119, 24); + ingredients = new ArrayList(); + setIngredients(width, height, items); + } + + public CachedShapedRecipe(ShapedRecipes recipe) { + this(recipe.recipeWidth, recipe.recipeHeight, recipe.recipeItems, recipe.getRecipeOutput()); + } + + /** + * @param width + * @param height + * @param items an ItemStack[] or ItemStack[][] + */ + public void setIngredients(int width, int height, Object[] items) { + for (int x = 0; x < width; x++) { + for (int y = 0; y < height; y++) { + if (items[y * width + x] == null) continue; + + PositionedStack stack = new PositionedStack(items[y * width + x], 25 + x * 18, 6 + y * 18, false); + stack.setMaxSize(1); + ingredients.add(stack); + } + } + } + + @Override + public List getIngredients() { + return getCycledIngredients(cycleticks / 20, ingredients); + } + + public PositionedStack getResult() { + return result; + } + + public void computeVisuals() { + for (PositionedStack p : ingredients) + p.generatePermutations(); + + result.generatePermutations(); + } + + /** + * This will perform default cycling of ingredients, mulitItem capable + * + * @return + */ + private int cycleTicks = 0; + + @Override + public List getCycledIngredients(int cycle, List ingredients) { + cycleTicks++; + for (int itemIndex = 0; itemIndex < ingredients.size(); itemIndex++) { + + String oreName = OreDictionary.getOreName(OreDictionary.getOreID(ingredients.get(itemIndex).item)); + if (oreName.equals("ingotSteel") || oreName.equals("ingotIron") || oreName.equals("ingotCopper") || oreName.equals("dustPlastic") || oreName.equals("dustCoal")) { + ArrayList list = OreDictionary.getOres(OreDictionary.getOreName(OreDictionary.getOreID(ingredients.get(itemIndex).item))); + Random rand = new Random(cycle + System.currentTimeMillis()); + if (cycleTicks % 15 == 0) { + int stackSize = ingredients.get(itemIndex).item.stackSize; + ingredients.get(itemIndex).item = (ItemStack) list.get(Math.abs(rand.nextInt()) % list.size()); + ingredients.get(itemIndex).item.stackSize = stackSize; + } + } else { + randomRenderPermutation(ingredients.get(itemIndex), cycle + itemIndex); + } + } + + return ingredients; + } + } + + @Override + public void loadCraftingRecipes(ItemStack result) { + for (ITCRecipe recipe : recipeListWB) { + if (NEIClientUtils.areStacksSameTypeCrafting(recipe.getRecipeOutput(), result)) { + this.arecipes.add(getShape((ShapedTrainRecipes) recipe)); + } + } + } + + @Override + public Class getGuiClass() { + return GuiTrainCraftingBlock.class; + } + + @Override + public String getRecipeName() { + return "Train Workbench"; + } + + @Override + public String getGuiTexture() { + return "tc:textures/gui/crafting_table.png"; + } + + @Override + public boolean hasOverlay(GuiContainer gui, Container container, int recipe) { + return false; + } + + @Override + public void loadTransferRects() { + transferRects.add(new RecipeTransferRect(new Rectangle(84, 23, 24, 18), "train workbench")); + } + + @Override + public void loadUsageRecipes(ItemStack ingredient) { + for (ITCRecipe recipe : recipeListWB) { + for (ItemStack source : ((ShapedTrainRecipes) recipe).recipeItems) { + if (NEIClientUtils.areStacksSameTypeCrafting(source, ingredient)) { + this.arecipes.add(getShape((ShapedTrainRecipes) recipe)); + break; + } + } + } + } + + @Override + public void loadCraftingRecipes(String outputId, Object... results) { + if (outputId.equals("train workbench") && getClass() == NEITraincraftWorkbenchRecipePlugin.class) { + for (ITCRecipe recipe : recipeListWB) { + this.arecipes.add(getShape((ShapedTrainRecipes) recipe)); + } + } else { + super.loadCraftingRecipes(outputId, results); + } + } + + public static List workbenchListCleaner(List recipeList) { + List outputList = new ArrayList<>(); + List cleanedList = new ArrayList<>(); + + for (Object o : recipeList) { + if (o instanceof ShapedTrainRecipes) { + if (!outputList.contains(((ShapedTrainRecipes) o).getRecipeOutput().getItem())) { + cleanedList.add((ShapedTrainRecipes) o); + } + outputList.add(((ShapedTrainRecipes) o).getRecipeOutput().getItem()); + } + if (o instanceof ShapelessTrainRecipe) { + + if (!outputList.contains(((ShapelessTrainRecipe) o).getRecipeOutput().getItem())) { + cleanedList.add((ShapelessTrainRecipe) o); + } + outputList.add(((ShapelessTrainRecipe) o).getRecipeOutput().getItem()); + } + } + return cleanedList; + } } \ No newline at end of file diff --git a/src/main/java/train/common/core/plugins/PluginRailcraft.java b/src/main/java/train/common/core/plugins/PluginRailcraft.java index 4358e7c0d7..1a4f3a6237 100644 --- a/src/main/java/train/common/core/plugins/PluginRailcraft.java +++ b/src/main/java/train/common/core/plugins/PluginRailcraft.java @@ -15,50 +15,52 @@ public class PluginRailcraft { - public static void init(){ - registerRecipes(); - } + public static void init() { + registerRecipes(); + } - private static void registerRecipes(){ - for(Tracks track : Tracks.values()){ - if(track.crafting != null){ - GameRegistry.addRecipe(new ShapedOreRecipe(track.getOutput(), track.crafting)); - } - } - GameRegistry.addShapelessRecipe(Tracks.SNOWY_STEEL_TRACK.getOutput(), Tracks.STEEL_TRACK.getTrackSpec().getItem(1), Items.snowball); - GameRegistry.addShapelessRecipe(Tracks.SNOWY_COPPER_TRACK.getOutput(), Tracks.COPPER_TRACK.getTrackSpec().getItem(1), Items.snowball); - GameRegistry.addShapelessRecipe(Tracks.VANILLA_SNOWY_TRACK.getOutput(), Blocks.rail, Items.snowball); - ArrayList copper = OreDictionary.getOres("ingotCopper"); - if (copper != null && copper.size() >= 0) { - for(ItemStack aCopper : copper){ - RailcraftCraftingManager.rollingMachine.addRecipe(new ItemStack(ItemIDs.copperRail.item, 8), "XXX", " ", "XXX", 'X', aCopper); - } - } - ArrayList steel = OreDictionary.getOres("ingotSteel"); - if (steel != null && steel.size() >= 0) { - for(ItemStack aSteel : steel){ - RailcraftCraftingManager.rollingMachine.addRecipe(new ItemStack(ItemIDs.steelRail.item, 16), "XXX", " ", "XXX", 'X', aSteel); - } - } - } + private static void registerRecipes() { + for (Tracks track : Tracks.values()) { + if (track.crafting != null) { + GameRegistry.addRecipe(new ShapedOreRecipe(track.getOutput(), track.crafting)); + } + } + GameRegistry.addShapelessRecipe(Tracks.SNOWY_STEEL_TRACK.getOutput(), Tracks.STEEL_TRACK.getTrackSpec().getItem(1), Items.snowball); + GameRegistry.addShapelessRecipe(Tracks.SNOWY_COPPER_TRACK.getOutput(), Tracks.COPPER_TRACK.getTrackSpec().getItem(1), Items.snowball); + GameRegistry.addShapelessRecipe(Tracks.VANILLA_SNOWY_TRACK.getOutput(), Blocks.rail, Items.snowball); + ArrayList copper = OreDictionary.getOres("ingotCopper"); + if (copper != null) { + for (ItemStack aCopper : copper) { + RailcraftCraftingManager.rollingMachine.addRecipe(new ItemStack(ItemIDs.copperRail.item, 8), "XXX", " ", "XXX", 'X', aCopper); + } + } - public enum RailcraftParts{ - COKE("fuel.coke", 0), - INGOT_STEEL("ingot", 0), - RAIL_STANDARD("part.rail", 0), - RAIL_ADVANCED("part.rail", 1), - RAIL_WOOD("part.rail", 2), - RAIL_SPEED("part.rail", 3), - RAIL_REINFORCED("part.rail", 4), - RAILBED_WOOD("part.railbed", 0), - RAILBED_STONE("part.railbed", 1); + ArrayList steel = OreDictionary.getOres("ingotSteel"); + if (steel != null) { + for (ItemStack aSteel : steel) { + RailcraftCraftingManager.rollingMachine.addRecipe(new ItemStack(ItemIDs.steelRail.item, 16), "XXX", " ", "XXX", 'X', aSteel); + } + } + } - public ItemStack stack; - RailcraftParts(String itemName, int meta){ - this.stack = TraincraftUtil.getItemFromUnlocalizedName("Railcraft:" + itemName, meta); - } - } + public enum RailcraftParts { + COKE("fuel.coke", 0), + INGOT_STEEL("ingot", 0), + RAIL_STANDARD("part.rail", 0), + RAIL_ADVANCED("part.rail", 1), + RAIL_WOOD("part.rail", 2), + RAIL_SPEED("part.rail", 3), + RAIL_REINFORCED("part.rail", 4), + RAILBED_WOOD("part.railbed", 0), + RAILBED_STONE("part.railbed", 1); - // "fuel.coke", "part.ingot.steel", "part.rail.advanced", "part.rail.reinforced", "part.rail.speed", "part.rail.standard", "part.rail.wood", "part.railbed.stone", "part.railbed.wood" + public final ItemStack stack; + + RailcraftParts(String itemName, int meta) { + this.stack = TraincraftUtil.getItemFromUnlocalizedName("Railcraft:" + itemName, meta); + } + } + + // "fuel.coke", "part.ingot.steel", "part.rail.advanced", "part.rail.reinforced", "part.rail.speed", "part.rail.standard", "part.rail.wood", "part.railbed.stone", "part.railbed.wood" } \ No newline at end of file diff --git a/src/main/java/train/common/core/util/Energy.java b/src/main/java/train/common/core/util/Energy.java index 8059a1cffa..eedcaef7f3 100644 --- a/src/main/java/train/common/core/util/Energy.java +++ b/src/main/java/train/common/core/util/Energy.java @@ -12,73 +12,71 @@ import java.util.Arrays; public class Energy extends TileTraincraft implements IEnergyProvider { - public EnergyStorage energy = new EnergyStorage(3000,80); //core energy value the first value is max storage and the second is transfer max. - private ForgeDirection[] sides = new ForgeDirection[]{}; //defines supported sides + public EnergyStorage energy = new EnergyStorage(3000, 80); //core energy value the first value is max storage and the second is transfer max. + private ForgeDirection[] sides = new ForgeDirection[]{}; //defines supported sides - public Energy(int inventorySlots, String name, int maxEnergy, int maxTransfer){ - super(inventorySlots, name); - this.energy.setCapacity(maxEnergy); - this.energy.setMaxTransfer(maxTransfer); - } - public Energy(){} + public Energy(int inventorySlots, String name, int maxEnergy, int maxTransfer) { + super(inventorySlots, name); + this.energy.setCapacity(maxEnergy); + this.energy.setMaxTransfer(maxTransfer); + } - public void pushEnergy(World world, int x, int y, int z, EnergyStorage storage){ - for (ForgeDirection side : getSides()) { - TileEntity tile = world.getTileEntity(x + side.offsetX, y + side.offsetY, z + side.offsetZ); - if (tile != null && tile instanceof IEnergyReceiver && storage.getEnergyStored() > 0) { - if (((IEnergyReceiver) tile).canConnectEnergy(side.getOpposite())) { - int receive = ((IEnergyReceiver) tile).receiveEnergy(side.getOpposite(), Math.min(storage.getMaxExtract(), storage.getEnergyStored()), false); - storage.extractEnergy(receive, false); - } - } - } - } + public Energy() { + } + public void pushEnergy(World world, int x, int y, int z, EnergyStorage storage) { + for (ForgeDirection side : getSides()) { + TileEntity tile = world.getTileEntity(x + side.offsetX, y + side.offsetY, z + side.offsetZ); + if (tile instanceof IEnergyReceiver && storage.getEnergyStored() > 0) { + if (((IEnergyReceiver) tile).canConnectEnergy(side.getOpposite())) { + int receive = ((IEnergyReceiver) tile).receiveEnergy(side.getOpposite(), Math.min(storage.getMaxExtract(), storage.getEnergyStored()), false); + storage.extractEnergy(receive, false); + } + } + } + } - //Implemented parts from the diesel generator - @Override - public void readFromNBT(NBTTagCompound nbtTag, boolean forSyncing) { - super.readFromNBT(nbtTag, forSyncing); - this.energy.readFromNBT(nbtTag); - } + //Implemented parts from the diesel generator + @Override + public void readFromNBT(NBTTagCompound nbtTag, boolean forSyncing) { + super.readFromNBT(nbtTag, forSyncing); + this.energy.readFromNBT(nbtTag); + } - @Override - public NBTTagCompound writeToNBT(NBTTagCompound nbtTag, boolean forSyncing) { - super.writeToNBT(nbtTag, forSyncing); - this.energy.writeToNBT(nbtTag); - return nbtTag; - } + @Override + public NBTTagCompound writeToNBT(NBTTagCompound nbtTag, boolean forSyncing) { + super.writeToNBT(nbtTag, forSyncing); + this.energy.writeToNBT(nbtTag); + return nbtTag; + } - public void setSides(ForgeDirection[] listOfSides){ - this.sides = listOfSides; - } - public ForgeDirection[] getSides(){ - return this.sides; - } + public void setSides(ForgeDirection[] listOfSides) { + this.sides = listOfSides; + } - //RF Overrides - @Override - public boolean canConnectEnergy(ForgeDirection dir) { - if(Arrays.asList(sides).contains(dir)) { - return true; - } else { - return false; - } - } - @Override - public int extractEnergy(ForgeDirection dir, int amount, boolean simulate) { - return energy.extractEnergy(amount, simulate); - } - @Override - public int getEnergyStored(ForgeDirection dir) { - return energy.getEnergyStored(); - } - @Override - public int getMaxEnergyStored(ForgeDirection dir) { - return this.energy.getMaxEnergyStored(); - } + public ForgeDirection[] getSides() { + return this.sides; + } + //RF Overrides + @Override + public boolean canConnectEnergy(ForgeDirection dir) { + return Arrays.asList(sides).contains(dir); + } + @Override + public int extractEnergy(ForgeDirection dir, int amount, boolean simulate) { + return energy.extractEnergy(amount, simulate); + } + @Override + public int getEnergyStored(ForgeDirection dir) { + return energy.getEnergyStored(); + } + + @Override + public int getMaxEnergyStored(ForgeDirection dir) { + return this.energy.getMaxEnergyStored(); + } } diff --git a/src/main/java/train/common/core/util/MP3Player.java b/src/main/java/train/common/core/util/MP3Player.java index 948a2a02bb..80b6d3e261 100644 --- a/src/main/java/train/common/core/util/MP3Player.java +++ b/src/main/java/train/common/core/util/MP3Player.java @@ -1,7 +1,6 @@ package train.common.core.util; import javazoom.jl.player.advanced.AdvancedPlayer; -import javazoom.jl.player.advanced.PlaybackEvent; import javazoom.jl.player.advanced.PlaybackListener; import net.minecraft.world.World; import train.common.Traincraft; @@ -9,63 +8,51 @@ import java.net.URL; public class MP3Player extends PlaybackListener implements Runnable { - private String streamURL; - private AdvancedPlayer player; - private Thread pThread; - private int id; - private World world; - - public MP3Player(String mp3url, World w, int id) { - try { - world = w; - this.id = id; - streamURL = mp3url; - pThread = new Thread(this); - pThread.start(); - } catch (Exception e) { - e.printStackTrace(); - } - } - - @Override - public void run() { - try { - player = new AdvancedPlayer(new URL(streamURL).openStream()); - player.setPlayBackListener(this); - player.play(); - } catch (Exception e) {} - } - - public void stop() { - if ((player != null) && (isPlaying())) { - player.stop(); - } - } - - @Override - public void playbackStarted(PlaybackEvent evt) {} - - @Override - public void playbackFinished(PlaybackEvent evt) {} - - public boolean isPlaying() { - return pThread.isAlive(); - } - - public void setVolume(float f) - { - if (player != null) - { - player.setVolume(f * Traincraft.proxy.getJukeboxVolume()); - } - } - - public float getVolume() { - if (player != null) { - return player.getVolume(); - } - else { - return 0.0f; - } - } + private String streamURL; + private AdvancedPlayer player; + private Thread pThread; + + public MP3Player(String mp3url, World w, int id) { + try { + streamURL = mp3url; + pThread = new Thread(this); + pThread.start(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + @Override + public void run() { + try { + player = new AdvancedPlayer(new URL(streamURL).openStream()); + player.setPlayBackListener(this); + player.play(); + } catch (Exception ignored) { + } + } + + public void stop() { + if (player != null && isPlaying()) { + player.stop(); + } + } + + public boolean isPlaying() { + return pThread.isAlive(); + } + + public void setVolume(float f) { + if (player != null) { + player.setVolume(f * Traincraft.proxy.getJukeboxVolume()); + } + } + + public float getVolume() { + if (player != null) { + return player.getVolume(); + } else { + return 0.0f; + } + } } diff --git a/src/main/java/train/common/core/util/TraincraftUtil.java b/src/main/java/train/common/core/util/TraincraftUtil.java index 797e57ac5b..f03c783165 100644 --- a/src/main/java/train/common/core/util/TraincraftUtil.java +++ b/src/main/java/train/common/core/util/TraincraftUtil.java @@ -11,9 +11,9 @@ import train.common.api.Locomotive; -public class TraincraftUtil{ +public class TraincraftUtil { - public static boolean dev=false; + public static boolean dev = false; public static void println(Object... o) { if (dev) { @@ -26,137 +26,141 @@ public static void println(Object... o) { } } - public static Item getItemFromName(String name){ - if (Item.itemRegistry.containsKey(name)){ + public static Item getItemFromName(String name) { + if (Item.itemRegistry.containsKey(name)) { return (Item) Item.itemRegistry.getObject(name); } else { return null; } } - public static ItemStack getItemFromUnlocalizedName(String itemName, int meta){ + public static ItemStack getItemFromUnlocalizedName(String itemName, int meta) { Item item = getItemFromName(itemName); - if(item != null){ + if (item != null) { return new ItemStack(item, 1, meta); } return null; } - public static int getByteFromColor(String c){ - if(c.equals("Black")){ - return 0; - } else if (c.equals("Red")){ - return 1; - } else if(c.equals("Green")){ - return 2; - } else if(c.equals("Brown")){ - return 3; - } else if(c.equals("Blue")){ - return 4; - } else if(c.equals("Purple")){ - return 5; - } else if(c.equals("Cyan")){ - return 6; - } else if(c.equals("LightGrey")){ - return 7; - } else if(c.equals("Grey")){ - return 8; - } else if(c.equals("Magenta")){ - return 13; - } else if(c.equals("Lime")){ - return 10; - } else if(c.equals("Yellow")){ - return 11; - } else if(c.equals("LightBlue")){ - return 12; - } else if(c.equals("Pink")){ - return 9; - } else if(c.equals("Orange")){ - return 14; - } else if(c.equals("White")) { - return 15; - } else if (c.equals("Skin16")) { - return 16; - } else if (c.equals("Skin17")) { - return 17; - } else if (c.equals("Skin18")) { - return 18; - } else if (c.equals("Skin19")) { - return 19; - } else if (c.equals("Skin20")) { - return 20; - } else if (c.equals("Skin21")) { - return 21; - } else if (c.equals("Skin22")) { - return 22; - } else if (c.equals("Skin23")) { - return 23; - } else if (c.equals("Skin24")) { - return 24; - } else if (c.equals("Skin25")) { - return 25; - } else if (c.equals("Skin26")) { - return 26; - } else if (c.equals("Skin27")) { - return 27; - } else if (c.equals("Skin28")) { - return 28; - } else if (c.equals("Skin29")) { - return 29; - } else if (c.equals("Skin30")) { - return 30; - } else if(c.equals("Full")){ - return 101; - } else if (c.equals("Empty")){ - return 100; + public static int getByteFromColor(String c) { + switch (c) { + case "Black": + return 0; + case "Red": + return 1; + case "Green": + return 2; + case "Brown": + return 3; + case "Blue": + return 4; + case "Purple": + return 5; + case "Cyan": + return 6; + case "LightGrey": + return 7; + case "Grey": + return 8; + case "Magenta": + return 13; + case "Lime": + return 10; + case "Yellow": + return 11; + case "LightBlue": + return 12; + case "Pink": + return 9; + case "Orange": + return 14; + case "White": + return 15; + case "Skin16": + return 16; + case "Skin17": + return 17; + case "Skin18": + return 18; + case "Skin19": + return 19; + case "Skin20": + return 20; + case "Skin21": + return 21; + case "Skin22": + return 22; + case "Skin23": + return 23; + case "Skin24": + return 24; + case "Skin25": + return 25; + case "Skin26": + return 26; + case "Skin27": + return 27; + case "Skin28": + return 28; + case "Skin29": + return 29; + case "Skin30": + return 30; + case "Full": + return 101; + case "Empty": + return 100; } return 0; } - public static int[] getBytesFromColors(String[] c){ + public static int[] getBytesFromColors(String[] c) { int[] ret = new int[c.length]; - for(int i=0; i20 && rotationCos1 == 1){ - bogieX1-=pitchRads*2; - pitch-=pitchRads*1.2; + if (transport.anglePitchClient > 20 && rotationCos1 == 1) { + bogieX1 -= pitchRads * 2; + pitch -= (float) (pitchRads * 1.2); } - if(transport.anglePitchClient>20 && rotationSin1 == 1){ - bogieZ1-=pitchRads*2; - pitch-=pitchRads*1.2; + if (transport.anglePitchClient > 20 && rotationSin1 == 1) { + bogieZ1 -= pitchRads * 2; + pitch -= (float) (pitchRads * 1.2); } if (pitchRads == 0.0) { transport.riddenByEntity.setPosition(bogieX1, (transport.posY + transport.getMountedYOffset() + transport.riddenByEntity.getYOffset() + yOffset), bogieZ1); @@ -165,8 +169,9 @@ public static void updateRider(EntityRollingStock transport,double distance, dou transport.riddenByEntity.setPosition(bogieX1, pitch, bogieZ1); } } + public static float atan2f(double x, double z) { - float pi =-3.141592653f; + float pi = -3.141592653f; float multiplier = 1.0f; if (z < 0.0d) { @@ -187,16 +192,17 @@ public static float atan2f(double x, double z) { pi = 0.0f; } - double invDiv = 1.0D / (((z < x) ? x : z) * (1.0D / (ATAN2_SQRT - 1))); - return (atan2[(int)(x * invDiv) * ATAN2_SQRT + (int)(z * invDiv)] + pi) * multiplier; + double invDiv = 1.0D / ((Math.max(z, x)) * (1.0D / (ATAN2_SQRT - 1))); + return (atan2[(int) (x * invDiv) * ATAN2_SQRT + (int) (z * invDiv)] + pi) * multiplier; } - public static float atan2degreesf(double x, double y){ - return atan2f(x,y)*degreesF; + public static float atan2degreesf(double x, double y) { + return atan2f(x, y) * degreesF; } private static final int ATAN2_SQRT = (int) Math.sqrt(1024); private static final float[] atan2 = new float[1024]; + static { for (int i = 0; i < ATAN2_SQRT; i++) { for (int j = 0; j < ATAN2_SQRT; j++) { @@ -208,6 +214,6 @@ public static float atan2degreesf(double x, double y){ public static final float degreesF = (float) (180.0d / Math.PI); public static Vec3 func_514_g(double d, double d1, double d2) { - return Vec3.createVectorHelper(MathHelper.floor_double(d),MathHelper.floor_double(d1),MathHelper.floor_double(d2)); + return Vec3.createVectorHelper(MathHelper.floor_double(d), MathHelper.floor_double(d1), MathHelper.floor_double(d2)); } } diff --git a/src/main/java/train/common/entity/ai/EntityAIFearHorn.java b/src/main/java/train/common/entity/ai/EntityAIFearHorn.java index 5f5888beac..1d2be08e50 100644 --- a/src/main/java/train/common/entity/ai/EntityAIFearHorn.java +++ b/src/main/java/train/common/entity/ai/EntityAIFearHorn.java @@ -10,82 +10,73 @@ import net.minecraft.world.ChunkCache; import train.common.api.Locomotive; -public class EntityAIFearHorn extends EntityAIBase{ - - private EntityAnimal entity; +public class EntityAIFearHorn extends EntityAIBase { + private final EntityAnimal entity; private double randPosX; private double randPosY; private double randPosZ; - - public EntityAIFearHorn(EntityAnimal e) { - entity = e; + + public EntityAIFearHorn(EntityAnimal e) { + entity = e; this.setMutexBits(1); - } + } - @Override - public boolean shouldExecute() { - if(entity.getEntityToAttack() instanceof Locomotive) { - Entity loco = entity.getEntityToAttack(); - Vec3 posLoco = Vec3.createVectorHelper(loco.posX, loco.posY, loco.posZ); - entity.detachHome(); + @Override + public boolean shouldExecute() { + if (entity.getEntityToAttack() instanceof Locomotive) { + Entity loco = entity.getEntityToAttack(); + Vec3 posLoco = Vec3.createVectorHelper(loco.posX, loco.posY, loco.posZ); + entity.detachHome(); Vec3 vec3 = RandomPositionGenerator.findRandomTargetBlockAwayFrom(entity, 10, 8, posLoco); - if (vec3 == null) - { + if (vec3 == null) { return false; - } - else - { + } else { this.randPosX = vec3.xCoord; this.randPosY = vec3.yCoord; this.randPosZ = vec3.zCoord; - entity.setTarget(null); + entity.setTarget(null); return true; } - } - return false; - } - + } + return false; + } + /** * Execute a one shot task or start executing a continuous task */ - public void startExecuting() - { - tryMoveToXYZ(this.randPosX, this.randPosY, this.randPosZ, 2.0D); + public void startExecuting() { + tryMoveToXYZ(this.randPosX, this.randPosY, this.randPosZ, 2.0D); } /** * Returns whether an in-progress EntityAIBase should continue executing */ - public boolean continueExecuting() - { + public boolean continueExecuting() { return !this.entity.getNavigator().noPath(); } - + /** * Returns the path to the given coordinates */ - private PathEntity getPathToXYZ(double x, double y, double z) - { - return getEntityPathToXYZ(MathHelper.floor_double(x), (int)y, MathHelper.floor_double(z), - entity.getNavigator().getPathSearchRange(), false, false, false); + private PathEntity getPathToXYZ(double x, double y, double z) { + return getEntityPathToXYZ(MathHelper.floor_double(x), (int) y, MathHelper.floor_double(z), + entity.getNavigator().getPathSearchRange(), false, false, false); } /** * Try to find and set a path to XYZ. Returns true if successful. */ - private boolean tryMoveToXYZ(double x, double y, double z, double speed) - { - PathEntity pathentity = this.getPathToXYZ((double)MathHelper.floor_double(x), (double)((int)y), (double)MathHelper.floor_double(z)); + private boolean tryMoveToXYZ(double x, double y, double z, double speed) { + PathEntity pathentity = this.getPathToXYZ((double) MathHelper.floor_double(x), (double) ((int) y), (double) MathHelper.floor_double(z)); return entity.getNavigator().setPath(pathentity, speed); } - - private PathEntity getEntityPathToXYZ(int targetX, int targetY, int targetZ, float range, boolean canPassOpenDoor, boolean canPassClosedDoor, boolean canSwim) - { + + private PathEntity getEntityPathToXYZ(int targetX, int targetY, int targetZ, float range, boolean canPassOpenDoor, boolean canPassClosedDoor, boolean canSwim) { int x = MathHelper.floor_double(entity.posX); int y = MathHelper.floor_double(entity.posY); int z = MathHelper.floor_double(entity.posZ); - int r = (int)(range + 8.0F); + int r = (int) (range + 8.0F); int xmin = x - r; int ymin = y - r; int zmin = z - r; @@ -93,7 +84,6 @@ private PathEntity getEntityPathToXYZ(int targetX, int targetY, int targetZ, flo int ymax = y + r; int zmax = z + r; ChunkCache chunkcache = new ChunkCache(entity.worldObj, xmin, ymin, zmin, xmax, ymax, zmax, 0); - PathEntity pathentity = (new TCPathFinder(chunkcache, canPassOpenDoor, canPassClosedDoor, false, canSwim)).createEntityPathTo(entity, targetX, targetY, targetZ, range); - return pathentity; + return (new TCPathFinder(chunkcache, canPassOpenDoor, canPassClosedDoor, false, canSwim)).createEntityPathTo(entity, targetX, targetY, targetZ, range); } } diff --git a/src/main/java/train/common/entity/ai/TCPathFinder.java b/src/main/java/train/common/entity/ai/TCPathFinder.java index 196bf6536f..0e78a45a7e 100644 --- a/src/main/java/train/common/entity/ai/TCPathFinder.java +++ b/src/main/java/train/common/entity/ai/TCPathFinder.java @@ -11,55 +11,41 @@ import train.common.blocks.BlockTCRail; import train.common.blocks.BlockTCRailGag; -public class TCPathFinder extends PathFinder{ - - private boolean waterAllowed; - private boolean movementAllowed; - private boolean doorAllowed; - - public TCPathFinder(IBlockAccess worldMap, boolean isWoddenDoorAllowed, boolean isMovementBlockAllowed, - boolean isPathingInWater, boolean canEntityDrown) { - super(worldMap, isWoddenDoorAllowed, isMovementBlockAllowed, isPathingInWater, canEntityDrown); - waterAllowed = isPathingInWater; - movementAllowed = isMovementBlockAllowed; - doorAllowed = isWoddenDoorAllowed; - } +public class TCPathFinder extends PathFinder { + private final boolean waterAllowed; + private final boolean movementAllowed; + private final boolean doorAllowed; + + public TCPathFinder(IBlockAccess worldMap, boolean isWoddenDoorAllowed, boolean isMovementBlockAllowed, + boolean isPathingInWater, boolean canEntityDrown) { + super(worldMap, isWoddenDoorAllowed, isMovementBlockAllowed, isPathingInWater, canEntityDrown); + waterAllowed = isPathingInWater; + movementAllowed = isMovementBlockAllowed; + doorAllowed = isWoddenDoorAllowed; + } - @Override - public int getVerticalOffset(Entity entity, int x, int y, int z, PathPoint point) - { - return getVertical(entity, x, y, z, point, waterAllowed, movementAllowed, doorAllowed); + @Override + public int getVerticalOffset(Entity entity, int x, int y, int z, PathPoint point) { + return getVertical(entity, x, y, z, point, waterAllowed, movementAllowed, doorAllowed); } - public static int getVertical(Entity entity, int x, int y, int z, PathPoint point, boolean water, boolean movement, boolean door) - { + public static int getVertical(Entity entity, int x, int y, int z, PathPoint point, boolean water, boolean movement, boolean door) { boolean flag3 = false; - for (int i = x; i < x + point.xCoord; ++i) - { - for (int j = y; j < y + point.yCoord; ++j) - { - for (int k = z; k < z + point.zCoord; ++k) - { + for (int i = x; i < x + point.xCoord; ++i) { + for (int j = y; j < y + point.yCoord; ++j) { + for (int k = z; k < z + point.zCoord; ++k) { Block block = entity.worldObj.getBlock(i, j, k); - if (block.getMaterial() != Material.air && !(block instanceof BlockTCRail) && !(block instanceof BlockTCRailGag)) - { - if (block == Blocks.trapdoor) - { + if (block.getMaterial() != Material.air && !(block instanceof BlockTCRail) && !(block instanceof BlockTCRailGag)) { + if (block == Blocks.trapdoor) { flag3 = true; - } - else if (block != Blocks.flowing_water && block != Blocks.water) - { - if (!door && block == Blocks.wooden_door) - { + } else if (block != Blocks.flowing_water && block != Blocks.water) { + if (!door && block == Blocks.wooden_door) { return 0; } - } - else - { - if (water) - { + } else { + if (water) { return -1; } @@ -68,38 +54,30 @@ else if (block != Blocks.flowing_water && block != Blocks.water) int k1 = block.getRenderType(); - if (entity.worldObj.getBlock(i, j, k).getRenderType() == 9) - { + if (entity.worldObj.getBlock(i, j, k).getRenderType() == 9) { int j2 = MathHelper.floor_double(entity.posX); int l1 = MathHelper.floor_double(entity.posY); int i2 = MathHelper.floor_double(entity.posZ); - if (entity.worldObj.getBlock(j2, l1, i2).getRenderType() != 9 && entity.worldObj.getBlock(j2, l1 - 1, i2).getRenderType() != 9) - { + if (entity.worldObj.getBlock(j2, l1, i2).getRenderType() != 9 && entity.worldObj.getBlock(j2, l1 - 1, i2).getRenderType() != 9) { return -3; } - } - else if (!block.getBlocksMovement(entity.worldObj, i, j, k) && (!movement || block != Blocks.wooden_door)) - { - if (k1 == 11 || block == Blocks.fence_gate || k1 == 32) - { + } else if (!block.getBlocksMovement(entity.worldObj, i, j, k) && (!movement || block != Blocks.wooden_door)) { + if (k1 == 11 || block == Blocks.fence_gate || k1 == 32) { return -3; } - if (block == Blocks.trapdoor) - { + if (block == Blocks.trapdoor) { return -4; } Material material = block.getMaterial(); - if (material != Material.lava) - { + if (material != Material.lava) { return 0; } - if (!entity.handleLavaMovement()) - { + if (!entity.handleLavaMovement()) { return -2; } } @@ -107,7 +85,6 @@ else if (!block.getBlocksMovement(entity.worldObj, i, j, k) && (!movement || blo } } } - return flag3 ? 2 : 1; } } diff --git a/src/main/java/train/common/entity/digger/EntityRotativeDigger.java b/src/main/java/train/common/entity/digger/EntityRotativeDigger.java index 90b4ed4b2b..70addf869a 100644 --- a/src/main/java/train/common/entity/digger/EntityRotativeDigger.java +++ b/src/main/java/train/common/entity/digger/EntityRotativeDigger.java @@ -29,739 +29,739 @@ public class EntityRotativeDigger extends Entity implements IInventory { - public int start; - private ItemStack cargoItems[];// added - private ItemStack zeppInvent[]; - public int numCargoSlots; - public int numCargoSlots1; - public int numCargoSlots2; - public int inventorySize; - public int fuel; - public boolean idle; - public boolean altitude; - private static int KEY_ACC; - private static int KEY_DEC; - private static int KEY_TURNLEFT; - private static int KEY_TURNRIGHT; - private static int KEY_UP; - private static int KEY_DOWN; - private static int KEY_IDLE; - private static int KEY_INV; - private static int KEY_BOMB; - - public int boatCurrentDamage; - public int boatTimeSinceHit; - public int boatRockDirection; - private int field_9394_d; - private double field_9393_e; - private double field_9392_f; - private double field_9391_g; - private double field_9390_h; - private double field_9389_i; - private double field_9388_j; - private double field_9387_k; - private double field_9386_l; - - public float pitch = 0F; - public float roll = 0F; - public float pitchLimits = 0.75F; - /** passengers wheels */ - protected EntityRotativeWheel[] wheels; - - public EntityRotativeDigger(World world) { - super(world); - boatCurrentDamage = 0; - boatTimeSinceHit = 0; - boatRockDirection = 1; - preventEntitySpawning = true; - setSize(1.5F, 0.8F); - yOffset = height / 2.0F; - numCargoSlots = 3; - numCargoSlots1 = 3; - numCargoSlots2 = 3; - inventorySize = numCargoSlots + numCargoSlots2 + numCargoSlots1 + 5; - zeppInvent = new ItemStack[inventorySize]; - idle = false; - - /** - * Entities are always rendered even if out player's sight => no more flickering/disappearing - */ - if (ConfigHandler.FLICKERING) { - this.ignoreFrustumCheck = true; - } - stepHeight = 0.6F; - if (worldObj.isRemote) { - this.wheels = new EntityRotativeWheel[1]; - this.wheels[0] = new EntityRotativeWheel(this.worldObj, this, 0, 5.4D, 0, 0, 0.0D); - worldObj.spawnEntityInWorld(this.wheels[0]); - } - this.dataWatcher.addObject(20, new Integer(fuel)); - this.dataWatcher.addObject(21, new Integer(start)); - - } - - @Override - protected boolean canTriggerWalking() { - return false; - } - - @Override - protected void entityInit() {} - - @Override - public AxisAlignedBB getCollisionBox(Entity entity) { - return entity.boundingBox; - } - - @Override - public AxisAlignedBB getBoundingBox() { - return boundingBox; - } - - @Override - public boolean canBePushed() { - return false; - } - - @Override - public void applyEntityCollision(Entity entity) { - if ((entity instanceof EntityRotativeWheel)) - return; - if ((entity instanceof EntityPlayer)) - return; - - if (entity != entity.riddenByEntity) { - double var2 = entity.posX - this.posX; - double var4 = entity.posZ - this.posZ; - double var6 = MathHelper.abs_max(var2, var4); - - if (var6 >= 0.009999999776482582D) { - var6 = MathHelper.sqrt_double(var6); - var2 /= var6; - var4 /= var6; - double var8 = 1.0D / var6; - - if (var8 > 1.0D) { - var8 = 1.0D; - } - - var2 *= var8; - var4 *= var8; - var2 *= 0.05000000074505806D; - var4 *= 0.05000000074505806D; - var2 *= (1.0F - this.entityCollisionReduction); - var4 *= (1.0F - this.entityCollisionReduction); - this.addVelocity(-var2, 0.0D, -var4); - entity.addVelocity(var2, 0.0D, var4); - } - } - return; - } - - public EntityRotativeDigger(World world, double d, double d1, double d2) { - this(world); - setPosition(d, d1 + yOffset, d2); - motionX = 0.0D; - motionY = 0.0D; - motionZ = 0.0D; - prevPosX = d; - prevPosY = d1; - prevPosZ = d2; - } - - @Override - public double getMountedYOffset() { - return height * 0.0D - 0.30000001192092896D; - } - - @Override - public boolean attackEntityFrom(DamageSource damagesource, float i) { - if (worldObj.isRemote || isDead) { - return true; - } - boatRockDirection = -boatRockDirection; - boatTimeSinceHit = 10; - boatCurrentDamage += i * 10; - setBeenAttacked(); - if (boatCurrentDamage > 40) { - - //dropItemWithOffset(ItemIDs.minecartRotativeDigger.item.shiftedIndex, 1, 0.0F); - - setDead(); - } - return true; - } - - @Override - public void setDead() { - label0: for (int i = 0; i < getSizeInventory(); i++) { - ItemStack itemstack = getStackInSlot(i); - if (itemstack == null) { - continue; - } - float f = rand.nextFloat() * 0.8F + 0.1F; - float f1 = rand.nextFloat() * 0.8F + 0.1F; - float f2 = rand.nextFloat() * 0.8F + 0.1F; - do { - if (itemstack.stackSize <= 0) { - continue label0; - } - int k = rand.nextInt(21) + 10; - if (k > itemstack.stackSize) { - k = itemstack.stackSize; - } - - EntityItem entityitem = new EntityItem(worldObj, posX + f, posY + f1, posZ + f2, itemstack.splitStack(k)); - float f3 = 0.05F; - entityitem.motionX = (float) rand.nextGaussian() * f3; - entityitem.motionY = (float) rand.nextGaussian() * f3 + 0.2F; - entityitem.motionZ = (float) rand.nextGaussian() * f3; - worldObj.spawnEntityInWorld(entityitem); - } while (true); - } - if (wheels != null && wheels.length > 0) { - - for (int i = 0; i < wheels.length; i++) { - wheels[i].setDead(); - } - } - super.setDead(); - } - - public void pressKeyClient(int i) { - - Traincraft.keyChannel.sendToServer(new PacketKeyPress(i)); - } - - public void pressKey(int i) { - - if (i == 7 && riddenByEntity != null && riddenByEntity instanceof EntityPlayer) { - //TODO there is no GUI for it currently - //((EntityPlayer) riddenByEntity).openGui(Traincraft.instance, GuiIDs.DIGGER, worldObj, (int) this.posX, (int) this.posY, (int) this.posZ); - } - if (i == 9) { - if (start == 0) { - start = 1; - } - else { - start = 0; - } - - } - } - - @Override - @SideOnly(Side.CLIENT) - public void performHurtAnimation() { - boatRockDirection = -boatRockDirection; - boatTimeSinceHit = 10; - boatCurrentDamage += boatCurrentDamage * 10; - } - - @Override - public boolean canBeCollidedWith() { - return !isDead; - } - - @Override - @SideOnly(Side.CLIENT) - public void setPositionAndRotation2(double d, double d1, double d2, float f, float f1, int i) { - field_9393_e = d; - field_9392_f = d1; - field_9391_g = d2; - field_9390_h = f; - field_9389_i = f1; - field_9394_d = i + 4; - motionX = field_9388_j; - // motionY = field_9387_k; - motionZ = field_9386_l; - } - - @Override - @SideOnly(Side.CLIENT) - public void setVelocity(double d, double d1, double d2) { - field_9388_j = motionX = d; - // field_9387_k = motionY = d1; - field_9386_l = motionZ = d2; - } - - /** - * Used to setup the wheel - * - * @param x - * @param y - * @param z - * @return - */ - public Vec3 rotate(double x, double y, double z) { - - double cosYaw = Math.cos(this.getYaw() * 3.141593F / 180.0F); - double sinYaw = Math.sin(this.getYaw() * 3.141593F / 180.0F); - double cosPitch = Math.cos((this.getPitch()) * 3.141593F / 180.0F); - double sinPitch = Math.sin((this.getPitch()) * 3.141593F / 180.0F); - double cosRoll = Math.cos(0 * 3.141593F / 180.0F);// 0.01745 - double sinRoll = Math.sin(0 * 3.141593F / 180.0F);// 0 - - double newX = (-x * cosRoll - y * sinRoll) * cosYaw + ((-x * sinRoll + y * cosRoll) * 0 + z * 0.01745) * sinYaw; - double newY = -(((cosPitch - x) * -sinPitch)); - double newZ = (y * sinRoll - x * cosRoll) * sinYaw + ((-x * sinRoll + y * cosRoll) * 0 + z * 0.01745) * cosYaw; - - return Vec3.createVectorHelper(newX, newY, newZ); - } - - public float getYaw() { - return this.rotationYaw; - } - - public float getPitch() { - return this.pitch; - } - - public double speedXFromPitch(EntityPlayer player, double var3) { - return (-MathHelper.sin((rotationYaw + 90) / 180.0F * (float) Math.PI) * var3 * MathHelper.cos(player.rotationPitch / 180.0F * (float) Math.PI) * var3); - } - - public double speedZFromPitch(EntityPlayer player, double var3) { - return (MathHelper.cos((rotationYaw + 90) / 180.0F * (float) Math.PI) * var3 * MathHelper.cos(player.rotationPitch / 180.0F * (float) Math.PI) * var3); - } - - @Override - public void onUpdate() { - super.onUpdate(); - if (fuel > 0 && riddenByEntity instanceof EntityPlayer) { - EntityPlayer player = (EntityPlayer) riddenByEntity; - motionX = motionX + player.moveForward * speedXFromPitch(player, 0.2) * 0.1; - motionZ = motionZ + player.moveForward * speedZFromPitch(player, 0.2) * 0.1; - rotationYaw += player.moveStrafing * .5; - } - - if (riddenByEntity == null) { - pitch = 0F; - } - - /** - * Handle the wheels mouvements - */ - if (wheels != null) { - for (int seatNum = 0; seatNum < wheels.length; seatNum++) { - Vec3 posVec = this.rotate(wheels[seatNum].seatX, wheels[seatNum].seatY, wheels[seatNum].seatZ).addVector(this.posX, this.posY + 0.7, this.posZ); - //wheels[seatNum].setPosition(posVec.xCoord, posVec.yCoord, posVec.zCoord); - - wheels[seatNum].setPositionAndRotation(posVec.xCoord, posVec.yCoord, posVec.zCoord, this.rotationYaw, pitch); - } - } - - //It hasn't any GUI for now - /*if (fuel <= 0) { if (zeppInvent[0] != null && zeppInvent[0].itemID == ItemIDs.refinedFuel.item.shiftedIndex) { fuel = ConfigHandler2.ZeppelinCoal; this.dataWatcher.updateObject(20, fuel); decrStackSize(0, 1); } } */ - - if (boatTimeSinceHit > 0) { - boatTimeSinceHit--; - } - if (boatCurrentDamage > 0) { - boatCurrentDamage--; - } - - prevPosX = posX; - prevPosY = posY; - prevPosZ = posZ; - int i = 5; - double d = 0.0D; - for (int j = 0; j < i; j++) { - double d4 = (boundingBox.minY + ((boundingBox.maxY - boundingBox.minY) * (j + 0)) / i) - 0.125D; - double d8 = (boundingBox.minY + ((boundingBox.maxY - boundingBox.minY) * (j + 1)) / i) - 0.125D; - AxisAlignedBB axisalignedbb = AxisAlignedBB.getBoundingBox(boundingBox.minX, d4, boundingBox.minZ, boundingBox.maxX, d8, boundingBox.maxZ); - if (worldObj.isAABBInMaterial(axisalignedbb, Material.water)) { - d += 1.0D / i; - } - } - - double d11 = Math.sqrt(motionX * motionX + motionZ * motionZ); - if (getFuel() > 0) { - // if(d11 > 0.14999999999999999D) - // { - double d13 = Math.cos((rotationYaw * 3.1415926535897931D) / 180D); - double d15 = Math.sin((rotationYaw * 3.1415926535897931D) / 180D); - - double d18 = rand.nextFloat() * 2.0F - 1.0F; - double d20 = (rand.nextInt(2) * 2 - 1) * 0.69999999999999996D; - if (rand.nextBoolean()) { - double d21 = (posX - d13 * d18 * 0.80000000000000004D) + d15 * d20; - double d23 = posZ - d15 * d18 * 0.80000000000000004D - d13 * d20; - // worldObj.spawnParticle("splash", d21, posY - 0.125D, d23, motionX, motionY, motionZ); - worldObj.spawnParticle("largesmoke", d21, posY - 0.125D, d23, motionX, motionY, motionZ); - } - else { - double d22 = posX + d13 + d15 * d18 * 0.69999999999999996D; - double d24 = (posZ + d15) - d13 * d18 * 0.69999999999999996D; - // worldObj.spawnParticle("splash", d22, posY - 0.125D, d24, motionX, motionY, motionZ); - worldObj.spawnParticle("largesmoke", d22, posY - 0.125D, d24, motionX, motionY, motionZ); - } - } - if (worldObj.isRemote) { - if (field_9394_d > 0) { - double d1 = posX + (field_9393_e - posX) / field_9394_d; - double d5 = posY + (field_9392_f - posY) / field_9394_d; - double d9 = posZ + (field_9391_g - posZ) / field_9394_d; - double d12; - for (d12 = field_9390_h - rotationYaw; d12 < -180D; d12 += 360D) { - } - for (; d12 >= 180D; d12 -= 360D) { - } - rotationYaw += d12 / field_9394_d; - rotationPitch += (field_9389_i - rotationPitch) / field_9394_d; - field_9394_d--; - setPosition(d1, d5, d9); - setRotation(rotationYaw, rotationPitch); - } - else { - double d2 = posX + motionX; - double d6 = posY + motionY; - double d10 = posZ + motionZ; - setPosition(d2, d6, d10); - if (onGround) { - - } - motionX *= 0.99000000953674316D; - // motionY *= 0.94999998807907104D; - motionZ *= 0.99000000953674316D; - } - return; - } - double d7 = 0.20000000000000002D; - if (motionX < -d7) { - motionX = -d7; - } - if (motionX > d7) { - motionX = d7; - } - if (motionZ < -d7) { - motionZ = -d7; - } - if (motionZ > d7) { - motionZ = d7; - } - if (onGround) { - } - if (rand.nextInt(4) == 0 && fuel > 0) { - fuel--; - this.dataWatcher.updateObject(20, fuel); - } - if (fuel <= 0) { - motionX *= 0.3; - motionZ *= 0.3; - } - //TODO This is what allows the entity to climb any height, a better system should be created... - if (this.isCollidedHorizontally) { - - motionY = 0.051; - } - else { - double d3 = d * 2D - 1.0D; - motionY += 0.039999999105930328D * d3; - } - - motionX *= 0.7400000953674316D; - motionY *= 0.94999998807907104D; - motionZ *= 0.7400000953674316D; - - moveEntity(motionX, motionY, motionZ); - - /* This is how the entity rotates with the look of the player */ - if (getFuel() > 0 && riddenByEntity != null && riddenByEntity instanceof EntityPlayer) { - Vec3 vecLook = ((EntityPlayer) riddenByEntity).getLook(2);// .addVector(posX, posY, posZ); - double da = rotationYaw; - double db = 0 - vecLook.xCoord; - double dc = 0 - vecLook.zCoord; - if (db * db + dc * dc > 0.0000001D) { - da = (float) ((Math.atan2(dc, db) * 180D) / 3.1415926535897931D); - } - - double d19; - for (d19 = da - (double) rotationYaw; d19 >= 180D; d19 -= 360D) { - } - for (; d19 < -180D; d19 += 360D) { - } - if (d19 > 20D) { - d19 = 20D; - } - if (d19 < 0 && d19 > 0) { - d19 = 0; - } - if (d19 > -0 && d19 < 0) { - d19 = 0; - } - if (d19 < -20D) { - d19 = -20D; - } - - double rot = rotationYaw; - - rot += d19 * 0.2; - - //deactivate this line for test purpose - setRotation((float) rot, rotationPitch); - } - - setRotation(rotationYaw, rotationPitch); - List list = worldObj.getEntitiesWithinAABBExcludingEntity(this, boundingBox.expand(0.20000000298023224D, 0.0D, 0.20000000298023224D)); - if (list != null && list.size() > 0) { - for (int j1 = 0; j1 < list.size(); j1++) { - Entity entity = (Entity) list.get(j1); - if (entity != riddenByEntity && entity.canBePushed() && !(entity instanceof EntityRotativeWheel)) { - entity.applyEntityCollision(this); - } - } - - } - if (riddenByEntity != null && riddenByEntity.isDead) { - riddenByEntity = null; - } - - if (Math.sqrt((motionX * motionX) + (motionZ * motionZ)) > 0.01) { - Vec3 pos = Vec3.createVectorHelper(posX, posY - 1, posZ); - Block id = worldObj.getBlock((int) posX, (int) posY - 1, (int) posZ); - if (id != null) { - this.playMiningEffect(pos, Block.getIdFromBlock(id)); - } - } - } - - /** - * Spawn breaking particles for blockparticles - * - * @param pos position - * @param block_index index of the block in mining list - */ - - private void playMiningEffect(Vec3 pos, int block_index) { - Block id = worldObj.getBlock((int) pos.xCoord, (int) pos.yCoord, (int) pos.zCoord); - Block block = id; - if (block != null) { - Minecraft.getMinecraft().effectRenderer.addBlockHitEffects((int) pos.xCoord, (int) pos.yCoord, (int) pos.zCoord, block_index < 4 ? getSideFromYaw() : (block_index < 6 ? 1 : 0)); - } - } - - /** - * Convert "rotation yaw" angle to block side index. - * - * @return block side for particles - */ - private int getSideFromYaw() { - if (rotationYaw == 0) { - return 5; - } - if (rotationYaw == 90) { - return 3; - } - if (rotationYaw == 180) { - return 4; - } - if (rotationYaw == 270) { - return 2; - } - return 1; - } - - @Override - public boolean shouldRiderSit() { - return false; - } - - @Override - public void updateRiderPosition() { - if (riddenByEntity == null) { - return; - } - else { - - riddenByEntity.setPosition(posX, posY + getMountedYOffset() + riddenByEntity.getYOffset() + 1.1F, posZ); - if (riddenByEntity instanceof EntityLiving) { - pitch = ((EntityPlayer) riddenByEntity).rotationPitch; - if (pitch > Math.toDegrees(pitchLimits)) - pitch = (float) Math.toDegrees(pitchLimits); - if (pitch < Math.toDegrees(-pitchLimits)) - pitch = (float) Math.toDegrees(-pitchLimits); - } - - return; - } - } - - @Override - protected void writeEntityToNBT(NBTTagCompound nbttagcompound) { - nbttagcompound.setShort("Fuel", (short) fuel); - NBTTagList nbttaglist = new NBTTagList(); - for (int i = 0; i < zeppInvent.length; i++) { - if (zeppInvent[i] != null) { - NBTTagCompound nbttagcompound1 = new NBTTagCompound(); - nbttagcompound1.setByte("Slot", (byte) i); - zeppInvent[i].writeToNBT(nbttagcompound1); - nbttaglist.appendTag(nbttagcompound1); - } - } - nbttagcompound.setTag("Items", nbttaglist); - } - - @Override - protected void readEntityFromNBT(NBTTagCompound nbttagcompound) { - fuel = nbttagcompound.getShort("Fuel"); - NBTTagList nbttaglist = nbttagcompound.getTagList("Items", Constants.NBT.TAG_COMPOUND); - zeppInvent = new ItemStack[getSizeInventory()]; - for (int i = 0; i < nbttaglist.tagCount(); i++) { - NBTTagCompound nbttagcompound1 = (NBTTagCompound) nbttaglist.getCompoundTagAt(i); - int j = nbttagcompound1.getByte("Slot") & 0xff; - if (j >= 0 && j < zeppInvent.length) { - zeppInvent[j] = ItemStack.loadItemStackFromNBT(nbttagcompound1); - } - } - } - - @Override - public float getShadowSize() { - return 0.0F; - } - - @Override - public int getSizeInventory() { - return inventorySize; - } - - @Override - public ItemStack getStackInSlot(int i) { - return zeppInvent[i]; - } - - /** - * works exactly like getStackInSlot, is only used upon closing GUIs - */ - @Override - public ItemStack getStackInSlotOnClosing(int par1) { - if (this.zeppInvent[par1] != null) { - ItemStack var2 = this.zeppInvent[par1]; - this.zeppInvent[par1] = null; - return var2; - } - else { - return null; - } - } - - @Override - public ItemStack decrStackSize(int i, int j) { - - if (zeppInvent[i] != null) { - if (zeppInvent[i].stackSize <= j) { - ItemStack itemstack = zeppInvent[i]; - zeppInvent[i] = null; - return itemstack; - } - ItemStack itemstack1 = zeppInvent[i].splitStack(j); - if (zeppInvent[i].stackSize == 0) { - zeppInvent[i] = null; - } - return itemstack1; - } - else { - return null; - } - - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemstack) { - - zeppInvent[i] = itemstack; - if (itemstack != null && itemstack.stackSize > getInventoryStackLimit()) { - itemstack.stackSize = getInventoryStackLimit(); - } - if (itemstack != null && itemstack.getItem() == Items.coal && i == 0 && riddenByEntity != null && (riddenByEntity instanceof EntityPlayer)) { - // ((EntityPlayer)riddenByEntity).func_25046_a(Train.field_27542_startTrain, 1); - } - - } - - @Override - public String getInventoryName() { - return "Rotative Digger"; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - public boolean isFuelled() { - return getFuel() > 0; - } - - public int c(int i) { - return (getFuel() * i) / 1000; - } - - @Override - public void markDirty() {} - - public int getFuel() { - return (this.dataWatcher.getWatchableObjectInt(20)); - } - - public int getStart() { - return (this.dataWatcher.getWatchableObjectInt(21)); - } - - boolean ImIn = false;// changed - ItemStack itemstack; - - @Override - public boolean interactFirst(EntityPlayer entityplayer) { - itemstack = entityplayer.inventory.getCurrentItem(); - - if (riddenByEntity != null && (riddenByEntity instanceof EntityPlayer) && riddenByEntity != entityplayer) { - - return true; - } - - /* This is a temporary fix for testing purpose Or maybe not. Does this thing really needs a GUI? */ - ItemStack var2 = entityplayer.inventory.getCurrentItem(); - - if (var2 != null && var2.getItem() == ItemIDs.refinedFuel.item) { - if (--var2.stackSize == 0) { - entityplayer.inventory.setInventorySlotContents(entityplayer.inventory.currentItem, (ItemStack) null); - } - - this.fuel += 3600; - this.dataWatcher.updateObject(20, fuel); - return true; - } - - if (!worldObj.isRemote) { - entityplayer.mountEntity(this); - } - - return true; - } - - @Override - public void openInventory() {} - - @Override - public void closeInventory() {} - - @Override - public boolean isUseableByPlayer(EntityPlayer entityplayer) { - if (isDead) { - return false; - } - return entityplayer.getDistanceSqToEntity(this) <= 64D; - } - - @Override - public boolean hasCustomInventoryName() { - return false; - } - - @Override - public boolean isItemValidForSlot(int i, ItemStack itemstack) { - return true; - } + public int start; + private ItemStack[] cargoItems;// added + private ItemStack[] zeppInvent; + public int numCargoSlots; + public int numCargoSlots1; + public int numCargoSlots2; + public int inventorySize; + public int fuel; + public boolean idle; + public boolean altitude; + private static int KEY_ACC; + private static int KEY_DEC; + private static int KEY_TURNLEFT; + private static int KEY_TURNRIGHT; + private static int KEY_UP; + private static int KEY_DOWN; + private static int KEY_IDLE; + private static int KEY_INV; + private static int KEY_BOMB; + + public int boatCurrentDamage; + public int boatTimeSinceHit; + public int boatRockDirection; + private int field_9394_d; + private double field_9393_e; + private double field_9392_f; + private double field_9391_g; + private double field_9390_h; + private double field_9389_i; + private double field_9388_j; + private double field_9387_k; + private double field_9386_l; + + public float pitch = 0F; + public float roll = 0F; + public float pitchLimits = 0.75F; + /** + * passengers wheels + */ + protected EntityRotativeWheel[] wheels; + + public EntityRotativeDigger(World world) { + super(world); + boatCurrentDamage = 0; + boatTimeSinceHit = 0; + boatRockDirection = 1; + preventEntitySpawning = true; + setSize(1.5F, 0.8F); + yOffset = height / 2.0F; + numCargoSlots = 3; + numCargoSlots1 = 3; + numCargoSlots2 = 3; + inventorySize = numCargoSlots + numCargoSlots2 + numCargoSlots1 + 5; + zeppInvent = new ItemStack[inventorySize]; + idle = false; + + /** + * Entities are always rendered even if out player's sight => no more flickering/disappearing + */ + if (ConfigHandler.FLICKERING) { + this.ignoreFrustumCheck = true; + } + + stepHeight = 0.6F; + + if (worldObj.isRemote) { + this.wheels = new EntityRotativeWheel[1]; + this.wheels[0] = new EntityRotativeWheel(this.worldObj, this, 0, 5.4D, 0, 0, 0.0D); + worldObj.spawnEntityInWorld(this.wheels[0]); + } + + this.dataWatcher.addObject(20, fuel); + this.dataWatcher.addObject(21, start); + + } + + @Override + protected boolean canTriggerWalking() { + return false; + } + + @Override + protected void entityInit() { + } + + @Override + public AxisAlignedBB getCollisionBox(Entity entity) { + return entity.boundingBox; + } + + @Override + public AxisAlignedBB getBoundingBox() { + return boundingBox; + } + + @Override + public void applyEntityCollision(Entity entity) { + if (entity instanceof EntityRotativeWheel) { + return; + } + + if (entity instanceof EntityPlayer) { + return; + } + + if (entity != entity.riddenByEntity) { + double var2 = entity.posX - this.posX; + double var4 = entity.posZ - this.posZ; + double var6 = MathHelper.abs_max(var2, var4); + + if (var6 >= 0.009999999776482582D) { + var6 = MathHelper.sqrt_double(var6); + var2 /= var6; + var4 /= var6; + double var8 = 1.0D / var6; + + if (var8 > 1.0D) { + var8 = 1.0D; + } + + var2 *= var8; + var4 *= var8; + var2 *= 0.05000000074505806D; + var4 *= 0.05000000074505806D; + var2 *= (1.0F - this.entityCollisionReduction); + var4 *= (1.0F - this.entityCollisionReduction); + this.addVelocity(-var2, 0.0D, -var4); + entity.addVelocity(var2, 0.0D, var4); + } + } + } + + public EntityRotativeDigger(World world, double d, double d1, double d2) { + this(world); + setPosition(d, d1 + yOffset, d2); + motionX = 0.0D; + motionY = 0.0D; + motionZ = 0.0D; + prevPosX = d; + prevPosY = d1; + prevPosZ = d2; + } + + @Override + public double getMountedYOffset() { + return height * 0.0D - 0.30000001192092896D; + } + + @Override + public boolean attackEntityFrom(DamageSource damagesource, float i) { + if (worldObj.isRemote || isDead) { + return true; + } + + boatRockDirection = -boatRockDirection; + boatTimeSinceHit = 10; + boatCurrentDamage += (int) (i * 10); + setBeenAttacked(); + if (boatCurrentDamage > 40) { + setDead(); + } + + return true; + } + + @Override + public void setDead() { + label0: + for (int i = 0; i < getSizeInventory(); i++) { + ItemStack itemstack = getStackInSlot(i); + if (itemstack == null) { + continue; + } + + float f = rand.nextFloat() * 0.8F + 0.1F; + float f1 = rand.nextFloat() * 0.8F + 0.1F; + float f2 = rand.nextFloat() * 0.8F + 0.1F; + do { + if (itemstack.stackSize <= 0) { + continue label0; + } + + int k = rand.nextInt(21) + 10; + if (k > itemstack.stackSize) { + k = itemstack.stackSize; + } + + EntityItem entityitem = new EntityItem(worldObj, posX + f, posY + f1, posZ + f2, itemstack.splitStack(k)); + float f3 = 0.05F; + entityitem.motionX = (float) rand.nextGaussian() * f3; + entityitem.motionY = (float) rand.nextGaussian() * f3 + 0.2F; + entityitem.motionZ = (float) rand.nextGaussian() * f3; + worldObj.spawnEntityInWorld(entityitem); + } while (true); + } + if (wheels != null) { + for (EntityRotativeWheel wheel : wheels) { + wheel.setDead(); + } + } + super.setDead(); + } + + public void pressKeyClient(int i) { + Traincraft.keyChannel.sendToServer(new PacketKeyPress(i)); + } + + public void pressKey(int i) { + + if (i == 7 && riddenByEntity != null && riddenByEntity instanceof EntityPlayer) { + //TODO there is no GUI for it currently + //((EntityPlayer) riddenByEntity).openGui(Traincraft.instance, GuiIDs.DIGGER, worldObj, (int) this.posX, (int) this.posY, (int) this.posZ); + } + + if (i == 9) { + if (start == 0) { + start = 1; + } else { + start = 0; + } + + } + } + + @Override + @SideOnly(Side.CLIENT) + public void performHurtAnimation() { + boatRockDirection = -boatRockDirection; + boatTimeSinceHit = 10; + boatCurrentDamage += boatCurrentDamage * 10; + } + + @Override + public boolean canBeCollidedWith() { + return !isDead; + } + + @Override + @SideOnly(Side.CLIENT) + public void setPositionAndRotation2(double d, double d1, double d2, float f, float f1, int i) { + field_9393_e = d; + field_9392_f = d1; + field_9391_g = d2; + field_9390_h = f; + field_9389_i = f1; + field_9394_d = i + 4; + motionX = field_9388_j; + // motionY = field_9387_k; + motionZ = field_9386_l; + } + + @Override + @SideOnly(Side.CLIENT) + public void setVelocity(double d, double d1, double d2) { + field_9388_j = motionX = d; + // field_9387_k = motionY = d1; + field_9386_l = motionZ = d2; + } + + /** + * Used to setup the wheel + * + * @param x x position of the wheel + * @param y y position of the wheel + * @param z z position of the wheel + * @return Vec3 with the position of the wheel + */ + public Vec3 rotate(double x, double y, double z) { + + double cosYaw = Math.cos(this.getYaw() * 3.141593F / 180.0F); + double sinYaw = Math.sin(this.getYaw() * 3.141593F / 180.0F); + double cosPitch = Math.cos((this.getPitch()) * 3.141593F / 180.0F); + double sinPitch = Math.sin((this.getPitch()) * 3.141593F / 180.0F); + double cosRoll = Math.cos(0 * 3.141593F / 180.0F);// 0.01745 + double sinRoll = Math.sin(0 * 3.141593F / 180.0F);// 0 + + double v = (-x * sinRoll + y * cosRoll) * 0 + z * 0.01745; + double newX = (-x * cosRoll - y * sinRoll) * cosYaw + v * sinYaw; + double newY = -(((cosPitch - x) * -sinPitch)); + double newZ = (y * sinRoll - x * cosRoll) * sinYaw + v * cosYaw; + + return Vec3.createVectorHelper(newX, newY, newZ); + } + + public float getYaw() { + return this.rotationYaw; + } + + public float getPitch() { + return this.pitch; + } + + public double speedXFromPitch(EntityPlayer player, double var3) { + return (-MathHelper.sin((rotationYaw + 90) / 180.0F * (float) Math.PI) * var3 * MathHelper.cos(player.rotationPitch / 180.0F * (float) Math.PI) * var3); + } + + public double speedZFromPitch(EntityPlayer player, double var3) { + return (MathHelper.cos((rotationYaw + 90) / 180.0F * (float) Math.PI) * var3 * MathHelper.cos(player.rotationPitch / 180.0F * (float) Math.PI) * var3); + } + + @Override + public void onUpdate() { + super.onUpdate(); + if (fuel > 0 && riddenByEntity instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer) riddenByEntity; + motionX = motionX + player.moveForward * speedXFromPitch(player, 0.2) * 0.1; + motionZ = motionZ + player.moveForward * speedZFromPitch(player, 0.2) * 0.1; + rotationYaw += (float) (player.moveStrafing * .5); + } + + if (riddenByEntity == null) { + pitch = 0F; + } + + /** + * Handle the wheels mouvements + */ + if (wheels != null) { + for (EntityRotativeWheel wheel : wheels) { + Vec3 posVec = this.rotate(wheel.seatX, wheel.seatY, wheel.seatZ).addVector(this.posX, this.posY + 0.7, this.posZ); + //wheels[seatNum].setPosition(posVec.xCoord, posVec.yCoord, posVec.zCoord); + + wheel.setPositionAndRotation(posVec.xCoord, posVec.yCoord, posVec.zCoord, this.rotationYaw, pitch); + } + } + + //It hasn't any GUI for now + /*if (fuel <= 0) { if (zeppInvent[0] != null && zeppInvent[0].itemID == ItemIDs.refinedFuel.item.shiftedIndex) { fuel = ConfigHandler2.ZeppelinCoal; this.dataWatcher.updateObject(20, fuel); decrStackSize(0, 1); } } */ + + if (boatTimeSinceHit > 0) { + boatTimeSinceHit--; + } + + if (boatCurrentDamage > 0) { + boatCurrentDamage--; + } + + prevPosX = posX; + prevPosY = posY; + prevPosZ = posZ; + int i = 5; + double d = 0.0D; + for (int j = 0; j < i; j++) { + double d4 = (boundingBox.minY + ((boundingBox.maxY - boundingBox.minY) * (j)) / i) - 0.125D; + double d8 = (boundingBox.minY + ((boundingBox.maxY - boundingBox.minY) * (j + 1)) / i) - 0.125D; + AxisAlignedBB axisalignedbb = AxisAlignedBB.getBoundingBox(boundingBox.minX, d4, boundingBox.minZ, boundingBox.maxX, d8, boundingBox.maxZ); + + if (worldObj.isAABBInMaterial(axisalignedbb, Material.water)) { + d += 1.0D / i; + } + } + + double d11 = Math.sqrt(motionX * motionX + motionZ * motionZ); + if (getFuel() > 0) { + // if(d11 > 0.14999999999999999D) + // { + double d13 = Math.cos((rotationYaw * 3.1415926535897931D) / 180D); + double d15 = Math.sin((rotationYaw * 3.1415926535897931D) / 180D); + + double d18 = rand.nextFloat() * 2.0F - 1.0F; + double d20 = (rand.nextInt(2) * 2 - 1) * 0.69999999999999996D; + + if (rand.nextBoolean()) { + double d21 = (posX - d13 * d18 * 0.80000000000000004D) + d15 * d20; + double d23 = posZ - d15 * d18 * 0.80000000000000004D - d13 * d20; + // worldObj.spawnParticle("splash", d21, posY - 0.125D, d23, motionX, motionY, motionZ); + worldObj.spawnParticle("largesmoke", d21, posY - 0.125D, d23, motionX, motionY, motionZ); + } else { + double d22 = posX + d13 + d15 * d18 * 0.69999999999999996D; + double d24 = (posZ + d15) - d13 * d18 * 0.69999999999999996D; + // worldObj.spawnParticle("splash", d22, posY - 0.125D, d24, motionX, motionY, motionZ); + worldObj.spawnParticle("largesmoke", d22, posY - 0.125D, d24, motionX, motionY, motionZ); + } + } + if (worldObj.isRemote) { + if (field_9394_d > 0) { + double d1 = posX + (field_9393_e - posX) / field_9394_d; + double d5 = posY + (field_9392_f - posY) / field_9394_d; + double d9 = posZ + (field_9391_g - posZ) / field_9394_d; + double d12; + for (d12 = field_9390_h - rotationYaw; d12 < -180D; d12 += 360D) { + } + for (; d12 >= 180D; d12 -= 360D) { + } + rotationYaw += (float) (d12 / field_9394_d); + rotationPitch += (float) ((field_9389_i - rotationPitch) / field_9394_d); + field_9394_d--; + setPosition(d1, d5, d9); + setRotation(rotationYaw, rotationPitch); + } else { + double d2 = posX + motionX; + double d6 = posY + motionY; + double d10 = posZ + motionZ; + setPosition(d2, d6, d10); + motionX *= 0.99000000953674316D; + // motionY *= 0.94999998807907104D; + motionZ *= 0.99000000953674316D; + } + return; + } + double d7 = 0.20000000000000002D; + if (motionX < -d7) { + motionX = -d7; + } + + if (motionX > d7) { + motionX = d7; + } + + if (motionZ < -d7) { + motionZ = -d7; + } + + if (motionZ > d7) { + motionZ = d7; + } + + if (rand.nextInt(4) == 0 && fuel > 0) { + fuel--; + this.dataWatcher.updateObject(20, fuel); + } + + if (fuel <= 0) { + motionX *= 0.3; + motionZ *= 0.3; + } + + //TODO This is what allows the entity to climb any height, a better system should be created... + if (this.isCollidedHorizontally) { + motionY = 0.051; + } else { + double d3 = d * 2D - 1.0D; + motionY += 0.039999999105930328D * d3; + } + + motionX *= 0.7400000953674316D; + motionY *= 0.94999998807907104D; + motionZ *= 0.7400000953674316D; + + moveEntity(motionX, motionY, motionZ); + + /* This is how the entity rotates with the look of the player */ + if (getFuel() > 0 && riddenByEntity != null && riddenByEntity instanceof EntityPlayer) { + Vec3 vecLook = ((EntityPlayer) riddenByEntity).getLook(2);// .addVector(posX, posY, posZ); + double da = rotationYaw; + double db = 0 - vecLook.xCoord; + double dc = 0 - vecLook.zCoord; + if (db * db + dc * dc > 0.0000001D) { + da = (float) ((Math.atan2(dc, db) * 180D) / 3.1415926535897931D); + } + + double d19; + for (d19 = da - (double) rotationYaw; d19 >= 180D; d19 -= 360D) { + } + for (; d19 < -180D; d19 += 360D) { + } + + if (d19 > 20D) { + d19 = 20D; + } + + if (d19 < -20D) { + d19 = -20D; + } + + double rot = rotationYaw; + + rot += d19 * 0.2; + + //deactivate this line for test purpose + setRotation((float) rot, rotationPitch); + } + + setRotation(rotationYaw, rotationPitch); + List list = worldObj.getEntitiesWithinAABBExcludingEntity(this, boundingBox.expand(0.20000000298023224D, 0.0D, 0.20000000298023224D)); + if (list != null && !list.isEmpty()) { + for (Object o : list) { + Entity entity = (Entity) o; + if (entity != riddenByEntity && entity.canBePushed() && !(entity instanceof EntityRotativeWheel)) { + entity.applyEntityCollision(this); + } + } + + } + if (riddenByEntity != null && riddenByEntity.isDead) { + riddenByEntity = null; + } + + if (Math.sqrt((motionX * motionX) + (motionZ * motionZ)) > 0.01) { + Vec3 pos = Vec3.createVectorHelper(posX, posY - 1, posZ); + Block id = worldObj.getBlock((int) posX, (int) posY - 1, (int) posZ); + + if (id != null) { + this.playMiningEffect(pos, Block.getIdFromBlock(id)); + } + } + } + + /** + * Spawn breaking particles for blockparticles + * + * @param pos position + * @param block_index index of the block in mining list + */ + + private void playMiningEffect(Vec3 pos, int block_index) { + Block id = worldObj.getBlock((int) pos.xCoord, (int) pos.yCoord, (int) pos.zCoord); + if (id != null) { + Minecraft.getMinecraft().effectRenderer.addBlockHitEffects((int) pos.xCoord, (int) pos.yCoord, (int) pos.zCoord, block_index < 4 ? getSideFromYaw() : (block_index < 6 ? 1 : 0)); + } + } + + /** + * Convert "rotation yaw" angle to block side index. + * + * @return block side for particles + */ + private int getSideFromYaw() { + if (rotationYaw == 0) { + return 5; + } + + if (rotationYaw == 90) { + return 3; + } + + if (rotationYaw == 180) { + return 4; + } + + if (rotationYaw == 270) { + return 2; + } + + return 1; + } + + @Override + public boolean shouldRiderSit() { + return false; + } + + @Override + public void updateRiderPosition() { + if (riddenByEntity == null) { + return; + } + + riddenByEntity.setPosition(posX, posY + getMountedYOffset() + riddenByEntity.getYOffset() + 1.1F, posZ); + if (riddenByEntity instanceof EntityLiving) { + pitch = riddenByEntity.rotationPitch; + if (pitch > Math.toDegrees(pitchLimits)) + pitch = (float) Math.toDegrees(pitchLimits); + if (pitch < Math.toDegrees(-pitchLimits)) + pitch = (float) Math.toDegrees(-pitchLimits); + } + } + + @Override + protected void writeEntityToNBT(NBTTagCompound nbttagcompound) { + nbttagcompound.setShort("Fuel", (short) fuel); + NBTTagList nbttaglist = new NBTTagList(); + for (int i = 0; i < zeppInvent.length; i++) { + if (zeppInvent[i] != null) { + NBTTagCompound nbttagcompound1 = new NBTTagCompound(); + nbttagcompound1.setByte("Slot", (byte) i); + zeppInvent[i].writeToNBT(nbttagcompound1); + nbttaglist.appendTag(nbttagcompound1); + } + } + nbttagcompound.setTag("Items", nbttaglist); + } + + @Override + protected void readEntityFromNBT(NBTTagCompound nbttagcompound) { + fuel = nbttagcompound.getShort("Fuel"); + NBTTagList nbttaglist = nbttagcompound.getTagList("Items", Constants.NBT.TAG_COMPOUND); + zeppInvent = new ItemStack[getSizeInventory()]; + for (int i = 0; i < nbttaglist.tagCount(); i++) { + NBTTagCompound nbttagcompound1 = (NBTTagCompound) nbttaglist.getCompoundTagAt(i); + int j = nbttagcompound1.getByte("Slot") & 0xff; + if (j < zeppInvent.length) { + zeppInvent[j] = ItemStack.loadItemStackFromNBT(nbttagcompound1); + } + } + } + + @Override + public float getShadowSize() { + return 0.0F; + } + + @Override + public int getSizeInventory() { + return inventorySize; + } + + @Override + public ItemStack getStackInSlot(int i) { + return zeppInvent[i]; + } + + /** + * works exactly like getStackInSlot, is only used upon closing GUIs + */ + @Override + public ItemStack getStackInSlotOnClosing(int par1) { + if (this.zeppInvent[par1] != null) { + ItemStack var2 = this.zeppInvent[par1]; + this.zeppInvent[par1] = null; + return var2; + } else { + return null; + } + } + + @Override + public ItemStack decrStackSize(int i, int j) { + if (zeppInvent[i] != null) { + if (zeppInvent[i].stackSize <= j) { + ItemStack itemstack = zeppInvent[i]; + zeppInvent[i] = null; + return itemstack; + } + ItemStack itemstack1 = zeppInvent[i].splitStack(j); + if (zeppInvent[i].stackSize == 0) { + zeppInvent[i] = null; + } + return itemstack1; + } else { + return null; + } + + } + + @Override + public void setInventorySlotContents(int i, ItemStack itemstack) { + + zeppInvent[i] = itemstack; + if (itemstack != null && itemstack.stackSize > getInventoryStackLimit()) { + itemstack.stackSize = getInventoryStackLimit(); + } + if (itemstack != null && itemstack.getItem() == Items.coal && i == 0 && riddenByEntity != null && (riddenByEntity instanceof EntityPlayer)) { + // ((EntityPlayer)riddenByEntity).func_25046_a(Train.field_27542_startTrain, 1); + } + + } + + @Override + public String getInventoryName() { + return "Rotative Digger"; + } + + @Override + public int getInventoryStackLimit() { + return 64; + } + + public boolean isFuelled() { + return getFuel() > 0; + } + + public int c(int i) { + return (getFuel() * i) / 1000; + } + + @Override + public void markDirty() { + } + + public int getFuel() { + return (this.dataWatcher.getWatchableObjectInt(20)); + } + + public int getStart() { + return (this.dataWatcher.getWatchableObjectInt(21)); + } + + boolean ImIn = false;// changed + ItemStack itemstack; + + @Override + public boolean interactFirst(EntityPlayer entityplayer) { + itemstack = entityplayer.inventory.getCurrentItem(); + + if (riddenByEntity != null && (riddenByEntity instanceof EntityPlayer) && riddenByEntity != entityplayer) { + + return true; + } + + /* This is a temporary fix for testing purpose Or maybe not. Does this thing really needs a GUI? */ + ItemStack var2 = entityplayer.inventory.getCurrentItem(); + + if (var2 != null && var2.getItem() == ItemIDs.refinedFuel.item) { + if (--var2.stackSize == 0) { + entityplayer.inventory.setInventorySlotContents(entityplayer.inventory.currentItem, (ItemStack) null); + } + + this.fuel += 3600; + this.dataWatcher.updateObject(20, fuel); + return true; + } + + if (!worldObj.isRemote) { + entityplayer.mountEntity(this); + } + + return true; + } + + @Override + public void openInventory() { + } + + @Override + public void closeInventory() { + } + + @Override + public boolean isUseableByPlayer(EntityPlayer entityplayer) { + if (isDead) { + return false; + } + return entityplayer.getDistanceSqToEntity(this) <= 64D; + } + + @Override + public boolean hasCustomInventoryName() { + return false; + } + + @Override + public boolean isItemValidForSlot(int i, ItemStack itemstack) { + return true; + } } diff --git a/src/main/java/train/common/entity/digger/EntityRotativeWheel.java b/src/main/java/train/common/entity/digger/EntityRotativeWheel.java index eb47ed3339..f1850cb136 100644 --- a/src/main/java/train/common/entity/digger/EntityRotativeWheel.java +++ b/src/main/java/train/common/entity/digger/EntityRotativeWheel.java @@ -18,279 +18,271 @@ public class EntityRotativeWheel extends Entity { - /** For the driver seat position */ - - public double seatX; - public double seatY; - public double seatZ; - public double riderOffset; - public int seatID; - public Entity entity; - /** Fake player instance used for block mining */ - private EntityPlayer fakePlayer; - public int startWheel; - private int field_9394_d; - - public EntityRotativeWheel(World world) { - super(world); - riderOffset = 0; - setSize(1F, 1F); - - // noClip=true; - preventEntitySpawning = false; - isImmuneToFire = true; - fakePlayer = new FakePlayer(world); - this.dataWatcher.addObject(21, new Integer(startWheel)); - } - - /** - * - * @param world - * @param entity - * @param numSeat - * @param x - * @param y - * @param z - * @param riderOffset - */ - public EntityRotativeWheel(World world, Entity entity, int numSeat, double x, double y, double z, double riderOffset) { - this(world); - this.entity = entity; - this.seatID = numSeat; - this.seatX = x; - this.seatY = y; - this.seatZ = z; - this.riderOffset = riderOffset; - - } - - @Override - protected void entityInit() { - // TODO Auto-generated method stub - - } - @Override - public boolean canBeCollidedWith() { - return !isDead; - } - @Override - public void onUpdate() { - - if (entity != null && entity instanceof EntityRotativeDigger) { - startWheel = ((EntityRotativeDigger) entity).getStart(); - this.dataWatcher.updateObject(21, startWheel); - - } - if (fakePlayer == null && worldObj != null) - fakePlayer = new FakePlayer(worldObj); - - List listLiving = worldObj.getEntitiesWithinAABBExcludingEntity(this, boundingBox.expand(0.4, 0.4, 0.4)); - if (listLiving != null && listLiving.size() > 0 && entity != null && entity instanceof EntityRotativeDigger && ((EntityRotativeDigger) entity).getFuel() > 0) {//&& ((EntityRotativeDigger) entity).start){ - - for (int j1 = 0; j1 < listLiving.size(); j1++) { - float f3 = 0.05F; - double X = (float) rand.nextGaussian() * f3; - double Y = (float) rand.nextGaussian() * f3 + 0.2F; - double Z = (float) rand.nextGaussian() * f3; - - Entity entity = (Entity) listLiving.get(j1); - if (entity instanceof EntityRotativeDigger) { - // do not affect - } - else if (entity instanceof EntityLiving) { - entity.attackEntityFrom(DamageSource.generic, 4); - entity.addVelocity(X, Y, Z); - - } - else { - entity.addVelocity(X, Y, Z);// for items on ground - } - - } - } - if (entity != null && entity instanceof EntityRotativeDigger && ((EntityRotativeDigger) entity).getFuel() > 0) {//TODO should only dig when rotative digger has fuel and dig mode is on, doesn't work yet - Vec3 vec = null; - - vec = Vec3.createVectorHelper(posX - 0.5, posY, posZ - 0.5); - - this.harvestBlock_do(vec); - //TODO how many blocks should be harvested? - /*for (int h = -1; h < 2; h++) { vec = Vec3.vec3dPool.getVecFromPool(posX, posY + h, posZ); this.harvestBlock_do(vec); vec = Vec3.vec3dPool.getVecFromPool(posX + 1, posY + h, posZ); this.harvestBlock_do(vec); vec = Vec3.vec3dPool.getVecFromPool(posX - 1, posY + h, posZ); this.harvestBlock_do(vec); vec = Vec3.vec3dPool.getVecFromPool(posX, posY + h, posZ - 1); this.harvestBlock_do(vec); vec = Vec3.vec3dPool.getVecFromPool(posX, posY + h, posZ + 1); this.harvestBlock_do(vec); vec = Vec3.vec3dPool.getVecFromPool(posX + 1, posY + h, posZ - 1); this.harvestBlock_do(vec); vec = Vec3.vec3dPool.getVecFromPool(posX - 1, posY + h, posZ + 1); this.harvestBlock_do(vec); vec = Vec3.vec3dPool.getVecFromPool(posX - 1, posY + h, posZ - 1); this.harvestBlock_do(vec); vec = Vec3.vec3dPool.getVecFromPool(posX + 1, posY + h, posZ + 1); this.harvestBlock_do(vec); - * - * } */ - - } - if (worldObj.isRemote) { - if (field_9394_d > 0) { - double d1 = posX + (field_9393_e - posX) / (double) field_9394_d; - double d5 = posY + (field_9392_f - posY) / (double) field_9394_d; - double d9 = posZ + (field_9391_g - posZ) / (double) field_9394_d; - double d12; - for (d12 = field_9390_h - (double) rotationYaw; d12 < -180D; d12 += 360D) { - } - for (; d12 >= 180D; d12 -= 360D) { - } - rotationYaw += d12 / (double) field_9394_d; - rotationPitch += (field_9389_i - (double) rotationPitch) / (double) field_9394_d; - field_9394_d--; - setPosition(d1, d5, d9); - setRotation(rotationYaw, rotationPitch); - } - else { - double d2 = posX + motionX; - double d6 = posY + motionY; - double d10 = posZ + motionZ; - setPosition(d2, d6, d10); - if (onGround) { - - } - motionX *= 0.99000000953674316D; - // motionY *= 0.94999998807907104D; - motionZ *= 0.99000000953674316D; - } - return; - } - } - - /** - * Perform block harvesting, drop the item, remove block and play sound. - * - * @param pos - */ - - private void harvestBlock_do(Vec3 pos) { - if (pos == null) - return; - - Block id = worldObj.getBlock((int) pos.xCoord, (int) pos.yCoord, (int) pos.zCoord); - int meta = worldObj.getBlockMetadata((int) pos.xCoord, (int) pos.yCoord, (int) pos.zCoord); - if (id != null) { - this.playMiningEffect(pos, id); - } - - if (!shouldIgnoreBlockForHarvesting(pos, id)) { - - if (id != null) { - id.harvestBlock(worldObj, fakePlayer, (int) pos.xCoord, (int) pos.yCoord, (int) pos.zCoord, meta); - worldObj.setBlock((int) pos.xCoord, (int) pos.yCoord, (int) pos.zCoord, null); - - worldObj.playAuxSFX(2001, (int) pos.xCoord, (int) pos.yCoord, (int) pos.zCoord, Block.getIdFromBlock(id) + (meta << 12)); - this.playMiningEffect(pos, id); - } - } - - } - - /** - * Check if block is unharvestable - * - * @param pos - * @param id block id - * @return is not harvested - */ - private boolean shouldIgnoreBlockForHarvesting(Vec3 pos, Block id) { - - if (id == null || id instanceof BlockTorch || id == Block.getBlockFromName("bedrock") || id == Block.getBlockFromName("fire") || id == Block.getBlockFromName("portal") || id == Block.getBlockFromName("endPortal") || id instanceof BlockLiquid || Block.getIdFromBlock(id) == 55 || Block.getIdFromBlock(id) == 70 || Block.getIdFromBlock(id) == 72) { - return true; - } - - boolean flag = false; - - if (flag && id.getCollisionBoundingBoxFromPool(worldObj, (int) pos.xCoord, (int) pos.yCoord, (int) pos.zCoord) == null) { - return true; - } - - return false; - - } - - public int getStartWheel() { - return (this.dataWatcher.getWatchableObjectInt(21)); - } - - /** - * Spawn breaking particles for blockparticles - * - * @param pos position - * @param block_index index of the block in mining list - */ - private int miningTickCounter = 0; - - @SideOnly(Side.CLIENT) - private void playMiningEffect(Vec3 pos, Block block_index) { - - miningTickCounter++; - Block id = worldObj.getBlock((int) pos.xCoord, (int) pos.yCoord, (int) pos.zCoord); - Block block = id; - } - - /** - * Convert "rotation yaw" angle to block side index. - * - * @return block side for particles - */ - private int getSideFromYaw() { - if (rotationYaw == 0) { - return 5; - } - if (rotationYaw == 90) { - return 3; - } - if (rotationYaw == 180) { - return 4; - } - if (rotationYaw == 270) { - return 2; - } - return 1; - } - - @Override - public void applyEntityCollision(Entity entity) { - - } - - @Override - protected void readEntityFromNBT(NBTTagCompound var1) { - // TODO Auto-generated method stub - - } - - @Override - protected void writeEntityToNBT(NBTTagCompound var1) { - // TODO Auto-generated method stub - - } - - @SideOnly(Side.CLIENT) - @Override - public void setPositionAndRotation2(double d, double d1, double d2, float f, float f1, int i) { - field_9393_e = d; - field_9392_f = d1; - field_9391_g = d2; - field_9390_h = f; - field_9389_i = f1; - field_9394_d = i + 4; - motionX = field_9388_j; - // motionY = field_9387_k; - motionZ = field_9386_l; - } - - @SideOnly(Side.CLIENT) - @Override - public void setVelocity(double d, double d1, double d2) { - field_9388_j = motionX = d; - // field_9387_k = motionY = d1; - field_9386_l = motionZ = d2; - } - - private double field_9393_e; - private double field_9392_f; - private double field_9391_g; - private double field_9390_h; - private double field_9389_i; - private double field_9388_j; - private double field_9387_k; - private double field_9386_l; + /** + * For the driver seat position + */ + public double seatX; + public double seatY; + public double seatZ; + public double riderOffset; + public int seatID; + public Entity entity; + /** + * Fake player instance used for block mining + */ + private EntityPlayer fakePlayer; + public int startWheel; + private int field_9394_d; + + public EntityRotativeWheel(World world) { + super(world); + riderOffset = 0; + setSize(1F, 1F); + + // noClip=true; + preventEntitySpawning = false; + isImmuneToFire = true; + fakePlayer = new FakePlayer(world); + this.dataWatcher.addObject(21, startWheel); + } + + /** + * @param world world + * @param entity entity + * @param numSeat seat id + * @param x seat x + * @param y seat y + * @param z seat z + * @param riderOffset rider offset + */ + public EntityRotativeWheel(World world, Entity entity, int numSeat, double x, double y, double z, double riderOffset) { + this(world); + this.entity = entity; + this.seatID = numSeat; + this.seatX = x; + this.seatY = y; + this.seatZ = z; + this.riderOffset = riderOffset; + + } + + @Override + protected void entityInit() { + // TODO Auto-generated method stub + + } + + @Override + public boolean canBeCollidedWith() { + return !isDead; + } + + @Override + public void onUpdate() { + + if (entity != null && entity instanceof EntityRotativeDigger) { + startWheel = ((EntityRotativeDigger) entity).getStart(); + this.dataWatcher.updateObject(21, startWheel); + } + + if (fakePlayer == null && worldObj != null) { + fakePlayer = new FakePlayer(worldObj); + } + + assert worldObj != null; + List listLiving = worldObj.getEntitiesWithinAABBExcludingEntity(this, boundingBox.expand(0.4, 0.4, 0.4)); + if (listLiving != null && !listLiving.isEmpty() && entity != null && entity instanceof EntityRotativeDigger && ((EntityRotativeDigger) entity).getFuel() > 0) {//&& ((EntityRotativeDigger) entity).start){ + + for (Object o : listLiving) { + float f3 = 0.05F; + double X = (float) rand.nextGaussian() * f3; + double Y = (float) rand.nextGaussian() * f3 + 0.2F; + double Z = (float) rand.nextGaussian() * f3; + + Entity entity = (Entity) o; + if (entity instanceof EntityRotativeDigger) { + // do not affect + } else if (entity instanceof EntityLiving) { + entity.attackEntityFrom(DamageSource.generic, 4); + entity.addVelocity(X, Y, Z); + } else { + entity.addVelocity(X, Y, Z);// for items on ground + } + } + } + + if (entity != null && entity instanceof EntityRotativeDigger && ((EntityRotativeDigger) entity).getFuel() > 0) {//TODO should only dig when rotative digger has fuel and dig mode is on, doesn't work yet + Vec3 vec = Vec3.createVectorHelper(posX - 0.5, posY, posZ - 0.5); + + this.harvestBlock_do(vec); + //TODO how many blocks should be harvested? + /*for (int h = -1; h < 2; h++) { vec = Vec3.vec3dPool.getVecFromPool(posX, posY + h, posZ); this.harvestBlock_do(vec); vec = Vec3.vec3dPool.getVecFromPool(posX + 1, posY + h, posZ); this.harvestBlock_do(vec); vec = Vec3.vec3dPool.getVecFromPool(posX - 1, posY + h, posZ); this.harvestBlock_do(vec); vec = Vec3.vec3dPool.getVecFromPool(posX, posY + h, posZ - 1); this.harvestBlock_do(vec); vec = Vec3.vec3dPool.getVecFromPool(posX, posY + h, posZ + 1); this.harvestBlock_do(vec); vec = Vec3.vec3dPool.getVecFromPool(posX + 1, posY + h, posZ - 1); this.harvestBlock_do(vec); vec = Vec3.vec3dPool.getVecFromPool(posX - 1, posY + h, posZ + 1); this.harvestBlock_do(vec); vec = Vec3.vec3dPool.getVecFromPool(posX - 1, posY + h, posZ - 1); this.harvestBlock_do(vec); vec = Vec3.vec3dPool.getVecFromPool(posX + 1, posY + h, posZ + 1); this.harvestBlock_do(vec); + * + * } */ + } + + if (worldObj.isRemote) { + if (field_9394_d > 0) { + double d1 = posX + (field_9393_e - posX) / (double) field_9394_d; + double d5 = posY + (field_9392_f - posY) / (double) field_9394_d; + double d9 = posZ + (field_9391_g - posZ) / (double) field_9394_d; + double d12; + for (d12 = field_9390_h - (double) rotationYaw; d12 < -180D; d12 += 360D) { + } + for (; d12 >= 180D; d12 -= 360D) { + } + rotationYaw += (float) (d12 / (double) field_9394_d); + rotationPitch += (float) ((field_9389_i - (double) rotationPitch) / (double) field_9394_d); + field_9394_d--; + setPosition(d1, d5, d9); + setRotation(rotationYaw, rotationPitch); + } else { + double d2 = posX + motionX; + double d6 = posY + motionY; + double d10 = posZ + motionZ; + setPosition(d2, d6, d10); + if (onGround) { + + } + motionX *= 0.99000000953674316D; + // motionY *= 0.94999998807907104D; + motionZ *= 0.99000000953674316D; + } + return; + } + } + + /** + * Perform block harvesting, drop the item, remove block and play sound. + * + * @param pos + */ + + private void harvestBlock_do(Vec3 pos) { + if (pos == null) { + return; + } + + Block id = worldObj.getBlock((int) pos.xCoord, (int) pos.yCoord, (int) pos.zCoord); + int meta = worldObj.getBlockMetadata((int) pos.xCoord, (int) pos.yCoord, (int) pos.zCoord); + if (id != null) { + this.playMiningEffect(pos, id); + } + + if (!shouldIgnoreBlockForHarvesting(pos, id)) { + id.harvestBlock(worldObj, fakePlayer, (int) pos.xCoord, (int) pos.yCoord, (int) pos.zCoord, meta); + worldObj.setBlock((int) pos.xCoord, (int) pos.yCoord, (int) pos.zCoord, null); + + worldObj.playAuxSFX(2001, (int) pos.xCoord, (int) pos.yCoord, (int) pos.zCoord, Block.getIdFromBlock(id) + (meta << 12)); + this.playMiningEffect(pos, id); + } + + } + + /** + * Check if block is unharvestable + * + * @param pos + * @param id block id + * @return is not harvested + */ + private boolean shouldIgnoreBlockForHarvesting(Vec3 pos, Block id) { + if (id == null || id instanceof BlockTorch || id == Block.getBlockFromName("bedrock") || id == Block.getBlockFromName("fire") || id == Block.getBlockFromName("portal") || id == Block.getBlockFromName("endPortal") || id instanceof BlockLiquid || Block.getIdFromBlock(id) == 55 || Block.getIdFromBlock(id) == 70 || Block.getIdFromBlock(id) == 72) { + return true; + } + + return id.getCollisionBoundingBoxFromPool(worldObj, (int) pos.xCoord, (int) pos.yCoord, (int) pos.zCoord) == null; + } + + public int getStartWheel() { + return this.dataWatcher.getWatchableObjectInt(21); + } + + /** + * Spawn breaking particles for blockparticles + * + * @param pos position + * @param block_index index of the block in mining list + */ + private int miningTickCounter = 0; + + @SideOnly(Side.CLIENT) + private void playMiningEffect(Vec3 pos, Block block_index) { + miningTickCounter++; + Block id = worldObj.getBlock((int) pos.xCoord, (int) pos.yCoord, (int) pos.zCoord); + } + + /** + * Convert "rotation yaw" angle to block side index. + * + * @return block side for particles + */ + private int getSideFromYaw() { + if (rotationYaw == 0) { + return 5; + } + + if (rotationYaw == 90) { + return 3; + } + + if (rotationYaw == 180) { + return 4; + } + + if (rotationYaw == 270) { + return 2; + } + + return 1; + } + + @Override + public void applyEntityCollision(Entity entity) { + + } + + @Override + protected void readEntityFromNBT(NBTTagCompound var1) { + // TODO Auto-generated method stub + + } + + @Override + protected void writeEntityToNBT(NBTTagCompound var1) { + // TODO Auto-generated method stub + + } + + @SideOnly(Side.CLIENT) + @Override + public void setPositionAndRotation2(double d, double d1, double d2, float f, float f1, int i) { + field_9393_e = d; + field_9392_f = d1; + field_9391_g = d2; + field_9390_h = f; + field_9389_i = f1; + field_9394_d = i + 4; + motionX = field_9388_j; + // motionY = field_9387_k; + motionZ = field_9386_l; + } + + @SideOnly(Side.CLIENT) + @Override + public void setVelocity(double d, double d1, double d2) { + field_9388_j = motionX = d; + // field_9387_k = motionY = d1; + field_9386_l = motionZ = d2; + } + + private double field_9393_e; + private double field_9392_f; + private double field_9391_g; + private double field_9390_h; + private double field_9389_i; + private double field_9388_j; + private double field_9387_k; + private double field_9386_l; } \ No newline at end of file diff --git a/src/main/java/train/common/entity/rollingStock/EntityBUnitDD35.java b/src/main/java/train/common/entity/rollingStock/EntityBUnitDD35.java index d9c0b2cd72..84c05ca81c 100644 --- a/src/main/java/train/common/entity/rollingStock/EntityBUnitDD35.java +++ b/src/main/java/train/common/entity/rollingStock/EntityBUnitDD35.java @@ -16,249 +16,232 @@ import train.common.library.GuiIDs; public class EntityBUnitDD35 extends LiquidTank implements IFluidHandler { - public int freightInventorySize; - - private int update = 8; - private LiquidManager.StandardTank theTank; - - public EntityBUnitDD35(World world) { - super(world); - initFreightWater(); - this.theTank = LiquidManager.getInstance().new FilteredTank(getSpec().getTankCapacity(), LiquidManager.dieselFilter()); - } - - public EntityBUnitDD35(World world, double d, double d1, double d2) { - this(world); - setPosition(d, d1 + yOffset, d2); - motionX = 0.0D; - motionY = 0.0D; - motionZ = 0.0D; - prevPosX = d; - prevPosY = d1; - prevPosZ = d2; - } - - @Override - public void setDead() { - super.setDead(); - isDead = true; - } - - @Override - public void onUpdate() { - super.onUpdate(); - checkInvent(cargoItems[0]); - if (worldObj.isRemote) { - return; - } - - if (theTank != null && theTank.getFluid() != null) { - this.dataWatcher.updateObject(18, theTank.getFluidAmount()); - this.dataWatcher.updateObject(4, theTank.getFluid().getFluidID()); - if (theTank.getFluid().amount <= 1) { - motionX *= 0.94; - motionZ *= 0.94; - } - } - else if (theTank != null && theTank.getFluid() == null) { - this.dataWatcher.updateObject(18, 0); - this.dataWatcher.updateObject(4, 0); - } - - if (getAmount() > 0) { - // setColor(getColorFromString("Full")); - setDefaultMass(-getSpec().getMass()); - if ((motionX>0.01 || motionZ>0.01) && ticksExisted % 40 == 0) { - drain(ForgeDirection.UNKNOWN, 8,true); - } - - } else if (getAmount() <= 0) { - // setColor(getColorFromString("Empty")); - setDefaultMass(getSpec().getMass()); - } - } - - public int getDiesel() { - return (this.dataWatcher.getWatchableObjectInt(18)); - } - - public int getLiquidItemID() { - return (this.dataWatcher.getWatchableObjectInt(4)); - } - - public LiquidManager.StandardTank getTank() { - return theTank; - } - - @Override - protected void writeEntityToNBT(NBTTagCompound nbttagcompound) { - super.writeEntityToNBT(nbttagcompound); - NBTTagList nbttaglist = new NBTTagList(); - for (int i = 0; i < cargoItems.length; i++) { - if (cargoItems[i] != null) { - NBTTagCompound nbttagcompound1 = new NBTTagCompound(); - nbttagcompound1.setByte("Slot", (byte) i); - cargoItems[i].writeToNBT(nbttagcompound1); - nbttaglist.appendTag(nbttagcompound1); - } - } - - - nbttagcompound.setTag("Items", nbttaglist); - if (theTank !=null && theTank.getFluid() != null) { - new FluidStack(theTank.getFluid(), this.dataWatcher.getWatchableObjectInt(18)).writeToNBT(nbttagcompound); - } - } - - @Override - protected void readEntityFromNBT(NBTTagCompound nbttagcompound) { - super.readEntityFromNBT(nbttagcompound); - NBTTagList nbttaglist = nbttagcompound.getTagList("Items", Constants.NBT.TAG_COMPOUND); - cargoItems = new ItemStack[getSizeInventory()]; - for (int i = 0; i < nbttaglist.tagCount(); i++) { - NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); - int j = nbttagcompound1.getByte("Slot") & 0xff; - if (j >= 0 && j < cargoItems.length) { - cargoItems[j] = ItemStack.loadItemStackFromNBT(nbttagcompound1); - } - } - if (nbttagcompound.hasKey("FluidName")) { - fill(ForgeDirection.UNKNOWN, FluidStack.loadFluidStackFromNBT(nbttagcompound), true); - } - - } - - private void placeInInvent(ItemStack itemstack1) { - for (int i = 1; i < cargoItems.length; i++) { - if (cargoItems[i] == null) { - cargoItems[i] = itemstack1; - return; - } - else if (cargoItems[i] != null && cargoItems[i].getItem() == itemstack1.getItem() && itemstack1.isStackable() && (!itemstack1.getHasSubtypes() || cargoItems[i].getItemDamage() == itemstack1.getItemDamage()) && ItemStack.areItemStackTagsEqual(cargoItems[i], itemstack1)) { - int var9 = cargoItems[i].stackSize + itemstack1.stackSize; - if (var9 <= itemstack1.getMaxStackSize()) { - cargoItems[i].stackSize = var9; - - } - else if (cargoItems[i].stackSize < itemstack1.getMaxStackSize()) { - cargoItems[i].stackSize += 1; - } - return; - } - else if (i == cargoItems.length - 1) { - entityDropItem(itemstack1,1); - return; - } - } - } - - public void liquidInSlot(ItemStack itemstack) { - if (worldObj.isRemote) - return; - this.update += 1; - if (this.update % 8 == 0 && itemstack != null) { - ItemStack result = LiquidManager.getInstance().processContainer(this, 0, this, itemstack); - if (result != null) { - placeInInvent(result); - } - } - } - - public ItemStack checkInvent(ItemStack cargoItems0) { - - if (getDiesel() > 0) { - fuelTrain = (getDiesel()); - } - if (fuelTrain <= 0) { - motionX *= 0.88; - motionZ *= 0.88; - } - if (cargoItems0 != null) { - liquidInSlot(cargoItems0); - } - return cargoItems0; - } - - public void initFreightWater() { - freightInventorySize = 2; - cargoItems = new ItemStack[freightInventorySize]; - } - - @Override - public String getInventoryName() { - return "DD35 B-Unit"; - } - - @Override - public int getSizeInventory() { - return freightInventorySize; - } - - @Override - public boolean interactFirst(EntityPlayer entityplayer) { - if ((super.interactFirst(entityplayer))) { - return false; - } - if (!this.worldObj.isRemote) { - entityplayer.openGui(Traincraft.instance, GuiIDs.LIQUID, worldObj, this.getEntityId(), -1, (int) this.posZ); - } - return true; - } - - @Override - public boolean isStorageCart() { - return true; - } - - @Override - public float getOptimalDistance(EntityMinecart cart) { - return 3.1F; - } - - - @Override - public int fill(ForgeDirection from, FluidStack resource, boolean doFill) { - return theTank.fill(resource, doFill); - } - - @Override - public FluidStack drain(ForgeDirection from, FluidStack resource, boolean doDrain) { - if (resource == null || !resource.isFluidEqual(theTank.getFluid())) { - return null; - } - return theTank.drain(resource.amount, doDrain); - } - - @Override - public FluidStack drain(ForgeDirection from, int maxDrain, boolean doDrain) { - return theTank.drain(maxDrain, doDrain); - } - - @Override - public boolean canFill(ForgeDirection from, Fluid fluid) { - return true; - } - - @Override - public boolean canDrain(ForgeDirection from, Fluid fluid) { - return true; - } - - @Override - public FluidTankInfo[] getTankInfo(ForgeDirection from) { - return new FluidTankInfo[] { theTank.getInfo() }; - } - - public FluidStack getFluid() { - return theTank.getFluid(); - } - - public int getFluidAmount() { - return dataWatcher.getWatchableObjectInt(18); - } - - @Override - public String getLiquidName(){ - return FluidRegistry.getFluid(this.dataWatcher.getWatchableObjectInt(4))!=null?FluidRegistry.getFluid(this.dataWatcher.getWatchableObjectInt(4)).getUnlocalizedName():null; - } + public int freightInventorySize; + + private int update = 8; + private final LiquidManager.StandardTank theTank; + + public EntityBUnitDD35(World world) { + super(world); + initFreightWater(); + this.theTank = LiquidManager.getInstance().new FilteredTank(getSpec().getTankCapacity(), LiquidManager.dieselFilter()); + } + + public EntityBUnitDD35(World world, double d, double d1, double d2) { + this(world); + setPosition(d, d1 + yOffset, d2); + motionX = 0.0D; + motionY = 0.0D; + motionZ = 0.0D; + prevPosX = d; + prevPosY = d1; + prevPosZ = d2; + } + + @Override + public void setDead() { + super.setDead(); + isDead = true; + } + + @Override + public void onUpdate() { + super.onUpdate(); + checkInvent(cargoItems[0]); + if (worldObj.isRemote) { + return; + } + + if (theTank != null && theTank.getFluid() != null) { + this.dataWatcher.updateObject(18, theTank.getFluidAmount()); + this.dataWatcher.updateObject(4, theTank.getFluid().getFluidID()); + if (theTank.getFluid().amount <= 1) { + motionX *= 0.94; + motionZ *= 0.94; + } + } else if (theTank != null && theTank.getFluid() == null) { + this.dataWatcher.updateObject(18, 0); + this.dataWatcher.updateObject(4, 0); + } + + if (getAmount() > 0) { + // setColor(getColorFromString("Full")); + setDefaultMass(-getSpec().getMass()); + if ((motionX > 0.01 || motionZ > 0.01) && ticksExisted % 40 == 0) { + drain(ForgeDirection.UNKNOWN, 8, true); + } + + } else if (getAmount() <= 0) { + // setColor(getColorFromString("Empty")); + setDefaultMass(getSpec().getMass()); + } + } + + public int getDiesel() { + return (this.dataWatcher.getWatchableObjectInt(18)); + } + + public LiquidManager.StandardTank getTank() { + return theTank; + } + + @Override + protected void writeEntityToNBT(NBTTagCompound nbttagcompound) { + super.writeEntityToNBT(nbttagcompound); + NBTTagList nbttaglist = new NBTTagList(); + for (int i = 0; i < cargoItems.length; i++) { + if (cargoItems[i] != null) { + NBTTagCompound nbttagcompound1 = new NBTTagCompound(); + nbttagcompound1.setByte("Slot", (byte) i); + cargoItems[i].writeToNBT(nbttagcompound1); + nbttaglist.appendTag(nbttagcompound1); + } + } + + + nbttagcompound.setTag("Items", nbttaglist); + if (theTank != null && theTank.getFluid() != null) { + new FluidStack(theTank.getFluid(), this.dataWatcher.getWatchableObjectInt(18)).writeToNBT(nbttagcompound); + } + } + + @Override + protected void readEntityFromNBT(NBTTagCompound nbttagcompound) { + super.readEntityFromNBT(nbttagcompound); + NBTTagList nbttaglist = nbttagcompound.getTagList("Items", Constants.NBT.TAG_COMPOUND); + cargoItems = new ItemStack[getSizeInventory()]; + for (int i = 0; i < nbttaglist.tagCount(); i++) { + NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); + int j = nbttagcompound1.getByte("Slot") & 0xff; + if (j < cargoItems.length) { + cargoItems[j] = ItemStack.loadItemStackFromNBT(nbttagcompound1); + } + } + if (nbttagcompound.hasKey("FluidName")) { + fill(ForgeDirection.UNKNOWN, FluidStack.loadFluidStackFromNBT(nbttagcompound), true); + } + + } + + private void placeInInvent(ItemStack itemstack1) { + for (int i = 1; i < cargoItems.length; i++) { + if (cargoItems[i] == null) { + cargoItems[i] = itemstack1; + return; + } else if (cargoItems[i] != null && cargoItems[i].getItem() == itemstack1.getItem() && itemstack1.isStackable() && (!itemstack1.getHasSubtypes() || cargoItems[i].getItemDamage() == itemstack1.getItemDamage()) && ItemStack.areItemStackTagsEqual(cargoItems[i], itemstack1)) { + int var9 = cargoItems[i].stackSize + itemstack1.stackSize; + if (var9 <= itemstack1.getMaxStackSize()) { + cargoItems[i].stackSize = var9; + + } else if (cargoItems[i].stackSize < itemstack1.getMaxStackSize()) { + cargoItems[i].stackSize += 1; + } + return; + } else if (i == cargoItems.length - 1) { + entityDropItem(itemstack1, 1); + return; + } + } + } + + public void liquidInSlot(ItemStack itemstack) { + if (worldObj.isRemote) + return; + this.update += 1; + if (this.update % 8 == 0 && itemstack != null) { + ItemStack result = LiquidManager.getInstance().processContainer(this, 0, this, itemstack); + if (result != null) { + placeInInvent(result); + } + } + } + + public ItemStack checkInvent(ItemStack cargoItems0) { + if (getDiesel() > 0) { + fuelTrain = (getDiesel()); + } + + if (fuelTrain <= 0) { + motionX *= 0.88; + motionZ *= 0.88; + } + + if (cargoItems0 != null) { + liquidInSlot(cargoItems0); + } + return cargoItems0; + } + + public void initFreightWater() { + freightInventorySize = 2; + cargoItems = new ItemStack[freightInventorySize]; + } + + @Override + public String getInventoryName() { + return "DD35 B-Unit"; + } + + @Override + public int getSizeInventory() { + return freightInventorySize; + } + + @Override + public boolean interactFirst(EntityPlayer entityplayer) { + if ((super.interactFirst(entityplayer))) { + return false; + } + if (!this.worldObj.isRemote) { + entityplayer.openGui(Traincraft.instance, GuiIDs.LIQUID, worldObj, this.getEntityId(), -1, (int) this.posZ); + } + return true; + } + + @Override + public boolean isStorageCart() { + return true; + } + + @Override + public float getOptimalDistance(EntityMinecart cart) { + return 3.1F; + } + + + @Override + public int fill(ForgeDirection from, FluidStack resource, boolean doFill) { + return theTank.fill(resource, doFill); + } + + @Override + public FluidStack drain(ForgeDirection from, FluidStack resource, boolean doDrain) { + if (resource == null || !resource.isFluidEqual(theTank.getFluid())) { + return null; + } + return theTank.drain(resource.amount, doDrain); + } + + @Override + public FluidStack drain(ForgeDirection from, int maxDrain, boolean doDrain) { + return theTank.drain(maxDrain, doDrain); + } + + @Override + public FluidTankInfo[] getTankInfo(ForgeDirection from) { + return new FluidTankInfo[]{theTank.getInfo()}; + } + + public FluidStack getFluid() { + return theTank.getFluid(); + } + + public int getFluidAmount() { + return dataWatcher.getWatchableObjectInt(18); + } + + @Override + public String getLiquidName() { + return FluidRegistry.getFluid(this.dataWatcher.getWatchableObjectInt(4)) != null ? FluidRegistry.getFluid(this.dataWatcher.getWatchableObjectInt(4)).getUnlocalizedName() : null; + } } \ No newline at end of file diff --git a/src/main/java/train/common/entity/rollingStock/EntityBUnitEMDF3.java b/src/main/java/train/common/entity/rollingStock/EntityBUnitEMDF3.java index 02bc6c686c..fa670bf754 100644 --- a/src/main/java/train/common/entity/rollingStock/EntityBUnitEMDF3.java +++ b/src/main/java/train/common/entity/rollingStock/EntityBUnitEMDF3.java @@ -16,285 +16,280 @@ import train.common.library.GuiIDs; public class EntityBUnitEMDF3 extends LiquidTank implements IFluidHandler { - public int freightInventorySize; - - private int update = 8; - private LiquidManager.StandardTank theTank; - - public EntityBUnitEMDF3(World world) { - super(world); - initFreightWater(); - this.theTank = LiquidManager.getInstance().new FilteredTank(getSpec().getTankCapacity(), LiquidManager.dieselFilter()); - } - - public EntityBUnitEMDF3(World world, double d, double d1, double d2) { - this(world); - setPosition(d, d1 + yOffset, d2); - motionX = 0.0D; - motionY = 0.0D; - motionZ = 0.0D; - prevPosX = d; - prevPosY = d1; - prevPosZ = d2; - } - - - @Override - public void updateRiderPosition() { - if(riddenByEntity==null){return;} - double pitchRads = this.anglePitchClient * Math.PI / 180.0D; - double distance = 2.3; - double yOffset = 0.65; - float rotationCos1 = (float) Math.cos(Math.toRadians(this.renderYaw + 90)); - float rotationSin1 = (float) Math.sin(Math.toRadians((this.renderYaw + 90))); - if(side.isServer()){ - rotationCos1 = (float) Math.cos(Math.toRadians(this.serverRealRotation + 90)); - rotationSin1 = (float) Math.sin(Math.toRadians((this.serverRealRotation + 90))); - anglePitchClient = serverRealPitch*60; - } - float pitch = (float) (posY + ((Math.tan(pitchRads) * distance) + getMountedYOffset()) - + riddenByEntity.getYOffset() + yOffset); - float pitch1 = (float) (posY + getMountedYOffset() + riddenByEntity.getYOffset() + yOffset); - double bogieX1 = (this.posX + (rotationCos1 * distance)); - double bogieZ1 = (this.posZ + (rotationSin1* distance)); - // System.out.println(rotationCos1+" "+rotationSin1); - if (anglePitchClient > 20 && rotationCos1 == 1) { - bogieX1-=pitchRads*2; - pitch -= pitchRads * 1.2; - } - if (anglePitchClient > 20 && rotationSin1 == 1) { - bogieZ1-=pitchRads*2; - pitch -= pitchRads * 1.2; - } - if (pitchRads == 0.0) { - riddenByEntity.setPosition(bogieX1, pitch1, bogieZ1); - } - if (pitchRads > -1.01 && pitchRads < 1.01) { - riddenByEntity.setPosition(bogieX1, pitch, bogieZ1); - } - } - - @Override - public void setDead() { - super.setDead(); - isDead = true; - } - - @Override - public void onUpdate() { - super.onUpdate(); - checkInvent(cargoItems[0]); - if (worldObj.isRemote) { - return; - } - - if (theTank != null && theTank.getFluid() != null) { - this.dataWatcher.updateObject(18, theTank.getFluidAmount()); - this.dataWatcher.updateObject(4, theTank.getFluid().getFluidID()); - if (theTank.getFluid().amount <= 1) { - motionX *= 0.94; - motionZ *= 0.94; - } - } - else if (theTank != null && theTank.getFluid() == null) { - this.dataWatcher.updateObject(18, 0); - this.dataWatcher.updateObject(4, 0); - } - - if (getAmount() > 0) { - // setColor(getColorFromString("Full")); - setDefaultMass(-getSpec().getMass()); - if ((motionX>0.01 || motionZ>0.01) && ticksExisted % 40 == 0) { - drain(ForgeDirection.UNKNOWN, 6,true); - } - - } else if (getAmount() <= 0) { - // setColor(getColorFromString("Empty")); - setDefaultMass(getSpec().getMass()); - } - } - - public int getDiesel() { - return (this.dataWatcher.getWatchableObjectInt(18)); - } - - public int getLiquidItemID() { - return (this.dataWatcher.getWatchableObjectInt(4)); - } - - public LiquidManager.StandardTank getTank() { - return theTank; - } - - @Override - protected void writeEntityToNBT(NBTTagCompound nbttagcompound) { - super.writeEntityToNBT(nbttagcompound); - NBTTagList nbttaglist = new NBTTagList(); - for (int i = 0; i < cargoItems.length; i++) { - if (cargoItems[i] != null) { - NBTTagCompound nbttagcompound1 = new NBTTagCompound(); - nbttagcompound1.setByte("Slot", (byte) i); - cargoItems[i].writeToNBT(nbttagcompound1); - nbttaglist.appendTag(nbttagcompound1); - } - } - - - nbttagcompound.setTag("Items", nbttaglist); - if (theTank !=null && theTank.getFluid() != null) { - new FluidStack(theTank.getFluid(), this.dataWatcher.getWatchableObjectInt(18)).writeToNBT(nbttagcompound); - } - } - - @Override - protected void readEntityFromNBT(NBTTagCompound nbttagcompound) { - super.readEntityFromNBT(nbttagcompound); - NBTTagList nbttaglist = nbttagcompound.getTagList("Items", Constants.NBT.TAG_COMPOUND); - cargoItems = new ItemStack[getSizeInventory()]; - for (int i = 0; i < nbttaglist.tagCount(); i++) { - NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); - int j = nbttagcompound1.getByte("Slot") & 0xff; - if (j >= 0 && j < cargoItems.length) { - cargoItems[j] = ItemStack.loadItemStackFromNBT(nbttagcompound1); - } - } - if (nbttagcompound.hasKey("FluidName")) { - fill(ForgeDirection.UNKNOWN, FluidStack.loadFluidStackFromNBT(nbttagcompound), true); - } - - } - - private void placeInInvent(ItemStack itemstack1) { - for (int i = 1; i < cargoItems.length; i++) { - if (cargoItems[i] == null) { - cargoItems[i] = itemstack1; - return; - } - else if (cargoItems[i] != null && cargoItems[i].getItem() == itemstack1.getItem() && itemstack1.isStackable() && (!itemstack1.getHasSubtypes() || cargoItems[i].getItemDamage() == itemstack1.getItemDamage()) && ItemStack.areItemStackTagsEqual(cargoItems[i], itemstack1)) { - int var9 = cargoItems[i].stackSize + itemstack1.stackSize; - if (var9 <= itemstack1.getMaxStackSize()) { - cargoItems[i].stackSize = var9; - - } - else if (cargoItems[i].stackSize < itemstack1.getMaxStackSize()) { - cargoItems[i].stackSize += 1; - } - return; - } - else if (i == cargoItems.length - 1) { - entityDropItem(itemstack1,1); - return; - } - } - } - - public void liquidInSlot(ItemStack itemstack) { - if (worldObj.isRemote) - return; - this.update += 1; - if (this.update % 8 == 0 && itemstack != null) { - ItemStack result = LiquidManager.getInstance().processContainer(this, 0, this, itemstack); - if (result != null) { - placeInInvent(result); - } - } - } - - public ItemStack checkInvent(ItemStack cargoItems0) { - - if (getDiesel() > 0) { - fuelTrain = (getDiesel()); - } - if (fuelTrain <= 0) { - motionX *= 0.88; - motionZ *= 0.88; - } - if (cargoItems0 != null) { - liquidInSlot(cargoItems0); - } - return cargoItems0; - } - - public void initFreightWater() { - freightInventorySize = 2; - cargoItems = new ItemStack[freightInventorySize]; - } - - @Override - public String getInventoryName() { - return "EMD F3 B-Unit"; - } - - @Override - public int getSizeInventory() { - return freightInventorySize; - } - - @Override - public boolean interactFirst(EntityPlayer entityplayer) { - if ((super.interactFirst(entityplayer))) { - return false; - } - if (!this.worldObj.isRemote) { - entityplayer.openGui(Traincraft.instance, GuiIDs.LIQUID, worldObj, this.getEntityId(), -1, (int) this.posZ); - } - return true; - } - - @Override - public boolean isStorageCart() { - return true; - } - - @Override - public float getOptimalDistance(EntityMinecart cart) { - return 2.2F; - } - - - @Override - public int fill(ForgeDirection from, FluidStack resource, boolean doFill) { - return theTank.fill(resource, doFill); - } - - @Override - public FluidStack drain(ForgeDirection from, FluidStack resource, boolean doDrain) { - if (resource == null || !resource.isFluidEqual(theTank.getFluid())) { - return null; - } - return theTank.drain(resource.amount, doDrain); - } - - @Override - public FluidStack drain(ForgeDirection from, int maxDrain, boolean doDrain) { - return theTank.drain(maxDrain, doDrain); - } - - @Override - public boolean canFill(ForgeDirection from, Fluid fluid) { - return true; - } - - @Override - public boolean canDrain(ForgeDirection from, Fluid fluid) { - return true; - } - - @Override - public FluidTankInfo[] getTankInfo(ForgeDirection from) { - return new FluidTankInfo[] { theTank.getInfo() }; - } - - public FluidStack getFluid() { - return theTank.getFluid(); - } - - public int getFluidAmount() { - return dataWatcher.getWatchableObjectInt(18); - } - - @Override - public String getLiquidName(){ - return FluidRegistry.getFluid(this.dataWatcher.getWatchableObjectInt(4))!=null?FluidRegistry.getFluid(this.dataWatcher.getWatchableObjectInt(4)).getName():null; - } + public int freightInventorySize; + + private int update = 8; + private final LiquidManager.StandardTank theTank; + + public EntityBUnitEMDF3(World world) { + super(world); + initFreightWater(); + this.theTank = LiquidManager.getInstance().new FilteredTank(getSpec().getTankCapacity(), LiquidManager.dieselFilter()); + } + + public EntityBUnitEMDF3(World world, double d, double d1, double d2) { + this(world); + setPosition(d, d1 + yOffset, d2); + motionX = 0.0D; + motionY = 0.0D; + motionZ = 0.0D; + prevPosX = d; + prevPosY = d1; + prevPosZ = d2; + } + + + @Override + public void updateRiderPosition() { + if (riddenByEntity == null) { + return; + } + + double pitchRads = this.anglePitchClient * Math.PI / 180.0D; + double distance = 2.3; + double yOffset = 0.65; + float rotationCos1 = (float) Math.cos(Math.toRadians(this.renderYaw + 90)); + float rotationSin1 = (float) Math.sin(Math.toRadians((this.renderYaw + 90))); + + if (side.isServer()) { + rotationCos1 = (float) Math.cos(Math.toRadians(this.serverRealRotation + 90)); + rotationSin1 = (float) Math.sin(Math.toRadians((this.serverRealRotation + 90))); + anglePitchClient = serverRealPitch * 60; + } + + float pitch = (float) (posY + ((Math.tan(pitchRads) * distance) + getMountedYOffset()) + + riddenByEntity.getYOffset() + yOffset); + float pitch1 = (float) (posY + getMountedYOffset() + riddenByEntity.getYOffset() + yOffset); + double bogieX1 = (this.posX + (rotationCos1 * distance)); + double bogieZ1 = (this.posZ + (rotationSin1 * distance)); + + // System.out.println(rotationCos1+" "+rotationSin1); + if (anglePitchClient > 20 && rotationCos1 == 1) { + bogieX1 -= pitchRads * 2; + pitch -= (float) (pitchRads * 1.2); + } + + if (anglePitchClient > 20 && rotationSin1 == 1) { + bogieZ1 -= pitchRads * 2; + pitch -= (float) (pitchRads * 1.2); + } + + if (pitchRads == 0.0) { + riddenByEntity.setPosition(bogieX1, pitch1, bogieZ1); + } + + if (pitchRads > -1.01 && pitchRads < 1.01) { + riddenByEntity.setPosition(bogieX1, pitch, bogieZ1); + } + } + + @Override + public void setDead() { + super.setDead(); + isDead = true; + } + + @Override + public void onUpdate() { + super.onUpdate(); + checkInvent(cargoItems[0]); + if (worldObj.isRemote) { + return; + } + + if (theTank != null && theTank.getFluid() != null) { + this.dataWatcher.updateObject(18, theTank.getFluidAmount()); + this.dataWatcher.updateObject(4, theTank.getFluid().getFluidID()); + if (theTank.getFluid().amount <= 1) { + motionX *= 0.94; + motionZ *= 0.94; + } + } else if (theTank != null && theTank.getFluid() == null) { + this.dataWatcher.updateObject(18, 0); + this.dataWatcher.updateObject(4, 0); + } + + if (getAmount() > 0) { + // setColor(getColorFromString("Full")); + setDefaultMass(-getSpec().getMass()); + if ((motionX > 0.01 || motionZ > 0.01) && ticksExisted % 40 == 0) { + drain(ForgeDirection.UNKNOWN, 6, true); + } + + } else if (getAmount() <= 0) { + // setColor(getColorFromString("Empty")); + setDefaultMass(getSpec().getMass()); + } + } + + public int getDiesel() { + return (this.dataWatcher.getWatchableObjectInt(18)); + } + + public LiquidManager.StandardTank getTank() { + return theTank; + } + + @Override + protected void writeEntityToNBT(NBTTagCompound nbttagcompound) { + super.writeEntityToNBT(nbttagcompound); + NBTTagList nbttaglist = new NBTTagList(); + for (int i = 0; i < cargoItems.length; i++) { + if (cargoItems[i] != null) { + NBTTagCompound nbttagcompound1 = new NBTTagCompound(); + nbttagcompound1.setByte("Slot", (byte) i); + cargoItems[i].writeToNBT(nbttagcompound1); + nbttaglist.appendTag(nbttagcompound1); + } + } + + + nbttagcompound.setTag("Items", nbttaglist); + if (theTank != null && theTank.getFluid() != null) { + new FluidStack(theTank.getFluid(), this.dataWatcher.getWatchableObjectInt(18)).writeToNBT(nbttagcompound); + } + } + + @Override + protected void readEntityFromNBT(NBTTagCompound nbttagcompound) { + super.readEntityFromNBT(nbttagcompound); + NBTTagList nbttaglist = nbttagcompound.getTagList("Items", Constants.NBT.TAG_COMPOUND); + cargoItems = new ItemStack[getSizeInventory()]; + for (int i = 0; i < nbttaglist.tagCount(); i++) { + NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); + int j = nbttagcompound1.getByte("Slot") & 0xff; + if (j < cargoItems.length) { + cargoItems[j] = ItemStack.loadItemStackFromNBT(nbttagcompound1); + } + } + if (nbttagcompound.hasKey("FluidName")) { + fill(ForgeDirection.UNKNOWN, FluidStack.loadFluidStackFromNBT(nbttagcompound), true); + } + + } + + private void placeInInvent(ItemStack itemstack1) { + for (int i = 1; i < cargoItems.length; i++) { + if (cargoItems[i] == null) { + cargoItems[i] = itemstack1; + return; + } else if (cargoItems[i] != null && cargoItems[i].getItem() == itemstack1.getItem() && itemstack1.isStackable() && (!itemstack1.getHasSubtypes() || cargoItems[i].getItemDamage() == itemstack1.getItemDamage()) && ItemStack.areItemStackTagsEqual(cargoItems[i], itemstack1)) { + int var9 = cargoItems[i].stackSize + itemstack1.stackSize; + if (var9 <= itemstack1.getMaxStackSize()) { + cargoItems[i].stackSize = var9; + + } else if (cargoItems[i].stackSize < itemstack1.getMaxStackSize()) { + cargoItems[i].stackSize += 1; + } + return; + } else if (i == cargoItems.length - 1) { + entityDropItem(itemstack1, 1); + return; + } + } + } + + public void liquidInSlot(ItemStack itemstack) { + if (worldObj.isRemote) { + return; + } + + this.update += 1; + if (this.update % 8 == 0 && itemstack != null) { + ItemStack result = LiquidManager.getInstance().processContainer(this, 0, this, itemstack); + if (result != null) { + placeInInvent(result); + } + } + } + + public ItemStack checkInvent(ItemStack cargoItems0) { + if (getDiesel() > 0) { + fuelTrain = (getDiesel()); + } + + if (fuelTrain <= 0) { + motionX *= 0.88; + motionZ *= 0.88; + } + + if (cargoItems0 != null) { + liquidInSlot(cargoItems0); + } + + return cargoItems0; + } + + public void initFreightWater() { + freightInventorySize = 2; + cargoItems = new ItemStack[freightInventorySize]; + } + + @Override + public String getInventoryName() { + return "EMD F3 B-Unit"; + } + + @Override + public int getSizeInventory() { + return freightInventorySize; + } + + @Override + public boolean interactFirst(EntityPlayer entityplayer) { + if (super.interactFirst(entityplayer)) { + return false; + } + if (!this.worldObj.isRemote) { + entityplayer.openGui(Traincraft.instance, GuiIDs.LIQUID, worldObj, this.getEntityId(), -1, (int) this.posZ); + } + return true; + } + + @Override + public boolean isStorageCart() { + return true; + } + + @Override + public float getOptimalDistance(EntityMinecart cart) { + return 2.2F; + } + + + @Override + public int fill(ForgeDirection from, FluidStack resource, boolean doFill) { + return theTank.fill(resource, doFill); + } + + @Override + public FluidStack drain(ForgeDirection from, FluidStack resource, boolean doDrain) { + if (resource == null || !resource.isFluidEqual(theTank.getFluid())) { + return null; + } + return theTank.drain(resource.amount, doDrain); + } + + @Override + public FluidStack drain(ForgeDirection from, int maxDrain, boolean doDrain) { + return theTank.drain(maxDrain, doDrain); + } + + @Override + public FluidTankInfo[] getTankInfo(ForgeDirection from) { + return new FluidTankInfo[]{theTank.getInfo()}; + } + + public FluidStack getFluid() { + return theTank.getFluid(); + } + + public int getFluidAmount() { + return dataWatcher.getWatchableObjectInt(18); + } + + @Override + public String getLiquidName() { + return FluidRegistry.getFluid(this.dataWatcher.getWatchableObjectInt(4)) != null ? FluidRegistry.getFluid(this.dataWatcher.getWatchableObjectInt(4)).getName() : null; + } } \ No newline at end of file diff --git a/src/main/java/train/common/entity/rollingStock/EntityBUnitEMDF7.java b/src/main/java/train/common/entity/rollingStock/EntityBUnitEMDF7.java index 2c018aa1df..3f260d2da8 100644 --- a/src/main/java/train/common/entity/rollingStock/EntityBUnitEMDF7.java +++ b/src/main/java/train/common/entity/rollingStock/EntityBUnitEMDF7.java @@ -15,250 +15,236 @@ import train.common.library.EnumTrains; import train.common.library.GuiIDs; -public class EntityBUnitEMDF7 extends LiquidTank implements IFluidHandler { - public int freightInventorySize; - - private int update = 8; - private LiquidManager.StandardTank theTank; - - public EntityBUnitEMDF7(World world) { - super(world); - initFreightWater(); - this.theTank = LiquidManager.getInstance().new FilteredTank(getSpec().getTankCapacity(), LiquidManager.dieselFilter()); - } - - public EntityBUnitEMDF7(World world, double d, double d1, double d2) { - this(world); - setPosition(d, d1 + yOffset, d2); - motionX = 0.0D; - motionY = 0.0D; - motionZ = 0.0D; - prevPosX = d; - prevPosY = d1; - prevPosZ = d2; - } - - @Override - public void setDead() { - super.setDead(); - isDead = true; - } - - @Override - public void onUpdate() { - super.onUpdate(); - checkInvent(cargoItems[0]); - if (worldObj.isRemote) { - return; - } - - if (theTank != null && theTank.getFluid() != null) { - this.dataWatcher.updateObject(18, theTank.getFluidAmount()); - this.dataWatcher.updateObject(4, theTank.getFluid().getFluidID()); - if (theTank.getFluid().amount <= 1) { - motionX *= 0.94; - motionZ *= 0.94; - } - } - else if (theTank != null && theTank.getFluid() == null) { - this.dataWatcher.updateObject(18, 0); - this.dataWatcher.updateObject(4, 0); - } - - if (getAmount() > 0) { - // setColor(getColorFromString("Full")); - setDefaultMass(-getSpec().getMass()); - if ((motionX>0.01 || motionZ>0.01) && ticksExisted % 40 == 0) { - drain(ForgeDirection.UNKNOWN, 6,true); - } - - } else if (getAmount() <= 0) { - // setColor(getColorFromString("Empty")); - setDefaultMass(getSpec().getMass()); - } - } - - public int getDiesel() { - return (this.dataWatcher.getWatchableObjectInt(18)); - } - - public int getLiquidItemID() { - return (this.dataWatcher.getWatchableObjectInt(4)); - } - - public LiquidManager.StandardTank getTank() { - return theTank; - } - - @Override - protected void writeEntityToNBT(NBTTagCompound nbttagcompound) { - super.writeEntityToNBT(nbttagcompound); - NBTTagList nbttaglist = new NBTTagList(); - for (int i = 0; i < cargoItems.length; i++) { - if (cargoItems[i] != null) { - NBTTagCompound nbttagcompound1 = new NBTTagCompound(); - nbttagcompound1.setByte("Slot", (byte) i); - cargoItems[i].writeToNBT(nbttagcompound1); - nbttaglist.appendTag(nbttagcompound1); - } - } - - - nbttagcompound.setTag("Items", nbttaglist); - if (theTank !=null && theTank.getFluid() != null) { - new FluidStack(theTank.getFluid(), this.dataWatcher.getWatchableObjectInt(18)).writeToNBT(nbttagcompound); - } - } - - @Override - protected void readEntityFromNBT(NBTTagCompound nbttagcompound) { - super.readEntityFromNBT(nbttagcompound); - NBTTagList nbttaglist = nbttagcompound.getTagList("Items", Constants.NBT.TAG_COMPOUND); - cargoItems = new ItemStack[getSizeInventory()]; - for (int i = 0; i < nbttaglist.tagCount(); i++) { - NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); - int j = nbttagcompound1.getByte("Slot") & 0xff; - if (j >= 0 && j < cargoItems.length) { - cargoItems[j] = ItemStack.loadItemStackFromNBT(nbttagcompound1); - } - } - if (nbttagcompound.hasKey("FluidName")) { - fill(ForgeDirection.UNKNOWN, FluidStack.loadFluidStackFromNBT(nbttagcompound), true); - } - - } - - private void placeInInvent(ItemStack itemstack1) { - for (int i = 1; i < cargoItems.length; i++) { - if (cargoItems[i] == null) { - cargoItems[i] = itemstack1; - return; - } - else if (cargoItems[i] != null && cargoItems[i].getItem() == itemstack1.getItem() && itemstack1.isStackable() && (!itemstack1.getHasSubtypes() || cargoItems[i].getItemDamage() == itemstack1.getItemDamage()) && ItemStack.areItemStackTagsEqual(cargoItems[i], itemstack1)) { - int var9 = cargoItems[i].stackSize + itemstack1.stackSize; - if (var9 <= itemstack1.getMaxStackSize()) { - cargoItems[i].stackSize = var9; - - } - else if (cargoItems[i].stackSize < itemstack1.getMaxStackSize()) { - cargoItems[i].stackSize += 1; - } - return; - } - else if (i == cargoItems.length - 1) { - entityDropItem(itemstack1,1); - return; - } - } - } - - public void liquidInSlot(ItemStack itemstack) { - if (worldObj.isRemote) - return; - this.update += 1; - if (this.update % 8 == 0 && itemstack != null) { - ItemStack result = LiquidManager.getInstance().processContainer(this, 0, this, itemstack); - if (result != null) { - placeInInvent(result); - } - } - } - - public ItemStack checkInvent(ItemStack cargoItems0) { - - if (getDiesel() > 0) { - fuelTrain = (getDiesel()); - } - if (fuelTrain <= 0) { - motionX *= 0.88; - motionZ *= 0.88; - } - if (cargoItems0 != null) { - liquidInSlot(cargoItems0); - } - return cargoItems0; - } - - public void initFreightWater() { - freightInventorySize = 2; - cargoItems = new ItemStack[freightInventorySize]; - } - - @Override - public String getInventoryName() { - return "EMD F7 B-Unit"; - } - - @Override - public int getSizeInventory() { - return freightInventorySize; - } - - @Override - public boolean interactFirst(EntityPlayer entityplayer) { - if ((super.interactFirst(entityplayer))) { - return false; - } - if (!this.worldObj.isRemote) { - entityplayer.openGui(Traincraft.instance, GuiIDs.LIQUID, worldObj, this.getEntityId(), -1, (int) this.posZ); - } - return true; - } - - @Override - public boolean isStorageCart() { - return true; - } - - @Override - public float getOptimalDistance(EntityMinecart cart) { - return 2.2F; - } - - - @Override - public int fill(ForgeDirection from, FluidStack resource, boolean doFill) { - return theTank.fill(resource, doFill); - } - - @Override - public FluidStack drain(ForgeDirection from, FluidStack resource, boolean doDrain) { - if (resource == null || !resource.isFluidEqual(theTank.getFluid())) { - return null; - } - return theTank.drain(resource.amount, doDrain); - } - - @Override - public FluidStack drain(ForgeDirection from, int maxDrain, boolean doDrain) { - return theTank.drain(maxDrain, doDrain); - } - - @Override - public boolean canFill(ForgeDirection from, Fluid fluid) { - return true; - } - - @Override - public boolean canDrain(ForgeDirection from, Fluid fluid) { - return true; - } - - @Override - public FluidTankInfo[] getTankInfo(ForgeDirection from) { - return new FluidTankInfo[] { theTank.getInfo() }; - } - - public FluidStack getFluid() { - return theTank.getFluid(); - } - - public int getFluidAmount() { - return dataWatcher.getWatchableObjectInt(18); - } - - @Override - public String getLiquidName(){ - return FluidRegistry.getFluid(this.dataWatcher.getWatchableObjectInt(4))!=null?FluidRegistry.getFluid(this.dataWatcher.getWatchableObjectInt(4)).getName():null; - } +public class EntityBUnitEMDF7 extends LiquidTank implements IFluidHandler { + public int freightInventorySize; + + private int update = 8; + private final LiquidManager.StandardTank theTank; + + public EntityBUnitEMDF7(World world) { + super(world); + initFreightWater(); + this.theTank = LiquidManager.getInstance().new FilteredTank(getSpec().getTankCapacity(), LiquidManager.dieselFilter()); + } + + public EntityBUnitEMDF7(World world, double d, double d1, double d2) { + this(world); + setPosition(d, d1 + yOffset, d2); + motionX = 0.0D; + motionY = 0.0D; + motionZ = 0.0D; + prevPosX = d; + prevPosY = d1; + prevPosZ = d2; + } + + @Override + public void setDead() { + super.setDead(); + isDead = true; + } + + @Override + public void onUpdate() { + super.onUpdate(); + checkInvent(cargoItems[0]); + if (worldObj.isRemote) { + return; + } + + if (theTank != null && theTank.getFluid() != null) { + this.dataWatcher.updateObject(18, theTank.getFluidAmount()); + this.dataWatcher.updateObject(4, theTank.getFluid().getFluidID()); + if (theTank.getFluid().amount <= 1) { + motionX *= 0.94; + motionZ *= 0.94; + } + } else if (theTank != null && theTank.getFluid() == null) { + this.dataWatcher.updateObject(18, 0); + this.dataWatcher.updateObject(4, 0); + } + + if (getAmount() > 0) { + // setColor(getColorFromString("Full")); + setDefaultMass(-getSpec().getMass()); + if ((motionX > 0.01 || motionZ > 0.01) && ticksExisted % 40 == 0) { + drain(ForgeDirection.UNKNOWN, 6, true); + } + + } else if (getAmount() <= 0) { + // setColor(getColorFromString("Empty")); + setDefaultMass(getSpec().getMass()); + } + } + + public int getDiesel() { + return (this.dataWatcher.getWatchableObjectInt(18)); + } + + public LiquidManager.StandardTank getTank() { + return theTank; + } + + @Override + protected void writeEntityToNBT(NBTTagCompound nbttagcompound) { + super.writeEntityToNBT(nbttagcompound); + NBTTagList nbttaglist = new NBTTagList(); + for (int i = 0; i < cargoItems.length; i++) { + if (cargoItems[i] != null) { + NBTTagCompound nbttagcompound1 = new NBTTagCompound(); + nbttagcompound1.setByte("Slot", (byte) i); + cargoItems[i].writeToNBT(nbttagcompound1); + nbttaglist.appendTag(nbttagcompound1); + } + } + + + nbttagcompound.setTag("Items", nbttaglist); + if (theTank != null && theTank.getFluid() != null) { + new FluidStack(theTank.getFluid(), this.dataWatcher.getWatchableObjectInt(18)).writeToNBT(nbttagcompound); + } + } + + @Override + protected void readEntityFromNBT(NBTTagCompound nbttagcompound) { + super.readEntityFromNBT(nbttagcompound); + NBTTagList nbttaglist = nbttagcompound.getTagList("Items", Constants.NBT.TAG_COMPOUND); + cargoItems = new ItemStack[getSizeInventory()]; + for (int i = 0; i < nbttaglist.tagCount(); i++) { + NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); + int j = nbttagcompound1.getByte("Slot") & 0xff; + if (j < cargoItems.length) { + cargoItems[j] = ItemStack.loadItemStackFromNBT(nbttagcompound1); + } + } + + if (nbttagcompound.hasKey("FluidName")) { + fill(ForgeDirection.UNKNOWN, FluidStack.loadFluidStackFromNBT(nbttagcompound), true); + } + } + + private void placeInInvent(ItemStack itemstack1) { + for (int i = 1; i < cargoItems.length; i++) { + if (cargoItems[i] == null) { + cargoItems[i] = itemstack1; + return; + } else if (cargoItems[i] != null && cargoItems[i].getItem() == itemstack1.getItem() && itemstack1.isStackable() && (!itemstack1.getHasSubtypes() || cargoItems[i].getItemDamage() == itemstack1.getItemDamage()) && ItemStack.areItemStackTagsEqual(cargoItems[i], itemstack1)) { + int var9 = cargoItems[i].stackSize + itemstack1.stackSize; + if (var9 <= itemstack1.getMaxStackSize()) { + cargoItems[i].stackSize = var9; + + } else if (cargoItems[i].stackSize < itemstack1.getMaxStackSize()) { + cargoItems[i].stackSize += 1; + } + return; + } else if (i == cargoItems.length - 1) { + entityDropItem(itemstack1, 1); + return; + } + } + } + + public void liquidInSlot(ItemStack itemstack) { + if (worldObj.isRemote) { + return; + } + + this.update += 1; + if (this.update % 8 == 0 && itemstack != null) { + ItemStack result = LiquidManager.getInstance().processContainer(this, 0, this, itemstack); + if (result != null) { + placeInInvent(result); + } + } + } + + public ItemStack checkInvent(ItemStack cargoItems0) { + if (getDiesel() > 0) { + fuelTrain = (getDiesel()); + } + + if (fuelTrain <= 0) { + motionX *= 0.88; + motionZ *= 0.88; + } + + if (cargoItems0 != null) { + liquidInSlot(cargoItems0); + } + return cargoItems0; + } + + public void initFreightWater() { + freightInventorySize = 2; + cargoItems = new ItemStack[freightInventorySize]; + } + + @Override + public String getInventoryName() { + return "EMD F7 B-Unit"; + } + + @Override + public int getSizeInventory() { + return freightInventorySize; + } + + @Override + public boolean interactFirst(EntityPlayer entityplayer) { + if ((super.interactFirst(entityplayer))) { + return false; + } + + if (!this.worldObj.isRemote) { + entityplayer.openGui(Traincraft.instance, GuiIDs.LIQUID, worldObj, this.getEntityId(), -1, (int) this.posZ); + } + return true; + } + + @Override + public boolean isStorageCart() { + return true; + } + + @Override + public float getOptimalDistance(EntityMinecart cart) { + return 2.2F; + } + + + @Override + public int fill(ForgeDirection from, FluidStack resource, boolean doFill) { + return theTank.fill(resource, doFill); + } + + @Override + public FluidStack drain(ForgeDirection from, FluidStack resource, boolean doDrain) { + if (resource == null || !resource.isFluidEqual(theTank.getFluid())) { + return null; + } + return theTank.drain(resource.amount, doDrain); + } + + @Override + public FluidStack drain(ForgeDirection from, int maxDrain, boolean doDrain) { + return theTank.drain(maxDrain, doDrain); + } + + @Override + public FluidTankInfo[] getTankInfo(ForgeDirection from) { + return new FluidTankInfo[]{theTank.getInfo()}; + } + + public FluidStack getFluid() { + return theTank.getFluid(); + } + + public int getFluidAmount() { + return dataWatcher.getWatchableObjectInt(18); + } + + @Override + public String getLiquidName() { + return FluidRegistry.getFluid(this.dataWatcher.getWatchableObjectInt(4)) != null ? FluidRegistry.getFluid(this.dataWatcher.getWatchableObjectInt(4)).getName() : null; + } } \ No newline at end of file diff --git a/src/main/java/train/common/entity/rollingStock/EntityBoulderWagon.java b/src/main/java/train/common/entity/rollingStock/EntityBoulderWagon.java index 5d304e2e34..7993eadc30 100644 --- a/src/main/java/train/common/entity/rollingStock/EntityBoulderWagon.java +++ b/src/main/java/train/common/entity/rollingStock/EntityBoulderWagon.java @@ -12,15 +12,16 @@ import train.common.api.Freight; import train.common.library.GuiIDs; -public class EntityBoulderWagon extends Freight implements IInventory { +public class EntityBoulderWagon extends Freight implements IInventory { public int freightInventorySize; public int numFreightSlots; + public EntityBoulderWagon(World world) { super(world); initFreightCart(); } - public EntityBoulderWagon(World world, double d, double d1, double d2){ + public EntityBoulderWagon(World world, double d, double d1, double d2) { this(world); setPosition(d, d1 + yOffset, d2); motionX = 0.0D; @@ -37,6 +38,7 @@ public void initFreightCart() { freightInventorySize = getSpec().getCargoCapacity(); cargoItems = new ItemStack[freightInventorySize]; } + @Override public void setDead() { super.setDead(); @@ -47,6 +49,7 @@ public void setDead() { protected void writeEntityToNBT(NBTTagCompound nbttagcompound) { super.writeEntityToNBT(nbttagcompound); NBTTagList nbttaglist = new NBTTagList(); + for (int i = 0; i < cargoItems.length; i++) { if (cargoItems[i] != null) { NBTTagCompound nbttagcompound1 = new NBTTagCompound(); @@ -68,7 +71,7 @@ protected void readEntityFromNBT(NBTTagCompound nbttagcompound) { for (int i = 0; i < nbttaglist.tagCount(); i++) { NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); int j = nbttagcompound1.getByte("Slot") & 0xff; - if (j >= 0 && j < cargoItems.length) { + if (j < cargoItems.length) { cargoItems[j] = ItemStack.loadItemStackFromNBT(nbttagcompound1); } } @@ -86,18 +89,13 @@ public int getSizeInventory() { @Override public boolean interactFirst(EntityPlayer entityplayer) { - if ((super.interactFirst(entityplayer))) { + if (super.interactFirst(entityplayer)) { return false; } entityplayer.openGui(Traincraft.instance, GuiIDs.FREIGHT, worldObj, this.getEntityId(), -1, (int) this.posZ); return true; } - @Override - public boolean isStorageCart() { - return true; - } - @Override public float getOptimalDistance(EntityMinecart cart) { return 0.8F; @@ -107,9 +105,4 @@ public float getOptimalDistance(EntityMinecart cart) { public int getInventoryStackLimit() { return 1; } - - @Override - public boolean isItemValidForSlot(int i, ItemStack itemstack) { - return true; - } } diff --git a/src/main/java/train/common/entity/rollingStock/EntityBoxCartPRR.java b/src/main/java/train/common/entity/rollingStock/EntityBoxCartPRR.java index e18552227b..2b66311a9e 100644 --- a/src/main/java/train/common/entity/rollingStock/EntityBoxCartPRR.java +++ b/src/main/java/train/common/entity/rollingStock/EntityBoxCartPRR.java @@ -74,7 +74,7 @@ protected void readEntityFromNBT(NBTTagCompound nbttagcompound) { for (int i = 0; i < nbttaglist.tagCount(); i++) { NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); int j = nbttagcompound1.getByte("Slot") & 0xff; - if (j >= 0 && j < cargoItems.length) { + if (j < cargoItems.length) { cargoItems[j] = ItemStack.loadItemStackFromNBT(nbttagcompound1); } } @@ -92,30 +92,15 @@ public int getSizeInventory() { @Override public boolean interactFirst(EntityPlayer entityplayer) { - if ((super.interactFirst(entityplayer))) { + if (super.interactFirst(entityplayer)) { return false; } entityplayer.openGui(Traincraft.instance, GuiIDs.FREIGHT, worldObj, this.getEntityId(), -1, (int) this.posZ); return true; } - @Override - public boolean isStorageCart() { - return true; - } - - @Override + @Override public float getOptimalDistance(EntityMinecart cart) { return 3.05F; } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isItemValidForSlot(int i, ItemStack itemstack) { - return true; - } } \ No newline at end of file diff --git a/src/main/java/train/common/entity/rollingStock/EntityBoxCartUS.java b/src/main/java/train/common/entity/rollingStock/EntityBoxCartUS.java index e03c654463..cee0dd4e8f 100644 --- a/src/main/java/train/common/entity/rollingStock/EntityBoxCartUS.java +++ b/src/main/java/train/common/entity/rollingStock/EntityBoxCartUS.java @@ -13,109 +13,90 @@ import train.common.library.GuiIDs; public class EntityBoxCartUS extends Freight implements IInventory { - public int freightInventorySize; - public int numFreightSlots; + public int freightInventorySize; + public int numFreightSlots; + + public EntityBoxCartUS(World world) { + super(world); + initFreightCart(); + } + + public void initFreightCart() { + numFreightSlots = 9; + freightInventorySize = 45; + cargoItems = new ItemStack[freightInventorySize]; + } + + public EntityBoxCartUS(World world, double d, double d1, double d2) { + this(world); + setPosition(d, d1 + (double) yOffset, d2); + motionX = 0.0D; + motionY = 0.0D; + motionZ = 0.0D; + prevPosX = d; + prevPosY = d1; + prevPosZ = d2; + } + + @Override + public double getMountedYOffset() { + return (double) height * 0.0D - 0.30000001192092896D; + } + + @Override + public void setDead() { + super.setDead(); + isDead = true; + } + + @Override + protected void writeEntityToNBT(NBTTagCompound nbttagcompound) { + super.writeEntityToNBT(nbttagcompound); + NBTTagList nbttaglist = new NBTTagList(); + for (int i = 0; i < cargoItems.length; i++) { + if (cargoItems[i] != null) { + NBTTagCompound nbttagcompound1 = new NBTTagCompound(); + nbttagcompound1.setByte("Slot", (byte) i); + cargoItems[i].writeToNBT(nbttagcompound1); + nbttaglist.appendTag(nbttagcompound1); + } + } + + nbttagcompound.setTag("Items", nbttaglist); + } + + @Override + protected void readEntityFromNBT(NBTTagCompound nbttagcompound) { + super.readEntityFromNBT(nbttagcompound); + + NBTTagList nbttaglist = nbttagcompound.getTagList("Items", Constants.NBT.TAG_COMPOUND); + cargoItems = new ItemStack[getSizeInventory()]; + for (int i = 0; i < nbttaglist.tagCount(); i++) { + NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); + int j = nbttagcompound1.getByte("Slot") & 0xff; + if (j < cargoItems.length) { + cargoItems[j] = ItemStack.loadItemStackFromNBT(nbttagcompound1); + } + } + } + + @Override + public int getSizeInventory() { + return freightInventorySize; + } + + @Override + public boolean interactFirst(EntityPlayer entityplayer) { + if ((super.interactFirst(entityplayer))) { + return false; + } + entityplayer.openGui(Traincraft.instance, GuiIDs.FREIGHT, worldObj, this.getEntityId(), -1, (int) this.posZ); + return true; + } + + @Override + public float getOptimalDistance(EntityMinecart cart) { + return 1.65F; + } - public EntityBoxCartUS(World world) { - super(world); - initFreightCart(); - } - - public void initFreightCart() { - numFreightSlots = 9; - freightInventorySize = 45; - cargoItems = new ItemStack[freightInventorySize]; - } - - public EntityBoxCartUS(World world, double d, double d1, double d2) { - this(world); - setPosition(d, d1 + (double) yOffset, d2); - motionX = 0.0D; - motionY = 0.0D; - motionZ = 0.0D; - prevPosX = d; - prevPosY = d1; - prevPosZ = d2; - } - - @Override - public double getMountedYOffset() { - return (double) height * 0.0D - 0.30000001192092896D; - } - - @Override - public void setDead() { - super.setDead(); - isDead = true; - } - - @Override - protected void writeEntityToNBT(NBTTagCompound nbttagcompound) { - super.writeEntityToNBT(nbttagcompound); - NBTTagList nbttaglist = new NBTTagList(); - for (int i = 0; i < cargoItems.length; i++) { - if (cargoItems[i] != null) { - NBTTagCompound nbttagcompound1 = new NBTTagCompound(); - nbttagcompound1.setByte("Slot", (byte) i); - cargoItems[i].writeToNBT(nbttagcompound1); - nbttaglist.appendTag(nbttagcompound1); - } - } - - nbttagcompound.setTag("Items", nbttaglist); - } - - @Override - protected void readEntityFromNBT(NBTTagCompound nbttagcompound) { - super.readEntityFromNBT(nbttagcompound); - - NBTTagList nbttaglist = nbttagcompound.getTagList("Items", Constants.NBT.TAG_COMPOUND); - cargoItems = new ItemStack[getSizeInventory()]; - for (int i = 0; i < nbttaglist.tagCount(); i++) { - NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); - int j = nbttagcompound1.getByte("Slot") & 0xff; - if (j >= 0 && j < cargoItems.length) { - cargoItems[j] = ItemStack.loadItemStackFromNBT(nbttagcompound1); - } - } - } - - @Override - public String getInventoryName() { - return "Freight cart"; - } - - @Override - public int getSizeInventory() { - return freightInventorySize; - } - - @Override - public boolean interactFirst(EntityPlayer entityplayer) { - if ((super.interactFirst(entityplayer))) { - return false; - } - entityplayer.openGui(Traincraft.instance, GuiIDs.FREIGHT, worldObj, this.getEntityId(), -1, (int) this.posZ); - return true; - } - - @Override - public boolean isStorageCart() { - return true; - } - - @Override - public float getOptimalDistance(EntityMinecart cart) { - return 1.65F; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isItemValidForSlot(int i, ItemStack itemstack) { - return true; - } } \ No newline at end of file diff --git a/src/main/java/train/common/entity/rollingStock/EntityBulkheadFlatCart.java b/src/main/java/train/common/entity/rollingStock/EntityBulkheadFlatCart.java index 93d6ebb7c3..af46290469 100644 --- a/src/main/java/train/common/entity/rollingStock/EntityBulkheadFlatCart.java +++ b/src/main/java/train/common/entity/rollingStock/EntityBulkheadFlatCart.java @@ -14,108 +14,104 @@ public class EntityBulkheadFlatCart extends Freight implements IInventory { - public int freightInventorySize; - public int numFreightSlots; - - public EntityBulkheadFlatCart(World world) { - super(world); - initBulkheadFlat(); - } - - public void initBulkheadFlat() { - numFreightSlots = 9; - freightInventorySize = getSpec().getCargoCapacity(); - cargoItems = new ItemStack[freightInventorySize]; - } - - public EntityBulkheadFlatCart(World world, double d, double d1, double d2) { - this(world); - setPosition(d, d1 + (double) yOffset, d2); - motionX = 0.0D; - motionY = 0.0D; - motionZ = 0.0D; - prevPosX = d; - prevPosY = d1; - prevPosZ = d2; - - } - - @Override - public void onUpdate() { - super.onUpdate(); - } - - @Override - public void setDead() { - super.setDead(); - isDead = true; - } - - @Override - protected void writeEntityToNBT(NBTTagCompound nbttagcompound) { - super.writeEntityToNBT(nbttagcompound); - - NBTTagList nbttaglist = new NBTTagList(); - for (int i = 0; i < cargoItems.length; i++) { - if (cargoItems[i] != null) { - NBTTagCompound nbttagcompound1 = new NBTTagCompound(); - nbttagcompound1.setByte("Slot", (byte) i); - cargoItems[i].writeToNBT(nbttagcompound1); - nbttaglist.appendTag(nbttagcompound1); - } - } - nbttagcompound.setTag("Items", nbttaglist); - } - - @Override - protected void readEntityFromNBT(NBTTagCompound nbttagcompound) { - super.readEntityFromNBT(nbttagcompound); - - NBTTagList nbttaglist = nbttagcompound.getTagList("Items", Constants.NBT.TAG_COMPOUND); - cargoItems = new ItemStack[getSizeInventory()]; - for (int i = 0; i < nbttaglist.tagCount(); i++) { - NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); - int j = nbttagcompound1.getByte("Slot") & 0xff; - if (j >= 0 && j < cargoItems.length) { - cargoItems[j] = ItemStack.loadItemStackFromNBT(nbttagcompound1); - } - } - } - - @Override - public String getInventoryName() { - return "Bulkhead Flat Cart"; - } - - @Override - public int getSizeInventory() { - return freightInventorySize; - } - - @Override - public boolean interactFirst(EntityPlayer entityplayer) { - playerEntity = entityplayer; - if ((super.interactFirst(entityplayer))) { - return false; - } - if (!this.worldObj.isRemote) { - entityplayer.openGui(Traincraft.instance, GuiIDs.FREIGHT, worldObj, this.getEntityId(), -1, (int) this.posZ); - } - return true; - } - - @Override - public boolean canBeRidden() { - return false; - } - - @Override - public float getOptimalDistance(EntityMinecart cart) { - return 2.3F; - } - - @Override - public boolean isItemValidForSlot(int i, ItemStack itemstack) { - return true; - } + public int freightInventorySize; + public int numFreightSlots; + + public EntityBulkheadFlatCart(World world) { + super(world); + initBulkheadFlat(); + } + + public void initBulkheadFlat() { + numFreightSlots = 9; + freightInventorySize = getSpec().getCargoCapacity(); + cargoItems = new ItemStack[freightInventorySize]; + } + + public EntityBulkheadFlatCart(World world, double d, double d1, double d2) { + this(world); + setPosition(d, d1 + (double) yOffset, d2); + motionX = 0.0D; + motionY = 0.0D; + motionZ = 0.0D; + prevPosX = d; + prevPosY = d1; + prevPosZ = d2; + + } + + @Override + public void onUpdate() { + super.onUpdate(); + } + + @Override + public void setDead() { + super.setDead(); + isDead = true; + } + + @Override + protected void writeEntityToNBT(NBTTagCompound nbttagcompound) { + super.writeEntityToNBT(nbttagcompound); + + NBTTagList nbttaglist = new NBTTagList(); + for (int i = 0; i < cargoItems.length; i++) { + if (cargoItems[i] != null) { + NBTTagCompound nbttagcompound1 = new NBTTagCompound(); + nbttagcompound1.setByte("Slot", (byte) i); + cargoItems[i].writeToNBT(nbttagcompound1); + nbttaglist.appendTag(nbttagcompound1); + } + } + nbttagcompound.setTag("Items", nbttaglist); + } + + @Override + protected void readEntityFromNBT(NBTTagCompound nbttagcompound) { + super.readEntityFromNBT(nbttagcompound); + + NBTTagList nbttaglist = nbttagcompound.getTagList("Items", Constants.NBT.TAG_COMPOUND); + cargoItems = new ItemStack[getSizeInventory()]; + for (int i = 0; i < nbttaglist.tagCount(); i++) { + NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); + int j = nbttagcompound1.getByte("Slot") & 0xff; + if (j < cargoItems.length) { + cargoItems[j] = ItemStack.loadItemStackFromNBT(nbttagcompound1); + } + } + } + + @Override + public String getInventoryName() { + return "Bulkhead Flat Cart"; + } + + @Override + public int getSizeInventory() { + return freightInventorySize; + } + + @Override + public boolean interactFirst(EntityPlayer entityplayer) { + playerEntity = entityplayer; + if (super.interactFirst(entityplayer)) { + return false; + } + + if (!this.worldObj.isRemote) { + entityplayer.openGui(Traincraft.instance, GuiIDs.FREIGHT, worldObj, this.getEntityId(), -1, (int) this.posZ); + } + return true; + } + + @Override + public boolean canBeRidden() { + return false; + } + + @Override + public float getOptimalDistance(EntityMinecart cart) { + return 2.3F; + } } \ No newline at end of file diff --git a/src/main/java/train/common/entity/rollingStock/EntityCaboose.java b/src/main/java/train/common/entity/rollingStock/EntityCaboose.java index 3a37bede8e..74cb11db4e 100644 --- a/src/main/java/train/common/entity/rollingStock/EntityCaboose.java +++ b/src/main/java/train/common/entity/rollingStock/EntityCaboose.java @@ -39,18 +39,21 @@ public void setDead() { @Override public boolean interactFirst(EntityPlayer entityplayer) { playerEntity = entityplayer; - if ((super.interactFirst(entityplayer))) { + if (super.interactFirst(entityplayer)) { return false; } + if (!worldObj.isRemote) { ItemStack itemstack = entityplayer.inventory.getCurrentItem(); - if(lockThisCart(itemstack, entityplayer))return true; - if (riddenByEntity != null && (riddenByEntity instanceof EntityPlayer) && riddenByEntity != entityplayer) { + if(lockThisCart(itemstack, entityplayer)) { return true; } - if (!worldObj.isRemote) { - entityplayer.mountEntity(this); + + if (riddenByEntity != null && (riddenByEntity instanceof EntityPlayer) && riddenByEntity != entityplayer) { + return true; } + + entityplayer.mountEntity(this); } return true; } diff --git a/src/main/java/train/common/entity/rollingStock/EntityCaboose3.java b/src/main/java/train/common/entity/rollingStock/EntityCaboose3.java index 91be722031..744d02d267 100644 --- a/src/main/java/train/common/entity/rollingStock/EntityCaboose3.java +++ b/src/main/java/train/common/entity/rollingStock/EntityCaboose3.java @@ -9,66 +9,75 @@ public class EntityCaboose3 extends EntityRollingStock implements IPassenger { - public EntityCaboose3(World world) { - super(world); - } + public EntityCaboose3(World world) { + super(world); + } - public EntityCaboose3(World world, double d, double d1, double d2) { - this(world); - setPosition(d, d1 + (double) yOffset, d2); - motionX = 0.0D; - motionY = 0.0D; - motionZ = 0.0D; - prevPosX = d; - prevPosY = d1; - prevPosZ = d2; - } - @Override - public void updateRiderPosition() { - if(riddenByEntity==null){return;} - riddenByEntity.setPosition(posX, posY + getMountedYOffset() + riddenByEntity.getYOffset(), posZ); - } - @Override - public void setDead() { - super.setDead(); - isDead = true; - } - @Override - public boolean interactFirst(EntityPlayer entityplayer) { - playerEntity = entityplayer; - if ((super.interactFirst(entityplayer))) { - return false; - } - if (!worldObj.isRemote) { - ItemStack itemstack = entityplayer.inventory.getCurrentItem(); - if(lockThisCart(itemstack, entityplayer))return true; - if (riddenByEntity != null && (riddenByEntity instanceof EntityPlayer) && riddenByEntity != entityplayer) { - return true; - } - if (!worldObj.isRemote) { - entityplayer.mountEntity(this); - } - } - return true; - } + public EntityCaboose3(World world, double d, double d1, double d2) { + this(world); + setPosition(d, d1 + (double) yOffset, d2); + motionX = 0.0D; + motionY = 0.0D; + motionZ = 0.0D; + prevPosX = d; + prevPosY = d1; + prevPosZ = d2; + } - @Override - public boolean canBeRidden() { - return true; - } + @Override + public void updateRiderPosition() { + if (riddenByEntity == null) { + return; + } - @Override - public boolean isStorageCart() { - return false; - } + riddenByEntity.setPosition(posX, posY + getMountedYOffset() + riddenByEntity.getYOffset(), posZ); + } - @Override - public boolean isPoweredCart() { - return false; - } + @Override + public void setDead() { + super.setDead(); + isDead = true; + } - @Override - public float getOptimalDistance(EntityMinecart cart) { - return 1.3F; - } + @Override + public boolean interactFirst(EntityPlayer entityplayer) { + playerEntity = entityplayer; + if (super.interactFirst(entityplayer)) { + return false; + } + + if (!worldObj.isRemote) { + ItemStack itemstack = entityplayer.inventory.getCurrentItem(); + if (lockThisCart(itemstack, entityplayer)) { + return true; + } + + if (riddenByEntity != null && (riddenByEntity instanceof EntityPlayer) && riddenByEntity != entityplayer) { + return true; + } + + entityplayer.mountEntity(this); + } + return true; + } + + @Override + public boolean canBeRidden() { + return true; + } + + @Override + public boolean isStorageCart() { + return false; + } + + @Override + public boolean isPoweredCart() { + return false; + } + + @Override + public float getOptimalDistance(EntityMinecart cart) { + return 1.3F; + } } \ No newline at end of file diff --git a/src/main/java/train/common/entity/rollingStock/EntityCabooseBRBrakeVan.java b/src/main/java/train/common/entity/rollingStock/EntityCabooseBRBrakeVan.java index 8feab92374..ff1d72255c 100644 --- a/src/main/java/train/common/entity/rollingStock/EntityCabooseBRBrakeVan.java +++ b/src/main/java/train/common/entity/rollingStock/EntityCabooseBRBrakeVan.java @@ -9,66 +9,75 @@ public class EntityCabooseBRBrakeVan extends EntityRollingStock implements IPassenger { - public EntityCabooseBRBrakeVan(World world) { - super(world); - } + public EntityCabooseBRBrakeVan(World world) { + super(world); + } - public EntityCabooseBRBrakeVan(World world, double d, double d1, double d2) { - this(world); - setPosition(d, d1 + (double) yOffset, d2); - motionX = 0.0D; - motionY = 0.0D; - motionZ = 0.0D; - prevPosX = d; - prevPosY = d1; - prevPosZ = d2; - } - @Override - public void updateRiderPosition() { - if(riddenByEntity==null){return;} - riddenByEntity.setPosition(posX, posY + getMountedYOffset() + riddenByEntity.getYOffset(), posZ); - } - @Override - public void setDead() { - super.setDead(); - isDead = true; - } - @Override - public boolean interactFirst(EntityPlayer entityplayer) { - playerEntity = entityplayer; - if ((super.interactFirst(entityplayer))) { - return false; - } - if (!worldObj.isRemote) { - ItemStack itemstack = entityplayer.inventory.getCurrentItem(); - if(lockThisCart(itemstack, entityplayer))return true; - if (riddenByEntity != null && (riddenByEntity instanceof EntityPlayer) && riddenByEntity != entityplayer) { + public EntityCabooseBRBrakeVan(World world, double d, double d1, double d2) { + this(world); + setPosition(d, d1 + (double) yOffset, d2); + motionX = 0.0D; + motionY = 0.0D; + motionZ = 0.0D; + prevPosX = d; + prevPosY = d1; + prevPosZ = d2; + } + + @Override + public void updateRiderPosition() { + if (riddenByEntity == null) { + return; + } + + riddenByEntity.setPosition(posX, posY + getMountedYOffset() + riddenByEntity.getYOffset(), posZ); + } + + @Override + public void setDead() { + super.setDead(); + isDead = true; + } + + @Override + public boolean interactFirst(EntityPlayer entityplayer) { + playerEntity = entityplayer; + if (super.interactFirst(entityplayer)) { + return false; + } + + if (!worldObj.isRemote) { + ItemStack itemstack = entityplayer.inventory.getCurrentItem(); + if (lockThisCart(itemstack, entityplayer)) { return true; } - if (!worldObj.isRemote) { - entityplayer.mountEntity(this); - } - } - return true; - } - @Override - public boolean canBeRidden() { - return true; - } + if (riddenByEntity != null && (riddenByEntity instanceof EntityPlayer) && riddenByEntity != entityplayer) { + return true; + } + + entityplayer.mountEntity(this); + } + return true; + } + + @Override + public boolean canBeRidden() { + return true; + } - @Override - public boolean isStorageCart() { - return false; - } + @Override + public boolean isStorageCart() { + return false; + } - @Override - public boolean isPoweredCart() { - return false; - } + @Override + public boolean isPoweredCart() { + return false; + } - @Override - public float getOptimalDistance(EntityMinecart cart) { - return 1.9F; - } + @Override + public float getOptimalDistance(EntityMinecart cart) { + return 1.9F; + } } \ No newline at end of file diff --git a/src/main/java/train/common/entity/rollingStock/EntityCabooseBapDRGW.java b/src/main/java/train/common/entity/rollingStock/EntityCabooseBapDRGW.java index 10e065e0ef..43dcd293d1 100644 --- a/src/main/java/train/common/entity/rollingStock/EntityCabooseBapDRGW.java +++ b/src/main/java/train/common/entity/rollingStock/EntityCabooseBapDRGW.java @@ -12,7 +12,7 @@ public EntityCabooseBapDRGW(World world) { super(world); } - public EntityCabooseBapDRGW(World world, double d, double d1, double d2){ + public EntityCabooseBapDRGW(World world, double d, double d1, double d2) { this(world); setPosition(d, d1 + yOffset, d2); motionX = 0.0D; @@ -25,7 +25,7 @@ public EntityCabooseBapDRGW(World world, double d, double d1, double d2){ @Override public void updateRiderPosition() { - if(riddenByEntity!=null) { + if (riddenByEntity != null) { riddenByEntity.setPosition(posX + 0.0f, posY + getMountedYOffset() + riddenByEntity.getYOffset() + -0.15, posZ + 0.0); } } @@ -39,18 +39,20 @@ public void setDead() { @Override public boolean interactFirst(EntityPlayer entityplayer) { playerEntity = entityplayer; - if ((super.interactFirst(entityplayer))) { + if (super.interactFirst(entityplayer)) { return false; } if (!worldObj.isRemote) { ItemStack itemstack = entityplayer.inventory.getCurrentItem(); - if(lockThisCart(itemstack, entityplayer))return true; - if (riddenByEntity != null && (riddenByEntity instanceof EntityPlayer) && riddenByEntity != entityplayer) { + if (lockThisCart(itemstack, entityplayer)) { return true; } - if (!worldObj.isRemote) { - entityplayer.mountEntity(this); + + if (riddenByEntity != null && (riddenByEntity instanceof EntityPlayer) && riddenByEntity != entityplayer) { + return true; } + + entityplayer.mountEntity(this); } return true; } diff --git a/src/main/java/train/common/entity/rollingStock/EntityCabooseBapHBC1C.java b/src/main/java/train/common/entity/rollingStock/EntityCabooseBapHBC1C.java index e28d033888..f55fd8e656 100644 --- a/src/main/java/train/common/entity/rollingStock/EntityCabooseBapHBC1C.java +++ b/src/main/java/train/common/entity/rollingStock/EntityCabooseBapHBC1C.java @@ -12,7 +12,7 @@ public EntityCabooseBapHBC1C(World world) { super(world); } - public EntityCabooseBapHBC1C(World world, double d, double d1, double d2){ + public EntityCabooseBapHBC1C(World world, double d, double d1, double d2) { this(world); setPosition(d, d1 + yOffset, d2); motionX = 0.0D; @@ -25,7 +25,7 @@ public EntityCabooseBapHBC1C(World world, double d, double d1, double d2){ @Override public void updateRiderPosition() { - if(riddenByEntity!=null) { + if (riddenByEntity != null) { riddenByEntity.setPosition(posX + 0.0f, posY + getMountedYOffset() + riddenByEntity.getYOffset() + -0.1, posZ + 0.0); } } @@ -39,18 +39,21 @@ public void setDead() { @Override public boolean interactFirst(EntityPlayer entityplayer) { playerEntity = entityplayer; - if ((super.interactFirst(entityplayer))) { + if (super.interactFirst(entityplayer)) { return false; } + if (!worldObj.isRemote) { ItemStack itemstack = entityplayer.inventory.getCurrentItem(); - if(lockThisCart(itemstack, entityplayer))return true; - if (riddenByEntity != null && (riddenByEntity instanceof EntityPlayer) && riddenByEntity != entityplayer) { + if (lockThisCart(itemstack, entityplayer)) { return true; } - if (!worldObj.isRemote) { - entityplayer.mountEntity(this); + + if (riddenByEntity != null && (riddenByEntity instanceof EntityPlayer) && riddenByEntity != entityplayer) { + return true; } + + entityplayer.mountEntity(this); } return true; } diff --git a/src/main/java/train/common/entity/rollingStock/EntityCabooseBapWVcaboose.java b/src/main/java/train/common/entity/rollingStock/EntityCabooseBapWVcaboose.java index c111a39e6b..1b95fb85f6 100644 --- a/src/main/java/train/common/entity/rollingStock/EntityCabooseBapWVcaboose.java +++ b/src/main/java/train/common/entity/rollingStock/EntityCabooseBapWVcaboose.java @@ -12,7 +12,7 @@ public EntityCabooseBapWVcaboose(World world) { super(world); } - public EntityCabooseBapWVcaboose(World world, double d, double d1, double d2){ + public EntityCabooseBapWVcaboose(World world, double d, double d1, double d2) { this(world); setPosition(d, d1 + yOffset, d2); motionX = 0.0D; @@ -25,43 +25,11 @@ public EntityCabooseBapWVcaboose(World world, double d, double d1, double d2){ @Override public void updateRiderPosition() { - if(riddenByEntity!=null) { + if (riddenByEntity != null) { riddenByEntity.setPosition(posX + 0.0f, posY + getMountedYOffset() + riddenByEntity.getYOffset() + 0.3125, posZ + 0.0); } } - /* @Override - public void updateRiderPosition() { - if (riddenByEntity == null) {return;} - double pitchRads = this.anglePitchClient * Math.PI / 180.0D; - double distance = -0.25; //efault 0 for center - double distance2 = 1.0; - double yOffset = 0.33; - float rotationCos1 = (float) Math.cos(Math.toRadians(this.renderYaw + 0));//these basically determine the rotation of the hitbox, default 90 each - float rotationSin1 = (float) Math.sin(Math.toRadians((this.renderYaw + 0)));// when 90 the rider position sticks to the side - if(side.isServer()){ - rotationCos1 = (float) Math.cos(Math.toRadians(this.serverRealRotation + 0));//same as above but server-based, needs testing tho - rotationSin1 = (float) Math.sin(Math.toRadians((this.serverRealRotation + 0))); - anglePitchClient = serverRealPitch*60; - } - float pitch = (float) (posY + ((Math.tan(pitchRads) * distance) + getMountedYOffset()) + riddenByEntity.getYOffset() + yOffset); - float pitch1 = (float) (posY + getMountedYOffset() + riddenByEntity.getYOffset() + yOffset); - double bogieX1 = (this.posX + (rotationCos1 * distance)); - double bogieZ1 = (this.posZ + (rotationSin1* distance)); - if(anglePitchClient>20 && rotationCos1 == 1){ - bogieX1-=pitchRads*2; - pitch-=pitchRads*1.2; - } - if(anglePitchClient>20 && rotationSin1 == 1){ - bogieZ1-=pitchRads*2 + 1; - pitch-=pitchRads*1.2; - } - if (pitchRads == 0.0) { - riddenByEntity.setPosition(bogieX1, pitch1, bogieZ1); - } - if (pitchRads > -1.01 && pitchRads < 1.01) { - riddenByEntity.setPosition(bogieX1, pitch, bogieZ1); - } - }*/ + @Override public void setDead() { super.setDead(); @@ -71,18 +39,21 @@ public void setDead() { @Override public boolean interactFirst(EntityPlayer entityplayer) { playerEntity = entityplayer; - if ((super.interactFirst(entityplayer))) { + if (super.interactFirst(entityplayer)) { return false; } + if (!worldObj.isRemote) { ItemStack itemstack = entityplayer.inventory.getCurrentItem(); - if(lockThisCart(itemstack, entityplayer))return true; - if (riddenByEntity != null && (riddenByEntity instanceof EntityPlayer) && riddenByEntity != entityplayer) { + if (lockThisCart(itemstack, entityplayer)) { return true; } - if (!worldObj.isRemote) { - entityplayer.mountEntity(this); + + if (riddenByEntity != null && (riddenByEntity instanceof EntityPlayer) && riddenByEntity != entityplayer) { + return true; } + + entityplayer.mountEntity(this); } return true; } diff --git a/src/main/java/train/common/inventory/TrainCraftingManager.java b/src/main/java/train/common/inventory/TrainCraftingManager.java index eff39f8a99..e200a10a9d 100644 --- a/src/main/java/train/common/inventory/TrainCraftingManager.java +++ b/src/main/java/train/common/inventory/TrainCraftingManager.java @@ -20,14 +20,14 @@ public class TrainCraftingManager { public static final TrainCraftingManager instance = new TrainCraftingManager(); /** A list of all the recipes added */ - private List recipes = new ArrayList(); + private final List recipes = new ArrayList<>(); - private final ArrayList shapedRecipes = new ArrayList(); + private final ArrayList shapedRecipes = new ArrayList<>(); /** Recipes for openHearthFurnace */ - private final HashMap> hearthFurnaceMap = new HashMap(); - private final ArrayList hearthFurnaceRecipes = new ArrayList(); - private final HashMap hearthFurnaceXpMap = new HashMap(); + private final HashMap> hearthFurnaceMap = new HashMap<>(); + private final ArrayList hearthFurnaceRecipes = new ArrayList<>(); + private final HashMap hearthFurnaceXpMap = new HashMap<>(); public static final TrainCraftingManager getInstance() { return instance; @@ -163,7 +163,7 @@ public ItemStack func_82787_a(IInventory inv, World world) { /** * returns the List<> of all recipes */ - public List getRecipeList() { + public List getRecipeList() { return this.recipes; } diff --git a/src/main/java/train/common/items/ItemRollingStock.java b/src/main/java/train/common/items/ItemRollingStock.java index a2e99cf52e..e85625e1f9 100644 --- a/src/main/java/train/common/items/ItemRollingStock.java +++ b/src/main/java/train/common/items/ItemRollingStock.java @@ -18,7 +18,6 @@ import net.minecraft.util.ChatComponentText; import net.minecraft.util.MathHelper; import net.minecraft.world.World; -import sun.java2d.loops.DrawLine; import train.common.Traincraft; import train.common.api.*; import train.common.core.handlers.ConfigHandler; @@ -26,8 +25,6 @@ import train.common.entity.rollingStock.EntityTracksBuilder; import train.common.items.ItemTCRail.TrackTypes; import train.common.library.BlockIDs; -import train.common.library.EnumTrains; -import train.common.library.Info; import train.common.tile.TileTCRail; import train.common.tile.TileTCRailGag; @@ -37,9 +34,8 @@ public class ItemRollingStock extends ItemMinecart implements IMinecart, IMinecartItem { private String iconName = ""; - private String trainName; + private final String trainName; private String trainCreator; - private int trainColor = -1; public ItemRollingStock(String iconName) { super(1); @@ -88,7 +84,7 @@ public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlaye trainCreator = var5.getString("trainCreator"); /*if (id > 0) par3List.add("\u00a77" + "ID: " + id);*/ - if (trainCreator.length() > 0) { + if (!trainCreator.isEmpty()) { par3List.add("\u00a77" + "Creator: " + trainCreator); } int color = var5.getInteger("trainColor"); @@ -101,7 +97,7 @@ public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlaye int power = getMHP(); int maxSpeed = getMaxSpeed(); String additionnalInfo = getAdditionnalInfo(); - if (getTrainType().length() > 0) { + if (!getTrainType().isEmpty()) { par3List.add("\u00a77" + "Type: " + getTrainType()); } if (power > 0) { @@ -625,7 +621,7 @@ else if ((meta == 0 || meta == 2) && (world.getBlock(i, j, k + 1) == BlockIDs.tc if (uniID != -1) rollingStock.getEntityData().setInteger("uniqueID", uniID); trainCreator = var5.getString("trainCreator"); - trainColor = var5.getInteger("trainColor"); + int trainColor = var5.getInteger("trainColor"); if (var5.hasKey("trainColor")) rollingStock.setColor(trainColor); rollingStock.trainCreator = trainCreator; From f4b65368dd5ce87aa408a06f8db2f45d13da1358 Mon Sep 17 00:00:00 2001 From: Jonathan Date: Thu, 23 Nov 2023 19:26:11 -0600 Subject: [PATCH 2/5] unused TC5 backports backported the render and a large degree of general utility functions from TC5. The next process will be performance tests and implementation of render changes. --- src/main/java/ebf/tim/render/BlockTESR.java | 18 + src/main/java/ebf/tim/utility/BitList.java | 77 + src/main/java/ebf/tim/utility/ClientUtil.java | 288 ++++ src/main/java/ebf/tim/utility/CommonUtil.java | 605 +++++++ src/main/java/ebf/tim/utility/DebugUtil.java | 140 ++ src/main/java/ebf/tim/utility/Vec5f.java | 46 + src/main/java/ebf/tim/utility/Vec6f.java | 46 + src/main/java/fexcraft/fcl/common/Static.java | 98 ++ .../fexcraft/fcl/common/lang/ArrayList.java | 38 + .../java/fexcraft/fvtm/RollingStockModel.java | 146 ++ src/main/java/fexcraft/fvtm/TurboList.java | 52 + .../java/fexcraft/tmt/slim/BoxBuilder.java | 233 +++ src/main/java/fexcraft/tmt/slim/Coord2D.java | 30 + .../fexcraft/tmt/slim/CylinderBuilder.java | 279 ++++ .../java/fexcraft/tmt/slim/JsonToTMT.java | 149 ++ .../java/fexcraft/tmt/slim/ModelBase.java | 350 ++++ .../fexcraft/tmt/slim/ModelConverter.java | 106 ++ .../java/fexcraft/tmt/slim/ModelPool.java | 76 + .../fexcraft/tmt/slim/ModelPoolEntry.java | 39 + .../fexcraft/tmt/slim/ModelPoolObjEntry.java | 189 +++ .../fexcraft/tmt/slim/ModelRendererTurbo.java | 1458 +++++++++++++++++ src/main/java/fexcraft/tmt/slim/README.md | 23 + src/main/java/fexcraft/tmt/slim/Shape2D.java | 119 ++ .../java/fexcraft/tmt/slim/Tessellator.java | 92 ++ .../java/fexcraft/tmt/slim/TextureGroup.java | 37 + .../fexcraft/tmt/slim/TextureManager.java | 531 ++++++ .../fexcraft/tmt/slim/TexturedPolygon.java | 31 + .../fexcraft/tmt/slim/TexturedVertex.java | 46 + src/main/java/fexcraft/tmt/slim/Vec3d.java | 45 + src/main/java/fexcraft/tmt/slim/Vec3f.java | 246 +++ .../java/train/client/core/ClientProxy.java | 5 + src/main/java/train/common/Traincraft.java | 1 + .../java/train/common/core/CommonProxy.java | 6 + 33 files changed, 5645 insertions(+) create mode 100644 src/main/java/ebf/tim/render/BlockTESR.java create mode 100644 src/main/java/ebf/tim/utility/BitList.java create mode 100644 src/main/java/ebf/tim/utility/ClientUtil.java create mode 100644 src/main/java/ebf/tim/utility/CommonUtil.java create mode 100644 src/main/java/ebf/tim/utility/DebugUtil.java create mode 100644 src/main/java/ebf/tim/utility/Vec5f.java create mode 100644 src/main/java/ebf/tim/utility/Vec6f.java create mode 100644 src/main/java/fexcraft/fcl/common/Static.java create mode 100644 src/main/java/fexcraft/fcl/common/lang/ArrayList.java create mode 100644 src/main/java/fexcraft/fvtm/RollingStockModel.java create mode 100644 src/main/java/fexcraft/fvtm/TurboList.java create mode 100644 src/main/java/fexcraft/tmt/slim/BoxBuilder.java create mode 100644 src/main/java/fexcraft/tmt/slim/Coord2D.java create mode 100644 src/main/java/fexcraft/tmt/slim/CylinderBuilder.java create mode 100644 src/main/java/fexcraft/tmt/slim/JsonToTMT.java create mode 100644 src/main/java/fexcraft/tmt/slim/ModelBase.java create mode 100644 src/main/java/fexcraft/tmt/slim/ModelConverter.java create mode 100644 src/main/java/fexcraft/tmt/slim/ModelPool.java create mode 100644 src/main/java/fexcraft/tmt/slim/ModelPoolEntry.java create mode 100644 src/main/java/fexcraft/tmt/slim/ModelPoolObjEntry.java create mode 100644 src/main/java/fexcraft/tmt/slim/ModelRendererTurbo.java create mode 100644 src/main/java/fexcraft/tmt/slim/README.md create mode 100644 src/main/java/fexcraft/tmt/slim/Shape2D.java create mode 100644 src/main/java/fexcraft/tmt/slim/Tessellator.java create mode 100644 src/main/java/fexcraft/tmt/slim/TextureGroup.java create mode 100644 src/main/java/fexcraft/tmt/slim/TextureManager.java create mode 100644 src/main/java/fexcraft/tmt/slim/TexturedPolygon.java create mode 100644 src/main/java/fexcraft/tmt/slim/TexturedVertex.java create mode 100644 src/main/java/fexcraft/tmt/slim/Vec3d.java create mode 100644 src/main/java/fexcraft/tmt/slim/Vec3f.java diff --git a/src/main/java/ebf/tim/render/BlockTESR.java b/src/main/java/ebf/tim/render/BlockTESR.java new file mode 100644 index 0000000000..9acab83900 --- /dev/null +++ b/src/main/java/ebf/tim/render/BlockTESR.java @@ -0,0 +1,18 @@ +package ebf.tim.render; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.tileentity.TileEntity; +import org.lwjgl.opengl.GL11; + +public class BlockTESR extends TileEntitySpecialRenderer { + + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float tick) { + GL11.glPushMatrix(); + if(tileEntity.getWorldObj()!=null) { + GL11.glTranslated(x, y, z); + } + tileEntity.func_145828_a(null); + GL11.glPopMatrix(); + } +} \ No newline at end of file diff --git a/src/main/java/ebf/tim/utility/BitList.java b/src/main/java/ebf/tim/utility/BitList.java new file mode 100644 index 0000000000..9f10790da5 --- /dev/null +++ b/src/main/java/ebf/tim/utility/BitList.java @@ -0,0 +1,77 @@ +package ebf.tim.utility; + +/** + *

bit management

+ * stores a list of bits (booleans), and converts them to a single int for efficient networking transfer. + * Currently has 16 values but can be increased to 32 without any actual problems. + * @author Eternal Blue Flame + */ +public class BitList { + private boolean[] bits = new boolean[]{false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false}; + + /*get a value in the array, index must be between 0 and 15*/ + public boolean get(int index){ + return bits[index]; + } + /*set a value in the array, index must be between - and 15*/ + public void set(int index, boolean value){ + bits[index]= value; + } + /*set the value of the array to the last 16 bits of an integer*/ + public void set(int value){ + for (int i=0; i<16; i++){ + //<< gets the bit from end to start at the position of i, for example 0 is the last bit, but 1 is second to last. + // & is to get the bits from value + bits[i]= (value & (1 << i)) != 0; + } + } + /*set the value of the array from an array of bytes*/ + public void set(byte[] values){ + for (int i=0; i<16; i++){ + if(values.length>i) { + bits[i] = values[i] == 1; + } + } + } + + public byte[] getBits() { + byte[] value= new byte[bits.length]; + for(int i=0; i loggedLangChecks = new ArrayList<>(); + + private static Minecraft getMC(){return Minecraft.getMinecraft();} + + public static int percentTop(int value, float guiTop){return (int)(guiTop*(value*0.01f));} + public static int percentLeft(int value, float guiLeft){return (int)(guiLeft*(value*0.01f));} + + + public static void drawSlots(List slots, List overlays, List slotX, List slotY, int mouseX, int mouseY, float guiLeft, float guiTop, RenderItem itemRender){ + + GL11.glPushMatrix(); + TextureManager.bindTexture(vanillaInventory); + GL11.glDisable(GL11.GL_LIGHTING); + int i=0; + for (;ix && mouseXy && mouseY Minecraft.getMinecraft().displayWidth/2) { + j2 -= 16 + k; + } + + if (k2 + i1 + 6 > Minecraft.getMinecraft().displayHeight) { + k2 -= 6; + } + + GL11.glTranslatef(0,0,1); + int j1 = -267386864; + drawGradientRect(j2 - 3, k2 - 4, j2 + k + 3, k2 - 3, j1, j1); + drawGradientRect(j2 - 3, k2 + i1 + 3, j2 + k + 3, k2 + i1 + 4, j1, j1); + drawGradientRect(j2 - 3, k2 - 3, j2 + k + 3, k2 + i1 + 3, j1, j1); + drawGradientRect(j2 - 4, k2 - 3, j2 - 3, k2 + i1 + 3, j1, j1); + drawGradientRect(j2 + k + 3, k2 - 3, j2 + k + 4, k2 + i1 + 3, j1, j1); + int k1 = 1347420415; + int l1 = (k1 & 16711422) >> 1 | k1 & -16777216; + drawGradientRect(j2 - 3, k2 - 3 + 1, j2 - 3 + 1, k2 + i1 + 3 - 1, k1, l1); + drawGradientRect(j2 + k + 2, k2 - 3 + 1, j2 + k + 3, k2 + i1 + 3 - 1, k1, l1); + drawGradientRect(j2 - 3, k2 - 3, j2 + k + 3, k2 - 3 + 1, k1, k1); + drawGradientRect(j2 - 3, k2 + i1 + 2, j2 + k + 3, k2 + i1 + 3, l1, l1); + GL11.glEnable(GL11.GL_TEXTURE_2D); + + GL11.glTranslatef(0,0,400); + Minecraft.getMinecraft().fontRenderer.drawStringWithShadow(str, j2, k2, -1); + + GL11.glEnable(GL11.GL_LIGHTING); + RenderHelper.enableStandardItemLighting(); + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + } + + + /** + * A more heavily optimized method to render text with outlines + * done by rendering once to a displaylist, then just re-rendering the displaylist with offsets to make an outline. + * + * @param font the fontRender, usually from the MC instance, but custom can be supplied. + * @param string the string of text to display + * @param x the x coord to draw at, this is not relative to the screen center. + * @param y the x coord to draw at, this is not relative to the screen center. + * @param color the hex value color to draw the center string + */ + public static void drawTextOutlined(FontRenderer font, String string, float x, float y, int color){ + GL11.glPushMatrix(); + int i= GLAllocation.generateDisplayLists(1); + GL11.glNewList(i, GL11.GL_COMPILE); + //render once, then translate around a 3x3 square. + font.drawString(string, (int)x-1, (int)y+1, 0); + GL11.glEndList(); + GL11.glTranslatef(1,0,0); + GL11.glCallList(i); + GL11.glTranslatef(1,0,0); + GL11.glCallList(i); + GL11.glTranslatef(0,-1,0); + GL11.glCallList(i); + GL11.glTranslatef(0,-1,0); + GL11.glCallList(i); + GL11.glTranslatef(-1,0,0); + GL11.glCallList(i); + GL11.glTranslatef(-1,0,0); + GL11.glCallList(i); + GL11.glTranslatef(0,1,0); + GL11.glCallList(i); + GL11.glTranslatef(0,1,0); + GL11.glCallList(i); + + font.drawString(string,(int)x,(int)y,color); + GL11.glColor4f(1,1,1,1);//fixes color bleed + GL11.glPopMatrix(); + GL11.glDeleteLists(i,1);//we don't need it later, clear it from GPU + } + + + + + /**the amount to scale the GUI by, same as vanilla*/ + private static final float guiScaler = 0.00390625F; + /** + *

Draw Texture

+ * This replaces the base class and allows us to draw textures that are stretched to the shape defined in a more efficient manner. + * NOTE: all textures must be divisible by 256x256 + * @param posX the X position on screen to draw at. + * @param posY the Y position on screen to draw at. + * @param posU the X position of the texture to start from. + * @param posV the Y position of the texture to start from. + * @param width the width of the box. + * @param height the height of the box. + * @param widthUV defines the X size of the texture part used + * @param heightUV defines the X Y size of the texture part used + */ + public static void drawTexturedRect(float posX, float posY, int posU, int posV, int width, int height, int widthUV, int heightUV) { + Tessellator tessellator = Tessellator.getInstance(); + tessellator.startDrawing(GL11.GL_QUADS); + tessellator.addVertexWithUV(posX, posY + height, 0, posU * guiScaler, (posV + heightUV) * guiScaler); + tessellator.addVertexWithUV(posX + width, posY + height, 0, (posU + widthUV) * guiScaler, (posV + heightUV) * guiScaler); + tessellator.addVertexWithUV(posX + width, posY, 0, (posU + widthUV) * guiScaler, posV * guiScaler); + tessellator.addVertexWithUV(posX, posY, 0, posU * guiScaler, posV * guiScaler); + tessellator.draw(); + } + public static void drawTexturedRect(float posX, float posY, int posU, int posV, int width, int height) { + Tessellator tessellator = Tessellator.getInstance(); + tessellator.startDrawing(GL11.GL_QUADS); + tessellator.addVertexWithUV(posX, posY + height, 0, posU * guiScaler, (posV + height) * guiScaler); + tessellator.addVertexWithUV(posX + width, posY + height, 0, (posU + width) * guiScaler, (posV + height) * guiScaler); + tessellator.addVertexWithUV(posX + width, posY, 0, (posU + width) * guiScaler, posV * guiScaler); + tessellator.addVertexWithUV(posX, posY, 0, posU * guiScaler, posV * guiScaler); + tessellator.draw(); + } + + public static void drawGradientRect(int p_73733_1_, int p_73733_2_, int p_73733_3_, int p_73733_4_, int p_73733_5_, int p_73733_6_) { + float f = (p_73733_5_ >> 24 & 255) / 255.0F; + float f1 = (p_73733_5_ >> 16 & 255) / 255.0F; + float f2 = (p_73733_5_ >> 8 & 255) / 255.0F; + float f3 = (p_73733_5_ & 255) / 255.0F; + float f4 = (p_73733_6_ >> 24 & 255) / 255.0F; + float f5 = (p_73733_6_ >> 16 & 255) / 255.0F; + float f6 = (p_73733_6_ >> 8 & 255) / 255.0F; + float f7 = (p_73733_6_ & 255) / 255.0F; + GL11.glDisable(GL11.GL_TEXTURE_2D); + GL11.glEnable(GL11.GL_BLEND); + GL11.glDisable(GL11.GL_ALPHA_TEST); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + GL11.glShadeModel(GL11.GL_SMOOTH); + net.minecraft.client.renderer.Tessellator tessellator = net.minecraft.client.renderer.Tessellator.instance; + tessellator.startDrawingQuads(); + tessellator.setColorRGBA_F(f1, f2, f3, f); + tessellator.addVertex(p_73733_3_, p_73733_2_, 300); + tessellator.addVertex(p_73733_1_, p_73733_2_, 300); + tessellator.setColorRGBA_F(f5, f6, f7, f4); + tessellator.addVertex(p_73733_1_, p_73733_4_, 300); + tessellator.addVertex(p_73733_3_, p_73733_4_, 300); + tessellator.draw(); + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glDisable(GL11.GL_BLEND); + GL11.glEnable(GL11.GL_ALPHA_TEST); + GL11.glEnable(GL11.GL_TEXTURE_2D); + } + + public static String translate(String text){ + if (StatCollector.translateToLocal(text).equals(text)){ + if(!loggedLangChecks.contains(text)) { + DebugUtil.println("Missing lang entry for: ", text, Thread.currentThread().getStackTrace()[2]); + loggedLangChecks.add(text); + } + return text; + } else { + return StatCollector.translateToLocal(text); + } + } + + public static void fixItemLighting(World w){ + if(w==null){ + Minecraft.getMinecraft().entityRenderer.disableLightmap(1D); + } + } +} diff --git a/src/main/java/ebf/tim/utility/CommonUtil.java b/src/main/java/ebf/tim/utility/CommonUtil.java new file mode 100644 index 0000000000..0e07e8195c --- /dev/null +++ b/src/main/java/ebf/tim/utility/CommonUtil.java @@ -0,0 +1,605 @@ +package ebf.tim.utility; + + +import fexcraft.tmt.slim.Vec3d; +import fexcraft.tmt.slim.Vec3f; +import net.minecraft.block.Block; +import net.minecraft.block.BlockRailBase; +import net.minecraft.entity.Entity; +import net.minecraft.entity.item.EntityMinecart; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.MathHelper; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.oredict.OreDictionary; +import org.apache.commons.codec.binary.Base64; +import org.apache.commons.io.IOUtils; +import train.common.Traincraft; +import train.common.api.AbstractTrains; + +import java.io.*; +import java.nio.charset.StandardCharsets; +import java.util.ArrayList; +import java.util.List; +import java.util.zip.GZIPInputStream; +import java.util.zip.GZIPOutputStream; + +/** + *

utilities

+ * used for misc utility functions + * + * @author Eternal Blue Flame + * @author Zora No Densha + */ +public class CommonUtil { + /**converts a degrees float to radians*/ + public static final float radianF = (float) Math.PI / 180.0f; + /**converts a radians double to degrees*/ + public static final double degreesD = 180.0d / Math.PI; + public static final float degreesF = (float) (180.0d / Math.PI); + private static List loggedLangChecks = new ArrayList<>(); + + + + /**redirect shorthand that typecasts doubles to ints + * @see #isRailBlockAt(World, int, int, int) */ + public static boolean isRailBlockAt(World world, double x, double y, double z) { + return isRailBlockAt(world,floorDouble(x), floorDouble(y),floorDouble(z)); + } + + public static Block getBlockAt(World world, double x, double y, double z){ + return world.getBlock(floorDouble(x), floorDouble(y),floorDouble(z)); + } + + public static Block getBlockAt(World world, int x, int y, int z){ + return world.getBlock(x,y,z); + } + + public static boolean setBlock(World w, int x, int y, int z, Block b){ + return w.setBlock(x,y,z,b); + } + + public static void setBlockMeta(World w, int x, int y, int z, int meta){ + w.setBlockMetadataWithNotify(x,y,z,meta,2); + w.markBlockRangeForRenderUpdate(x, y, z, x, y, z); + w.notifyBlocksOfNeighborChange(x, y, z, getBlockAt(w,x,y,z)); + w.scheduleBlockUpdate(x, y, z, getBlockAt(w,x,y,z), getBlockAt(w,x,y,z).tickRate(w)); + + w.func_147453_f(x, y, z, getBlockAt(w,x,y,z)); + } + + public static void markBlockForUpdate(World w, int x, int y, int z){ + w.markBlockForUpdate(x,y,z); + } + + public static int getBlockFacing(IBlockAccess w, int x, int y, int z){ + return w.getBlockMetadata(x,y,z); + } + + public static int getRailMeta(IBlockAccess w, EntityMinecart cart, int x, int y, int z){ + return ((BlockRailBase)w.getBlock(x,y,z)).getBasicRailMetadata(w,cart,x,y,z); + } + + public static boolean setBlock(World w, int x, int y, int z, Block b, int meta){ + boolean set =setBlock(w,x,y,z,b); + if(set) { + setBlockMeta(w, x, y, z, meta); + } + return set; + } + + public static float getMaxRailSpeed(World world, BlockRailBase rail, AbstractTrains host, double x, double y, double z){ + return (rail.getRailMaxSpeed(world, host, floorDouble(x), floorDouble(y),floorDouble(z))); + } + + public static int floorDouble(double value){ + return value < (int)value ? ((int)value) - 1 : (int)value; + } + + /** + *

Vanilla Track detection Overrrides

+ * a modified version of vanilla track detection so that way it's more efficient and can support rails from other mods. + */ + public static boolean isRailBlockAt(World world, int x, int y, int z) { + //todo ZnD support, either by jar reference or API update + return (/*world.getTileEntity(x, y, z) instanceof ITrackBase ||*/ world.getBlock(x, y, z) instanceof BlockRailBase); + } + + /** + * sound type does nothing for 1.7.10, + * in later versions it's used to identify what made the sound, like if it's for an entity or a block. + */ + public static void playSound(World world, double xCoord, double yCoord, double zCoord, String file, float volume, float pitch, int soundType){ + world.playSound(xCoord,yCoord,zCoord, file, volume,pitch,false); + } + + public static void playSound(TileEntity tile, String file, float volume, float pitch){ + tile.getWorldObj().playSound(tile.xCoord,tile.yCoord,tile.zCoord, file, volume,pitch,false); + } + + public static void playSound(Entity entity, String file, float volume, float pitch){ + entity.worldObj.playSoundAtEntity(entity, file, volume, pitch); + } + + public static boolean stringContains(String s1, String... s2){ + for(String s3 : s2) { + if (stringContains(s1,s3)){ + return true; + } + } + return false; + } + + public static boolean stringContains(String s1, String s2){ + if (s1 == null || s2 == null) { + return false; + } + return s1.contains(s2); + } + + public static int parseInt(String str, Class host) throws NumberFormatException{ + if (str == null || str.length()==0) { + return 0; + } + + int result = 0; + boolean negative = false; + for (char c : str.toCharArray()) { + switch (c){ + case '-':{negative=true;break;} + case '0':{result = (result * 10);break;} + case '1':{result = (result * 10)+1;break;} + case '2':{result = (result * 10)+2;break;} + case '3':{result = (result * 10)+3;break;} + case '4':{result = (result * 10)+4;break;} + case '5':{result = (result * 10)+5;break;} + case '6':{result = (result * 10)+6;break;} + case '7':{result = (result * 10)+7;break;} + case '8':{result = (result * 10)+8;break;} + case '9':{result = (result * 10)+9;break;} + case ' ':{break;} + default:{throw new NumberFormatException("the string: \"" + str + "\" was not a number, please check " + host.getName());} + } + } + return negative?-result:result; + } + + public static String translate(String text){ + if(Traincraft.proxy.isClient()){ + return ClientUtil.translate(text); + } + return text; + } + + public static String[]multiTranslate(String[] s){ + if(s==null){return null;} + String[] ret = new String[s.length]; + for (int i=0; i listFolders(String path){ + InputStream stream = loadStream(path); + if(stream==null){ + DebugUtil.println("failed to load folder", path); + return new ArrayList<>(); + } + //create a buffered reader for the directory + InputStreamReader reader = new InputStreamReader(stream, StandardCharsets.UTF_8); + BufferedReader buffer = new BufferedReader(reader); + + //build the list of files + List lines = new ArrayList<>(); + String line=""; + while(line !=null){ + try { + line = buffer.readLine(); + if(line!=null) { + lines.add(path + "/" + line); + } + } catch (IOException ignored) {} + } + //close the streams to cleanup + try { + buffer.close(); + reader.close(); + stream.close(); + } catch (IOException ignored) {} + + return lines; + } + + //in some scenarios the file structure seems to change based on whether or not the jar is compiled + public static InputStream loadStream(String file){ + //todo: results may differ with `ClassLoader.getSystemClassLoader().getResourceAsStream` worth trying later + String protocol = Traincraft.instance.getClass().getResource("").getProtocol(); + if(protocol.equals("jar")){ + return Traincraft.instance.getClass().getResourceAsStream("/assets/" + file); + } else if(protocol.equals("file")) { + return Traincraft.instance.getClass().getClassLoader().getResourceAsStream("assets/" + file); + } else { + System.out.println("Unknown way of running project -- not in IDE or jar form!"); + return null; + } +// if(DebugUtil.dev()) { //is dev() reliable? what about deobf but packaged? +// return TrainsInMotion.instance.getClass().getClassLoader().getResourceAsStream("assets/" + file); +// } else { +// return TrainsInMotion.instance.getClass().getResourceAsStream("/resources/" + file); +// } + } + + + //returns file contents as string. returns null if the file does not exist + public static String accessFile(String file) { + InputStream stream = loadStream(file); + + //make a StringWriter and use apache commons to copy the contents of the input stream file + StringWriter reader = new StringWriter(); + try { + if(stream !=null) { + IOUtils.copy(stream, reader); + String str =reader.toString(); + //close the streams to cleanup + try { + reader.close(); + stream.close(); + } catch (IOException ignored) {} + + return str; + } else { + DebugUtil.println(file, " was null"); + return null; + } + } catch (IOException e) { + DebugUtil.println(file, " was not found"); + return null; + } + + } + + + + + public static float calculatePitch(double yBack, double yFront, double distance){ + double yDiff = yFront - yBack; + return (float) ((yDiff / distance) * -CommonUtil.degreesD); + } + + /** + * replacement for system atan2 function. + * uses a lookup list of 1024 float entries (4kb roughly). + * performance is measured at over 15 times more efficient. + * @param x + * @param z + * @return angle in radians + */ + public static float atan2f(double x, double z) { + if (z < 0.0d) { + if (x < 0.0d) { + //0.03225806451 is (1.0D / (ATAN2_SQRT - 1)) + double invDiv = 1.0D / (((-z < -x) ? -x : -z) * 0.03225806451); + return (atan2[(int)(-x * invDiv) * ATAN2_SQRT + (int)(-z * invDiv)] - 3.141592653f); + } else { + double invDiv = 1.0D / (((-z < x) ? x : -z) * 0.03225806451); + return (atan2[(int)(x * invDiv) * ATAN2_SQRT + (int)(-z * invDiv)] - 3.141592653f)*-1; + } + } else { + if (x < 0.0d) { + double invDiv = 1.0D / (((z < -x) ? -x : z) * 0.03225806451); + return (atan2[(int)(-x * invDiv) * ATAN2_SQRT + (int)(z * invDiv)]) * -1; + } + + double invDiv = 1.0D / (((z < x) ? x : z) * 0.03225806451); + return (atan2[(int)(x * invDiv) * ATAN2_SQRT + (int)(z * invDiv)]); + } + } + + public static float atan2degreesf(double x, double y){ + return atan2f(x,y)*57.295779514f; + } + + private static final int ATAN2_SQRT = (int) Math.sqrt(1024);//32 + private static final float[] atan2 = new float[1024]; + static { + for (int i = 0; i < ATAN2_SQRT; i++) { + for (int j = 0; j < ATAN2_SQRT; j++) { + atan2[j * ATAN2_SQRT + i] = (float) Math.atan2((float) j / ATAN2_SQRT, (float) i / ATAN2_SQRT); + } + } + } + + + public static float power(float base, float power){ + return (float)Math.pow(base,power); + } + + public static double getDistanceWithDirection(double fromX, double fromZ, double toX, double toZ, float rotationYaw) { + + double lookX = MathHelper.cos(-rotationYaw * 0.017453292F - (float) Math.PI); + double lookZ = -MathHelper.sin(-rotationYaw * 0.017453292F - (float) Math.PI); + + double vecX=fromX-toX; + double vecZ=fromZ-toZ; + + double dotProduct = vecX * lookX + vecZ * lookZ; + + if (dotProduct < 0) { + // Player 2 is behind Player 1 + return -Math.sqrt(dotProduct); + } else { + return Math.sqrt(dotProduct); + } + } + + /** + *

rotate vector

+ * rotates a given vector based on pitch, yaw, and roll. + * courtesy of Zora No Densha. + * There are version for doubles and floats. + */ + @Deprecated + public static double[] rotatePoint(double[] f, float pitch, float yaw, float roll) { + double cos; + double sin; + double[] xyz = new double[]{f[0],f[1],f[2]}; + //rotate pitch + if (pitch != 0.0F) { + pitch *= radianF; + cos = Math.cos(pitch); + sin = Math.sin(pitch); + + xyz[0] = (f[1] * sin) + (f[0] * cos); + xyz[1] = (f[1] * cos) - (f[0] * sin); + } + //rotate yaw + if (yaw != 0.0F) { + yaw *= radianF; + cos = MathHelper.cos(yaw); + sin = MathHelper.sin(yaw); + + xyz[0] = (f[0] * cos) - (f[2] * sin); + xyz[2] = (f[0] * sin) + (f[2] * cos); + } + //rotate roll + if (roll != 0.0F) { + roll *= radianF; + cos = MathHelper.cos(roll); + sin = MathHelper.sin(roll); + + xyz[1] = (f[2] * cos) - (f[1] * sin); + xyz[2] = (f[2] * sin) + (f[1] * cos); + } + + return xyz; + } + + public static double[] rotatePoint(double f, double pitch, double yaw) { + double cos; + double sin; + double[] xyz = new double[]{f,0,0}; + //rotate pitch + if (pitch != 0.0F) { + pitch *= Math.PI / 180.0f; + cos = Math.cos(pitch); + sin = Math.sin(pitch); + + xyz[0] = (f * cos); + xyz[1] = -(f * sin); + } + //rotate yaw + if (yaw != 0.0F) { + yaw *= Math.PI / 180.0f; + cos = Math.cos(yaw); + sin = Math.sin(yaw); + + xyz[0] = (f * cos); + xyz[2] = (f * sin); + } + + return xyz; + } + + + //private static float cos; + //private static float sin; + //private static float[] xyz = new float[]{0,0,0}; + public static float[] rotatePointF(float x, float y, float z, float pitch, float yaw, float roll) { + float[] xyz = new float[]{x,y,z}; + float sin, cos; + //rotate pitch + if (pitch != 0.0F) { + pitch *= radianF; + cos = MathHelper.cos(pitch); + sin = MathHelper.sin(pitch); + + xyz[0] = (y * sin) + (x * cos); + xyz[1] = (y * cos) - (x * sin); + } + //rotate yaw + if (yaw != 0.0F) { + yaw *= radianF; + cos = MathHelper.cos(yaw); + sin = MathHelper.sin(yaw); + + xyz[0] = (x * cos) - (z * sin); + xyz[2] = (x * sin) + (z * cos); + } + //rotate roll + if (roll != 0.0F) { + roll *= radianF; + cos = MathHelper.cos(roll); + sin = MathHelper.sin(roll); + + xyz[1] = (z * cos) - (y * sin); + xyz[2] = (z * sin) + (y * cos); + } + + return xyz; + } + + public static Vec3f rotatePoint(Vec3f f, float pitch, float yaw, float roll) { + float cos; + float sin; + Vec3f xyz = new Vec3f(f.xCoord, f.yCoord, f.zCoord); + //rotate pitch + if (pitch != 0.0F) { + pitch *= radianF; + cos = MathHelper.cos(pitch); + sin = MathHelper.sin(pitch); + + xyz.xCoord = (f.yCoord * sin) + (f.xCoord * cos); + xyz.yCoord = (f.yCoord * cos) - (f.xCoord * sin); + } + //rotate yaw + if (yaw != 0.0F) { + yaw *= radianF; + cos = MathHelper.cos(yaw); + sin = MathHelper.sin(yaw); + + xyz.xCoord = (f.xCoord * cos) - (f.zCoord * sin); + xyz.zCoord = (f.xCoord * sin) + (f.zCoord * cos); + } + //rotate roll + if (roll != 0.0F) { + roll *= radianF; + cos = MathHelper.cos(roll); + sin = MathHelper.sin(roll); + + xyz.yCoord = (f.zCoord * cos) - (f.yCoord * sin); + xyz.zCoord = (f.zCoord * sin) + (f.yCoord * cos); + } + + return xyz; + } + + @Deprecated //todo: a LOT of calls for this dont use pitch, for efficiency sake there should be a method that doesnt take it + public static Vec3d rotateDistance(double distance, float pitch, float yaw) { + Vec3d xyz = new Vec3d(distance, 0,0); + //rotate pitch + if (pitch != 0.0F) { + pitch *= radianF; + xyz.xCoord = distance * Math.cos(pitch); + xyz.yCoord = distance * Math.sin(pitch); + } + //rotate yaw + if (yaw != 0.0F) { + yaw *= radianF; + xyz.xCoord = (distance * MathHelper.cos(yaw)); + xyz.zCoord = (distance * MathHelper.sin(yaw)); + } + return xyz; + } + + public static void reverseArray(Object[] array) { + if (array != null) { + int i = 0; + for(int j = array.length - 1; j > i; ++i) { + Object tmp = array[j]; + array[j] = array[i]; + array[i] = tmp; + --j; + } + } + } + + public static float wrapAngleTo180(double input) { + input %= 360.0d; + + if (input >= 180.0d) { + input -= 360.0d; + } else if (input < -180.0d) { + input += 360.0d; + } + + return (float)input; + } + + + /* + *

Ore Dictionary

+ * we use HashMaps to collect ore directory data because even though it takes longer to collect the data, it's far more efficient to see if an entry exists than a list. + * TODO: maybe have a post-init function to collect the ore directory data? + */ + + + + public static boolean oredictMatch(ItemStack input, String... ore){ + //collect the ore ID's for all relevant ores first + List ores = new ArrayList<>(); + for(String o : ore){ + ores.add(OreDictionary.getOreID(o)); + } + //now itterate the integer inputs for all the oredict entries against all the + for(int id : OreDictionary.getOreIDs(input)){ + for (Integer o : ores) { + if (id == o) { + return true; + } + } + } + return false; + } + + + public static boolean isLog(ItemStack i){ + return oredictMatch(i, "logWood", "woodRubber"); + } + + public static boolean isPlank(ItemStack i){ + return oredictMatch(i, "plankWood", "slabWood"); + } + + public static boolean isCoal(ItemStack i){ + return oredictMatch(i, "coal"); + } + + public static boolean isOre(ItemStack i){ + return oredictMatch(i, "ore"); + } + + + /*

shorthands for lazy bums

*/ + + public static ItemStack DefineStack (Item itm, int size){ + return new ItemStack(itm, size); + } + public static ItemStack DefineStack (Block itm, int size){ + return new ItemStack(Item.getItemFromBlock(itm), size); + } +} diff --git a/src/main/java/ebf/tim/utility/DebugUtil.java b/src/main/java/ebf/tim/utility/DebugUtil.java new file mode 100644 index 0000000000..33d17c0de2 --- /dev/null +++ b/src/main/java/ebf/tim/utility/DebugUtil.java @@ -0,0 +1,140 @@ +package ebf.tim.utility; + +import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import org.apache.logging.log4j.Level; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +/** + * @author Ferdinand + * Fex's debugging util; + */ +public class DebugUtil { + + public static Boolean dev; + + private static Logger LOGGER = LogManager.getLogger("trainsinmotion"); + + + /** + * Replicated method of System.out.println that supports an array of data and only prints in a dev environment. + * @param o + */ + public static void println(Object... o){ + if(dev){ + System.out.println("------------------TiM Debug------------------"); + System.out.println(Thread.currentThread().getStackTrace()[2]);//print what function just called this + for (Object obj : o){ + System.out.println(obj); + } + System.out.println("------------------TiM Debug------------------"); + } + } + + @SideOnly(Side.CLIENT) + public static void printGLError(int glerror){ + if(glerror!=0x0){ + System.out.println("------------------TiM Debug------------------"); + System.out.println(Thread.currentThread().getStackTrace()[2]);//print what function just called this + System.out.println(org.lwjgl.util.glu.GLU.gluErrorString(glerror)); + + printStackTrace(); + System.out.println("------------------TiM Debug------------------"); + } + } + public static void println(Object o){ + if(dev){ + System.out.println("------------------TiM Debug------------------"); + System.out.println(Thread.currentThread().getStackTrace()[2]);//print what function just called this + System.out.println(o); + System.out.println("------------------TiM Debug------------------"); + } + } + + + public static void printStackTrace(){ + if(dev) { + System.out.println("------------------TiM Debug------------------"); + for (StackTraceElement e : Thread.currentThread().getStackTrace()) { + System.out.println(e); + } + System.out.println("------------------TiM Debug------------------"); + } + } + + public static void throwStackTrace(){ + if(dev) { + System.out.println("------------------TiM Debug------------------"); + for (StackTraceElement e : Thread.currentThread().getStackTrace()) { + System.out.println(e); + } + System.out.println("------------------TiM Debug------------------"); + System.exit(-1); + } + } + + /** + * Generic logging method, meant for using an actual minecraft logger; + * @param obj the object to be logged or string + */ + public static void log(Object obj){ + LOGGER.log(Level.WARN, obj); + } + + public static void log(Level level, Object obj){ + LOGGER.log(level, obj); + } + + public static void error(Object obj, Exception e){ + LOGGER.error(obj,e); + } + + public static void error(Object obj){ + LOGGER.error(obj); + } + + //CODE BELLOW COPY/EDITED FROM FCL + + /** + * Alternative to {@link #halt()} or {@link #stop()} which will only work in a developement workspace, nice for debugging. + *
+ * Which also prints the caller classes into console. + *
+ * See also {@link #dev} + */ + public static void exception(int i, String string, boolean halt){ + Exception ex = new Exception(); + for(int j = i; j > 0; j--){ + StackTraceElement elm = ex.getStackTrace()[j]; + log("{" + elm.getClassName() + "#" + elm.getMethodName() + " [LINE: " + elm.getLineNumber() + "]}"); + } + if(string != null){ + log(string); + } + if(dev && halt){ + halt(); + } + } + + /** + * + * @return + */ + public static Side side(){ + return FMLCommonHandler.instance().getSide(); + } + + /** + * Simple method to halt the current Minecraft Instance, "force close". + */ + public static void halt(){ + halt(1); + } + + public static void halt(int errc){ + FMLCommonHandler.instance().exitJava(errc, true); + } + +} \ No newline at end of file diff --git a/src/main/java/ebf/tim/utility/Vec5f.java b/src/main/java/ebf/tim/utility/Vec5f.java new file mode 100644 index 0000000000..7e52fd327b --- /dev/null +++ b/src/main/java/ebf/tim/utility/Vec5f.java @@ -0,0 +1,46 @@ +package ebf.tim.utility; + +import fexcraft.tmt.slim.Vec3f; + +public class Vec5f extends Vec3f { + public float u,v; + + + public Vec5f(double x, double y, double z, float u, float v){ + super(x,y,z); + this.u=u; + this.v=v; + } + + + public Vec5f(Vec5f v){ + super(v.xCoord,v.yCoord,v.zCoord); + this.u=v.u; + this.v=v.v; + } + + public Vec5f(float x, float y, float z, float u, float v){ + super(x,y,z); + this.u=u; + this.v=v; + } + + public void setUV(float u, float v){ + this.u=u; + this.v=v; + } + + public void addUV(float u, float v){ + this.u+=u; + this.v+=v; + } + + public Vec5f crossProduct(Vec5f o){ + return new Vec5f(xCoord*o.xCoord,yCoord*o.yCoord,zCoord*o.zCoord,u*o.u,v*o.v); + } + + + public Vec5f add(Vec5f vec){ + return new Vec5f(xCoord+vec.xCoord,yCoord+vec.yCoord,zCoord+vec.zCoord,u+vec.u,v+vec.v); + } +} diff --git a/src/main/java/ebf/tim/utility/Vec6f.java b/src/main/java/ebf/tim/utility/Vec6f.java new file mode 100644 index 0000000000..175c4c5ebd --- /dev/null +++ b/src/main/java/ebf/tim/utility/Vec6f.java @@ -0,0 +1,46 @@ +package ebf.tim.utility; + +public class Vec6f extends Vec5f { + public float w=0; + + + public Vec6f(double x, double y, double z, float u, float v, float w){ + super(x,y,z,u,v); + this.w=w; + } + + public Vec6f(double x, double y, double z){ + this(x,y,z,0f,0f,0f); + } + + + public Vec6f(Vec5f v){ + super(v.xCoord,v.yCoord,v.zCoord, v.u,v.v); + } + + public Vec6f(float x, float y, float z, float u, float v){ + super(x,y,z,u,v); + } + + public Vec6f setW(float w){ + this.w=w; + return this; + } + + public Vec6f crossProduct(Vec6f o){ + return new Vec6f(xCoord*o.xCoord,yCoord*o.yCoord,zCoord*o.zCoord,u*o.u,v*o.v); + } + + + public Vec6f add(Vec6f vec){ + return new Vec6f(xCoord+vec.xCoord,yCoord+vec.yCoord,zCoord+vec.zCoord,u+vec.u,v+vec.v, w+vec.w); + } + + public float[] toFloatArray(){ + return new float[]{xCoord,yCoord,zCoord,u,v,w}; + } + + public static Vec6f fromFloatArray(float[] f){ + return new Vec6f(f[0],f[1],f[2],f[3],f[4],f[5]); + } +} diff --git a/src/main/java/fexcraft/fcl/common/Static.java b/src/main/java/fexcraft/fcl/common/Static.java new file mode 100644 index 0000000000..4221e5f84e --- /dev/null +++ b/src/main/java/fexcraft/fcl/common/Static.java @@ -0,0 +1,98 @@ +package fexcraft.fcl.common; + +import java.io.InputStream; +import java.util.Random; + +/** + * @author Ferdinand Calo' (FEX___96) + * + * General Class with (mostly) Static content. + */ +public class Static { + + public static boolean mclib = false; + public static boolean devmode = false; + public static boolean server = false; + + public static final float MODELSCALE = 0.0625F; + public static final float PI = 3.14159265358979323846f; + + public static final float sixteenth = 0.0625F; + public static final float eighth = 0.125F; + public static final float quarter = 0.250F; + public static final float half = 0.5F; + + // Radians > Degrees + public static final float rad180 = 3.14159f; + public static final float rad160 = 2.79253f; + public static final float rad120 = 2.0944f; + public static final float rad90 = 1.5708f; + public static final float rad60 = 1.0472f; + public static final float rad45 = 0.785398f; + public static final float rad30 = 0.523599f; + public static final float rad20 = 0.349066f; + public static final float rad12 = 0.20944f; + public static final float rad10 = 0.174533f; + public static final float rad6 = 0.10472f; + public static final float rad5 = 0.0872665f; + public static final float rad1 = 0.0174533f; + + public static final String NULL_UUID_STRING = "00000000-0000-0000-0000-000000000000"; + public static final String DEF1_UUID_STRING = "11111111-1111-1111-1111-111111111111"; + public static final Random random = new Random(); + + public static final String zero(long am){ + StringBuffer buff = new StringBuffer(); + for(long l = 0; l < am; l++) buff.append("0"); + return buff.toString(); + } + + public static final boolean setAsMcLib(boolean bool){ return mclib = bool; } + + public static final boolean setDevmode(boolean bool){ return devmode = bool; } + + public static final boolean setIsServer(boolean bool){ return server = bool; } + + public static final void halt(){ halt(1); } + + public static void halt(int errid){ + if(mclib){ + Static.halt(errid); + } + System.exit(errid); + } + + public static final void stop(){ if(devmode) halt(1); return; } + + public static final boolean dev(){ return devmode; } + + public static boolean isServer(){ + if(mclib){ + Static.isServer(); + } + return server; + } + + public static boolean isClient(){ + if(mclib){ + Static.isClient(); + } + return !server; + } + + public static InputStream getResource(String str){ + if(mclib){ + Static.getResource(str); + } + return Static.class.getClassLoader().getResourceAsStream(str); + } + + public static float toDegrees(float rad){ + return (float)Math.toDegrees(rad); + } + + public static float toRadians(float deg){ + return (float)Math.toRadians(deg); + } + +} \ No newline at end of file diff --git a/src/main/java/fexcraft/fcl/common/lang/ArrayList.java b/src/main/java/fexcraft/fcl/common/lang/ArrayList.java new file mode 100644 index 0000000000..67f1f07f9b --- /dev/null +++ b/src/main/java/fexcraft/fcl/common/lang/ArrayList.java @@ -0,0 +1,38 @@ +package fexcraft.fcl.common.lang; + +import javax.annotation.Nullable; +import java.util.List; + +; + +/** + * @author Ferdinand Calo' (FEX___96) + * + * General ArrayList which will not cause "out of bounds" exceptions, but instead return null or first entry. + * @param + */ +public class ArrayList extends java.util.ArrayList { + + private static final long serialVersionUID = 6551014441630799597L; + + public ArrayList(List list){ + super(list); + } + + public ArrayList(){ + super(); + } + + public ArrayList(T[] arr){ + super(); + for(T e : arr){ + this.add(e); + } + } + + @Override @Nullable + public T get(int i){ + return this.isEmpty() ? null : i > this.size() ? super.get(0) : i < 0 ? null : super.get(i); + } + +} \ No newline at end of file diff --git a/src/main/java/fexcraft/fvtm/RollingStockModel.java b/src/main/java/fexcraft/fvtm/RollingStockModel.java new file mode 100644 index 0000000000..bac228c785 --- /dev/null +++ b/src/main/java/fexcraft/fvtm/RollingStockModel.java @@ -0,0 +1,146 @@ +package fexcraft.fvtm; + +import ebf.tim.utility.DebugUtil; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; +import fexcraft.tmt.slim.TexturedPolygon; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.GLAllocation; +import net.minecraft.entity.Entity; +import org.lwjgl.opengl.GL11; + +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; + +/** + * A compatibility class for "FVTM Scheme/Format" models. + * @Author Eternal BlueFlame + * + * @OriginalAuthor Ferdinand Calo' (FEX___96) + */ + +public class RollingStockModel extends ModelBase { + + public List groups = new ArrayList<>(); + public int textureX, textureY; + public RollingStockModel(){} + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5){ + if(init){ + for(TurboList list :groups) { + list.initAllParts(); + } + //for the named list, we sort those into this class to avoid subclassing errors with the animator. + for(TurboList list :groups) { + namedList.addAll(list.namedList); + } + init=false; + } + //this can happen somehow + if(groups==null){ + return; + } + + + if(disableCache) { + for(TurboList list :groups) { + if(list!=null) { + list.render(list.boxList); + } + } + } else if(staticPartMap.get(this.getClass().getName())==null || localGLID==null) { + if(localGLID==null && staticPartMap.get(this.getClass().getName())!=null){ + localGLID = staticPartMap.get(this.getClass().getName()); + return; + } + + staticPartMap.put(this.getClass().getName(), GLAllocation.generateDisplayLists(1)); + GL11.glNewList(staticPartMap.get(this.getClass().getName()), GL11.GL_COMPILE); + localGLID = staticPartMap.get(this.getClass().getName()); + for(TurboList list :groups) { + list.render(list.boxList); + } + GL11.glEndList(); + if(!ModelBase.EnableAnimations) { + for(TurboList list :groups) { + list.boxList = null; + } + } + } else { + if(GL11.glIsList(this.localGLID)) { + GL11.glCallList(this.localGLID); + } else { + staticPartMap.put(this.getClass().getName(), GLAllocation.generateDisplayLists(1)); + GL11.glNewList(staticPartMap.get(this.getClass().getName()), GL11.GL_COMPILE); + localGLID=staticPartMap.get(this.getClass().getName()); + for(TurboList list :groups) { + list.render(list.boxList); + } + GL11.glEndList(); + } + } + + if(namedList ==null){return;} + for(ModelRendererTurbo part : namedList) { + //for animations to work we have to limit the displaylist cache to ONLY the geometry, and then + // the position and offsets must be done manually every frame. + if (!part.showModel) { + continue; + } + GL11.glPushMatrix(); + if (part.ignoresLighting) { + Minecraft.getMinecraft().entityRenderer.disableLightmap(1D); + } + GL11.glTranslatef(part.rotationPointX * 0.0625F, part.rotationPointY * 0.0625F, part.rotationPointZ * 0.0625F); + GL11.glRotatef(part.rotateAngleY, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(part.rotateAngleZ, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(part.rotateAngleX, 1.0F, 0.0F, 0.0F); + if (part.glID!=null && GL11.glIsList(part.glID)) { + GL11.glCallList(part.glID); + } else { + part.glID = GLAllocation.generateDisplayLists(1); + GL11.glNewList(part.glID, GL11.GL_COMPILE); + for (TexturedPolygon poly : part.faces) { + Tessellator.getInstance().drawTexturedVertsWithNormal(poly, 0.0625F); + } + GL11.glEndList(); + } + + GL11.glTranslatef(-part.rotationPointX * 0.0625F, -part.rotationPointY * 0.0625F, -part.rotationPointZ * 0.0625F); + if (part.ignoresLighting) { + Minecraft.getMinecraft().entityRenderer.enableLightmap(1D); + } + GL11.glPopMatrix(); + + + } + } + + @Override + public List getnamedParts(){ + if(init){ + for(TurboList list :groups) { + list.initAllParts(); + } + //for the named list, we sort those into this class to avoid subclassing errors with the animator. + for(TurboList list :groups) { + namedList.addAll(list.namedList); + } + init=false; + } + return namedList; + } + + public TurboList get(String s){ + for(TurboList t : groups){ + if(t.boxname.equals(s)){ + return t; + } + } + return null; + } + +} diff --git a/src/main/java/fexcraft/fvtm/TurboList.java b/src/main/java/fexcraft/fvtm/TurboList.java new file mode 100644 index 0000000000..cee80ae82e --- /dev/null +++ b/src/main/java/fexcraft/fvtm/TurboList.java @@ -0,0 +1,52 @@ +package fexcraft.fvtm; + +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; +import org.lwjgl.opengl.GL11; + +/** + * A compatibility class for "FVTM Scheme/Format" or "FMT" models. + * @Author Eternal BlueFlame + * + * @OriginalAuthor Ferdinand Calo' (FEX___96) + */ +public class TurboList extends ModelBase { + + public String boxname; + public TurboList(String name){ + boxname=name; + } + + public boolean add(ModelRendererTurbo t){ + super.addPart(t); + return true; + } + + @Override + public void flip(ModelRendererTurbo[] model) { + if(model==null){return;} + for(ModelRendererTurbo mod : model){ + mod.rotateAngleY = -mod.rotateAngleY; + mod.rotateAngleZ = -mod.rotateAngleZ; + } + } + + @Override + public void render(){ + for(ModelRendererTurbo sub : boxList){ + if(sub!=null) { + GL11.glPushMatrix(); + sub.render(); + GL11.glPopMatrix(); + } + } + for(ModelRendererTurbo sub : namedList){ + if(sub!=null) { + GL11.glPushMatrix(); + sub.render(); + GL11.glPopMatrix(); + } + } + } + +} diff --git a/src/main/java/fexcraft/tmt/slim/BoxBuilder.java b/src/main/java/fexcraft/tmt/slim/BoxBuilder.java new file mode 100644 index 0000000000..9430ea2128 --- /dev/null +++ b/src/main/java/fexcraft/tmt/slim/BoxBuilder.java @@ -0,0 +1,233 @@ +package fexcraft.tmt.slim; + +import java.util.ArrayList; +import java.util.List; + +/** + * Reverse engineered for TMT slim by EternalBlueFlame + * @author Ferdinand Calo' (FEX___96) + */ +public class BoxBuilder { + + private static final Vec3f NULLVEC = new Vec3f(0, 0, 0); + private final ModelRendererTurbo host; + private float x, y, z, expansion, w, h, d; + private boolean[] invisible = new boolean[]{false,false,false,false,false,false}; + private float[][] uv = new float[6][]; + private boolean[] detached = new boolean[6]; + private Vec3f[] corners = new Vec3f[]{NULLVEC,NULLVEC,NULLVEC,NULLVEC,NULLVEC,NULLVEC,NULLVEC,NULLVEC}; + + public BoxBuilder(){ + this(null); + } + + public BoxBuilder(ModelRendererTurbo root){ + this.host = root == null ? new ModelRendererTurbo("") : root; + } + + public BoxBuilder setOffset(float x, float y, float z){ + this.x = x; this.y = y; this.z = z; + return this; + } + + public BoxBuilder setSize(float w, float h, float d){ + this.w = w; this.h = h; this.d = d; + return this; + } + + public BoxBuilder setExpansion(float exp){ + this.expansion = exp; + return this; + } + + public BoxBuilder removePolygon(int index){ + invisible[index] = true; + return this; + } + + public BoxBuilder removePolygons(int... poly_indices){ + for(int index : poly_indices){ + invisible[index] = true; + } + return this; + } + + public BoxBuilder removePolygons(boolean... sides){ + for(int index = 0; index < 6; index++){ + if(sides.length >= (index + 1) && sides[index]) invisible[index] = true; + } + return this; + } + + public BoxBuilder setPolygonUV(int poly_index, float[] uv){ + this.uv[poly_index] = uv; + return this; + } + + public BoxBuilder setPolygonUVs(int[] poly_indices, float[][] uvs){ + for(int i = 0; i < poly_indices.length; i++){ + setPolygonUV(poly_indices[i], uvs[i]); + } + return this; + } + + public BoxBuilder setPolygonUVs(float[][] uvs){ + for(int index = 0; index < 6; index++){ + if(index >= uvs.length) break; + setPolygonUV(index, uvs[index]); + } + return this; + } + + public BoxBuilder setDetachedUV(int... indices){ + for(int index : indices){ + detached[index] = true; + } + return this; + } + + public BoxBuilder setDetachedUV(boolean... bools){ + for(int index = 0; index < 6; index++){ + if(index >= bools.length) break; + setDetachedUV(index); + } + return this; + } + + private float detached(int i, float value){ + return invisible[i] || detached[i]?0:value; + } + + public BoxBuilder setCorner(int index, Vec3f corner){ + corners[index] = corner==null?NULLVEC:corner; + return this; + } + + public BoxBuilder setCorner(int index, float x, float y, float z){ + corners[index] = new Vec3f(x, y, z); + return this; + } + + + public BoxBuilder setCorners(Vec3f cor0, Vec3f cor1, Vec3f cor2, Vec3f cor3, Vec3f cor4, Vec3f cor5, Vec3f cor6, Vec3f cor7){ + corners[0] = cor0==null?NULLVEC:cor0; + corners[1] = cor1==null?NULLVEC:cor1; + corners[2] = cor2==null?NULLVEC:cor2; + corners[3] = cor3==null?NULLVEC:cor3; + corners[4] = cor4==null?NULLVEC:cor4; + corners[5] = cor5==null?NULLVEC:cor5; + corners[6] = cor6==null?NULLVEC:cor6; + corners[7] = cor7==null?NULLVEC:cor7; + return this; + } + + public BoxBuilder setCorners(float x0, float y0, float z0, float x1, float y1, float z1, float x2, float y2, float z2, float x3, float y3, float z3, float x4, float y4, float z4, float x5, float y5, float z5, float x6, float y6, float z6, float x7, float y7, float z7){ + corners[0] = new Vec3f(x0, y0, z0); + corners[1] = new Vec3f(x1, y1, z1); + corners[2] = new Vec3f(x2, y2, z2); + corners[3] = new Vec3f(x3, y3, z3); + corners[4] = new Vec3f(x4, y4, z4); + corners[5] = new Vec3f(x5, y5, z5); + corners[6] = new Vec3f(x6, y6, z6); + corners[7] = new Vec3f(x7, y7, z7); + return this; + } + + public ModelRendererTurbo build(){ + if(w == 0) w = 0.01F; if(h == 0) h = 0.01F; if(d == 0) d = 0.01F; + float xw = x + w, yh = y + h, zd = z + d; + xw += expansion; yh += expansion; zd += expansion; + if(host.mirror){ float fl = xw; xw = x; x = fl; } + List poly = new ArrayList<>(); + TexturedVertex tv0 = new TexturedVertex(x - corners[0].xCoord, y - corners[0].yCoord, z - corners[0].zCoord, 0.0F, 0.0F); + TexturedVertex tv1 = new TexturedVertex(xw + corners[1].xCoord, y - corners[1].yCoord, z - corners[1].zCoord, 0.0F, 8.0F); + TexturedVertex tv2 = new TexturedVertex(xw + corners[5].xCoord, yh + corners[5].yCoord, z - corners[5].zCoord, 8.0F, 8.0F); + TexturedVertex tv3 = new TexturedVertex(x - corners[4].xCoord, yh + corners[4].yCoord, z - corners[4].zCoord, 8.0F, 0.0F); + TexturedVertex tv4 = new TexturedVertex(x - corners[3].xCoord, y - corners[3].yCoord, zd + corners[3].zCoord, 0.0F, 0.0F); + TexturedVertex tv5 = new TexturedVertex(xw + corners[2].xCoord, y - corners[2].yCoord, zd + corners[2].zCoord, 0.0F, 8.0F); + TexturedVertex tv6 = new TexturedVertex(xw + corners[6].xCoord, yh + corners[6].yCoord, zd + corners[6].zCoord, 8.0F, 8.0F); + TexturedVertex tv7 = new TexturedVertex(x - corners[7].xCoord, yh + corners[7].yCoord, zd + corners[7].zCoord, 8.0F, 0.0F); + if(w % 1 != 0){ + w = w < 1 ? 1 : (int)w + 1; + } + if(h % 1 != 0){ + h = h < 1 ? 1 : (int)h + 1; + } + if(d % 1 != 0){ + d = d < 1 ? 1 : (int)d + 1; + } + + float yp = (invisible[2] || detached[2]) && invisible[3] || detached[3] ? 0 : d; + if(!invisible[0]){ + poly.add(genPolygonWithUV(0, new TexturedVertex[] { tv5, tv1, tv2, tv6 }, host.textureOffsetX, host.textureOffsetY, detached(1,d) + detached(4,w), yp, d, h)); + } + if(!invisible[1]){ + poly.add(genPolygonWithUV(1, new TexturedVertex[] { tv0, tv4, tv7, tv3 }, host.textureOffsetX, host.textureOffsetY, 0, yp, d, h)); + } + if(!invisible[2]){ + poly.add(genPolygonWithUV(2, new TexturedVertex[] { tv5, tv4, tv0, tv1 }, host.textureOffsetX, host.textureOffsetY, detached(1,d), 0, w, d)); + } + if(!invisible[3]){ + poly.add(genPolygonWithUV(3, new TexturedVertex[] { tv2, tv3, tv7, tv6 }, host.textureOffsetX, host.textureOffsetY, detached(1,d) + detached(2,w), 0, w, d)); + } + if(!invisible[4]){ + poly.add(genPolygonWithUV(4, new TexturedVertex[] { tv1, tv0, tv3, tv2 }, host.textureOffsetX, host.textureOffsetY, detached(1,d), yp, w, h)); + } + if(!invisible[5]){ + poly.add(genPolygonWithUV(5, new TexturedVertex[] { tv4, tv5, tv6, tv7 }, host.textureOffsetX, host.textureOffsetY, detached(1,d) + detached(4,w) + detached(0,d), yp, w, h)); + } + if(host.mirror){ + for (TexturedPolygon aPoly : poly) { + if (aPoly != null){ + aPoly.flipFace(); + } + } + } + host.faces.addAll(poly); + return host; + } + + private TexturedPolygon genPolygonWithUV(int index, TexturedVertex[] vertices, float texX, float texY, float x, float y, float x2, float y2){ + if(detached[index]){ + texX = 0; + texY = 0; + } + float texX1,texX2,texY1,texY2; + if(uv[index] == null){ + texX1 = (texX + x) / host.textureWidth; + texX2 = (texX + x + x2) / host.textureWidth; + texY1 = (texY + y) / host.textureHeight; + texY2 = (texY + y + y2) / host.textureHeight; + } + else if(uv[index].length == 2){ + texX1 = (texX + uv[index][0]) / host.textureWidth; + texX2 = (texX + uv[index][0] + x2) / host.textureWidth; + texY1 = (texY + uv[index][1]) / host.textureHeight; + texY2 = (texY + uv[index][1] + y2) / host.textureHeight; + } + else if(uv[index].length == 4){ + texX1 = (texX + uv[index][0]) / host.textureWidth; + texX2 = (texX + uv[index][2]) / host.textureWidth; + texY1 = (texY + uv[index][1]) / host.textureHeight; + texY2 = (texY + uv[index][3]) / host.textureHeight; + } + else if(uv[index].length == 8){//8 is weird, this needs to be overly exact. + vertices[0].setUV((texX + uv[index][0]) / host.textureWidth, (texY + uv[index][1]) / host.textureHeight); + vertices[1].setUV((texX + uv[index][2]) / host.textureWidth, (texY + uv[index][3]) / host.textureHeight); + vertices[2].setUV((texX + uv[index][4]) / host.textureWidth, (texY + uv[index][5]) / host.textureHeight); + vertices[3].setUV((texX + uv[index][6]) / host.textureWidth, (texY + uv[index][7]) / host.textureHeight); + return new TexturedPolygon(vertices); + } + else { + texX1 = (texX + x) / host.textureWidth; + texX2 = (texX + x + x2) / host.textureWidth; + texY1 = (texY + y) / host.textureHeight; + texY2 = (texY + y + y2) / host.textureHeight; + } + vertices[0].setUV(texX2,texY1); + vertices[1].setUV(texX1, texY1); + vertices[2].setUV(texX1, texY2); + vertices[3].setUV(texX2, texY2); + return new TexturedPolygon(vertices); + } +} diff --git a/src/main/java/fexcraft/tmt/slim/Coord2D.java b/src/main/java/fexcraft/tmt/slim/Coord2D.java new file mode 100644 index 0000000000..5c7efd5cd8 --- /dev/null +++ b/src/main/java/fexcraft/tmt/slim/Coord2D.java @@ -0,0 +1,30 @@ +package fexcraft.tmt.slim; + +/** + * This class represents a coordinate space and its UV coordinates. This allows for + * easier flat shape planning. + * @author GaryCXJk + * + */ +public class Coord2D { + + public float xCoord; + public float yCoord; + public int uCoord; + public int vCoord; + + public Coord2D(float x, float y){ + xCoord = x; + yCoord = y; + uCoord = (int)Math.floor(x); + vCoord = (int)Math.floor(y); + } + + + public Coord2D(float x, float y, int u, int v){ + this(x, y); + uCoord = u; + vCoord = v; + } + +} diff --git a/src/main/java/fexcraft/tmt/slim/CylinderBuilder.java b/src/main/java/fexcraft/tmt/slim/CylinderBuilder.java new file mode 100644 index 0000000000..8ebb699163 --- /dev/null +++ b/src/main/java/fexcraft/tmt/slim/CylinderBuilder.java @@ -0,0 +1,279 @@ +package fexcraft.tmt.slim; + +import java.util.ArrayList; + +import static fexcraft.tmt.slim.ModelRendererTurbo.*; + +public class CylinderBuilder { + + private ModelRendererTurbo root; + private float x, y, z, radius, radius2, radius3, radius4, length, base_scale, top_scale; + private int segments, seglimit, direction, texDiameterW, texDiameterH, texHeight; + private Vec3f topoff = new Vec3f(); + private boolean[] togglesides = new boolean[]{false,false,false,false}; + private Vec3f toprot; + // + private boolean radialtexture = false; + private float seg_width, seg_height; + + public CylinderBuilder(ModelRendererTurbo root){ + this.root = root == null ? new ModelRendererTurbo("") : root; + } + + public CylinderBuilder setPosition(float x, float y, float z){ + this.x = x; this.y = y; this.z = z; return this; + } + + public CylinderBuilder setRadius(float first, float second){ + this.radius = first; this.radius2 = second; texDiameterW = (int)Math.floor(radius * 2F); texDiameterH = (int)Math.floor(radius * 2F); return this; + } + + public CylinderBuilder setRadius(float first_s, float first_c, float second_s, float second_c){ + this.radius3 = first_c; this.radius4 = second_c; + return setRadius(first_s, second_s); + } + + /** Use AFTER `setRadius`, else values will get overriden. */ + public CylinderBuilder setTextureDiameter(int width, int height){ + texDiameterW = width; texDiameterH = height; return this; + } + + public CylinderBuilder setLength(float length){ + this.length = length; texHeight = (int)Math.floor(length); return this; + } + + /** Use AFTER `setLength`, else value will get overriden. */ + public CylinderBuilder setTextureHeight(int height){ + texHeight = height; return this; + } + + public CylinderBuilder setTopOffset(float x, float y, float z){ + topoff = new Vec3f(x, y, z); return this; + } + + public CylinderBuilder setTopOffset(Vec3f vec){ + topoff = vec; return this; + } + + public CylinderBuilder setSidesVisible(boolean[] arr){ + this.togglesides = arr; return this; + } + + public CylinderBuilder setSidesVisible(boolean base, boolean top, boolean outer, boolean inner){ + this.togglesides = new boolean[]{ base, top, outer, inner }; return this; + } + + /** Currently no support for hollow-less cylinders to be segmented. */ + public CylinderBuilder setSegments(int amount, int limit){ + this.segments = amount; this.seglimit = limit; return this; + } + + public CylinderBuilder setScale(float base, float top){ + this.base_scale = base; this.top_scale = top; return this; + } + + /** Currently no support for hollow-less cylinders to be radial-textured. */ + public CylinderBuilder setRadialTexture(float seg_width, float seg_height){ + if(seg_width==0 && seg_height==0){ + return this; + } + radialtexture = true; this.seg_width = seg_width; this.seg_height = seg_height; return this; + } + + public CylinderBuilder setDirection(int dir){ + this.direction = dir; return this; + } + + public CylinderBuilder setTopRotation(float x, float y, float z){ + toprot = new Vec3f(x,y,z); + return this; + } + + public CylinderBuilder setTopRotation(Vec3f vec){ + return setTopRotation(vec.xCoord, vec.yCoord, vec.zCoord); + } + + public CylinderBuilder removePolygon(int index){ + if(index >= 0 && index < 4){ + togglesides[index] = true; + } + return this; + } + + public CylinderBuilder removePolygons(int... poly_indices){ + for(int index : poly_indices){ + if(index >= 0 && index < 4){ + togglesides[index] = true; + } + } + return this; + } + + public CylinderBuilder removePolygons(boolean... sides){ + for(int index = 0; index < 4; index++){ + if(sides.length >= (index + 1) && sides[index]){ + togglesides[index] = true; + } + } + return this; + } + + public ModelRendererTurbo build(){ + if(radius3 == 0f) radius3 = radius; + if(radius4 == 0f) radius4 = radius2; + if(radius2 == 0f && toprot == null && radius3 == radius){ + return root.addCylinder(x, y, z, radius, length, segments, base_scale, top_scale, direction, texDiameterW, texDiameterH, texHeight, topoff); + } + if(radius < 1){ texDiameterW = 2; texDiameterH = 2; } if(length < 1){ texHeight = 2; } + // + boolean dirTop = (direction == MR_TOP || direction == MR_BOTTOM); + boolean dirSide = (direction == MR_RIGHT || direction == MR_LEFT); + boolean dirFront = (direction == MR_FRONT || direction == MR_BACK); + boolean dirMirror = (direction == MR_LEFT || direction == MR_BOTTOM || direction == MR_BACK); + if(base_scale == 0) base_scale = 1f; if(top_scale == 0) top_scale = 1f; + if(segments < 3) segments = 3; if(seglimit <= 0) seglimit = segments; boolean segl = seglimit < segments; + ArrayList polis = new ArrayList<>(); + //Vertex + float xLength = (dirSide ? length : 0), yLength = (dirTop ? length : 0), zLength = (dirFront ? length : 0); + float xStart = (dirMirror ? x + xLength : x); + float yStart = (dirMirror ? y + yLength : y); + float zStart = (dirMirror ? z + zLength : z); + float xEnd = (!dirMirror ? x + xLength : x) + (topoff == null ? 0 : topoff.xCoord); + float yEnd = (!dirMirror ? y + yLength : y) + (topoff == null ? 0 : topoff.yCoord); + float zEnd = (!dirMirror ? z + zLength : z) + (topoff == null ? 0 : topoff.zCoord); + float xCur = xStart, yCur = yStart, zCur = zStart, sCur = base_scale; + //Texture + float uScale = 1.0F / root.textureWidth, vScale = 1.0F / root.textureHeight; + float uOffset = uScale / 20.0F, vOffset = vScale / 20.0F; + float uCircle = texDiameterW * uScale; + float vCircle = texDiameterH * vScale; + float uCircle2 = ((int)Math.floor(radius2 * 2F)) * uScale; + float vCircle2 = ((int)Math.floor(radius2 * 2F)) * vScale; + float uWidth = (uCircle * 2F - uOffset * 2F) / segments; + float vHeight = texHeight * vScale - uOffset * 2f; + float uStart = root.textureOffsetX * uScale, vStart = root.textureOffsetY * vScale; + //Temporary Arrays + ArrayList verts0 = new ArrayList<>(), verts1 = new ArrayList<>(), + verts2 = new ArrayList<>(), verts3 = new ArrayList<>(); + float xSize,ySize,zSize,xPlace,yPlace,zPlace; + for(int repeat = 0; repeat < 2; repeat++){//top/base faces + for(int index = 0; index < segments; index++){ + xSize = (float)((root.mirror ^ dirMirror ? -1 : 1) * Math.sin((ModelRendererTurbo.pi / segments) * index * 2F + ModelRendererTurbo.pi) * radius * sCur); + zSize = (float)(-Math.cos((ModelRendererTurbo.pi / segments) * index * 2F + ModelRendererTurbo.pi) * radius3 * sCur); + xPlace = xCur + (!dirSide ? xSize : 0); + yPlace = yCur + (!dirTop ? zSize : 0); + zPlace = zCur + (dirSide ? xSize : (dirTop ? zSize : 0)); + verts0.add(new TexturedVertex(xPlace, yPlace, zPlace, 0, 0)); + if(index == segments - 1){ + verts0.add(new TexturedVertex(verts0.get(0))); + } + // + xSize = (float)((root.mirror ^ dirMirror ? -1 : 1) * Math.sin((ModelRendererTurbo.pi / segments) * index * 2F + ModelRendererTurbo.pi) * radius2 * sCur); + zSize = (float)(-Math.cos((ModelRendererTurbo.pi / segments) * index * 2F + ModelRendererTurbo.pi) * radius4 * sCur); + xPlace = xCur + (!dirSide ? xSize : 0); + yPlace = yCur + (!dirTop ? zSize : 0); + zPlace = zCur + (dirSide ? xSize : (dirTop ? zSize : 0)); + verts1.add(new TexturedVertex(xPlace, yPlace, zPlace, 0, 0)); + if(index == segments - 1){ + verts1.add(new TexturedVertex(verts1.get(0))); + } + } + if(repeat == 0){ + verts2.addAll(verts0); + verts2.addAll(verts1); + } else{ + verts3.addAll(verts0); + verts3.addAll(verts1); + } + float mul = radialtexture ? repeat == 0 ? 0 : seg_height : repeat == 0 ? 0.5f : 1.5f; + if((repeat == 0 && !togglesides[0]) || (repeat == 1 && !togglesides[1])){ + for(int i = 0; i < verts0.size(); i++){ + if(i >= (verts0.size() - 1) || i >= seglimit){ + if(repeat != 0 && toprot != null){ + verts0.get(i).vector3F = toprot.getRelativeVector(verts0.get(i).vector3F); + verts1.get(i).vector3F = toprot.getRelativeVector(verts1.get(i).vector3F); + } + break; + } + TexturedVertex[] arr = new TexturedVertex[4]; + if(!radialtexture){ + xSize = (float)(Math.sin((ModelRendererTurbo.pi / segments) * i * 2F + (!dirTop ? 0 : ModelRendererTurbo.pi)) * (0.5F * uCircle - 2F * uOffset)); + ySize = (float)(Math.cos((ModelRendererTurbo.pi / segments) * i * 2F + (!dirTop ? 0 : ModelRendererTurbo.pi)) * (0.5F * vCircle - 2F * vOffset)); + arr[0] = verts0.get(i).setTexturePosition(uStart + mul * uCircle + xSize, vStart + 0.5F * vCircle + ySize); + // + xSize = (float)(Math.sin((ModelRendererTurbo.pi / segments) * i * 2F + (!dirTop ? 0 : ModelRendererTurbo.pi)) * (0.5F * uCircle2 - 2F * uOffset)); + ySize = (float)(Math.cos((ModelRendererTurbo.pi / segments) * i * 2F + (!dirTop ? 0 : ModelRendererTurbo.pi)) * (0.5F * vCircle2 - 2F * vOffset)); + arr[1] = verts1.get(i).setTexturePosition(uStart + mul * uCircle + xSize, vStart + 0.5F * vCircle + ySize); + // + xSize = (float)(Math.sin((ModelRendererTurbo.pi / segments) * (i + 1) * 2F + (!dirTop ? 0 : ModelRendererTurbo.pi)) * (0.5F * uCircle2 - 2F * uOffset)); + ySize = (float)(Math.cos((ModelRendererTurbo.pi / segments) * (i + 1) * 2F + (!dirTop ? 0 : ModelRendererTurbo.pi)) * (0.5F * vCircle2 - 2F * vOffset)); + arr[2] = verts1.get(i + 1).setTexturePosition(uStart + mul * uCircle + xSize, vStart + 0.5F * vCircle + ySize); + // + xSize = (float)(Math.sin((ModelRendererTurbo.pi / segments) * (i + 1) * 2F + (!dirTop ? 0 : ModelRendererTurbo.pi)) * (0.5F * uCircle - 2F * uOffset)); + ySize = (float)(Math.cos((ModelRendererTurbo.pi / segments) * (i + 1) * 2F + (!dirTop ? 0 : ModelRendererTurbo.pi)) * (0.5F * vCircle - 2F * vOffset)); + arr[3] = verts0.get(i + 1).setTexturePosition(uStart + mul * uCircle + xSize, vStart + 0.5F * vCircle + ySize); + } else { + float diff = (radius - radius2) * uScale / 4; + arr[0] = verts0.get(i).setTexturePosition(uStart + (i * seg_width) * uScale, vStart + (mul * vScale)); + arr[1] = verts1.get(i).setTexturePosition(uStart + (i * seg_width) * uScale + diff, vStart + ((seg_height + mul) * vScale)); + arr[2] = verts1.get(i + 1).setTexturePosition(uStart + ((i + 1) * seg_width) * uScale - diff, vStart + ((seg_height + mul) * vScale)); + arr[3] = verts0.get(i + 1).setTexturePosition(uStart + ((i + 1) * seg_width) * uScale, vStart + (mul * vScale)); + } + if(repeat != 0 && toprot != null){ + arr[0].vector3F = verts0.get(i).vector3F = toprot.getRelativeVector(arr[0].vector3F); + arr[1].vector3F = verts1.get(i).vector3F = toprot.getRelativeVector(arr[1].vector3F); + arr[2].vector3F = /*verts1.get(i + 1).vector3F =*/ toprot.getRelativeVector(arr[2].vector3F); + arr[3].vector3F = /*verts0.get(i + 1).vector3F =*/ toprot.getRelativeVector(arr[3].vector3F); + } + polis.add(new TexturedPolygon(arr)); + if((repeat == 0) != dirFront) { + polis.get(polis.size() - 1 ).flipFace(); + } + } + } + verts0.clear(); verts1.clear(); xCur = xEnd; yCur = yEnd; zCur = zEnd; sCur = top_scale; + } + int halfv2 = verts2.size() / 2; + if(radialtexture){ vCircle = (seg_height + seg_height) * vScale; } + for(int i = 0; i < halfv2; i++){ + if(i >= seglimit && segl){ + TexturedVertex[] arr = new TexturedVertex[4]; float xpos = uStart + uOffset + (uCircle * 2f); + arr[0] = verts2.get(0).setTexturePosition(xpos, vStart + vOffset + vCircle); + arr[1] = verts3.get(0).setTexturePosition(xpos, vStart + vOffset + vCircle + vHeight); + arr[2] = verts3.get(halfv2).setTexturePosition(xpos + ((radius - radius2) * uScale), vStart + vOffset + vCircle + vHeight); + arr[3] = verts2.get(halfv2).setTexturePosition(xpos + ((radius - radius2) * uScale), vStart + vOffset + vCircle); + polis.add(new TexturedPolygon(arr)); + if(!dirFront) polis.get(polis.size() - 1 ).flipFace(); + arr = new TexturedVertex[4]; + arr[0] = verts2.get(seglimit).setTexturePosition(xpos, vStart + vOffset + vCircle + vHeight); + arr[1] = verts3.get(seglimit).setTexturePosition(xpos, vStart + vOffset + vCircle + vHeight + vHeight); + arr[2] = verts3.get(seglimit + halfv2).setTexturePosition(xpos + ((radius - radius2) * uScale), vStart + vOffset + vCircle + vHeight + vHeight); + arr[3] = verts2.get(seglimit + halfv2).setTexturePosition(xpos + ((radius - radius2) * uScale), vStart + vOffset + vCircle + vHeight); + polis.add(new TexturedPolygon(arr)); + if(dirFront) polis.get(polis.size() - 1 ).flipFace(); + break; + } + if(i >= (halfv2 - 1)) break; + TexturedVertex[] arr = new TexturedVertex[4]; + if(!togglesides[2]){ + arr[0] = verts2.get(i + 0).setTexturePosition(uStart + uOffset + uWidth * (i + 0), vStart + vOffset + vCircle); + arr[1] = verts3.get(i + 0).setTexturePosition(uStart + uOffset + uWidth * (i + 0), vStart + vOffset + vCircle + vHeight); + arr[2] = verts3.get(i + 1).setTexturePosition(uStart + uOffset + uWidth * (i + 1), vStart + vOffset + vCircle + vHeight); + arr[3] = verts2.get(i + 1).setTexturePosition(uStart + uOffset + uWidth * (i + 1), vStart + vOffset + vCircle); + polis.add(new TexturedPolygon(arr)); + if(dirFront) polis.get(polis.size() - 1 ).flipFace(); + } + if(!togglesides[3]){ + arr = new TexturedVertex[4]; + arr[0] = verts2.get(i + halfv2 + 0).setTexturePosition(uStart + uOffset + uWidth * (i + 0), vStart + vOffset + vCircle + vHeight); + arr[1] = verts3.get(i + halfv2 + 0).setTexturePosition(uStart + uOffset + uWidth * (i + 0), vStart + vOffset + vCircle + vHeight + vHeight); + arr[2] = verts3.get(i + halfv2 + 1).setTexturePosition(uStart + uOffset + uWidth * (i + 1), vStart + vOffset + vCircle + vHeight + vHeight); + arr[3] = verts2.get(i + halfv2 + 1).setTexturePosition(uStart + uOffset + uWidth * (i + 1), vStart + vOffset + vCircle + vHeight); + polis.add(new TexturedPolygon(arr)); + if(!dirFront) polis.get(polis.size() - 1 ).flipFace(); + } + } + root.faces.addAll(polis); + return root; + } +} \ No newline at end of file diff --git a/src/main/java/fexcraft/tmt/slim/JsonToTMT.java b/src/main/java/fexcraft/tmt/slim/JsonToTMT.java new file mode 100644 index 0000000000..6f00903fca --- /dev/null +++ b/src/main/java/fexcraft/tmt/slim/JsonToTMT.java @@ -0,0 +1,149 @@ +package fexcraft.tmt.slim; + +import com.google.gson.JsonArray; +import com.google.gson.JsonObject; + + +/** +* Tool to parse `ModelRendererTurbo` objects from JSON. +* @Author Ferdinand Calo' (FEX___96) +*/ +public class JsonToTMT { + + //def + public static final float def = 0f; + public static final int idef = 0; + //common + public static final String[] format = new String[]{"format", "form", "f"};//1.1f + public static final String[] width = new String[]{"width", "wid", "w"}; + public static final String[] height = new String[]{"height", "hgt", "h"}; + public static final String[] depth = new String[]{"depth", "dep", "d"}; + public static final String[] offx = new String[]{"offset_x", "off_x", "offx", "ox"}; + public static final String[] offy = new String[]{"offset_y", "off_y", "offy", "oy"}; + public static final String[] offz = new String[]{"offset_z", "off_z", "offz", "oz"}; + public static final String[] expansion = new String[]{"expansion", "exp", "e"}; + public static final String[] scale = new String[]{"scale", "s"}; + public static final String[] texturex = new String[]{"texture_x", "texturex", "tex_x", "tx"}; + public static final String[] texturey = new String[]{"texture_y", "texturey", "tex_y", "ty"}; + // + public static final String[] posx = new String[]{"rotation_point_x", "pos_x", "posx", "px", "x"}; + public static final String[] posy = new String[]{"rotation_point_y", "pos_y", "posy", "py", "y"}; + public static final String[] posz = new String[]{"rotation_point_z", "pos_z", "posz", "pz", "z"}; + public static final String[] rotx = new String[]{"rotation_angle_x", "rotangle_x", "rotanglex", "rot_x", "rx"}; + public static final String[] roty = new String[]{"rotation_angle_y", "rotangle_y", "rotangley", "rot_y", "ry"}; + public static final String[] rotz = new String[]{"rotation_angle_z", "rotangle_z", "rotanglez", "rot_z", "rz"}; + //settings + public static final String[] oldrot = new String[]{"old_ration", "old_rotation_order", "oro"}; + public static final String[] mirror = new String[]{"mirror", "mir", "m"}; + public static final String[] flip = new String[]{"flip", "fl", "usd"}; + //cyl + public static final String[] radius = new String[]{"radius", "rad", "r"}; + public static final String[] length = new String[]{"length", "len", "l"}; + public static final String[] segments = new String[]{"segments", "seg", "sg"}; + public static final String[] basescale = new String[]{"base_scale", "basescale", "bs"}; + public static final String[] topscale = new String[]{"top_scale", "topscale", "ts"}; + public static final String[] direction = new String[]{"direction", "dir", "facing"}; + + public final static ModelRendererTurbo parse(ModelBase base, JsonObject obj, int tx, int ty){ + ModelRendererTurbo model = new ModelRendererTurbo(base, get(texturex, obj, idef), get(texturey, obj, idef), tx, ty); + // + float x = get(offx, obj, def); + float y = get(offy, obj, def); + float z = get(offz, obj, def); + int w = get(width, obj, idef); + int h = get(height, obj, idef); + int d = get(depth, obj, idef); + // + switch(obj.get("type").getAsString()){ + case "box": case "cube": case "b": { + model.addBox(x, y, z, w, h, d, get(expansion, obj, def)); + break; + } + case "shapebox": case "sbox": case "sb": { + model.addShapeBox(x, y, z, w, h, d, get(scale, obj, def), + get("x0", obj, def), get("y0", obj, def), get("z0", obj, def), + get("x1", obj, def), get("y1", obj, def), get("z1", obj, def), + get("x2", obj, def), get("y2", obj, def), get("z2", obj, def), + get("x3", obj, def), get("y3", obj, def), get("z3", obj, def), + get("x4", obj, def), get("y4", obj, def), get("z4", obj, def), + get("x5", obj, def), get("y5", obj, def), get("z5", obj, def), + get("x6", obj, def), get("y6", obj, def), get("z6", obj, def), + get("x7", obj, def), get("y7", obj, def), get("z7", obj, def) + ); + break; + } + case "cylinder": case "cyl": case "c": { + model.addCylinder(x, y, z, get(radius, obj, 1f), get(length, obj, 1f), get(segments, obj, 16), get(basescale, obj, 1f), get(topscale, obj, 1f), get(direction, obj, 4)); + break; + } + case "cone": case "cn": { + model.addCone(x, y, z, get(radius, obj, 1f), get(length, obj, 1f), get(segments, obj, 12), get(basescale, obj, 1f), get(direction, obj, 4)); + break; + } + } + /* import unavailable: net.fexcraft.mod.lib.util.json.JsonUtil; + model.rotorder = JsonUtil.getIfExists(obj, oldrot, model.rotorder); + model.mirror = JsonUtil.getIfExists(obj, mirror, false); + model.flip = JsonUtil.getIfExists(obj, flip, false); + */ + model.rotateAngleX = get(rotx, obj, def); + model.rotateAngleY = get(roty, obj, def); + model.rotateAngleZ = get(rotz, obj, def); + // + model.setRotationPoint(get(posx, obj, def), get(posy, obj, def), get(posz, obj, def)); + return model; + } + + public final static ModelRendererTurbo[] parse(ModelBase base, JsonArray array, int tx, int ty){ + if(array != null){ + ModelRendererTurbo[] model = new ModelRendererTurbo[array.size()]; + for(int i = 0; i < array.size(); i++){ + model[i] = parse(base, array.get(i).getAsJsonObject(), tx, ty); + } + return model; + } + return new ModelRendererTurbo[0]; + } + + public final static ModelRendererTurbo[] parse(ModelBase base, String string, JsonObject object, int tx, int ty){ + if(base == null){ + /*unavailable import, could be easily replaced with generic debugger later on + if(Static.dev()){ + Static.halt(); + } + else{ + Print.log("Provided Modelbase is NULL, expect errors!", object); + }*/ + } + if(object.has(string) && object.get(string).isJsonArray()){ + return parse(base, object.get(string).getAsJsonArray(), tx, ty); + } + return new ModelRendererTurbo[0]; + } + + public static final float get(String s, JsonObject obj, float def){ + if(obj.has(s)){ + return obj.get(s).getAsFloat(); + } + return def; + } + + public static final float get(String[] s, JsonObject obj, float def){ + for(String str : s){ + if(obj.has(str)){ + return obj.get(str).getAsFloat(); + } + } + return 0; + } + + public static final int get(String[] s, JsonObject obj, int def){ + for(String str : s){ + if(obj.has(str)){ + return obj.get(str).getAsInt(); + } + } + return 0; + } + +} \ No newline at end of file diff --git a/src/main/java/fexcraft/tmt/slim/ModelBase.java b/src/main/java/fexcraft/tmt/slim/ModelBase.java new file mode 100644 index 0000000000..edf8909e67 --- /dev/null +++ b/src/main/java/fexcraft/tmt/slim/ModelBase.java @@ -0,0 +1,350 @@ +package fexcraft.tmt.slim; + +import ebf.tim.utility.CommonUtil; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.GLAllocation; +import net.minecraft.entity.Entity; +import org.lwjgl.opengl.GL11; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** +* Similar to 'FlansMod'-type Models, for a fast convert. +* @Author Ferdinand Calo' (FEX___96) +*/ +public class ModelBase extends ArrayList { + + @Deprecated //box list for static parts should be completley unnecessary by making a displaylist of it as a whole. + //improvements can be further made by having a Map for the static parts, so each intance ever only + // exists once on GPU, so 40 boxcar bases would still be the animated parts + // and a single static to cover all of them. + public List boxList = new ArrayList<>(); + public List namedList = new ArrayList<>(); + public List creators = new ArrayList<>(); + public boolean init=true; + public ModelRendererTurbo base[],bodyModel[],open[],closed[],r1[],r2[],r3[],r4[],r5[],r6[],r7[],r8[],r9[],r0[]; + + public List displayList=new ArrayList<>(); + + public static Map staticPartMap = new HashMap<>(); + public Integer localGLID = null; + + public static boolean disableCache=false; + public static boolean EnableAnimations=false; + + public void render(){ + if(init){ + initAllParts(); + } + + if(disableCache) { + render(boxList); + } else if(localGLID!=null && GL11.glIsList(localGLID)) { + GL11.glCallList(localGLID); + } else if(staticPartMap.get(this.getClass().getName())==null || !GL11.glIsList(staticPartMap.get(this.getClass().getName()))) { + localGLID=GLAllocation.generateDisplayLists(1); + staticPartMap.put(this.getClass().getName(), localGLID); + GL11.glNewList(localGLID, GL11.GL_COMPILE); + render(boxList); + GL11.glEndList(); + if(!EnableAnimations) { + boxList = null; + } + } else { + localGLID=staticPartMap.get(this.getClass().getName()); + GL11.glCallList(localGLID); + } + + + if(namedList ==null){return;} + ModelRendererTurbo part; + for(int i = 0; i< namedList.size(); i++){ + //for animations to work we have to limit the displaylist cache to ONLY the geometry, and then + // the position and offsets must be done manually every frame. + if(displayList.size()>i){ + part= namedList.get(i); + if(!part.showModel){ + continue; + } + GL11.glPushMatrix(); + if (part.ignoresLighting){ + Minecraft.getMinecraft().entityRenderer.disableLightmap(1D); + } + GL11.glTranslatef(part.rotationPointX * 0.0625F, part.rotationPointY * 0.0625F, part.rotationPointZ * 0.0625F); + GL11.glRotatef(part.rotateAngleY, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(part.rotateAngleZ, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(part.rotateAngleX, 1.0F, 0.0F, 0.0F); + if(GL11.glIsList(displayList.get(i))) { + GL11.glCallList(displayList.get(i)); + } else { + int disp = GLAllocation.generateDisplayLists(1); + displayList.set(i,disp); + GL11.glNewList(disp, GL11.GL_COMPILE); + for (TexturedPolygon poly : namedList.get(i).faces) { + Tessellator.getInstance().drawTexturedVertsWithNormal(poly, 0.0625F); + } + GL11.glEndList(); + } + + GL11.glTranslatef(-part.rotationPointX * 0.0625F, -part.rotationPointY * 0.0625F, -part.rotationPointZ * 0.0625F); + if (part.ignoresLighting){ + Minecraft.getMinecraft().entityRenderer.enableLightmap(1D); + } + GL11.glPopMatrix(); + + } else if(namedList.get(i)!=null) { + int disp = GLAllocation.generateDisplayLists(1); + displayList.add(disp); + GL11.glNewList(disp, GL11.GL_COMPILE); + for (TexturedPolygon poly : namedList.get(i).faces) { + Tessellator.getInstance().drawTexturedVertsWithNormal(poly, 0.0625F); + } + GL11.glEndList(); + } + } + } + + public void renderBlock(){ + if(!init) { + initAllParts(); + } + render(boxList); + + ModelRendererTurbo part; + for(int i = 0; i< namedList.size(); i++){ + //for animations to work we have to limit the displaylist cache to ONLY the geometry, and then + // the position and offsets must be done manually every frame. + if(displayList.size()>i){ + part= namedList.get(i); + if(!part.showModel){ + continue; + } + GL11.glPushMatrix(); + if (part.ignoresLighting){ + Minecraft.getMinecraft().entityRenderer.disableLightmap(1D); + } + GL11.glTranslatef(part.rotationPointX * 0.0625F, part.rotationPointY * 0.0625F, part.rotationPointZ * 0.0625F); + GL11.glRotatef(part.rotateAngleY, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(part.rotateAngleZ, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(part.rotateAngleX, 1.0F, 0.0F, 0.0F); + for (TexturedPolygon poly : namedList.get(i).faces) { + Tessellator.getInstance().drawTexturedVertsWithNormal(poly, 0.0625F); + } + + GL11.glTranslatef(-part.rotationPointX * 0.0625F, -part.rotationPointY * 0.0625F, -part.rotationPointZ * 0.0625F); + if (part.ignoresLighting){ + Minecraft.getMinecraft().entityRenderer.enableLightmap(1D); + } + GL11.glPopMatrix(); + + } else if(namedList.get(i)!=null) { + for (TexturedPolygon poly : namedList.get(i).faces) { + Tessellator.getInstance().drawTexturedVertsWithNormal(poly, 0.0625F); + } + } + } + } + + /** render sub-model array */ + public void render(List model){ + if(model==null){return;} + for(ModelRendererTurbo sub : model){ + if(sub!=null) { + GL11.glPushMatrix(); + sub.render(); + GL11.glPopMatrix(); + } + } + } + + + + public void render(Object type, Entity ent){render(); } + + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) {render();} + + + public void translateAll(float x, float y, float z){ + translate(base, x, y, z); + translate(open, x, y, z); + translate(closed, x, y, z); + translate(r0, x, y, z); + translate(r1, x, y, z); + translate(r2, x, y, z); + translate(r3, x, y, z); + translate(r4, x, y, z); + translate(r5, x, y, z); + translate(r6, x, y, z); + translate(r7, x, y, z); + translate(r8, x, y, z); + translate(r9, x, y, z); + translate(bodyModel,x,y,z); + translate(boxList,x,y,z); + translate(namedList,x,y,z); + } + + + public void rotateAll(float x, float y, float z){ + rotate(base, x, y, z); + rotate(open, x, y, z); + rotate(closed, x, y, z); + rotate(r0, x, y, z); + rotate(r1, x, y, z); + rotate(r2, x, y, z); + rotate(r3, x, y, z); + rotate(r4, x, y, z); + rotate(r5, x, y, z); + rotate(r6, x, y, z); + rotate(r7, x, y, z); + rotate(r8, x, y, z); + rotate(r9, x, y, z); + rotate(bodyModel,x,y,z); + rotate(boxList,x,y,z); + rotate(namedList,x,y,z); + } + public void flipAll(){ + flip(base); + flip(open); + flip(closed); + flip(r0); + flip(r1); + flip(r2); + flip(r3); + flip(r4); + flip(r5); + flip(r6); + flip(r7); + flip(r8); + flip(r9); + flip(bodyModel); + flip(boxList); + flip(namedList); + } + + + protected final void fixRotation(ModelRendererTurbo[] model, boolean flipX, boolean flipY, boolean flipZ){ + if(!flipX && !flipY && !flipZ){return;} + for(ModelRendererTurbo mod : model){ + if(mod==null){continue;} + if(flipX){mod.rotateAngleX = -mod.rotateAngleX;} + if(flipY){mod.rotateAngleY = -mod.rotateAngleY;} + if(flipZ){mod.rotateAngleZ = -mod.rotateAngleZ;} + } + } + + protected final void fixRotation(ModelRendererTurbo[] parts){ + for(ModelRendererTurbo p : parts){ + p.rotateAngleX*= CommonUtil.degreesF; + p.rotateAngleY*= CommonUtil.degreesF; + p.rotateAngleZ*= CommonUtil.degreesF; + } + } + + + protected void translate(ModelRendererTurbo[] model, float x, float y, float z){ + if(model==null){return;} + for(ModelRendererTurbo mod : model){ + if(mod==null){continue;} + mod.rotationPointX += x; + mod.rotationPointY += y; + mod.rotationPointZ += z; + } + } + protected void translate(List model, float x, float y, float z){ + if(model==null){return;} + for(ModelRendererTurbo mod : model){ + if(mod==null){continue;} + mod.rotationPointX += x; + mod.rotationPointY += y; + mod.rotationPointZ += z; + } + } + + protected void rotate(ModelRendererTurbo[] model, float x, float y, float z) { + if(model==null){return;} + for(ModelRendererTurbo mod : model){ + if(mod==null){continue;} + mod.rotateAngleX += x; + mod.rotateAngleY += y; + mod.rotateAngleZ += z; + } + } + protected void rotate(List model, float x, float y, float z) { + if(model==null){return;} + for(ModelRendererTurbo mod : model){ + if(mod==null){continue;} + mod.rotateAngleX += x; + mod.rotateAngleY += y; + mod.rotateAngleZ += z; + } + } + + public void flip(ModelRendererTurbo[] model) { + if(model==null){return;} + for(ModelRendererTurbo mod : model){ + if(mod==null){continue;} + mod.rotateAngleY = -mod.rotateAngleY * 57.29578F; + mod.rotateAngleZ = -mod.rotateAngleZ * 57.29578F; + mod.rotateAngleX *= 57.29578F; + } + } + public void flip(List model) { + if(model==null){return;} + for(ModelRendererTurbo sub : model){ + if(sub==null){continue;} + sub.doMirror(false, true, true); + sub.setRotationPoint(sub.rotationPointX, -sub.rotationPointY, -sub.rotationPointZ); + } + } + + public List getnamedParts(){ + if(init){ + initAllParts(); + } + return namedList; + } + + public void addPart(ModelRendererTurbo part){ + if(part==null) { + return; + }if(part.boxName!=null && part.boxName.length()>2){ + namedList.add(part); + } else { + boxList.add(part); + } + } + + public void addToCreators(String s){ + creators.add(s); + } + + + public void initAllParts(){ + base=initList(base); + open=initList(open); + closed=initList(closed); + bodyModel=initList(bodyModel); + r0=initList(r0); + r1=initList(r1); + r2=initList(r2); + r3=initList(r3); + r4=initList(r4); + r5=initList(r5); + r6=initList(r6); + r7=initList(r7); + r8=initList(r8); + r9=initList(r9); + init=false; + } + + public ModelRendererTurbo[] initList(ModelRendererTurbo[] list){ + if(list==null){return null;} + for(ModelRendererTurbo model : list){ + addPart(model); + } + return null; + } +} diff --git a/src/main/java/fexcraft/tmt/slim/ModelConverter.java b/src/main/java/fexcraft/tmt/slim/ModelConverter.java new file mode 100644 index 0000000000..c38ac4075d --- /dev/null +++ b/src/main/java/fexcraft/tmt/slim/ModelConverter.java @@ -0,0 +1,106 @@ +package fexcraft.tmt.slim; + +/** +* Converter to use Flansmod-Type vehicle models. +* @Author Ferdinand Calo' (FEX___96) +*/ +public class ModelConverter extends ModelBase { + + public ModelRendererTurbo model[],bodyDoorOpenModel[], bodyDoorCloseModel[],trailerModel[],steeringWheelModel[]; + + public ModelRendererTurbo turretModel[],barrelModel[]; + public ModelRendererTurbo frontWheelModel[],backWheelModel[], + leftFrontWheelModel[],rightFrontWheelModel[],leftBackWheelModel[],rightBackWheelModel[]; + public ModelRendererTurbo rightTrackModel[],leftTrackModel[], + rightTrackWheelModels[],leftTrackWheelModels[]; + + @Override + public void initAllParts(){ + model=initList(model); + bodyDoorOpenModel=initList(bodyDoorOpenModel); + bodyDoorCloseModel=initList(bodyDoorCloseModel); + trailerModel=initList(trailerModel); + steeringWheelModel=initList(steeringWheelModel); + turretModel=initList(turretModel); + barrelModel=initList(barrelModel); + frontWheelModel=initList(frontWheelModel); + backWheelModel=initList(backWheelModel); + leftFrontWheelModel=initList(leftFrontWheelModel); + rightFrontWheelModel=initList(rightFrontWheelModel); + leftBackWheelModel=initList(leftBackWheelModel); + rightBackWheelModel=initList(rightBackWheelModel); + rightTrackModel=initList(rightTrackModel); + leftTrackModel=initList(leftTrackModel); + rightTrackWheelModels=initList(rightTrackWheelModels); + leftTrackWheelModels=initList(leftTrackWheelModels); + super.initAllParts(); + } + + + @Override + public void translateAll(float x, float y, float z){ + super.translateAll(x,y,z); + translate(model, x, y, z); + translate(bodyDoorOpenModel, x, y, z); + translate(bodyDoorCloseModel, x, y, z); + translate(turretModel, x, y, z); + translate(barrelModel, x, y, z); + translate(frontWheelModel, x, y, z); + translate(backWheelModel, x, y, z); + translate(leftFrontWheelModel, x, y, z); + translate(rightFrontWheelModel, x, y, z); + translate(leftBackWheelModel, x, y, z); + translate(rightBackWheelModel, x, y, z); + translate(rightTrackModel, x, y, z); + translate(leftTrackModel, x, y, z); + translate(rightTrackWheelModels, x, y, z); + translate(leftTrackWheelModels, x, y, z); + translate(trailerModel, x, y, z); + translate(steeringWheelModel, x, y, z); + } + + @Override + public void rotateAll(float x, float y, float z){ + super.rotateAll(x,y,z); + rotate(model, x, y, z); + rotate(bodyDoorOpenModel, x, y, z); + rotate(bodyDoorCloseModel, x, y, z); + rotate(turretModel, x, y, z); + rotate(barrelModel, x, y, z); + rotate(frontWheelModel, x, y, z); + rotate(backWheelModel, x, y, z); + rotate(leftFrontWheelModel, x, y, z); + rotate(rightFrontWheelModel, x, y, z); + rotate(leftBackWheelModel, x, y, z); + rotate(rightBackWheelModel, x, y, z); + rotate(rightTrackModel, x, y, z); + rotate(leftTrackModel, x, y, z); + rotate(rightTrackWheelModels, x, y, z); + rotate(leftTrackWheelModels, x, y, z); + rotate(trailerModel, x, y, z); + rotate(steeringWheelModel, x, y, z); + } + + @Override + public void flipAll(){ + super.flipAll(); + flip(model); + flip(bodyDoorOpenModel); + flip(bodyDoorCloseModel); + flip(turretModel); + flip(barrelModel); + flip(frontWheelModel); + flip(backWheelModel); + flip(leftFrontWheelModel); + flip(rightFrontWheelModel); + flip(leftBackWheelModel); + flip(rightBackWheelModel); + flip(rightTrackModel); + flip(leftTrackModel); + flip(rightTrackWheelModels); + flip(leftTrackWheelModels); + flip(trailerModel); + flip(steeringWheelModel); + } + +} diff --git a/src/main/java/fexcraft/tmt/slim/ModelPool.java b/src/main/java/fexcraft/tmt/slim/ModelPool.java new file mode 100644 index 0000000000..7c523ae2e0 --- /dev/null +++ b/src/main/java/fexcraft/tmt/slim/ModelPool.java @@ -0,0 +1,76 @@ +package fexcraft.tmt.slim; + +import cpw.mods.fml.common.Loader; +import org.apache.commons.io.IOUtils; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.HashMap; +import java.util.Map; + +public class ModelPool { + + public static ModelPoolEntry addFile(String file, Class modelClass){ + ModelPoolEntry entry = null; + if(modelMap.containsKey(file)){ + entry = modelMap.get(file); + return entry; + } + try{ + entry = (ModelPoolEntry)modelClass.newInstance(); + } + catch(Exception e){ + System.out.println("A new " + entry.getClass().getName() + " could not be initialized."); + System.out.println(e.getMessage()); + return null; + } + InputStream modelFile = entry.checkValidPath(file.substring(5)); + if(modelFile == null){ + System.out.println("The model with the name " + file + " does not exist."); + return null; + } + entry.textures = new HashMap(); + entry.name = file; + entry.setTextureGroup("0"); + entry.getModel(modelFile); + modelMap.put(file, entry); + return entry; + } + + public static ModelPoolEntry addFileF(String file, Class modelClass) throws IOException{ + ModelPoolEntry entry = null; + if(modelMap.containsKey(file)){ + entry = modelMap.get(file); + return entry; + } + try{ + entry = (ModelPoolEntry)modelClass.newInstance(); + } + catch(Exception e){ + System.out.println("A new " + entry.getClass().getName() + " could not be initialized."); + System.out.println(e.getMessage()); + return null; + } + InputStream in = entry.getClass().getResourceAsStream("/assets/" + file + ".obj"); + if(in == null){ + System.out.println("The model with the name " + file + " does not exist."); + return null; + } + entry.textures = new HashMap(); + entry.name = file; + entry.setTextureGroup("0"); + entry.getModel(in); + modelMap.put(file, entry); + return entry; + } + + private static Map modelMap = new HashMap(); + private static String[] resourceDir = new String[] { + "minecraft/resources/models/", + "minecraft/resources/mod/models/" + }; + public static final Class OBJ = ModelPoolObjEntry.class; + +} diff --git a/src/main/java/fexcraft/tmt/slim/ModelPoolEntry.java b/src/main/java/fexcraft/tmt/slim/ModelPoolEntry.java new file mode 100644 index 0000000000..ebf3412115 --- /dev/null +++ b/src/main/java/fexcraft/tmt/slim/ModelPoolEntry.java @@ -0,0 +1,39 @@ +package fexcraft.tmt.slim; + +import java.io.File; +import java.io.InputStream; +import java.util.Collection; +import java.util.Iterator; +import java.util.Map; + +public abstract class ModelPoolEntry { + + public String name; + public TexturedVertex[] vertices; + public TexturedPolygon[] faces; + public Map textures; + protected TextureGroup texture; + + public InputStream checkValidPath(String path){ + return getClass().getResourceAsStream(path); + } + + public abstract void getModel(InputStream file); + + /** + * Sets the current texture group, which is used to switch the + * textures on a per-model base. Do note that any model that is + * rendered afterwards will use the same texture. To counter it, + * set a default texture, either at initialization or before + * rendering. + * @param groupName The name of the texture group. If the texture + * group doesn't exist, it creates a new group automatically. + */ + protected void setTextureGroup(String groupName){ + if(textures.size() == 0 || !textures.containsKey(groupName)){ + textures.put(groupName, new TextureGroup()); + } + texture = textures.get(groupName); + } + +} diff --git a/src/main/java/fexcraft/tmt/slim/ModelPoolObjEntry.java b/src/main/java/fexcraft/tmt/slim/ModelPoolObjEntry.java new file mode 100644 index 0000000000..5e85531d82 --- /dev/null +++ b/src/main/java/fexcraft/tmt/slim/ModelPoolObjEntry.java @@ -0,0 +1,189 @@ +package fexcraft.tmt.slim; + +import java.io.*; +import java.util.ArrayList; + +public class ModelPoolObjEntry extends ModelPoolEntry { + + public ModelPoolObjEntry(){} + + public void getModel(InputStream file){ + try{ + BufferedReader in = new BufferedReader(new InputStreamReader(file)); + String s; + ArrayList verts = new ArrayList(); + ArrayList uvs = new ArrayList(); + ArrayList normals = new ArrayList(); + ArrayList face = new ArrayList(); + while((s = in.readLine()) != null){ + if(s.contains("#")){ + s = s.substring(0, s.indexOf("#")); + } + s = s.trim(); + if(s.equals("")){ + continue; + } + if(s.startsWith("g ")){ + setTextureGroup(s.substring(s.indexOf(" ") + 1).trim()); + continue; + } + if(s.startsWith("v ")){ + s = s.substring(s.indexOf(" ") + 1).trim(); + float[] v = new float[3]; + for(int i = 0; i < 3; i++){ + int ind = s.indexOf(" "); + if(ind > -1){ + v[i] = Float.parseFloat(s.substring(0, ind)); + } + else{ + v[i] = Float.parseFloat(s.substring(0)); + } + s = s.substring(s.indexOf(" ") + 1).trim(); + } + float flt = v[2]; + v[2] = -v[1]; + v[1] = flt; + verts.add(new TexturedVertex(v[0], v[1], v[2], 0, 0)); + continue; + } + if(s.startsWith("vt ")){ + s = s.substring(s.indexOf(" ") + 1).trim(); + float[] v = new float[2]; + for(int i = 0; i < 2; i++){ + int ind = s.indexOf(" "); + if(ind > -1){ + v[i] = Float.parseFloat(s.substring(0, ind)); + } + else{ + v[i] = Float.parseFloat(s.substring(0)); + } + s = s.substring(s.indexOf(" ") + 1).trim(); + } + uvs.add(new float[] {v[0], 1F - v[1]}); + continue; + } + if(s.startsWith("vn ")){ + s = s.substring(s.indexOf(" ") + 1).trim(); + float[] v = new float[3]; + for(int i = 0; i < 3; i++){ + int ind = s.indexOf(" "); + if(ind > -1){ + v[i] = Float.parseFloat(s.substring(0, ind)); + } + else{ + v[i] = Float.parseFloat(s.substring(0)); + } + s = s.substring(s.indexOf(" ") + 1).trim(); + } + float flt = v[2]; + v[2] = v[1]; + v[1] = flt; + normals.add(new float[] {v[0], v[1], v[2]}); + continue; + } + if(s.startsWith("f ")){ + s = s.substring(s.indexOf(" ") + 1).trim(); + ArrayList v = new ArrayList(); + String s1; + int finalPhase = 0; + float[] normal = new float[] {0F, 0F, 0F}; + ArrayList iNormal = new ArrayList(); + do{ + int vInt; + float[] curUV; + float[] curNormals; + int ind = s.indexOf(" "); + s1 = s; + if(ind > -1){ + s1 = s.substring(0, ind); + } + if(s1.indexOf("/") > -1){ + String[] f = s1.split("/"); + vInt = Integer.parseInt(f[0]) - 1; + if(f[1].equals("")){ + f[1] = f[0]; + } + int vtInt = Integer.parseInt(f[1]) - 1; + if(uvs.size() > vtInt){ + curUV = uvs.get(vtInt); + } + else{ + curUV = new float[] {0, 0}; + } + int vnInt = 0; + if(f.length == 3){ + if(f[2].equals("")){ + f[2] = f[0]; + } + vnInt = Integer.parseInt(f[2]) - 1; + } + else{ + vnInt = Integer.parseInt(f[0]) - 1; + } + if(normals.size() > vnInt){ + curNormals = normals.get(vnInt); + } + else{ + curNormals = new float[] {0, 0, 0}; + } + } + else{ + vInt = Integer.parseInt(s1) - 1; + if(uvs.size() > vInt){ + curUV = uvs.get(vInt); + } + else{ + curUV = new float[] {0, 0}; + } + if(normals.size() > vInt){ + curNormals = normals.get(vInt); + } + else{ + curNormals = new float[] {0, 0, 0}; + } + } + iNormal.add(new Vec3f(curNormals[0], curNormals[1], curNormals[2])); + normal[0]+= curNormals[0]; + normal[1]+= curNormals[1]; + normal[2]+= curNormals[2]; + if(vInt < verts.size()){ + v.add(verts.get(vInt).setTexturePosition(curUV[0], curUV[1])); + } + if(ind > -1){ + s = s.substring(s.indexOf(" ") + 1).trim(); + } + else{ + finalPhase++; + } + } + while(finalPhase < 1); + float d = (float)Math.sqrt(normal[0] * normal[0] + normal[1] * normal[1] + normal[2] * normal[2]); + normal[0]/= d; + normal[1]/= d; + normal[2]/= d; + TexturedVertex[] vToArr = new TexturedVertex[v.size()]; + for(int i = 0; i < v.size(); i++){ + vToArr[i] = v.get(i); + } + TexturedPolygon poly = new TexturedPolygon(vToArr); + face.add(poly); + texture.addPoly(poly); + continue; + } + } + vertices = new TexturedVertex[verts.size()]; + for(int i = 0; i < verts.size(); i++){ + vertices[i] = verts.get(i); + } + faces = new TexturedPolygon[face.size()]; + for(int i = 0; i < face.size(); i++){ + faces[i] = face.get(i); + } + in.close(); + } + catch(Throwable e){ + // + } + } + +} \ No newline at end of file diff --git a/src/main/java/fexcraft/tmt/slim/ModelRendererTurbo.java b/src/main/java/fexcraft/tmt/slim/ModelRendererTurbo.java new file mode 100644 index 0000000000..8cb4c7c0c9 --- /dev/null +++ b/src/main/java/fexcraft/tmt/slim/ModelRendererTurbo.java @@ -0,0 +1,1458 @@ +package fexcraft.tmt.slim; + +import fexcraft.fvtm.TurboList; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.GLAllocation; +import net.minecraft.util.MathHelper; +import org.lwjgl.opengl.GL11; + +import java.io.IOException; +import java.util.*; + +/** + * An extension to the ModelRenderer class. It basically is a copy to ModelRenderer, + * however, it contains various new methods to make your models. + *

+ * Since the ModelRendererTurbo class gets loaded during startup, the models made + * can be very complex. This is why I can afford to add, for example, Wavefont OBJ + * support or have the addSprite method, methods that add a lot of vertices and + * polygons. + * + * This version of TMT was updated, maintened, as well as extended for 1.8 and newer Minecraft versions by FEX___96 + * + * @author GaryCXJk, Ferdinand (FEX___96) + * @license http://fexcraft.net/license?id=tmt + * + */ +public class ModelRendererTurbo { + + public List faces; + public int textureOffsetX, textureOffsetY; + public float textureWidth=0,textureHeight=0; + public boolean mirror; + public float rotateAngleX=0,rotateAngleY=0,rotateAngleZ=0; + public float rotationPointX=0,rotationPointY=0,rotationPointZ=0; + public float width, height, depth; + public boolean showModel; //previously known as !field_1402_i + public boolean noCull=false; + public boolean ignoresLighting=false; + public String boxName = null; + public boolean animated=false; + public Integer glID=null; + + public static final int MR_FRONT = 0, MR_BACK = 1, MR_LEFT = 2, MR_RIGHT = 3, MR_TOP = 4, MR_BOTTOM = 5; + public static final float pi = (float)Math.PI; + + /** + * Creates a new ModelRenderTurbo object. + * @param s + */ + public ModelRendererTurbo(String s){ + mirror = false; + showModel = true; + faces = new ArrayList<>(); + boxName = s; + } + + /** + * Creates a new ModelRenderTurbo object. It requires the coordinates of the + * position of the texture, but also allows you to specify the width and height + * of the texture. + * @param s + * @param textureX + * @param textureY + * @param textureU + * @param textureV + */ + public ModelRendererTurbo(String s, int textureX, int textureY, float textureU, float textureV){ + mirror = false; + showModel = true; + faces = new ArrayList<>(); + boxName = s; + textureOffsetX = textureX; + textureOffsetY = textureY; + textureWidth = textureU; + textureHeight = textureV; + } + + public ModelRendererTurbo(ModelBase modelbase, String s){this(s);} + public ModelRendererTurbo(TurboList modelbase, String s){this(s);} + public ModelRendererTurbo(ModelBase modelbase){this("");} + + public ModelRendererTurbo(ModelBase modelbase, int textureX, int textureY, int textureU, int textureV){ + this("",textureX,textureY,textureU,textureV); + } + public ModelRendererTurbo(TurboList modelbase, int textureX, int textureY, int textureU, int textureV){ + this("",textureX,textureY,textureU,textureV); + } + public ModelRendererTurbo(ModelBase modelbase, int textureX, int textureY, int textureU, int textureV, String boxName) { + this(boxName,textureX,textureY,textureU,textureV); + } + + + private TexturedPolygon textureQuad(TexturedVertex vert1, TexturedVertex vert2, TexturedVertex vert3, TexturedVertex vert4, float f, float g, float h, float j){ + float uOffs = 1.0F / (textureWidth * 10.0F); + float vOffs = 1.0F / (textureHeight * 10.0F); + List verts = new ArrayList<>(); + //todo: use the longest, or shortest for that side for h/f g/j respectively + verts.add(vert1.setTexturePosition(h / textureWidth - uOffs, g / textureHeight + vOffs)); + verts.add(vert2.setTexturePosition(f / textureWidth + uOffs, g / textureHeight + vOffs)); + verts.add(vert3.setTexturePosition(f / textureWidth + uOffs, j / textureHeight - vOffs)); + verts.add(vert4.setTexturePosition(h / textureWidth - uOffs, j / textureHeight - vOffs)); + return new TexturedPolygon(verts); + } + + /** + * Adds a rectangular shape. Basically, you can make any eight-pointed shape you want, + * as the method requires eight vector coordinates. + * @param v a float array with three values, the x, y and z coordinates of the vertex + * @param v1 a float array with three values, the x, y and z coordinates of the vertex + * @param v2 a float array with three values, the x, y and z coordinates of the vertex + * @param v3 a float array with three values, the x, y and z coordinates of the vertex + * @param v4 a float array with three values, the x, y and z coordinates of the vertex + * @param v5 a float array with three values, the x, y and z coordinates of the vertex + * @param v6 a float array with three values, the x, y and z coordinates of the vertex + * @param v7 a float array with three values, the x, y and z coordinates of the vertex + * @param w the width of the shape, used in determining the texture + * @param h the height of the shape, used in determining the texture + * @param d the depth of the shape, used in determining the texture + */ + public ModelRendererTurbo addRectShape(float[] v, float[] v1, float[] v2, float[] v3, float[] v4, float[] v5, float[] v6, float[] v7, float w, float h, float d, boolean[] sides){ + List poly = new ArrayList<>(); + TexturedVertex vert0 = new TexturedVertex(v[0], v[1], v[2], 0.0F, 0.0F); + TexturedVertex vert1 = new TexturedVertex(v1[0], v1[1], v1[2], 0.0F, 8.0F); + TexturedVertex vert2 = new TexturedVertex(v2[0], v2[1], v2[2], 8.0F, 8.0F); + TexturedVertex vert3 = new TexturedVertex(v3[0], v3[1], v3[2], 8.0F, 0.0F); + TexturedVertex vert4 = new TexturedVertex(v4[0], v4[1], v4[2], 0.0F, 0.0F); + TexturedVertex vert5 = new TexturedVertex(v5[0], v5[1], v5[2], 0.0F, 8.0F); + TexturedVertex vert6 = new TexturedVertex(v6[0], v6[1], v6[2], 8.0F, 8.0F); + TexturedVertex vert7 = new TexturedVertex(v7[0], v7[1], v7[2], 8.0F, 0.0F); + + if(w % 1 != 0){ + w = w < 1 ? 1 : (int)w + (w % 1 > 0.5f ? 1 : 0); + } + if(h % 1 != 0){ + h = h < 1 ? 1 : (int)h + (h % 1 > 0.5f ? 1 : 0); + } + if(d % 1 != 0){ + d = d < 1 ? 1 : (int)d + (d % 1 > 0.5f ? 1 : 0); + } + if(sides == null){ + poly.add(textureQuad(vert5, vert1, vert2, vert6, textureOffsetX + d + w, textureOffsetY + d, textureOffsetX + d + w + d, textureOffsetY + d + h)); + poly.add(textureQuad(vert0, vert4, vert7, vert3, textureOffsetX, textureOffsetY + d, textureOffsetX + d, textureOffsetY + d + h)); + poly.add(textureQuad(vert5, vert4, vert0, vert1, textureOffsetX + d, textureOffsetY, textureOffsetX + d + w, textureOffsetY + d)); + poly.add(textureQuad(vert2, vert3, vert7, vert6, textureOffsetX + d + w, textureOffsetY, textureOffsetX + d + w + w, textureOffsetY + d)); + poly.add(textureQuad(vert1, vert0, vert3, vert2, textureOffsetX + d, textureOffsetY + d, textureOffsetX + d + w, textureOffsetY + d + h)); + poly.add(textureQuad(vert4, vert5, vert6, vert7, textureOffsetX + d + w + d, textureOffsetY + d, textureOffsetX + d + w + d + w, textureOffsetY + d + h)); + } else{ + float v0 = sides[2] && sides[3] ? 0 : d; + float u0 = sides[1] ? 0 : d, u1 = sides[2] ? 0 : w, u2 = sides[4] ? 0 : w, u3 = sides[0] ? 0 : d; + if(!sides[0]){poly.add(textureQuad(vert5, vert1, vert2, vert6, textureOffsetX + u0 + u2, textureOffsetY + v0, textureOffsetX + u0 + u2 + d, textureOffsetY + v0 + h));} + if(!sides[1]){poly.add(textureQuad(vert0, vert4, vert7, vert3, textureOffsetX, textureOffsetY + v0, textureOffsetX + d, textureOffsetY + v0 + h));} + if(!sides[2]){poly.add(textureQuad(vert5, vert4, vert0, vert1, textureOffsetX + u0, textureOffsetY, textureOffsetX + u0 + w, textureOffsetY + d));} + if(!sides[3]){poly.add(textureQuad(vert2, vert3, vert7, vert6, textureOffsetX + u0 + u1, textureOffsetY, textureOffsetX + u0 + u1 + w, textureOffsetY + d));} + if(!sides[4]){poly.add(textureQuad(vert1, vert0, vert3, vert2, textureOffsetX + u0, textureOffsetY + v0, textureOffsetX + u0 + w, textureOffsetY + v0 + h));} + if(sides.length > 5 && !sides[5]){poly.add(textureQuad(vert4, vert5, vert6, vert7, textureOffsetX + u0 + u2 + u3, textureOffsetY + v0, textureOffsetX + u0 + u2 + u3 + w, textureOffsetY + v0 + h));} + } + if(mirror){ + for(TexturedPolygon p : poly){ + p.flipFace(); + } + } + faces.addAll(poly); + return this; + } + + + /** + * Adds a new box to the model. + * @param x the starting x-position + * @param y the starting y-position + * @param z the starting z-position + * @param w the width (over the x-direction) + * @param h the height (over the y-direction) + * @param d the depth (over the z-direction) + */ + public ModelRendererTurbo addBox(float x, float y, float z, int w, int h, int d){ + addBox(x, y, z, w, h, d, 0.0F); + return this; + } + + public ModelRendererTurbo addBox(float x, float y, float z, float w, float h, float d){ + addBox(x, y, z, w, h, d, 0.0F, 1F); + return this; + } + + /** + * Adds a new box to the model. + * @param x the starting x-position + * @param y the starting y-position + * @param z the starting z-position + * @param w the width (over the x-direction) + * @param h the height (over the y-direction) + * @param d the depth (over the z-direction) + * @param expansion the expansion of the box. It increases the size in each direction by that many. + */ + public ModelRendererTurbo addBox(float x, float y, float z, int w, int h, int d, float expansion){ + return addBox(x, y, z, w, h, d, expansion, 1F); + } + + + + public ModelRendererTurbo addBox(float x, float y, float z, float w, float h, float d, float expansion, float scale){ + return addBox(x, y, z, w, h, d, expansion, scale,null); + } + + /** + * Adds a new box to the model. + * @param x the starting x-position + * @param y the starting y-position + * @param z the starting z-position + * @param w the width (over the x-direction) + * @param h the height (over the y-direction) + * @param d the depth (over the z-direction) + * @param expansion the expansion of the box. It increases the size in each direction by that many. It's independent from the scale. + * @param scale + */ + public ModelRendererTurbo addBox(float x, float y, float z, float w, float h, float d, float expansion, float scale, boolean[] sides){ + width=w;height=h;depth=d; + expansion +=0.005f; + float x1 = (x + w+expansion)*scale; + float y1 = (y + h+expansion)*scale; + float z1 = (z + d+expansion)*scale; + + x -= expansion; x*=scale; + y -= expansion; y*=scale; + z -= expansion; z*=scale; + if(mirror){ + float xTemp = x1; + x1 = x; + x = xTemp; + } + + float[] v = {x, y, z}; + float[] v1 = {x1, y, z}; + float[] v2 = {x1, y1, z}; + float[] v3 = {x, y1, z}; + float[] v4 = {x, y, z1}; + float[] v5 = {x1, y, z1}; + float[] v6 = {x1, y1, z1}; + float[] v7 = {x, y1, z1}; + return addRectShape(v, v1, v2, v3, v4, v5, v6, v7, w, h, d,sides); + } + + /** + * Adds a trapezoid-like shape. It's achieved by expanding the shape on one side. + * You can use the static variables MR_RIGHT, MR_LEFT, + * MR_FRONT, MR_BACK, MR_TOP and + * MR_BOTTOM. + * @param x the starting x-position + * @param y the starting y-position + * @param z the starting z-position + * @param w the width (over the x-direction) + * @param h the height (over the y-direction) + * @param d the depth (over the z-direction) + * @param scale the "scale" of the box. It only increases the size in each direction by that many. + * @param bottomScale the "scale" of the bottom + * @param dir the side the scaling is applied to + */ + public void addTrapezoid(float x, float y, float z, int w, int h, int d, float scale, float bottomScale, int dir){ + float f4 = x + w; + float f5 = y + h; + float f6 = z + d; + x -= scale; + y -= scale; + z -= scale; + f4 += scale; + f5 += scale; + f6 += scale; + + int m = (mirror ? -1 : 1); + if(mirror){ + float f7 = f4; + f4 = x; + x = f7; + } + float[] v = {x, y, z}; + float[] v1 = {f4, y, z}; + float[] v2 = {f4, f5, z}; + float[] v3 = {x, f5, z}; + float[] v4 = {x, y, f6}; + float[] v5 = {f4, y, f6}; + float[] v6 = {f4, f5, f6}; + float[] v7 = {x, f5, f6}; + + switch(dir){ + case MR_RIGHT: + v[1] -= bottomScale; + v[2] -= bottomScale; + v3[1] += bottomScale; + v3[2] -= bottomScale; + v4[1] -= bottomScale; + v4[2] += bottomScale; + v7[1] += bottomScale; + v7[2] += bottomScale; + break; + case MR_LEFT: + v1[1] -= bottomScale; + v1[2] -= bottomScale; + v2[1] += bottomScale; + v2[2] -= bottomScale; + v5[1] -= bottomScale; + v5[2] += bottomScale; + v6[1] += bottomScale; + v6[2] += bottomScale; + break; + case MR_FRONT: + v[0] -= m * bottomScale; + v[1] -= bottomScale; + v1[0] += m * bottomScale; + v1[1] -= bottomScale; + v2[0] += m * bottomScale; + v2[1] += bottomScale; + v3[0] -= m * bottomScale; + v3[1] += bottomScale; + break; + case MR_BACK: + v4[0] -= m * bottomScale; + v4[1] -= bottomScale; + v5[0] += m * bottomScale; + v5[1] -= bottomScale; + v6[0] += m * bottomScale; + v6[1] += bottomScale; + v7[0] -= m * bottomScale; + v7[1] += bottomScale; + break; + case MR_TOP: + v[0] -= m * bottomScale; + v[2] -= bottomScale; + v1[0] += m * bottomScale; + v1[2] -= bottomScale; + v4[0] -= m * bottomScale; + v4[2] += bottomScale; + v5[0] += m * bottomScale; + v5[2] += bottomScale; + break; + case MR_BOTTOM: + v2[0] += m * bottomScale; + v2[2] -= bottomScale; + v3[0] -= m * bottomScale; + v3[2] -= bottomScale; + v6[0] += m * bottomScale; + v6[2] += bottomScale; + v7[0] -= m * bottomScale; + v7[2] += bottomScale; + break; + } + addRectShape(v, v1, v2, v3, v4, v5, v6, v7, w, h, d,null); + } + + /** + * Adds a trapezoid-like shape. It's achieved by expanding the shape on one side. + * You can use the static variables MR_RIGHT, MR_LEFT, + * MR_FRONT, MR_BACK, MR_TOP and + * MR_BOTTOM. + * @param x the starting x-position + * @param y the starting y-position + * @param z the starting z-position + * @param w the width (over the x-direction) + * @param h the height (over the y-direction) + * @param d the depth (over the z-direction) + * @param scale the "scale" of the box. It only increases the size in each direction by that many. + * @param bScale1 the "scale" of the bottom - Top + * @param bScale2 the "scale" of the bottom - Bottom + * @param bScale3 the "scale" of the bottom - Left + * @param bScale4 the "scale" of the bottom - Right + * @param fScale1 the "scale" of the top - Left + * @param fScale2 the "scale" of the top - Right + * @param dir the side the scaling is applied to + */ + public void addFlexTrapezoid(float x, float y, float z, int w, int h, int d, float scale, float bScale1, float bScale2, float bScale3, float bScale4, float fScale1, float fScale2, int dir) + { + float f4 = x + w; + float f5 = y + h; + float f6 = z + d; + x -= scale; + y -= scale; + z -= scale; + f4 += scale; + f5 += scale; + f6 += scale; + + int m = (mirror ? -1 : 1); + if(mirror) + { + float f7 = f4; + f4 = x; + x = f7; + } + + float[] v = {x, y, z}; + float[] v1 = {f4, y, z}; + float[] v2 = {f4, f5, z}; + float[] v3 = {x, f5, z}; + float[] v4 = {x, y, f6}; + float[] v5 = {f4, y, f6}; + float[] v6 = {f4, f5, f6}; + float[] v7 = {x, f5, f6}; + + + switch(dir) + { + case MR_RIGHT: + v[2] -= fScale1; + v1[2] -= fScale1; + v4[2] += fScale2; + v5[2] += fScale2; + + v[1] -= bScale1; + v[2] -= bScale3; + v3[1] += bScale2; + v3[2] -= bScale3; + v4[1] -= bScale1; + v4[2] += bScale4; + v7[1] += bScale2; + v7[2] += bScale4; + break; + case MR_LEFT: + v[2] -= fScale1; + v1[2] -= fScale1; + v4[2] += fScale2; + v5[2] += fScale2; + + v1[1] -= bScale1; + v1[2] -= bScale3; + v2[1] += bScale2; + v2[2] -= bScale3; + v5[1] -= bScale1; + v5[2] += bScale4; + v6[1] += bScale2; + v6[2] += bScale4; + break; + case MR_FRONT: + v1[1] -= fScale1; + v5[1] -= fScale1; + v2[1] += fScale2; + v6[1] += fScale2; + + v[0] -= m * bScale4; + v[1] -= bScale1; + v1[0] += m * bScale3; + v1[1] -= bScale1; + v2[0] += m * bScale3; + v2[1] += bScale2; + v3[0] -= m * bScale4; + v3[1] += bScale2; + break; + case MR_BACK: + v1[1] -= fScale1; + v5[1] -= fScale1; + v2[1] += fScale2; + v6[1] += fScale2; + + v4[0] -= m * bScale4; + v4[1] -= bScale1; + v5[0] += m * bScale3; + v5[1] -= bScale1; + v6[0] += m * bScale3; + v6[1] += bScale2; + v7[0] -= m * bScale4; + v7[1] += bScale2; + break; + case MR_TOP: + v1[2] -= fScale1; + v2[2] -= fScale1; + v5[2] += fScale2; + v6[2] += fScale2; + + v[0] -= m * bScale1; + v[2] -= bScale3; + v1[0] += m * bScale2; + v1[2] -= bScale3; + v4[0] -= m * bScale1; + v4[2] += bScale4; + v5[0] += m * bScale2; + v5[2] += bScale4; + break; + case MR_BOTTOM: + v1[2] -= fScale1; + v2[2] -= fScale1; + v5[2] += fScale2; + v6[2] += fScale2; + + v2[0] += m * bScale2; + v2[2] -= bScale3; + v3[0] -= m * bScale1; + v3[2] -= bScale3; + v6[0] += m * bScale2; + v6[2] += bScale4; + v7[0] -= m * bScale1; + v7[2] += bScale4; + break; + } + + addRectShape(v, v1, v2, v3, v4, v5, v6, v7, w, h, d,null); + } + + /** + * Creates a shape from a 2D vector shape. + * @param x the starting x position + * @param y the starting y position + * @param z the starting z position + * @param coordinates an array of coordinates that form the shape + * @param depth the depth of the shape + * @param shapeTextureWidth the width of the texture of one side of the shape + * @param shapeTextureHeight the height of the texture the shape + * @param sideTextureWidth the width of the texture of the side of the shape + * @param sideTextureHeight the height of the texture of the side of the shape + * @param direction the direction the starting point of the shape is facing + */ + public void addShape3D(float x, float y, float z, Coord2D[] coordinates, float depth, int shapeTextureWidth, int shapeTextureHeight, int sideTextureWidth, int sideTextureHeight, int direction){ + addShape3D(x, y, z, coordinates, depth, shapeTextureWidth, shapeTextureHeight, sideTextureWidth, sideTextureHeight, direction, null); + } + + /** + * Creates a shape from a 2D vector shape. + * @param x the starting x position + * @param y the starting y position + * @param z the starting z position + * @param coordinates an array of coordinates that form the shape + * @param depth the depth of the shape + * @param shapeTextureWidth the width of the texture of one side of the shape + * @param shapeTextureHeight the height of the texture the shape + * @param sideTextureWidth the width of the texture of the side of the shape + * @param sideTextureHeight the height of the texture of the side of the shape + * @param direction the direction the starting point of the shape is facing + * @param faceLengths An array with the length of each face. Used to set + * the texture width of each face on the side manually. + */ + public void addShape3D(float x, float y, float z, Coord2D[] coordinates, float depth, int shapeTextureWidth, int shapeTextureHeight, int sideTextureWidth, int sideTextureHeight, int direction, float[] faceLengths){ + addShape3D(x, y, z, new Shape2D(coordinates), depth, shapeTextureWidth, shapeTextureHeight, sideTextureWidth, sideTextureHeight, direction, faceLengths); + } + + /** + * Creates a shape from a 2D vector shape. + * @param x the starting x position + * @param y the starting y position + * @param z the starting z position + * @param coordinates an ArrayList of coordinates that form the shape + * @param depth the depth of the shape + * @param shapeTextureWidth the width of the texture of one side of the shape + * @param shapeTextureHeight the height of the texture the shape + * @param sideTextureWidth the width of the texture of the side of the shape + * @param sideTextureHeight the height of the texture of the side of the shape + * @param direction the direction the starting point of the shape is facing + */ + public void addShape3D(float x, float y, float z, ArrayList coordinates, float depth, int shapeTextureWidth, int shapeTextureHeight, int sideTextureWidth, int sideTextureHeight, int direction){ + addShape3D(x, y, z, coordinates, depth, shapeTextureWidth, shapeTextureHeight, sideTextureWidth, sideTextureHeight, direction, null); + } + + /** + * Creates a shape from a 2D vector shape. + * @param x the starting x position + * @param y the starting y position + * @param z the starting z position + * @param coordinates an ArrayList of coordinates that form the shape + * @param depth the depth of the shape + * @param shapeTextureWidth the width of the texture of one side of the shape + * @param shapeTextureHeight the height of the texture the shape + * @param sideTextureWidth the width of the texture of the side of the shape + * @param sideTextureHeight the height of the texture of the side of the shape + * @param direction the direction the starting point of the shape is facing + * @param faceLengths An array with the length of each face. Used to set + * the texture width of each face on the side manually. + */ + public void addShape3D(float x, float y, float z, ArrayList coordinates, float depth, int shapeTextureWidth, int shapeTextureHeight, int sideTextureWidth, int sideTextureHeight, int direction, float[] faceLengths){ + addShape3D(x, y, z, new Shape2D(coordinates), depth, shapeTextureWidth, shapeTextureHeight, sideTextureWidth, sideTextureHeight, direction, faceLengths); + } + + /** + * Creates a shape from a 2D vector shape. + * @param x the starting x position + * @param y the starting y position + * @param z the starting z position + * @param shape a Shape2D which contains the coordinates of the shape points + * @param depth the depth of the shape + * @param shapeTextureWidth the width of the texture of one side of the shape + * @param shapeTextureHeight the height of the texture the shape + * @param sideTextureWidth the width of the texture of the side of the shape + * @param sideTextureHeight the height of the texture of the side of the shape + * @param direction the direction the starting point of the shape is facing + */ + public void addShape3D(float x, float y, float z, Shape2D shape, float depth, int shapeTextureWidth, int shapeTextureHeight, int sideTextureWidth, int sideTextureHeight, int direction){ + addShape3D(x, y, z, shape, depth, shapeTextureWidth, shapeTextureHeight, sideTextureWidth, sideTextureHeight, direction, null); + } + + /** + * Creates a shape from a 2D vector shape. + * @param x the starting x position + * @param y the starting y position + * @param z the starting z position + * @param shape a Shape2D which contains the coordinates of the shape points + * @param depth the depth of the shape + * @param shapeTextureWidth the width of the texture of one side of the shape + * @param shapeTextureHeight the height of the texture the shape + * @param sideTextureWidth the width of the texture of the side of the shape + * @param sideTextureHeight the height of the texture of the side of the shape + * @param direction the direction the starting point of the shape is facing + * @param faceLengths An array with the length of each face. Used to set + * the texture width of each face on the side manually. + */ + public ModelRendererTurbo addShape3D(float x, float y, float z, Shape2D shape, float depth, int shapeTextureWidth, int shapeTextureHeight, int sideTextureWidth, int sideTextureHeight, int direction, float[] faceLengths){ + float rotX = 0; + float rotY = 0; + float rotZ = 0; + switch(direction){ + case MR_LEFT: + rotY = pi / 2; + break; + case MR_RIGHT: + rotY = -pi / 2; + break; + case MR_TOP: + rotX = pi / 2; + break; + case MR_BOTTOM: + rotX = -pi / 2; + break; + case MR_FRONT: + rotY = pi; + break; + case MR_BACK: + break; + } + return addShape3D(x, y, z, shape, depth, shapeTextureWidth, shapeTextureHeight, sideTextureWidth, sideTextureHeight, rotX, rotY, rotZ, faceLengths); + } + + /** + * Creates a shape from a 2D vector shape. + * @param x the starting x position + * @param y the starting y position + * @param z the starting z position + * @param shape a Shape2D which contains the coordinates of the shape points + * @param depth the depth of the shape + * @param shapeTextureWidth the width of the texture of one side of the shape + * @param shapeTextureHeight the height of the texture the shape + * @param sideTextureWidth the width of the texture of the side of the shape + * @param sideTextureHeight the height of the texture of the side of the shape + * @param rotX the rotation around the x-axis + * @param rotY the rotation around the y-axis + * @param rotZ the rotation around the z-axis + */ + public void addShape3D(float x, float y, float z, Shape2D shape, float depth, int shapeTextureWidth, int shapeTextureHeight, int sideTextureWidth, int sideTextureHeight, float rotX, float rotY, float rotZ){ + addShape3D(x, y, z, shape, depth, shapeTextureWidth, shapeTextureHeight, sideTextureWidth, sideTextureHeight, rotX, rotY, rotZ, null); + } + + /** + * Eternal: the check for flip was removed, shapes always need to be flipped., added a boolean to define if it's a shape or not so we can properly fix rotations + * NOTE: `x` and `z` are inverted to prevent "Toolbox" or "Flansmod"-type models from being rendered wrong. + * There is currently no other commonly used editor for such models, so let's leave it that way for now. + * NOTE2: Also let's rotate by 180 degrees for whatever reason. + * @Ferdinand + */ + public ModelRendererTurbo addShape3D(float x, float y, float z, Shape2D shape, float depth, int shapeTextureWidth, int shapeTextureHeight, int sideTextureWidth, int sideTextureHeight, float rotX, float rotY, float rotZ, float[] faceLengths){ + faces.addAll(Arrays.asList(shape.extrude(-x, y, -z, rotX, rotY, rotZ, depth, textureOffsetX, textureOffsetY, textureWidth, textureHeight, shapeTextureWidth, shapeTextureHeight, sideTextureWidth, sideTextureHeight, faceLengths))); + return this; + } + + + /** + * Creates a model shaped like the exact image on the texture by making a series of 2d planes. + * @param x the starting x-position + * @param y the starting y-position + * @param z the starting z-position + * @param w the width of the sprite + * @param h the height of the sprite + * @param extrude the expansion of the sprite on the axis that would otherwise be 0. + */ + public ModelRendererTurbo addSprite(float x, float y, float z, int w, int h, int d, float extrude){ + float x1,y1,z1,x2,y2,z2; + for(float expansion=0;expansion<=extrude;expansion+=0.2f){ + x1=(w==0?expansion:x); + y1=(h==0?expansion:y); + z1=(d==0?expansion:z); + + x2=(w==0?x+w+expansion:w); + y2=(h==0?y+h+expansion:h); + z2=(d==0?z+d+expansion:d); + + if(mirror){ + float xTemp = x1; + x1 = x; + x = xTemp; + } + + float[] v = {x2, y2, z2}, v1 = {x1, y2, z2}, v2 = {x1, y1, z2}, v3 = {x2, y1, z2}, + v4 = {x2, y2, z1}, v5 = {x1, y2, z1}, v6 = {x1, y1, z1}, v7 = {x2, y1, z1}; + addRectShape(v, v1, v2, v3, v4, v5, v6, v7, w, h, d,null); + } + return this; + } + + /** + * Adds a spherical shape. + * @param x + * @param y + * @param z + * @param r + * @param segs + * @param rings + * @param textureW + * @param textureH + */ + public ModelRendererTurbo addSphere(float x, float y, float z, float r, int segs, int rings, int textureW, int textureH){ + if(segs < 3){ + segs = 3; + } + rings++; + TexturedVertex[] tempVerts = new TexturedVertex[segs * (rings - 1) + 2]; + List poly = new ArrayList<>(); + tempVerts[0] = new TexturedVertex(x, y - r, z, 0, 0); + tempVerts[tempVerts.length - 1] = new TexturedVertex(x, y + r, z, 0, 0); + float uOffs = 1.0F / ( textureWidth * 10.0F); + float vOffs = 1.0F / ( textureHeight * 10.0F); + float texW = textureW / textureWidth - 2F * uOffs; + float texH = textureH / textureHeight - 2F * vOffs; + float segW = texW / segs; + float segH = texH / rings; + float startU = textureOffsetX / textureWidth; + float startV = textureOffsetY / textureHeight; + + List verts; + for(int j = 1; j < rings; j++){ + for(int i = 0; i < segs; i++){ + float yWidth = MathHelper.cos(-pi / 2 + (pi / rings) * j); + float yHeight = MathHelper.sin(-pi / 2 + (pi / rings) * j); + float xSize = MathHelper.sin((pi / segs) * i * 2F + pi) * yWidth; + float zSize = -MathHelper.cos((pi / segs) * i * 2F + pi) * yWidth; + int curVert = 1 + i + segs * (j - 1); + tempVerts[curVert] = new TexturedVertex(x + xSize * r, y + yHeight * r, z + zSize * r, 0, 0); + if(i > 0){ + verts = new ArrayList<>(); + if(j == 1){ + verts.add(tempVerts[curVert].setTexturePosition(startU + segW * i, startV + segH * j)); + verts.add(tempVerts[curVert - 1].setTexturePosition(startU + segW * (i - 1), startV + segH * j)); + verts.add(tempVerts[0].setTexturePosition(startU + segW * (i - 1), startV)); + verts.add(tempVerts[0].setTexturePosition(startU + segW + segW * i, startV)); + } + else{ + verts.add(tempVerts[curVert].setTexturePosition(startU + segW * i, startV + segH * j)); + verts.add(tempVerts[curVert - 1].setTexturePosition(startU + segW * (i - 1), startV + segH * j)); + verts.add(tempVerts[curVert - 1 - segs].setTexturePosition(startU + segW * (i - 1), startV + segH * (j - 1))); + verts.add(tempVerts[curVert - segs].setTexturePosition(startU + segW * i, startV + segH * (j - 1))); + } + poly.add(new TexturedPolygon(verts)); + } + } + verts = new ArrayList<>(); + if(j == 1){ + verts.add(tempVerts[1].setTexturePosition(startU + segW * segs, startV + segH * j)); + verts.add(tempVerts[segs].setTexturePosition(startU + segW * (segs - 1), startV + segH * j)); + verts.add(tempVerts[0].setTexturePosition(startU + segW * (segs - 1), startV)); + verts.add(tempVerts[0].setTexturePosition(startU + segW * segs, startV)); + } + else{ + verts.add(tempVerts[1 + segs * (j - 1)].setTexturePosition(startU + texW, startV + segH * j)); + verts.add(tempVerts[segs * (j - 1) + segs].setTexturePosition(startU + texW - segW, startV + segH * j)); + verts.add(tempVerts[segs * (j - 1)].setTexturePosition(startU + texW - segW, startV + segH * (j - 1))); + verts.add(tempVerts[1 + segs * (j - 1) - segs].setTexturePosition(startU + texW, startV + segH * (j - 1))); + } + poly.add(new TexturedPolygon(verts)); + } + for(int i = 0; i < segs; i++){ + verts = new ArrayList<>(); + int curVert = tempVerts.length - (segs + 1); + verts.add(tempVerts[tempVerts.length - 1].setTexturePosition(startU + segW * (i + 0.5F), startV + texH)); + verts.add(tempVerts[curVert + i].setTexturePosition(startU + segW * i, startV + texH - segH)); + verts.add(tempVerts[curVert + ((i + 1) % segs)].setTexturePosition(startU + segW * (i + 1), startV + texH - segH)); + poly.add(new TexturedPolygon(verts)); + } + faces.addAll(poly); + return this; + } + + /** + * Adds a cone. + * @param x the x-position of the base + * @param y the y-position of the base + * @param z the z-position of the base + * @param radius the radius of the cylinder + * @param length the length of the cylinder + * @param segments the amount of segments the cylinder is made of + */ + public ModelRendererTurbo addCone(float x, float y, float z, float radius, float length, int segments){ + return addCone(x, y, z, radius, length, segments, 1F); + } + + /** + * Adds a cone. + * + * baseScale cannot be zero. If it is, it will automatically be set to 1F. + * + * @param x the x-position of the base + * @param y the y-position of the base + * @param z the z-position of the base + * @param radius the radius of the cylinder + * @param length the length of the cylinder + * @param segments the amount of segments the cylinder is made of + * @param baseScale the scaling of the base. Can be negative. + */ + public ModelRendererTurbo addCone(float x, float y, float z, float radius, float length, int segments, float baseScale){ + return addCone(x, y, z, radius, length, segments, baseScale, MR_TOP); + } + + /** + * Adds a cone. + * + * baseScale cannot be zero. If it is, it will automatically be set to 1F. + * + * Setting the baseDirection to either MR_LEFT, MR_BOTTOM or MR_BACK will result in + * the top being placed at the (x,y,z). + * + * @param x the x-position of the base + * @param y the y-position of the base + * @param z the z-position of the base + * @param radius the radius of the cylinder + * @param length the length of the cylinder + * @param segments the amount of segments the cylinder is made of + * @param baseScale the scaling of the base. Can be negative. + * @param baseDirection the direction it faces + */ + public ModelRendererTurbo addCone(float x, float y, float z, float radius, float length, int segments, float baseScale, int baseDirection){ + return addCone(x, y, z, radius, length, segments, baseScale, baseDirection, (int)Math.floor(radius * 2F), (int)Math.floor(radius * 2F)); + } + + /** + * Adds a cone. + * + * baseScale cannot be zero. If it is, it will automatically be set to 1F. + * + * Setting the baseDirection to either MR_LEFT, MR_BOTTOM or MR_BACK will result in + * the top being placed at the (x,y,z). + * + * The textures for the sides are placed next to each other. + * + * @param x the x-position of the base + * @param y the y-position of the base + * @param z the z-position of the base + * @param radius the radius of the cylinder + * @param length the length of the cylinder + * @param segments the amount of segments the cylinder is made of + * @param baseScale the scaling of the base. Can be negative. + * @param baseDirection the direction it faces + * @param textureCircleDiameterW the diameter width of the circle on the texture + * @param textureCircleDiameterH the diameter height of the circle on the texture + */ + public ModelRendererTurbo addCone(float x, float y, float z, float radius, float length, int segments, float baseScale, int baseDirection, int textureCircleDiameterW, int textureCircleDiameterH){ + return addCylinder(x, y, z, radius, length, segments, baseScale, 0.0F, baseDirection, textureCircleDiameterW, textureCircleDiameterH, 1, null); + } + + /** + * Adds a cylinder. + * @param x the x-position of the base + * @param y the y-position of the base + * @param z the z-position of the base + * @param radius the radius of the cylinder + * @param length the length of the cylinder + * @param segments the amount of segments the cylinder is made of + */ + public ModelRendererTurbo addCylinder(float x, float y, float z, float radius, float length, int segments){ + return addCylinder(x, y, z, radius, length, segments, 1F, 1F); + } + /** + * Adds a cylinder. + * + * You can make cones by either setting baseScale or topScale to zero. Setting both + * to zero will set the baseScale to 1F. + * + * @param x the x-position of the base + * @param y the y-position of the base + * @param z the z-position of the base + * @param radius the radius of the cylinder + * @param length the length of the cylinder + * @param segments the amount of segments the cylinder is made of + * @param baseScale the scaling of the base. Can be negative. + * @param topScale the scaling of the top. Can be negative. + */ + public ModelRendererTurbo addCylinder(float x, float y, float z, float radius, float length, int segments, float baseScale, float topScale){ + return addCylinder(x, y, z, radius, length, segments, baseScale, topScale, MR_TOP); + } + + /** + * Adds a cylinder. + * + * You can make cones by either setting baseScale or topScale to zero. Setting both + * to zero will set the baseScale to 1F. + * + * Setting the baseDirection to either MR_LEFT, MR_BOTTOM or MR_BACK will result in + * the top being placed at the (x,y,z). + * + * @param x the x-position of the base + * @param y the y-position of the base + * @param z the z-position of the base + * @param radius the radius of the cylinder + * @param length the length of the cylinder + * @param segments the amount of segments the cylinder is made of + * @param baseScale the scaling of the base. Can be negative. + * @param topScale the scaling of the top. Can be negative. + * @param baseDirection the direction it faces + */ + public ModelRendererTurbo addCylinder(float x, float y, float z, float radius, float length, int segments, float baseScale, float topScale, int baseDirection){ + return addCylinder(x, y, z, radius, length, segments, baseScale, topScale, baseDirection, (int)Math.floor(radius * 2F), (int)Math.floor(radius * 2F), (int)Math.floor(length), null); + } + + public ModelRendererTurbo addCylinder(float x, float y, float z, float radius, float length, int segments, float baseScale, float topScale, int baseDirection, Vec3f topoff){ + return addCylinder(x, y, z, radius, length, segments, baseScale, topScale, baseDirection, (int)Math.floor(radius * 2F), (int)Math.floor(radius * 2F), (int)Math.floor(length), topoff); + } + + + + + public ModelRendererTurbo addHollowCylinder(float x, float y, float z, float radius, float radius2, float length, int segments, int seglimit, float baseScale, float topScale, int baseDirection){ + return addHollowCylinder(x, y, z, radius, radius2, length, segments, seglimit, baseScale, topScale, baseDirection, null); + } + + public ModelRendererTurbo addHollowCylinder(float x, float y, float z, float radius, float radius2, float length, int segments, int seglimit, float baseScale, float topScale, int baseDirection, Vec3f topoff){ + return addHollowCylinder(x, y, z, radius, radius2, length, segments, seglimit, baseScale, topScale, baseDirection, (int)Math.floor(radius * 2F), (int)Math.floor(radius * 2F), (int)Math.floor(length), topoff, new boolean[4]); + } + + public ModelRendererTurbo addHollowCylinder(float x, float y, float z, float radius, float radius2, float length, int segments, int seglimit, float baseScale, float topScale, int baseDirection, Vec3f topoff, boolean[] bools){ + return addHollowCylinder(x, y, z, radius, radius2, length, segments, seglimit, baseScale, topScale, baseDirection, (int)Math.floor(radius * 2F), (int)Math.floor(radius * 2F), (int)Math.floor(length), topoff, bools); + } + public ModelRendererTurbo addHollowCylinder(float x, float y, float z, float radius, float radius2, float length, int segments, int seglimit, float baseScale, float topScale, int baseDirection, Vec3f topoff, float topangle, boolean[] bools){ + return addHollowCylinder(x, y, z, radius, radius2, length, segments, seglimit, baseScale, topScale, baseDirection, (int)Math.floor(radius * 2F), (int)Math.floor(radius * 2F), (int)Math.floor(length), topoff, bools); + } + + /** + * Based on the addCylinder method. + * @author Ferdinand Calo' (FEX___96) + * Adds a cylinder. + * + * You can make cones by either setting baseScale or topScale to zero. Setting both + * to zero will set the baseScale to 1F. + * + * Setting the baseDirection to either MR_LEFT, MR_BOTTOM or MR_BACK will result in + * the top being placed at the (x,y,z). + * + * The textures for the base and top are placed next to each other, while the body + * will be placed below the circles. + * + * @param x the x-position of the base + * @param y the y-position of the base + * @param z the z-position of the base + * @param radius the radius of the cylinder + * @param length the length of the cylinder + * @param segments the amount of segments the cylinder is made of + * @param baseScale the scaling of the base. Can be negative. + * @param topScale the scaling of the top. Can be negative. + * @param baseDirection the direction it faces + * @param textureCircleDiameterW the diameter width of the circle on the texture + * @param textureCircleDiameterH the diameter height of the circle on the texture + * @param textureH the height of the texture of the body + */ + public ModelRendererTurbo addCylinder(float x, float y, float z, float radius, float length, int segments, float baseScale, float topScale, int baseDirection, int textureCircleDiameterW, int textureCircleDiameterH, int textureH, Vec3f topoff){ + if(radius < 1){ textureCircleDiameterW = 1; textureCircleDiameterH = 1; } if(length < 1){ textureH = 1; } + boolean dirTop = (baseDirection == MR_TOP || baseDirection == MR_BOTTOM); + boolean dirSide = (baseDirection == MR_RIGHT || baseDirection == MR_LEFT); + boolean dirFront = (baseDirection == MR_FRONT || baseDirection == MR_BACK); + boolean dirMirror = (baseDirection == MR_LEFT || baseDirection == MR_BOTTOM || baseDirection == MR_BACK); + boolean coneBase = (baseScale == 0); + boolean coneTop = (topScale == 0); + if(coneBase && coneTop){ baseScale = 1F; coneBase = false; } + TexturedVertex[] tempVerts = new TexturedVertex[segments * (coneBase || coneTop ? 1 : 2) + 2]; + TexturedPolygon[] poly = new TexturedPolygon[segments * (coneBase || coneTop ? 2 : 3)]; + float xLength = (dirSide ? length : 0); + float yLength = (dirTop ? length : 0); + float zLength = (dirFront ? length : 0); + float xStart = (dirMirror ? x + xLength : x); + float yStart = (dirMirror ? y + yLength : y); + float zStart = (dirMirror ? z + zLength : z); + float xEnd = (!dirMirror ? x + xLength : x) + (topoff == null ? 0 : topoff.xCoord); + float yEnd = (!dirMirror ? y + yLength : y) + (topoff == null ? 0 : topoff.yCoord); + float zEnd = (!dirMirror ? z + zLength : z) + (topoff == null ? 0 : topoff.zCoord); + tempVerts[0] = new TexturedVertex(xStart, yStart, zStart, 0, 0); + tempVerts[tempVerts.length - 1] = new TexturedVertex(xEnd, yEnd, zEnd, 0, 0); + float xCur = xStart; + float yCur = yStart; + float zCur = zStart; + float sCur = (coneBase ? topScale : baseScale); + for(int repeat = 0; repeat < (coneBase || coneTop ? 1 : 2); repeat++){ + for(int index = 0; index < segments; index++){ + float xSize = (float)((mirror ^ dirMirror ? -1 : 1) * Math.sin((pi / segments) * index * 2F + pi) * radius * sCur); + float zSize = (float)(-Math.cos((pi / segments) * index * 2F + pi) * radius * sCur); + float xPlace = xCur + (!dirSide ? xSize : 0); + float yPlace = yCur + (!dirTop ? zSize : 0); + float zPlace = zCur + (dirSide ? xSize : (dirTop ? zSize : 0)); + tempVerts[1 + index + repeat * segments] = new TexturedVertex(xPlace, yPlace, zPlace, 0, 0 ); + } + xCur = xEnd; yCur = yEnd; zCur = zEnd; sCur = topScale; + } + float uScale = 1.0F / textureWidth; + float vScale = 1.0F / textureHeight; + float uOffset = uScale / 20.0F; + float vOffset = vScale / 20.0F; + float uCircle = textureCircleDiameterW * uScale; + float vCircle = textureCircleDiameterH * vScale; + float uWidth = (uCircle * 2F - uOffset * 2F) / segments; + float vHeight = textureH * vScale - uOffset * 2f; + float uStart = textureOffsetX * uScale; + float vStart = textureOffsetY * vScale; + TexturedVertex[] vert; + + + for(int index = 0; index < segments; index++){ + int index2 = (index + 1) % segments; + float uSize = (float)(Math.sin((pi / segments) * index * 2F + (!dirTop ? 0 : pi)) * (0.5F * uCircle - 2F * uOffset)); + float vSize = (float)(Math.cos((pi / segments) * index * 2F + (!dirTop ? 0 : pi)) * (0.5F * vCircle - 2F * vOffset)); + float uSize1 = (float)(Math.sin((pi / segments) * index2 * 2F + (!dirTop ? 0 : pi)) * (0.5F * uCircle - 2F * uOffset)); + float vSize1 = (float)(Math.cos((pi / segments) * index2 * 2F + (!dirTop ? 0 : pi)) * (0.5F * vCircle - 2F * vOffset)); + + vert = new TexturedVertex[3]; + vert[0] = tempVerts[0].setTexturePosition(uStart + 0.5F * uCircle, vStart + 0.5F * vCircle); + vert[1] = tempVerts[1 + index2].setTexturePosition(uStart + 0.5F * uCircle + uSize1, vStart + 0.5F * vCircle + vSize1); + vert[2] = tempVerts[1 + index].setTexturePosition(uStart + 0.5F * uCircle + uSize, vStart + 0.5F * vCircle + vSize); + poly[index] = new TexturedPolygon(vert); + if(!dirFront || mirror){ + poly[index].flipFace(); + } + + if(!coneBase && !coneTop){ + vert = new TexturedVertex[4]; + vert[0] = tempVerts[1 + index].setTexturePosition(uStart + uOffset + uWidth * index, vStart + vOffset + vCircle); + vert[1] = tempVerts[1 + index2].setTexturePosition(uStart + uOffset + uWidth * (index + 1), vStart + vOffset + vCircle); + vert[2] = tempVerts[1 + segments + index2].setTexturePosition(uStart + uOffset + uWidth * (index + 1), vStart + vOffset + vCircle + vHeight); + vert[3] = tempVerts[1 + segments + index].setTexturePosition(uStart + uOffset + uWidth * index, vStart + vOffset + vCircle + vHeight); + poly[index + segments] = new TexturedPolygon(vert); + if(!dirFront || mirror){ + poly[index + segments].flipFace(); + } + } + vert = new TexturedVertex[3]; + vert[0] = tempVerts[tempVerts.length - 1].setTexturePosition(uStart + 1.5F * uCircle, vStart + 0.5F * vCircle); + vert[1] = tempVerts[tempVerts.length - 2 - index].setTexturePosition(uStart + 1.5F * uCircle + uSize1, vStart + 0.5F * vCircle + vSize1); + vert[2] = tempVerts[tempVerts.length - (1 + segments) + ((segments - index) % segments)].setTexturePosition(uStart + 1.5F * uCircle + uSize, vStart + 0.5F * vCircle + vSize); + poly[poly.length - segments + index] = new TexturedPolygon(vert); + if(!dirFront || mirror){ + poly[poly.length - segments + index].flipFace(); + } + } + faces.addAll(Arrays.asList(poly)); + return this; + } + + + public ModelRendererTurbo addHollowCylinder(float x, float y, float z, float radius, float radius2, float length, int segments, int seglimit, float baseScale, float topScale, int baseDirection, int textureCircleDiameterW, int textureCircleDiameterH, int textureH, Vec3f topoff, boolean[] bools){ + if(radius < 1){ textureCircleDiameterW = 2; textureCircleDiameterH = 2; } if(length < 1){ textureH = 2; } + boolean dirTop = (baseDirection == MR_TOP || baseDirection == MR_BOTTOM); + boolean dirSide = (baseDirection == MR_RIGHT || baseDirection == MR_LEFT); + boolean dirFront = (baseDirection == MR_FRONT || baseDirection == MR_BACK); + boolean dirMirror = (baseDirection == MR_LEFT || baseDirection == MR_BOTTOM || baseDirection == MR_BACK); + if(baseScale == 0) baseScale = 1f; if(topScale == 0) topScale = 1f; + if(segments < 3) segments = 3; if(seglimit <= 0) seglimit = segments; boolean segl = seglimit < segments; + ArrayList polis = new ArrayList<>(); + //Vertex + float xLength = (dirSide ? length : 0), yLength = (dirTop ? length : 0), zLength = (dirFront ? length : 0); + float xStart = (dirMirror ? x + xLength : x); + float yStart = (dirMirror ? y + yLength : y); + float zStart = (dirMirror ? z + zLength : z); + float xEnd = (!dirMirror ? x + xLength : x) + (topoff == null ? 0 : topoff.xCoord); + float yEnd = (!dirMirror ? y + yLength : y) + (topoff == null ? 0 : topoff.yCoord); + float zEnd = (!dirMirror ? z + zLength : z) + (topoff == null ? 0 : topoff.zCoord); + float xCur = xStart, yCur = yStart, zCur = zStart, sCur = baseScale; + //Texture + float uScale = 1.0F / textureWidth, vScale = 1.0F / textureHeight; + float uOffset = uScale / 20.0F, vOffset = vScale / 20.0F; + float uCircle = textureCircleDiameterW * uScale; + float vCircle = textureCircleDiameterH * vScale; + float uCircle2 = ((int)Math.floor(radius2 * 2F)) * uScale; + float vCircle2 = ((int)Math.floor(radius2 * 2F)) * vScale; + float uWidth = (uCircle * 2F - uOffset * 2F) / segments; + float vHeight = textureH * vScale - uOffset * 2f; + float uStart = textureOffsetX * uScale, vStart = textureOffsetY * vScale; + //Temporary Arrays + ArrayList verts0 = new ArrayList<>(); + ArrayList verts1 = new ArrayList<>(); + ArrayList verts2 = new ArrayList<>(); + ArrayList verts3 = new ArrayList<>(); + for(int repeat = 0; repeat < 2; repeat++){//top/base faces + for(int index = 0; index < segments; index++){ + float xSize = (float)((mirror ^ dirMirror ? -1 : 1) * Math.sin((pi / segments) * index * 2F + pi) * radius * sCur); + float zSize = (float)(-Math.cos((pi / segments) * index * 2F + pi) * radius * sCur); + float xPlace = xCur + (!dirSide ? xSize : 0); + float yPlace = yCur + (!dirTop ? zSize : 0); + float zPlace = zCur + (dirSide ? xSize : (dirTop ? zSize : 0)); + verts0.add(new TexturedVertex(xPlace, yPlace, zPlace, 0, 0)); + if(index == segments - 1){ + TexturedVertex copy = new TexturedVertex(verts0.get(0)); verts0.add(copy); + } + // + float xSize2 = (float)((mirror ^ dirMirror ? -1 : 1) * Math.sin((pi / segments) * index * 2F + pi) * radius2 * sCur); + float zSize2 = (float)(-Math.cos((pi / segments) * index * 2F + pi) * radius2 * sCur); + xPlace = xCur + (!dirSide ? xSize2 : 0); + yPlace = yCur + (!dirTop ? zSize2 : 0); + zPlace = zCur + (dirSide ? xSize2 : (dirTop ? zSize2 : 0)); + verts1.add(new TexturedVertex(xPlace, yPlace, zPlace, 0, 0)); + if(index == segments - 1){ + TexturedVertex copy = new TexturedVertex(verts1.get(0)); verts1.add(copy); + } + } + if(repeat == 0){ verts2.addAll(verts0); verts2.addAll(verts1); } + else{ verts3.addAll(verts0); verts3.addAll(verts1); } + float xSize, ySize; float mul = repeat == 0 ? 0.5f : 1.5f; + boolean bool = (repeat == 0) != dirFront; + if((repeat == 0 && !bools[0]) || (repeat == 1 && !bools[1])){ + for(int i = 0; i < verts0.size(); i++){ + if(i >= (verts0.size() - 1) || i >= seglimit) break; + TexturedVertex[] arr = new TexturedVertex[4]; + xSize = (float)(Math.sin((pi / segments) * i * 2F + (!dirTop ? 0 : pi)) * (0.5F * uCircle - 2F * uOffset)); + ySize = (float)(Math.cos((pi / segments) * i * 2F + (!dirTop ? 0 : pi)) * (0.5F * vCircle - 2F * vOffset)); + arr[0] = verts0.get(i).setTexturePosition(uStart + mul * uCircle + xSize, vStart + 0.5F * vCircle + ySize); + // + xSize = (float)(Math.sin((pi / segments) * i * 2F + (!dirTop ? 0 : pi)) * (0.5F * uCircle2 - 2F * uOffset)); + ySize = (float)(Math.cos((pi / segments) * i * 2F + (!dirTop ? 0 : pi)) * (0.5F * vCircle2 - 2F * vOffset)); + arr[1] = verts1.get(i).setTexturePosition(uStart + mul * uCircle + xSize, vStart + 0.5F * vCircle + ySize); + // + xSize = (float)(Math.sin((pi / segments) * (i + 1) * 2F + (!dirTop ? 0 : pi)) * (0.5F * uCircle2 - 2F * uOffset)); + ySize = (float)(Math.cos((pi / segments) * (i + 1) * 2F + (!dirTop ? 0 : pi)) * (0.5F * vCircle2 - 2F * vOffset)); + arr[2] = verts1.get(i + 1).setTexturePosition(uStart + mul * uCircle + xSize, vStart + 0.5F * vCircle + ySize); + // + xSize = (float)(Math.sin((pi / segments) * (i + 1) * 2F + (!dirTop ? 0 : pi)) * (0.5F * uCircle - 2F * uOffset)); + ySize = (float)(Math.cos((pi / segments) * (i + 1) * 2F + (!dirTop ? 0 : pi)) * (0.5F * vCircle - 2F * vOffset)); + arr[3] = verts0.get(i + 1).setTexturePosition(uStart + mul * uCircle + xSize, vStart + 0.5F * vCircle + ySize); + polis.add(new TexturedPolygon(arr)); + if(bool) polis.get(polis.size() - 1 ).flipFace(); + } + } + verts0.clear(); verts1.clear(); xCur = xEnd; yCur = yEnd; zCur = zEnd; sCur = topScale; + } + int halfv2 = verts2.size() / 2; + for(int i = 0; i < halfv2; i++){ + if(i >= seglimit && segl){ + TexturedVertex[] arr = new TexturedVertex[4]; float xpos = uStart + uOffset + (uCircle * 2f); + arr[0] = verts2.get(0).setTexturePosition(xpos, vStart + vOffset + vCircle); + arr[1] = verts3.get(0).setTexturePosition(xpos, vStart + vOffset + vCircle + vHeight); + arr[2] = verts3.get(halfv2).setTexturePosition(xpos + ((radius - radius2) * uScale), vStart + vOffset + vCircle + vHeight); + arr[3] = verts2.get(halfv2).setTexturePosition(xpos + ((radius - radius2) * uScale), vStart + vOffset + vCircle); + polis.add(new TexturedPolygon(arr)); + if(!dirFront) polis.get(polis.size() - 1 ).flipFace(); + arr = new TexturedVertex[4]; + arr[0] = verts2.get(seglimit).setTexturePosition(xpos, vStart + vOffset + vCircle + vHeight); + arr[1] = verts3.get(seglimit).setTexturePosition(xpos, vStart + vOffset + vCircle + vHeight + vHeight); + arr[2] = verts3.get(seglimit + halfv2).setTexturePosition(xpos + ((radius - radius2) * uScale), vStart + vOffset + vCircle + vHeight + vHeight); + arr[3] = verts2.get(seglimit + halfv2).setTexturePosition(xpos + ((radius - radius2) * uScale), vStart + vOffset + vCircle + vHeight); + polis.add(new TexturedPolygon(arr)); + if(dirFront) polis.get(polis.size() - 1 ).flipFace(); + break; + } + if(i >= (halfv2 - 1)) break; + TexturedVertex[] arr = new TexturedVertex[4]; + if(!bools[2]){ + arr[0] = verts2.get(i + 0).setTexturePosition(uStart + uOffset + uWidth * (i + 0), vStart + vOffset + vCircle); + arr[1] = verts3.get(i + 0).setTexturePosition(uStart + uOffset + uWidth * (i + 0), vStart + vOffset + vCircle + vHeight); + arr[2] = verts3.get(i + 1).setTexturePosition(uStart + uOffset + uWidth * (i + 1), vStart + vOffset + vCircle + vHeight); + arr[3] = verts2.get(i + 1).setTexturePosition(uStart + uOffset + uWidth * (i + 1), vStart + vOffset + vCircle); + polis.add(new TexturedPolygon(arr)); + if(dirFront) polis.get(polis.size() - 1 ).flipFace(); + } + if(!bools[3]){ + arr = new TexturedVertex[4]; + arr[0] = verts2.get(i + halfv2 + 0).setTexturePosition(uStart + uOffset + uWidth * (i + 0), vStart + vOffset + vCircle + vHeight); + arr[1] = verts3.get(i + halfv2 + 0).setTexturePosition(uStart + uOffset + uWidth * (i + 0), vStart + vOffset + vCircle + vHeight + vHeight); + arr[2] = verts3.get(i + halfv2 + 1).setTexturePosition(uStart + uOffset + uWidth * (i + 1), vStart + vOffset + vCircle + vHeight + vHeight); + arr[3] = verts2.get(i + halfv2 + 1).setTexturePosition(uStart + uOffset + uWidth * (i + 1), vStart + vOffset + vCircle + vHeight); + polis.add(new TexturedPolygon(arr)); + if(!dirFront) polis.get(polis.size() - 1 ).flipFace(); + } + } + faces.addAll(polis); + return this; + } + + /** + * Instances a new FMT CylinderBuilder + */ + public CylinderBuilder newCylinderBuilder(){ + return new CylinderBuilder(this); + } + + /** + * Instances a new FMT BoxBuilder + */ + public BoxBuilder newBoxBuilder(){ + return new BoxBuilder(this); + } + + /** + * Adds a Waveform .obj file as a model. Model files use the entire texture file. + * @param file the location of the .obj file. The location is relative to the base directories, + * which are either resources/models or resources/mods/models. + */ + public ModelRendererTurbo addObj(String file){ + addModel(file, ModelPool.OBJ); + return this; + } + + public void addObjF(String file){ + try{ + addModelF(file, ModelPool.OBJ); + } + catch(IOException e) { + e.printStackTrace(); + } + } + + /** + * Adds model format support. Model files use the entire texture file. + * @param file the location of the model file. The location is relative to the base directories, + * which are either resources/models or resources/mods/models. + * @param modelFormat the class of the model format interpreter + */ + public void addModel(String file, Class modelFormat){ + ModelPoolEntry entry = ModelPool.addFile(file, modelFormat); + if(entry == null){ + return; + } + if(mirror){ + for (TexturedPolygon face : entry.faces) { + face.flipFace(); + } + } + faces.addAll(Arrays.asList(entry.faces)); + } + + public void addModelF(String file, Class modelFormat) throws IOException{ + ModelPoolEntry entry = ModelPool.addFileF(file, modelFormat); + if(entry == null){ + return; + } + if(mirror){ + for (TexturedPolygon face : entry.faces) { + face.flipFace(); + } + } + faces.addAll(Arrays.asList(entry.faces)); + } + + /** + * Sets a new position for the texture offset. + * @param x the x-coordinate of the texture start + * @param y the y-coordinate of the texture start + */ + public ModelRendererTurbo setTextureOffset(int x, int y){ + textureOffsetX = x; + textureOffsetY = y; + return this; + } + + /** + * Sets the position of the shape, relative to the model's origins. Note that changing + * the offsets will not change the pivot of the model. + * @param x the x-position of the shape + * @param y the y-position of the shape + * @param z the z-position of the shape + */ + public ModelRendererTurbo setPosition(float x, float y, float z){ + rotationPointX = x; + rotationPointY = y; + rotationPointZ = z; + return this; + } + + /** + * Sets the rotation point of the shape, relative to the model's origins. Note that changing + * the offsets will not change the pivot of the model. + * @param x the x-rotation point of the shape + * @param y the y-rotation point of the shape + * @param z the z-rotation point of the shape + */ + public ModelRendererTurbo setRotationPoint(float x, float y, float z){ + rotationPointX = x; + rotationPointY = y; + rotationPointZ = z; + return this; + } + /** + * + * Sets the rotation angles of the shape. + * @param x the x-rotation angle of the shape + * @param y the y-rotation angle of the shape + * @param z the z-rotation angle of the shape + */ + public ModelRendererTurbo setRotationAngle(float x, float y, float z){ + rotateAngleX = x; + rotateAngleY = y; + rotateAngleZ = z; + return this; + } + + /** + * Mirrors the model in any direction. + * @param x whether the model should be mirrored in the x-direction + * @param y whether the model should be mirrored in the y-direction + * @param z whether the model should be mirrored in the z-direction + */ + public void doMirror(boolean x, boolean y, boolean z){ + for(TexturedPolygon face : faces){ + List verts = face.vertices; + for(TexturedVertex vert : verts){ + vert.vector3F.addVector( + vert.vector3F.xCoord * (x ? -1 : 1), + vert.vector3F.xCoord * (y ? -1 : 1), + vert.vector3F.xCoord * (z ? -1 : 1)); + } + if(x^y^z){ + Collections.reverse(face.vertices); + } + } + } + + /** + * Sets whether the shape is mirrored or not. This has effect on the way the textures + * get displayed. When working with addSprite, addPixel and addObj, it will be ignored. + * @param isMirrored a boolean to define whether the shape is mirrored + */ + public void setMirrored(boolean isMirrored){ + mirror = isMirrored; + } + + + /** + * Clears the current shape. Since all shapes are stacked into one shape, you can't + * just replace a shape by overwriting the shape with another one. In this case you + * would need to clear the shape first. + */ + public void clear(){ + faces = new ArrayList<>(); + } + + + + public void render(){ + render(0.0625F); + } + + @Deprecated + //this is a lazy fix that should be replaced with the hide/show part tags when the models using it get reworked. + public void renderClean(){ + GL11.glPushMatrix(); + render(0.0625F); + GL11.glPopMatrix(); + } + + /** + * Renders the shape. + * @param scale the scale of the shape. Usually is 0.0625. + */ + public void render(float scale){ + if(!showModel){ + return; + } + if (ignoresLighting){ + Minecraft.getMinecraft().entityRenderer.disableLightmap(1D); + } + if(noCull){ + GL11.glDisable(GL11.GL_CULL_FACE); + } + if(rotationPointX != 0.0F || rotationPointY != 0.0F || rotationPointZ != 0.0F){ + GL11.glTranslatef(rotationPointX * scale, rotationPointY * scale, rotationPointZ * scale); + } + + if(rotateAngleY != 0.0F){ + GL11.glRotatef(rotateAngleY, 0.0F, 1.0F, 0.0F); + } + if(rotateAngleZ != 0.0F){ + GL11.glRotatef(rotateAngleZ, 0.0F, 0.0F, 1.0F); + } + if(rotateAngleX != 0.0F){ + GL11.glRotatef(rotateAngleX, 1.0F, 0.0F, 0.0F); + } + + for (TexturedPolygon poly : faces) { + Tessellator.getInstance().drawTexturedVertsWithNormal(poly, scale); + } + if(rotationPointX != 0.0F || rotationPointY != 0.0F || rotationPointZ != 0.0F){ + GL11.glTranslatef(-rotationPointX * scale, -rotationPointY * scale, -rotationPointZ * scale); + } + if(noCull){ + GL11.glEnable(GL11.GL_CULL_FACE); + } + if (ignoresLighting){ + Minecraft.getMinecraft().entityRenderer.enableLightmap(1D); + } + } + + + + + //ETERNAL: changed w/h/d to floats for better support of the custom render on the rails. + public ModelRendererTurbo addShapeBox(float x, float y, float z, float w, float h, float d, float scale, float x0, float y0, float z0, float x1, float y1, float z1, float x2, float y2, float z2, float x3, float y3, float z3, float x4, float y4, float z4, float x5, float y5, float z5, float x6, float y6, float z6, float x7, float y7, float z7){ + width=w;height=h;depth=d; + if(w==0){ + x-=0.005f; + w=0.005f; + } + if(h==0){ + y-=0.005f; + h=0.005f; + } + if(d==0) { + z -= 0.005f; + d=0.005f; + } + float f4 = x + w, f5 = y + h, f6 = z + d; + x -= scale; y -= scale; z -= scale; + f4 += scale; f5 += scale; f6 += scale; + if(mirror){ + float f7 = f4; f4 = x; x = f7; + } + + float[][] v = {{x - x0, y - y0, z - z0}, {f4 + x1, y - y1, z - z1},{f4 + x5, f5 + y5, z - z5}, {x - x4, f5 + y4, z - z4}, {x - x3, y - y3, f6 + z3}, {f4 + x2, y - y2, f6 + z2},{f4 + x6, f5 + y6, f6 + z6}, {x - x7, f5 + y7, f6 + z7}}; + + if(w==0.005f){ + w=0; + } + if(h==0.005f){ + h=0; + } + if(d==0.005f){ + d=0; + } + addRectShape(v[0], v[1], v[2], v[3], v[4], v[5], v[6], v[7], w, h, d,null); + + return this; + } + + + public ModelRendererTurbo addShapeBox(float x, float y, float z, float w, float h, float d, float scale, float x0, float y0, float z0, float x1, float y1, float z1, float x2, float y2, float z2, float x3, float y3, float z3, float x4, float y4, float z4, float x5, float y5, float z5, float x6, float y6, float z6, float x7, float y7, float z7, boolean[] sides){ + float xw = x + w, yh = y + h, zd = z + d; x -= scale; y -= scale; z -= scale; xw += scale; yh += scale; zd += scale; + if(mirror){ float fl = xw; xw = x; x = fl; } + float[] v0 = {x - x0, y - y0, z - z0}, v1 = {xw + x1, y - y1, z - z1}, v2 = {xw + x5, yh + y5, z - z5}; + float[] v3 = {x - x4, yh + y4, z - z4}, v4 = {x - x3, y - y3, zd + z3}, v5 = {xw + x2, y - y2, zd + z2}; + float[] v6 = {xw + x6, yh + y6, zd + z6}, v7 = {x - x7, yh + y7, zd + z7}; + return addRectShape(v0, v1, v2, v3, v4, v5, v6, v7, w, h, d, sides); + } + + @Override + public String toString(){ + return (boxName==null?"unnamed model":boxName); + } + + + //name set for FMT compatibility. + public ModelRendererTurbo setName(String n){ + boxName=n; + return this; + } + + + //stub for FMT compatibility. + public ModelRendererTurbo setTextured(boolean b){ + return this; + } + + //stub for FMT compatibility. + public ModelRendererTurbo setLines(boolean b){ + return this; + } + +} \ No newline at end of file diff --git a/src/main/java/fexcraft/tmt/slim/README.md b/src/main/java/fexcraft/tmt/slim/README.md new file mode 100644 index 0000000000..6d7b1092e1 --- /dev/null +++ b/src/main/java/fexcraft/tmt/slim/README.md @@ -0,0 +1,23 @@ + +Modified TMT from https://github.com/Fexcraft/FCL +Original branch version this was copied from: https://github.com/Fexcraft/FCL/tree/9331a66cda097e55e743f2590b3dc6cf1b78f137 +
+

Primary license:

+This version of TMT was updated, maintened, as well as extended for 1.8 and newer Minecraft versions by FEX___96 + + @author GaryCXJk, Ferdinand (FEX___96) + @license http://fexcraft.net/license?id=tmt + +
+

Eternal's notes and license:

+ + This version of TMT is heavily modified to fix some bugs in my own way, and attempt to improve performance overall. + - for performance reasons, the legacy render mode is used by default since we don't expect multiple textures to be used across the same model. + - The bones system has been fully removed and replaced with some minor support functionality for my static model animator. + - For performance and typesafe reasons PositionTransformVertex has been fully reworked to no longer extend or require the variables from PositionTextureVertex. + - For performance reasons TexturedPolygon has been fully reworked to no longer require TexturedQuad. + - ModelRendererTurbo no longer has reliance on minecraft's base model class. + - Because of the reworked classes mentioned above, and other performance reasons, Tessellator has been completley reworked from the ground up. + - public void copyTo(PositionTextureVertex[] verts, TexturedQuad[] quad) was removed since the new reworks make it fully obsolete. + + You are free to use any of my changes to this system in any way you want with no restrictions. \ No newline at end of file diff --git a/src/main/java/fexcraft/tmt/slim/Shape2D.java b/src/main/java/fexcraft/tmt/slim/Shape2D.java new file mode 100644 index 0000000000..2f46b8593e --- /dev/null +++ b/src/main/java/fexcraft/tmt/slim/Shape2D.java @@ -0,0 +1,119 @@ +package fexcraft.tmt.slim; + +import net.minecraft.util.MathHelper; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + + +public class Shape2D { + + public ArrayList coords; + + public Shape2D(){ + coords = new ArrayList(); + } + + public Shape2D(Coord2D[] coordArray){ + coords = new ArrayList(); + coords.addAll(Arrays.asList(coordArray)); + } + + public Shape2D(ArrayList coordList){ + coords = coordList; + } + + public Coord2D[] getCoordArray(){ + return (Coord2D[])coords.toArray(); + } + + public TexturedPolygon[] extrude(float x, float y, float z, float rotX, float rotY, float rotZ, float depth, int u, int v, float textureWidth, float textureHeight, int shapeTextureWidth, int shapeTextureHeight, int sideTextureWidth, int sideTextureHeight, float[] faceLengths){ + TexturedVertex[] verts = new TexturedVertex[coords.size() * 2]; + TexturedVertex[] vertsTop = new TexturedVertex[coords.size()]; + TexturedVertex[] vertsBottom = new TexturedVertex[coords.size()]; + TexturedPolygon[] poly = new TexturedPolygon[coords.size() + 2]; + Vec3f extrudeVector = new Vec3f(0, 0, depth); + + setVectorRotations(extrudeVector, rotX, rotY, rotZ); + + if(faceLengths != null && faceLengths.length < coords.size()){ + faceLengths = null; + } + float totalLength = 0; + for(int idx = 0; idx < coords.size(); idx++){ + Coord2D curCoord = coords.get(idx); + Coord2D nextCoord = coords.get((idx + 1) % coords.size()); + float texU1 = ((float)(curCoord.uCoord + u) / textureWidth); + float texU2 = ((float)(shapeTextureWidth * 2 - curCoord.uCoord + u) / textureWidth); + float texV = ((float)(curCoord.vCoord + v) / textureHeight); + Vec3f vecCoord = new Vec3f(curCoord.xCoord, curCoord.yCoord, 0); + setVectorRotations(vecCoord, rotX, rotY, rotZ); + verts[idx] = new TexturedVertex( + x + vecCoord.xCoord, + y + vecCoord.yCoord, + z + vecCoord.zCoord, texU1, texV); + verts[idx + coords.size()] = new TexturedVertex( + x + vecCoord.xCoord - extrudeVector.xCoord, + y + vecCoord.yCoord - extrudeVector.yCoord, + z + vecCoord.zCoord - extrudeVector.zCoord, texU2, texV); + vertsTop[idx] = new TexturedVertex(verts[idx].vector3F, verts[idx].textureX, verts[idx].textureY); + vertsBottom[coords.size() - idx - 1] = new TexturedVertex(verts[idx + coords.size()].vector3F, verts[idx + coords.size()].textureX, verts[idx + coords.size()].textureY); + if(faceLengths != null){ + totalLength+= faceLengths[idx]; + } + else{ + totalLength+= Math.sqrt(Math.pow(curCoord.xCoord - nextCoord.xCoord, 2) + Math.pow(curCoord.yCoord - nextCoord.yCoord, 2)); + } + } + poly[coords.size()] = new TexturedPolygon(Arrays.asList(vertsTop)); + poly[coords.size() + 1] = new TexturedPolygon(Arrays.asList(vertsBottom)); + float currentLengthPosition = totalLength; + + for(int idx = 0; idx < coords.size(); idx++){ + Coord2D nextCoord = coords.get((idx + 1) % coords.size()); + float currentLength = (float)Math.sqrt(Math.pow(coords.get(idx).xCoord - nextCoord.xCoord, 2) + Math.pow(coords.get(idx).yCoord - nextCoord.yCoord, 2)); + if(faceLengths != null){ + currentLength = faceLengths[faceLengths.length - idx - 1]; + } + float texU1 = ((((currentLengthPosition - currentLength) / totalLength) * (float)sideTextureWidth + u) / textureWidth); + float texU2 = (((currentLengthPosition / totalLength) * (float)sideTextureWidth + u) / textureWidth); + float texV1 = (((float)v + (float)shapeTextureHeight) / textureHeight); + float texV2 = (((float)v + (float)shapeTextureHeight + (float)sideTextureHeight) / textureHeight); + List polySide = new ArrayList<>(); + polySide.add(new TexturedVertex(verts[(idx + 1) % coords.size()].vector3F, texU1, texV1)); + polySide.add(new TexturedVertex(verts[coords.size() + ((idx + 1) % coords.size())].vector3F, texU1, texV2)); + polySide.add(new TexturedVertex(verts[coords.size() + idx].vector3F, texU2, texV2)); + polySide.add(new TexturedVertex(verts[idx].vector3F, texU2, texV1)); + poly[idx] = new TexturedPolygon(polySide); + currentLengthPosition -= currentLength; + } + return poly; + } + + protected Vec3f setVectorRotations(Vec3f extrudeVector, float xRot, float yRot, float zRot){ + float xC = MathHelper.cos(xRot); + float xS = MathHelper.sin(xRot); + float yC = MathHelper.cos(yRot); + float yS = MathHelper.sin(yRot); + float zC = MathHelper.cos(zRot); + float zS = MathHelper.sin(zRot); + + double xVec = extrudeVector.xCoord; + double yVec = extrudeVector.yCoord; + double zVec = extrudeVector.zCoord; + + // rotation around x + double xy = xC*yVec - xS*zVec; + double xz = xC*zVec + xS*yVec; + // rotation around y + double yz = yC*xz - yS*xVec; + double yx = yC*xVec + yS*xz; + // rotation around z + double zx = zC*yx - zS*xy; + double zy = zC*xy + zS*yx; + + return new Vec3f(zx, zy, yz); + } + +} \ No newline at end of file diff --git a/src/main/java/fexcraft/tmt/slim/Tessellator.java b/src/main/java/fexcraft/tmt/slim/Tessellator.java new file mode 100644 index 0000000000..e8ed7e8c84 --- /dev/null +++ b/src/main/java/fexcraft/tmt/slim/Tessellator.java @@ -0,0 +1,92 @@ +package fexcraft.tmt.slim; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.util.ResourceLocation; +import org.lwjgl.opengl.GL11; + +/** +* @Author EternalBlueFlame +* +*/ +@SideOnly(Side.CLIENT) +public class Tessellator{ + + public static Tessellator INSTANCE = new Tessellator(); + + private static Float x, y, z; + + public static Tessellator getInstance(){ + return INSTANCE; + } + + //use this to reset and define the drawing mode + public void startDrawing(int mode){ + x=null;y=null;z=null; + GL11.glBegin(mode); + } + + public void draw(){ + GL11.glEnd(); + } + + public void addVertex(float i, float j, float k){ + if(x!=null){ + GL11.glVertex3f(i+x,j+y,k+z); + + } else { + GL11.glVertex3f(i,j,k); + } + } + + public void addVertexWithUV(float i, float j, float k, float u, float v){ + + GL11.glTexCoord2f(u,v); + if(x!=null){ + GL11.glVertex3f(i+x,j+y,k+z); + + } else { + GL11.glVertex3f(i,j,k); + } + } + + public static void setTranslation(float xOffset, float yOffset, float zOffset){ + x = xOffset; y = yOffset; z = zOffset; + } + + public static void addTranslation(float xOffset, float yOffset, float zOffset){ + x += xOffset; y += yOffset; z += zOffset; + } + + public static void bindTexture(ResourceLocation uri){ + TextureManager.bindTexture(uri); + } + + public void drawTexturedVertsWithNormal(TexturedPolygon polygon, float scale){ + GL11.glBegin(polygon.vertices.size()==4?GL11.GL_QUADS:polygon.vertices.size()==3?GL11.GL_TRIANGLES:GL11.GL_POLYGON); + + setNormal(polygon.vertices.get(0).vector3F, polygon.vertices.get(1).vector3F, polygon.vertices.get(2).vector3F); + + for (TexturedVertex vert : polygon.vertices) { + GL11.glTexCoord2f(vert.textureX, vert.textureY); + + if (x != null) { + GL11.glVertex3f((vert.vector3F.xCoord + x) * scale, (vert.vector3F.yCoord + y) * scale, (vert.vector3F.zCoord + z) * scale); + } else { + GL11.glVertex3f(vert.vector3F.xCoord * scale, vert.vector3F.yCoord * scale, vert.vector3F.zCoord * scale); + } + } + + GL11.glEnd(); + } + + + public static void setNormal(Vec3f vec0, Vec3f vec1, Vec3f vec2) { + Vec3f vec = new Vec3f(vec1.subtract(vec2)).crossProduct(vec1.subtract(vec0)).normalize(); + GL11.glNormal3f( + (byte)((vec.xCoord+90) * 127.0F), + (byte)(vec.yCoord * 127.0F), + (byte)(vec.zCoord * 127.0F)); + } + +} diff --git a/src/main/java/fexcraft/tmt/slim/TextureGroup.java b/src/main/java/fexcraft/tmt/slim/TextureGroup.java new file mode 100644 index 0000000000..09895f94c1 --- /dev/null +++ b/src/main/java/fexcraft/tmt/slim/TextureGroup.java @@ -0,0 +1,37 @@ +package fexcraft.tmt.slim; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.texture.TextureManager; +import net.minecraft.util.ResourceLocation; + +import java.util.ArrayList; + +public class TextureGroup { + + public ArrayList poly; + public String texture; + + public TextureGroup(){ + poly = new ArrayList(); + texture = ""; + } + + public void addPoly(TexturedPolygon quad){ + poly.add(quad); + } + + public void loadTexture(){ + loadTexture(-1); + } + + public void loadTexture(int defaultTexture){ + if(!texture.equals("")){ + TextureManager renderengine = Minecraft.getMinecraft().renderEngine; + renderengine.bindTexture(new ResourceLocation("", texture)); + } + else if(defaultTexture > -1){ + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation("", "")); + } + } + +} diff --git a/src/main/java/fexcraft/tmt/slim/TextureManager.java b/src/main/java/fexcraft/tmt/slim/TextureManager.java new file mode 100644 index 0000000000..ff14a749d8 --- /dev/null +++ b/src/main/java/fexcraft/tmt/slim/TextureManager.java @@ -0,0 +1,531 @@ +package fexcraft.tmt.slim; + +import ebf.tim.utility.ClientUtil; +import ebf.tim.utility.DebugUtil; +import net.minecraft.block.Block; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.*; +import net.minecraft.client.renderer.entity.RenderItem; +import net.minecraft.client.renderer.texture.*; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.EnumSkyBlock; +import net.minecraft.world.World; +import org.lwjgl.BufferUtils; +import org.lwjgl.opengl.GL11; +import train.client.core.ClientProxy; +import train.common.core.handlers.ConfigHandler; +import train.common.library.Info; + +import javax.imageio.ImageIO; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.IOException; +import java.nio.ByteBuffer; +import java.nio.FloatBuffer; +import java.util.*; +import java.util.List; + +import static org.lwjgl.opengl.GL11.*; + +public class TextureManager { + + + //public static ByteBuffer renderPixels = ByteBuffer.allocateDirect((4096*4096)*4); + private static int skyLight; + private static Set MCResourcePacks; + public static Map tmtBoundTextures = new HashMap<>(); + private static Integer currentKey; + + public static Map ingotColors = new HashMap<>(); + + + private static Map tmtMap = new HashMap<>(); + + private static ITextureObject object; + + /** + * custom texture binding method, generally same as vanilla, but possible to improve performance later. + * @param textureURI + */ + public static int bindTexture(ResourceLocation textureURI) { + if (textureURI == null){ + Minecraft.getMinecraft().getTextureManager().bindTexture(new ResourceLocation(Info.modID,"nullTrain")); + return 0; + } + //clean out the texture bind map when texturepacks are reloaded. + if(MCResourcePacks!= Minecraft.getMinecraft().getResourceManager().getResourceDomains()){ + MCResourcePacks= Minecraft.getMinecraft().getResourceManager().getResourceDomains(); + tmtMap=new HashMap<>(); + tmtBoundTextures = new HashMap<>(); + } + if(!ConfigHandler.FORCE_TEXTURE_BINDING) { + object = Minecraft.getMinecraft().getTextureManager().getTexture(textureURI); + if (object == null) { + object = new SimpleTexture(textureURI); + Minecraft.getMinecraft().getTextureManager().loadTexture(textureURI, object); + } + GL11.glBindTexture(GL_TEXTURE_2D, object.getGlTextureId()); + return object.getGlTextureId(); + } else { + Integer id; + if (!tmtMap.containsKey(textureURI)){ + object = Minecraft.getMinecraft().getTextureManager().getTexture(textureURI); + if (object == null) { + object = new SimpleTexture(textureURI); + Minecraft.getMinecraft().getTextureManager().loadTexture(textureURI, object); + } + id=object.getGlTextureId(); + tmtMap.put(textureURI, id); + } else { + id= tmtMap.get(textureURI); + } + if(GL11.glGetInteger(GL_TEXTURE_2D) !=id) { + GL11.glBindTexture(GL_TEXTURE_2D, id); + } + } + return -1; + } + + //most compilers should process this type of function faster than a normal typecast. + public static byte b(int i){return (byte) i;} + + public static boolean colorInRange(int r, int g, int b, int oldR, int oldG, int oldB){ + return oldR-r>-17 && oldR-r <17 && + oldG-g>-17 && oldG-g <17 && + oldB-b>-17 && oldB-b <17; + } + + + /**Lighting fix*/ + public static void adjustLightFixture(World world, int i, int j, int k) { + skyLight = world.getSkyBlockTypeBrightness(EnumSkyBlock.Block, i, j, k); + skyLight=world.getSkyBlockTypeBrightness(EnumSkyBlock.Sky, i, j, k) << 20 | (skyLight<0?0:skyLight) << 4; + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, skyLight % 65536, skyLight * 0.00001525878f); + GL11.glColor4f(1, 1, 1, 1);//fixes alpha layering bugs with other mods that don't clear their GL cache + } + + private static FloatBuffer colorBuffer = GLAllocation.createDirectFloatBuffer(16); + + private static FloatBuffer setColorBuffer(float p_74521_0_, float p_74521_1_, float p_74521_2_, float p_74521_3_) + { + colorBuffer.clear(); + colorBuffer.put(p_74521_0_).put(p_74521_1_).put(p_74521_2_).put(p_74521_3_); + colorBuffer.flip(); + /** Float buffer used to set OpenGL material colors */ + return colorBuffer; + } + + public static void fixEntityLighting(){ + + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_LIGHT0); + GL11.glEnable(GL11.GL_LIGHT1); + GL11.glEnable(GL11.GL_COLOR_MATERIAL); + GL11.glColorMaterial(GL11.GL_FRONT_AND_BACK, GL11.GL_AMBIENT_AND_DIFFUSE); + GL11.glLight(GL11.GL_LIGHT0, GL11.GL_POSITION, setColorBuffer(0.16169041989141428f, 0.8084520874101966f, -0.5659164515496377f, 0.0f)); + GL11.glLight(GL11.GL_LIGHT0, GL11.GL_DIFFUSE, setColorBuffer(0.6F,0.6F,0.6F, 1.0F)); + GL11.glLight(GL11.GL_LIGHT0, GL11.GL_AMBIENT, setColorBuffer(0.0F, 0.0F, 0.0F, 1.0F)); + GL11.glLight(GL11.GL_LIGHT0, GL11.GL_SPECULAR, setColorBuffer(0.0F,0.0F,0.0F, 1.0F)); + GL11.glLight(GL11.GL_LIGHT1, GL11.GL_POSITION, setColorBuffer(-0.16169041989141428f, 0.8084520874101966f,0.5659164515496377f, 0.0f)); + GL11.glLight(GL11.GL_LIGHT1, GL11.GL_DIFFUSE, setColorBuffer(0.6F,0.6F,0.6F, 1.0F)); + GL11.glLight(GL11.GL_LIGHT1, GL11.GL_AMBIENT, setColorBuffer(0.0F, 0.0F, 0.0F, 1.0F)); + GL11.glLight(GL11.GL_LIGHT1, GL11.GL_SPECULAR, setColorBuffer(0.0F,0.0F,0.0F, 1.0F)); + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glLightModel(GL11.GL_LIGHT_MODEL_AMBIENT, setColorBuffer(0.4F,0.4F,0.4F, 1.0F)); + + } + + + /** + * Ingot color textures + */ + public static void collectIngotColors() { + List Ores = new ArrayList<>();// = RecipeManager.getAcceptedRailItems(); + + int red, green, blue, divisor; + int[] rgb, colorBuff; + for (ItemStack s : Ores) { + if (s != null && s.getItem() != null) { + + red = 0; + green = 0; + blue = 0; + divisor = 0; + //this is less efficient than doing it directly, but if i promote the functionality for + // getting the array of bytes to something reuseable, it returns a blank spritez + colorBuff = renderItemViewport(s, 32); + for (int c : colorBuff) { + rgb = hexToargb(c); + red += rgb[3]; + green += rgb[1]; + blue += rgb[2]; + divisor++; + } + ingotColors.put(s, new int[]{red / divisor, blue / divisor, green / divisor}); + + } + } + } + + + public static TextureAtlasSprite bindBlockTextureFromSide(int side, ItemStack b){ + if (RenderBlocks.getInstance().hasOverrideBlockTexture()) { + return (TextureAtlasSprite)RenderBlocks.getInstance().overrideBlockTexture; + } + return (TextureAtlasSprite) RenderBlocks.getInstance().getBlockIconFromSideAndMetadata(Block.getBlockFromItem(b.getItem()), side,b.getItemDamage()); + //1.8.9+ version: + //IBlockState state = Block.getBlockFromItem(b.getItem()).getDefaultState(); + //Minecraft.getMinecraft().getBlockRendererDispatcher().getModelForState(state).getQuads(state,side,0l).get(0).getSprite() + } + + public static int[] hexTorgba(int hex){ + return new int[]{hex&0xFF, (hex>>8)&0xFF, (hex>>16)&0xFF, (hex>>24)&0xFF}; + } + public static int[] hexToargb(int hex) { + return new int[]{(hex >> 24) & 0xFF, hex & 0xFF, (hex >> 8) & 0xFF, (hex >> 16) & 0xFF}; + } + + public static int[] hexTorgb(int hex){ + return new int[]{hex&0xFF, (hex>>8)&0xFF, (hex>>16)&0xFF}; + } + + + + public static int[] postProcessColor(int newColor, int r, int g, int b){ + int[] ret =hexTorgb(newColor); + + ret[0] += ret[0]-b; + ret[1] += ret[1]-g; + ret[2] += ret[2]-r; + return ret; + } + + + + + public static boolean textureExists(ResourceLocation textureURI){ + + object = Minecraft.getMinecraft().getTextureManager().getTexture(textureURI); + if (object == null) { + object = new SimpleTexture(textureURI); + Minecraft.getMinecraft().getTextureManager().loadTexture(textureURI, object); + } + return object.getGlTextureId()!=TextureUtil.missingTexture.getGlTextureId(); + } + + + + + public static void bindTexture(ResourceLocation textureURI, int[] skinColorsFrom, int[] skinColorsTo, List colorsFrom, List colorsTo){ + //clean out the texture bind map when texturepacks are reloaded. + if (MCResourcePacks != Minecraft.getMinecraft().getResourceManager().getResourceDomains()) { + MCResourcePacks = Minecraft.getMinecraft().getResourceManager().getResourceDomains(); + tmtMap = new HashMap<>(); + tmtBoundTextures = new HashMap<>(); + } + + GL11.glEnable(GL_TEXTURE_2D); + if (!tmtBoundTextures.containsKey(getID(textureURI, skinColorsFrom, skinColorsTo, colorsFrom, colorsTo, false))) { + if (createAWT(textureURI, skinColorsFrom, skinColorsTo, colorsFrom, colorsTo) && + new File(getID(textureURI,skinColorsFrom, skinColorsTo, colorsFrom,colorsTo,true)).exists()) { + try { + BufferedImage image = ImageIO.read(new File(getID(textureURI, skinColorsFrom, skinColorsTo, colorsFrom, colorsTo, true))); + + currentKey = tmtBoundTextures.put(getID(textureURI, skinColorsFrom, skinColorsTo, colorsFrom, colorsTo, false), + Minecraft.getMinecraft().getTextureManager().getTexture( + Minecraft.getMinecraft().getTextureManager().getDynamicTextureLocation( + getID(textureURI, skinColorsFrom, skinColorsTo, colorsFrom, colorsTo, true), + new DynamicTexture(image))).getGlTextureId()); + } catch (IOException exception) { + DebugUtil.println("AWT FAILED"); + exception.printStackTrace(); + } + } + } else { + currentKey = tmtBoundTextures.get(getID(textureURI, skinColorsFrom, skinColorsTo, colorsFrom, colorsTo, false)); + } + + //if for some reason the texture couldn't be written to I/O, which should never be an issue. + if (currentKey == null) { + bindTexture(textureURI); + } else { + if (GL11.glGetInteger(GL_TEXTURE_2D) != currentKey) { + GL11.glBindTexture(GL_TEXTURE_2D, currentKey); + } + } + + } + + + + public static boolean createAWT(ResourceLocation textureURI, int[] skinColorsFrom, int[] skinColorsTo, List colorsFrom, List colorsTo){ + int GLtexture = bindTexture(textureURI); + if(GLtexture==-1){ + return true; + } + + //get image data from the currently bound image + int width =glGetTexLevelParameteri(GL_TEXTURE_2D, 0, GL_TEXTURE_WIDTH); + int height =glGetTexLevelParameteri(GL_TEXTURE_2D, 0, GL_TEXTURE_HEIGHT); + if(width*height<4){ + return false; + } + + ByteBuffer buffer = BufferUtils.createByteBuffer(width * height * 4); + + GL11.glGetTexImage(GL_TEXTURE_2D, 0, GL11.GL_RGBA, GL_UNSIGNED_BYTE, buffer); + + //create a buffered image and push the data to it + BufferedImage skin = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB); + + int i,r,g,b,a, y,ii; + int[] col; + + for (int x = 0; x < width; x++) { + for (y = 0; y < height; y++) { + + i = (x + (width * y)) * 4; + r = buffer.get(i) & 0xff; + g = buffer.get(i + 1) & 0xff; + b = buffer.get(i + 2) & 0xff; + a = buffer.get(i + 3) & 0xff; + if(a<10){ + skin.setRGB(x,y,0x00000000); + continue; + } + + //recolor from skin + if(skinColorsFrom!=null&&skinColorsFrom.length>0){ + for (ii=0;ii0) { + for (ii=0;ii colorsFrom, List colorsTo, boolean isFile){ + StringBuilder filePath = new StringBuilder(); + if(isFile) { + filePath.append(ClientProxy.configDirectory); + filePath.append("/TrainsInMotion/TextureCache/"); + filePath.append(resourceLocation(textureURI)); + filePath.append("/"); + if(skinColorsFrom!=null && skinColorsTo!=null && skinColorsFrom.length>0 && skinColorsTo.length>0) { + for (Integer i : skinColorsFrom) { + filePath.append(Integer.toHexString(i)); + } + filePath.append("_"); + for (Integer i : skinColorsTo) { + filePath.append(Integer.toHexString(i)); + } + filePath.append("+"); + } + if(colorsFrom==null || colorsTo==null || colorsFrom.size()+colorsTo.size()==0){ + filePath.append("000_000"); + } else { + for (Integer i : colorsFrom) { + filePath.append(Integer.toHexString(i)); + } + filePath.append("_"); + for (Integer i : colorsTo) { + filePath.append(Integer.toHexString(i)); + } + } + filePath.append(".png"); + } else { + filePath.append(resourceLocation(textureURI)); + filePath.append("."); + if(skinColorsFrom!=null && skinColorsTo!=null && skinColorsFrom.length>0 && skinColorsTo.length>0) { + for (Integer i : skinColorsFrom) { + filePath.append(Integer.toHexString(i)); + } + filePath.append("_"); + for (Integer i : skinColorsTo) { + filePath.append(Integer.toHexString(i)); + } + if(colorsFrom!=null && colorsTo!=null && colorsFrom.size()+colorsTo.size()>1) { + filePath.append("+"); + } + } + if(colorsFrom!=null && colorsTo!=null && colorsFrom.size()+colorsTo.size()>1){ + for (Integer i : colorsFrom) { + filePath.append(Integer.toHexString(i)); + } + for (Integer i : colorsTo) { + filePath.append(Integer.toHexString(i)); + } + } + } + return filePath.toString(); + } + + private static String resourceLocation(ResourceLocation res){ + return (res.getResourceDomain() + "/" + +res.getResourcePath(). + substring(0, res.getResourcePath().lastIndexOf("."))); + } + + /* + gets an item texture as an array of pixels, with 0x00000000 as "empty" pixels + scale is based off 32. so for example entering 64 will be double scale. + */ + public static int[] renderItemViewport(ItemStack stack, int scale) { + int[] pixels = new int[scale*scale]; + GL11.glPushMatrix(); + + GL11.glTranslatef(0,(Minecraft.getMinecraft().displayHeight*0.5f)-(scale*0.5f),500); + + GL11.glDisable(GL11.GL_TEXTURE_2D); + GL11.glColor4f(0.75f,0.75f,0.75f,1); + ClientUtil.drawTexturedRect(0,0,0,0,scale,scale); + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glColor4f(1,1,1,1); + + GL11.glScalef(scale/32f,scale/32f,scale/32f); + RenderHelper.enableGUIStandardItemLighting(); + new RenderItem().renderItemAndEffectIntoGUI(Minecraft.getMinecraft().fontRenderer, + Minecraft.getMinecraft().getTextureManager(),stack, 0, 0); + ByteBuffer buffer = BufferUtils.createByteBuffer(scale * scale * 4); + GL11.glReadPixels(0, 0, scale, scale, GL11.GL_RGBA, GL_UNSIGNED_BYTE, buffer); + + int i,r,g,b; + + for(int x=0; x=254 && g>=254 && b>=254){ + pixels[(x + ((scale * (scale-1)) - (scale * y)))] = 0xffffffff; + } else { + pixels[(x + ((scale * (scale-1)) - (scale * y)))] = (255 << 24) | (r << 16) | (g << 8) | b; + } + } + } + RenderHelper.disableStandardItemLighting(); + GL11.glPopMatrix(); + return pixels; + } + + /* + Writes an item texture to a specified file, good for making icons and stuff. + clone of the above method with slight alterations for having a different use case + be sure to check if Traincraft.proxy.isClient() or a similar check, is true before running. + scale is based off 32. so for example entering 64 will be double scale. + */ + public static void renderItemViewportToFile(ItemStack stack, ResourceLocation path, int scale) { + if (!new File(ClientProxy.configDirectory + "/TrainsInMotion/TextureCache/" + + resourceLocation(path)).exists()) { + new File(ClientProxy.configDirectory + "/TrainsInMotion/TextureCache/" + + resourceLocation(path)).mkdirs(); + } + GL11.glPushMatrix(); + + GL11.glTranslatef(0,(Minecraft.getMinecraft().displayHeight*0.5f)-(scale*0.5f),500); + + GL11.glDisable(GL11.GL_TEXTURE_2D); + GL11.glColor4f(1,1,1,1); + ClientUtil.drawTexturedRect(0,0,0,0,scale,scale); + GL11.glEnable(GL11.GL_TEXTURE_2D); + + GL11.glScalef(scale/32f,scale/32f,scale/32f); + RenderHelper.enableGUIStandardItemLighting(); + new RenderItem().renderItemAndEffectIntoGUI(Minecraft.getMinecraft().fontRenderer, + Minecraft.getMinecraft().getTextureManager(),stack, 0, 0); + new RenderItem().renderItemOverlayIntoGUI(Minecraft.getMinecraft().fontRenderer, + Minecraft.getMinecraft().getTextureManager(), stack, 0, 0, ""); + ByteBuffer buffer = BufferUtils.createByteBuffer(scale * scale * 4); + GL11.glReadPixels(0, 0, scale, scale, GL11.GL_RGBA, GL_UNSIGNED_BYTE, buffer); + + try { + if(!new File(TextureManager.getID(new ResourceLocation(Info.modID,"testexture.png"), + null, null, null, null, true)).exists()){ + + int i,r,g,b,a; + + //create a buffered image and push the data to it + BufferedImage skin = new BufferedImage(64, 64, BufferedImage.TYPE_INT_ARGB); + + for(int x=0; x=254 && g>=254 && b>=254){ + a=0; + } else { + a=255; + } + + //y is flipped for some gods forsaken reason. + // so we need to count Y backwards from the end of the array. + if(a==0){ + skin.setRGB(x, scale - y, 0x00000000); + } else { + skin.setRGB(x, scale - y,(a << 24) | (r << 16) | (g << 8) | b); + } + } + } + + try { + ImageIO.write(skin, "PNG", new File(TextureManager.getID(new ResourceLocation(Info.modID,"testexture.png"), + null, null, null, null, true))); + } catch (IOException e) { + e.printStackTrace(); + } + } + } catch (Exception e){ + e.printStackTrace(); + } + + } +} diff --git a/src/main/java/fexcraft/tmt/slim/TexturedPolygon.java b/src/main/java/fexcraft/tmt/slim/TexturedPolygon.java new file mode 100644 index 0000000000..c182d8f9f6 --- /dev/null +++ b/src/main/java/fexcraft/tmt/slim/TexturedPolygon.java @@ -0,0 +1,31 @@ +package fexcraft.tmt.slim; + + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + + +public class TexturedPolygon { + + + public List vertices; + + public TexturedPolygon(List apositionTexturevertex){ + vertices = apositionTexturevertex; + } + public TexturedPolygon(TexturedVertex[] apositionTexturevertex){ + vertices = Arrays.asList(apositionTexturevertex); + } + + public void flipFace(){ + Collections.reverse(vertices); + } + + public TexturedPolygon flipFace(boolean check){ + if(check){Collections.reverse(vertices);} + return this; + } + + +} \ No newline at end of file diff --git a/src/main/java/fexcraft/tmt/slim/TexturedVertex.java b/src/main/java/fexcraft/tmt/slim/TexturedVertex.java new file mode 100644 index 0000000000..537056ee28 --- /dev/null +++ b/src/main/java/fexcraft/tmt/slim/TexturedVertex.java @@ -0,0 +1,46 @@ +package fexcraft.tmt.slim; + +import net.minecraft.client.model.PositionTextureVertex; + +public class TexturedVertex { + + public Vec3f vector3F; + public float textureX; + public float textureY; + + public TexturedVertex(float x, float y, float z, float u, float v){ + this(new Vec3f(x, y, z), u, v); + } + + public TexturedVertex(float x, float y, float z){ + this(new Vec3f(x, y, z), 0,0); + } + + public TexturedVertex(TexturedVertex vert){ + this(vert.vector3F, vert.textureX, vert.textureY); + } + + @Deprecated + public TexturedVertex(PositionTextureVertex vertex, float u, float v){ + vector3F = new Vec3f(vertex.vector3D); + textureX = u; + textureY = v; + } + + public TexturedVertex(Vec3f vector, float u, float v){ + vector3F = new Vec3f(vector.xCoord, vector.yCoord, vector.zCoord); + textureX = u; + textureY = v; + } + + public TexturedVertex setTexturePosition(float p_78240_1_, float p_78240_2_) { + return new TexturedVertex(vector3F, p_78240_1_, p_78240_2_); + } + + public void setUV(float u, float v){ + textureX=u; + textureY=v; + } + + +} diff --git a/src/main/java/fexcraft/tmt/slim/Vec3d.java b/src/main/java/fexcraft/tmt/slim/Vec3d.java new file mode 100644 index 0000000000..5241b5d7e7 --- /dev/null +++ b/src/main/java/fexcraft/tmt/slim/Vec3d.java @@ -0,0 +1,45 @@ +package fexcraft.tmt.slim; + + +import net.minecraft.util.Vec3; + +/** + * @author EternalBlueFlame + *

Vector 3d

+ * this is intended to replicate the Vec3d from minecraft 1.8+ + * mostly it just makes handling vector 3's simpler. + */ +public class Vec3d { + + public double xCoord=0,yCoord=0,zCoord=0; + + public Vec3d(double x, double y, double z){ + xCoord=x;yCoord=y;zCoord=z; + } + + public Vec3d(Vec3 vec){this(vec.xCoord, vec.yCoord, vec.zCoord);} + + public void add(Vec3d vec2){ + xCoord += vec2.xCoord; + yCoord += vec2.yCoord; + zCoord += vec2.zCoord; + } + + public Vec3d subtract(Vec3d vec2){ + return new Vec3d(xCoord-vec2.xCoord,yCoord-vec2.yCoord,zCoord-vec2.zCoord); + } + + public Vec3d subtractVector(double x, double y, double z){ + xCoord-=x;yCoord-=y;zCoord-=z; + return this; + } + + public Vec3d crossProduct(double value){ + return new Vec3d(xCoord*value,yCoord*value,zCoord*value); + } + + public Vec3d addVector(double x, double y, double z){ + xCoord+=x;yCoord+=y;zCoord+=z; + return this; + } +} diff --git a/src/main/java/fexcraft/tmt/slim/Vec3f.java b/src/main/java/fexcraft/tmt/slim/Vec3f.java new file mode 100644 index 0000000000..903a23e69a --- /dev/null +++ b/src/main/java/fexcraft/tmt/slim/Vec3f.java @@ -0,0 +1,246 @@ +package fexcraft.tmt.slim; + +import net.minecraft.util.Vec3; +import org.lwjgl.util.vector.Matrix4f; +import org.lwjgl.util.vector.Vector3f; + +import java.io.Serializable; + +import static ebf.tim.utility.CommonUtil.radianF; + +/** + * basically the same as Vec3D, but a float. Usually used for storing rotations. + * @author Ferdinand + */ + + +public class Vec3f implements Serializable { + + public float xCoord; + public float yCoord; + public float zCoord; + + public Vec3f(){ + xCoord = 0; + yCoord = 0; + zCoord = 0; + } + + public Vec3f(double xVec, double yVec, double zVec) { + this((float)xVec, (float)yVec, (float)zVec); + } + + public Vec3f(Vec3 v){ + xCoord = (float)v.xCoord; + yCoord = (float)v.yCoord; + zCoord= (float)v.zCoord; + } + public Vec3f(Vec3f v){ + xCoord = v.xCoord; + yCoord = v.yCoord; + zCoord= v.zCoord; + } + + public Vec3f(float f, float g, float h){ + xCoord = f; + yCoord = g; + zCoord = h; + } + + public Vec3f(float[] v){ + xCoord = v[0]; + yCoord = v[1]; + zCoord= v[2]; + } + + public Vec3f crossProduct(Vec3f p_72431_1_) { + return new Vec3f(this.yCoord * p_72431_1_.zCoord - this.zCoord * p_72431_1_.yCoord, this.zCoord * p_72431_1_.xCoord - this.xCoord * p_72431_1_.zCoord, this.xCoord * p_72431_1_.yCoord - this.yCoord * p_72431_1_.xCoord); + } + + public Vec3f scale(float scale){ + return new Vec3f(this.xCoord * scale, this.yCoord * scale, this.zCoord * scale); + } + + public Vec3f scale(float scaleX, float scaleY, float scaleZ){ + return new Vec3f(this.xCoord * scaleX, this.yCoord * scaleY, this.zCoord * scaleZ); + } + + public Vec3f subtract(float x, float y, float z){ + return this.addVector(-x, -y, -z); + } + + public Vec3f add(Vec3f vec){ + return this.addVector(vec.xCoord, vec.yCoord, vec.zCoord); + } + + //todo: this probably broke everything, undo + public Vec3f addVector(float x, float y, float z){ + xCoord+=x; + yCoord+=y; + zCoord+=z; + return this; + } + + public Vec3f addVector(double x, double y, double z){ + xCoord+=x; + yCoord+=y; + zCoord+=z; + return this; + } + + public Vec3f subtract(Vec3f vec){ + return new Vec3f(xCoord-vec.xCoord, + yCoord-vec.yCoord, + zCoord-vec.zCoord); + } + + + public Vec3f normalize(){ + double d0 = Math.sqrt(this.xCoord * this.xCoord + this.yCoord * this.yCoord + this.zCoord * this.zCoord); + return d0 < 1.0E-4D ? new Vec3f() : new Vec3f(this.xCoord / d0, this.yCoord / d0, this.zCoord / d0); + } + + public float dotProduct(Vec3f vec){ + return this.xCoord * vec.xCoord + this.yCoord * vec.yCoord + this.zCoord * vec.zCoord; + } + + + public float dot2D(Vec3f other){ + return this.xCoord * other.xCoord + this.zCoord * other.zCoord; + } + + public static Vec3f direction(float... arr){ + double l = length(arr[0], arr[1], arr[2]); return new Vec3f(arr[0] / l, arr[1] / l, arr[2] / l); + } + + public static Vec3f direction(Vec3f vec){ + double l = length(vec.xCoord, vec.yCoord, vec.zCoord); return new Vec3f(vec.xCoord / l, vec.yCoord / l, vec.zCoord / l); + } + + //based on fvtm rail entity stuff + public Vec3f distance(Vec3f dest, float am){ + Vec3f vec = new Vec3f((xCoord + dest.xCoord) * 0.5, (yCoord + dest.yCoord) * 0.5, (zCoord + dest.zCoord) * 0.5); + vec = direction(vec.xCoord - xCoord, vec.yCoord - yCoord, vec.zCoord - zCoord); + return new Vec3f(xCoord + (vec.xCoord * am), yCoord + (vec.yCoord * am), zCoord + (vec.zCoord * am)); + } + + public Vec3f distance(Vec3f dest, double am){ + Vec3f vec = new Vec3f((xCoord + dest.xCoord) * 0.5, (yCoord + dest.yCoord) * 0.5, (zCoord + dest.zCoord) * 0.5); + vec = direction(vec.xCoord - xCoord, vec.yCoord - yCoord, vec.zCoord - zCoord); + return new Vec3f(xCoord + (vec.xCoord * am), yCoord + (vec.yCoord * am), zCoord + (vec.zCoord * am)); + } + public Vec3f distance(float[] dest, float am){ + Vec3f vec = new Vec3f((xCoord + dest[0]) * 0.5, (yCoord + dest[1]) * 0.5, (zCoord + dest[2]) * 0.5); + vec = direction(vec.xCoord - xCoord, vec.yCoord - yCoord, vec.zCoord - zCoord); + return new Vec3f(xCoord + (vec.xCoord * am), yCoord + (vec.yCoord * am), zCoord + (vec.zCoord * am)); + } + + public double length(){ + return Math.sqrt(xCoord * xCoord + yCoord * yCoord + zCoord * zCoord); + } + + + public double length2d(){ + return Math.sqrt(xCoord * xCoord + zCoord * zCoord); + } + + public static double length(float... arr){ + return Math.sqrt(arr[0] * arr[0] + arr[1] * arr[1] + arr[2] * arr[2]); + } + + public static double length(Vec3f vec){ + return Math.sqrt(vec.xCoord * vec.xCoord + vec.yCoord * vec.yCoord + vec.zCoord * vec.zCoord); + } + + public boolean equals(Object obj){ + if(this == obj){ + return true; + } + else if(!(obj instanceof Vec3f)){ + return false; + } + else{ + Vec3f vec3d = (Vec3f)obj; + return Float.compare(vec3d.xCoord, this.xCoord) != 0 ? false : (Float.compare(vec3d.yCoord, this.yCoord) != 0 ? false : Float.compare(vec3d.zCoord, this.zCoord) == 0); + } + } + + public int hashCode(){ + long j = Float.floatToIntBits(this.xCoord); + int i = (int)(j ^ j >>> 32); + j = Float.floatToIntBits(this.yCoord); + i = 31 * i + (int)(j ^ j >>> 32); + j = Float.floatToIntBits(this.zCoord); + i = 31 * i + (int)(j ^ j >>> 32); + return i; + } + + public float distance(Vec3f vec){ + float d0 = vec.xCoord - this.xCoord; + float d1 = vec.yCoord - this.yCoord; + float d2 = vec.zCoord - this.zCoord; + return (float)Math.sqrt(d0 * d0 + d1 * d1 + d2 * d2); + } + + public float distance2d(Vec3f vec){ + return Math.abs(this.xCoord - vec.xCoord)+Math.abs(this.zCoord - vec.zCoord); + } + + @Override + public String toString(){ + return String.format("Vec3f[ %s, %s, %s ]", xCoord, yCoord, zCoord); + } + + + //this could be moved to vec3f + public Vec3f getRelativeVector(Vec3f vec){ + Matrix4f mat = new Matrix4f(); + mat.m00 = vec.xCoord; mat.m10 = vec.yCoord; mat.m20 = vec.zCoord; + Matrix4f.rotate(zCoord * 3.14159265F / 180, new Vector3f(1F, 0F, 0F), mat, mat); + Matrix4f.rotate(yCoord * 3.14159265F / 180, new Vector3f(0F, 0F, 1F), mat, mat); + Matrix4f.rotate(xCoord * 3.14159265F / 180, new Vector3f(0F, 1F, 0F), mat, mat); + return new Vec3f(mat.m00, mat.m10, mat.m20); + } + + public Vec3f rotatePoint(float pitch, float yaw, float roll) { + float cos,sin,x=xCoord,y=yCoord,z=zCoord; + //rotate pitch + if (pitch != 0.0F) { + cos = (float)Math.cos(pitch*radianF); + sin = (float)Math.sin(pitch*radianF); + + xCoord = (y * sin) + (x * cos); + yCoord = (y * cos) - (x * sin); + } + //rotate yaw + if (yaw != 0.0F) { + cos = (float)Math.cos(yaw*radianF); + sin = (float)Math.sin(yaw*radianF); + + xCoord = (x * cos) - (z * sin); + zCoord = (x * sin) + (z * cos); + } + //rotate roll + if (roll != 0.0F) { + cos = (float)Math.cos(roll*radianF); + sin = (float)Math.sin(roll*radianF); + + yCoord = (z * cos) - (y * sin); + zCoord = (z * sin) + (y * cos); + } + return this; + } + + public Vec3f rotateOnYaw(float yaw) { + float cos,sin,x=xCoord,z=zCoord; + //rotate yaw + if (yaw != 0.0F) { + cos = (float)Math.cos(yaw*radianF); + sin = (float)Math.sin(yaw*radianF); + + xCoord = (x * cos) - (z * sin); + zCoord = (x * sin) + (z * cos); + } + return this; + } +} diff --git a/src/main/java/train/client/core/ClientProxy.java b/src/main/java/train/client/core/ClientProxy.java index 5c8bfecbef..79a49c7156 100644 --- a/src/main/java/train/client/core/ClientProxy.java +++ b/src/main/java/train/client/core/ClientProxy.java @@ -75,6 +75,11 @@ public static boolean isPumpkin() { return (cal.get(Calendar.MONTH) == Calendar.OCTOBER || cal.get(Calendar.MONTH) == Calendar.NOVEMBER && cal.get(Calendar.DATE) < 15); } + @Override + public boolean isClient(){ + return true; + } + @Override public void throwAlphaException() { throw new AlphaExpiredException(); diff --git a/src/main/java/train/common/Traincraft.java b/src/main/java/train/common/Traincraft.java index cd74f6ba3b..072c88e86c 100644 --- a/src/main/java/train/common/Traincraft.java +++ b/src/main/java/train/common/Traincraft.java @@ -113,6 +113,7 @@ public void preInit(FMLPreInitializationEvent event) { configDirectory = event.getModConfigurationDirectory(); ConfigHandler.init(new File(event.getModConfigurationDirectory(), Info.modName + ".cfg")); + proxy.configDirectory = event.getModConfigurationDirectory().getAbsolutePath(); /* Register the KeyBinding Handler */ proxy.registerKeyBindingHandler(); diff --git a/src/main/java/train/common/core/CommonProxy.java b/src/main/java/train/common/core/CommonProxy.java index 2cd739dee5..2cc11fe30f 100644 --- a/src/main/java/train/common/core/CommonProxy.java +++ b/src/main/java/train/common/core/CommonProxy.java @@ -44,10 +44,16 @@ public class CommonProxy implements IGuiHandler { public static List playerList = new ArrayList(); public static boolean debug = false; + public static String configDirectory = ""; + public void throwAlphaException() { throw new IllegalStateException("You're trying to use a Traincraft alpha-version past its expiry date. Download a release-build at https://minecraft.curseforge.com/projects/traincraft."); } + public boolean isClient(){ + return true; + } + public void setKeyBinding(String name, int value) {} public void registerRenderInformation() {} From d3f71e137b7de24328e0c56f2f13bf1f4c8f49c7 Mon Sep 17 00:00:00 2001 From: Paul19988 Date: Fri, 24 Nov 2023 03:15:18 +0000 Subject: [PATCH 3/5] more cleanup & fix for fluid tanks --- src/main/java/train/client/gui/GuiLiquid.java | 6 +- .../client/render/models/ModelTankWagon.java | 324 ++++---- .../java/train/common/api/LiquidTank.java | 729 +++++++++--------- .../java/train/common/api/Locomotive.java | 312 ++++---- src/main/java/train/common/api/Tender.java | 547 +++++++------ .../java/train/common/api/TrainRecord.java | 6 +- .../train/common/api/TrainSoundRecord.java | 6 +- .../java/train/common/api/TrainsItems.java | 98 +-- .../java/train/common/api/TrainsOnClick.java | 127 +-- .../java/train/common/api/TrainsSignal.java | 138 ++-- .../train/common/api/WirelessTransmitter.java | 3 +- .../common/core/handlers/EntityHandler.java | 4 +- .../entity/rollingStock/EntityTankWagon.java | 201 ++--- .../rollingStock/EntityTankWagonUS.java | 199 ++--- .../java/train/common/library/EnumSounds.java | 627 ++++++++------- 15 files changed, 1670 insertions(+), 1657 deletions(-) diff --git a/src/main/java/train/client/gui/GuiLiquid.java b/src/main/java/train/client/gui/GuiLiquid.java index 66c8c87f70..220a3b68f2 100644 --- a/src/main/java/train/client/gui/GuiLiquid.java +++ b/src/main/java/train/client/gui/GuiLiquid.java @@ -165,7 +165,11 @@ protected void drawGuiContainerBackgroundLayer(float f, int t, int g) { int k = (height - ySize) / 2; drawTexturedModalRect(j, k, 0, 0, xSize, ySize); - int l = (liquid.getAmount() * 50) / liquid.getCapacity(); + int l = 0; + + if (liquid.getAmount() > 0 && liquid.getCapacity() > 0) { + l = (liquid.getAmount() * 50) / liquid.getCapacity(); + } Fluid theLiquid = FluidRegistry.getFluid(liquid.getLiquidItemID()); // Don't render anything if the cart is empty. diff --git a/src/main/java/train/client/render/models/ModelTankWagon.java b/src/main/java/train/client/render/models/ModelTankWagon.java index 1ed292ee74..4d5170ae23 100644 --- a/src/main/java/train/client/render/models/ModelTankWagon.java +++ b/src/main/java/train/client/render/models/ModelTankWagon.java @@ -7,166 +7,168 @@ public class ModelTankWagon extends ModelBase { - public ModelTankWagon() { - - // constructor: - box = new CustomModelRenderer(this, 0, 20, 256, 256); - box.addBox(0F, 0F, 0F, 15, 4, 8); - box.setPosition(7F, 3F, -4F); - - box0 = new CustomModelRenderer(this, 105, 28, 256, 256); - box0.addBox(0F, 0F, 0F, 4, 2, 4); - box0.setPosition(-2F, 29F, -2F); - - box1 = new CustomModelRenderer(this, 0, 20, 256, 256); - box1.addBox(0F, 0F, 0F, 15, 4, 8); - box1.setPosition(-22F, 3F, -4F); - - box10 = new CustomModelRenderer(this, 156, 173, 256, 256); - box10.addBox(0F, 0F, 0F, 42, 4, 8); - box10.setPosition(21F, 15F, -10F); - box10.rotateAngleX = -1.5707963267948966F; - box10.rotateAngleY = -3.141592653589793F; - - box11 = new CustomModelRenderer(this, 55, 199, 256, 256); - box11.addBox(0F, 0F, 0F, 42, 4, 8); - box11.setPosition(-21F, 25F, -4F); - - box12 = new CustomModelRenderer(this, 0, 11, 256, 256); - box12.addBox(0F, 0F, 0F, 58, 3, 4); - box12.setPosition(-29F, 6F, -2F); - - box13 = new CustomModelRenderer(this, 0, 60, 256, 256); - box13.addBox(0F, 0F, 0F, 1, 16, 4); - box13.setPosition(-2F, 8F, -10F); - box13.rotateAngleY = -4.71238898038469F; - - box14 = new CustomModelRenderer(this, 36, 20, 256, 256); - box14.addBox(0F, 0F, 0F, 15, 3, 14); - box14.setPosition(-22F, 6F, -7F); - - box15 = new CustomModelRenderer(this, 3, 14, 256, 256); - box15.addBox(0F, 0F, 0F, 7, 3, 14); - box15.setPosition(11F, 2F, -7F); - - box16 = new CustomModelRenderer(this, 55, 160, 256, 256); - box16.addBox(0F, 0F, 0F, 42, 4, 8); - box16.setPosition(21F, 29F, 4F); - box16.rotateAngleX = -0.7853981633974483F; - box16.rotateAngleZ = -3.141592653589793F; - - box17 = new CustomModelRenderer(this, 156, 160, 256, 256); - box17.addBox(0F, 0F, 0F, 42, 4, 8); - box17.setPosition(-21F, 29F, -4F); - box17.rotateAngleX = -0.7853981633974483F; - box17.rotateAngleY = -3.141592653589793F; - box17.rotateAngleZ = -3.141592653589793F; - - box18 = new CustomModelRenderer(this, 3, 120, 256, 256); - box18.addBox(0F, 0F, 0F, 46, 8, 8); - box18.setPosition(-23F, 15F, -4F); - - box19 = new CustomModelRenderer(this, 156, 199, 256, 256); - box19.addBox(0F, 0F, 0F, 42, 4, 8); - box19.setPosition(-21F, 9F, -4F); - - box2 = new CustomModelRenderer(this, 132, 111, 256, 256); - box2.addBox(0F, 0F, 0F, 46, 8, 12); - box2.setPosition(-23F, -1F, -6F); - - box20 = new CustomModelRenderer(this, 1, 90, 256, 256); - box20.addBox(0F, 0F, 0F, 44, 12, 12); - box20.setPosition(-22F, 13F, -6F); - - box25 = new CustomModelRenderer(this, 134, 138, 256, 256); - box25.addBox(0F, 0F, 0F, 46, 7, 10); - box25.setPosition(-23F, 0F, -5F); - - box3 = new CustomModelRenderer(this, 10, 68, 256, 256); - box3.addBox(0F, 0F, 0F, 1, 7, 4); - box3.setPosition(2F, 24F, -11F); - box3.rotateAngleY = 1.5707963267948966F; - box3.rotateAngleZ = 0.7853981633974483F; - - box4 = new CustomModelRenderer(this, 3, 14, 256, 256); - box4.addBox(0F, 0F, 0F, 7, 3, 14); - box4.setPosition(-18F, 2F, -7F); - - box6 = new CustomModelRenderer(this, 55, 186, 256, 256); - box6.addBox(0F, 0F, 0F, 42, 4, 8); - box6.setPosition(-21F, 9F, 4F); - box6.rotateAngleX = -0.7853981633974483F; - - box7 = new CustomModelRenderer(this, 156, 186, 256, 256); - box7.addBox(0F, 0F, 0F, 42, 4, 8); - box7.setPosition(21F, 9F, -4F); - box7.rotateAngleX = -0.7853981633974483F; - box7.rotateAngleY = -3.141592653589793F; - - box8 = new CustomModelRenderer(this, 55, 173, 256, 256); - box8.addBox(0F, 0F, 0F, 42, 4, 8); - box8.setPosition(-21F, 15F, 10F); - box8.rotateAngleX = -1.5707963267948966F; - - box9 = new CustomModelRenderer(this, 36, 20, 256, 256); - box9.addBox(0F, 0F, 0F, 15, 3, 14); - box9.setPosition(7F, 6F, -7F); - - } - @Override - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { - if (ConfigHandler.FLICKERING) { - super.render(entity, f, f1, f2, f3, f4, f5); - } - // render: - box.render(f5); - box0.render(f5); - box1.render(f5); - box10.render(f5); - box11.render(f5); - box12.render(f5); - box13.render(f5); - box14.render(f5); - box15.render(f5); - box16.render(f5); - box17.render(f5); - box18.render(f5); - box19.render(f5); - box2.render(f5); - box20.render(f5); - box25.render(f5); - - box4.render(f5); - box6.render(f5); - box7.render(f5); - box8.render(f5); - box9.render(f5); - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5) {} - - // variables init: - public CustomModelRenderer box; - public CustomModelRenderer box0; - public CustomModelRenderer box1; - public CustomModelRenderer box10; - public CustomModelRenderer box11; - public CustomModelRenderer box12; - public CustomModelRenderer box13; - public CustomModelRenderer box14; - public CustomModelRenderer box15; - public CustomModelRenderer box16; - public CustomModelRenderer box17; - public CustomModelRenderer box18; - public CustomModelRenderer box19; - public CustomModelRenderer box2; - public CustomModelRenderer box20; - public CustomModelRenderer box25; - public CustomModelRenderer box3; - public CustomModelRenderer box4; - public CustomModelRenderer box6; - public CustomModelRenderer box7; - public CustomModelRenderer box8; - public CustomModelRenderer box9; + public ModelTankWagon() { + + // constructor: + box = new CustomModelRenderer(this, 0, 20, 256, 256); + box.addBox(0F, 0F, 0F, 15, 4, 8); + box.setPosition(7F, 3F, -4F); + + box0 = new CustomModelRenderer(this, 105, 28, 256, 256); + box0.addBox(0F, 0F, 0F, 4, 2, 4); + box0.setPosition(-2F, 29F, -2F); + + box1 = new CustomModelRenderer(this, 0, 20, 256, 256); + box1.addBox(0F, 0F, 0F, 15, 4, 8); + box1.setPosition(-22F, 3F, -4F); + + box10 = new CustomModelRenderer(this, 156, 173, 256, 256); + box10.addBox(0F, 0F, 0F, 42, 4, 8); + box10.setPosition(21F, 15F, -10F); + box10.rotateAngleX = -1.5707963267948966F; + box10.rotateAngleY = -3.141592653589793F; + + box11 = new CustomModelRenderer(this, 55, 199, 256, 256); + box11.addBox(0F, 0F, 0F, 42, 4, 8); + box11.setPosition(-21F, 25F, -4F); + + box12 = new CustomModelRenderer(this, 0, 11, 256, 256); + box12.addBox(0F, 0F, 0F, 58, 3, 4); + box12.setPosition(-29F, 6F, -2F); + + box13 = new CustomModelRenderer(this, 0, 60, 256, 256); + box13.addBox(0F, 0F, 0F, 1, 16, 4); + box13.setPosition(-2F, 8F, -10F); + box13.rotateAngleY = -4.71238898038469F; + + box14 = new CustomModelRenderer(this, 36, 20, 256, 256); + box14.addBox(0F, 0F, 0F, 15, 3, 14); + box14.setPosition(-22F, 6F, -7F); + + box15 = new CustomModelRenderer(this, 3, 14, 256, 256); + box15.addBox(0F, 0F, 0F, 7, 3, 14); + box15.setPosition(11F, 2F, -7F); + + box16 = new CustomModelRenderer(this, 55, 160, 256, 256); + box16.addBox(0F, 0F, 0F, 42, 4, 8); + box16.setPosition(21F, 29F, 4F); + box16.rotateAngleX = -0.7853981633974483F; + box16.rotateAngleZ = -3.141592653589793F; + + box17 = new CustomModelRenderer(this, 156, 160, 256, 256); + box17.addBox(0F, 0F, 0F, 42, 4, 8); + box17.setPosition(-21F, 29F, -4F); + box17.rotateAngleX = -0.7853981633974483F; + box17.rotateAngleY = -3.141592653589793F; + box17.rotateAngleZ = -3.141592653589793F; + + box18 = new CustomModelRenderer(this, 3, 120, 256, 256); + box18.addBox(0F, 0F, 0F, 46, 8, 8); + box18.setPosition(-23F, 15F, -4F); + + box19 = new CustomModelRenderer(this, 156, 199, 256, 256); + box19.addBox(0F, 0F, 0F, 42, 4, 8); + box19.setPosition(-21F, 9F, -4F); + + box2 = new CustomModelRenderer(this, 132, 111, 256, 256); + box2.addBox(0F, 0F, 0F, 46, 8, 12); + box2.setPosition(-23F, -1F, -6F); + + box20 = new CustomModelRenderer(this, 1, 90, 256, 256); + box20.addBox(0F, 0F, 0F, 44, 12, 12); + box20.setPosition(-22F, 13F, -6F); + + box25 = new CustomModelRenderer(this, 134, 138, 256, 256); + box25.addBox(0F, 0F, 0F, 46, 7, 10); + box25.setPosition(-23F, 0F, -5F); + + box3 = new CustomModelRenderer(this, 10, 68, 256, 256); + box3.addBox(0F, 0F, 0F, 1, 7, 4); + box3.setPosition(2F, 24F, -11F); + box3.rotateAngleY = 1.5707963267948966F; + box3.rotateAngleZ = 0.7853981633974483F; + + box4 = new CustomModelRenderer(this, 3, 14, 256, 256); + box4.addBox(0F, 0F, 0F, 7, 3, 14); + box4.setPosition(-18F, 2F, -7F); + + box6 = new CustomModelRenderer(this, 55, 186, 256, 256); + box6.addBox(0F, 0F, 0F, 42, 4, 8); + box6.setPosition(-21F, 9F, 4F); + box6.rotateAngleX = -0.7853981633974483F; + + box7 = new CustomModelRenderer(this, 156, 186, 256, 256); + box7.addBox(0F, 0F, 0F, 42, 4, 8); + box7.setPosition(21F, 9F, -4F); + box7.rotateAngleX = -0.7853981633974483F; + box7.rotateAngleY = -3.141592653589793F; + + box8 = new CustomModelRenderer(this, 55, 173, 256, 256); + box8.addBox(0F, 0F, 0F, 42, 4, 8); + box8.setPosition(-21F, 15F, 10F); + box8.rotateAngleX = -1.5707963267948966F; + + box9 = new CustomModelRenderer(this, 36, 20, 256, 256); + box9.addBox(0F, 0F, 0F, 15, 3, 14); + box9.setPosition(7F, 6F, -7F); + + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { + if (ConfigHandler.FLICKERING) { + super.render(entity, f, f1, f2, f3, f4, f5); + } + // render: + box.render(f5); + box0.render(f5); + box1.render(f5); + box10.render(f5); + box11.render(f5); + box12.render(f5); + box13.render(f5); + box14.render(f5); + box15.render(f5); + box16.render(f5); + box17.render(f5); + box18.render(f5); + box19.render(f5); + box2.render(f5); + box20.render(f5); + box25.render(f5); + + box4.render(f5); + box6.render(f5); + box7.render(f5); + box8.render(f5); + box9.render(f5); + } + + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5) { + } + + // variables init: + public CustomModelRenderer box; + public CustomModelRenderer box0; + public CustomModelRenderer box1; + public CustomModelRenderer box10; + public CustomModelRenderer box11; + public CustomModelRenderer box12; + public CustomModelRenderer box13; + public CustomModelRenderer box14; + public CustomModelRenderer box15; + public CustomModelRenderer box16; + public CustomModelRenderer box17; + public CustomModelRenderer box18; + public CustomModelRenderer box19; + public CustomModelRenderer box2; + public CustomModelRenderer box20; + public CustomModelRenderer box25; + public CustomModelRenderer box3; + public CustomModelRenderer box4; + public CustomModelRenderer box6; + public CustomModelRenderer box7; + public CustomModelRenderer box8; + public CustomModelRenderer box9; } diff --git a/src/main/java/train/common/api/LiquidTank.java b/src/main/java/train/common/api/LiquidTank.java index c3ba362268..0e556f0433 100644 --- a/src/main/java/train/common/api/LiquidTank.java +++ b/src/main/java/train/common/api/LiquidTank.java @@ -16,215 +16,216 @@ import javax.annotation.Nullable; public class LiquidTank extends EntityRollingStock implements IFluidHandler, ISidedInventory { - private int capacity; - protected ItemStack cargoItems[]; - private int update = 8; - private FluidTank theTank; - public TileEntity[] blocksToCheck; - - /** - * - * @param world - * @param fluid - * @param quantity - * @param capacity - */ - public LiquidTank(World world, Fluid fluid, int quantity) { - this(new FluidStack(fluid, quantity), world); - } - public LiquidTank(World world) { - this(null, world); - } - - private LiquidTank(@Nullable FluidStack liquid, World world) { - super(world); - this.capacity = capacity; - this.theTank = new FluidTank(liquid, capacity); - dataWatcher.addObject(4, 0); - dataWatcher.addObject(22, ""); - - } - - public int getAmount() { - return (this.dataWatcher.getWatchableObjectInt(18)); - } - - public int getLiquidItemID() { - return (this.dataWatcher.getWatchableObjectInt(4)); - } - - public String getLiquidName() { - return (this.dataWatcher.getWatchableObjectString(22)); - } - - public FluidTank getTank() { - return theTank; - } - - @Override - protected void writeEntityToNBT(NBTTagCompound nbttagcompound) { - super.writeEntityToNBT(nbttagcompound); - this.theTank.writeToNBT(nbttagcompound); - } - - @Override - protected void readEntityFromNBT(NBTTagCompound nbttagcompound) { - super.readEntityFromNBT(nbttagcompound); - this.theTank.readFromNBT(nbttagcompound); - } - - @Override - public void onUpdate() { - super.onUpdate(); - if (worldObj.isRemote){ return;} - - if(ticksExisted%5==0 && fill(ForgeDirection.UNKNOWN, new FluidStack(FluidRegistry.WATER,100), false)==100) { - FluidStack drain = null; - blocksToCheck = new TileEntity[]{worldObj.getTileEntity(MathHelper.floor_double(posX), MathHelper.floor_double(posY - 1), MathHelper.floor_double(posZ)), - worldObj.getTileEntity(MathHelper.floor_double(posX), MathHelper.floor_double(posY + 2), MathHelper.floor_double(posZ)), - worldObj.getTileEntity(MathHelper.floor_double(posX), MathHelper.floor_double(posY + 3), MathHelper.floor_double(posZ)), - worldObj.getTileEntity(MathHelper.floor_double(posX), MathHelper.floor_double(posY + 4), MathHelper.floor_double(posZ)) - }; - - for (TileEntity block : blocksToCheck) { - if (drain == null && block instanceof IFluidHandler) { - for (ForgeDirection direction : ForgeDirection.VALID_DIRECTIONS) { - if (((IFluidHandler) block).drain(direction, 100, false) != null && - ((IFluidHandler) block).drain(direction, 100, false).fluid == FluidRegistry.WATER && - ((IFluidHandler) block).drain(direction, 100, false).amount == 100 - ) { - drain = ((IFluidHandler) block).drain( - direction, 100, true); - } - } - } - } - - if (drain != null) { - fill(ForgeDirection.UNKNOWN, drain, true); - } - } - - - if (theTank != null && theTank.getFluid() != null) { - this.dataWatcher.updateObject(18, theTank.getFluid().amount); - this.dataWatcher.updateObject(4, theTank.getFluid().getFluidID()); - if (theTank.getFluid().getFluid() != null) - this.dataWatcher.updateObject(22, theTank.getFluid().getFluid().getUnlocalizedName()); - handleMass(); - } - else if (theTank != null && theTank.getFluid() == null) { - this.dataWatcher.updateObject(18, 0); - this.dataWatcher.updateObject(4, 0); - this.dataWatcher.updateObject(22, ""); - } - } - - /** - * Handle mass depending on liquid amount - */ - protected void handleMass() { - if (this.updateTicks % 10 != 0 && theTank.getFluid().amount > 0) { - this.mass = this.getDefaultMass(); - double preciseAmount = theTank.getFluid().amount; - mass += (preciseAmount / 10000);//1 bucket = 1 kilo - } - } - - public ItemStack checkInvent(ItemStack itemstack) { - ItemStack result = null; - if (worldObj.isRemote) { - return itemstack; - } - this.update += 1; - if (this.update % 8 == 0 && itemstack != null) { - ItemStack emptyItem = itemstack.getItem().getContainerItem(itemstack); - if(cargoItems[1] == null) { - if (theTank.getFluidAmount() == 0) { - for (Fluid fluid : FluidRegistry.getRegisteredFluids().values()) { - if (LiquidManager.getInstance().containsFluid(itemstack, - FluidRegistry.getFluidStack(FluidRegistry.getFluidName(fluid), 0))) { - if (fluid.getTemperature() < 1000) { - if (!(this instanceof EntityTankLava)) { - result = LiquidManager.getInstance().processContainer(this, 0, this, itemstack); - break; - } - } else { - if (this instanceof EntityTankLava) { - result = LiquidManager.getInstance().processContainer(this, 0, this, itemstack); - break; - } - } - } - } - } else { - result = LiquidManager.getInstance().processContainer(this, 0, this, itemstack); - } - } else if (emptyItem != null) { - if(emptyItem.getItem() == cargoItems[1].getItem()) { - if(cargoItems[1].stackSize+1 <= cargoItems[1].getMaxStackSize()) { - result = LiquidManager.getInstance().processContainer(this, 0, this, itemstack); - } - } - } else { - if(itemstack.getItem() == cargoItems[1].getItem()) { - if(cargoItems[1].stackSize+1 <= cargoItems[1].getMaxStackSize()) { - result = LiquidManager.getInstance().processContainer(this, 0, this, itemstack); - } - } - } - - if (result != null) { - if(cargoItems[1] == null) { - cargoItems[1] = result; - } - else if(cargoItems[1].getItem() == result.getItem()) { - cargoItems[1].stackSize += 1; - } - } - } - return itemstack; - } - - public void setLiquid(FluidTank liquid) { - this.theTank = liquid; - } - - public void setCapacity(int capacity) { - this.capacity = capacity; - } - - public int getCapacity() { - return this.capacity; - } - - // private int placeInSpecialInvent(ItemStack itemstack1, int i, boolean doAdd) { - // if (cargoItems[i] == null) { - // if (doAdd) - // cargoItems[i] = itemstack1; - // return itemstack1.stackSize; - // } - // else if (cargoItems[i] != null && cargoItems[i].getItem() == itemstack1.getItem() && - // itemstack1.isStackable() && (!itemstack1.getHasSubtypes() || cargoItems[i].getItemDamage() == - // itemstack1.getItemDamage()) && ItemStack.areItemStackTagsEqual(cargoItems[i], itemstack1)) { - // - // int var9 = cargoItems[i].stackSize + itemstack1.stackSize; - // if (var9 <= itemstack1.getMaxStackSize()) { - // if (doAdd) - // cargoItems[i].stackSize = var9; - // return var9; - // } - // else if (cargoItems[i].stackSize < itemstack1.getMaxStackSize()) { - // if (doAdd) - // cargoItems[i].stackSize = cargoItems[i].getMaxStackSize(); - // return Math.abs(cargoItems[i].getMaxStackSize() - cargoItems[i].stackSize - - // itemstack1.stackSize); - // } - // } - // return itemstack1.stackSize; - // } - - //TODO Fix ISided Inventory buildcraft support + private int capacity; + protected ItemStack[] cargoItems; + private int update = 8; + private FluidTank theTank; + public TileEntity[] blocksToCheck; + + /** + * + * @param world + * @param fluid + * @param quantity + * @param capacity + */ + public LiquidTank(World world, Fluid fluid, int quantity) { + this(new FluidStack(fluid, quantity), world); + } + + public LiquidTank(World world) { + this(null, world); + } + + private LiquidTank(@Nullable FluidStack liquid, World world) { + super(world); + this.capacity = this.getSpec().getTankCapacity(); + this.theTank = new FluidTank(liquid, capacity); + dataWatcher.addObject(4, 0); + dataWatcher.addObject(22, ""); + + } + + public int getAmount() { + return (this.dataWatcher.getWatchableObjectInt(18)); + } + + public int getLiquidItemID() { + return (this.dataWatcher.getWatchableObjectInt(4)); + } + + public String getLiquidName() { + return (this.dataWatcher.getWatchableObjectString(22)); + } + + public FluidTank getTank() { + return theTank; + } + + @Override + protected void writeEntityToNBT(NBTTagCompound nbttagcompound) { + super.writeEntityToNBT(nbttagcompound); + this.theTank.writeToNBT(nbttagcompound); + } + + @Override + protected void readEntityFromNBT(NBTTagCompound nbttagcompound) { + super.readEntityFromNBT(nbttagcompound); + this.theTank.readFromNBT(nbttagcompound); + } + + @Override + public void onUpdate() { + super.onUpdate(); + if (worldObj.isRemote) { + return; + } + + if (ticksExisted % 5 == 0 && fill(ForgeDirection.UNKNOWN, new FluidStack(FluidRegistry.WATER, 100), false) == 100) { + FluidStack drain = null; + blocksToCheck = new TileEntity[]{worldObj.getTileEntity(MathHelper.floor_double(posX), MathHelper.floor_double(posY - 1), MathHelper.floor_double(posZ)), + worldObj.getTileEntity(MathHelper.floor_double(posX), MathHelper.floor_double(posY + 2), MathHelper.floor_double(posZ)), + worldObj.getTileEntity(MathHelper.floor_double(posX), MathHelper.floor_double(posY + 3), MathHelper.floor_double(posZ)), + worldObj.getTileEntity(MathHelper.floor_double(posX), MathHelper.floor_double(posY + 4), MathHelper.floor_double(posZ)) + }; + + for (TileEntity block : blocksToCheck) { + if (drain == null && block instanceof IFluidHandler) { + for (ForgeDirection direction : ForgeDirection.VALID_DIRECTIONS) { + if (((IFluidHandler) block).drain(direction, 100, false) != null && + ((IFluidHandler) block).drain(direction, 100, false).fluid == FluidRegistry.WATER && + ((IFluidHandler) block).drain(direction, 100, false).amount == 100 + ) { + drain = ((IFluidHandler) block).drain( + direction, 100, true); + } + } + } + } + + if (drain != null) { + fill(ForgeDirection.UNKNOWN, drain, true); + } + } + + + if (theTank != null && theTank.getFluid() != null) { + this.dataWatcher.updateObject(18, theTank.getFluid().amount); + this.dataWatcher.updateObject(4, theTank.getFluid().getFluidID()); + if (theTank.getFluid().getFluid() != null) + this.dataWatcher.updateObject(22, theTank.getFluid().getFluid().getUnlocalizedName()); + handleMass(); + } else if (theTank != null && theTank.getFluid() == null) { + this.dataWatcher.updateObject(18, 0); + this.dataWatcher.updateObject(4, 0); + this.dataWatcher.updateObject(22, ""); + } + } + + /** + * Handle mass depending on liquid amount + */ + protected void handleMass() { + if (this.updateTicks % 10 != 0 && theTank.getFluid().amount > 0) { + this.mass = this.getDefaultMass(); + double preciseAmount = theTank.getFluid().amount; + mass += (preciseAmount / 10000);//1 bucket = 1 kilo + } + } + + public ItemStack checkInvent(ItemStack itemstack) { + ItemStack result = null; + if (worldObj.isRemote) { + return itemstack; + } + this.update += 1; + if (this.update % 8 == 0 && itemstack != null) { + ItemStack emptyItem = itemstack.getItem().getContainerItem(itemstack); + if (cargoItems[1] == null) { + if (theTank.getFluidAmount() == 0) { + for (Fluid fluid : FluidRegistry.getRegisteredFluids().values()) { + if (LiquidManager.getInstance().containsFluid(itemstack, + FluidRegistry.getFluidStack(FluidRegistry.getFluidName(fluid), 0))) { + if (fluid.getTemperature() < 1000) { + if (!(this instanceof EntityTankLava)) { + result = LiquidManager.getInstance().processContainer(this, 0, this, itemstack); + break; + } + } else { + if (this instanceof EntityTankLava) { + result = LiquidManager.getInstance().processContainer(this, 0, this, itemstack); + break; + } + } + } + } + } else { + result = LiquidManager.getInstance().processContainer(this, 0, this, itemstack); + } + } else if (emptyItem != null) { + if (emptyItem.getItem() == cargoItems[1].getItem()) { + if (cargoItems[1].stackSize + 1 <= cargoItems[1].getMaxStackSize()) { + result = LiquidManager.getInstance().processContainer(this, 0, this, itemstack); + } + } + } else { + if (itemstack.getItem() == cargoItems[1].getItem()) { + if (cargoItems[1].stackSize + 1 <= cargoItems[1].getMaxStackSize()) { + result = LiquidManager.getInstance().processContainer(this, 0, this, itemstack); + } + } + } + + if (result != null) { + if (cargoItems[1] == null) { + cargoItems[1] = result; + } else if (cargoItems[1].getItem() == result.getItem()) { + cargoItems[1].stackSize += 1; + } + } + } + return itemstack; + } + + public void setLiquid(FluidTank liquid) { + this.theTank = liquid; + } + + public void setCapacity(int capacity) { + this.capacity = capacity; + } + + public int getCapacity() { + return this.capacity; + } + + // private int placeInSpecialInvent(ItemStack itemstack1, int i, boolean doAdd) { + // if (cargoItems[i] == null) { + // if (doAdd) + // cargoItems[i] = itemstack1; + // return itemstack1.stackSize; + // } + // else if (cargoItems[i] != null && cargoItems[i].getItem() == itemstack1.getItem() && + // itemstack1.isStackable() && (!itemstack1.getHasSubtypes() || cargoItems[i].getItemDamage() == + // itemstack1.getItemDamage()) && ItemStack.areItemStackTagsEqual(cargoItems[i], itemstack1)) { + // + // int var9 = cargoItems[i].stackSize + itemstack1.stackSize; + // if (var9 <= itemstack1.getMaxStackSize()) { + // if (doAdd) + // cargoItems[i].stackSize = var9; + // return var9; + // } + // else if (cargoItems[i].stackSize < itemstack1.getMaxStackSize()) { + // if (doAdd) + // cargoItems[i].stackSize = cargoItems[i].getMaxStackSize(); + // return Math.abs(cargoItems[i].getMaxStackSize() - cargoItems[i].stackSize - + // itemstack1.stackSize); + // } + // } + // return itemstack1.stackSize; + // } + + //TODO Fix ISided Inventory buildcraft support /* /** * Offers an ItemStack for addition to the inventory. @@ -262,159 +263,159 @@ public ItemStack[] canExtractItem(boolean doRemove, ForgeDirection from, int max } */ - @Override - public boolean canExtractItem(int p_102008_1_, ItemStack p_102008_2_, int p_102008_3_) { - return false; - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) { - return new int[0]; - } - - @Override - public boolean canInsertItem(int p_102007_1_, ItemStack p_102007_2_, int p_102007_3_) { - return false; - } - - @Override - public ItemStack getStackInSlot(int i) { - return cargoItems[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int par1) { - if (this.cargoItems[par1] != null) { - ItemStack var2 = this.cargoItems[par1]; - this.cargoItems[par1] = null; - return var2; - } - else { - return null; - } - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if (cargoItems[i] != null) { - if (cargoItems[i].stackSize <= j) { - ItemStack itemstack = cargoItems[i]; - cargoItems[i] = null; - return itemstack; - } - ItemStack itemstack1 = cargoItems[i].splitStack(j); - if (cargoItems[i].stackSize == 0) { - cargoItems[i] = null; - } - return itemstack1; - } - else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemstack) { - cargoItems[i] = itemstack; - if (itemstack != null && itemstack.stackSize > getInventoryStackLimit()) { - itemstack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public void markDirty() { - - } - - @Override - public String getInventoryName() { - return null; - } - - @Override - public void openInventory() {} - - @Override - public void closeInventory() {} - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public int getSizeInventory() { - return cargoItems.length; - } - - @Override - public boolean attackEntityFrom(DamageSource damagesource, float i) { - if (worldObj.isRemote) { - return true; - } - if (canBeDestroyedByPlayer(damagesource)) - return true; - super.attackEntityFrom(damagesource, i); - setRollingDirection(-getRollingDirection()); - setRollingAmplitude(10); - setBeenAttacked(); - setDamage(getDamage() + i * 10); - if (getDamage() > 40) { - if (riddenByEntity != null) { - riddenByEntity.mountEntity(this); - } - this.setDead(); - ServerLogger.deleteWagon(this); - if (damagesource.getEntity() instanceof EntityPlayer) { - dropCartAsItem(((EntityPlayer)damagesource.getEntity()).capabilities.isCreativeMode); - } - } - return true; - } - - @Override - public boolean isItemValidForSlot(int i, ItemStack itemstack) { - return true; - } - - public FluidStack getFluid() { - return theTank.getFluid(); - } - - public int getFluidAmount() { - return theTank.getFluidAmount(); - } - - @Override - public int fill(ForgeDirection from, FluidStack resource, boolean doFill) { - return theTank.fill(resource, doFill); - } - - @Override - public FluidStack drain(ForgeDirection from, FluidStack resource, boolean doDrain) { - if (resource == null || !resource.isFluidEqual(theTank.getFluid())) { - return null; - } - return theTank.drain(resource.amount, doDrain); - } - - @Override - public FluidStack drain(ForgeDirection from, int maxDrain, boolean doDrain) { - return theTank.drain(maxDrain, doDrain); - } - - @Override - public boolean canFill(ForgeDirection from, Fluid fluid) { - return true; - } - - @Override - public boolean canDrain(ForgeDirection from, Fluid fluid) { - return true; - } - - @Override - public FluidTankInfo[] getTankInfo(ForgeDirection from) { - return new FluidTankInfo[] { theTank.getInfo() }; - } + @Override + public boolean canExtractItem(int p_102008_1_, ItemStack p_102008_2_, int p_102008_3_) { + return false; + } + + @Override + public int[] getAccessibleSlotsFromSide(int p_94128_1_) { + return new int[0]; + } + + @Override + public boolean canInsertItem(int p_102007_1_, ItemStack p_102007_2_, int p_102007_3_) { + return false; + } + + @Override + public ItemStack getStackInSlot(int i) { + return cargoItems[i]; + } + + @Override + public ItemStack getStackInSlotOnClosing(int par1) { + if (this.cargoItems[par1] != null) { + ItemStack var2 = this.cargoItems[par1]; + this.cargoItems[par1] = null; + return var2; + } else { + return null; + } + } + + @Override + public ItemStack decrStackSize(int i, int j) { + if (cargoItems[i] != null) { + if (cargoItems[i].stackSize <= j) { + ItemStack itemstack = cargoItems[i]; + cargoItems[i] = null; + return itemstack; + } + ItemStack itemstack1 = cargoItems[i].splitStack(j); + if (cargoItems[i].stackSize == 0) { + cargoItems[i] = null; + } + return itemstack1; + } else { + return null; + } + } + + @Override + public void setInventorySlotContents(int i, ItemStack itemstack) { + cargoItems[i] = itemstack; + if (itemstack != null && itemstack.stackSize > getInventoryStackLimit()) { + itemstack.stackSize = getInventoryStackLimit(); + } + } + + @Override + public void markDirty() { + + } + + @Override + public String getInventoryName() { + return null; + } + + @Override + public void openInventory() { + } + + @Override + public void closeInventory() { + } + + @Override + public int getInventoryStackLimit() { + return 64; + } + + @Override + public int getSizeInventory() { + return cargoItems.length; + } + + @Override + public boolean attackEntityFrom(DamageSource damagesource, float i) { + if (worldObj.isRemote) { + return true; + } + if (canBeDestroyedByPlayer(damagesource)) + return true; + super.attackEntityFrom(damagesource, i); + setRollingDirection(-getRollingDirection()); + setRollingAmplitude(10); + setBeenAttacked(); + setDamage(getDamage() + i * 10); + if (getDamage() > 40) { + if (riddenByEntity != null) { + riddenByEntity.mountEntity(this); + } + this.setDead(); + ServerLogger.deleteWagon(this); + if (damagesource.getEntity() instanceof EntityPlayer) { + dropCartAsItem(((EntityPlayer) damagesource.getEntity()).capabilities.isCreativeMode); + } + } + return true; + } + + @Override + public boolean isItemValidForSlot(int i, ItemStack itemstack) { + return true; + } + + public FluidStack getFluid() { + return theTank.getFluid(); + } + + public int getFluidAmount() { + return theTank.getFluidAmount(); + } + + @Override + public int fill(ForgeDirection from, FluidStack resource, boolean doFill) { + return theTank.fill(resource, doFill); + } + + @Override + public FluidStack drain(ForgeDirection from, FluidStack resource, boolean doDrain) { + if (resource == null || !resource.isFluidEqual(theTank.getFluid())) { + return null; + } + return theTank.drain(resource.amount, doDrain); + } + + @Override + public FluidStack drain(ForgeDirection from, int maxDrain, boolean doDrain) { + return theTank.drain(maxDrain, doDrain); + } + + @Override + public boolean canFill(ForgeDirection from, Fluid fluid) { + return true; + } + + @Override + public boolean canDrain(ForgeDirection from, Fluid fluid) { + return true; + } + + @Override + public FluidTankInfo[] getTankInfo(ForgeDirection from) { + return new FluidTankInfo[]{theTank.getInfo()}; + } } diff --git a/src/main/java/train/common/api/Locomotive.java b/src/main/java/train/common/api/Locomotive.java index ad94ae6fd0..4e47aee76e 100644 --- a/src/main/java/train/common/api/Locomotive.java +++ b/src/main/java/train/common/api/Locomotive.java @@ -38,7 +38,7 @@ public abstract class Locomotive extends EntityRollingStock implements IInventory, WirelessTransmitter { public int inventorySize; - protected ItemStack locoInvent[]; + protected ItemStack[] locoInvent; private int soundPosition = 0; public boolean parkingBrake = false; private int whistleDelay = 0; @@ -138,12 +138,12 @@ public Locomotive(World world) { dataWatcher.addObject(29, castToString(currentAccelSlowDown)); dataWatcher.addObject(30, castToString(currentBrakeSlowDown)); dataWatcher.addObject(31, castToString(currentFuelConsumptionChange)); - dataWatcher.addObject(15, (float)Math.round((getCustomSpeed() * 3.6f))); + dataWatcher.addObject(15, (float) Math.round((getCustomSpeed() * 3.6f))); //dataWatcher.addObject(32, lineWaypoints); setAccel(0); setBrake(0); this.entityCollisionReduction = 0.99F; - if(this instanceof SteamTrain)isLocoTurnedOn = true; + if (this instanceof SteamTrain) isLocoTurnedOn = true; char[] chars = "abcdefghijklmnopqrstuvwxyz0123456789".toCharArray(); StringBuilder sb = new StringBuilder(5); Random random = new Random(); @@ -167,6 +167,7 @@ public void readSpawnData(ByteBuf additionalData) { isLocoTurnedOn = additionalData.readBoolean(); parkingBrake = additionalData.readBoolean(); } + @Override public void writeSpawnData(ByteBuf buffer) { super.writeSpawnData(buffer); @@ -243,7 +244,7 @@ public void setCustomSpeed(double m) { public float getMaxSpeed() { if (getSpec() != null) { if (currentMassPulled > 1) { - float power = (float) currentMassPulled / (((float) getSpec().getMHP())*0.37f); + float power = (float) currentMassPulled / (((float) getSpec().getMHP()) * 0.37f); if (power > 1) { return getSpec().getMaxSpeed() / (power); } @@ -281,15 +282,19 @@ public void limitSpeedOnTCRail() { //maxSpeed *= this.speedLimiter; adjustSpeed(maxSpeed, speedLimiter); } + if (motionX < -maxSpeed) { motionX = -maxSpeed; } + if (motionX > maxSpeed) { motionX = maxSpeed; } + if (motionZ < -maxSpeed) { motionZ = -maxSpeed; } + if (motionZ > maxSpeed) { motionZ = maxSpeed; } @@ -303,7 +308,9 @@ public void limitSpeedOnTCRail() { * @return */ public int setFuelConsumption(int c) { - if (c != 0) { return fuelRate = c; } + if (c != 0) { + return fuelRate = c; + } return fuelRate = getSpec().getFuelConsumption(); } @@ -314,7 +321,7 @@ public int setFuelConsumption(int c) { * @return int */ public int getFuelConsumption() { - return fuelRate==0?getSpec().getFuelConsumption():fuelRate; + return fuelRate == 0 ? getSpec().getFuelConsumption() : fuelRate; } /** @@ -334,9 +341,8 @@ public int getPower() { public double setAccel(double rate) { if (rate != 0) { return accelerate = rate; - } - else { - return accelerate = getSpec().getAccelerationRate(); + } else { + return accelerate = getSpec().getAccelerationRate(); } } @@ -348,8 +354,7 @@ public double setAccel(double rate) { public double setBrake(double rate) { if (rate != 0) { return brake = rate; - } - else { + } else { return brake = getSpec().getBrakeRate(); } } @@ -359,13 +364,15 @@ protected void writeEntityToNBT(NBTTagCompound nbttagcompound) { super.writeEntityToNBT(nbttagcompound); nbttagcompound.setBoolean("canBeAdjusted", canBeAdjusted); nbttagcompound.setBoolean("canBePulled", canBePulled); - nbttagcompound.setInteger("overheatLevel", getOverheatLevel()); + nbttagcompound.setInteger("overheatLevel", getOverheatLevel()); nbttagcompound.setString("lastRider", lastRider); nbttagcompound.setString("destination", destination); nbttagcompound.setBoolean("parkingBrake", parkingBrake); + if (!(this instanceof SteamTrain)) { nbttagcompound.setBoolean("isLocoTurnedOn", isLocoTurnedOn); } + nbttagcompound.setString("trainID", trainID); nbttagcompound.setInteger("speedLimit", speedLimit); nbttagcompound.setString("trainLevel", trainLevel); @@ -399,9 +406,11 @@ protected void readEntityFromNBT(NBTTagCompound ntc) { lastRider = ntc.getString("lastRider"); destination = ntc.getString("destination"); this.parkingBrake = ntc.getBoolean("parkingBrake"); + if (!(this instanceof SteamTrain)) { isLocoTurnedOn = ntc.getBoolean("isLocoTurnedOn"); } + trainID = ntc.getString("trainID"); speedLimit = ntc.getInteger("speedLimit"); trainLevel = ntc.getString("trainLevel"); @@ -448,36 +457,44 @@ public void setCanBeAdjusted(boolean canBeAdj) { public void keyHandlerFromPacket(int i) { if (this.getTrainLockedFromPacket()) { if (this.riddenByEntity instanceof EntityPlayer - && !((EntityPlayer) this.riddenByEntity).getDisplayName().toLowerCase() - .equals(this.getTrainOwner().toLowerCase())) { + && !((EntityPlayer) this.riddenByEntity).getDisplayName().equalsIgnoreCase(this.getTrainOwner())) { return; } } pressKey(i); + if (i == 8 && ConfigHandler.SOUNDS) { soundHorn(); } - if (i == 10){ + + if (i == 10) { soundWhistle(); } + if (i == 4) { forwardPressed = true; } + if (i == 5) { backwardPressed = true; } + if (i == 12) { brakePressed = true; } + if (i == 13) { forwardPressed = false; } + if (i == 14) { backwardPressed = false; } + if (i == 15) { brakePressed = false; } + if (i == 16) { if (mtcStatus != 0 && this.mtcType == 2) { if (!(this instanceof SteamTrain && !ConfigHandler.ALLOW_ATO_ON_STEAMERS)) { @@ -491,7 +508,6 @@ public void keyHandlerFromPacket(int i) { } if (i == 17) { - if (mtcOverridePressed) { mtcOverridePressed = false; } else { @@ -508,17 +524,11 @@ public void keyHandlerFromPacket(int i) { this.trainLevel = "0"; disconnectFromServer(); } - - - } + if (i == 18) { if (mtcStatus != 0) { - if (overspeedOveridePressed ) { - overspeedOveridePressed = false; - } else { - overspeedOveridePressed = true; - } + overspeedOveridePressed = !overspeedOveridePressed; } } } @@ -557,7 +567,9 @@ public Float getCustomSpeedGUI() { } public String getDestinationGUI() { - if (worldObj.isRemote) { return (this.dataWatcher.getWatchableObjectString(3)); } + if (worldObj.isRemote) { + return (this.dataWatcher.getWatchableObjectString(3)); + } return destination; } @@ -565,8 +577,7 @@ private double convertSpeed(double speed) { //System.out.println("X "+motionX +" Z "+motionZ); if (ConfigHandler.REAL_TRAIN_SPEED) { speed *= 2;// applying ratio - } - else { + } else { speed *= 6; } speed *= 36; @@ -578,16 +589,17 @@ private double convertSpeed(double speed) { public void soundHorn() { TrainSoundRecord sound = Traincraft.instance.traincraftRegistry.getTrainSoundRecord(this.getClass()); - if (sound != null && !sound.getHornString().equals("") && whistleDelay == 0) { + if (sound != null && !sound.getHornString().isEmpty() && whistleDelay == 0) { worldObj.playSoundAtEntity(this, sound.getHornString(), sound.getHornVolume(), 1.0F); whistleDelay = 65; } - List entities = worldObj.getEntitiesWithinAABB(EntityAnimal.class, AxisAlignedBB.getBoundingBox( - this.posX-20,this.posY-5,this.posZ-20, - this.posX+20,this.posY+5,this.posZ+20)); - for(Object e : entities) { - if(e instanceof EntityAnimal) { + List entities = worldObj.getEntitiesWithinAABB(EntityAnimal.class, AxisAlignedBB.getBoundingBox( + this.posX - 20, this.posY - 5, this.posZ - 20, + this.posX + 20, this.posY + 5, this.posZ + 20)); + + for (Object e : entities) { + if (e instanceof EntityAnimal) { ((EntityAnimal) e).setTarget(this); ((EntityAnimal) e).getNavigator().setPath(null, 0); } @@ -601,8 +613,7 @@ public void soundWhistle() { @Override public void onUpdate() { - - if (worldObj.isRemote && ticksExisted %2 ==0 && !Minecraft.getMinecraft().ingameGUI.getChatGUI().getChatOpen()){ + if (worldObj.isRemote && ticksExisted % 2 == 0 && !Minecraft.getMinecraft().ingameGUI.getChatGUI().getChatOpen()) { if (Keyboard.isKeyDown(FMLClientHandler.instance().getClient().gameSettings.keyBindForward.getKeyCode()) && !forwardPressed) { Traincraft.keyChannel.sendToServer(new PacketKeyPress(4)); @@ -613,6 +624,7 @@ public void onUpdate() { Traincraft.keyChannel.sendToServer(new PacketKeyPress(13)); forwardPressed = false; } + if (Keyboard.isKeyDown(FMLClientHandler.instance().getClient().gameSettings.keyBindBack.getKeyCode()) && !backwardPressed) { Traincraft.keyChannel.sendToServer(new PacketKeyPress(5)); @@ -623,6 +635,7 @@ public void onUpdate() { Traincraft.keyChannel.sendToServer(new PacketKeyPress(14)); backwardPressed = false; } + if (Keyboard.isKeyDown(FMLClientHandler.instance().getClient().gameSettings.keyBindJump.getKeyCode()) && !brakePressed) { Traincraft.keyChannel.sendToServer(new PacketKeyPress(12)); @@ -633,7 +646,6 @@ public void onUpdate() { Traincraft.keyChannel.sendToServer(new PacketKeyPress(15)); brakePressed = false; } - } // if (worldObj.isRemote) { @@ -650,32 +662,33 @@ public void onUpdate() { //EntityLivingBase entity = (EntityLivingBase) this.riddenByEntity; if (forwardPressed || backwardPressed) { if (getFuel() > 0 && this.isLocoTurnedOn() && rand.nextInt(4) == 0 && !worldObj.isRemote) { - if (this.getTrainLockedFromPacket() && !((EntityPlayer) this.riddenByEntity).getDisplayName() - .toLowerCase().equals(this.getTrainOwner().toLowerCase())) { + if (this.getTrainLockedFromPacket() && !((EntityPlayer) this.riddenByEntity).getDisplayName().equalsIgnoreCase(this.getTrainOwner())) { return; } + if (riddenByEntity instanceof EntityPlayer) { int dir = MathHelper - .floor_double((((EntityPlayer) riddenByEntity).rotationYaw * 4F) / 360F + 0.5D) & 3; - if (dir == 2){ + .floor_double((riddenByEntity.rotationYaw * 4F) / 360F + 0.5D) & 3; + + if (dir == 2) { if (forwardPressed) { motionZ -= 0.0075 * this.accelerate; } else { motionZ += 0.0075 * this.accelerate; } - } else if (dir == 0){ + } else if (dir == 0) { if (forwardPressed) { motionZ += 0.0075 * this.accelerate; } else { motionZ -= 0.0075 * this.accelerate; } - } else if (dir == 1){ + } else if (dir == 1) { if (forwardPressed) { motionX -= 0.0075 * this.accelerate; } else { motionX += 0.0075 * this.accelerate; } - } else if (dir == 3){ + } else { if (forwardPressed) { motionX += 0.0075 * this.accelerate; } else { @@ -691,7 +704,9 @@ public void onUpdate() { } - if (updateTicks % 20 == 0) HandleMaxAttachedCarts.PullPhysic(this); + if (updateTicks % 20 == 0) { + HandleMaxAttachedCarts.PullPhysic(this); + } /** * Can't use datawatcher here. Locomotives use them all already * Check inventory The packet never arrives if it is sent when the @@ -716,6 +731,7 @@ public void onUpdate() { fuelUpdateTicks = 0; updateFuelTrain(this.getFuelConsumption()); } + fuelUpdateTicks++; if (!this.isLocoTurnedOn()) { @@ -727,6 +743,7 @@ public void onUpdate() { if (whistleDelay > 0) { whistleDelay--; } + if (this.riddenByEntity instanceof EntityPlayer) { this.lastRider = ((EntityPlayer) this.riddenByEntity).getDisplayName(); this.lastEntityRider = (this.riddenByEntity); @@ -736,41 +753,42 @@ public void onUpdate() { motionX *= 0.0; motionZ *= 0.0; } + if (ConfigHandler.SOUNDS) { TrainSoundRecord sound = Traincraft.instance.traincraftRegistry.getTrainSoundRecord(this.getClass()); - if (sound != null && !sound.getHornString().equals("") && whistleDelay == 0) { + if (sound != null && !sound.getHornString().isEmpty() && whistleDelay == 0) { if (getFuel() > 0 && this.isLocoTurnedOn()) { double speed = Math.sqrt(motionX * motionX + motionZ * motionZ); if (speed > -0.001D && speed < 0.01D && soundPosition == 0) { worldObj.playSoundAtEntity(this, sound.getIdleString(), sound.getIdleVolume(), 0.001F); - soundPosition = sound.getIdleSoundLenght(); + soundPosition = sound.getIdleSoundLength(); } - if (sound.getSoundChangeWithSpeed() && !sound.getHornString().equals("") && whistleDelay == 0) { + + if (sound.getSoundChangeWithSpeed() && !sound.getHornString().isEmpty() && whistleDelay == 0) { if (speed > 0.01D && speed < 0.06D && soundPosition == 0) { worldObj.playSoundAtEntity(this, sound.getRunString(), sound.getRunVolume(), 0.1F); - soundPosition = sound.getRunSoundLenght(); - } - else if (speed > 0.06D && speed < 0.2D && soundPosition == 0) { + soundPosition = sound.getRunSoundLength(); + } else if (speed > 0.06D && speed < 0.2D && soundPosition == 0) { worldObj.playSoundAtEntity(this, sound.getRunString(), sound.getRunVolume(), 0.4F); - soundPosition = sound.getRunSoundLenght() / 2; - } - else if (speed > 0.2D && soundPosition == 0) { + soundPosition = sound.getRunSoundLength() / 2; + } else if (speed > 0.2D && soundPosition == 0) { worldObj.playSoundAtEntity(this, sound.getRunString(), sound.getRunVolume(), 0.5F); - soundPosition = sound.getRunSoundLenght() / 3; + soundPosition = sound.getRunSoundLength() / 3; } - } - else { + } else { if (speed > 0.01D && soundPosition == 0) { worldObj.playSoundAtEntity(this, sound.getRunString(), sound.getRunVolume(), 0.4F); - soundPosition = sound.getRunSoundLenght(); + soundPosition = sound.getRunSoundLength(); } } + if (soundPosition > 0) { soundPosition--; } } } } + if (getState().equals("cold")) { this.extinguish(); if (getCurrentMaxSpeed() >= (getMaxSpeed() * 0.6)) { @@ -778,6 +796,7 @@ else if (speed > 0.2D && soundPosition == 0) { motionZ *= 0.0; } } + if (getState().equals("warm")) { this.extinguish(); if (getCurrentMaxSpeed() >= (getMaxSpeed() * 0.7)) { @@ -785,15 +804,18 @@ else if (speed > 0.2D && soundPosition == 0) { motionZ *= 0.94; } } + if (getState().equals("hot")) { this.extinguish(); } + //if (getState().equals("very hot")) {} if (getState().equals("too hot")) { motionX *= 0.95; motionZ *= 0.95; worldObj.spawnParticle("largesmoke", posX, posY + 0.3, posZ, 0.0D, 0.0D, 0.0D); } + if (getState().equals("broken")) { setFire(8); this.setCustomSpeed(0);// set speed to normal @@ -804,18 +826,21 @@ else if (speed > 0.2D && soundPosition == 0) { worldObj.spawnParticle("largesmoke", posX, posY + 0.3, posZ, 0.0D, 0.0D, 0.0D); worldObj.spawnParticle("largesmoke", posX, posY + 0.3, posZ, 0.0D, 0.0D, 0.0D); blowUpDelay++; + if (blowUpDelay > 80) { if (!worldObj.isRemote) { //worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 0.5F, true); worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 0.5F, false); this.setDead(); } + if (!worldObj.isRemote && FMLCommonHandler.instance().getMinecraftServerInstance() != null && this.lastEntityRider instanceof EntityPlayer) { FMLCommonHandler.instance().getMinecraftServerInstance().getConfigurationManager().sendChatMsg(new ChatComponentText(((EntityPlayer) this.lastEntityRider).getDisplayName() + " blew " + this.getTrainOwner() + "'s locomotive")); FMLCommonHandler.instance().getMinecraftServerInstance().getConfigurationManager().sendChatMsg(new ChatComponentText(((EntityPlayer) this.lastEntityRider).getDisplayName() + " blew " + this.getTrainOwner() + "'s locomotive")); } } } + //Minecraft Train Control things. if (!worldObj.isRemote) { if (mtcStatus == 1 | mtcStatus == 2) { @@ -830,16 +855,14 @@ else if (speed > 0.2D && soundPosition == 0) { sendMessage(new PDMMessage(this.trainID, this.serverUUID, sendingObj.toString(), 1)); } } - if (getSpeed() > speedLimit && speedLimit != 0) { - isDriverOverspeed = true; - } else { - isDriverOverspeed = false; - } + isDriverOverspeed = getSpeed() > speedLimit && speedLimit != 0; + if (isDriverOverspeed && ticksExisted % 120 == 0 && !overspeedBrakingInProgress && !overspeedOveridePressed && atoStatus != 1) { //Start braking because the driver is an idiot. overspeedBrakingInProgress = true; } + if (overspeedBrakingInProgress && atoStatus != 1) { if (getSpeed() < speedLimit) { //Stop overspeed braking. @@ -865,39 +888,29 @@ else if (speed > 0.2D && soundPosition == 0) { speedLimit = nextSpeedLimit; this.nextSpeedLimit = 0; Traincraft.itsChannel.sendToAllAround(new PacketSetSpeed(this.speedLimit, (int) this.posX, (int) this.posY, (int) this.posZ, getEntityId()), new TargetPoint(this.worldObj.provider.dimensionId, this.posX, this.posY, this.posZ, 150.0D)); - Traincraft.itnsChannel.sendToAllAround(new PacketNextSpeed( nextSpeedLimit, 0,0,0, xSpeedLimitChange, ySpeedLimitChange, zSpeedLimitChange, this.getEntityId()), new NetworkRegistry.TargetPoint(this.worldObj.provider.dimensionId, this.posX, this.posY, this.posZ, 150.0D)); - speedGoingDown = false; - speedGoingDown = false; - speedGoingDown = false; + Traincraft.itnsChannel.sendToAllAround(new PacketNextSpeed(nextSpeedLimit, 0, 0, 0, xSpeedLimitChange, ySpeedLimitChange, zSpeedLimitChange, this.getEntityId()), new NetworkRegistry.TargetPoint(this.worldObj.provider.dimensionId, this.posX, this.posY, this.posZ, 150.0D)); speedGoingDown = false; } } - if (distanceFromStopPoint >= 40 && distanceFromStopPoint < this.speedLimit && !(xFromStopPoint == 0.0) && mtcType == 1){ - this.speedLimit = (int)Math.round(distanceFromStopPoint); + if (distanceFromStopPoint >= 40 && distanceFromStopPoint < this.speedLimit && !(xFromStopPoint == 0.0) && mtcType == 1) { + this.speedLimit = (int) Math.round(distanceFromStopPoint); Traincraft.itsChannel.sendToAllAround(new PacketSetSpeed(this.speedLimit, (int) this.posX, (int) this.posY, (int) this.posZ, getEntityId()), new TargetPoint(this.worldObj.provider.dimensionId, this.posX, this.posY, this.posZ, 150.0D)); speedGoingDown = true; - } else { - } - if (distanceFromStopPoint >= 10 && distanceFromStopPoint < this.speedLimit && !(xFromStopPoint == 0.0) && mtcType == 2){ - this.speedLimit = (int)Math.round(distanceFromStopPoint); + + if (distanceFromStopPoint >= 10 && distanceFromStopPoint < this.speedLimit && !(xFromStopPoint == 0.0) && mtcType == 2) { + this.speedLimit = (int) Math.round(distanceFromStopPoint); Traincraft.itsChannel.sendToAllAround(new PacketSetSpeed(this.speedLimit, (int) this.posX, (int) this.posY, (int) this.posZ, getEntityId()), new TargetPoint(this.worldObj.provider.dimensionId, this.posX, this.posY, this.posZ, 150.0D)); speedGoingDown = true; - } else { - } - /*if (distanceFromStopPoint < this.getSpeed() && !(distanceFromStopPoint < nextSpeedLimit) && !(this instanceof EntityLocoElectricPeachDriverlessMetro)) { speedLimit = (int) Math.round(distanceFromStopPoint); Traincraft.itsChannel.sendToAllAround(new PacketSetSpeed(this.speedLimit, (int) this.posX, (int) this.posY, (int) this.posZ, getEntityId()), new TargetPoint(this.worldObj.provider.dimensionId, this.posX, this.posY, this.posZ, 150.0D) ); }*/ - - - //For Automatic Train Operation if (this.atoStatus == 1) { distanceFromStationStop = this.getDistance(this.xStationStop, this.yStationStop, this.zStationStop); @@ -905,6 +918,7 @@ else if (speed > 0.2D && soundPosition == 0) { this.parkingBrake = false; //Accelerate to the speed limit } + if (!(distanceFromStopPoint < this.getSpeed()) && (!(distanceFromSpeedChange < this.getSpeed()))) { accel(this.speedLimit); } @@ -913,8 +927,8 @@ else if (speed > 0.2D && soundPosition == 0) { if (distanceFromStopPoint < this.getSpeed()) { //Stop it at a certain point stop(Vec3.createVectorHelper(this.xFromStopPoint, this.yFromStopPoint, this.zFromStopPoint)); - } + if (distanceFromStationStop < this.getSpeed()) { stop(Vec3.createVectorHelper(this.xStationStop, this.yStationStop, this.zStationStop)); stationStopping = true; @@ -932,34 +946,33 @@ else if (speed > 0.2D && soundPosition == 0) { //The ATO system is speeding somehow, slow it down slow(this.speedLimit); } + if (this.distanceFromStopPoint < 2 || this.distanceFromStationStop < 2) { this.parkingBrake = true; this.isBraking = true; - if (this.distanceFromStopPoint < 2 ) { + + if (this.distanceFromStopPoint < 2) { this.xFromStopPoint = 0.0; this.yFromStopPoint = 0.0; this.zFromStopPoint = 0.0; - } else if (this.distanceFromStationStop < 2) { + } else { this.xStationStop = 0.0; this.yStationStop = 0.0; this.zStationStop = 0.0; } + this.atoStatus = 0; this.stationStop = true; - Traincraft.atoChannel.sendToAllAround(new PacketATO(this.getEntityId(), 0),new NetworkRegistry.TargetPoint(this.worldObj.provider.dimensionId, this.posX, this.posY, this.posZ, 150.0D)); + Traincraft.atoChannel.sendToAllAround(new PacketATO(this.getEntityId(), 0), new NetworkRegistry.TargetPoint(this.worldObj.provider.dimensionId, this.posX, this.posY, this.posZ, 150.0D)); Traincraft.atoSetStopPoint.sendToAllAround(new PacketATOSetStopPoint(this.getEntityId(), 0.0, 0.0, 0.0, 0.0, 0.0, 0.0), new NetworkRegistry.TargetPoint(this.worldObj.provider.dimensionId, this.posX, this.posY, this.posZ, 150.0D)); Traincraft.brakeChannel.sendToAllAround(new PacketParkingBrake(true, this.getEntityId()), new NetworkRegistry.TargetPoint(this.worldObj.provider.dimensionId, this.posX, this.posY, this.posZ, 150.0D)); JsonObject sendingObj = new JsonObject(); sendingObj.addProperty("funct", "stationstopcomplete"); sendMessage(new PDMMessage(this.trainID, serverUUID, sendingObj.toString(), 0)); - } - - } - } } @@ -984,6 +997,7 @@ else if (speed > 0.2D && soundPosition == 0) { FMLCommonHandler.instance().getMinecraftServerInstance().getConfigurationManager().sendChatMsg(new ChatComponentText(((EntityPlayer) this.lastEntityRider).getDisplayName() + " drowned " + this.getTrainOwner() + "'s locomotive")); FMLCommonHandler.instance().getMinecraftServerInstance().getConfigurationManager().sendChatMsg(new ChatComponentText(((EntityPlayer) this.lastEntityRider).getDisplayName() + " drowned " + this.getTrainOwner() + "'s locomotive")); } + //this.attackEntityFrom(DamageSource.generic, 100); this.setCustomSpeed(0);// set speed to normal this.setAccel(0.000001);// simulate a break down @@ -994,6 +1008,7 @@ else if (speed > 0.2D && soundPosition == 0) { this.hasDrowned = true; this.canCheckInvent = false; blowUpDelay++; + if (blowUpDelay > 20) { this.attackEntityFrom(DamageSource.drown, 100); } @@ -1084,7 +1099,9 @@ public void setState(String state) { * @return */ public int getFuel() { - if (worldObj.isRemote) { return (this.dataWatcher.getWatchableObjectInt(24)); } + if (worldObj.isRemote) { + return (this.dataWatcher.getWatchableObjectInt(24)); + } return fuelTrain; } @@ -1092,13 +1109,17 @@ public int getFuel() { * Is it fuelled? used in GUI */ public boolean getIsFuelled() { - if (worldObj.isRemote) { return (this.dataWatcher.getWatchableObjectInt(24)) > 0; } + if (worldObj.isRemote) { + return (this.dataWatcher.getWatchableObjectInt(24)) > 0; + } return (this.fuelTrain > 0); } /** Used for the gui */ public int getFuelDiv(int i) { - if (worldObj.isRemote) { return ((this.dataWatcher.getWatchableObjectInt(24) * i) / 1200); } + if (worldObj.isRemote) { + return ((this.dataWatcher.getWatchableObjectInt(24) * i) / 1200); + } return (this.fuelTrain * i) / 1200; } @@ -1110,14 +1131,17 @@ protected void updateFuelTrain(int consumption) { if (fuelTrain < 0) { motionX *= 0.8; motionZ *= 0.8; - } - else { + } else { if (this.isLocoTurnedOn()) { fuelTrain -= consumption; - if (fuelTrain < 0) fuelTrain = 0; + + if (fuelTrain < 0) { + fuelTrain = 0; + } } } } + public void setLocoTurnedOnFromPacket(boolean set) { isLocoTurnedOn = set; } @@ -1208,8 +1232,14 @@ public int addItem(ItemStack stack, boolean doAdd, ForgeDirection from) { @Override public boolean attackEntityFrom(DamageSource damagesource, float i) { - if (worldObj.isRemote) { return true; } - if (canBeDestroyedByPlayer(damagesource)) return true; + if (worldObj.isRemote) { + return true; + } + + if (canBeDestroyedByPlayer(damagesource)) { + return true; + } + super.attackEntityFrom(damagesource, i); setRollingDirection(-getRollingDirection()); setRollingAmplitude(10); @@ -1219,11 +1249,13 @@ public boolean attackEntityFrom(DamageSource damagesource, float i) { if (riddenByEntity != null) { riddenByEntity.mountEntity(this); } + this.setDead(); disconnectFromServer(); ServerLogger.deleteWagon(this); + if (damagesource.getEntity() instanceof EntityPlayer) { - dropCartAsItem(((EntityPlayer)damagesource.getEntity()).capabilities.isCreativeMode); + dropCartAsItem(((EntityPlayer) damagesource.getEntity()).capabilities.isCreativeMode); } else { dropCartAsItem(false); } @@ -1232,8 +1264,8 @@ public boolean attackEntityFrom(DamageSource damagesource, float i) { } @Override - public void dropCartAsItem(boolean isCreative){ - if(!itemdropped) { + public void dropCartAsItem(boolean isCreative) { + if (!itemdropped) { super.dropCartAsItem(isCreative); for (ItemStack stack : locoInvent) { if (stack != null) { @@ -1265,8 +1297,7 @@ public ItemStack getStackInSlotOnClosing(int par1) { ItemStack var2 = this.locoInvent[par1]; this.locoInvent[par1] = null; return var2; - } - else { + } else { return null; } } @@ -1279,14 +1310,15 @@ public ItemStack decrStackSize(int i, int j) { locoInvent[i] = null; return itemstack; } + ItemStack itemstack1 = locoInvent[i].splitStack(j); + if (locoInvent[i].stackSize == 0) { locoInvent[i] = null; } return itemstack1; - } - else { + } else { return null; } } @@ -1300,24 +1332,22 @@ public void setInventorySlotContents(int i, ItemStack itemstack) { } @Override - public void openInventory() {} + public void openInventory() { + } @Override - public void closeInventory() {} + public void closeInventory() { + } @Override public void markDirty() { - if (!worldObj.isRemote) { - this.slotsFilled = 0; for (int i = 0; i < getSizeInventory(); i++) { - ItemStack itemstack = getStackInSlot(i); if (itemstack != null) { - slotsFilled++; } } @@ -1340,79 +1370,57 @@ public int getInventoryStackLimit() { } @Override - public ItemStack[] getInventory(){return locoInvent;} + public ItemStack[] getInventory() { + return locoInvent; + } /** For MTC's Automatic Train Operation system */ public void accel(Integer desiredSpeed) { if (this.worldObj != null) { - if (this.getSpeed() != desiredSpeed) { if ((int) this.getSpeed() <= this.speedLimit) { if (this.riddenByEntity == null) { - double rotation = this.serverRealRotation; if (rotation == 90.0) { - this.motionX -= 0.0020 * this.accelerate; - - } else if (rotation == -90.0) { - this.motionX += 0.0020 * this.accelerate; - } else if (rotation == 0.0) { - this.motionZ += 0.0020 * this.accelerate; - } else if (rotation == -180.0) { - this.motionZ -= 0.0020 * this.accelerate; - } else { - } - } else { - int dir = MathHelper - .floor_double((((EntityPlayer) riddenByEntity).rotationYaw * 4F) / 360F + 0.5D) & 3; + int dir = MathHelper.floor_double((riddenByEntity.rotationYaw * 4F) / 360F + 0.5D) & 3; if (dir == 2) { - this.motionZ -= 0.0020 * this.accelerate; - - } else if (dir == 0) { - this.motionZ += 0.0020 * this.accelerate; - } else if (dir == 1) { - this.motionX -= 0.0020 * this.accelerate; - - } else if (dir == 3) { - + } else { this.motionX += 0.0020 * this.accelerate; - } - } } - } } } public void slow(Integer desiredSpeed) { - if (this.getSpeed() >= desiredSpeed){ + if (this.getSpeed() >= desiredSpeed) { motionX *= brake; motionZ *= brake; } } + public void stop(Vec3 signalPosition) { double currentDistance = Math.copySign(Vec3.createVectorHelper(this.posX, this.posY, this.posZ).distanceTo(signalPosition), 1.0D); double originalDistance; - originalDistance=currentDistance; + originalDistance = currentDistance; double slowPercentage = 0.5D; - if(1.0D - currentDistance != 0.0D && originalDistance != 0.0D) { + if (1.0D - currentDistance != 0.0D && originalDistance != 0.0D) { slowPercentage = currentDistance / this.getSpeed(); } @@ -1420,18 +1428,19 @@ public void stop(Vec3 signalPosition) { this.motionZ *= slowPercentage; } + @Override public void receiveMessage(PDMMessage message) { JsonParser parser = new JsonParser(); - JsonObject thing = parser.parse(message.message.toString()).getAsJsonObject(); + JsonObject thing = parser.parse(PDMMessage.message.toString()).getAsJsonObject(); //System.out.println("Got one!"); if (message != null) { if (thing.get("funct").getAsString().equals("startlevel2")) { //That's actually really great, now let's get where it sent from owo // System.out.println("Connected!"); - serverUUID = message.UUIDFrom; + serverUUID = PDMMessage.UUIDFrom; mtcType = 2; mtcStatus = thing.get("mtcStatus").getAsInt(); isConnected = true; @@ -1454,11 +1463,12 @@ public void receiveMessage(PDMMessage message) { speedLimit = thing.get("speedLimit").getAsInt(); Traincraft.itsChannel.sendToAllAround(new PacketSetSpeed(speedLimit, 0, 0, 0, getEntityId()), new NetworkRegistry.TargetPoint(this.worldObj.provider.dimensionId, this.posX, this.posY, this.posZ, 150.0D)); } + if (thing.get("speedChange").getAsBoolean()) { xSpeedLimitChange = thing.get("nextSpeedLimitChangeX").getAsDouble(); ySpeedLimitChange = thing.get("nextSpeedLimitChangeY").getAsDouble(); zSpeedLimitChange = thing.get("nextSpeedLimitChangeZ").getAsDouble(); - Traincraft.itnsChannel.sendToAllAround(new PacketNextSpeed( nextSpeedLimit, 0,0,0, xSpeedLimitChange, ySpeedLimitChange, zSpeedLimitChange, this.getEntityId()), new NetworkRegistry.TargetPoint(this.worldObj.provider.dimensionId, this.posX, this.posY, this.posZ, 150.0D)); + Traincraft.itnsChannel.sendToAllAround(new PacketNextSpeed(nextSpeedLimit, 0, 0, 0, xSpeedLimitChange, ySpeedLimitChange, zSpeedLimitChange, this.getEntityId()), new NetworkRegistry.TargetPoint(this.worldObj.provider.dimensionId, this.posX, this.posY, this.posZ, 150.0D)); } if (thing.get("endSoon").getAsBoolean()) { @@ -1469,22 +1479,23 @@ public void receiveMessage(PDMMessage message) { Traincraft.atoSetStopPoint.sendToAllAround(new PacketATOSetStopPoint(this.getEntityId(), xFromStopPoint, yFromStopPoint, zFromStopPoint, xStationStop, yStationStop, zStationStop), new NetworkRegistry.TargetPoint(this.worldObj.provider.dimensionId, this.posX, this.posY, this.posZ, 150.0D)); } } + if (thing.get("stationStopSoon").getAsBoolean() && !stationStop) { xStationStop = thing.get("xStationStop").getAsDouble(); yStationStop = thing.get("yStationStop").getAsDouble(); zStationStop = thing.get("zStationStop").getAsDouble(); - Traincraft.atoSetStopPoint.sendToAllAround(new PacketATOSetStopPoint(this.getEntityId(), xFromStopPoint, yFromStopPoint, zFromStopPoint, xStationStop, yStationStop, zStationStop), new NetworkRegistry.TargetPoint(this.worldObj.provider.dimensionId, this.posX, this.posY, this.posZ, 150.0D)); - } if (thing.get("atoStatus") != null) { - this.atoStatus = thing.get("atoStatus").getAsInt(); - Traincraft.atoChannel.sendToAllAround(new PacketATO(this.getEntityId(), thing.get("atoStatus").getAsInt()),new NetworkRegistry.TargetPoint(this.worldObj.provider.dimensionId, this.posX, this.posY, this.posZ, 150.0D)); } - + if (thing.get("atoStatus") != null) { + this.atoStatus = thing.get("atoStatus").getAsInt(); + Traincraft.atoChannel.sendToAllAround(new PacketATO(this.getEntityId(), thing.get("atoStatus").getAsInt()), new NetworkRegistry.TargetPoint(this.worldObj.provider.dimensionId, this.posX, this.posY, this.posZ, 150.0D)); + } } } } + @Override public void sendMessage(PDMMessage message) { // System.out.println("Sendmessage.."); @@ -1494,18 +1505,15 @@ public void sendMessage(PDMMessage message) { if (te instanceof TilePDMInstructionRadio) { - TilePDMInstructionRadio teP = (TilePDMInstructionRadio)te; + TilePDMInstructionRadio teP = (TilePDMInstructionRadio) te; - if (teP.uniqueID.equals(message.UUIDTo)) { + if (teP.uniqueID.equals(PDMMessage.UUIDTo)) { //System.out.println(message.message); teP.receiveMessage(message); } - } } - - } public void attemptConnection(String theServerUUID) { @@ -1530,6 +1538,4 @@ public void disconnectFromServer() { isConnected = false; } } - - } diff --git a/src/main/java/train/common/api/Tender.java b/src/main/java/train/common/api/Tender.java index 6f0ca6b687..27d797bf7a 100644 --- a/src/main/java/train/common/api/Tender.java +++ b/src/main/java/train/common/api/Tender.java @@ -14,311 +14,302 @@ public abstract class Tender extends Freight implements IFluidHandler { - public ItemStack tenderItems[]; - private int maxTank; - private int update = 8; - private StandardTank theTank; - private IFluidTank[] tankArray = new IFluidTank[1]; - public TileEntity[] blocksToCheck; - /** - * - * @param world - * @param fluid - * @param quantity - * @param capacity - */ - public Tender(World world, Fluid fluid, int quantity) { - this(new FluidStack(fluid, quantity), world, null); - } - - public Tender(World world, Fluid fluid, int quantity, FluidStack filter) { - this(new FluidStack(fluid, quantity), world, filter); - } - - private Tender(FluidStack fluid, World world, FluidStack filter) { - super(world); - this.maxTank = getSpec().getTankCapacity(); - if (filter == null) - this.theTank = LiquidManager.getInstance().new StandardTank(maxTank); - if (filter != null) - this.theTank = LiquidManager.getInstance().new FilteredTank(maxTank, filter); - tankArray[0] = theTank; - dataWatcher.addObject(4, 0); - this.dataWatcher.addObject(23, 0); - } - @Override - public abstract int getSizeInventory(); - @Override - protected void writeEntityToNBT(NBTTagCompound nbttagcompound) { - super.writeEntityToNBT(nbttagcompound); - this.theTank.writeToNBT(nbttagcompound); - } - @Override - protected void readEntityFromNBT(NBTTagCompound nbttagcompound) { - super.readEntityFromNBT(nbttagcompound); - this.theTank.readFromNBT(nbttagcompound); - } - - @Override - public void onUpdate() { - super.onUpdate(); - if (worldObj.isRemote) - return; - if (theTank != null && theTank.getFluid() != null) { - this.dataWatcher.updateObject(23, theTank.getFluid().amount); - this.dataWatcher.updateObject(4, theTank.getFluid().getFluidID()); - } - else if (theTank != null && theTank.getFluid() == null) { - this.dataWatcher.updateObject(23, 0); - this.dataWatcher.updateObject(4, 0); - } - } - /** - * handle mass depending on items and liquid - */ - @Override - protected void handleMass(){ - if(this.updateTicks%10!=0)return; - double preciseAmount=0; - this.mass=this.getDefaultMass(); - if(theTank != null && theTank.getFluid() != null && theTank.getFluid().amount>0){ - preciseAmount = theTank.getFluid().amount; - } - this.itemInsideCount=0; - for (int i = 0; i < getSizeInventory(); i++) { - ItemStack itemstack = getStackInSlot(i); - if (itemstack != null && itemstack.stackSize > 0) { - this.itemInsideCount+=itemstack.stackSize; - } - } - mass+=(this.itemInsideCount*0.0001);//1 item = 1 kilo - mass+=(preciseAmount/10000);//1 bucket = 1 kilo - } - - /** - * added for SMP, used by the HUD - * - * @return - */ - public int getWater() { - return (this.dataWatcher.getWatchableObjectInt(23)); - } - - /** - * used by the GUI - * - * @return int - */ - public int getLiquidItemID() { - return (this.dataWatcher.getWatchableObjectInt(4)); - } - - public int getCartTankCapacity() { - return maxTank; - } - - public StandardTank getTank() { - return theTank; - } - - private void placeInInvent(ItemStack itemstack1, Tender tender) { - for (int i = 1; i < tender.tenderItems.length; i++) { - if (tender.tenderItems[i] == null) { - tender.tenderItems[i] = itemstack1; - return; - } - else if (tender.tenderItems[i] != null && tender.tenderItems[i].getItem() == itemstack1.getItem() && itemstack1.isStackable() && - (!itemstack1.getHasSubtypes() || tender.tenderItems[i].getItemDamage() == itemstack1.getItemDamage()) && ItemStack.areItemStackTagsEqual(tender.tenderItems[i], itemstack1)) { - int var9 = tender.tenderItems[i].stackSize + itemstack1.stackSize; - if (var9 <= tender.tenderItems[i].getMaxStackSize()) { - tender.tenderItems[i].stackSize = var9; - return; - } - else if (tender.tenderItems[i].stackSize < tender.tenderItems[i].getMaxStackSize()) { - tender.tenderItems[i].stackSize += 1; - return; - } - } - else if (i == tender.tenderItems.length - 1) { - entityDropItem(itemstack1,1); - return; - } - } - } - - public void liquidInSlot(ItemStack itemstack, Tender tender) { - if (worldObj.isRemote) - return; - this.update += 1; - if (this.update % 8 == 0 && itemstack != null) { - ItemStack result = LiquidManager.getInstance().processContainer(this, 0, this, itemstack); - if (result != null) { - placeInInvent(result, tender); - decrStackSize(0, 1); - } - } - } - - protected void checkInvent(ItemStack tenderInvent, Tender loco) { - if (tenderInvent != null) { - liquidInSlot(tenderInvent, loco); - } - - if(ticksExisted%5==0 && fill(ForgeDirection.UNKNOWN, new FluidStack(FluidRegistry.WATER,100), false)==100) { - FluidStack drain =null; - blocksToCheck = new TileEntity[]{worldObj.getTileEntity(MathHelper.floor_double(posX), MathHelper.floor_double(posY - 1), MathHelper.floor_double(posZ)), - worldObj.getTileEntity(MathHelper.floor_double(posX), MathHelper.floor_double(posY + 2), MathHelper.floor_double(posZ)), - worldObj.getTileEntity(MathHelper.floor_double(posX), MathHelper.floor_double(posY + 3), MathHelper.floor_double(posZ)), - worldObj.getTileEntity(MathHelper.floor_double(posX), MathHelper.floor_double(posY + 4), MathHelper.floor_double(posZ)) - }; - - for (TileEntity block : blocksToCheck) { - if (drain == null && block instanceof IFluidHandler) { - for (ForgeDirection direction : ForgeDirection.VALID_DIRECTIONS) { - if(((IFluidHandler) block).drain(direction,100,false)!=null && - ((IFluidHandler) block).drain(direction, 100, false).fluid==FluidRegistry.WATER && - ((IFluidHandler) block).drain(direction, 100, false).amount ==100 - ) { - drain = ((IFluidHandler) block).drain( - direction, 100, true); - } - } - } - } - if (drain ==null && cartLinked1 instanceof LiquidTank - && !(cartLinked1 instanceof EntityBUnitEMDF7) && !(cartLinked1 instanceof EntityBUnitEMDF3) && !(cartLinked1 instanceof EntityBUnitDD35)) { - if (getFluid() == null) { - drain = ((LiquidTank) cartLinked1).drain(ForgeDirection.UNKNOWN, new FluidStack(FluidRegistry.WATER, 100), true); - } else if (getFluid().getFluid() == FluidRegistry.WATER) { - drain = ((LiquidTank) cartLinked1).drain(ForgeDirection.UNKNOWN, new FluidStack(FluidRegistry.WATER, 100), true); - } - } else if (drain ==null && cartLinked2 instanceof LiquidTank - && !(cartLinked1 instanceof EntityBUnitEMDF7) && !(cartLinked1 instanceof EntityBUnitEMDF3) && !(cartLinked1 instanceof EntityBUnitDD35)) { - if (getFluid() == null) { - drain = ((LiquidTank) cartLinked2).drain(ForgeDirection.UNKNOWN, new FluidStack(FluidRegistry.WATER, 100), true); - } else if (getFluid().getFluid() == FluidRegistry.WATER) { - drain = ((LiquidTank) cartLinked2).drain(ForgeDirection.UNKNOWN, new FluidStack(FluidRegistry.WATER, 100), true); - } - } - if (drain != null) { - fill(ForgeDirection.UNKNOWN, drain, true); - } - } - } - /*IInventory implements*/ - @Override - public ItemStack getStackInSlot(int i) { - return tenderItems[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int par1) { - if (this.tenderItems[par1] != null) { - ItemStack var2 = this.tenderItems[par1]; - this.tenderItems[par1] = null; - return var2; - } - else { - return null; - } - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if (tenderItems[i] != null) { - if (tenderItems[i].stackSize <= j) { - ItemStack itemstack = tenderItems[i]; - tenderItems[i] = null; - return itemstack; - } - ItemStack itemstack1 = tenderItems[i].splitStack(j); - if (tenderItems[i].stackSize == 0) { - tenderItems[i] = null; - } - return itemstack1; - } - else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemstack) { - tenderItems[i] = itemstack; - if (itemstack != null && itemstack.stackSize > getInventoryStackLimit()) { - itemstack.stackSize = getInventoryStackLimit(); - } - } - - public void setLiquid(FluidStack liquid) { - } - - public void setCapacity(int capacity) { - this.maxTank = capacity; - } - - public int getCapacity() { - return this.maxTank; - } - @Override - public int fill(ForgeDirection from, FluidStack resource, boolean doFill) - { + public ItemStack[] tenderItems; + private int maxTank; + private int update = 8; + private StandardTank theTank; + public TileEntity[] blocksToCheck; + + /** + * + * @param world world + * @param fluid fluid + * @param quantity quantity + */ + public Tender(World world, Fluid fluid, int quantity) { + this(new FluidStack(fluid, quantity), world, null); + } + + public Tender(World world, Fluid fluid, int quantity, FluidStack filter) { + this(new FluidStack(fluid, quantity), world, filter); + } + + private Tender(FluidStack fluid, World world, FluidStack filter) { + super(world); + this.maxTank = getSpec().getTankCapacity(); + if (filter == null) + this.theTank = LiquidManager.getInstance().new StandardTank(maxTank); + if (filter != null) + this.theTank = LiquidManager.getInstance().new FilteredTank(maxTank, filter); + IFluidTank[] tankArray = new IFluidTank[1]; + tankArray[0] = theTank; + dataWatcher.addObject(4, 0); + this.dataWatcher.addObject(23, 0); + } + + @Override + public abstract int getSizeInventory(); + + @Override + protected void writeEntityToNBT(NBTTagCompound nbttagcompound) { + super.writeEntityToNBT(nbttagcompound); + this.theTank.writeToNBT(nbttagcompound); + } + + @Override + protected void readEntityFromNBT(NBTTagCompound nbttagcompound) { + super.readEntityFromNBT(nbttagcompound); + this.theTank.readFromNBT(nbttagcompound); + } + + @Override + public void onUpdate() { + super.onUpdate(); + if (worldObj.isRemote) + return; + if (theTank != null && theTank.getFluid() != null) { + this.dataWatcher.updateObject(23, theTank.getFluid().amount); + this.dataWatcher.updateObject(4, theTank.getFluid().getFluidID()); + } else if (theTank != null && theTank.getFluid() == null) { + this.dataWatcher.updateObject(23, 0); + this.dataWatcher.updateObject(4, 0); + } + } + + /** + * handle mass depending on items and liquid + */ + @Override + protected void handleMass() { + if (this.updateTicks % 10 != 0) return; + double preciseAmount = 0; + this.mass = this.getDefaultMass(); + if (theTank != null && theTank.getFluid() != null && theTank.getFluid().amount > 0) { + preciseAmount = theTank.getFluid().amount; + } + this.itemInsideCount = 0; + for (int i = 0; i < getSizeInventory(); i++) { + ItemStack itemstack = getStackInSlot(i); + if (itemstack != null && itemstack.stackSize > 0) { + this.itemInsideCount += itemstack.stackSize; + } + } + mass += (this.itemInsideCount * 0.0001);//1 item = 1 kilo + mass += (preciseAmount / 10000);//1 bucket = 1 kilo + } + + /** + * added for SMP, used by the HUD + * + * @return + */ + public int getWater() { + return (this.dataWatcher.getWatchableObjectInt(23)); + } + + /** + * used by the GUI + * + * @return int + */ + public int getLiquidItemID() { + return (this.dataWatcher.getWatchableObjectInt(4)); + } + + public int getCartTankCapacity() { + return maxTank; + } + + public StandardTank getTank() { + return theTank; + } + + private void placeInInvent(ItemStack itemstack1, Tender tender) { + for (int i = 1; i < tender.tenderItems.length; i++) { + if (tender.tenderItems[i] == null) { + tender.tenderItems[i] = itemstack1; + return; + } else if (tender.tenderItems[i] != null && tender.tenderItems[i].getItem() == itemstack1.getItem() && itemstack1.isStackable() && + (!itemstack1.getHasSubtypes() || tender.tenderItems[i].getItemDamage() == itemstack1.getItemDamage()) && ItemStack.areItemStackTagsEqual(tender.tenderItems[i], itemstack1)) { + int var9 = tender.tenderItems[i].stackSize + itemstack1.stackSize; + if (var9 <= tender.tenderItems[i].getMaxStackSize()) { + tender.tenderItems[i].stackSize = var9; + return; + } else if (tender.tenderItems[i].stackSize < tender.tenderItems[i].getMaxStackSize()) { + tender.tenderItems[i].stackSize += 1; + return; + } + } else if (i == tender.tenderItems.length - 1) { + entityDropItem(itemstack1, 1); + return; + } + } + } + + public void liquidInSlot(ItemStack itemstack, Tender tender) { + if (worldObj.isRemote) + return; + this.update += 1; + if (this.update % 8 == 0 && itemstack != null) { + ItemStack result = LiquidManager.getInstance().processContainer(this, 0, this, itemstack); + if (result != null) { + placeInInvent(result, tender); + decrStackSize(0, 1); + } + } + } + + protected void checkInvent(ItemStack tenderInvent, Tender loco) { + if (tenderInvent != null) { + liquidInSlot(tenderInvent, loco); + } + + if (ticksExisted % 5 == 0 && fill(ForgeDirection.UNKNOWN, new FluidStack(FluidRegistry.WATER, 100), false) == 100) { + FluidStack drain = null; + blocksToCheck = new TileEntity[]{worldObj.getTileEntity(MathHelper.floor_double(posX), MathHelper.floor_double(posY - 1), MathHelper.floor_double(posZ)), + worldObj.getTileEntity(MathHelper.floor_double(posX), MathHelper.floor_double(posY + 2), MathHelper.floor_double(posZ)), + worldObj.getTileEntity(MathHelper.floor_double(posX), MathHelper.floor_double(posY + 3), MathHelper.floor_double(posZ)), + worldObj.getTileEntity(MathHelper.floor_double(posX), MathHelper.floor_double(posY + 4), MathHelper.floor_double(posZ)) + }; + + for (TileEntity block : blocksToCheck) { + if (drain == null && block instanceof IFluidHandler) { + for (ForgeDirection direction : ForgeDirection.VALID_DIRECTIONS) { + if (((IFluidHandler) block).drain(direction, 100, false) != null && + ((IFluidHandler) block).drain(direction, 100, false).fluid == FluidRegistry.WATER && + ((IFluidHandler) block).drain(direction, 100, false).amount == 100 + ) { + drain = ((IFluidHandler) block).drain( + direction, 100, true); + } + } + } + } + if (drain == null && cartLinked1 instanceof LiquidTank + && !(cartLinked1 instanceof EntityBUnitEMDF7) && !(cartLinked1 instanceof EntityBUnitEMDF3) && !(cartLinked1 instanceof EntityBUnitDD35)) { + if (getFluid() == null) { + drain = ((LiquidTank) cartLinked1).drain(ForgeDirection.UNKNOWN, new FluidStack(FluidRegistry.WATER, 100), true); + } else if (getFluid().getFluid() == FluidRegistry.WATER) { + drain = ((LiquidTank) cartLinked1).drain(ForgeDirection.UNKNOWN, new FluidStack(FluidRegistry.WATER, 100), true); + } + } else if (drain == null && cartLinked2 instanceof LiquidTank + && !(cartLinked1 instanceof EntityBUnitEMDF7) && !(cartLinked1 instanceof EntityBUnitEMDF3) && !(cartLinked1 instanceof EntityBUnitDD35)) { + if (getFluid() == null) { + drain = ((LiquidTank) cartLinked2).drain(ForgeDirection.UNKNOWN, new FluidStack(FluidRegistry.WATER, 100), true); + } else if (getFluid().getFluid() == FluidRegistry.WATER) { + drain = ((LiquidTank) cartLinked2).drain(ForgeDirection.UNKNOWN, new FluidStack(FluidRegistry.WATER, 100), true); + } + } + if (drain != null) { + fill(ForgeDirection.UNKNOWN, drain, true); + } + } + } + + /*IInventory implements*/ + @Override + public ItemStack getStackInSlot(int i) { + return tenderItems[i]; + } + + @Override + public ItemStack getStackInSlotOnClosing(int par1) { + if (this.tenderItems[par1] != null) { + ItemStack var2 = this.tenderItems[par1]; + this.tenderItems[par1] = null; + return var2; + } else { + return null; + } + } + + @Override + public ItemStack decrStackSize(int i, int j) { + if (tenderItems[i] != null) { + if (tenderItems[i].stackSize <= j) { + ItemStack itemstack = tenderItems[i]; + tenderItems[i] = null; + return itemstack; + } + ItemStack itemstack1 = tenderItems[i].splitStack(j); + if (tenderItems[i].stackSize == 0) { + tenderItems[i] = null; + } + return itemstack1; + } else { + return null; + } + } + + @Override + public void setInventorySlotContents(int i, ItemStack itemstack) { + tenderItems[i] = itemstack; + if (itemstack != null && itemstack.stackSize > getInventoryStackLimit()) { + itemstack.stackSize = getInventoryStackLimit(); + } + } + + public void setLiquid(FluidStack liquid) { + } + + public void setCapacity(int capacity) { + this.maxTank = capacity; + } + + public int getCapacity() { + return this.maxTank; + } + + @Override + public int fill(ForgeDirection from, FluidStack resource, boolean doFill) { return theTank.fill(resource, doFill); } @Override - public FluidStack drain(ForgeDirection from, FluidStack resource, boolean doDrain) - { - if (resource == null || !resource.isFluidEqual(theTank.getFluid())) - { + public FluidStack drain(ForgeDirection from, FluidStack resource, boolean doDrain) { + if (resource == null || !resource.isFluidEqual(theTank.getFluid())) { return null; } return theTank.drain(resource.amount, doDrain); } @Override - public FluidStack drain(ForgeDirection from, int maxDrain, boolean doDrain) - { + public FluidStack drain(ForgeDirection from, int maxDrain, boolean doDrain) { return theTank.drain(maxDrain, doDrain); } @Override - public boolean canFill(ForgeDirection from, Fluid fluid) - { + public boolean canFill(ForgeDirection from, Fluid fluid) { return true; } @Override - public boolean canDrain(ForgeDirection from, Fluid fluid) - { + public boolean canDrain(ForgeDirection from, Fluid fluid) { return true; } @Override - public FluidTankInfo[] getTankInfo(ForgeDirection from) - { - return new FluidTankInfo[] { theTank.getInfo() }; + public FluidTankInfo[] getTankInfo(ForgeDirection from) { + return new FluidTankInfo[]{theTank.getInfo()}; } - - public FluidStack getFluid() - { + + public FluidStack getFluid() { return theTank.getFluid(); } - public int getFluidAmount() - { + public int getFluidAmount() { return theTank.getFluidAmount(); } - @Override - public void dropCartAsItem(boolean isCreative){ - if(!itemdropped) { - super.dropCartAsItem(isCreative); - for (ItemStack stack : tenderItems) { - if (stack != null) { - entityDropItem(stack, 0); - } - } - } - } + @Override + public void dropCartAsItem(boolean isCreative) { + if (!itemdropped) { + super.dropCartAsItem(isCreative); + for (ItemStack stack : tenderItems) { + if (stack != null) { + entityDropItem(stack, 0); + } + } + } + } } \ No newline at end of file diff --git a/src/main/java/train/common/api/TrainRecord.java b/src/main/java/train/common/api/TrainRecord.java index ff42ef1a2f..5682bfc011 100644 --- a/src/main/java/train/common/api/TrainRecord.java +++ b/src/main/java/train/common/api/TrainRecord.java @@ -1,5 +1,6 @@ package train.common.api; +import net.minecraft.entity.Entity; import net.minecraft.item.Item; import net.minecraft.world.World; @@ -49,7 +50,7 @@ public List getLiveries() { public abstract double getBogieLocoPosition(); - public abstract Class getEntityClass(); + public abstract Class getEntityClass(); public abstract int getGuiRenderScale(); @@ -156,7 +157,7 @@ public double getBogieLocoPosition() { } @Override - public Class getEntityClass() { + public Class getEntityClass() { return entityClass; } @@ -202,5 +203,4 @@ public AbstractTrains getEntity(World world, double x, double y, double z) { } }; } - } diff --git a/src/main/java/train/common/api/TrainSoundRecord.java b/src/main/java/train/common/api/TrainSoundRecord.java index e14d75dd4e..11b5e505b3 100644 --- a/src/main/java/train/common/api/TrainSoundRecord.java +++ b/src/main/java/train/common/api/TrainSoundRecord.java @@ -2,7 +2,7 @@ public interface TrainSoundRecord { - Class getEntityClass(); + Class getEntityClass(); String getHornString(); @@ -16,9 +16,9 @@ public interface TrainSoundRecord { Float getIdleVolume(); - int getRunSoundLenght(); + int getRunSoundLength(); - int getIdleSoundLenght(); + int getIdleSoundLength(); boolean getSoundChangeWithSpeed(); } diff --git a/src/main/java/train/common/api/TrainsItems.java b/src/main/java/train/common/api/TrainsItems.java index d2bebd2c75..81b5175f80 100644 --- a/src/main/java/train/common/api/TrainsItems.java +++ b/src/main/java/train/common/api/TrainsItems.java @@ -7,62 +7,62 @@ /** * This class contains a registry of all currently active Trains mod items. Which items are registered depends on the user's settings in "TrainConfig.cfg", so the available items may vary from one installation to the next. - * + * * Initialization of the registry will occur during the BaseMod.load() function. It is strongly recommended you wait until the BaseMod.modsLoaded() function to reference the registry. - * + * * @author CovertJaguar - * + * * Modified by Spitfire4466 under authorization of CovertJaguar */ public class TrainsItems { - private static final Map registry = new TreeMap(); + private static final Map registry = new TreeMap(); - /** - * This function will return an ItemStack containing the item that corresponds to the provided tag. - * - * Generally item tags will correspond to the tags used in "TrainConfig.cfg", but there will be some exceptions. - * - * This function can and will return null for just about every item if the item is disabled via the configuration files. You must test the return value for safety. - * - * For list of available tags see the printItemTags() function. - * - * @param tag The item tag - * @param qty The stackSize of the returned item - * @return The ItemStack or null if no item exists for that tag - */ - public ItemStack getItem(String tag, int qty) { - ItemStack stack = registry.get(tag); - if (stack != null) { - stack = stack.copy(); - stack.stackSize = qty; - } - return stack; - } + /** + * This function will return an ItemStack containing the item that corresponds to the provided tag. + * + * Generally item tags will correspond to the tags used in "TrainConfig.cfg", but there will be some exceptions. + * + * This function can and will return null for just about every item if the item is disabled via the configuration files. You must test the return value for safety. + * + * For list of available tags see the printItemTags() function. + * + * @param tag The item tag + * @param qty The stackSize of the returned item + * @return The ItemStack or null if no item exists for that tag + */ + public ItemStack getItem(String tag, int qty) { + ItemStack stack = registry.get(tag); + if (stack != null) { + stack = stack.copy(); + stack.stackSize = qty; + } + return stack; + } - /** - * Registers a new item with the Registry. - * - * This should generally only be called by the mod itself while the mod is initializing during the Train.load() call. - * - * @param tag The tag name - * @param item The item - */ - public static void registerItem(String tag, ItemStack item) { - registry.put(tag, item); - } + /** + * Registers a new item with the Registry. + * + * This should generally only be called by the mod itself while the mod is initializing during the Train.load() call. + * + * @param tag The tag name + * @param item The item + */ + public static void registerItem(String tag, ItemStack item) { + registry.put(tag, item); + } - /** - * This function will print a list of all currently registered items to the console. - * - * Use this for development purposes. - */ - public static void printItemTags() { - System.out.println(); - System.out.println("Printing all registered Train mod items:"); - for (String tag : registry.keySet()) { - System.out.println(tag); - } - System.out.println(); - } + /** + * This function will print a list of all currently registered items to the console. + * + * Use this for development purposes. + */ + public static void printItemTags() { + System.out.println(); + System.out.println("Printing all registered Train mod items:"); + for (String tag : registry.keySet()) { + System.out.println(tag); + } + System.out.println(); + } } diff --git a/src/main/java/train/common/api/TrainsOnClick.java b/src/main/java/train/common/api/TrainsOnClick.java index 6e3b9985e8..23f6a72763 100644 --- a/src/main/java/train/common/api/TrainsOnClick.java +++ b/src/main/java/train/common/api/TrainsOnClick.java @@ -8,65 +8,82 @@ import train.common.library.ItemIDs; public class TrainsOnClick { - public boolean onClickWithStake(AbstractTrains train, ItemStack itemstack, EntityPlayer playerEntity, World world) { - if (itemstack != null && itemstack.getItem() == ItemIDs.stake.item && !world.isRemote && - (FMLCommonHandler.instance().getMinecraftServerInstance().isSinglePlayer() || !train.isLinked() || train.getTrainOwner().equals(playerEntity.getDisplayName()) || train.getTrainOwner().equals("") || train.getTrainOwner()==null)) { - if (playerEntity.isSneaking() && train instanceof Locomotive) { - if (!train.canBeAdjusted(train)) { - playerEntity.addChatMessage(new ChatComponentText(((EntityRollingStock) train).getTrainName() + " can be pulled, don't forget to fuel it!")); - playerEntity.addChatMessage(new ChatComponentText("Attach the BACK of this locomotive to the BACK of another locomotive. Otherwise you will encounter weird problems on turns")); - ((Locomotive) train).setCanBeAdjusted(true); - ((Locomotive) train).canBePulled = true; - ((Locomotive) train).disconnectFromServer(); + public boolean onClickWithStake(AbstractTrains train, ItemStack itemstack, EntityPlayer playerEntity, World world) { + if (itemstack != null && itemstack.getItem() == ItemIDs.stake.item && !world.isRemote && + (FMLCommonHandler.instance().getMinecraftServerInstance().isSinglePlayer() || !train.isLinked() || train.getTrainOwner().equals(playerEntity.getDisplayName()) || train.getTrainOwner().isEmpty() || train.getTrainOwner() == null)) { + if (playerEntity.isSneaking() && train instanceof Locomotive) { + if (!train.canBeAdjusted(train)) { + playerEntity.addChatMessage(new ChatComponentText(((EntityRollingStock) train).getTrainName() + " can be pulled, don't forget to fuel it!")); + playerEntity.addChatMessage(new ChatComponentText("Attach the BACK of this locomotive to the BACK of another locomotive. Otherwise you will encounter weird problems on turns")); + ((Locomotive) train).setCanBeAdjusted(true); + ((Locomotive) train).canBePulled = true; + ((Locomotive) train).disconnectFromServer(); + } else { + playerEntity.addChatMessage(new ChatComponentText(((EntityRollingStock) train).getTrainName() + " can pull")); + ((Locomotive) train).setCanBeAdjusted(false); + ((Locomotive) train).canBePulled = false; + } + return true; + } + + if (!train.isAttaching) { + train.isAttaching = true; + playerEntity.addChatMessage(new ChatComponentText("Attaching mode on for: " + ((EntityRollingStock) train).getTrainName())); + itemstack.damageItem(1, playerEntity); + } else { + playerEntity.addChatMessage(new ChatComponentText("Reset, click again to couple new cart to this one")); + train.Link1 = -1; + train.Link2 = -1; + if (train.cartLinked1 != null && train.cartLinked1.Link1 == train.getUniqueTrainID()) { + train.cartLinked1.Link1 = -1; } - else { - playerEntity.addChatMessage(new ChatComponentText(((EntityRollingStock) train).getTrainName() + " can pull")); - ((Locomotive) train).setCanBeAdjusted(false); - ((Locomotive) train).canBePulled = false; + + if (train.cartLinked1 != null && train.cartLinked1.Link2 == train.getUniqueTrainID()) { + train.cartLinked1.Link2 = -1; } - return true; - } - if (!train.isAttaching) { - train.isAttaching = true; - playerEntity.addChatMessage(new ChatComponentText("Attaching mode on for: " + ((EntityRollingStock) train).getTrainName())); - itemstack.damageItem(1, playerEntity); - } - else { - playerEntity.addChatMessage(new ChatComponentText("Reset, click again to couple new cart to this one")); - train.Link1 = -1; - train.Link2 = -1; - if(train.cartLinked1!=null && train.cartLinked1.Link1==train.getUniqueTrainID())train.cartLinked1.Link1=-1; - if(train.cartLinked1!=null && train.cartLinked1.Link2==train.getUniqueTrainID())train.cartLinked1.Link2=-1; - if(train.cartLinked2!=null && train.cartLinked2.Link1==train.getUniqueTrainID())train.cartLinked2.Link1=-1; - if(train.cartLinked2!=null && train.cartLinked2.Link2==train.getUniqueTrainID())train.cartLinked2.Link2=-1; - - if(train.cartLinked1!=null && train.cartLinked1.cartLinked1!=null &&train.cartLinked1.cartLinked1.equals(train))train.cartLinked1.cartLinked1=null; - if(train.cartLinked1!=null && train.cartLinked1.cartLinked2!=null &&train.cartLinked1.cartLinked2.equals(train))train.cartLinked1.cartLinked2=null; - if(train.cartLinked2!=null && train.cartLinked2.cartLinked2!=null &&train.cartLinked2.cartLinked2.equals(train))train.cartLinked2.cartLinked2=null; - if(train.cartLinked2!=null && train.cartLinked2.cartLinked1!=null &&train.cartLinked2.cartLinked1.equals(train))train.cartLinked2.cartLinked1=null; - - - train.cartLinked1 = null; - train.cartLinked2 = null; - train.isAttaching = false; - train.isAttached = false; + if (train.cartLinked2 != null && train.cartLinked2.Link1 == train.getUniqueTrainID()) { + train.cartLinked2.Link1 = -1; + } - if (((EntityRollingStock) train).train != null) { - ((EntityRollingStock) train).train.resetTrain(); + if (train.cartLinked2 != null && train.cartLinked2.Link2 == train.getUniqueTrainID()) { + train.cartLinked2.Link2 = -1; } - - - if (((EntityRollingStock) train).train != null && ((EntityRollingStock) train).train.getTrains().size() <= 1) { - /** no more @RollingStocks in the train then remove the train object from the global list */ - EntityRollingStock.allTrains.remove(((EntityRollingStock) train).train); - //System.out.println("Train is destroyed, remove it from the global array"); + + if (train.cartLinked1 != null && train.cartLinked1.cartLinked1 != null && train.cartLinked1.cartLinked1.equals(train)) { + train.cartLinked1.cartLinked1 = null; } - } - return true; - } - else { - return false; - } - } + + if (train.cartLinked1 != null && train.cartLinked1.cartLinked2 != null && train.cartLinked1.cartLinked2.equals(train)) { + train.cartLinked1.cartLinked2 = null; + } + + if (train.cartLinked2 != null && train.cartLinked2.cartLinked2 != null && train.cartLinked2.cartLinked2.equals(train)) { + train.cartLinked2.cartLinked2 = null; + } + + if (train.cartLinked2 != null && train.cartLinked2.cartLinked1 != null && train.cartLinked2.cartLinked1.equals(train)) { + train.cartLinked2.cartLinked1 = null; + } + + train.cartLinked1 = null; + train.cartLinked2 = null; + train.isAttaching = false; + train.isAttached = false; + + if (train.train != null) { + train.train.resetTrain(); + } + + if (train.train != null && train.train.getTrains().size() <= 1) { + /** no more @RollingStocks in the train then remove the train object from the global list */ + EntityRollingStock.allTrains.remove(train.train); + //System.out.println("Train is destroyed, remove it from the global array"); + } + } + return true; + } else { + return false; + } + } } diff --git a/src/main/java/train/common/api/TrainsSignal.java b/src/main/java/train/common/api/TrainsSignal.java index e6467e4343..42e748304a 100644 --- a/src/main/java/train/common/api/TrainsSignal.java +++ b/src/main/java/train/common/api/TrainsSignal.java @@ -4,81 +4,71 @@ import train.common.library.BlockIDs; public class TrainsSignal { - // ***Signal behavior***/ - public static int isSignal(double motionX, double motionZ, int i, int j, int k, World worldObj) { - int action = 0;// stupid name - // equals 1 if there is a signal near, carts slows down - // equals 2 if the signal is two blocks away, the carts can't move + // ***Signal behavior***/ + public static int isSignal(double motionX, double motionZ, int i, int j, int k, World worldObj) { + int action = 0;// stupid name + // equals 1 if there is a signal near, carts slows down + // equals 2 if the signal is two blocks away, the carts can't move - int l = 1;// no idea + int l = 1;// no idea - /* Basically checks if there is a signal somewhere in front of the cart, using the speed */ - /* t represents the distance to the signal */ - //@SuppressWarnings("unused") TileSignal te = (TileSignal) worldObj.getTileEntity(i, j, k); + /* Basically checks if there is a signal somewhere in front of the cart, using the speed */ + /* t represents the distance to the signal */ + //@SuppressWarnings("unused") TileSignal te = (TileSignal) worldObj.getTileEntity(i, j, k); - if ((motionX > 0) && motionZ == 0) { - for (int t = 0; t < 12; t++) { - if ((worldObj.getBlock(i + t, j, k + l) == BlockIDs.signal.block) || (worldObj.getBlock(i + t, j, k - l) == BlockIDs.signal.block)) {// k = sides, j= heigh, i front - action = 1; - if (t == 2) { - action = 2; - } - t = 12; - } - else { - action = 0; - } - } - /* North */ - } - else if ((motionX < 0) && motionZ == 0) { - for (int t = 0; t < 12; t++) { - if ((worldObj.getBlock(i - t, j, k + l) == BlockIDs.signal.block) || (worldObj.getBlock(i - t, j, k - l) == BlockIDs.signal.block)) {// k = sides, j= heigh, i front - action = 1; - if (t == 2) { - action = 2; - } - t = 12; - } - else { - action = 0; - } - } - /* EAST */ - } - else if ((motionZ > 0) && motionX == 0) { - // k - = front - for (int t = 0; t < 12; t++) { - if ((worldObj.getBlock(i + l, j, k + t) == BlockIDs.signal.block) || (worldObj.getBlock(i - l, j, k + t) == BlockIDs.signal.block)) {// k = sides, j= heigh, i front - action = 1; - if (t == 2) { - action = 2; - } - t = 12; - } - else { - action = 0; - } - } - /* WEST */ - } - else if ((motionZ < 0) && motionX == 0) { - for (int t = 0; t < 12; t++) { - if ((worldObj.getBlock(i + l, j, k - t) == BlockIDs.signal.block) || (worldObj.getBlock(i - l, j, k - t) == BlockIDs.signal.block)) {// k = sides, j= heigh, i front - action = 1; - if (t == 2) { - action = 2; - } - t = 12; - } - else { - action = 0; - } - } - } - else { - action = 0; - } - return action; - } + if ((motionX > 0) && motionZ == 0) { + for (int t = 0; t < 12; t++) { + if ((worldObj.getBlock(i + t, j, k + l) == BlockIDs.signal.block) || (worldObj.getBlock(i + t, j, k - l) == BlockIDs.signal.block)) {// k = sides, j= heigh, i front + action = 1; + if (t == 2) { + action = 2; + } + t = 12; + } else { + action = 0; + } + } + /* North */ + } else if ((motionX < 0) && motionZ == 0) { + for (int t = 0; t < 12; t++) { + if ((worldObj.getBlock(i - t, j, k + l) == BlockIDs.signal.block) || (worldObj.getBlock(i - t, j, k - l) == BlockIDs.signal.block)) {// k = sides, j= heigh, i front + action = 1; + if (t == 2) { + action = 2; + } + t = 12; + } else { + action = 0; + } + } + /* EAST */ + } else if ((motionZ > 0) && motionX == 0) { + // k - = front + for (int t = 0; t < 12; t++) { + if ((worldObj.getBlock(i + l, j, k + t) == BlockIDs.signal.block) || (worldObj.getBlock(i - l, j, k + t) == BlockIDs.signal.block)) {// k = sides, j= heigh, i front + action = 1; + if (t == 2) { + action = 2; + } + t = 12; + } else { + action = 0; + } + } + /* WEST */ + } else if ((motionZ < 0) && motionX == 0) { + for (int t = 0; t < 12; t++) { + if ((worldObj.getBlock(i + l, j, k - t) == BlockIDs.signal.block) || (worldObj.getBlock(i - l, j, k - t) == BlockIDs.signal.block)) {// k = sides, j= heigh, i front + action = 1; + if (t == 2) { + action = 2; + } + t = 12; + } else { + action = 0; + } + } + } + return action; + } } \ No newline at end of file diff --git a/src/main/java/train/common/api/WirelessTransmitter.java b/src/main/java/train/common/api/WirelessTransmitter.java index ea4ee9fe59..c781534117 100644 --- a/src/main/java/train/common/api/WirelessTransmitter.java +++ b/src/main/java/train/common/api/WirelessTransmitter.java @@ -5,7 +5,6 @@ public interface WirelessTransmitter { void receiveMessage(PDMMessage message); - void sendMessage(PDMMessage message); - + void sendMessage(PDMMessage message); } diff --git a/src/main/java/train/common/core/handlers/EntityHandler.java b/src/main/java/train/common/core/handlers/EntityHandler.java index 4866777e79..a92fd861a6 100644 --- a/src/main/java/train/common/core/handlers/EntityHandler.java +++ b/src/main/java/train/common/core/handlers/EntityHandler.java @@ -35,8 +35,8 @@ public static void init() { } public static Entity getEntityServer(World world, int entityId) { - if ((world != null) && (world instanceof WorldServer)) { - return ((WorldServer) world).getEntityByID(entityId); + if ((world instanceof WorldServer)) { + return world.getEntityByID(entityId); } return null; } diff --git a/src/main/java/train/common/entity/rollingStock/EntityTankWagon.java b/src/main/java/train/common/entity/rollingStock/EntityTankWagon.java index 3d73960c50..11039b7c77 100644 --- a/src/main/java/train/common/entity/rollingStock/EntityTankWagon.java +++ b/src/main/java/train/common/entity/rollingStock/EntityTankWagon.java @@ -9,106 +9,109 @@ import net.minecraftforge.common.util.Constants; import train.common.Traincraft; import train.common.api.LiquidTank; -import train.common.library.EnumTrains; import train.common.library.GuiIDs; public class EntityTankWagon extends LiquidTank { - public int freightInventorySize; - public EntityTankWagon(World world) { - super(world); - initFreightWater(); - } - - public void initFreightWater() { - freightInventorySize = 2; - cargoItems = new ItemStack[freightInventorySize]; - } - public EntityTankWagon(World world, double d, double d1, double d2) { - this(world); - setPosition(d, d1 + (double) yOffset, d2); - motionX = 0.0D; - motionY = 0.0D; - motionZ = 0.0D; - prevPosX = d; - prevPosY = d1; - prevPosZ = d2; - } - - @Override - public void setDead() { - super.setDead(); - isDead = true; - } - - @Override - public void onUpdate() { - super.onUpdate(); - checkInvent(cargoItems[0]); - } - - @Override - protected void writeEntityToNBT(NBTTagCompound nbttagcompound) { - super.writeEntityToNBT(nbttagcompound); - - NBTTagList nbttaglist = new NBTTagList(); - for (int i = 0; i < cargoItems.length; i++) { - if (cargoItems[i] != null) { - NBTTagCompound nbttagcompound1 = new NBTTagCompound(); - nbttagcompound1.setByte("Slot", (byte) i); - cargoItems[i].writeToNBT(nbttagcompound1); - nbttaglist.appendTag(nbttagcompound1); - } - } - nbttagcompound.setTag("Items", nbttaglist); - } - - @Override - protected void readEntityFromNBT(NBTTagCompound nbttagcompound) { - super.readEntityFromNBT(nbttagcompound); - - NBTTagList nbttaglist = nbttagcompound.getTagList("Items", Constants.NBT.TAG_COMPOUND); - cargoItems = new ItemStack[getSizeInventory()]; - for (int i = 0; i < nbttaglist.tagCount(); i++) { - NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); - int j = nbttagcompound1.getByte("Slot") & 0xff; - if (j >= 0 && j < cargoItems.length) { - cargoItems[j] = ItemStack.loadItemStackFromNBT(nbttagcompound1); - } - } - } - - @Override - public String getInventoryName() { - return "Tank cart"; - } - - @Override - public int getSizeInventory() { - return freightInventorySize; - } - - @Override - public boolean interactFirst(EntityPlayer entityplayer) { - if ((super.interactFirst(entityplayer))) { - return false; - } - if (!this.worldObj.isRemote) { - entityplayer.openGui(Traincraft.instance, GuiIDs.LIQUID, worldObj, this.getEntityId(), -1, (int) this.posZ); - } - return true; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer entityplayer) { - return (!isDead && entityplayer.getDistanceSqToEntity(this) <= 64D); - } - @Override - public boolean isStorageCart() { - return true; - } - - @Override - public float getOptimalDistance(EntityMinecart cart) { - return 1.7F; - } + public int freightInventorySize; + + public EntityTankWagon(World world) { + super(world); + initFreightWater(); + } + + public void initFreightWater() { + freightInventorySize = 2; + cargoItems = new ItemStack[freightInventorySize]; + } + + public EntityTankWagon(World world, double d, double d1, double d2) { + this(world); + setPosition(d, d1 + (double) yOffset, d2); + motionX = 0.0D; + motionY = 0.0D; + motionZ = 0.0D; + prevPosX = d; + prevPosY = d1; + prevPosZ = d2; + } + + @Override + public void setDead() { + super.setDead(); + isDead = true; + } + + @Override + public void onUpdate() { + super.onUpdate(); + checkInvent(cargoItems[0]); + } + + @Override + protected void writeEntityToNBT(NBTTagCompound nbttagcompound) { + super.writeEntityToNBT(nbttagcompound); + + NBTTagList nbttaglist = new NBTTagList(); + for (int i = 0; i < cargoItems.length; i++) { + if (cargoItems[i] != null) { + NBTTagCompound nbttagcompound1 = new NBTTagCompound(); + nbttagcompound1.setByte("Slot", (byte) i); + cargoItems[i].writeToNBT(nbttagcompound1); + nbttaglist.appendTag(nbttagcompound1); + } + } + nbttagcompound.setTag("Items", nbttaglist); + } + + @Override + protected void readEntityFromNBT(NBTTagCompound nbttagcompound) { + super.readEntityFromNBT(nbttagcompound); + + NBTTagList nbttaglist = nbttagcompound.getTagList("Items", Constants.NBT.TAG_COMPOUND); + cargoItems = new ItemStack[getSizeInventory()]; + for (int i = 0; i < nbttaglist.tagCount(); i++) { + NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); + int j = nbttagcompound1.getByte("Slot") & 0xff; + if (j < cargoItems.length) { + cargoItems[j] = ItemStack.loadItemStackFromNBT(nbttagcompound1); + } + } + } + + @Override + public String getInventoryName() { + return "Tank cart"; + } + + @Override + public int getSizeInventory() { + return freightInventorySize; + } + + @Override + public boolean interactFirst(EntityPlayer entityplayer) { + if (super.interactFirst(entityplayer)) { + return false; + } + + if (!this.worldObj.isRemote) { + entityplayer.openGui(Traincraft.instance, GuiIDs.LIQUID, worldObj, this.getEntityId(), -1, (int) this.posZ); + } + return true; + } + + @Override + public boolean isUseableByPlayer(EntityPlayer entityplayer) { + return (!isDead && entityplayer.getDistanceSqToEntity(this) <= 64D); + } + + @Override + public boolean isStorageCart() { + return true; + } + + @Override + public float getOptimalDistance(EntityMinecart cart) { + return 1.7F; + } } \ No newline at end of file diff --git a/src/main/java/train/common/entity/rollingStock/EntityTankWagonUS.java b/src/main/java/train/common/entity/rollingStock/EntityTankWagonUS.java index 27ed73e7f4..71bfad27ac 100644 --- a/src/main/java/train/common/entity/rollingStock/EntityTankWagonUS.java +++ b/src/main/java/train/common/entity/rollingStock/EntityTankWagonUS.java @@ -13,103 +13,104 @@ import train.common.library.GuiIDs; public class EntityTankWagonUS extends LiquidTank { - public int freightInventorySize; - - public EntityTankWagonUS(World world) { - super(world); - initFreightWater(); - } - - public void initFreightWater() { - freightInventorySize = 2; - cargoItems = new ItemStack[freightInventorySize]; - } - - public EntityTankWagonUS(World world, double d, double d1, double d2) { - this(world); - setPosition(d, d1 + (double) yOffset, d2); - motionX = 0.0D; - motionY = 0.0D; - motionZ = 0.0D; - prevPosX = d; - prevPosY = d1; - prevPosZ = d2; - } - - @Override - public void setDead() { - super.setDead(); - isDead = true; - } - - @Override - public void onUpdate() { - super.onUpdate(); - checkInvent(cargoItems[0]); - } - - @Override - protected void writeEntityToNBT(NBTTagCompound nbttagcompound) { - super.writeEntityToNBT(nbttagcompound); - - NBTTagList nbttaglist = new NBTTagList(); - for (int i = 0; i < cargoItems.length; i++) { - if (cargoItems[i] != null) { - NBTTagCompound nbttagcompound1 = new NBTTagCompound(); - nbttagcompound1.setByte("Slot", (byte) i); - cargoItems[i].writeToNBT(nbttagcompound1); - nbttaglist.appendTag(nbttagcompound1); - } - } - } - - @Override - protected void readEntityFromNBT(NBTTagCompound nbttagcompound) { - super.readEntityFromNBT(nbttagcompound); - - NBTTagList nbttaglist = nbttagcompound.getTagList("Items", Constants.NBT.TAG_COMPOUND); - cargoItems = new ItemStack[getSizeInventory()]; - for (int i = 0; i < nbttaglist.tagCount(); i++) { - NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); - int j = nbttagcompound1.getByte("Slot") & 0xff; - if (j >= 0 && j < cargoItems.length) { - cargoItems[j] = ItemStack.loadItemStackFromNBT(nbttagcompound1); - } - } - } - - @Override - public String getInventoryName() { - return "Tank cart"; - } - - @Override - public int getSizeInventory() { - return freightInventorySize; - } - - @Override - public boolean interactFirst(EntityPlayer entityplayer) { - if ((super.interactFirst(entityplayer))) { - return false; - } - if (!this.worldObj.isRemote) { - entityplayer.openGui(Traincraft.instance, GuiIDs.LIQUID, worldObj, this.getEntityId(), -1, (int) this.posZ); - } - return true; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer entityplayer) { - return !isDead && entityplayer.getDistanceSqToEntity(this) <= 64D; - } - - @Override - public boolean isStorageCart() { - return true; - } - @Override - public float getOptimalDistance(EntityMinecart cart) { - return 1.6F; - } + public int freightInventorySize; + + public EntityTankWagonUS(World world) { + super(world); + initFreightWater(); + } + + public void initFreightWater() { + freightInventorySize = 2; + cargoItems = new ItemStack[freightInventorySize]; + } + + public EntityTankWagonUS(World world, double d, double d1, double d2) { + this(world); + setPosition(d, d1 + (double) yOffset, d2); + motionX = 0.0D; + motionY = 0.0D; + motionZ = 0.0D; + prevPosX = d; + prevPosY = d1; + prevPosZ = d2; + } + + @Override + public void setDead() { + super.setDead(); + isDead = true; + } + + @Override + public void onUpdate() { + super.onUpdate(); + checkInvent(cargoItems[0]); + } + + @Override + protected void writeEntityToNBT(NBTTagCompound nbttagcompound) { + super.writeEntityToNBT(nbttagcompound); + + NBTTagList nbttaglist = new NBTTagList(); + for (int i = 0; i < cargoItems.length; i++) { + if (cargoItems[i] != null) { + NBTTagCompound nbttagcompound1 = new NBTTagCompound(); + nbttagcompound1.setByte("Slot", (byte) i); + cargoItems[i].writeToNBT(nbttagcompound1); + nbttaglist.appendTag(nbttagcompound1); + } + } + } + + @Override + protected void readEntityFromNBT(NBTTagCompound nbttagcompound) { + super.readEntityFromNBT(nbttagcompound); + + NBTTagList nbttaglist = nbttagcompound.getTagList("Items", Constants.NBT.TAG_COMPOUND); + cargoItems = new ItemStack[getSizeInventory()]; + for (int i = 0; i < nbttaglist.tagCount(); i++) { + NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); + int j = nbttagcompound1.getByte("Slot") & 0xff; + if (j < cargoItems.length) { + cargoItems[j] = ItemStack.loadItemStackFromNBT(nbttagcompound1); + } + } + } + + @Override + public String getInventoryName() { + return "Tank cart"; + } + + @Override + public int getSizeInventory() { + return freightInventorySize; + } + + @Override + public boolean interactFirst(EntityPlayer entityplayer) { + if ((super.interactFirst(entityplayer))) { + return false; + } + if (!this.worldObj.isRemote) { + entityplayer.openGui(Traincraft.instance, GuiIDs.LIQUID, worldObj, this.getEntityId(), -1, (int) this.posZ); + } + return true; + } + + @Override + public boolean isUseableByPlayer(EntityPlayer entityplayer) { + return !isDead && entityplayer.getDistanceSqToEntity(this) <= 64D; + } + + @Override + public boolean isStorageCart() { + return true; + } + + @Override + public float getOptimalDistance(EntityMinecart cart) { + return 1.6F; + } } \ No newline at end of file diff --git a/src/main/java/train/common/library/EnumSounds.java b/src/main/java/train/common/library/EnumSounds.java index 6eafaf7e83..e58c6e2e95 100644 --- a/src/main/java/train/common/library/EnumSounds.java +++ b/src/main/java/train/common/library/EnumSounds.java @@ -6,243 +6,243 @@ public enum EnumSounds implements TrainSoundRecord { - locoCherepanov(EntityLocoSteamCherepanov.class, "steam_horn", 0.6F, "steam_run", 0.2F, 20, "steam_run", 0.2F, 20, true), - locoHeavySteam(EntityLocoSteamHeavy.class, "hancock_3chime", 0.8F, "steam_run", 0.2F, 20, "steam_run", 0.2F, 20, true), - locoSteam(EntityLocoSteam4_4_0.class, "american_steam_horn", 0.8F, "steam_run", 0.2F, 20, "steam_run", 0.2F, 20, true), - locoA4(EntityLocoSteamMallardA4.class, "a4_whistle", 0.6F, "steam_run", 0.2F, 20, "steam_run", 0.2F, 20, true), - locoSteamBig(EntityLocoSteamHeavy.class, "steam_horn", 0.6F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), - locoSteamBR01_DB(EntityLocoSteamBR01_DB.class, "german_steam_horn", 0.8F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), - locoSteamBR80_DB(EntityLocoSteamBR80_DB.class, "german_steam_horn", 0.8F, "steam_run", 0.2F, 20, "steam_run", 0.2F, 20, true), - locoSteamEr_USSR(EntityLocoSteamEr_Ussr.class, "steam_horn", 0.6F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), - locoSteamPannier(EntityLocoSteamPannier.class, "steam_horn", 0.6F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), - locoSteamC41(EntityLocoSteamC41.class, "american_steam_horn", 0.6F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), - locoSteamBR_Black_5(EntityLocoSteamBR_Black_5.class, "StanierHooter", 1F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), - locoSteamBR_Britannia_Class(EntityLocoSteamBR_Britannia_Class.class, "BritanniaWhistle", 1F, "BritanniaMediumChuff", 0.4F, 20, "steam_run", 0.4F, 20, true), - locoSteamRWType3(EntityLocoSteamRWType3.class, "RW_type_3", 1.2F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), - locoSteamRWType2(EntityLocoSteamRWType2.class, "type_2", 1.4F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), - locoSteamGWR42xx(EntityLocoSteamGWR42xx.class, "steam_horn", 0.6F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), - locoSteamGWR72xx(EntityLocoSteamGWR72xx.class, "steam_horn", 0.6F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), - locoSteamGWR101Class(EntityLocoSteamGWR101Class.class, "steam_horn", 0.6F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), - locoSteamWWCPClass062T(EntityLocoSteamWWCPClass062T.class, "steam_horn", 0.6F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), - locoSteamC41080(EntityLocoSteamC41_080.class, "american_steam_horn", 0.6F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), - locoSteamfowler(EntityLocoSteamFowler.class, "steam_horn", 0.6F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), - locoSteamberk765(EntityLocoSteamBerk765.class, "class62_horn", 0.6F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), - locoSteamberk1225(EntityLocoSteamBerk1225.class, "class62_horn", 0.6F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), - locoSteamAlcoSC4(EntityLocoSteamAlcoSC4.class, "american_steam_horn", 0.6F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), - locoSteamS100UK(EntityLocoSteamUSATCUK.class, "german_steam_horn", 0.6F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), - locoSteamS100US(EntityLocoSteamUSATCUS.class, "american_steam_horn", 0.6F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), - locoSteamHallClass(EntityLocoSteamHallClass.class, "steam_horn", 0.6F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), - locoSteamKingClass(EntityLocoSteamKingClass.class, "steam_horn", 0.6F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), - locoSteamSouthern1102(EntityLocoSteamSouthern1102.class, "american_steam_horn", 0.6F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), - locoSteamC41T(EntityLocoSteamC41T.class, "american_steam_horn", 0.6F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), - locoSteamForney(EntityLocoSteamForneyRed.class, "american_steam_horn", 0.8F, "steam_run", 0.2F, 20, "steam_run", 0.2F, 20, true), - locoSteamMogul(EntityLocoSteamMogulBlue.class, "american_steam_horn", 0.8F, "steam_run", 0.2F, 20, "steam_run", 0.2F, 20, true), - locoSteamSmall(EntityLocoSteamSmall.class, "steam_horn", 0.5F, "steam_run", 0.2F, 20, "steam_run", 0.2F, 20, true), - locoSteamShay(EntityLocoSteamShay.class, "shay_horn", 0.8F, "steam_run", 0.2F, 20, "steam_run", 0.2F, 20, true), - locoSteamClass62(EntityLocoSteamC62Class.class, "class62_horn", 0.8F, "steam_run", 0.2F, 20, "steam_run", 0.2F, 20, true), - locoSteamD51S(EntityLocoSteamD51.class, "class62_horn", 0.8F, "steam_run", 0.2F, 20, "steam_run", 0.2F, 20, true), - locoSteamD51L(EntityLocoSteamD51Long.class, "class62_horn", 0.8F, "steam_run", 0.2F, 20, "steam_run", 0.2F, 20, true), - locoSteamSnowPlow(EntityLocoSteamSnowPlow.class, "class62_horn", 0.8F, "steam_run", 0.2F, 20, "steam_run", 0.2F, 20, true), - locoSteamAdler(EntityLocoSteamAdler.class, "adler_whistle", 0.8F, "adler_run", 0.2F, 20, "adler_run", 0.2F, 20, - true), - GS4(EntityLocoSteamGS4.class, "american_steam_horn", 0.8F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), - MILWClassA(EntityLocoSteamMILWClassA.class, "american_steam_horn", 0.8F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), - locoAlice(EntityLocoSteamAlice0_4_0.class, "german_steam_horn", 0.8F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, - true), - locoElectricBR_MK2F_DBSO(EntityElectricBR_MK2F_DBSO.class, "british_two_tone", 0.8F, "", 0F, 0, "", 0F, 0, false), - locoElectricBR_MK3_DVT(EntityElectricBR_MK3_DVT.class, "mg_horn", 1F, "", 0F, 0, "", 0F, 0, false), - locoElectricBR_MK4_DVT(EntityElectricBR_MK4_DVT.class, "mg_horn", 1F, "", 0F, 0, "", 0F, 0, false), - locoGLYN(EntityLocoSteamGLYN042T.class, "german_steam_horn", 0.8F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, - true), - locovb(EntityLocoSteam040VB.class, "adler_whistle", 0.8F, "adler_run", 0.2F, 20, "adler_run", 0.2F, 20, true), - locosvbShay(EntityLocoSteamVBShay.class, "shay_horn", 0.8F, "steam_run", 0.2F, 20, "steam_run", 0.2F, 20, true), - loco262T(EntityLocoSteam262T.class, "german_steam_horn", 0.8F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), - locoClimax(EntityLocoSteamClimax.class, "shay_horn", 0.8F, "steam_run", 0.2F, 20, "steam_run", 0.2F, 20, true), - locoCoranationClass(EntityLocoSteamCoranationClass.class, "steam_horn", 0.6F, "steam_run", 0.4F, 20, "steam_run", - 0.4F, 20, true), + locoCherepanov(EntityLocoSteamCherepanov.class, "steam_horn", 0.6F, "steam_run", 0.2F, 20, "steam_run", 0.2F, 20, true), + locoHeavySteam(EntityLocoSteamHeavy.class, "hancock_3chime", 0.8F, "steam_run", 0.2F, 20, "steam_run", 0.2F, 20, true), + locoSteam(EntityLocoSteam4_4_0.class, "american_steam_horn", 0.8F, "steam_run", 0.2F, 20, "steam_run", 0.2F, 20, true), + locoA4(EntityLocoSteamMallardA4.class, "a4_whistle", 0.6F, "steam_run", 0.2F, 20, "steam_run", 0.2F, 20, true), + locoSteamBig(EntityLocoSteamHeavy.class, "steam_horn", 0.6F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), + locoSteamBR01_DB(EntityLocoSteamBR01_DB.class, "german_steam_horn", 0.8F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), + locoSteamBR80_DB(EntityLocoSteamBR80_DB.class, "german_steam_horn", 0.8F, "steam_run", 0.2F, 20, "steam_run", 0.2F, 20, true), + locoSteamEr_USSR(EntityLocoSteamEr_Ussr.class, "steam_horn", 0.6F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), + locoSteamPannier(EntityLocoSteamPannier.class, "steam_horn", 0.6F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), + locoSteamC41(EntityLocoSteamC41.class, "american_steam_horn", 0.6F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), + locoSteamBR_Black_5(EntityLocoSteamBR_Black_5.class, "StanierHooter", 1F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), + locoSteamBR_Britannia_Class(EntityLocoSteamBR_Britannia_Class.class, "BritanniaWhistle", 1F, "BritanniaMediumChuff", 0.4F, 20, "steam_run", 0.4F, 20, true), + locoSteamRWType3(EntityLocoSteamRWType3.class, "RW_type_3", 1.2F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), + locoSteamRWType2(EntityLocoSteamRWType2.class, "type_2", 1.4F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), + locoSteamGWR42xx(EntityLocoSteamGWR42xx.class, "steam_horn", 0.6F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), + locoSteamGWR72xx(EntityLocoSteamGWR72xx.class, "steam_horn", 0.6F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), + locoSteamGWR101Class(EntityLocoSteamGWR101Class.class, "steam_horn", 0.6F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), + locoSteamWWCPClass062T(EntityLocoSteamWWCPClass062T.class, "steam_horn", 0.6F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), + locoSteamC41080(EntityLocoSteamC41_080.class, "american_steam_horn", 0.6F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), + locoSteamfowler(EntityLocoSteamFowler.class, "steam_horn", 0.6F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), + locoSteamberk765(EntityLocoSteamBerk765.class, "class62_horn", 0.6F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), + locoSteamberk1225(EntityLocoSteamBerk1225.class, "class62_horn", 0.6F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), + locoSteamAlcoSC4(EntityLocoSteamAlcoSC4.class, "american_steam_horn", 0.6F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), + locoSteamS100UK(EntityLocoSteamUSATCUK.class, "german_steam_horn", 0.6F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), + locoSteamS100US(EntityLocoSteamUSATCUS.class, "american_steam_horn", 0.6F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), + locoSteamHallClass(EntityLocoSteamHallClass.class, "steam_horn", 0.6F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), + locoSteamKingClass(EntityLocoSteamKingClass.class, "steam_horn", 0.6F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), + locoSteamSouthern1102(EntityLocoSteamSouthern1102.class, "american_steam_horn", 0.6F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), + locoSteamC41T(EntityLocoSteamC41T.class, "american_steam_horn", 0.6F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), + locoSteamForney(EntityLocoSteamForneyRed.class, "american_steam_horn", 0.8F, "steam_run", 0.2F, 20, "steam_run", 0.2F, 20, true), + locoSteamMogul(EntityLocoSteamMogulBlue.class, "american_steam_horn", 0.8F, "steam_run", 0.2F, 20, "steam_run", 0.2F, 20, true), + locoSteamSmall(EntityLocoSteamSmall.class, "steam_horn", 0.5F, "steam_run", 0.2F, 20, "steam_run", 0.2F, 20, true), + locoSteamShay(EntityLocoSteamShay.class, "shay_horn", 0.8F, "steam_run", 0.2F, 20, "steam_run", 0.2F, 20, true), + locoSteamClass62(EntityLocoSteamC62Class.class, "class62_horn", 0.8F, "steam_run", 0.2F, 20, "steam_run", 0.2F, 20, true), + locoSteamD51S(EntityLocoSteamD51.class, "class62_horn", 0.8F, "steam_run", 0.2F, 20, "steam_run", 0.2F, 20, true), + locoSteamD51L(EntityLocoSteamD51Long.class, "class62_horn", 0.8F, "steam_run", 0.2F, 20, "steam_run", 0.2F, 20, true), + locoSteamSnowPlow(EntityLocoSteamSnowPlow.class, "class62_horn", 0.8F, "steam_run", 0.2F, 20, "steam_run", 0.2F, 20, true), + locoSteamAdler(EntityLocoSteamAdler.class, "adler_whistle", 0.8F, "adler_run", 0.2F, 20, "adler_run", 0.2F, 20, + true), + GS4(EntityLocoSteamGS4.class, "american_steam_horn", 0.8F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), + MILWClassA(EntityLocoSteamMILWClassA.class, "american_steam_horn", 0.8F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), + locoAlice(EntityLocoSteamAlice0_4_0.class, "german_steam_horn", 0.8F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, + true), + locoElectricBR_MK2F_DBSO(EntityElectricBR_MK2F_DBSO.class, "british_two_tone", 0.8F, "", 0F, 0, "", 0F, 0, false), + locoElectricBR_MK3_DVT(EntityElectricBR_MK3_DVT.class, "mg_horn", 1F, "", 0F, 0, "", 0F, 0, false), + locoElectricBR_MK4_DVT(EntityElectricBR_MK4_DVT.class, "mg_horn", 1F, "", 0F, 0, "", 0F, 0, false), + locoGLYN(EntityLocoSteamGLYN042T.class, "german_steam_horn", 0.8F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, + true), + locovb(EntityLocoSteam040VB.class, "adler_whistle", 0.8F, "adler_run", 0.2F, 20, "adler_run", 0.2F, 20, true), + locosvbShay(EntityLocoSteamVBShay.class, "shay_horn", 0.8F, "steam_run", 0.2F, 20, "steam_run", 0.2F, 20, true), + loco262T(EntityLocoSteam262T.class, "german_steam_horn", 0.8F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), + locoClimax(EntityLocoSteamClimax.class, "shay_horn", 0.8F, "steam_run", 0.2F, 20, "steam_run", 0.2F, 20, true), + locoCoranationClass(EntityLocoSteamCoranationClass.class, "steam_horn", 0.6F, "steam_run", 0.4F, 20, "steam_run", + 0.4F, 20, true), - locoVL10(EntityLocoElectricVL10.class, "vl10_horn", 0.8F, "vl10_idle", 0.6F, 50, "vl10_idle", 0.6F, 50, false), - locoBR_E69(EntityLocoElectricBR_E69.class, "eu07_horn", 0.8F, "vl10_idle", 0.6F, 50, "vl10_idle", 0.6F, 50, false), - locoMineTrain(EntityLocoElectricMinetrain.class, "tram_horn", 0.8F, "vl10_idle", 0.6F, 50, "vl10_idle", 0.6F, 50, false), - locoHighSpeed(EntityLocoElectricHighSpeedZeroED.class, "high_speed_horn", 0.8F, "vl10_idle", 0.6F, 50, "vl10_idle", 0.6F, 50, false), - locoSubwayNY(EntityLocoElectricTramNY.class, "subway_horn", 1F, "vl10_idle", 0.6F, 50, "vl10_idle", 0.6F, 50, false), - locoTramWood(EntityLocoElectricTramWood.class, "tram_bell", 1F, "vl10_idle", 0.6F, 50, "vl10_idle", 0.6F, 50, false), - locoElectricTW305(EntityLocoElectricTW305.class, "tram_bell", 1F, "vl10_idle", 0.6F, 50, "vl10_idle", 0.6F, 50, false), - locoIC4_DSB_MG(EntityLocoDieselIC4_DSB_MG.class, "mg_horn", 1F, "mg_run", 0.8F, 10, "mg_idle", 0.6F, 50, false), - locoSpeedGrey(EntityLocoElectricNewHighSpeed.class, "high_speed_horn", 0.8F, "vl10_idle", 0.6F, 50, "vl10_idle", 0.6F, 50, false), - ICE1(EntityLocoElectricICE1.class, "mg_horn", 1F, "mg_run", 0.8F, 10, "mg_idle", 0.6F, 50, false), - E10(EntityLocoElectricE10_DB.class, "mg_horn", 1F, "mg_run", 0.6F, 8, "mg_idle", 0.4F, 50, false), - locoBR185(EntityLocoElectricBR185.class, "mg_horn", 1F, "vl10_idle", 0.8F, 10, "vl10_idle", 0.6F, 50, false), - nmbs_hle_18(EntityLocoElectricNMBS_HLE_18.class, "mg_horn", 1F, "vl10_idle", 0.8F, 10, "vl10_idle", 0.6F, 50, false), - locoClass85(EntityLocoElectricClass85.class, "mg_horn", 1F, "vl10_idle", 0.8F, 10, "vl10_idle", 0.6F, 50, false), - locoBNLRV_A(EntityLocoElectricBNLRV_A.class, "tram_horn", 0.8F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, false), - locoCD742(EntityLocoDieselCD742.class, "742_horn", 0.8F, "742_motor_slow", 0.65F, 40, "742_motor", 0.65F, 40, false), - locoCD754(EntityLocoDieselCD754.class, "742_horn", 0.8F, "742_motor_slow", 0.65F, 40, "742_motor", 0.65F, 40, false), - locoChME3(EntityLocoDieselChME3.class, "chme3_horn", 0.8F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, false), - locoGP7Red(EntityLocoDieselGP7Red.class, "gp_horn", 0.8F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, false), - locoBP4(EntityLocoElectricBP4.class, "nathan_k5La_3", 0.8F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, false), - locoFOLM1(EntityLocoDieselFOLM1.class, "nathan_p01235", 0.8F, "FM_38D_6_Notch8", 0.65F, 40, "FM_38D_6_Idle", 0.65F, 40, false), - locoKof_DB(EntityLocoDieselKof_DB.class, "chme3_horn", 0.8F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, false), - locoSD40(EntityLocoDieselSD40.class, "gp_horn", 0.8F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, false), - locoWLs40(EntityLocoDieselWLs40.class, "vl10_horn", 0.8F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, false), - locoBamboo(EntityLocoDieselBamboo.class, "gp_horn", 0F, "chme3_idle", 0.2F, 40, "chme3_idle", 0.1F, 40, false), - locoSD70(EntityLocoDieselSD70.class, "sd70_horn", 0.8F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, false), - locoDD35A(EntityLocoDieselDD35A.class, "sd70_horn", 0.8F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, false), - lococlass117(EntityLocoDieselClass117.class, "eu07_horn", 1F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, false), - lococlass121(EntityLocoDieselClass121.class, "eu07_horn", 1F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, false), - lococlass158(EntityLocoDieselClass158.class, "Class158Horn", 1.2F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, false), - lococlass153(EntityLocoDieselClass153.class, "british_two_tone", 0.8F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, false), - lococlass175(EntityLocoDieselClass175.class, "british_two_tone", 0.8F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, false), - lococlass156(EntityLocoDieselClass156.class, "british_two_tone", 0.8F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, false), - locoClass47(EntityLocoDieselClass47.class, "Class47Horn", 1F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, false), - locoShunter(EntityLocoDieselShunter.class, "british_two_tone", 0.8F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, false), - locoV60_DB(EntityLocoDieselV60_DB.class, "v60_horn", 0.8F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, false), - loco44tonSwitcher(EntityLocoDiesel44TonSwitcher.class, "v60_horn", 0.8F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, false), - locoF7(EntityLocoDieselEMDF7.class, "sd70_horn", 0.8F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, false), - locoF3(EntityLocoDieselEMDF3.class, "sd70_horn", 0.8F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, false), - MILW_H1044(EntityLocoDieselMILW_H1044.class, "eu07_horn", 0.8F, "vl10_idle", 0.65F, 40, "vl10_idle", 0.65F, 40, false), - locoDeltic(EntityLocoDieselDeltic.class, "british_two_tone", 0.8F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, - false), - locoClass66(EntityLocoDieselClass66.class, "british_two_tone", 0.8F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, - false), - locoCD151(EntityLocoElectricCD151.class,"mg_horn", 1F, "mg_run", 0.8F, 10, "mg_idle", 0.6F, 50, false), - locoLSSP7(EntityLocoSteamLSSP7.class, "american_steam_horn", 0.8F, "steam_run", 0.2F, 20, "steam_run", 0.2F, 20, true), - E103(EntityLocoElectricE103.class, "mg_horn", 1F, "mg_run", 0.6F, 8, "mg_idle", 0.4F, 50, false), - locoElectricMetro2000(EntityElectricMetro2000Motor.class, "4300_horn", 1F,"metro2000_running", 1.5F, 70, "chme3_idle", 1F, 20, true), - //Community Port - //Not American Stuff - DieselCD810(EntityLocoDieselCD810.class, "tram_horn", 0.8F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, true), - DieselCD814(EntityLocoDieselCD814.class, "tram_horn", 0.8F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, true), - DieselClass44(EntityLocoDieselClass44.class, "british_two_tone", 0.8F, "vl10_idle", 0.65F, 40, "vl10_idle", 0.65F, 40, false), - DieselKOF_III(EntityLocoDieselKof_III.class, "chme3_horn", 0.8F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, false), - DieselKOF_III_M(EntityLocoDieselKof_III_M.class, "chme3_horn", 0.8F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, false), - DieselSM42(EntityLocoDieselSM42.class, "sm42_chime", 0.8F, "sm42_run", 0.65F, 40, "sm42_idle", 0.65F, 40, false), - ElectricClass345(EntityElectricClass345.class, "subway_horn", 0.8F, "vl10_idle", 0.6F, 50, "vl10_idle", 0.6F, 50, false), - Electric440R(EntityLocoElectric440RFront.class, "446Horn", 0.8F, "vl10_idle", 0.6F, 50, "vl10_idle", 0.6F, 50, false), - ElectricBR155(EntityLocoElectricBR155.class, "br155_chime", 1F, "mg_run", 0.6F, 8, "mg_idle", 0.4F, 50, false), - ElectricDB143(EntityLocoElectricDB143.class, "mg_horn", 1F, "mg_run", 0.6F, 8, "mg_idle", 0.4F, 50, false), - ElectricDStockEngine(EntityElectricDstockEngine.class, "dstock_whistle", 0.8F, "vl10_idle", 0.6F, 50, "vl10_idle", 0.6F, 50, false), - ElectricClass230Engine(EntityElectricClass230.class, "446Horn", 0.8F, "vl10_idle", 0.6F, 50, "vl10_idle", 0.6F, 50, false), - ElectricEU07(EntityLocoElectricEU07.class, "mg_horn", 1F, "mg_run", 0.6F, 8, "mg_idle", 0.4F, 50, false), - ElectricFeve3300(EntityLocoElectricFeve3300.class, "446Horn", 0.8F, "vl10_idle", 0.6F, 50, "vl10_idle", 0.6F, 50, false), - ElectricILMA(EntityLocoElectricILMA.class, "subway_horn", 0.8F, "MILW_Notch8", 0.6F, 50, "MILW_Idle", 0.6F, 50, false), - ElectricILMB(EntityLocoElectricILMB.class, "subway_horn", 0.8F, "MILW_Notch8", 0.6F, 50, "MILW_Idle", 0.6F, 50, false), - ElectricLUEngine(EntityElectricLUengine.class, "dstock_whistle", 0.8F, "vl10_idle", 0.6F, 50, "vl10_idle", 0.6F, 50, false), - ElectricPCH120(EntityLocoElectricPCH120.class, "446Horn", 0.8F, "vl10_idle", 0.6F, 50, "vl10_idle", 0.6F, 50, false), - ElectricRenfe446Motor(EntityLocoElectricRenfe446Motor.class, "446Horn", 0.8F, "vl10_idle", 0.6F, 50, "vl10_idle", 0.6F, 50, false), - ElectricRenfe450Motor(EntityLocoElectricRenfe450Motor.class, "446Horn", 0.8F, "vl10_idle", 0.6F, 50, "vl10_idle", 0.6F, 50, false), - SteamC11(EntityLocoSteamC11.class, "class62_horn", 0.6F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), - SteamStarClass(EntityLocoSteamStarClass.class, "adler_whistle", 0.8F, "adler_run", 0.2F, 20, "adler_run", 0.2F, 20, true), - Class43(EntityLocoDieselClass43.class, "HSTHorn", 1.2F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, false), - Class90(EntityElectricClass90.class, "mg_horn", 1F, "Class868790Thrash", 0.8F, 10, "Class90Idle", 0.6F, 50, false), - Class91(EntityElectricClass91.class, "mg_horn", 1F, "Class868790Thrash", 0.8F, 10, "Class90Idle", 0.6F, 50, false), - Class321(EntityElectricClass321.class, "mg_horn", 1F, "vl10_idle", 0.8F, 10, "vl10_idle", 0.6F, 50, false), - Class389Front(EntityElectricClass389Front.class, "british_two_tone", 1F, "vl10_idle", 0.8F, 10, "vl10_idle", 0.6F, 50, false), - Class387Front(EntityElectricClass387Front.class, "british_two_tone", 1F, "vl10_idle", 0.8F, 10, "vl10_idle", 0.6F, 50, false), - Class378Front(EntityElectricClass378Front.class, "british_two_tone", 1F, "vl10_idle", 0.8F, 10, "vl10_idle", 0.6F, 50, false), - Class319Engine(EntityElectricClass319.class, "mg_horn", 1F, "vl10_idle", 0.8F, 10, "vl10_idle", 0.6F, 50, false), - Class390Front(EntityElectricClass390.class, "PendolinoHorn", 1.4F, "vl10_idle", 0.8F, 10, "vl10_idle", 0.6F, 50, false), - Class374Front(EntityElectricClass374.class, "mg_horn", 1F, "vl10_idle", 0.8F, 10, "vl10_idle", 0.6F, 50, false), - Class442DTS(EntityElectricClass442DTS.class, "british_two_tone", 1F, "vl10_idle", 0.8F, 10, "vl10_idle", 0.6F, 50, false), - asteri(EntityLocoSteamasteri.class, "asteri", 1F, "asteri", 0.2F, 212,"mg_idle", 0.6F, 50, false), - FGV4300(EntityLocoElectricFGV4300.class, "4300_horn", 1F, "vl10_idle", 0.65F, 10, "vl10_idle", 0.6F, 40, false), - Class162Engine(EntityElectricClass162.class, "mg_horn", 1F, "vl10_idle", 0.8F, 10, "vl10_idle", 0.6F, 50, false), - Class34(EntityLocoDieselClass34.class, "british_two_tone", 0.8F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, false), - TW305(EntityLocoElectricTW305.class, "tram_bell", 1F, "vl10_idle", 0.6F, 50, "vl10_idle", 0.6F, 50, false), - MetalTram(EntityLocoElectricMetalTram.class, "tram_bell", 1F, "vl10_idle", 0.6F, 50, "vl10_idle", 0.6F, 50, false), - KVB_2300(EntityElectricKVB_2300.class, "tram_bell", 1F, "mg_run", 0.6F, 50, "mg_run", 0.6F, 50, false), - MA100(EntityElectricMA100_Loco.class, "4300_horn", 1F, "mg_run", 0.6F, 50, "mg_run", 0.6F, 50, false), - B80C_A(EntityElectricB80C_A.class, "tram_bell", 1F, "mg_run", 0.6F, 50, "mg_run", 0.6F, 50, false), - CQ310(EntityElectricCQ310Loco.class, "subway_horn", 1F, "vl10_idle", 0.6F, 50, "vl10_idle", 0.6F, 50, false), - DuewagT4ER(EntityElectricDuewagT4ER.class, "tram_bell", 1F, "vl10_idle", 0.6F, 50, "vl10_idle", 0.6F, 50, false), - DuewagGT6ZRLoco(EntityElectricDuewagGT6ZRLoco.class, "tram_bell", 1F, "vl10_idle", 0.6F, 50, "vl10_idle", 0.6F, 50, false), - M8CLoco(EntityElectricM8CLoco.class, "tram_bell", 1F, "vl10_idle", 0.6F, 50, "vl10_idle", 0.6F, 50, false), - Class416Loco(EntityElectricClass416Loco.class, "british_two_tone", 1F, "vl10_idle", 0.6F, 50, "vl10_idle", 0.6F, 50, true), - DB420Loco(EntityElectricDB420Loco.class, "mg_horn", 1F, "mg_run", 0.6F, 8, "mg_idle", 0.4F, 50, false), - Class401Loco(EntityLocoElectricClass401.class, "mg_horn", 1F, "mg_run", 0.6F, 50, "vl10_idle", 0.6F, 50, false), - DuewagGT6ERLoco(EntityElectricDuewagGT6ERLoco.class, "tram_bell", 1F, "vl10_idle", 0.6F, 50, "vl10_idle", 0.6F, 50, false), - J50loco(EntityLocoSteamJ50.class, "a4_whistle", 1.25f, "steam_run", 0.5f, 25, "adler_run", 1f, 40, true), - SentinelY3(EntityLocoSteamSentinelY3.class, "adler_whistle", 1f, "steam_run", 0.75f, 10,"steam_run", 0.25f, 20, true), - Class142Front(EntityLocoDieselClass142.class, "british_two_tone", 1f, "chme3_idle", 0.75f, 10,"chme3_idle", 0.5f, 20, false), - Class143Front(EntityLocoDieselClass143.class, "british_two_tone", 1f, "FM_38D_6_Notch8", 0.6f, 10,"chme3_idle", 0.5f, 20, false), - Jacknail(EntitylocoSteamJacknail.class, "american_steam_horn", 1.5f, "steam_run", 0.6f, 25, "adler_run", 0.5f, 17, true), - MRcompound(EntitylocoSteamMRCompound.class, "steam_horn", 0.6F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), - Bagnall(EntityLocoDieselBagnall.class, "v60_horn", 1f, "chme3_idle", 0.8f, 10,"chme3_idle", 0.5f, 20, false), - Class205(EntityLocoDieselClass205loco.class, "eu07_horn", 1F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, false), - M8DNF1Loco(EntityElectricM8DNF1Loco.class, "tram_bell", 1F, "vl10_idle", 0.6F, 50, "vl10_idle", 0.6F, 50, false), + locoVL10(EntityLocoElectricVL10.class, "vl10_horn", 0.8F, "vl10_idle", 0.6F, 50, "vl10_idle", 0.6F, 50, false), + locoBR_E69(EntityLocoElectricBR_E69.class, "eu07_horn", 0.8F, "vl10_idle", 0.6F, 50, "vl10_idle", 0.6F, 50, false), + locoMineTrain(EntityLocoElectricMinetrain.class, "tram_horn", 0.8F, "vl10_idle", 0.6F, 50, "vl10_idle", 0.6F, 50, false), + locoHighSpeed(EntityLocoElectricHighSpeedZeroED.class, "high_speed_horn", 0.8F, "vl10_idle", 0.6F, 50, "vl10_idle", 0.6F, 50, false), + locoSubwayNY(EntityLocoElectricTramNY.class, "subway_horn", 1F, "vl10_idle", 0.6F, 50, "vl10_idle", 0.6F, 50, false), + locoTramWood(EntityLocoElectricTramWood.class, "tram_bell", 1F, "vl10_idle", 0.6F, 50, "vl10_idle", 0.6F, 50, false), + locoElectricTW305(EntityLocoElectricTW305.class, "tram_bell", 1F, "vl10_idle", 0.6F, 50, "vl10_idle", 0.6F, 50, false), + locoIC4_DSB_MG(EntityLocoDieselIC4_DSB_MG.class, "mg_horn", 1F, "mg_run", 0.8F, 10, "mg_idle", 0.6F, 50, false), + locoSpeedGrey(EntityLocoElectricNewHighSpeed.class, "high_speed_horn", 0.8F, "vl10_idle", 0.6F, 50, "vl10_idle", 0.6F, 50, false), + ICE1(EntityLocoElectricICE1.class, "mg_horn", 1F, "mg_run", 0.8F, 10, "mg_idle", 0.6F, 50, false), + E10(EntityLocoElectricE10_DB.class, "mg_horn", 1F, "mg_run", 0.6F, 8, "mg_idle", 0.4F, 50, false), + locoBR185(EntityLocoElectricBR185.class, "mg_horn", 1F, "vl10_idle", 0.8F, 10, "vl10_idle", 0.6F, 50, false), + nmbs_hle_18(EntityLocoElectricNMBS_HLE_18.class, "mg_horn", 1F, "vl10_idle", 0.8F, 10, "vl10_idle", 0.6F, 50, false), + locoClass85(EntityLocoElectricClass85.class, "mg_horn", 1F, "vl10_idle", 0.8F, 10, "vl10_idle", 0.6F, 50, false), + locoBNLRV_A(EntityLocoElectricBNLRV_A.class, "tram_horn", 0.8F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, false), + locoCD742(EntityLocoDieselCD742.class, "742_horn", 0.8F, "742_motor_slow", 0.65F, 40, "742_motor", 0.65F, 40, false), + locoCD754(EntityLocoDieselCD754.class, "742_horn", 0.8F, "742_motor_slow", 0.65F, 40, "742_motor", 0.65F, 40, false), + locoChME3(EntityLocoDieselChME3.class, "chme3_horn", 0.8F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, false), + locoGP7Red(EntityLocoDieselGP7Red.class, "gp_horn", 0.8F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, false), + locoBP4(EntityLocoElectricBP4.class, "nathan_k5La_3", 0.8F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, false), + locoFOLM1(EntityLocoDieselFOLM1.class, "nathan_p01235", 0.8F, "FM_38D_6_Notch8", 0.65F, 40, "FM_38D_6_Idle", 0.65F, 40, false), + locoKof_DB(EntityLocoDieselKof_DB.class, "chme3_horn", 0.8F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, false), + locoSD40(EntityLocoDieselSD40.class, "gp_horn", 0.8F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, false), + locoWLs40(EntityLocoDieselWLs40.class, "vl10_horn", 0.8F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, false), + locoBamboo(EntityLocoDieselBamboo.class, "gp_horn", 0F, "chme3_idle", 0.2F, 40, "chme3_idle", 0.1F, 40, false), + locoSD70(EntityLocoDieselSD70.class, "sd70_horn", 0.8F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, false), + locoDD35A(EntityLocoDieselDD35A.class, "sd70_horn", 0.8F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, false), + lococlass117(EntityLocoDieselClass117.class, "eu07_horn", 1F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, false), + lococlass121(EntityLocoDieselClass121.class, "eu07_horn", 1F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, false), + lococlass158(EntityLocoDieselClass158.class, "Class158Horn", 1.2F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, false), + lococlass153(EntityLocoDieselClass153.class, "british_two_tone", 0.8F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, false), + lococlass175(EntityLocoDieselClass175.class, "british_two_tone", 0.8F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, false), + lococlass156(EntityLocoDieselClass156.class, "british_two_tone", 0.8F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, false), + locoClass47(EntityLocoDieselClass47.class, "Class47Horn", 1F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, false), + locoShunter(EntityLocoDieselShunter.class, "british_two_tone", 0.8F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, false), + locoV60_DB(EntityLocoDieselV60_DB.class, "v60_horn", 0.8F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, false), + loco44tonSwitcher(EntityLocoDiesel44TonSwitcher.class, "v60_horn", 0.8F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, false), + locoF7(EntityLocoDieselEMDF7.class, "sd70_horn", 0.8F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, false), + locoF3(EntityLocoDieselEMDF3.class, "sd70_horn", 0.8F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, false), + MILW_H1044(EntityLocoDieselMILW_H1044.class, "eu07_horn", 0.8F, "vl10_idle", 0.65F, 40, "vl10_idle", 0.65F, 40, false), + locoDeltic(EntityLocoDieselDeltic.class, "british_two_tone", 0.8F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, + false), + locoClass66(EntityLocoDieselClass66.class, "british_two_tone", 0.8F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, + false), + locoCD151(EntityLocoElectricCD151.class, "mg_horn", 1F, "mg_run", 0.8F, 10, "mg_idle", 0.6F, 50, false), + locoLSSP7(EntityLocoSteamLSSP7.class, "american_steam_horn", 0.8F, "steam_run", 0.2F, 20, "steam_run", 0.2F, 20, true), + E103(EntityLocoElectricE103.class, "mg_horn", 1F, "mg_run", 0.6F, 8, "mg_idle", 0.4F, 50, false), + locoElectricMetro2000(EntityElectricMetro2000Motor.class, "4300_horn", 1F, "metro2000_running", 1.5F, 70, "chme3_idle", 1F, 20, true), + //Community Port + //Not American Stuff + DieselCD810(EntityLocoDieselCD810.class, "tram_horn", 0.8F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, true), + DieselCD814(EntityLocoDieselCD814.class, "tram_horn", 0.8F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, true), + DieselClass44(EntityLocoDieselClass44.class, "british_two_tone", 0.8F, "vl10_idle", 0.65F, 40, "vl10_idle", 0.65F, 40, false), + DieselKOF_III(EntityLocoDieselKof_III.class, "chme3_horn", 0.8F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, false), + DieselKOF_III_M(EntityLocoDieselKof_III_M.class, "chme3_horn", 0.8F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, false), + DieselSM42(EntityLocoDieselSM42.class, "sm42_chime", 0.8F, "sm42_run", 0.65F, 40, "sm42_idle", 0.65F, 40, false), + ElectricClass345(EntityElectricClass345.class, "subway_horn", 0.8F, "vl10_idle", 0.6F, 50, "vl10_idle", 0.6F, 50, false), + Electric440R(EntityLocoElectric440RFront.class, "446Horn", 0.8F, "vl10_idle", 0.6F, 50, "vl10_idle", 0.6F, 50, false), + ElectricBR155(EntityLocoElectricBR155.class, "br155_chime", 1F, "mg_run", 0.6F, 8, "mg_idle", 0.4F, 50, false), + ElectricDB143(EntityLocoElectricDB143.class, "mg_horn", 1F, "mg_run", 0.6F, 8, "mg_idle", 0.4F, 50, false), + ElectricDStockEngine(EntityElectricDstockEngine.class, "dstock_whistle", 0.8F, "vl10_idle", 0.6F, 50, "vl10_idle", 0.6F, 50, false), + ElectricClass230Engine(EntityElectricClass230.class, "446Horn", 0.8F, "vl10_idle", 0.6F, 50, "vl10_idle", 0.6F, 50, false), + ElectricEU07(EntityLocoElectricEU07.class, "mg_horn", 1F, "mg_run", 0.6F, 8, "mg_idle", 0.4F, 50, false), + ElectricFeve3300(EntityLocoElectricFeve3300.class, "446Horn", 0.8F, "vl10_idle", 0.6F, 50, "vl10_idle", 0.6F, 50, false), + ElectricILMA(EntityLocoElectricILMA.class, "subway_horn", 0.8F, "MILW_Notch8", 0.6F, 50, "MILW_Idle", 0.6F, 50, false), + ElectricILMB(EntityLocoElectricILMB.class, "subway_horn", 0.8F, "MILW_Notch8", 0.6F, 50, "MILW_Idle", 0.6F, 50, false), + ElectricLUEngine(EntityElectricLUengine.class, "dstock_whistle", 0.8F, "vl10_idle", 0.6F, 50, "vl10_idle", 0.6F, 50, false), + ElectricPCH120(EntityLocoElectricPCH120.class, "446Horn", 0.8F, "vl10_idle", 0.6F, 50, "vl10_idle", 0.6F, 50, false), + ElectricRenfe446Motor(EntityLocoElectricRenfe446Motor.class, "446Horn", 0.8F, "vl10_idle", 0.6F, 50, "vl10_idle", 0.6F, 50, false), + ElectricRenfe450Motor(EntityLocoElectricRenfe450Motor.class, "446Horn", 0.8F, "vl10_idle", 0.6F, 50, "vl10_idle", 0.6F, 50, false), + SteamC11(EntityLocoSteamC11.class, "class62_horn", 0.6F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), + SteamStarClass(EntityLocoSteamStarClass.class, "adler_whistle", 0.8F, "adler_run", 0.2F, 20, "adler_run", 0.2F, 20, true), + Class43(EntityLocoDieselClass43.class, "HSTHorn", 1.2F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, false), + Class90(EntityElectricClass90.class, "mg_horn", 1F, "Class868790Thrash", 0.8F, 10, "Class90Idle", 0.6F, 50, false), + Class91(EntityElectricClass91.class, "mg_horn", 1F, "Class868790Thrash", 0.8F, 10, "Class90Idle", 0.6F, 50, false), + Class321(EntityElectricClass321.class, "mg_horn", 1F, "vl10_idle", 0.8F, 10, "vl10_idle", 0.6F, 50, false), + Class389Front(EntityElectricClass389Front.class, "british_two_tone", 1F, "vl10_idle", 0.8F, 10, "vl10_idle", 0.6F, 50, false), + Class387Front(EntityElectricClass387Front.class, "british_two_tone", 1F, "vl10_idle", 0.8F, 10, "vl10_idle", 0.6F, 50, false), + Class378Front(EntityElectricClass378Front.class, "british_two_tone", 1F, "vl10_idle", 0.8F, 10, "vl10_idle", 0.6F, 50, false), + Class319Engine(EntityElectricClass319.class, "mg_horn", 1F, "vl10_idle", 0.8F, 10, "vl10_idle", 0.6F, 50, false), + Class390Front(EntityElectricClass390.class, "PendolinoHorn", 1.4F, "vl10_idle", 0.8F, 10, "vl10_idle", 0.6F, 50, false), + Class374Front(EntityElectricClass374.class, "mg_horn", 1F, "vl10_idle", 0.8F, 10, "vl10_idle", 0.6F, 50, false), + Class442DTS(EntityElectricClass442DTS.class, "british_two_tone", 1F, "vl10_idle", 0.8F, 10, "vl10_idle", 0.6F, 50, false), + asteri(EntityLocoSteamasteri.class, "asteri", 1F, "asteri", 0.2F, 212, "mg_idle", 0.6F, 50, false), + FGV4300(EntityLocoElectricFGV4300.class, "4300_horn", 1F, "vl10_idle", 0.65F, 10, "vl10_idle", 0.6F, 40, false), + Class162Engine(EntityElectricClass162.class, "mg_horn", 1F, "vl10_idle", 0.8F, 10, "vl10_idle", 0.6F, 50, false), + Class34(EntityLocoDieselClass34.class, "british_two_tone", 0.8F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, false), + TW305(EntityLocoElectricTW305.class, "tram_bell", 1F, "vl10_idle", 0.6F, 50, "vl10_idle", 0.6F, 50, false), + MetalTram(EntityLocoElectricMetalTram.class, "tram_bell", 1F, "vl10_idle", 0.6F, 50, "vl10_idle", 0.6F, 50, false), + KVB_2300(EntityElectricKVB_2300.class, "tram_bell", 1F, "mg_run", 0.6F, 50, "mg_run", 0.6F, 50, false), + MA100(EntityElectricMA100_Loco.class, "4300_horn", 1F, "mg_run", 0.6F, 50, "mg_run", 0.6F, 50, false), + B80C_A(EntityElectricB80C_A.class, "tram_bell", 1F, "mg_run", 0.6F, 50, "mg_run", 0.6F, 50, false), + CQ310(EntityElectricCQ310Loco.class, "subway_horn", 1F, "vl10_idle", 0.6F, 50, "vl10_idle", 0.6F, 50, false), + DuewagT4ER(EntityElectricDuewagT4ER.class, "tram_bell", 1F, "vl10_idle", 0.6F, 50, "vl10_idle", 0.6F, 50, false), + DuewagGT6ZRLoco(EntityElectricDuewagGT6ZRLoco.class, "tram_bell", 1F, "vl10_idle", 0.6F, 50, "vl10_idle", 0.6F, 50, false), + M8CLoco(EntityElectricM8CLoco.class, "tram_bell", 1F, "vl10_idle", 0.6F, 50, "vl10_idle", 0.6F, 50, false), + Class416Loco(EntityElectricClass416Loco.class, "british_two_tone", 1F, "vl10_idle", 0.6F, 50, "vl10_idle", 0.6F, 50, true), + DB420Loco(EntityElectricDB420Loco.class, "mg_horn", 1F, "mg_run", 0.6F, 8, "mg_idle", 0.4F, 50, false), + Class401Loco(EntityLocoElectricClass401.class, "mg_horn", 1F, "mg_run", 0.6F, 50, "vl10_idle", 0.6F, 50, false), + DuewagGT6ERLoco(EntityElectricDuewagGT6ERLoco.class, "tram_bell", 1F, "vl10_idle", 0.6F, 50, "vl10_idle", 0.6F, 50, false), + J50loco(EntityLocoSteamJ50.class, "a4_whistle", 1.25f, "steam_run", 0.5f, 25, "adler_run", 1f, 40, true), + SentinelY3(EntityLocoSteamSentinelY3.class, "adler_whistle", 1f, "steam_run", 0.75f, 10, "steam_run", 0.25f, 20, true), + Class142Front(EntityLocoDieselClass142.class, "british_two_tone", 1f, "chme3_idle", 0.75f, 10, "chme3_idle", 0.5f, 20, false), + Class143Front(EntityLocoDieselClass143.class, "british_two_tone", 1f, "FM_38D_6_Notch8", 0.6f, 10, "chme3_idle", 0.5f, 20, false), + Jacknail(EntitylocoSteamJacknail.class, "american_steam_horn", 1.5f, "steam_run", 0.6f, 25, "adler_run", 0.5f, 17, true), + MRcompound(EntitylocoSteamMRCompound.class, "steam_horn", 0.6F, "steam_run", 0.4F, 20, "steam_run", 0.4F, 20, true), + Bagnall(EntityLocoDieselBagnall.class, "v60_horn", 1f, "chme3_idle", 0.8f, 10, "chme3_idle", 0.5f, 20, false), + Class205(EntityLocoDieselClass205loco.class, "eu07_horn", 1F, "chme3_idle", 0.65F, 40, "chme3_idle", 0.65F, 40, false), + M8DNF1Loco(EntityElectricM8DNF1Loco.class, "tram_bell", 1F, "vl10_idle", 0.6F, 50, "vl10_idle", 0.6F, 50, false), - //American Stuff - Diesel3GS21B(EntityLocoDieselBapNRE3gs21b.class, "nathan_k3ha", 2.5F, "QSK19C_Notch8", 0.65F, 40, "QSK19C_Idle", 0.65F, 50, true), - DieselB23(EntityLocoDieselBapB23.class, "nathan_m3h", 2.5F, "GE_7FDL_12_Notch8", 0.65F, 40, "GE_7FDL_12_Idle", 0.65F, 50, true), - DieselCF7Bap(EntityLocoDieselBapCF7.class, "nathan_k3la_4", 0.65F, "EMD_16_567BC_Notch8", 0.65F, 10, "EMD_16_567BC_Idle", 0.8F, 3, true), - DieselCF7(EntityLocoDieselCF7.class, "nathan_k3la", 0.65F, "EMD_16_567BC_Notch8", 0.65F, 10, "EMD_16_567BC_Idle", 0.8F, 3, true), - DieselCF7Round(EntityLocoDieselBapCF7round.class, "leslie_s3lr", 0.65F, "EMD_16_567BC_Notch8", 0.65F, 10, "EMD_16_567BC_Idle", 0.8F, 3, true), - DieselC424(EntityLocoDieselBapC424.class, "leslie_s3", 2.5F, "ALCO_16_251C_Notch8", 0.5F, 20, "ALCO_16_251C_Idle", 0.5F, 20, false), - DieselC425(EntityLocoDieselBapC425.class, "leslie_s3l", 2.5F, "ALCO_16_251C_Notch8", 0.5F, 20, "ALCO_16_251C_Idle", 0.5F, 20, false), - DieselDash840B(EntityLocoDieselBapDash840B.class, "nathan_k3la_4", 2.5F, "GE_7FDL_16_Notch8", 0.65F, 40, "GE_7FDL_16_Idle", 0.65F, 50, true), - DieselDash840BB(EntityLocoDieselBapDash840BB.class, "Silence", 2.5F, "GE_7FDL_16_Notch8", 0.65F, 40, "GE_7FDL_16_Idle", 0.65F, 50, true), - DieselDash840BW(EntityLocoDieselBapDash840BW.class, "leslie_s3lr", 2.5F, "GE_7FDL_16_Notch8", 0.65F, 40, "GE_7FDL_16_Idle", 0.65F, 50, true), - DieselDash840C(EntityLocoDieselBapDash840C.class, "nathan_k5La", 2.5F, "GE_7FDL_16_Notch8", 0.65F, 40, "GE_7FDL_16_Idle", 0.65F, 50, true), - DieselDash9C44W(EntityLocoDieselBapDash9_44CW.class, "nathan_k3la_4", 2.5F, "GE_7FDL_16_Notch8", 0.65F, 40, "GE_7FDL_16_Idle", 0.65F, 50, true), - DieselDH643(EntityLocoDieselBapDH643.class, "nathan_p3_2", 2.5F, "ALCO_12_251C_Notch8", 0.5F, 20, "ALCO_12_251C_Idle", 0.5F, 20, false), - DieselES44(EntityLocoDieselBapES44.class, "nathan_k5hll", 1F, "GE_GEVO_12_Notch8", 0.65F, 20, "GE_GEVO_12_Idle", 0.75F, 50, true), - DieselF7A(EntityLocoDieselBapF7A.class, "leslie_a200_2", 1F, "EMD_16_567B_Notch8", 0.45F, 15, "EMD_16_567B_Idle", 0.75F, 3, true), - DieselF7B(EntityLocoDieselBapF7B.class, "Silence", 1F, "EMD_16_567B_Notch8", 0.45F, 15, "EMD_16_567B_Idle", 0.75F, 3, true), - DieselFOLM1B(EntityLocoDieselFOLM1B.class, "Silence", 0.0F,"FM_38D_6_Notch8", 0.65F, 40, "FM_38D_6_Idle", 0.65F, 40, false), - DieselGP7(EntityLocoDieselBapGP7.class, "nathan_m5", 1F, "EMD_16_567B_Notch8", 0.9F, 8, "EMD_16_567B_Idle", 0.7F, 50, false), - DieselGP7wccp(EntityLocoDieselWWCPGP7.class, "gp40_2_horn", 1F, "EMD_16_567B_Notch8", 0.9F, 8, "EMD_16_567B_Idle", 0.7F, 50, false), - DieselGP7b(EntityLocoDieselBapGP7b.class, "leslie_a200", 1F, "EMD_16_567B_Notch8", 0.9F, 8, "EMD_16_567B_Idle", 0.7F, 50, false), - DieselGP7u(EntityLocoDieselBapGP7u.class, "nathan_k3la_2", 1F, "EMD_16_567B_Notch8", 0.9F, 8, "EMD_16_567B_Idle", 0.7F, 50, false), - DieselGP9(EntityLocoDieselBapGP9.class, "nathan_p5", 1F, "EMD_16_567C_Notch8", 0.9F, 8, "EMD_16_567C_Idle", 0.7F, 50, false), - DieselGP13(EntityLocoDieselGP13.class, "nathan_p6", 0.8F, "EMD_16_645E3_Notch8", 0.65F, 35, "EMD_16_645E3_Idle", 0.65F, 40, false), - DieselGP15(EntityLocoDieselGP15.class,"nathan_k3ha", 2.5F, "EMD_12_645E_Notch8", 1F, 8, "EMD_12_645E_Idle", 1F, 50, false ), - DieselGP15Bap(EntityLocoDieselBapGP15.class,"nathan_k3la", 2.5F, "EMD_12_645E_Notch8", 1F, 8, "EMD_12_645E_Idle", 1F, 50, false ), - DieselGP30(EntityLocoDieselBapGP30.class, "nathan_p5", 0.8F, "EMD_16_567D3_Notch8", 0.65F, 35, "EMD_16_567D3_Idle", 0.65F, 40, false), - DieselGP38dash2(EntityLocoDieselBapGP38dash2.class, "nathan_k3la_3", 0.8F, "EMD_16_645E_Notch8", 0.65F, 35, "EMD_16_645E_Idle", 0.65F, 40, false), - DieselGP38dash9W(EntityLocoDieselBapGP38dash9W.class, "nathan_k5la_5", 0.8F, "EMD_16_645E_Notch8", 0.65F, 35, "EMD_16_645E_Idle", 0.65F, 40, false), - DieselGP49(EntityLocoDieselBapGP49.class,"nathan_p3_3", 2.5F, "EMD_12_645E3_Notch8", 1F, 8, "EMD_12_645E3_Idle", 1F, 50, false ), - DieselGE44Ton(EntityLocoDieselGE44Ton.class, "leslie_a125", 1.0F, "CAT_8_D17000_Notch8", 0.65F, 40, "CAT_8_D17000_Idle", 0.65F, 40, false), - DieselHH600(EntityLocoDieselBapHH660.class,"leslie_a200", 2.5F, "ALCO_6_531_Notch8", 0.7F, 40, "ALCO_6_531_Notch8", 0.7F, 60, false ), - DieselH1044(EntityLocoDieselBapH1044.class, "wabco_e2", 10F, "FM_38D_6_Notch8", 0.65F, 40, "FM_38D_6_Notch8", 0.45F, 40, false), - DieselML4000(EntityLocoDieselBapKrautt.class,"nathan_p3_2", 2.5F, "Maybach_MD870_16_Notch8", 0.7F, 40, "Maybach_MD870_16_Idle", 0.7F, 60, false ), - DieselRSD15(EntityLocoDieselBapRSD15.class, "leslie_rs5t", 1F, "ALCO_16_251C_Notch8", 0.50F, 40, "ALCO_16_251C_Idle", 0.65F, 40, true), - DieselS2(EntityLocoDieselBapAlcoS2.class, "leslie_a200", 1F, "ALCO_6_539T_Notch8", 0.50F, 40, "ALCO_6_539T_Idle", 0.65F, 40, true), - DieselSD9(EntityLocoDieselBapSD9.class, "nathan_m3", 1F, "EMD_16_567C_Notch8", 0.9F, 8, "EMD_16_567C_Idle", 0.7F, 50, false), - DieselSD40Dash2Bap(EntityLocoDieselBapSD40dash2.class, "leslie_rs3k_2", 2.5F, "EMD_16_645E3_Notch8", 0.65F, 10, "EMD_16_645E3_Idle", 0.8F, 5, true), - DieselSD70M(EntityLocoDieselBapSD70Mac.class, "nathan_k5la_4", 2F, "EMD_16_710G3B_Notch8", 0.5F, 40, "EMD_16_710G3B_Idle", 0.5F, 20, false), - DieselSWBLW(EntityLocoDieselBapBeep.class,"leslie_s3lr", 2.5F, "EMD_16_567BC_Idle", 0.7F, 40, "EMD_16_567BC_Notch8", 0.7F, 60, false ), - DieselSW1(EntityLocoDieselBapSW1.class, "leslie_a200", 0.9F, "EMD_6_567A_Notch8", 0.45F, 40, "EMD_6_567A_Idle", 0.75F, 40, false), - DieselSW8(EntityLocoDieselSW8.class, "leslie_a200", 0.9F, "EMD_8_567C_Notch8", 0.45F, 40, "EMD_8_567C_Idle", 0.75F, 40, false), - DieselSW1200(EntityLocoDieselBapSW1200.class, "nathan_p2", 0.65F, "EMD_12_567C_Notch8", 0.65F, 10, "EMD_12_567C_Idle", 0.8F, 3, true), - DieselSW1500(EntityLocoDieselBapSW1500.class, "nathan_p3", 0.65F, "EMD_12_645E_Notch8", 0.65F, 10, "EMD_12_645E_Idle", 0.8F, 3, true), - DieselU18B(EntityLocoDieselBapU18B.class, "leslie_s3", 2.5F, "GE_7FDL_8_Notch8", 0.65F, 40, "GE_7FDL_8_Idle", 0.65F, 50, true), - DieselU23B(EntityLocoDieselBapU23B.class, "leslie_s3l", 2.5F, "GE_7FDL_12_Notch8", 0.65F, 40, "GE_7FDL_12_Idle", 0.65F, 50, true), - DieselU36C(EntityLocoDieselBapU36C.class, "leslie_s3lr", 2.5F, "GE_FDL16_Notch8", 0.5F, 10, "GE_FDL16_Idle", 0.5F, 3, true), - ElectricGM6C(EntityLocoElectricBapGM6C.class, "nathan_p01235", 2.5F, "MILW_Notch8", 0.65F, 40, "MILW_Idle", 0.65F, 50, true), - ElectricEF1(EntityLocoElectricBapEF1.class, "wabco_e2", 2.5F, "MILW_Notch8", 0.65F, 40, "MILW_Idle", 0.65F, 50, true), - ElectricEF1B(EntityLocoElectricBapEF1B.class, "Silence", 0, "MILW_Notch8", 0.65F, 40, "MILW_Idle", 0.65F, 50, true), - ElectricEP1A(EntityLocoElectricBapEP1A.class, "wabco_e2", 2.5F, "MILW_Notch8", 0.65F, 40, "MILW_Idle", 0.65F, 50, true), - SteamClimax(EntityLocoSteamClimaxNew.class, "lukenhimer_3chime", 0.8F, "steam_run", 0.2F, 20, "steam_run", 0.2F, 20, true), - SteamOnion(EntityLocoOnion.class, "hancock_3chime", 0.8F, "steam_run", 0.2F, 20, "steam_run", 0.2F, 20, true), - SteamPE(EntityLocoSteamPELoco.class, "pe_chime", 0.8F, "pe_run", 0.2F, 20, "pe_idle", 0.2F, 20, true), - SteamVBShay(EntityLocoSteamVBShay2.class, "crosby_3chime", 0.8F, "steam_run", 0.2F, 20, "steam_run", 0.2F, 20, true), - SteamSkookum(EntityLocoSteamSkook.class,"skookum_whistle", 1F, "steam_run", 0.2F, 20, "steam_run", 0.2F, 20, true), - SteamShay3Truck(EntityLocoSteamShay3Truck.class, "lukenhimer_3chime", 1F, "steam_run", 0.2F, 20, "steam_run", 0.2F, 20, true), - DieselEMDE8A(EntityLocoDieselEMDE8A.class, "leslie_a200_2", 1F, "EMD_12_567B_Notch8", 0.45F, 15, "EMD_16_567B_Idle", 0.75F, 3, true), - DieselEMDE8B(EntityLocoDieselEMDE8B.class, "leslie_a200_2", 1F, "EMD_12_567B_Notch8", 0.45F, 15, "EMD_16_567B_Idle", 0.75F, 3, true), - DieselAlcoPA1(EntityLocoDieselAlcoPA1.class, "leslie_a200_2", 1F, "ALCO_16_244_Notch8", 0.25F, 40, "ALCO_16_244_Idle", 0.4F, 40, true), - DieselAlcoPB1(EntityLocoDieselAlcoPB1.class, "wabco_e2", 2.5F, "ALCO_16_244_Notch8", 0.25F, 40, "ALCO_16_244_Idle", 0.4F, 40, true), - DieselC415H(EntityLocoDieselC415H.class, "nathan_p14r2", 0.65F, "ALCO_8_251F_Notch8", 0.65F, 10, "ALCO_8_251F_Idle", 0.8F, 3, true), - DieselC415L(EntityLocoDieselC415L.class, "leslie_s3lr", 0.65F, "ALCO_8_251F_Notch8", 0.65F, 10, "ALCO_8_251F_Idle", 0.8F, 3, true), - DieselC415S(EntityLocoDieselC415S.class, "leslie_s3lr", 0.65F, "ALCO_8_251F_Notch8", 0.65F, 10, "ALCO_8_251F_Idle", 0.8F, 3, true), - DieselFMH24_66(EntityLocoDieselFMH24_66.class,"leslie_a200_2", 1F,"FM_38D_6_Notch8", 0.65F, 40, "FM_38D_6_Notch8", 0.45F, 40, false), - DieselFMH24_66L(EntityLocoDieselFMH24_66L.class,"leslie_a200_2", 1F,"FM_38D_6_Notch8", 0.65F, 40, "FM_38D_6_Notch8", 0.45F, 40, false), - DieselEMDE7A(EntityLocoDieselEMDE7A.class, "leslie_a200_2", 1F, "EMD_12_567B_Notch8", 0.45F, 15, "EMD_16_567B_Idle", 0.75F, 3, true), - DieselEMDE7B(EntityLocoDieselEMDE7B.class, "leslie_a200_2", 1F, "EMD_12_567B_Notch8", 0.45F, 15, "EMD_16_567B_Idle", 0.75F, 3, true), - DieselFMH16_66(EntityLocoDieselFMH16_66.class,"leslie_a200_2", 1F,"FM_38D_6_Notch8", 0.65F, 40, "FM_38D_6_Notch8", 0.45F, 40, false), + //American Stuff + Diesel3GS21B(EntityLocoDieselBapNRE3gs21b.class, "nathan_k3ha", 2.5F, "QSK19C_Notch8", 0.65F, 40, "QSK19C_Idle", 0.65F, 50, true), + DieselB23(EntityLocoDieselBapB23.class, "nathan_m3h", 2.5F, "GE_7FDL_12_Notch8", 0.65F, 40, "GE_7FDL_12_Idle", 0.65F, 50, true), + DieselCF7Bap(EntityLocoDieselBapCF7.class, "nathan_k3la_4", 0.65F, "EMD_16_567BC_Notch8", 0.65F, 10, "EMD_16_567BC_Idle", 0.8F, 3, true), + DieselCF7(EntityLocoDieselCF7.class, "nathan_k3la", 0.65F, "EMD_16_567BC_Notch8", 0.65F, 10, "EMD_16_567BC_Idle", 0.8F, 3, true), + DieselCF7Round(EntityLocoDieselBapCF7round.class, "leslie_s3lr", 0.65F, "EMD_16_567BC_Notch8", 0.65F, 10, "EMD_16_567BC_Idle", 0.8F, 3, true), + DieselC424(EntityLocoDieselBapC424.class, "leslie_s3", 2.5F, "ALCO_16_251C_Notch8", 0.5F, 20, "ALCO_16_251C_Idle", 0.5F, 20, false), + DieselC425(EntityLocoDieselBapC425.class, "leslie_s3l", 2.5F, "ALCO_16_251C_Notch8", 0.5F, 20, "ALCO_16_251C_Idle", 0.5F, 20, false), + DieselDash840B(EntityLocoDieselBapDash840B.class, "nathan_k3la_4", 2.5F, "GE_7FDL_16_Notch8", 0.65F, 40, "GE_7FDL_16_Idle", 0.65F, 50, true), + DieselDash840BB(EntityLocoDieselBapDash840BB.class, "Silence", 2.5F, "GE_7FDL_16_Notch8", 0.65F, 40, "GE_7FDL_16_Idle", 0.65F, 50, true), + DieselDash840BW(EntityLocoDieselBapDash840BW.class, "leslie_s3lr", 2.5F, "GE_7FDL_16_Notch8", 0.65F, 40, "GE_7FDL_16_Idle", 0.65F, 50, true), + DieselDash840C(EntityLocoDieselBapDash840C.class, "nathan_k5La", 2.5F, "GE_7FDL_16_Notch8", 0.65F, 40, "GE_7FDL_16_Idle", 0.65F, 50, true), + DieselDash9C44W(EntityLocoDieselBapDash9_44CW.class, "nathan_k3la_4", 2.5F, "GE_7FDL_16_Notch8", 0.65F, 40, "GE_7FDL_16_Idle", 0.65F, 50, true), + DieselDH643(EntityLocoDieselBapDH643.class, "nathan_p3_2", 2.5F, "ALCO_12_251C_Notch8", 0.5F, 20, "ALCO_12_251C_Idle", 0.5F, 20, false), + DieselES44(EntityLocoDieselBapES44.class, "nathan_k5hll", 1F, "GE_GEVO_12_Notch8", 0.65F, 20, "GE_GEVO_12_Idle", 0.75F, 50, true), + DieselF7A(EntityLocoDieselBapF7A.class, "leslie_a200_2", 1F, "EMD_16_567B_Notch8", 0.45F, 15, "EMD_16_567B_Idle", 0.75F, 3, true), + DieselF7B(EntityLocoDieselBapF7B.class, "Silence", 1F, "EMD_16_567B_Notch8", 0.45F, 15, "EMD_16_567B_Idle", 0.75F, 3, true), + DieselFOLM1B(EntityLocoDieselFOLM1B.class, "Silence", 0.0F, "FM_38D_6_Notch8", 0.65F, 40, "FM_38D_6_Idle", 0.65F, 40, false), + DieselGP7(EntityLocoDieselBapGP7.class, "nathan_m5", 1F, "EMD_16_567B_Notch8", 0.9F, 8, "EMD_16_567B_Idle", 0.7F, 50, false), + DieselGP7wccp(EntityLocoDieselWWCPGP7.class, "gp40_2_horn", 1F, "EMD_16_567B_Notch8", 0.9F, 8, "EMD_16_567B_Idle", 0.7F, 50, false), + DieselGP7b(EntityLocoDieselBapGP7b.class, "leslie_a200", 1F, "EMD_16_567B_Notch8", 0.9F, 8, "EMD_16_567B_Idle", 0.7F, 50, false), + DieselGP7u(EntityLocoDieselBapGP7u.class, "nathan_k3la_2", 1F, "EMD_16_567B_Notch8", 0.9F, 8, "EMD_16_567B_Idle", 0.7F, 50, false), + DieselGP9(EntityLocoDieselBapGP9.class, "nathan_p5", 1F, "EMD_16_567C_Notch8", 0.9F, 8, "EMD_16_567C_Idle", 0.7F, 50, false), + DieselGP13(EntityLocoDieselGP13.class, "nathan_p6", 0.8F, "EMD_16_645E3_Notch8", 0.65F, 35, "EMD_16_645E3_Idle", 0.65F, 40, false), + DieselGP15(EntityLocoDieselGP15.class, "nathan_k3ha", 2.5F, "EMD_12_645E_Notch8", 1F, 8, "EMD_12_645E_Idle", 1F, 50, false), + DieselGP15Bap(EntityLocoDieselBapGP15.class, "nathan_k3la", 2.5F, "EMD_12_645E_Notch8", 1F, 8, "EMD_12_645E_Idle", 1F, 50, false), + DieselGP30(EntityLocoDieselBapGP30.class, "nathan_p5", 0.8F, "EMD_16_567D3_Notch8", 0.65F, 35, "EMD_16_567D3_Idle", 0.65F, 40, false), + DieselGP38dash2(EntityLocoDieselBapGP38dash2.class, "nathan_k3la_3", 0.8F, "EMD_16_645E_Notch8", 0.65F, 35, "EMD_16_645E_Idle", 0.65F, 40, false), + DieselGP38dash9W(EntityLocoDieselBapGP38dash9W.class, "nathan_k5la_5", 0.8F, "EMD_16_645E_Notch8", 0.65F, 35, "EMD_16_645E_Idle", 0.65F, 40, false), + DieselGP49(EntityLocoDieselBapGP49.class, "nathan_p3_3", 2.5F, "EMD_12_645E3_Notch8", 1F, 8, "EMD_12_645E3_Idle", 1F, 50, false), + DieselGE44Ton(EntityLocoDieselGE44Ton.class, "leslie_a125", 1.0F, "CAT_8_D17000_Notch8", 0.65F, 40, "CAT_8_D17000_Idle", 0.65F, 40, false), + DieselHH600(EntityLocoDieselBapHH660.class, "leslie_a200", 2.5F, "ALCO_6_531_Notch8", 0.7F, 40, "ALCO_6_531_Notch8", 0.7F, 60, false), + DieselH1044(EntityLocoDieselBapH1044.class, "wabco_e2", 10F, "FM_38D_6_Notch8", 0.65F, 40, "FM_38D_6_Notch8", 0.45F, 40, false), + DieselML4000(EntityLocoDieselBapKrautt.class, "nathan_p3_2", 2.5F, "Maybach_MD870_16_Notch8", 0.7F, 40, "Maybach_MD870_16_Idle", 0.7F, 60, false), + DieselRSD15(EntityLocoDieselBapRSD15.class, "leslie_rs5t", 1F, "ALCO_16_251C_Notch8", 0.50F, 40, "ALCO_16_251C_Idle", 0.65F, 40, true), + DieselS2(EntityLocoDieselBapAlcoS2.class, "leslie_a200", 1F, "ALCO_6_539T_Notch8", 0.50F, 40, "ALCO_6_539T_Idle", 0.65F, 40, true), + DieselSD9(EntityLocoDieselBapSD9.class, "nathan_m3", 1F, "EMD_16_567C_Notch8", 0.9F, 8, "EMD_16_567C_Idle", 0.7F, 50, false), + DieselSD40Dash2Bap(EntityLocoDieselBapSD40dash2.class, "leslie_rs3k_2", 2.5F, "EMD_16_645E3_Notch8", 0.65F, 10, "EMD_16_645E3_Idle", 0.8F, 5, true), + DieselSD70M(EntityLocoDieselBapSD70Mac.class, "nathan_k5la_4", 2F, "EMD_16_710G3B_Notch8", 0.5F, 40, "EMD_16_710G3B_Idle", 0.5F, 20, false), + DieselSWBLW(EntityLocoDieselBapBeep.class, "leslie_s3lr", 2.5F, "EMD_16_567BC_Idle", 0.7F, 40, "EMD_16_567BC_Notch8", 0.7F, 60, false), + DieselSW1(EntityLocoDieselBapSW1.class, "leslie_a200", 0.9F, "EMD_6_567A_Notch8", 0.45F, 40, "EMD_6_567A_Idle", 0.75F, 40, false), + DieselSW8(EntityLocoDieselSW8.class, "leslie_a200", 0.9F, "EMD_8_567C_Notch8", 0.45F, 40, "EMD_8_567C_Idle", 0.75F, 40, false), + DieselSW1200(EntityLocoDieselBapSW1200.class, "nathan_p2", 0.65F, "EMD_12_567C_Notch8", 0.65F, 10, "EMD_12_567C_Idle", 0.8F, 3, true), + DieselSW1500(EntityLocoDieselBapSW1500.class, "nathan_p3", 0.65F, "EMD_12_645E_Notch8", 0.65F, 10, "EMD_12_645E_Idle", 0.8F, 3, true), + DieselU18B(EntityLocoDieselBapU18B.class, "leslie_s3", 2.5F, "GE_7FDL_8_Notch8", 0.65F, 40, "GE_7FDL_8_Idle", 0.65F, 50, true), + DieselU23B(EntityLocoDieselBapU23B.class, "leslie_s3l", 2.5F, "GE_7FDL_12_Notch8", 0.65F, 40, "GE_7FDL_12_Idle", 0.65F, 50, true), + DieselU36C(EntityLocoDieselBapU36C.class, "leslie_s3lr", 2.5F, "GE_FDL16_Notch8", 0.5F, 10, "GE_FDL16_Idle", 0.5F, 3, true), + ElectricGM6C(EntityLocoElectricBapGM6C.class, "nathan_p01235", 2.5F, "MILW_Notch8", 0.65F, 40, "MILW_Idle", 0.65F, 50, true), + ElectricEF1(EntityLocoElectricBapEF1.class, "wabco_e2", 2.5F, "MILW_Notch8", 0.65F, 40, "MILW_Idle", 0.65F, 50, true), + ElectricEF1B(EntityLocoElectricBapEF1B.class, "Silence", 0, "MILW_Notch8", 0.65F, 40, "MILW_Idle", 0.65F, 50, true), + ElectricEP1A(EntityLocoElectricBapEP1A.class, "wabco_e2", 2.5F, "MILW_Notch8", 0.65F, 40, "MILW_Idle", 0.65F, 50, true), + SteamClimax(EntityLocoSteamClimaxNew.class, "lukenhimer_3chime", 0.8F, "steam_run", 0.2F, 20, "steam_run", 0.2F, 20, true), + SteamOnion(EntityLocoOnion.class, "hancock_3chime", 0.8F, "steam_run", 0.2F, 20, "steam_run", 0.2F, 20, true), + SteamPE(EntityLocoSteamPELoco.class, "pe_chime", 0.8F, "pe_run", 0.2F, 20, "pe_idle", 0.2F, 20, true), + SteamVBShay(EntityLocoSteamVBShay2.class, "crosby_3chime", 0.8F, "steam_run", 0.2F, 20, "steam_run", 0.2F, 20, true), + SteamSkookum(EntityLocoSteamSkook.class, "skookum_whistle", 1F, "steam_run", 0.2F, 20, "steam_run", 0.2F, 20, true), + SteamShay3Truck(EntityLocoSteamShay3Truck.class, "lukenhimer_3chime", 1F, "steam_run", 0.2F, 20, "steam_run", 0.2F, 20, true), + DieselEMDE8A(EntityLocoDieselEMDE8A.class, "leslie_a200_2", 1F, "EMD_12_567B_Notch8", 0.45F, 15, "EMD_16_567B_Idle", 0.75F, 3, true), + DieselEMDE8B(EntityLocoDieselEMDE8B.class, "leslie_a200_2", 1F, "EMD_12_567B_Notch8", 0.45F, 15, "EMD_16_567B_Idle", 0.75F, 3, true), + DieselAlcoPA1(EntityLocoDieselAlcoPA1.class, "leslie_a200_2", 1F, "ALCO_16_244_Notch8", 0.25F, 40, "ALCO_16_244_Idle", 0.4F, 40, true), + DieselAlcoPB1(EntityLocoDieselAlcoPB1.class, "wabco_e2", 2.5F, "ALCO_16_244_Notch8", 0.25F, 40, "ALCO_16_244_Idle", 0.4F, 40, true), + DieselC415H(EntityLocoDieselC415H.class, "nathan_p14r2", 0.65F, "ALCO_8_251F_Notch8", 0.65F, 10, "ALCO_8_251F_Idle", 0.8F, 3, true), + DieselC415L(EntityLocoDieselC415L.class, "leslie_s3lr", 0.65F, "ALCO_8_251F_Notch8", 0.65F, 10, "ALCO_8_251F_Idle", 0.8F, 3, true), + DieselC415S(EntityLocoDieselC415S.class, "leslie_s3lr", 0.65F, "ALCO_8_251F_Notch8", 0.65F, 10, "ALCO_8_251F_Idle", 0.8F, 3, true), + DieselFMH24_66(EntityLocoDieselFMH24_66.class, "leslie_a200_2", 1F, "FM_38D_6_Notch8", 0.65F, 40, "FM_38D_6_Notch8", 0.45F, 40, false), + DieselFMH24_66L(EntityLocoDieselFMH24_66L.class, "leslie_a200_2", 1F, "FM_38D_6_Notch8", 0.65F, 40, "FM_38D_6_Notch8", 0.45F, 40, false), + DieselEMDE7A(EntityLocoDieselEMDE7A.class, "leslie_a200_2", 1F, "EMD_12_567B_Notch8", 0.45F, 15, "EMD_16_567B_Idle", 0.75F, 3, true), + DieselEMDE7B(EntityLocoDieselEMDE7B.class, "leslie_a200_2", 1F, "EMD_12_567B_Notch8", 0.45F, 15, "EMD_16_567B_Idle", 0.75F, 3, true), + DieselFMH16_66(EntityLocoDieselFMH16_66.class, "leslie_a200_2", 1F, "FM_38D_6_Notch8", 0.65F, 40, "FM_38D_6_Notch8", 0.45F, 40, false), - //Storage (Touch When Needed) + //Storage (Touch When Needed) /* DieselVO1000(com.jcirmodelsquad.tcjcir.vehicles.locomotives.DieselVO1000.class,"wabco_e2", 2.5F, "Baldwin_8VO_Notch8", 1F, 8, "Baldwin_8VO_Idle", 1F, 50, false ), DieselCF7R(com.jcirmodelsquad.tcjcir.vehicles.locomotives.DieselCF7R.class, "nathan_p012", 0.85F, "EMD_12_645E_Notch8", 0.65F, 10, "EMD_12_645E_Idle", 0.8F, 3, true), @@ -268,98 +268,97 @@ public enum EnumSounds implements TrainSoundRecord { DieselHHGregg(com.jcirmodelsquad.tcjcir.vehicles.locomotives.DieselHHgregg.class,"hhgregg600horn", 2.5F, "hhgregg600_run", 1F, 287, "hhgregg600_idle", 1F, 287, false ), Thanos(com.jcirmodelsquad.tcjcir.vehicles.locomotives.Thanos.class, "thanos_horn", 5, "thanos_run", 0.65F, 50, "thanos_idle", 0.65F, 50, false), BigMeme(com.jcirmodelsquad.tcjcir.vehicles.locomotives.BigMeme.class, "leslie_a425", 15, "aircompresser", 0.65F, 50, "aircompresser", 0.65F, 50, false), - */ - ; + */; - private Class entityClass; - private String horn; - private float hornVolume; - private String run; - private String idle; - private float runVolume; - private float idleVolume; - private int runSoundLenght; - private int idleSoundLenght; - private boolean soundChangeWithSpeed; + private Class entityClass; + private String horn; + private float hornVolume; + private String run; + private String idle; + private float runVolume; + private float idleVolume; + private int runSoundLength; + private int idleSoundLength; + private boolean soundChangeWithSpeed; - /** - * Defines the sounds for the locomotives Many locomotives have the same sound for run and idle - * - * @param entityClass - * @param horn - * @param hornVolume - * @param run - * @param runVolume - * @param runSoundLenght - * @param idle - * @param idleVolume - * @param idleSoundLenght - * @param soundChangeWithSpeed - */ - private EnumSounds(Class entityClass, String horn, float hornVolume, String run, float runVolume, int runSoundLenght, String idle, float idleVolume, int idleSoundLenght, boolean soundChangeWithSpeed) { - this.entityClass = entityClass; - this.horn = horn; - this.hornVolume = hornVolume; - this.run = run; - this.idle = idle; - this.runVolume = runVolume; - this.idleVolume = idleVolume; - this.runSoundLenght = runSoundLenght; - this.idleSoundLenght = idleSoundLenght; - this.soundChangeWithSpeed = soundChangeWithSpeed; - } + /** + * Defines the sounds for the locomotives Many locomotives have the same sound for run and idle + * + * @param entityClass + * @param horn + * @param hornVolume + * @param run + * @param runVolume + * @param runSoundLength + * @param idle + * @param idleVolume + * @param idleSoundLength + * @param soundChangeWithSpeed + */ + private EnumSounds(Class entityClass, String horn, float hornVolume, String run, float runVolume, int runSoundLength, String idle, float idleVolume, int idleSoundLength, boolean soundChangeWithSpeed) { + this.entityClass = entityClass; + this.horn = horn; + this.hornVolume = hornVolume; + this.run = run; + this.idle = idle; + this.runVolume = runVolume; + this.idleVolume = idleVolume; + this.runSoundLength = runSoundLength; + this.idleSoundLength = idleSoundLength; + this.soundChangeWithSpeed = soundChangeWithSpeed; + } - @Override - public Class getEntityClass() { - return entityClass; - } + @Override + public Class getEntityClass() { + return entityClass; + } - @Override - public String getHornString() { - if (horn == null || horn.isEmpty()) return horn; - return Info.resourceLocation + ":" + horn; - } + @Override + public String getHornString() { + if (horn == null || horn.isEmpty()) return horn; + return Info.resourceLocation + ":" + horn; + } - @Override - public String getRunString() { - if (run == null || run.isEmpty()) return run; - return Info.resourceLocation + ":" + run; - } + @Override + public String getRunString() { + if (run == null || run.isEmpty()) return run; + return Info.resourceLocation + ":" + run; + } - @Override - public String getIdleString() { - if (idle == null || idle.isEmpty()) return idle; - return Info.resourceLocation + ":" + idle; - } + @Override + public String getIdleString() { + if (idle == null || idle.isEmpty()) return idle; + return Info.resourceLocation + ":" + idle; + } - @Override - public Float getHornVolume() { - return hornVolume; - } + @Override + public Float getHornVolume() { + return hornVolume; + } - @Override - public Float getRunVolume() { - return runVolume; - } + @Override + public Float getRunVolume() { + return runVolume; + } - @Override - public Float getIdleVolume() { - return idleVolume; - } + @Override + public Float getIdleVolume() { + return idleVolume; + } - @Override - public int getRunSoundLenght() { - return runSoundLenght; - } + @Override + public int getRunSoundLength() { + return runSoundLength; + } - @Override - public int getIdleSoundLenght() { - return idleSoundLenght; - } + @Override + public int getIdleSoundLength() { + return idleSoundLength; + } - @Override - public boolean getSoundChangeWithSpeed() { - return soundChangeWithSpeed; - } + @Override + public boolean getSoundChangeWithSpeed() { + return soundChangeWithSpeed; + } } From c79f2c634a2321c2ad0bf1e64d6481a659ebb98a Mon Sep 17 00:00:00 2001 From: Jonathan Date: Thu, 23 Nov 2023 22:18:35 -0600 Subject: [PATCH 4/5] backport TC5 render to TCCE --- .../java/fexcraft/tmt/slim/ModelBase.java | 2 + .../fexcraft/tmt/slim/ModelRendererTurbo.java | 15 + .../train/client/TechneModelRenderer.java | 12 +- .../train/client/gui/sideTabs/SideTab.java | 6 +- .../client/gui/sideTabs/SideTabRecipes.java | 4 +- .../client/gui/sideTabs/SideTabSlots.java | 2 +- .../client/render/CustomModelRenderer.java | 5 +- .../render/ItemRenderAmericanStopper.java | 2 +- .../client/render/ItemRenderBridgePillar.java | 2 +- .../render/ItemRenderEmbeddedStopper.java | 2 +- .../client/render/ItemRenderMFPBWigWag.java | 2 +- .../ItemRenderModelMetroMadridPole.java | 2 +- .../client/render/ItemRenderSwitchStand.java | 2 +- .../java/train/client/render/ModelGTNG.java | 4 +- .../client/render/RenderAmericanStopper.java | 2 +- .../client/render/RenderBridgePillar.java | 2 +- .../client/render/RenderEmbeddedStopper.java | 2 +- .../java/train/client/render/RenderEnum.java | 2 +- .../train/client/render/RenderMFPBWigWag.java | 2 +- .../client/render/RenderMetroMadridPole.java | 2 +- .../client/render/RenderRollingStock.java | 3 +- .../client/render/RenderRotativeDigger.java | 2 +- .../client/render/RenderRotativeWheel.java | 2 +- .../client/render/RenderSwitchStand.java | 2 +- .../train/client/render/RenderZeppelins.java | 2 +- .../render/models/BR185_BogieModel.java | 4 +- .../render/models/BR185_EngineModel.java | 6 +- .../client/render/models/EU07Modernised.java | 4 +- .../client/render/models/Model042TGLYN.java | 4 +- .../render/models/Model100TonHopper.java | 6 +- .../render/models/Model10tonBrakeVan.java | 4 +- .../render/models/Model11000DOT111.java | 6 +- .../train/client/render/models/Model1225.java | 4 +- .../client/render/models/Model1225Tender.java | 4 +- .../render/models/Model20600DOT111.java | 6 +- .../render/models/Model29080DOT111.java | 6 +- .../render/models/Model4000GallonTender.java | 4 +- .../client/render/models/Model40highcube.java | 6 +- .../client/render/models/Model440R_Back.java | 6 +- .../client/render/models/Model440R_Front.java | 6 +- .../client/render/models/Model440R_Mid.java | 6 +- .../client/render/models/Model440R_Truck.java | 4 +- .../client/render/models/Model5Plank.java | 4 +- .../render/models/Model60centerbeam.java | 6 +- .../render/models/Model66centerbeam.java | 6 +- .../render/models/Model70TonTruck2.java | 4 +- .../render/models/Model70TonTruckEarly.java | 4 +- .../client/render/models/Model70Truck.java | 4 +- .../render/models/Model73centerbeam.java | 6 +- .../train/client/render/models/Model765.java | 4 +- .../render/models/Model81717_Motor.java | 10 +- .../render/models/Model81717_Passenger.java | 4 +- .../render/models/ModelA4Locomotive.java | 4 +- .../render/models/ModelACFGN60SeatCoach.java | 6 +- .../render/models/ModelACFGNRPO_30.java | 6 +- .../render/models/ModelASTFAutorack.java | 6 +- .../client/render/models/ModelAlcoPA.java | 6 +- .../render/models/ModelAlcoPATruck.java | 4 +- .../client/render/models/ModelAlcoPB.java | 6 +- .../client/render/models/ModelAlcoS2.java | 6 +- .../client/render/models/ModelAlcoSC4.java | 4 +- .../models/ModelAmericanFreightTrucks.java | 4 +- .../client/render/models/ModelAmfleet.java | 4 +- .../client/render/models/ModelAmfleet2.java | 4 +- .../train/client/render/models/ModelB23.java | 6 +- .../client/render/models/ModelB80C_A.java | 4 +- .../client/render/models/ModelB80C_B.java | 4 +- .../client/render/models/ModelBNLRV_A.java | 4 +- .../client/render/models/ModelBNLRV_B.java | 4 +- .../client/render/models/ModelBNSFGon.java | 6 +- .../train/client/render/models/ModelBP4.java | 6 +- .../client/render/models/ModelBP4Bogie.java | 4 +- .../client/render/models/ModelBR155.java | 6 +- .../client/render/models/ModelBR155Bogie.java | 4 +- .../client/render/models/ModelBR1_Tender.java | 4 +- .../client/render/models/ModelBRBrakeVan.java | 4 +- .../client/render/models/ModelBR_Black_5.java | 4 +- .../render/models/ModelBR_Black_5_Tender.java | 4 +- .../models/ModelBR_Britannia_Class.java | 4 +- .../client/render/models/ModelBR_E69.java | 2 +- .../render/models/ModelBR_MK2C_BSO.java | 4 +- .../render/models/ModelBR_MK2C_Coach.java | 4 +- .../render/models/ModelBR_MK2F_BSO.java | 4 +- .../render/models/ModelBR_MK2F_Coach.java | 4 +- .../render/models/ModelBR_MK2F_DBSO.java | 4 +- .../render/models/ModelBR_MK3_Buffet.java | 4 +- .../render/models/ModelBR_MK3_Coach.java | 4 +- .../client/render/models/ModelBR_MK3_DVT.java | 4 +- .../render/models/ModelBR_MK3_Pantograph.java | 4 +- .../render/models/ModelBR_MK4_Buffet.java | 4 +- .../render/models/ModelBR_MK4_Coach.java | 4 +- .../client/render/models/ModelBR_MK4_DVT.java | 4 +- .../client/render/models/ModelBR_Mk1_BG.java | 4 +- .../client/render/models/ModelBR_Mk1_BSO.java | 4 +- .../render/models/ModelBR_Mk1_Buffet.java | 4 +- .../models/ModelBR_Mk1_TPO_Stowage.java | 4 +- .../client/render/models/ModelBR_Mk1_TSO.java | 4 +- .../render/models/ModelBR_Mk3a_Coach.java | 4 +- .../client/render/models/ModelBW305.java | 4 +- .../client/render/models/ModelBagnall.java | 4 +- .../render/models/ModelBambooTrainCargo.java | 4 +- .../render/models/ModelBambooTrainEngine.java | 4 +- .../models/ModelBambooTrainPassenger.java | 4 +- .../render/models/ModelBapBlombergB.java | 4 +- .../client/render/models/ModelBapGP15.java | 6 +- .../train/client/render/models/ModelBeep.java | 6 +- .../render/models/ModelBettendorf_Trucks.java | 4 +- .../render/models/ModelBlombergA1ATruck.java | 4 +- .../client/render/models/ModelBlombergB.java | 4 +- .../render/models/ModelBlombergBnew.java | 4 +- .../render/models/ModelBloombergTrucks.java | 4 +- .../client/render/models/ModelBluntTruck.java | 4 +- .../render/models/ModelBoulderWagon.java | 4 +- .../client/render/models/ModelBoxCartUS.java | 2 +- .../client/render/models/ModelBuilder.java | 8 +- .../render/models/ModelBulkheadFlat.java | 6 +- .../client/render/models/ModelC415H.java | 6 +- .../client/render/models/ModelC415L.java | 6 +- .../client/render/models/ModelC415S.java | 6 +- .../client/render/models/ModelC41_080.java | 4 +- .../train/client/render/models/ModelC424.java | 6 +- .../train/client/render/models/ModelC425.java | 6 +- .../render/models/ModelC62FrontBogie.java | 4 +- .../render/models/ModelC62Locomotive.java | 6 +- .../render/models/ModelC62RearBogie.java | 4 +- .../client/render/models/ModelC62Tender.java | 6 +- .../render/models/ModelC62TenderBogie.java | 4 +- .../client/render/models/ModelCD010.java | 4 +- .../client/render/models/ModelCD014.java | 4 +- .../client/render/models/ModelCD151Bogie.java | 4 +- .../client/render/models/ModelCD754.java | 4 +- .../client/render/models/ModelCD810.java | 4 +- .../client/render/models/ModelCD814.java | 4 +- .../client/render/models/ModelCD914.java | 4 +- .../train/client/render/models/ModelCF7.java | 6 +- .../client/render/models/ModelCF7Angle.java | 6 +- .../client/render/models/ModelCF7round.java | 6 +- .../client/render/models/ModelCaboose.java | 2 +- .../client/render/models/ModelCaboose3.java | 2 +- .../render/models/ModelCabooseLogging.java | 2 +- .../render/models/ModelCabooseTruck2.java | 4 +- .../client/render/models/ModelCattleVan.java | 4 +- .../client/render/models/ModelChME3.java | 2 +- .../client/render/models/ModelCharB1.java | 8 +- .../client/render/models/ModelClass117.java | 4 +- .../render/models/ModelClass117Middle.java | 4 +- .../client/render/models/ModelClass121.java | 4 +- .../render/models/ModelClass121Trailer.java | 4 +- .../client/render/models/ModelClass142.java | 4 +- .../client/render/models/ModelClass143.java | 4 +- .../client/render/models/ModelClass144.java | 4 +- .../client/render/models/ModelClass153.java | 4 +- .../client/render/models/ModelClass156.java | 4 +- .../client/render/models/ModelClass158.java | 4 +- .../render/models/ModelClass158Middle.java | 4 +- .../render/models/ModelClass162CoachA.java | 4 +- .../render/models/ModelClass162CoachB.java | 4 +- .../render/models/ModelClass162Engine.java | 4 +- .../client/render/models/ModelClass175.java | 4 +- .../render/models/ModelClass175Coach.java | 4 +- .../client/render/models/ModelClass205.java | 4 +- .../render/models/ModelClass205tail.java | 4 +- .../render/models/ModelClass205tso.java | 4 +- .../client/render/models/ModelClass230.java | 4 +- .../render/models/ModelClass230Middle.java | 4 +- .../render/models/ModelClass319Engine.java | 4 +- .../render/models/ModelClass319Middle.java | 4 +- .../render/models/ModelClass319Panto.java | 4 +- .../client/render/models/ModelClass321.java | 4 +- .../render/models/ModelClass321Coach.java | 4 +- .../render/models/ModelClass321_Panto.java | 4 +- .../client/render/models/ModelClass34.java | 4 +- .../client/render/models/ModelClass345.java | 4 +- .../render/models/ModelClass345Coach.java | 4 +- .../render/models/ModelClass374Buffet.java | 4 +- .../render/models/ModelClass374Front.java | 4 +- .../models/ModelClass374PremierPanto.java | 4 +- .../models/ModelClass374StandardPanto.java | 4 +- .../render/models/ModelClass378Front.java | 4 +- .../render/models/ModelClass378Middle.java | 4 +- .../render/models/ModelClass387Coach.java | 4 +- .../render/models/ModelClass387Front.java | 4 +- .../render/models/ModelClass387Panto.java | 4 +- .../render/models/ModelClass389Front.java | 4 +- .../render/models/ModelClass389Middle.java | 4 +- .../render/models/ModelClass390Coach.java | 4 +- .../render/models/ModelClass390Front.java | 4 +- .../render/models/ModelClass390Panto.java | 4 +- .../render/models/ModelClass401Engine.java | 4 +- .../render/models/ModelClass401tail.java | 4 +- .../render/models/ModelClass416Engine.java | 4 +- .../render/models/ModelClass416Tail.java | 4 +- .../client/render/models/ModelClass43.java | 4 +- .../client/render/models/ModelClass44.java | 4 +- .../render/models/ModelClass442DTS.java | 4 +- .../render/models/ModelClass442MBLS.java | 4 +- .../client/render/models/ModelClass442TS.java | 4 +- .../client/render/models/ModelClass47.java | 4 +- .../client/render/models/ModelClass85.java | 6 +- .../client/render/models/ModelClass90.java | 4 +- .../client/render/models/ModelClass91.java | 4 +- .../client/render/models/ModelClimaxNew.java | 4 +- .../render/models/ModelCoranationClass.java | 4 +- .../models/ModelCoranationClassTender.java | 4 +- .../render/models/ModelD51FrontBogie.java | 4 +- .../models/ModelD51LongStreamlining.java | 6 +- .../render/models/ModelD51RearBogie.java | 4 +- .../models/ModelD51ShortStreamlining.java | 6 +- .../client/render/models/ModelD51Tender.java | 6 +- .../client/render/models/ModelDB143.java | 6 +- .../client/render/models/ModelDB143Bogis.java | 4 +- .../client/render/models/ModelDB420End.java | 4 +- .../render/models/ModelDB420Middle.java | 4 +- .../client/render/models/ModelDD35A.java | 4 +- .../client/render/models/ModelDD35B.java | 4 +- .../client/render/models/ModelDH643.java | 6 +- .../client/render/models/ModelDRGBaggage.java | 4 +- .../client/render/models/ModelDRGCombo.java | 4 +- .../render/models/ModelDRGPassenger.java | 4 +- .../render/models/ModelDRGW01400Caboose.java | 6 +- .../render/models/ModelDRWGStockCar.java | 4 +- .../client/render/models/ModelDash840B.java | 6 +- .../client/render/models/ModelDash840BB.java | 6 +- .../client/render/models/ModelDash840BW.java | 6 +- .../client/render/models/ModelDash840C.java | 6 +- .../client/render/models/ModelDash9_44CW.java | 6 +- .../render/models/ModelDeiticBogie.java | 4 +- .../client/render/models/ModelDeltic.java | 6 +- .../render/models/ModelDeltic_Bogie.java | 4 +- .../render/models/ModelDepressedFlatbed.java | 6 +- .../render/models/ModelDstockEngine.java | 4 +- .../render/models/ModelDstockPassenger.java | 4 +- .../render/models/ModelDuewagGT6ERLoco.java | 4 +- .../render/models/ModelDuewagGT6ERTail.java | 4 +- .../render/models/ModelDuewagGT6ZRLoco.java | 4 +- .../render/models/ModelDuewagGT6ZRTail.java | 4 +- .../client/render/models/ModelDuewagT4ER.java | 4 +- .../train/client/render/models/ModelE103.java | 10 +- .../client/render/models/ModelE10Bogie.java | 4 +- .../client/render/models/ModelE10DB.java | 10 +- .../train/client/render/models/ModelEF1.java | 6 +- .../train/client/render/models/ModelEF1B.java | 6 +- .../train/client/render/models/ModelEF1d.java | 4 +- .../client/render/models/ModelEF1tp.java | 4 +- .../client/render/models/ModelEMDE7A.java | 6 +- .../client/render/models/ModelEMDE7B.java | 6 +- .../client/render/models/ModelEMDE8A.java | 6 +- .../client/render/models/ModelEMDE8B.java | 6 +- .../client/render/models/ModelEMDF3.java | 6 +- .../client/render/models/ModelEMDF3B.java | 6 +- .../client/render/models/ModelEMDF7.java | 6 +- .../client/render/models/ModelEMDF7B.java | 6 +- .../train/client/render/models/ModelEP1A.java | 6 +- .../train/client/render/models/ModelES44.java | 6 +- .../client/render/models/ModelEWSClass66.java | 6 +- .../render/models/ModelEWSClass66_Bogie.java | 4 +- .../render/models/ModelExpressFreightVan.java | 4 +- .../train/client/render/models/ModelF7A.java | 6 +- .../train/client/render/models/ModelF7B.java | 6 +- .../train/client/render/models/ModelFB2.java | 4 +- .../train/client/render/models/ModelFB3.java | 4 +- .../render/models/ModelFGV4300Coach.java | 4 +- .../render/models/ModelFGV4300Motor.java | 4 +- .../render/models/ModelFGV4300Tail.java | 4 +- .../client/render/models/ModelFMH16_66.java | 6 +- .../client/render/models/ModelFMH24_66.java | 6 +- .../client/render/models/ModelFMH24_66L.java | 6 +- .../render/models/ModelFMTrimountTruck.java | 4 +- .../client/render/models/ModelFOLM1B.java | 10 +- .../client/render/models/ModelFOL_M1.java | 10 +- .../render/models/ModelFOL_M1Bogie.java | 4 +- .../train/client/render/models/ModelFT17.java | 8 +- .../client/render/models/ModelFlatCar.java | 2 +- .../render/models/ModelFlatCarLogs_DB.java | 2 +- .../render/models/ModelFlatCarRails_DB.java | 2 +- .../client/render/models/ModelFlatCarSU.java | 2 +- .../client/render/models/ModelFlatCarUS.java | 2 +- .../render/models/ModelFlatCarWoodUS.java | 2 +- .../client/render/models/ModelFlatCar_DB.java | 2 +- .../client/render/models/ModelFlexicoil2.java | 4 +- .../render/models/ModelFlexicoil_C1.java | 4 +- .../render/models/ModelFlexicoil_C2H.java | 4 +- .../client/render/models/ModelFowler.java | 4 +- .../render/models/ModelFowler4FTender.java | 4 +- .../render/models/ModelFreight7Plank.java | 8 +- .../render/models/ModelFreightCarL.java | 6 +- .../render/models/ModelFreightCart2.java | 2 +- .../render/models/ModelFreightCartUS.java | 2 +- .../models/ModelFreightCenterBeam_Empty.java | 2 +- .../models/ModelFreightCenterBeam_Wood_1.java | 2 +- .../models/ModelFreightCenterBeam_Wood_2.java | 2 +- .../render/models/ModelFreightClosed.java | 2 +- .../render/models/ModelFreightGondola_DB.java | 2 +- .../render/models/ModelFreightHopper.java | 2 +- .../render/models/ModelFreightOpen2.java | 2 +- .../render/models/ModelFreightTrailer.java | 2 +- .../render/models/ModelFreightTruckM.java | 4 +- .../render/models/ModelFreightWagenDB.java | 2 +- .../render/models/ModelFreightWellcar.java | 2 +- .../render/models/ModelFreightWood.java | 2 +- .../render/models/ModelFrictionTruck.java | 4 +- .../client/render/models/ModelGE25Ton.java | 4 +- .../client/render/models/ModelGE44Ton.java | 6 +- .../render/models/ModelGETonnerTruck.java | 4 +- .../train/client/render/models/ModelGM6C.java | 6 +- .../train/client/render/models/ModelGP13.java | 4 +- .../train/client/render/models/ModelGP15.java | 6 +- .../train/client/render/models/ModelGP30.java | 6 +- .../client/render/models/ModelGP38dash2.java | 6 +- .../client/render/models/ModelGP38dash9W.java | 6 +- .../train/client/render/models/ModelGP40.java | 1414 ++++++++--------- .../train/client/render/models/ModelGP49.java | 6 +- .../train/client/render/models/ModelGP7.java | 4 +- .../client/render/models/ModelGP7BAP.java | 6 +- .../train/client/render/models/ModelGP7b.java | 6 +- .../train/client/render/models/ModelGP7u.java | 6 +- .../train/client/render/models/ModelGP9.java | 6 +- .../client/render/models/ModelGS4Baggage.java | 6 +- .../client/render/models/ModelGS4Loco.java | 4 +- .../render/models/ModelGS4Passenger.java | 6 +- .../client/render/models/ModelGS4Tail.java | 6 +- .../client/render/models/ModelGS4Tavern.java | 6 +- .../client/render/models/ModelGS4Tender.java | 6 +- .../render/models/ModelGS4TenderBogie.java | 4 +- .../models/ModelGSI60FootBulkheadFlat.java | 6 +- .../render/models/ModelGWR101Class.java | 4 +- .../client/render/models/ModelGWR42xx.java | 4 +- .../client/render/models/ModelGWR72xx.java | 4 +- .../render/models/ModelGWRBrakeVan.java | 4 +- .../render/models/ModelGarrattBack.java | 4 +- .../render/models/ModelGarrattFront.java | 4 +- .../client/render/models/ModelGarrattMid.java | 4 +- .../client/render/models/ModelGermanPost.java | 6 +- .../client/render/models/ModelGrain.java | 2 +- .../client/render/models/ModelGs4Bogie.java | 4 +- .../client/render/models/ModelH1044.java | 6 +- .../client/render/models/ModelHBC1C.java | 6 +- .../client/render/models/ModelHH660.java | 6 +- .../client/render/models/ModelHTSCTruck.java | 4 +- .../client/render/models/ModelHallClass.java | 4 +- .../render/models/ModelHeavySteamLoco.java | 2 +- .../render/models/ModelHeavyweight.java | 4 +- .../models/ModelHeavyweightBaggage.java | 6 +- .../render/models/ModelHeavyweightBogie.java | 4 +- .../train/client/render/models/ModelHiAd.java | 4 +- .../client/render/models/ModelHopper5201.java | 6 +- .../client/render/models/ModelHopper6260.java | 6 +- .../client/render/models/ModelHopper_UK.java | 4 +- .../client/render/models/ModelHuskyStack.java | 6 +- .../render/models/ModelHuskyStackWellcar.java | 6 +- .../train/client/render/models/ModelICE1.java | 4 +- .../render/models/ModelICE1Passenger.java | 4 +- .../render/models/ModelICE1Restaurant.java | 4 +- .../train/client/render/models/ModelILMA.java | 4 +- .../train/client/render/models/ModelILMB.java | 4 +- .../client/render/models/ModelIceWagon.java | 4 +- .../models/ModelInterurbanSeries100.java | 4 +- .../train/client/render/models/ModelJ50.java | 4 +- .../client/render/models/ModelJukeBox.java | 2 +- .../render/models/ModelKClassRailBox.java | 6 +- .../client/render/models/ModelKOF_III.java | 4 +- .../client/render/models/ModelKOF_III_M.java | 4 +- .../client/render/models/ModelKVB_2300.java | 4 +- .../client/render/models/ModelKVB_2300_B.java | 4 +- .../client/render/models/ModelKingClass.java | 4 +- .../train/client/render/models/ModelKof.java | 2 +- .../client/render/models/ModelKrautt.java | 6 +- .../render/models/ModelKrauttTrucc.java | 4 +- .../client/render/models/ModelLSSP7.java | 4 +- .../client/render/models/ModelLUengine.java | 4 +- .../render/models/ModelLUpassenger.java | 4 +- .../client/render/models/ModelLightCrane.java | 6 +- .../train/client/render/models/ModelLoco.java | 2 +- .../client/render/models/ModelLoco3.java | 2 +- .../render/models/ModelLoco44TonSwitcher.java | 8 +- .../render/models/ModelLocoAlice040.java | 4 +- .../render/models/ModelLocoBR01_DB.java | 4 +- .../render/models/ModelLocoBR80_DB.java | 4 +- .../client/render/models/ModelLocoC41.java | 4 +- .../client/render/models/ModelLocoC41T.java | 4 +- .../render/models/ModelLocoC62Class.java | 2 +- .../client/render/models/ModelLocoCD151.java | 10 +- .../render/models/ModelLocoCherepanov.java | 2 +- .../client/render/models/ModelLocoClimax.java | 4 +- .../models/ModelLocoDieselIC4_DSB_FG.java | 336 ++-- .../models/ModelLocoDieselIC4_DSB_FH.java | 270 ++-- .../models/ModelLocoDieselIC4_DSB_MG.java | 480 +++--- .../render/models/ModelLocoEr_Ussr.java | 2 +- .../client/render/models/ModelLocoForney.java | 2 +- .../models/ModelLocoHighSpeedZeroED.java | 2 +- .../render/models/ModelLocoMinetrain.java | 2 +- .../client/render/models/ModelLocoMogul.java | 2 +- .../render/models/ModelLocoPannier.java | 4 +- .../render/models/ModelLocoSteamAdler.java | 1094 ++++++------- .../render/models/ModelLocoSteamShay.java | 2 +- .../client/render/models/ModelLocoU57.java | 2 +- .../render/models/ModelLongCoveredHopper.java | 6 +- .../client/render/models/ModelM8CLoco.java | 4 +- .../client/render/models/ModelM8CTail.java | 4 +- .../client/render/models/ModelM8DNF1End.java | 4 +- .../render/models/ModelM8DNF1Middle1.java | 4 +- .../render/models/ModelM8DNF1Middle2.java | 4 +- .../client/render/models/ModelMA100_Loco.java | 4 +- .../client/render/models/ModelMA100_Tail.java | 4 +- .../render/models/ModelMILW40boxcar.java | 6 +- .../render/models/ModelMILWBaggage.java | 4 +- .../client/render/models/ModelMILWClassA.java | 4 +- .../render/models/ModelMILWPassenger.java | 4 +- .../client/render/models/ModelMILWTail.java | 4 +- .../client/render/models/ModelMILWTender.java | 4 +- .../client/render/models/ModelMILW_H1044.java | 6 +- .../render/models/ModelMILW_H1044_Bogie.java | 4 +- .../render/models/ModelMRCompoundTender.java | 4 +- .../render/models/ModelMWClass88BTE.java | 4 +- .../client/render/models/ModelMailWagen.java | 2 +- .../client/render/models/ModelMetalTram.java | 4 +- .../render/models/ModelMetalTramCoach.java | 4 +- .../render/models/ModelMetro2000Tail.java | 4 +- .../models/ModelMetroMadrid2000Loco.java | 4 +- .../models/ModelMetroMadrid3000Loco.java | 4 +- .../models/ModelMetroMadrid3000Passenger.java | 4 +- .../render/models/ModelMidlandcompound.java | 4 +- .../render/models/ModelMillGondola.java | 6 +- .../render/models/ModelMineralwagon.java | 4 +- .../client/render/models/ModelMinetrain.java | 4 +- .../render/models/ModelNMBS_HLE_18.java | 4 +- .../client/render/models/ModelNRE3gs21b.java | 6 +- .../models/ModelNewBlombergA1ATruck.java | 4 +- .../render/models/ModelNormalSteamTender.java | 2 +- .../render/models/ModelOWO60Verticube.java | 6 +- .../client/render/models/ModelOnion.java | 4 +- .../render/models/ModelOnionTender.java | 4 +- .../client/render/models/ModelOpenWagon.java | 2 +- .../client/render/models/ModelOreJenny.java | 6 +- .../render/models/ModelOreJennyTrucc.java | 4 +- .../render/models/ModelOreJennyTruck2.java | 4 +- .../client/render/models/ModelPCH120Car.java | 6 +- .../render/models/ModelPCH120Commute.java | 6 +- .../client/render/models/ModelPCHBogie.java | 4 +- .../client/render/models/ModelPE_Loco.java | 6 +- .../models/ModelPE_Loco_FrontTruck.java | 4 +- .../render/models/ModelPE_Loco_RearTruck.java | 4 +- .../client/render/models/ModelPE_Tender.java | 6 +- .../client/render/models/ModelPEcoach.java | 6 +- .../client/render/models/ModelPEobserve.java | 6 +- .../client/render/models/ModelPEtrucc.java | 4 +- .../client/render/models/ModelPRRCaboose.java | 6 +- .../render/models/ModelPRRX31Wagon.java | 6 +- .../client/render/models/ModelPS140.java | 6 +- .../client/render/models/ModelPS150.java | 6 +- .../client/render/models/ModelPS160.java | 6 +- .../render/models/ModelPS30SeatParlor.java | 6 +- .../render/models/ModelPS52SeatCoach.java | 6 +- .../models/ModelPS54SeatCoach_Lounge.java | 6 +- .../ModelPS58SeatCoach_Observation.java | 6 +- .../render/models/ModelPS73Baggage.java | 6 +- .../render/models/ModelPS85Baggage.java | 6 +- .../render/models/ModelPSBM56SeatCoach.java | 6 +- .../render/models/ModelPSBMCombine.java | 6 +- .../render/models/ModelPSBMDiner_Lounge.java | 6 +- .../client/render/models/ModelPSCombine.java | 6 +- .../models/ModelPSLunchCounter_Lounge.java | 6 +- .../client/render/models/ModelPSRPO.java | 6 +- .../client/render/models/ModelPSRPOPM.java | 6 +- .../render/models/ModelPSSleeper565.java | 6 +- .../render/models/ModelPSSleeper565DRGW.java | 6 +- .../client/render/models/ModelPS_Truck.java | 4 +- .../render/models/ModelPScenterDiner.java | 6 +- .../models/ModelPSscrewyoutoomanydiners.java | 6 +- .../client/render/models/ModelPanzerI.java | 8 +- .../client/render/models/ModelPassenger.java | 2 +- .../client/render/models/ModelPassenger2.java | 2 +- .../client/render/models/ModelPassenger4.java | 2 +- .../client/render/models/ModelPassenger5.java | 2 +- .../client/render/models/ModelPassenger6.java | 2 +- .../client/render/models/ModelPassenger7.java | 2 +- .../render/models/ModelPassengerAdler.java | 850 +++++----- .../ModelPassengerHighSpeedCarZeroED.java | 2 +- .../models/ModelPassengerMinetrain.java | 4 +- .../models/ModelPassenger_1class_DB.java | 2 +- .../models/ModelPassenger_2class_DB.java | 2 +- .../models/ModelPassenger_DB_oriental.java | 4 +- .../ModelPassenger_DB_oriental_bogie.java | 4 +- .../render/models/ModelPropagandaCar.java | 6 +- .../client/render/models/ModelRSD15.java | 6 +- .../client/render/models/ModelRW_Type_2.java | 4 +- .../render/models/ModelRW_Type_2_Tender.java | 4 +- .../client/render/models/ModelRW_Type_3.java | 4 +- .../render/models/ModelReefer64Foot.java | 6 +- .../render/models/ModelRheingoldBogie.java | 4 +- .../models/ModelRheingoldPassenger.java | 6 +- .../ModelRheingoldPassenger_Dining1.java | 6 +- .../ModelRheingoldPassenger_Dining2.java | 6 +- .../ModelRheingoldPassenger_Panorama.java | 6 +- .../render/models/ModelRibbedHopper.java | 6 +- .../render/models/ModelRotaryExcavator.java | 2 +- .../models/ModelRotaryExcavator_Wheel.java | 2 +- .../render/models/ModelRoundHopper.java | 6 +- .../train/client/render/models/ModelSD40.java | 488 +++--- .../client/render/models/ModelSD40dash2.java | 6 +- .../train/client/render/models/ModelSD70.java | 2 +- .../client/render/models/ModelSD70Mac.java | 6 +- .../train/client/render/models/ModelSD9.java | 6 +- .../client/render/models/ModelSM42_Bogie.java | 4 +- .../client/render/models/ModelSNCB_M6.java | 4 +- .../render/models/ModelSNCB_M6_TAIL.java | 4 +- .../render/models/ModelSNCB_M6_Trucks.java | 4 +- .../train/client/render/models/ModelSW1.java | 6 +- .../client/render/models/ModelSW1200.java | 6 +- .../client/render/models/ModelSW1500.java | 6 +- .../train/client/render/models/ModelSW8.java | 6 +- .../client/render/models/ModelSentinelY3.java | 4 +- .../client/render/models/ModelShay3Truck.java | 4 +- .../render/models/ModelShay3TruckTender.java | 4 +- .../models/ModelShortCoveredHopper.java | 6 +- .../client/render/models/ModelShunter.java | 2 +- .../render/models/ModelShuntingTenderUK.java | 4 +- .../render/models/ModelSkeletonLogCar.java | 6 +- .../client/render/models/ModelSkookum.java | 4 +- .../render/models/ModelSkookumTender.java | 6 +- .../models/ModelSkookumTenderTrucc.java | 4 +- .../client/render/models/ModelSlateWagon.java | 4 +- .../render/models/ModelSmallFreightCart.java | 2 +- .../client/render/models/ModelSnowPlow.java | 6 +- .../render/models/ModelSouthern1102.java | 4 +- .../models/ModelSouthern1102Tender.java | 4 +- .../client/render/models/ModelStarCarFat.java | 4 +- .../render/models/ModelStarCarNotFat.java | 4 +- .../client/render/models/ModelStarClass.java | 4 +- .../render/models/ModelStarClassTender.java | 4 +- .../client/render/models/ModelStockCar.java | 2 +- .../render/models/ModelSwitchStandOff.java | 4 +- .../render/models/ModelSwitchStandOn.java | 4 +- .../train/client/render/models/ModelT262.java | 4 +- .../client/render/models/ModelTW305.java | 4 +- .../client/render/models/ModelTankWagon.java | 2 +- .../client/render/models/ModelTankWagon2.java | 2 +- .../models/ModelTankWagonThreeDome.java | 6 +- .../render/models/ModelTankWagonUS.java | 2 +- .../render/models/ModelTankWagon_DB.java | 2 +- .../client/render/models/ModelTankerUK.java | 4 +- .../client/render/models/ModelTender.java | 2 +- .../client/render/models/ModelTenderA4.java | 4 +- .../render/models/ModelTenderAdler.java | 722 ++++----- .../render/models/ModelTenderBR01_DB.java | 4 +- .../client/render/models/ModelTenderC41.java | 4 +- .../render/models/ModelTenderC62Class.java | 4 +- .../render/models/ModelTenderEr_Ussr.java | 2 +- .../render/models/ModelTenderHeavy.java | 2 +- .../client/render/models/ModelTenderU57.java | 2 +- .../client/render/models/ModelTipperUK.java | 4 +- .../train/client/render/models/ModelTram.java | 2 +- .../client/render/models/ModelTramNY.java | 2 +- .../render/models/ModelTrimountTrucc.java | 4 +- .../client/render/models/ModelTypeA.java | 4 +- .../client/render/models/ModelTypeB.java | 4 +- .../client/render/models/ModelTypeBnew.java | 4 +- .../train/client/render/models/ModelU18B.java | 6 +- .../train/client/render/models/ModelU23B.java | 6 +- .../train/client/render/models/ModelU36C.java | 6 +- .../client/render/models/ModelUSATCUK.java | 4 +- .../client/render/models/ModelUSATCUS.java | 4 +- .../train/client/render/models/ModelV60.java | 2 +- .../client/render/models/ModelVB040.java | 4 +- .../client/render/models/ModelVBShay.java | 4 +- .../train/client/render/models/ModelVL10.java | 2 +- .../render/models/ModelVentilatedVan.java | 4 +- .../client/render/models/ModelVersaLongi.java | 6 +- .../client/render/models/ModelVersaTrans.java | 6 +- .../client/render/models/ModelVertiBoi2.java | 4 +- .../client/render/models/ModelWLs40.java | 8 +- .../client/render/models/ModelWVcaboose.java | 6 +- .../render/models/ModelWWCP40FootBox.java | 6 +- .../render/models/ModelWWCPBlomberg.java | 4 +- .../render/models/ModelWWCPClass062T.java | 4 +- .../render/models/ModelWWCPFreightTruck.java | 4 +- .../client/render/models/ModelWWCPGP7.java | 6 +- .../client/render/models/ModelWagon.java | 2 +- .../render/models/ModelWatertransp.java | 2 +- .../client/render/models/ModelWellcar.java | 6 +- .../render/models/ModelWellcarBogie.java | 4 +- .../train/client/render/models/ModelWood.java | 2 +- .../render/models/ModelWoodchipHopper.java | 6 +- .../render/models/ModelWoodenTramCoach.java | 4 +- .../render/models/ModelWorkCaboose.java | 2 +- .../client/render/models/ModelWorkCart.java | 2 +- .../models/ModelZeppelinOneBalloon.java | 2 +- .../models/ModelZeppelinTwoBalloons.java | 2 +- .../client/render/models/Modelasteri.java | 4 +- .../render/models/Modelbuckeye3axletruck.java | 4 +- .../render/models/Modelcaboosetruck.java | 4 +- .../client/render/models/Modelcq310loco.java | 4 +- .../render/models/Modelfeve3300front.java | 4 +- .../render/models/Modelfeve3300rear.java | 4 +- .../render/models/Modelhicube60foot.java | 6 +- .../client/render/models/ModellocoC11.java | 6 +- .../render/models/ModellocoC11truckFront.java | 4 +- .../render/models/ModellocoC11truckRear.java | 4 +- .../render/models/Modelnewgevotruck.java | 4 +- .../render/models/Modelrenfe446end.java | 6 +- .../render/models/Modelrenfe446middle.java | 6 +- .../render/models/Modelrenfe450endA.java | 6 +- .../render/models/Modelrenfe450endB.java | 6 +- .../render/models/Modelrenfe450middle.java | 6 +- .../client/render/models/Modelrenfebogie.java | 4 +- .../java/train/client/render/models/SM42.java | 16 +- .../client/render/models/SteamCrane.java | 4 +- .../models/blocks/ModelAmericanStopper.java | 6 +- .../models/blocks/ModelBlockSignal.java | 2 +- .../models/blocks/ModelBridgePillar.java | 4 +- .../models/blocks/ModelEmbeddedStopper.java | 6 +- .../models/blocks/ModelGeneratorDiesel.java | 2 +- .../render/models/blocks/ModelLantern.java | 2 +- .../models/blocks/ModelLargeSlopeTCTrack.java | 24 +- .../blocks/ModelLeft45DegreeTurnTCTrack.java | 4 +- .../blocks/ModelLeftCurvedSlopeTCTrack.java | 24 +- .../blocks/ModelLeftDiamondCrossing.java | 4 +- .../blocks/ModelLeftParallelCurveTCTrack.java | 4 +- .../models/blocks/ModelLeftSwitchTCTrack.java | 4 +- .../models/blocks/ModelLeftTurnTCTrack.java | 4 +- .../render/models/blocks/ModelLights.java | 4 +- .../render/models/blocks/ModelMFPBWigWag.java | 13 +- .../ModelMediumDiagonalStraightTCTrack.java | 4 +- .../blocks/ModelMediumStraightTCTrack.java | 4 +- .../models/blocks/ModelMetroMadridOHW.java | 4 +- .../render/models/blocks/ModelPresent.java | 4 +- .../blocks/ModelRight45DegreeTurnTCTrack.java | 4 +- .../blocks/ModelRightCurvedSlopeTCTrack.java | 24 +- .../blocks/ModelRightDiamondCrossing.java | 4 +- .../ModelRightParallelCurveTCTrack.java | 4 +- .../blocks/ModelRightSwitchTCTrack.java | 4 +- .../models/blocks/ModelRightTurnTCTrack.java | 4 +- .../render/models/blocks/ModelRing.java | 2 +- .../models/blocks/ModelSlopeTCTrack.java | 24 +- .../ModelSmallDiagonalStraightTCTrack.java | 4 +- .../blocks/ModelSmallStraightTCTrack.java | 10 +- .../render/models/blocks/ModelStopper.java | 6 +- .../render/models/blocks/ModelTCBook.java | 8 +- .../blocks/ModelTwoWaysCrossingTCTrack.java | 4 +- .../blocks/ModelVeryLargeSlopeTCTrack.java | 24 +- .../render/models/blocks/ModelWaterWheel.java | 2 +- .../render/models/blocks/ModelWindMill.java | 2 +- .../models/blocks/ModelWindMillWheel.java | 2 +- .../train/client/render/models/boxmotor.java | 3 +- .../client/render/models/boxmotortrucks.java | 8 +- .../models/cabs/ModelD9_Cab4Window.java | 4 +- .../models/cabs/ModelD9_CabSquareWindow.java | 4 +- .../models/containers/Modelcontainer40.java | 4 +- .../models/containers/Modelcontainer53.java | 4 +- .../render/models/loads/ModelBigLog.java | 4 +- .../render/models/loads/ModelMixedLogs.java | 4 +- .../render/models/loads/Modelwrappedwood.java | 4 +- .../ItemRenderMILWSwitchStand.java | 2 +- .../renderSwitch/ItemRenderSpeedSign.java | 2 +- .../ItemRenderautoSwitchStand.java | 2 +- .../ItemRendercircleSwitchStand.java | 2 +- .../renderSwitch/ItemRenderkSignal.java | 2 +- .../renderSwitch/ItemRenderoverheadWire.java | 2 +- .../ItemRenderoverheadWireDouble.java | 2 +- .../ItemRenderowoSwitchStand.java | 2 +- .../ItemRenderowoYardSwitchStand.java | 2 +- .../renderSwitch/ItemRendersignalSpanish.java | 2 +- .../renderSwitch/RenderMILWSwitchStand.java | 2 +- .../render/renderSwitch/RenderSpeedSign.java | 2 +- .../renderSwitch/RenderautoSwitchStand.java | 2 +- .../renderSwitch/RendercircleSwitchStand.java | 2 +- .../render/renderSwitch/RenderkSignal.java | 2 +- .../renderSwitch/RenderoverheadWire.java | 2 +- .../RenderoverheadWireDouble.java | 2 +- .../renderSwitch/RenderowoSwitchStand.java | 2 +- .../RenderowoYardSwtichStand.java | 2 +- .../renderSwitch/RendersignalSpanish.java | 2 +- .../models/ModelMILWSwitchStandOff.java | 4 +- .../models/ModelMILWSwitchStandOn.java | 4 +- .../models/ModelautoSwitchOff.java | 4 +- .../models/ModelautoSwitchOn.java | 4 +- .../models/ModelcircleSwitchStandOff.java | 4 +- .../models/ModelcircleSwitchStandOn.java | 4 +- .../renderSwitch/models/ModelkSignal.java | 4 +- .../models/ModeloverheadWire.java | 4 +- .../models/ModeloverheadWireDouble.java | 4 +- .../models/ModeloverheadWireOn.java | 4 +- .../models/ModelowoSwitchStandOff.java | 4 +- .../models/ModelowoSwitchStandOn.java | 4 +- .../models/ModelowoYardSwitchStandOff.java | 4 +- .../models/ModelowoYardSwitchStandOn.java | 4 +- .../models/ModelsignalSpanish.java | 4 +- .../renderSwitch/models/ModelspeedSign.java | 4 +- .../train/common/adminbook/GUIAdminBook.java | 2 +- .../train/common/api/TrainRenderRecord.java | 3 +- .../entity/rollingStock/ModelE103Bogie.java | 4 +- .../render/FiftyThreeFootContainerRender.java | 2 +- .../render/FortyFootContainerRender.java | 2 +- .../render/ItemRenderFortyFootContainer.java | 6 +- {src/main/java/tmt => tmt}/Angle3D.java | 0 {src/main/java/tmt => tmt}/Coord2D.java | 0 .../java/tmt => tmt}/CylinderBuilder.java | 0 .../main/java/tmt => tmt}/FVTMFormatBase.java | 0 {src/main/java/tmt => tmt}/JsonToTMT.java | 0 {src/main/java/tmt => tmt}/Model.java | 0 {src/main/java/tmt => tmt}/ModelBase.java | 0 .../main/java/tmt => tmt}/ModelConverter.java | 0 {src/main/java/tmt => tmt}/ModelPool.java | 0 .../main/java/tmt => tmt}/ModelPoolEntry.java | 0 .../java/tmt => tmt}/ModelPoolObjEntry.java | 0 .../java/tmt => tmt}/ModelRendererTurbo.java | 0 {src/main/java/tmt => tmt}/README.md | 0 {src/main/java/tmt => tmt}/Shape2D.java | 0 {src/main/java/tmt => tmt}/Shape3D.java | 0 {src/main/java/tmt => tmt}/Tessellator.java | 0 {src/main/java/tmt => tmt}/TextureGroup.java | 0 .../java/tmt => tmt}/TexturedPolygon.java | 0 .../main/java/tmt => tmt}/TexturedVertex.java | 0 {src/main/java/tmt => tmt}/Vec3d.java | 0 {src/main/java/tmt => tmt}/Vec3f.java | 0 715 files changed, 4364 insertions(+), 4348 deletions(-) rename {src/main/java/tmt => tmt}/Angle3D.java (100%) rename {src/main/java/tmt => tmt}/Coord2D.java (100%) rename {src/main/java/tmt => tmt}/CylinderBuilder.java (100%) rename {src/main/java/tmt => tmt}/FVTMFormatBase.java (100%) rename {src/main/java/tmt => tmt}/JsonToTMT.java (100%) rename {src/main/java/tmt => tmt}/Model.java (100%) rename {src/main/java/tmt => tmt}/ModelBase.java (100%) rename {src/main/java/tmt => tmt}/ModelConverter.java (100%) rename {src/main/java/tmt => tmt}/ModelPool.java (100%) rename {src/main/java/tmt => tmt}/ModelPoolEntry.java (100%) rename {src/main/java/tmt => tmt}/ModelPoolObjEntry.java (100%) rename {src/main/java/tmt => tmt}/ModelRendererTurbo.java (100%) rename {src/main/java/tmt => tmt}/README.md (100%) rename {src/main/java/tmt => tmt}/Shape2D.java (100%) rename {src/main/java/tmt => tmt}/Shape3D.java (100%) rename {src/main/java/tmt => tmt}/Tessellator.java (100%) rename {src/main/java/tmt => tmt}/TextureGroup.java (100%) rename {src/main/java/tmt => tmt}/TexturedPolygon.java (100%) rename {src/main/java/tmt => tmt}/TexturedVertex.java (100%) rename {src/main/java/tmt => tmt}/Vec3d.java (100%) rename {src/main/java/tmt => tmt}/Vec3f.java (100%) diff --git a/src/main/java/fexcraft/tmt/slim/ModelBase.java b/src/main/java/fexcraft/tmt/slim/ModelBase.java index edf8909e67..b0828a2cb3 100644 --- a/src/main/java/fexcraft/tmt/slim/ModelBase.java +++ b/src/main/java/fexcraft/tmt/slim/ModelBase.java @@ -35,6 +35,8 @@ public class ModelBase extends ArrayList { public static boolean disableCache=false; public static boolean EnableAnimations=false; + public int textureWidth=512, textureHeight=512; + public void render(){ if(init){ initAllParts(); diff --git a/src/main/java/fexcraft/tmt/slim/ModelRendererTurbo.java b/src/main/java/fexcraft/tmt/slim/ModelRendererTurbo.java index 8cb4c7c0c9..c760ecd519 100644 --- a/src/main/java/fexcraft/tmt/slim/ModelRendererTurbo.java +++ b/src/main/java/fexcraft/tmt/slim/ModelRendererTurbo.java @@ -74,6 +74,15 @@ public ModelRendererTurbo(String s, int textureX, int textureY, float textureU, textureWidth = textureU; textureHeight = textureV; } + public ModelRendererTurbo(ModelBase modelbase, int textureX, int textureY){ + mirror = false; + showModel = true; + faces = new ArrayList<>(); + boxName = ""; + textureOffsetX = textureX; + textureOffsetY = textureY; + textureWidth = 0; + textureHeight = 0;} public ModelRendererTurbo(ModelBase modelbase, String s){this(s);} public ModelRendererTurbo(TurboList modelbase, String s){this(s);} @@ -1244,6 +1253,12 @@ public ModelRendererTurbo setTextureOffset(int x, int y){ return this; } + public ModelRendererTurbo setTextureSize(int x, int y){ + textureWidth = x; + textureHeight = y; + return this; + } + /** * Sets the position of the shape, relative to the model's origins. Note that changing * the offsets will not change the pivot of the model. diff --git a/src/main/java/train/client/TechneModelRenderer.java b/src/main/java/train/client/TechneModelRenderer.java index 590b1b7cad..eec96e8ae5 100644 --- a/src/main/java/train/client/TechneModelRenderer.java +++ b/src/main/java/train/client/TechneModelRenderer.java @@ -1,10 +1,10 @@ package train.client; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; -import tmt.TexturedPolygon; -import tmt.TexturedVertex; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.TexturedPolygon; +import fexcraft.tmt.slim.TexturedVertex; /** *

Techne model render

@@ -64,13 +64,13 @@ public ModelRendererTurbo addBox(float f, float f1, float f2, int i, int j, int faces[4] = generateFaces(new TexturedVertex[]{PositionTransformVertex1, PositionTransformVertex, PositionTransformVertex3, PositionTransformVertex2}, textureOffsetX + k, textureOffsetY + k, textureOffsetX + k + i, textureOffsetY + k + j, textureWidth, textureHeight); faces[5] = generateFaces(new TexturedVertex[]{PositionTransformVertex4, PositionTransformVertex5, PositionTransformVertex6, PositionTransformVertex7}, textureOffsetX + k + i + k, textureOffsetY + k, textureOffsetX + k + i + k + i, textureOffsetY + k + j, textureWidth, textureHeight); - textureGroup.get("0").poly.clear(); + /*textureGroup.get("0").poly.clear(); textureGroup.get("0").addPoly(faces[0]); textureGroup.get("0").addPoly(faces[1]); textureGroup.get("0").addPoly(faces[2]); textureGroup.get("0").addPoly(faces[3]); textureGroup.get("0").addPoly(faces[4]); - textureGroup.get("0").addPoly(faces[5]); + textureGroup.get("0").addPoly(faces[5]);*/ return this; } diff --git a/src/main/java/train/client/gui/sideTabs/SideTab.java b/src/main/java/train/client/gui/sideTabs/SideTab.java index 0761da24c6..c01a56b205 100644 --- a/src/main/java/train/client/gui/sideTabs/SideTab.java +++ b/src/main/java/train/client/gui/sideTabs/SideTab.java @@ -144,7 +144,7 @@ public void drawBackground(int x, int y) { GL11.glColor4f(colorR, colorG, colorB, 1.0F); - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, texture)); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, texture)); gui.drawTexturedModalRect(x + 24 - currentWidth, y + 2, 0, 256 - currentHeight + 2, 4, currentHeight - 2); gui.drawTexturedModalRect(x + 28 - currentWidth, y, 256 - currentWidth + 4, 0, currentWidth - 4, 4); @@ -156,7 +156,7 @@ public void drawBackground(int x, int y) { texture = Info.guiPrefix + "sideTab_right.png"; GL11.glColor4f(colorR, colorG, colorB, 1.0F); - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, texture)); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, texture)); gui.drawTexturedModalRect(x, y, 0, 256 - currentHeight, 4, currentHeight); gui.drawTexturedModalRect(x + 4, y, 256 - currentWidth + 4, 0, currentWidth - 4, 4); @@ -168,7 +168,7 @@ public void drawBackground(int x, int y) { } public void drawIcon(String texture, int iconIndex, int x, int y) { - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, texture)); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, texture)); if (side) { GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0F); diff --git a/src/main/java/train/client/gui/sideTabs/SideTabRecipes.java b/src/main/java/train/client/gui/sideTabs/SideTabRecipes.java index 6768315173..9ba2fcbd96 100644 --- a/src/main/java/train/client/gui/sideTabs/SideTabRecipes.java +++ b/src/main/java/train/client/gui/sideTabs/SideTabRecipes.java @@ -51,7 +51,7 @@ public void draw(int x, int y) { fontRenderer.drawString("Known recipes:", x - 70, y + 8, headerColour); //293240 - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.guiPrefix + "Icons.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.guiPrefix + "Icons.png")); drawRect(x - 59, y + 30, -40, 85, 0xff293240); drawRect(x - 58, y + 29, -41, 86, 0xff293240); @@ -65,7 +65,7 @@ public void draw(int x, int y) { if (recipes.isEmpty()) { fontRenderer.drawString("No recipes found", x - 93, y + 78, headerColour); - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.guiPrefix + "Icons.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.guiPrefix + "Icons.png")); gui.drawTexturedModalRect(x - 46, y + 33, 0, 16, 16, 16); gui.currentKnownItem = null; } else { diff --git a/src/main/java/train/client/gui/sideTabs/SideTabSlots.java b/src/main/java/train/client/gui/sideTabs/SideTabSlots.java index 2af2c98b8f..218251de6f 100644 --- a/src/main/java/train/client/gui/sideTabs/SideTabSlots.java +++ b/src/main/java/train/client/gui/sideTabs/SideTabSlots.java @@ -50,7 +50,7 @@ public void draw(int x, int y) { fontRenderer.drawString("Output slot", x - 69, y + 8, 0x000000); fontRenderer.drawString("Output slot", x - 70, y + 8, headerColour); - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.guiPrefix + "Icons.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.guiPrefix + "Icons.png")); drawRect(x - 91, y + 30, -4, 135, 0xff02142d); drawRect(x - 90, y + 29, -5, 136, 0xff02142d); diff --git a/src/main/java/train/client/render/CustomModelRenderer.java b/src/main/java/train/client/render/CustomModelRenderer.java index 60f694e5cd..bbc06e9ed3 100644 --- a/src/main/java/train/client/render/CustomModelRenderer.java +++ b/src/main/java/train/client/render/CustomModelRenderer.java @@ -1,11 +1,8 @@ package train.client.render; +import fexcraft.tmt.slim.*; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; -import tmt.TexturedPolygon; -import tmt.TexturedVertex; import java.util.ArrayList; diff --git a/src/main/java/train/client/render/ItemRenderAmericanStopper.java b/src/main/java/train/client/render/ItemRenderAmericanStopper.java index 32964aff2a..6fa5c7f217 100644 --- a/src/main/java/train/client/render/ItemRenderAmericanStopper.java +++ b/src/main/java/train/client/render/ItemRenderAmericanStopper.java @@ -56,7 +56,7 @@ public void renderItem(ItemRenderType type, ItemStack item, Object... data) { } private void renderAmericanStopper(float f, float g, float h, float rotation) { - tmt.Tessellator.bindTexture(texture); + fexcraft.tmt.slim.Tessellator.bindTexture(texture); GL11.glPushMatrix(); //start GL11.glTranslatef(f, g, h); //size GL11.glRotatef(rotation, f, g, h); diff --git a/src/main/java/train/client/render/ItemRenderBridgePillar.java b/src/main/java/train/client/render/ItemRenderBridgePillar.java index 83fa173640..7da84ebe70 100644 --- a/src/main/java/train/client/render/ItemRenderBridgePillar.java +++ b/src/main/java/train/client/render/ItemRenderBridgePillar.java @@ -4,7 +4,7 @@ import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.IItemRenderer; import org.lwjgl.opengl.GL11; -import tmt.Tessellator; +import fexcraft.tmt.slim.Tessellator; import train.common.library.Info; import static train.client.render.RenderBridgePillar.modelBridgePillar; diff --git a/src/main/java/train/client/render/ItemRenderEmbeddedStopper.java b/src/main/java/train/client/render/ItemRenderEmbeddedStopper.java index 3f7281f411..078746eb50 100644 --- a/src/main/java/train/client/render/ItemRenderEmbeddedStopper.java +++ b/src/main/java/train/client/render/ItemRenderEmbeddedStopper.java @@ -56,7 +56,7 @@ public void renderItem(ItemRenderType type, ItemStack item, Object... data) { } private void renderEmbeddedStopper(float f, float g, float h, float rotation) { - tmt.Tessellator.bindTexture(texture); + fexcraft.tmt.slim.Tessellator.bindTexture(texture); GL11.glPushMatrix(); //start GL11.glTranslatef(f, g, h); //size GL11.glRotatef(rotation, f, g, h); diff --git a/src/main/java/train/client/render/ItemRenderMFPBWigWag.java b/src/main/java/train/client/render/ItemRenderMFPBWigWag.java index ba10f5e990..6886989618 100644 --- a/src/main/java/train/client/render/ItemRenderMFPBWigWag.java +++ b/src/main/java/train/client/render/ItemRenderMFPBWigWag.java @@ -4,7 +4,7 @@ import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.IItemRenderer; import org.lwjgl.opengl.GL11; -import tmt.Tessellator; +import fexcraft.tmt.slim.Tessellator; import train.client.render.models.blocks.ModelMFPBWigWag; import train.common.library.Info; diff --git a/src/main/java/train/client/render/ItemRenderModelMetroMadridPole.java b/src/main/java/train/client/render/ItemRenderModelMetroMadridPole.java index 4de6c6f243..c2e76d12ba 100644 --- a/src/main/java/train/client/render/ItemRenderModelMetroMadridPole.java +++ b/src/main/java/train/client/render/ItemRenderModelMetroMadridPole.java @@ -4,7 +4,7 @@ import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.IItemRenderer; import org.lwjgl.opengl.GL11; -import tmt.Tessellator; +import fexcraft.tmt.slim.Tessellator; import train.client.render.models.blocks.ModelMetroMadridOHW; import train.common.library.Info; diff --git a/src/main/java/train/client/render/ItemRenderSwitchStand.java b/src/main/java/train/client/render/ItemRenderSwitchStand.java index 644e00db41..57fb83e9d3 100644 --- a/src/main/java/train/client/render/ItemRenderSwitchStand.java +++ b/src/main/java/train/client/render/ItemRenderSwitchStand.java @@ -4,7 +4,7 @@ import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.IItemRenderer; import org.lwjgl.opengl.GL11; -import tmt.Tessellator; +import fexcraft.tmt.slim.Tessellator; import train.client.render.models.ModelSwitchStandOn; import train.common.library.Info; diff --git a/src/main/java/train/client/render/ModelGTNG.java b/src/main/java/train/client/render/ModelGTNG.java index e28ac9ccb6..a185029b64 100644 --- a/src/main/java/train/client/render/ModelGTNG.java +++ b/src/main/java/train/client/render/ModelGTNG.java @@ -9,8 +9,8 @@ package train.client.render; import net.minecraft.entity.Entity; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelGTNG extends ModelBase { int textureX = 512; diff --git a/src/main/java/train/client/render/RenderAmericanStopper.java b/src/main/java/train/client/render/RenderAmericanStopper.java index 4df71e4757..1482e36a00 100644 --- a/src/main/java/train/client/render/RenderAmericanStopper.java +++ b/src/main/java/train/client/render/RenderAmericanStopper.java @@ -27,7 +27,7 @@ public void render(TileEntity var1, double x, double y, double z) { GL11.glPushMatrix(); GL11.glTranslated(x, y, z); - tmt.Tessellator.bindTexture(texture); + fexcraft.tmt.slim.Tessellator.bindTexture(texture); GL11.glTranslatef(0.5F, 0.0F, 0.5F); modelAmericanStopper.render(0.0625F, ((TileAmericanStopper) var1).getFacing()); diff --git a/src/main/java/train/client/render/RenderBridgePillar.java b/src/main/java/train/client/render/RenderBridgePillar.java index d3314c4e39..10f8cadaf4 100644 --- a/src/main/java/train/client/render/RenderBridgePillar.java +++ b/src/main/java/train/client/render/RenderBridgePillar.java @@ -4,7 +4,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.Tessellator; +import fexcraft.tmt.slim.Tessellator; import train.client.render.models.blocks.ModelBridgePillar; import train.common.library.Info; diff --git a/src/main/java/train/client/render/RenderEmbeddedStopper.java b/src/main/java/train/client/render/RenderEmbeddedStopper.java index d2f63f6861..6e7d43be08 100644 --- a/src/main/java/train/client/render/RenderEmbeddedStopper.java +++ b/src/main/java/train/client/render/RenderEmbeddedStopper.java @@ -27,7 +27,7 @@ public void render(TileEntity var1, double x, double y, double z) { GL11.glPushMatrix(); GL11.glTranslated(x, y, z); - tmt.Tessellator.bindTexture(texture); + fexcraft.tmt.slim.Tessellator.bindTexture(texture); GL11.glTranslatef(0.5F, 0.0F, 0.5F); modelEmbeddedStopper.render(0.0625F, ((TileEmbeddedStopper) var1).getFacing()); diff --git a/src/main/java/train/client/render/RenderEnum.java b/src/main/java/train/client/render/RenderEnum.java index 33b0b4e928..483922c2be 100644 --- a/src/main/java/train/client/render/RenderEnum.java +++ b/src/main/java/train/client/render/RenderEnum.java @@ -1,6 +1,6 @@ package train.client.render; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.models.*; import train.common.api.AbstractTrains; import train.common.api.EntityRollingStock; diff --git a/src/main/java/train/client/render/RenderMFPBWigWag.java b/src/main/java/train/client/render/RenderMFPBWigWag.java index 4bfecf7e2f..62dfcd3fde 100644 --- a/src/main/java/train/client/render/RenderMFPBWigWag.java +++ b/src/main/java/train/client/render/RenderMFPBWigWag.java @@ -5,7 +5,7 @@ import net.minecraft.util.ResourceLocation; import net.minecraftforge.common.util.ForgeDirection; import org.lwjgl.opengl.GL11; -import tmt.Tessellator; +import fexcraft.tmt.slim.Tessellator; import train.client.render.models.blocks.ModelMFPBWigWag; import train.common.library.Info; import train.common.tile.TileMFPBWigWag; diff --git a/src/main/java/train/client/render/RenderMetroMadridPole.java b/src/main/java/train/client/render/RenderMetroMadridPole.java index 80ea1a3ee0..7860f04959 100644 --- a/src/main/java/train/client/render/RenderMetroMadridPole.java +++ b/src/main/java/train/client/render/RenderMetroMadridPole.java @@ -28,7 +28,7 @@ public void render(TileEntity var1, double x, double y, double z) { GL11.glPushMatrix(); GL11.glTranslated(x, y, z); - tmt.Tessellator.bindTexture(texture); + fexcraft.tmt.slim.Tessellator.bindTexture(texture); GL11.glTranslatef(0.5F, 0.65F, 0.5F); diff --git a/src/main/java/train/client/render/RenderRollingStock.java b/src/main/java/train/client/render/RenderRollingStock.java index 8bbb77d9b6..ed3a33a4fd 100644 --- a/src/main/java/train/client/render/RenderRollingStock.java +++ b/src/main/java/train/client/render/RenderRollingStock.java @@ -10,7 +10,8 @@ import net.minecraft.util.ResourceLocation; import net.minecraft.util.Vec3; import org.lwjgl.opengl.GL11; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.Tessellator; import train.common.api.EntityRollingStock; import train.common.api.Locomotive; import train.common.core.util.TraincraftUtil; diff --git a/src/main/java/train/client/render/RenderRotativeDigger.java b/src/main/java/train/client/render/RenderRotativeDigger.java index 8644b22ef4..70730b6578 100644 --- a/src/main/java/train/client/render/RenderRotativeDigger.java +++ b/src/main/java/train/client/render/RenderRotativeDigger.java @@ -1,6 +1,6 @@ package train.client.render; -import net.minecraft.client.model.ModelBase; +import fexcraft.tmt.slim.ModelBase; import net.minecraft.client.renderer.entity.Render; import net.minecraft.entity.Entity; import net.minecraft.util.MathHelper; diff --git a/src/main/java/train/client/render/RenderRotativeWheel.java b/src/main/java/train/client/render/RenderRotativeWheel.java index 8c521d6153..b439aa195c 100644 --- a/src/main/java/train/client/render/RenderRotativeWheel.java +++ b/src/main/java/train/client/render/RenderRotativeWheel.java @@ -1,6 +1,6 @@ package train.client.render; -import net.minecraft.client.model.ModelBase; +import fexcraft.tmt.slim.ModelBase; import net.minecraft.client.renderer.entity.Render; import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; diff --git a/src/main/java/train/client/render/RenderSwitchStand.java b/src/main/java/train/client/render/RenderSwitchStand.java index bff467a3ff..6dcadebc4b 100644 --- a/src/main/java/train/client/render/RenderSwitchStand.java +++ b/src/main/java/train/client/render/RenderSwitchStand.java @@ -5,7 +5,7 @@ import net.minecraft.util.ResourceLocation; import net.minecraftforge.common.util.ForgeDirection; import org.lwjgl.opengl.GL11; -import tmt.Tessellator; +import fexcraft.tmt.slim.Tessellator; import train.client.render.models.ModelSwitchStandOff; import train.client.render.models.ModelSwitchStandOn; import train.common.library.Info; diff --git a/src/main/java/train/client/render/RenderZeppelins.java b/src/main/java/train/client/render/RenderZeppelins.java index b4af0ab449..9e98b2153b 100644 --- a/src/main/java/train/client/render/RenderZeppelins.java +++ b/src/main/java/train/client/render/RenderZeppelins.java @@ -1,6 +1,6 @@ package train.client.render; -import net.minecraft.client.model.ModelBase; +import fexcraft.tmt.slim.ModelBase; import net.minecraft.client.renderer.entity.Render; import net.minecraft.entity.Entity; import net.minecraft.util.MathHelper; diff --git a/src/main/java/train/client/render/models/BR185_BogieModel.java b/src/main/java/train/client/render/models/BR185_BogieModel.java index 7187061389..8c3ae52553 100644 --- a/src/main/java/train/client/render/models/BR185_BogieModel.java +++ b/src/main/java/train/client/render/models/BR185_BogieModel.java @@ -10,8 +10,8 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; public class BR185_BogieModel extends ModelBase { diff --git a/src/main/java/train/client/render/models/BR185_EngineModel.java b/src/main/java/train/client/render/models/BR185_EngineModel.java index c013b342a1..8192093e5f 100644 --- a/src/main/java/train/client/render/models/BR185_EngineModel.java +++ b/src/main/java/train/client/render/models/BR185_EngineModel.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.library.Info; public class BR185_EngineModel extends ModelBase diff --git a/src/main/java/train/client/render/models/EU07Modernised.java b/src/main/java/train/client/render/models/EU07Modernised.java index 80ac560d08..2439e065b3 100644 --- a/src/main/java/train/client/render/models/EU07Modernised.java +++ b/src/main/java/train/client/render/models/EU07Modernised.java @@ -6,8 +6,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; /** This file was exported via the (Default) FlansMod Exporter of
* FMT (Fex's Modelling Toolbox) v.2.6.3 © 2021 - Fexcraft.net
diff --git a/src/main/java/train/client/render/models/Model042TGLYN.java b/src/main/java/train/client/render/models/Model042TGLYN.java index 711d60413a..d4ade5925c 100644 --- a/src/main/java/train/client/render/models/Model042TGLYN.java +++ b/src/main/java/train/client/render/models/Model042TGLYN.java @@ -10,8 +10,8 @@ import net.minecraft.entity.Entity; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; public class Model042TGLYN extends ModelBase { diff --git a/src/main/java/train/client/render/models/Model100TonHopper.java b/src/main/java/train/client/render/models/Model100TonHopper.java index e9c8c68443..2cbfae52d0 100644 --- a/src/main/java/train/client/render/models/Model100TonHopper.java +++ b/src/main/java/train/client/render/models/Model100TonHopper.java @@ -12,9 +12,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.library.Info; public class Model100TonHopper extends ModelBase diff --git a/src/main/java/train/client/render/models/Model10tonBrakeVan.java b/src/main/java/train/client/render/models/Model10tonBrakeVan.java index aaa135a41a..d9cada431c 100644 --- a/src/main/java/train/client/render/models/Model10tonBrakeVan.java +++ b/src/main/java/train/client/render/models/Model10tonBrakeVan.java @@ -13,8 +13,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class Model10tonBrakeVan extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/Model11000DOT111.java b/src/main/java/train/client/render/models/Model11000DOT111.java index b38ff66435..e63b141cd2 100644 --- a/src/main/java/train/client/render/models/Model11000DOT111.java +++ b/src/main/java/train/client/render/models/Model11000DOT111.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.library.Info; public class Model11000DOT111 extends ModelConverter //Same as Filename diff --git a/src/main/java/train/client/render/models/Model1225.java b/src/main/java/train/client/render/models/Model1225.java index bac386fa7f..699cec91c4 100644 --- a/src/main/java/train/client/render/models/Model1225.java +++ b/src/main/java/train/client/render/models/Model1225.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located import net.minecraft.entity.Entity; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class Model1225 extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/Model1225Tender.java b/src/main/java/train/client/render/models/Model1225Tender.java index 9e3f12c840..ecf22857c4 100644 --- a/src/main/java/train/client/render/models/Model1225Tender.java +++ b/src/main/java/train/client/render/models/Model1225Tender.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located import net.minecraft.entity.Entity; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class Model1225Tender extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/Model20600DOT111.java b/src/main/java/train/client/render/models/Model20600DOT111.java index 46a858b2d6..563e11dd04 100644 --- a/src/main/java/train/client/render/models/Model20600DOT111.java +++ b/src/main/java/train/client/render/models/Model20600DOT111.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.library.Info; public class Model20600DOT111 extends ModelConverter //Same as Filename diff --git a/src/main/java/train/client/render/models/Model29080DOT111.java b/src/main/java/train/client/render/models/Model29080DOT111.java index 23c012c02a..40013e7892 100644 --- a/src/main/java/train/client/render/models/Model29080DOT111.java +++ b/src/main/java/train/client/render/models/Model29080DOT111.java @@ -12,9 +12,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/Model4000GallonTender.java b/src/main/java/train/client/render/models/Model4000GallonTender.java index 86b1230bfc..f1c476d8f8 100644 --- a/src/main/java/train/client/render/models/Model4000GallonTender.java +++ b/src/main/java/train/client/render/models/Model4000GallonTender.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located import net.minecraft.entity.Entity; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class Model4000GallonTender extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/Model40highcube.java b/src/main/java/train/client/render/models/Model40highcube.java index b09d1fc6bd..73eda51519 100644 --- a/src/main/java/train/client/render/models/Model40highcube.java +++ b/src/main/java/train/client/render/models/Model40highcube.java @@ -5,9 +5,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/Model440R_Back.java b/src/main/java/train/client/render/models/Model440R_Back.java index 0f4538e1f8..31bc97076b 100644 --- a/src/main/java/train/client/render/models/Model440R_Back.java +++ b/src/main/java/train/client/render/models/Model440R_Back.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/Model440R_Front.java b/src/main/java/train/client/render/models/Model440R_Front.java index 07061c74d6..07db72a2c3 100644 --- a/src/main/java/train/client/render/models/Model440R_Front.java +++ b/src/main/java/train/client/render/models/Model440R_Front.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/Model440R_Mid.java b/src/main/java/train/client/render/models/Model440R_Mid.java index e0223dcc09..7e2d278392 100644 --- a/src/main/java/train/client/render/models/Model440R_Mid.java +++ b/src/main/java/train/client/render/models/Model440R_Mid.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/Model440R_Truck.java b/src/main/java/train/client/render/models/Model440R_Truck.java index 7ab64fd10b..b9b76b331e 100644 --- a/src/main/java/train/client/render/models/Model440R_Truck.java +++ b/src/main/java/train/client/render/models/Model440R_Truck.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class Model440R_Truck extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/Model5Plank.java b/src/main/java/train/client/render/models/Model5Plank.java index 7e96c1ed7a..1af2657cf7 100644 --- a/src/main/java/train/client/render/models/Model5Plank.java +++ b/src/main/java/train/client/render/models/Model5Plank.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class Model5Plank extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/Model60centerbeam.java b/src/main/java/train/client/render/models/Model60centerbeam.java index c8e92d69c1..f160c81908 100644 --- a/src/main/java/train/client/render/models/Model60centerbeam.java +++ b/src/main/java/train/client/render/models/Model60centerbeam.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.client.render.models.loads.Modelwrappedwood; import train.common.api.AbstractTrains; import train.common.api.Freight; diff --git a/src/main/java/train/client/render/models/Model66centerbeam.java b/src/main/java/train/client/render/models/Model66centerbeam.java index f9e4c84753..c5a55f3769 100644 --- a/src/main/java/train/client/render/models/Model66centerbeam.java +++ b/src/main/java/train/client/render/models/Model66centerbeam.java @@ -12,9 +12,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.client.render.models.loads.Modelwrappedwood; import train.common.api.AbstractTrains; import train.common.api.Freight; diff --git a/src/main/java/train/client/render/models/Model70TonTruck2.java b/src/main/java/train/client/render/models/Model70TonTruck2.java index a0a720269f..bcec9cde62 100644 --- a/src/main/java/train/client/render/models/Model70TonTruck2.java +++ b/src/main/java/train/client/render/models/Model70TonTruck2.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class Model70TonTruck2 extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/Model70TonTruckEarly.java b/src/main/java/train/client/render/models/Model70TonTruckEarly.java index 84edfa447c..70841c0b10 100644 --- a/src/main/java/train/client/render/models/Model70TonTruckEarly.java +++ b/src/main/java/train/client/render/models/Model70TonTruckEarly.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class Model70TonTruckEarly extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/Model70Truck.java b/src/main/java/train/client/render/models/Model70Truck.java index d1d2d27b96..ce6ee0a192 100644 --- a/src/main/java/train/client/render/models/Model70Truck.java +++ b/src/main/java/train/client/render/models/Model70Truck.java @@ -3,8 +3,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class Model70Truck extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/Model73centerbeam.java b/src/main/java/train/client/render/models/Model73centerbeam.java index 925e0f2741..86132157a5 100644 --- a/src/main/java/train/client/render/models/Model73centerbeam.java +++ b/src/main/java/train/client/render/models/Model73centerbeam.java @@ -12,9 +12,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.client.render.models.loads.Modelwrappedwood; import train.common.api.AbstractTrains; import train.common.api.Freight; diff --git a/src/main/java/train/client/render/models/Model765.java b/src/main/java/train/client/render/models/Model765.java index f23d778f9f..4494b44e78 100644 --- a/src/main/java/train/client/render/models/Model765.java +++ b/src/main/java/train/client/render/models/Model765.java @@ -11,8 +11,8 @@ package train.client.render.models; //Path where the model is located import net.minecraft.entity.Entity; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class Model765 extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/Model81717_Motor.java b/src/main/java/train/client/render/models/Model81717_Motor.java index 8d9b7e3603..0059e8f1c0 100644 --- a/src/main/java/train/client/render/models/Model81717_Motor.java +++ b/src/main/java/train/client/render/models/Model81717_Motor.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.library.Info; public class Model81717_Motor extends ModelConverter //Same as Filename @@ -42,10 +42,10 @@ public void render(Entity entity, float f, float f1, float f2, float f3, float f for (ModelRendererTurbo mrt : bodyModel) { if (mrt.boxName.equals("lamp")) { Minecraft.getMinecraft().entityRenderer.disableLightmap(1D); - mrt.render(f5, false); + mrt.render(f5); Minecraft.getMinecraft().entityRenderer.enableLightmap(1D); } else { - mrt.render(f5, false); + mrt.render(f5); } } diff --git a/src/main/java/train/client/render/models/Model81717_Passenger.java b/src/main/java/train/client/render/models/Model81717_Passenger.java index d753aea179..49c5707d8b 100644 --- a/src/main/java/train/client/render/models/Model81717_Passenger.java +++ b/src/main/java/train/client/render/models/Model81717_Passenger.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class Model81717_Passenger extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelA4Locomotive.java b/src/main/java/train/client/render/models/ModelA4Locomotive.java index 57f15dcc2c..198cbbc3c0 100644 --- a/src/main/java/train/client/render/models/ModelA4Locomotive.java +++ b/src/main/java/train/client/render/models/ModelA4Locomotive.java @@ -10,8 +10,8 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelA4Locomotive extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelACFGN60SeatCoach.java b/src/main/java/train/client/render/models/ModelACFGN60SeatCoach.java index 27056ce6c7..1af6f03855 100644 --- a/src/main/java/train/client/render/models/ModelACFGN60SeatCoach.java +++ b/src/main/java/train/client/render/models/ModelACFGN60SeatCoach.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelACFGNRPO_30.java b/src/main/java/train/client/render/models/ModelACFGNRPO_30.java index 6f780a8579..ae030a9df3 100644 --- a/src/main/java/train/client/render/models/ModelACFGNRPO_30.java +++ b/src/main/java/train/client/render/models/ModelACFGNRPO_30.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelASTFAutorack.java b/src/main/java/train/client/render/models/ModelASTFAutorack.java index 441472b071..79766fab1a 100644 --- a/src/main/java/train/client/render/models/ModelASTFAutorack.java +++ b/src/main/java/train/client/render/models/ModelASTFAutorack.java @@ -12,9 +12,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.library.Info; public class ModelASTFAutorack extends ModelBase diff --git a/src/main/java/train/client/render/models/ModelAlcoPA.java b/src/main/java/train/client/render/models/ModelAlcoPA.java index 5cef217d93..84924045f8 100644 --- a/src/main/java/train/client/render/models/ModelAlcoPA.java +++ b/src/main/java/train/client/render/models/ModelAlcoPA.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelAlcoPATruck.java b/src/main/java/train/client/render/models/ModelAlcoPATruck.java index 4c75aeae12..dac71fc7e6 100644 --- a/src/main/java/train/client/render/models/ModelAlcoPATruck.java +++ b/src/main/java/train/client/render/models/ModelAlcoPATruck.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelAlcoPATruck extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelAlcoPB.java b/src/main/java/train/client/render/models/ModelAlcoPB.java index 06d8aa79ad..6c980ea9e1 100644 --- a/src/main/java/train/client/render/models/ModelAlcoPB.java +++ b/src/main/java/train/client/render/models/ModelAlcoPB.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelAlcoS2.java b/src/main/java/train/client/render/models/ModelAlcoS2.java index f11cdc83e5..6f8ab78f24 100644 --- a/src/main/java/train/client/render/models/ModelAlcoS2.java +++ b/src/main/java/train/client/render/models/ModelAlcoS2.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelAlcoSC4.java b/src/main/java/train/client/render/models/ModelAlcoSC4.java index 81dac3d1bf..ba4a70c541 100644 --- a/src/main/java/train/client/render/models/ModelAlcoSC4.java +++ b/src/main/java/train/client/render/models/ModelAlcoSC4.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelAlcoSC4 extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelAmericanFreightTrucks.java b/src/main/java/train/client/render/models/ModelAmericanFreightTrucks.java index 9f0600bf3e..e6454777d7 100644 --- a/src/main/java/train/client/render/models/ModelAmericanFreightTrucks.java +++ b/src/main/java/train/client/render/models/ModelAmericanFreightTrucks.java @@ -10,8 +10,8 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelAmericanFreightTrucks extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelAmfleet.java b/src/main/java/train/client/render/models/ModelAmfleet.java index 7a26a333d7..fd3fb3d734 100644 --- a/src/main/java/train/client/render/models/ModelAmfleet.java +++ b/src/main/java/train/client/render/models/ModelAmfleet.java @@ -11,8 +11,8 @@ import net.minecraft.entity.Entity; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelAmfleet extends ModelConverter //Same as Filename diff --git a/src/main/java/train/client/render/models/ModelAmfleet2.java b/src/main/java/train/client/render/models/ModelAmfleet2.java index 4a66c321e7..1337ca2978 100644 --- a/src/main/java/train/client/render/models/ModelAmfleet2.java +++ b/src/main/java/train/client/render/models/ModelAmfleet2.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelAmfleet2 extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelB23.java b/src/main/java/train/client/render/models/ModelB23.java index dcbdfd5817..3ae62d7d0a 100644 --- a/src/main/java/train/client/render/models/ModelB23.java +++ b/src/main/java/train/client/render/models/ModelB23.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelB80C_A.java b/src/main/java/train/client/render/models/ModelB80C_A.java index 5ac5ab8c27..0dda25143d 100644 --- a/src/main/java/train/client/render/models/ModelB80C_A.java +++ b/src/main/java/train/client/render/models/ModelB80C_A.java @@ -12,8 +12,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelB80C_A extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelB80C_B.java b/src/main/java/train/client/render/models/ModelB80C_B.java index c17c83a3d9..b792b811b4 100644 --- a/src/main/java/train/client/render/models/ModelB80C_B.java +++ b/src/main/java/train/client/render/models/ModelB80C_B.java @@ -12,8 +12,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelB80C_B extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelBNLRV_A.java b/src/main/java/train/client/render/models/ModelBNLRV_A.java index d72c2d210b..c0a8694669 100644 --- a/src/main/java/train/client/render/models/ModelBNLRV_A.java +++ b/src/main/java/train/client/render/models/ModelBNLRV_A.java @@ -12,8 +12,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelBNLRV_A extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelBNLRV_B.java b/src/main/java/train/client/render/models/ModelBNLRV_B.java index 83eeb6074b..6a331a98b6 100644 --- a/src/main/java/train/client/render/models/ModelBNLRV_B.java +++ b/src/main/java/train/client/render/models/ModelBNLRV_B.java @@ -12,8 +12,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelBNLRV_B extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelBNSFGon.java b/src/main/java/train/client/render/models/ModelBNSFGon.java index 13ab0fb88f..4aec299f37 100644 --- a/src/main/java/train/client/render/models/ModelBNSFGon.java +++ b/src/main/java/train/client/render/models/ModelBNSFGon.java @@ -7,9 +7,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.Freight; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelBP4.java b/src/main/java/train/client/render/models/ModelBP4.java index 32a5d77b71..6f9828460e 100644 --- a/src/main/java/train/client/render/models/ModelBP4.java +++ b/src/main/java/train/client/render/models/ModelBP4.java @@ -9,13 +9,13 @@ package train.client.render.models; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelBP4Bogie.java b/src/main/java/train/client/render/models/ModelBP4Bogie.java index d4143a35be..ae3e2441ad 100644 --- a/src/main/java/train/client/render/models/ModelBP4Bogie.java +++ b/src/main/java/train/client/render/models/ModelBP4Bogie.java @@ -1,7 +1,7 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelBP4Bogie extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelBR155.java b/src/main/java/train/client/render/models/ModelBR155.java index 96d9ff8d3d..7de688102b 100644 --- a/src/main/java/train/client/render/models/ModelBR155.java +++ b/src/main/java/train/client/render/models/ModelBR155.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelBR155Bogie.java b/src/main/java/train/client/render/models/ModelBR155Bogie.java index 9e4ed9a015..6131792cee 100644 --- a/src/main/java/train/client/render/models/ModelBR155Bogie.java +++ b/src/main/java/train/client/render/models/ModelBR155Bogie.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelBR155Bogie extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelBR1_Tender.java b/src/main/java/train/client/render/models/ModelBR1_Tender.java index ac42d50918..055aaebb91 100644 --- a/src/main/java/train/client/render/models/ModelBR1_Tender.java +++ b/src/main/java/train/client/render/models/ModelBR1_Tender.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelBR1_Tender extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelBRBrakeVan.java b/src/main/java/train/client/render/models/ModelBRBrakeVan.java index 83ff858b14..d63ab70974 100644 --- a/src/main/java/train/client/render/models/ModelBRBrakeVan.java +++ b/src/main/java/train/client/render/models/ModelBRBrakeVan.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelBRBrakeVan extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelBR_Black_5.java b/src/main/java/train/client/render/models/ModelBR_Black_5.java index 9478081287..c944a0edb8 100644 --- a/src/main/java/train/client/render/models/ModelBR_Black_5.java +++ b/src/main/java/train/client/render/models/ModelBR_Black_5.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelBR_Black_5 extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelBR_Black_5_Tender.java b/src/main/java/train/client/render/models/ModelBR_Black_5_Tender.java index 0f9b7254fc..a81968fb70 100644 --- a/src/main/java/train/client/render/models/ModelBR_Black_5_Tender.java +++ b/src/main/java/train/client/render/models/ModelBR_Black_5_Tender.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelBR_Black_5_Tender extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelBR_Britannia_Class.java b/src/main/java/train/client/render/models/ModelBR_Britannia_Class.java index 243b2373cc..0772c40cc0 100644 --- a/src/main/java/train/client/render/models/ModelBR_Britannia_Class.java +++ b/src/main/java/train/client/render/models/ModelBR_Britannia_Class.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelBR_Britannia_Class extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelBR_E69.java b/src/main/java/train/client/render/models/ModelBR_E69.java index 835401d175..8d06a881fe 100644 --- a/src/main/java/train/client/render/models/ModelBR_E69.java +++ b/src/main/java/train/client/render/models/ModelBR_E69.java @@ -2,7 +2,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; public class ModelBR_E69 extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelBR_MK2C_BSO.java b/src/main/java/train/client/render/models/ModelBR_MK2C_BSO.java index 820ee2a8e4..2c7d13ef47 100644 --- a/src/main/java/train/client/render/models/ModelBR_MK2C_BSO.java +++ b/src/main/java/train/client/render/models/ModelBR_MK2C_BSO.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelBR_MK2C_BSO extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelBR_MK2C_Coach.java b/src/main/java/train/client/render/models/ModelBR_MK2C_Coach.java index 24e5a93d64..3f4f2ca0a8 100644 --- a/src/main/java/train/client/render/models/ModelBR_MK2C_Coach.java +++ b/src/main/java/train/client/render/models/ModelBR_MK2C_Coach.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelBR_MK2C_Coach extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelBR_MK2F_BSO.java b/src/main/java/train/client/render/models/ModelBR_MK2F_BSO.java index b6198e8a72..d8ba90c1db 100644 --- a/src/main/java/train/client/render/models/ModelBR_MK2F_BSO.java +++ b/src/main/java/train/client/render/models/ModelBR_MK2F_BSO.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelBR_MK2F_BSO extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelBR_MK2F_Coach.java b/src/main/java/train/client/render/models/ModelBR_MK2F_Coach.java index e1f101c7d7..5a8e931702 100644 --- a/src/main/java/train/client/render/models/ModelBR_MK2F_Coach.java +++ b/src/main/java/train/client/render/models/ModelBR_MK2F_Coach.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelBR_MK2F_Coach extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelBR_MK2F_DBSO.java b/src/main/java/train/client/render/models/ModelBR_MK2F_DBSO.java index 1865fe5544..606e14a26f 100644 --- a/src/main/java/train/client/render/models/ModelBR_MK2F_DBSO.java +++ b/src/main/java/train/client/render/models/ModelBR_MK2F_DBSO.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelBR_MK2F_DBSO extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelBR_MK3_Buffet.java b/src/main/java/train/client/render/models/ModelBR_MK3_Buffet.java index 2fc4a669f8..e6a83f6c53 100644 --- a/src/main/java/train/client/render/models/ModelBR_MK3_Buffet.java +++ b/src/main/java/train/client/render/models/ModelBR_MK3_Buffet.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelBR_MK3_Buffet extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelBR_MK3_Coach.java b/src/main/java/train/client/render/models/ModelBR_MK3_Coach.java index 0d5e4221d9..5de2508524 100644 --- a/src/main/java/train/client/render/models/ModelBR_MK3_Coach.java +++ b/src/main/java/train/client/render/models/ModelBR_MK3_Coach.java @@ -12,8 +12,8 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelBR_MK3_Coach extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelBR_MK3_DVT.java b/src/main/java/train/client/render/models/ModelBR_MK3_DVT.java index 11bd8ffd3c..4c1e9967e1 100644 --- a/src/main/java/train/client/render/models/ModelBR_MK3_DVT.java +++ b/src/main/java/train/client/render/models/ModelBR_MK3_DVT.java @@ -12,8 +12,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelBR_MK3_DVT extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelBR_MK3_Pantograph.java b/src/main/java/train/client/render/models/ModelBR_MK3_Pantograph.java index 103cd287ff..9bf19668ae 100644 --- a/src/main/java/train/client/render/models/ModelBR_MK3_Pantograph.java +++ b/src/main/java/train/client/render/models/ModelBR_MK3_Pantograph.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelBR_MK3_Pantograph extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelBR_MK4_Buffet.java b/src/main/java/train/client/render/models/ModelBR_MK4_Buffet.java index 127ab34bfd..00c78ffcd3 100644 --- a/src/main/java/train/client/render/models/ModelBR_MK4_Buffet.java +++ b/src/main/java/train/client/render/models/ModelBR_MK4_Buffet.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelBR_MK4_Buffet extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelBR_MK4_Coach.java b/src/main/java/train/client/render/models/ModelBR_MK4_Coach.java index 4f2c669dcd..06d101e23e 100644 --- a/src/main/java/train/client/render/models/ModelBR_MK4_Coach.java +++ b/src/main/java/train/client/render/models/ModelBR_MK4_Coach.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelBR_MK4_Coach extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelBR_MK4_DVT.java b/src/main/java/train/client/render/models/ModelBR_MK4_DVT.java index d43df524b9..8011267aa8 100644 --- a/src/main/java/train/client/render/models/ModelBR_MK4_DVT.java +++ b/src/main/java/train/client/render/models/ModelBR_MK4_DVT.java @@ -12,8 +12,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelBR_MK4_DVT extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelBR_Mk1_BG.java b/src/main/java/train/client/render/models/ModelBR_Mk1_BG.java index f2149f6a5e..25db123a78 100644 --- a/src/main/java/train/client/render/models/ModelBR_Mk1_BG.java +++ b/src/main/java/train/client/render/models/ModelBR_Mk1_BG.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelBR_Mk1_BG extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelBR_Mk1_BSO.java b/src/main/java/train/client/render/models/ModelBR_Mk1_BSO.java index 0fae1a6dca..a5d669b82a 100644 --- a/src/main/java/train/client/render/models/ModelBR_Mk1_BSO.java +++ b/src/main/java/train/client/render/models/ModelBR_Mk1_BSO.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelBR_Mk1_BSO extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelBR_Mk1_Buffet.java b/src/main/java/train/client/render/models/ModelBR_Mk1_Buffet.java index 19ee344a86..a6e4313360 100644 --- a/src/main/java/train/client/render/models/ModelBR_Mk1_Buffet.java +++ b/src/main/java/train/client/render/models/ModelBR_Mk1_Buffet.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelBR_Mk1_Buffet extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelBR_Mk1_TPO_Stowage.java b/src/main/java/train/client/render/models/ModelBR_Mk1_TPO_Stowage.java index 1c32d594cb..d9e5fc06b1 100644 --- a/src/main/java/train/client/render/models/ModelBR_Mk1_TPO_Stowage.java +++ b/src/main/java/train/client/render/models/ModelBR_Mk1_TPO_Stowage.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelBR_Mk1_TPO_Stowage extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelBR_Mk1_TSO.java b/src/main/java/train/client/render/models/ModelBR_Mk1_TSO.java index f849abb9d1..3097d5e70b 100644 --- a/src/main/java/train/client/render/models/ModelBR_Mk1_TSO.java +++ b/src/main/java/train/client/render/models/ModelBR_Mk1_TSO.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelBR_Mk1_TSO extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelBR_Mk3a_Coach.java b/src/main/java/train/client/render/models/ModelBR_Mk3a_Coach.java index 4450061ffe..9dae036eef 100644 --- a/src/main/java/train/client/render/models/ModelBR_Mk3a_Coach.java +++ b/src/main/java/train/client/render/models/ModelBR_Mk3a_Coach.java @@ -10,8 +10,8 @@ package train.client.render.models; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelBR_Mk3a_Coach extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelBW305.java b/src/main/java/train/client/render/models/ModelBW305.java index 89b8fb92c3..70c3ef2d7c 100644 --- a/src/main/java/train/client/render/models/ModelBW305.java +++ b/src/main/java/train/client/render/models/ModelBW305.java @@ -12,8 +12,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelBW305 extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelBagnall.java b/src/main/java/train/client/render/models/ModelBagnall.java index b40267d5a0..743b3bb629 100644 --- a/src/main/java/train/client/render/models/ModelBagnall.java +++ b/src/main/java/train/client/render/models/ModelBagnall.java @@ -12,8 +12,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; import java.util.ArrayList; diff --git a/src/main/java/train/client/render/models/ModelBambooTrainCargo.java b/src/main/java/train/client/render/models/ModelBambooTrainCargo.java index 5a36843cc9..5348864452 100644 --- a/src/main/java/train/client/render/models/ModelBambooTrainCargo.java +++ b/src/main/java/train/client/render/models/ModelBambooTrainCargo.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelBambooTrainCargo extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelBambooTrainEngine.java b/src/main/java/train/client/render/models/ModelBambooTrainEngine.java index 98df069c32..962cb206ae 100644 --- a/src/main/java/train/client/render/models/ModelBambooTrainEngine.java +++ b/src/main/java/train/client/render/models/ModelBambooTrainEngine.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelBambooTrainEngine extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelBambooTrainPassenger.java b/src/main/java/train/client/render/models/ModelBambooTrainPassenger.java index ae3a67269b..98a9e1bfee 100644 --- a/src/main/java/train/client/render/models/ModelBambooTrainPassenger.java +++ b/src/main/java/train/client/render/models/ModelBambooTrainPassenger.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelBambooTrainPassenger extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelBapBlombergB.java b/src/main/java/train/client/render/models/ModelBapBlombergB.java index 034f26e489..aa4e9e8bd9 100644 --- a/src/main/java/train/client/render/models/ModelBapBlombergB.java +++ b/src/main/java/train/client/render/models/ModelBapBlombergB.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelBapBlombergB extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelBapGP15.java b/src/main/java/train/client/render/models/ModelBapGP15.java index dafaee32df..a3afcbd41b 100644 --- a/src/main/java/train/client/render/models/ModelBapGP15.java +++ b/src/main/java/train/client/render/models/ModelBapGP15.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelBeep.java b/src/main/java/train/client/render/models/ModelBeep.java index cdc275e0ba..a82bcdc2ed 100644 --- a/src/main/java/train/client/render/models/ModelBeep.java +++ b/src/main/java/train/client/render/models/ModelBeep.java @@ -5,9 +5,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelBettendorf_Trucks.java b/src/main/java/train/client/render/models/ModelBettendorf_Trucks.java index 14c4c0fffa..1d7140545d 100644 --- a/src/main/java/train/client/render/models/ModelBettendorf_Trucks.java +++ b/src/main/java/train/client/render/models/ModelBettendorf_Trucks.java @@ -10,8 +10,8 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelBettendorf_Trucks extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelBlombergA1ATruck.java b/src/main/java/train/client/render/models/ModelBlombergA1ATruck.java index e6b7435f4a..5ff2acb422 100644 --- a/src/main/java/train/client/render/models/ModelBlombergA1ATruck.java +++ b/src/main/java/train/client/render/models/ModelBlombergA1ATruck.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelBlombergA1ATruck extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelBlombergB.java b/src/main/java/train/client/render/models/ModelBlombergB.java index d123996610..6423600f20 100644 --- a/src/main/java/train/client/render/models/ModelBlombergB.java +++ b/src/main/java/train/client/render/models/ModelBlombergB.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelBlombergB extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelBlombergBnew.java b/src/main/java/train/client/render/models/ModelBlombergBnew.java index 4f8594c109..ae53d10d51 100644 --- a/src/main/java/train/client/render/models/ModelBlombergBnew.java +++ b/src/main/java/train/client/render/models/ModelBlombergBnew.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelBlombergBnew extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelBloombergTrucks.java b/src/main/java/train/client/render/models/ModelBloombergTrucks.java index 82db717c51..7e4d8b11fb 100644 --- a/src/main/java/train/client/render/models/ModelBloombergTrucks.java +++ b/src/main/java/train/client/render/models/ModelBloombergTrucks.java @@ -2,8 +2,8 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelBloombergTrucks extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelBluntTruck.java b/src/main/java/train/client/render/models/ModelBluntTruck.java index 91feaf7f31..18d4947bb3 100644 --- a/src/main/java/train/client/render/models/ModelBluntTruck.java +++ b/src/main/java/train/client/render/models/ModelBluntTruck.java @@ -10,8 +10,8 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelBluntTruck extends ModelBase diff --git a/src/main/java/train/client/render/models/ModelBoulderWagon.java b/src/main/java/train/client/render/models/ModelBoulderWagon.java index 478aec9306..9abe0fca62 100644 --- a/src/main/java/train/client/render/models/ModelBoulderWagon.java +++ b/src/main/java/train/client/render/models/ModelBoulderWagon.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelBoulderWagon extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelBoxCartUS.java b/src/main/java/train/client/render/models/ModelBoxCartUS.java index 02a579dbf1..08dab3d718 100644 --- a/src/main/java/train/client/render/models/ModelBoxCartUS.java +++ b/src/main/java/train/client/render/models/ModelBoxCartUS.java @@ -1,7 +1,7 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; import train.common.core.handlers.ConfigHandler; diff --git a/src/main/java/train/client/render/models/ModelBuilder.java b/src/main/java/train/client/render/models/ModelBuilder.java index 4f7cc7fb73..880e2a1d80 100644 --- a/src/main/java/train/client/render/models/ModelBuilder.java +++ b/src/main/java/train/client/render/models/ModelBuilder.java @@ -2,7 +2,7 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; import train.common.entity.rollingStock.EntityTracksBuilder; import train.common.library.Info; @@ -552,10 +552,10 @@ public void render(Entity entity, float f, float f1, float f2, float f3, float f lastframe = now; if (((EntityTracksBuilder) entity).getState()) { - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation,Info.trainsPrefix + "builder2.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation,Info.trainsPrefix + "builder2.png")); } else { - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation,Info.trainsPrefix + "builder.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation,Info.trainsPrefix + "builder.png")); } box.render(f5); @@ -652,7 +652,7 @@ public void render(Entity entity, float f, float f1, float f2, float f3, float f box90.render(f5); box91.render(f5); - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation,Info.trainsPrefix + "builder_rotor.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation,Info.trainsPrefix + "builder_rotor.png")); rotor1.render(f5); rotor2.render(f5); diff --git a/src/main/java/train/client/render/models/ModelBulkheadFlat.java b/src/main/java/train/client/render/models/ModelBulkheadFlat.java index 8682e75f51..b60ca03725 100644 --- a/src/main/java/train/client/render/models/ModelBulkheadFlat.java +++ b/src/main/java/train/client/render/models/ModelBulkheadFlat.java @@ -12,9 +12,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.library.Info; public class ModelBulkheadFlat extends ModelBase diff --git a/src/main/java/train/client/render/models/ModelC415H.java b/src/main/java/train/client/render/models/ModelC415H.java index 1c503dcea8..fe0e036236 100644 --- a/src/main/java/train/client/render/models/ModelC415H.java +++ b/src/main/java/train/client/render/models/ModelC415H.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelC415L.java b/src/main/java/train/client/render/models/ModelC415L.java index 59955154a7..61f8bd344b 100644 --- a/src/main/java/train/client/render/models/ModelC415L.java +++ b/src/main/java/train/client/render/models/ModelC415L.java @@ -14,9 +14,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelC415S.java b/src/main/java/train/client/render/models/ModelC415S.java index 67bea3969a..ef8be16faa 100644 --- a/src/main/java/train/client/render/models/ModelC415S.java +++ b/src/main/java/train/client/render/models/ModelC415S.java @@ -14,9 +14,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelC41_080.java b/src/main/java/train/client/render/models/ModelC41_080.java index 29b16ed71d..ba8a32c884 100644 --- a/src/main/java/train/client/render/models/ModelC41_080.java +++ b/src/main/java/train/client/render/models/ModelC41_080.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelC41_080 extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelC424.java b/src/main/java/train/client/render/models/ModelC424.java index 1eafc82b81..e06e420e86 100644 --- a/src/main/java/train/client/render/models/ModelC424.java +++ b/src/main/java/train/client/render/models/ModelC424.java @@ -14,9 +14,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelC425.java b/src/main/java/train/client/render/models/ModelC425.java index 6243fd110f..edc9ede218 100644 --- a/src/main/java/train/client/render/models/ModelC425.java +++ b/src/main/java/train/client/render/models/ModelC425.java @@ -14,9 +14,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelC62FrontBogie.java b/src/main/java/train/client/render/models/ModelC62FrontBogie.java index eb458978a5..1b2d88b556 100644 --- a/src/main/java/train/client/render/models/ModelC62FrontBogie.java +++ b/src/main/java/train/client/render/models/ModelC62FrontBogie.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelC62FrontBogie extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelC62Locomotive.java b/src/main/java/train/client/render/models/ModelC62Locomotive.java index 53228dce15..2c7401164f 100644 --- a/src/main/java/train/client/render/models/ModelC62Locomotive.java +++ b/src/main/java/train/client/render/models/ModelC62Locomotive.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.EntityRollingStock; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelC62RearBogie.java b/src/main/java/train/client/render/models/ModelC62RearBogie.java index 9827e44ea9..225468f85d 100644 --- a/src/main/java/train/client/render/models/ModelC62RearBogie.java +++ b/src/main/java/train/client/render/models/ModelC62RearBogie.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelC62RearBogie extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelC62Tender.java b/src/main/java/train/client/render/models/ModelC62Tender.java index 0ad44c02a6..5fbc5b2847 100644 --- a/src/main/java/train/client/render/models/ModelC62Tender.java +++ b/src/main/java/train/client/render/models/ModelC62Tender.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.EntityRollingStock; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelC62TenderBogie.java b/src/main/java/train/client/render/models/ModelC62TenderBogie.java index e7a90c2aa3..a43574cabe 100644 --- a/src/main/java/train/client/render/models/ModelC62TenderBogie.java +++ b/src/main/java/train/client/render/models/ModelC62TenderBogie.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelC62TenderBogie extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelCD010.java b/src/main/java/train/client/render/models/ModelCD010.java index 820e17248f..4e7ca737a9 100644 --- a/src/main/java/train/client/render/models/ModelCD010.java +++ b/src/main/java/train/client/render/models/ModelCD010.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelCD010 extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelCD014.java b/src/main/java/train/client/render/models/ModelCD014.java index 65143c5712..a7cf3dd5cb 100644 --- a/src/main/java/train/client/render/models/ModelCD014.java +++ b/src/main/java/train/client/render/models/ModelCD014.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelCD014 extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelCD151Bogie.java b/src/main/java/train/client/render/models/ModelCD151Bogie.java index 023adee074..88a73274fc 100644 --- a/src/main/java/train/client/render/models/ModelCD151Bogie.java +++ b/src/main/java/train/client/render/models/ModelCD151Bogie.java @@ -9,9 +9,9 @@ package train.client.render.models; -import net.minecraft.client.model.ModelBase; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; import net.minecraft.entity.Entity; -import tmt.ModelRendererTurbo; public class ModelCD151Bogie extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelCD754.java b/src/main/java/train/client/render/models/ModelCD754.java index 1a09ee7b7c..cbe0041b72 100644 --- a/src/main/java/train/client/render/models/ModelCD754.java +++ b/src/main/java/train/client/render/models/ModelCD754.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelCD754 extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelCD810.java b/src/main/java/train/client/render/models/ModelCD810.java index 8d0ead4ec7..48dc7f3735 100644 --- a/src/main/java/train/client/render/models/ModelCD810.java +++ b/src/main/java/train/client/render/models/ModelCD810.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelCD810 extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelCD814.java b/src/main/java/train/client/render/models/ModelCD814.java index 3be8accd74..65beb02132 100644 --- a/src/main/java/train/client/render/models/ModelCD814.java +++ b/src/main/java/train/client/render/models/ModelCD814.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelCD814 extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelCD914.java b/src/main/java/train/client/render/models/ModelCD914.java index e941ecdd4b..559c028bc4 100644 --- a/src/main/java/train/client/render/models/ModelCD914.java +++ b/src/main/java/train/client/render/models/ModelCD914.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelCD914 extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelCF7.java b/src/main/java/train/client/render/models/ModelCF7.java index 9605ae69f7..b961478e38 100644 --- a/src/main/java/train/client/render/models/ModelCF7.java +++ b/src/main/java/train/client/render/models/ModelCF7.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelCF7Angle.java b/src/main/java/train/client/render/models/ModelCF7Angle.java index 4593f1d2de..1dc8ae42a5 100644 --- a/src/main/java/train/client/render/models/ModelCF7Angle.java +++ b/src/main/java/train/client/render/models/ModelCF7Angle.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelCF7round.java b/src/main/java/train/client/render/models/ModelCF7round.java index a15be20b62..ad53acdc3f 100644 --- a/src/main/java/train/client/render/models/ModelCF7round.java +++ b/src/main/java/train/client/render/models/ModelCF7round.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelCaboose.java b/src/main/java/train/client/render/models/ModelCaboose.java index 37b02a1a29..090d3bfd33 100644 --- a/src/main/java/train/client/render/models/ModelCaboose.java +++ b/src/main/java/train/client/render/models/ModelCaboose.java @@ -1,7 +1,7 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; import train.common.core.handlers.ConfigHandler; diff --git a/src/main/java/train/client/render/models/ModelCaboose3.java b/src/main/java/train/client/render/models/ModelCaboose3.java index 02559c711b..8cef3a6db2 100644 --- a/src/main/java/train/client/render/models/ModelCaboose3.java +++ b/src/main/java/train/client/render/models/ModelCaboose3.java @@ -1,7 +1,7 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; import train.common.core.handlers.ConfigHandler; diff --git a/src/main/java/train/client/render/models/ModelCabooseLogging.java b/src/main/java/train/client/render/models/ModelCabooseLogging.java index 19f52777af..23191fb1d8 100644 --- a/src/main/java/train/client/render/models/ModelCabooseLogging.java +++ b/src/main/java/train/client/render/models/ModelCabooseLogging.java @@ -1,7 +1,7 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; public class ModelCabooseLogging extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelCabooseTruck2.java b/src/main/java/train/client/render/models/ModelCabooseTruck2.java index d9eaf50580..cfb4007268 100644 --- a/src/main/java/train/client/render/models/ModelCabooseTruck2.java +++ b/src/main/java/train/client/render/models/ModelCabooseTruck2.java @@ -11,8 +11,8 @@ import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelCabooseTruck2 extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelCattleVan.java b/src/main/java/train/client/render/models/ModelCattleVan.java index 202227fa03..60d657c9ca 100644 --- a/src/main/java/train/client/render/models/ModelCattleVan.java +++ b/src/main/java/train/client/render/models/ModelCattleVan.java @@ -10,8 +10,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; import train.common.api.Locomotive; public class ModelCattleVan extends ModelConverter //Same as Filename diff --git a/src/main/java/train/client/render/models/ModelChME3.java b/src/main/java/train/client/render/models/ModelChME3.java index cf7d1170a7..851eeb40a1 100644 --- a/src/main/java/train/client/render/models/ModelChME3.java +++ b/src/main/java/train/client/render/models/ModelChME3.java @@ -2,7 +2,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; public class ModelChME3 extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelCharB1.java b/src/main/java/train/client/render/models/ModelCharB1.java index 71c86fe088..394217aa7c 100644 --- a/src/main/java/train/client/render/models/ModelCharB1.java +++ b/src/main/java/train/client/render/models/ModelCharB1.java @@ -9,10 +9,10 @@ package train.client.render.models; //Path where the model is located -import tmt.Coord2D; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Shape2D; +import fexcraft.tmt.slim.Coord2D; +import fexcraft.tmt.slim.Shape2D; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelCharB1 extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelClass117.java b/src/main/java/train/client/render/models/ModelClass117.java index a8af81afbb..52f77d53e6 100644 --- a/src/main/java/train/client/render/models/ModelClass117.java +++ b/src/main/java/train/client/render/models/ModelClass117.java @@ -10,8 +10,8 @@ package train.client.render.models; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelClass117 extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelClass117Middle.java b/src/main/java/train/client/render/models/ModelClass117Middle.java index c26378d34c..2f3230aa62 100644 --- a/src/main/java/train/client/render/models/ModelClass117Middle.java +++ b/src/main/java/train/client/render/models/ModelClass117Middle.java @@ -10,8 +10,8 @@ package train.client.render.models; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelClass117Middle extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelClass121.java b/src/main/java/train/client/render/models/ModelClass121.java index 7f31ea060f..df9b6c87dd 100644 --- a/src/main/java/train/client/render/models/ModelClass121.java +++ b/src/main/java/train/client/render/models/ModelClass121.java @@ -10,8 +10,8 @@ package train.client.render.models; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelClass121 extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelClass121Trailer.java b/src/main/java/train/client/render/models/ModelClass121Trailer.java index d1bb3d8553..8061232957 100644 --- a/src/main/java/train/client/render/models/ModelClass121Trailer.java +++ b/src/main/java/train/client/render/models/ModelClass121Trailer.java @@ -10,8 +10,8 @@ package train.client.render.models; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelClass121Trailer extends ModelConverter//Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelClass142.java b/src/main/java/train/client/render/models/ModelClass142.java index ffcd99803e..6a1bc3a501 100644 --- a/src/main/java/train/client/render/models/ModelClass142.java +++ b/src/main/java/train/client/render/models/ModelClass142.java @@ -12,8 +12,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; import java.util.ArrayList; diff --git a/src/main/java/train/client/render/models/ModelClass143.java b/src/main/java/train/client/render/models/ModelClass143.java index c88b0b9ea8..316f046167 100644 --- a/src/main/java/train/client/render/models/ModelClass143.java +++ b/src/main/java/train/client/render/models/ModelClass143.java @@ -13,8 +13,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelClass143 extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelClass144.java b/src/main/java/train/client/render/models/ModelClass144.java index 80dac1dbe7..23352cebd7 100644 --- a/src/main/java/train/client/render/models/ModelClass144.java +++ b/src/main/java/train/client/render/models/ModelClass144.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelClass144 extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelClass153.java b/src/main/java/train/client/render/models/ModelClass153.java index ad111a677d..9910465035 100644 --- a/src/main/java/train/client/render/models/ModelClass153.java +++ b/src/main/java/train/client/render/models/ModelClass153.java @@ -12,8 +12,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; import java.util.ArrayList; diff --git a/src/main/java/train/client/render/models/ModelClass156.java b/src/main/java/train/client/render/models/ModelClass156.java index b2f6dc8a92..71b972be53 100644 --- a/src/main/java/train/client/render/models/ModelClass156.java +++ b/src/main/java/train/client/render/models/ModelClass156.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; import java.util.ArrayList; diff --git a/src/main/java/train/client/render/models/ModelClass158.java b/src/main/java/train/client/render/models/ModelClass158.java index f20dec1dc1..6bea47273e 100644 --- a/src/main/java/train/client/render/models/ModelClass158.java +++ b/src/main/java/train/client/render/models/ModelClass158.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; import java.util.ArrayList; diff --git a/src/main/java/train/client/render/models/ModelClass158Middle.java b/src/main/java/train/client/render/models/ModelClass158Middle.java index 2784be96f0..f986abf72a 100644 --- a/src/main/java/train/client/render/models/ModelClass158Middle.java +++ b/src/main/java/train/client/render/models/ModelClass158Middle.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelClass158Middle extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelClass162CoachA.java b/src/main/java/train/client/render/models/ModelClass162CoachA.java index 48e5f9616e..d093fb5af0 100644 --- a/src/main/java/train/client/render/models/ModelClass162CoachA.java +++ b/src/main/java/train/client/render/models/ModelClass162CoachA.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelClass162CoachA extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelClass162CoachB.java b/src/main/java/train/client/render/models/ModelClass162CoachB.java index 6bc4b9caef..36f3c92185 100644 --- a/src/main/java/train/client/render/models/ModelClass162CoachB.java +++ b/src/main/java/train/client/render/models/ModelClass162CoachB.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelClass162CoachB extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelClass162Engine.java b/src/main/java/train/client/render/models/ModelClass162Engine.java index 3e2783d802..16799adc90 100644 --- a/src/main/java/train/client/render/models/ModelClass162Engine.java +++ b/src/main/java/train/client/render/models/ModelClass162Engine.java @@ -12,8 +12,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelClass162Engine extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelClass175.java b/src/main/java/train/client/render/models/ModelClass175.java index 7f7e788937..16a51d116b 100644 --- a/src/main/java/train/client/render/models/ModelClass175.java +++ b/src/main/java/train/client/render/models/ModelClass175.java @@ -12,8 +12,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; import java.util.ArrayList; diff --git a/src/main/java/train/client/render/models/ModelClass175Coach.java b/src/main/java/train/client/render/models/ModelClass175Coach.java index ff75cf2fd5..ae9ba5f140 100644 --- a/src/main/java/train/client/render/models/ModelClass175Coach.java +++ b/src/main/java/train/client/render/models/ModelClass175Coach.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelClass175Coach extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelClass205.java b/src/main/java/train/client/render/models/ModelClass205.java index 121fba7f6e..66060a58e3 100644 --- a/src/main/java/train/client/render/models/ModelClass205.java +++ b/src/main/java/train/client/render/models/ModelClass205.java @@ -12,8 +12,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; import java.util.ArrayList; diff --git a/src/main/java/train/client/render/models/ModelClass205tail.java b/src/main/java/train/client/render/models/ModelClass205tail.java index a35430c31a..47078aa35b 100644 --- a/src/main/java/train/client/render/models/ModelClass205tail.java +++ b/src/main/java/train/client/render/models/ModelClass205tail.java @@ -12,8 +12,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; import java.util.ArrayList; diff --git a/src/main/java/train/client/render/models/ModelClass205tso.java b/src/main/java/train/client/render/models/ModelClass205tso.java index 57386c2b84..a76dcffef6 100644 --- a/src/main/java/train/client/render/models/ModelClass205tso.java +++ b/src/main/java/train/client/render/models/ModelClass205tso.java @@ -12,8 +12,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; import java.util.ArrayList; diff --git a/src/main/java/train/client/render/models/ModelClass230.java b/src/main/java/train/client/render/models/ModelClass230.java index ddd6cd7d93..c1575e0293 100644 --- a/src/main/java/train/client/render/models/ModelClass230.java +++ b/src/main/java/train/client/render/models/ModelClass230.java @@ -13,8 +13,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelClass230 extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelClass230Middle.java b/src/main/java/train/client/render/models/ModelClass230Middle.java index 6fe513b82c..4fad47a234 100644 --- a/src/main/java/train/client/render/models/ModelClass230Middle.java +++ b/src/main/java/train/client/render/models/ModelClass230Middle.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelClass230Middle extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelClass319Engine.java b/src/main/java/train/client/render/models/ModelClass319Engine.java index 85fca2271a..44812aa946 100644 --- a/src/main/java/train/client/render/models/ModelClass319Engine.java +++ b/src/main/java/train/client/render/models/ModelClass319Engine.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelClass319Engine extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelClass319Middle.java b/src/main/java/train/client/render/models/ModelClass319Middle.java index b505497c7e..60365d8662 100644 --- a/src/main/java/train/client/render/models/ModelClass319Middle.java +++ b/src/main/java/train/client/render/models/ModelClass319Middle.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelClass319Middle extends ModelConverter //Same as Filename diff --git a/src/main/java/train/client/render/models/ModelClass319Panto.java b/src/main/java/train/client/render/models/ModelClass319Panto.java index 6bab2678e0..54d9f1437a 100644 --- a/src/main/java/train/client/render/models/ModelClass319Panto.java +++ b/src/main/java/train/client/render/models/ModelClass319Panto.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelClass319Panto extends ModelConverter //Same as Filename diff --git a/src/main/java/train/client/render/models/ModelClass321.java b/src/main/java/train/client/render/models/ModelClass321.java index 4ccd1b792f..04d46c58ce 100644 --- a/src/main/java/train/client/render/models/ModelClass321.java +++ b/src/main/java/train/client/render/models/ModelClass321.java @@ -12,8 +12,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelClass321 extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelClass321Coach.java b/src/main/java/train/client/render/models/ModelClass321Coach.java index 43fba18385..209e126513 100644 --- a/src/main/java/train/client/render/models/ModelClass321Coach.java +++ b/src/main/java/train/client/render/models/ModelClass321Coach.java @@ -9,8 +9,8 @@ package train.client.render.models; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelClass321Coach extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelClass321_Panto.java b/src/main/java/train/client/render/models/ModelClass321_Panto.java index 8ae0480ead..5690413acd 100644 --- a/src/main/java/train/client/render/models/ModelClass321_Panto.java +++ b/src/main/java/train/client/render/models/ModelClass321_Panto.java @@ -9,8 +9,8 @@ package train.client.render.models; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelClass321_Panto extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelClass34.java b/src/main/java/train/client/render/models/ModelClass34.java index 6fcfcb8426..ae46abc492 100644 --- a/src/main/java/train/client/render/models/ModelClass34.java +++ b/src/main/java/train/client/render/models/ModelClass34.java @@ -12,8 +12,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; import java.util.ArrayList; diff --git a/src/main/java/train/client/render/models/ModelClass345.java b/src/main/java/train/client/render/models/ModelClass345.java index 679da9de33..57197736d6 100644 --- a/src/main/java/train/client/render/models/ModelClass345.java +++ b/src/main/java/train/client/render/models/ModelClass345.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelClass345 extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelClass345Coach.java b/src/main/java/train/client/render/models/ModelClass345Coach.java index 70b687d79c..99a64fa57c 100644 --- a/src/main/java/train/client/render/models/ModelClass345Coach.java +++ b/src/main/java/train/client/render/models/ModelClass345Coach.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelClass345Coach extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelClass374Buffet.java b/src/main/java/train/client/render/models/ModelClass374Buffet.java index d012f4c1db..ad3afc4fce 100644 --- a/src/main/java/train/client/render/models/ModelClass374Buffet.java +++ b/src/main/java/train/client/render/models/ModelClass374Buffet.java @@ -9,8 +9,8 @@ package train.client.render.models; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelClass374Buffet extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelClass374Front.java b/src/main/java/train/client/render/models/ModelClass374Front.java index 192b2c42db..133ea3debd 100644 --- a/src/main/java/train/client/render/models/ModelClass374Front.java +++ b/src/main/java/train/client/render/models/ModelClass374Front.java @@ -12,8 +12,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelClass374Front extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelClass374PremierPanto.java b/src/main/java/train/client/render/models/ModelClass374PremierPanto.java index 72c266742e..b16f9d90b5 100644 --- a/src/main/java/train/client/render/models/ModelClass374PremierPanto.java +++ b/src/main/java/train/client/render/models/ModelClass374PremierPanto.java @@ -9,8 +9,8 @@ package train.client.render.models; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelClass374PremierPanto extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelClass374StandardPanto.java b/src/main/java/train/client/render/models/ModelClass374StandardPanto.java index e368c9cb73..4b09539dc3 100644 --- a/src/main/java/train/client/render/models/ModelClass374StandardPanto.java +++ b/src/main/java/train/client/render/models/ModelClass374StandardPanto.java @@ -9,8 +9,8 @@ package train.client.render.models; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelClass374StandardPanto extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelClass378Front.java b/src/main/java/train/client/render/models/ModelClass378Front.java index 2db299abcc..030b72b99e 100644 --- a/src/main/java/train/client/render/models/ModelClass378Front.java +++ b/src/main/java/train/client/render/models/ModelClass378Front.java @@ -12,8 +12,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelClass378Front extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelClass378Middle.java b/src/main/java/train/client/render/models/ModelClass378Middle.java index 30f3c6b625..54eac1acf3 100644 --- a/src/main/java/train/client/render/models/ModelClass378Middle.java +++ b/src/main/java/train/client/render/models/ModelClass378Middle.java @@ -9,8 +9,8 @@ package train.client.render.models; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelClass378Middle extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelClass387Coach.java b/src/main/java/train/client/render/models/ModelClass387Coach.java index e5a4b9bf85..2ecd13e2e4 100644 --- a/src/main/java/train/client/render/models/ModelClass387Coach.java +++ b/src/main/java/train/client/render/models/ModelClass387Coach.java @@ -9,8 +9,8 @@ package train.client.render.models; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelClass387Coach extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelClass387Front.java b/src/main/java/train/client/render/models/ModelClass387Front.java index 91976b59fd..d1d58aff9d 100644 --- a/src/main/java/train/client/render/models/ModelClass387Front.java +++ b/src/main/java/train/client/render/models/ModelClass387Front.java @@ -12,8 +12,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelClass387Front extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelClass387Panto.java b/src/main/java/train/client/render/models/ModelClass387Panto.java index c6e04bc6a3..293c2cef72 100644 --- a/src/main/java/train/client/render/models/ModelClass387Panto.java +++ b/src/main/java/train/client/render/models/ModelClass387Panto.java @@ -9,8 +9,8 @@ package train.client.render.models; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelClass387Panto extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelClass389Front.java b/src/main/java/train/client/render/models/ModelClass389Front.java index 877fece6d2..86ecb4d67c 100644 --- a/src/main/java/train/client/render/models/ModelClass389Front.java +++ b/src/main/java/train/client/render/models/ModelClass389Front.java @@ -12,8 +12,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelClass389Front extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelClass389Middle.java b/src/main/java/train/client/render/models/ModelClass389Middle.java index c937e033c5..0c2d616a61 100644 --- a/src/main/java/train/client/render/models/ModelClass389Middle.java +++ b/src/main/java/train/client/render/models/ModelClass389Middle.java @@ -9,8 +9,8 @@ package train.client.render.models; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelClass389Middle extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelClass390Coach.java b/src/main/java/train/client/render/models/ModelClass390Coach.java index cec7bfdbcc..c13a3eadba 100644 --- a/src/main/java/train/client/render/models/ModelClass390Coach.java +++ b/src/main/java/train/client/render/models/ModelClass390Coach.java @@ -10,8 +10,8 @@ package train.client.render.models; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelClass390Coach extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelClass390Front.java b/src/main/java/train/client/render/models/ModelClass390Front.java index c3e77a1639..88f24f95a9 100644 --- a/src/main/java/train/client/render/models/ModelClass390Front.java +++ b/src/main/java/train/client/render/models/ModelClass390Front.java @@ -12,8 +12,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelClass390Front extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelClass390Panto.java b/src/main/java/train/client/render/models/ModelClass390Panto.java index 03b200ad94..2587c646b3 100644 --- a/src/main/java/train/client/render/models/ModelClass390Panto.java +++ b/src/main/java/train/client/render/models/ModelClass390Panto.java @@ -10,8 +10,8 @@ package train.client.render.models; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelClass390Panto extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelClass401Engine.java b/src/main/java/train/client/render/models/ModelClass401Engine.java index 13f00c16da..c63d6bd060 100644 --- a/src/main/java/train/client/render/models/ModelClass401Engine.java +++ b/src/main/java/train/client/render/models/ModelClass401Engine.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelClass401Engine extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelClass401tail.java b/src/main/java/train/client/render/models/ModelClass401tail.java index b4c060df48..2fdbc8802a 100644 --- a/src/main/java/train/client/render/models/ModelClass401tail.java +++ b/src/main/java/train/client/render/models/ModelClass401tail.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelClass401tail extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelClass416Engine.java b/src/main/java/train/client/render/models/ModelClass416Engine.java index 464ff84bad..a389573660 100644 --- a/src/main/java/train/client/render/models/ModelClass416Engine.java +++ b/src/main/java/train/client/render/models/ModelClass416Engine.java @@ -13,8 +13,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelClass416Engine extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelClass416Tail.java b/src/main/java/train/client/render/models/ModelClass416Tail.java index 976f1b2fa3..e69d00787b 100644 --- a/src/main/java/train/client/render/models/ModelClass416Tail.java +++ b/src/main/java/train/client/render/models/ModelClass416Tail.java @@ -13,8 +13,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelClass416Tail extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelClass43.java b/src/main/java/train/client/render/models/ModelClass43.java index 4e0f441225..b740a56472 100644 --- a/src/main/java/train/client/render/models/ModelClass43.java +++ b/src/main/java/train/client/render/models/ModelClass43.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; import java.util.ArrayList; diff --git a/src/main/java/train/client/render/models/ModelClass44.java b/src/main/java/train/client/render/models/ModelClass44.java index a827948746..d0825f664d 100644 --- a/src/main/java/train/client/render/models/ModelClass44.java +++ b/src/main/java/train/client/render/models/ModelClass44.java @@ -12,8 +12,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; import java.util.ArrayList; diff --git a/src/main/java/train/client/render/models/ModelClass442DTS.java b/src/main/java/train/client/render/models/ModelClass442DTS.java index 79c35eb8d8..ad88b692e5 100644 --- a/src/main/java/train/client/render/models/ModelClass442DTS.java +++ b/src/main/java/train/client/render/models/ModelClass442DTS.java @@ -12,8 +12,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelClass442DTS extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelClass442MBLS.java b/src/main/java/train/client/render/models/ModelClass442MBLS.java index e69363c0fa..8bf700c8c5 100644 --- a/src/main/java/train/client/render/models/ModelClass442MBLS.java +++ b/src/main/java/train/client/render/models/ModelClass442MBLS.java @@ -9,8 +9,8 @@ package train.client.render.models; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelClass442MBLS extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelClass442TS.java b/src/main/java/train/client/render/models/ModelClass442TS.java index c7b8431785..91ceebd8ad 100644 --- a/src/main/java/train/client/render/models/ModelClass442TS.java +++ b/src/main/java/train/client/render/models/ModelClass442TS.java @@ -9,8 +9,8 @@ package train.client.render.models; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelClass442TS extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelClass47.java b/src/main/java/train/client/render/models/ModelClass47.java index 1a78a6e256..7e6cfaf447 100644 --- a/src/main/java/train/client/render/models/ModelClass47.java +++ b/src/main/java/train/client/render/models/ModelClass47.java @@ -8,8 +8,8 @@ // Last changed on: 18.09.2021 - 12:36:20 package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; import java.util.ArrayList; diff --git a/src/main/java/train/client/render/models/ModelClass85.java b/src/main/java/train/client/render/models/ModelClass85.java index bc5e60a9cd..bc9212ef4b 100644 --- a/src/main/java/train/client/render/models/ModelClass85.java +++ b/src/main/java/train/client/render/models/ModelClass85.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.library.Info; public class ModelClass85 extends ModelBase diff --git a/src/main/java/train/client/render/models/ModelClass90.java b/src/main/java/train/client/render/models/ModelClass90.java index 2116c217f6..a810503d84 100644 --- a/src/main/java/train/client/render/models/ModelClass90.java +++ b/src/main/java/train/client/render/models/ModelClass90.java @@ -12,8 +12,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelClass90 extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelClass91.java b/src/main/java/train/client/render/models/ModelClass91.java index 9a4c532c7f..78f3c3bc28 100644 --- a/src/main/java/train/client/render/models/ModelClass91.java +++ b/src/main/java/train/client/render/models/ModelClass91.java @@ -12,8 +12,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelClass91 extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelClimaxNew.java b/src/main/java/train/client/render/models/ModelClimaxNew.java index 482e4ba6db..4caf7b2b72 100644 --- a/src/main/java/train/client/render/models/ModelClimaxNew.java +++ b/src/main/java/train/client/render/models/ModelClimaxNew.java @@ -11,8 +11,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelClimaxNew extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelCoranationClass.java b/src/main/java/train/client/render/models/ModelCoranationClass.java index 6af350d615..75e1bb40b4 100644 --- a/src/main/java/train/client/render/models/ModelCoranationClass.java +++ b/src/main/java/train/client/render/models/ModelCoranationClass.java @@ -10,8 +10,8 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelCoranationClass extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelCoranationClassTender.java b/src/main/java/train/client/render/models/ModelCoranationClassTender.java index 95a3b62508..237df7cd4f 100644 --- a/src/main/java/train/client/render/models/ModelCoranationClassTender.java +++ b/src/main/java/train/client/render/models/ModelCoranationClassTender.java @@ -10,8 +10,8 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelCoranationClassTender extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelD51FrontBogie.java b/src/main/java/train/client/render/models/ModelD51FrontBogie.java index 75c41e3e79..27ce1105e8 100644 --- a/src/main/java/train/client/render/models/ModelD51FrontBogie.java +++ b/src/main/java/train/client/render/models/ModelD51FrontBogie.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelD51FrontBogie extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelD51LongStreamlining.java b/src/main/java/train/client/render/models/ModelD51LongStreamlining.java index 74ec8146cc..9d2dc6fb04 100644 --- a/src/main/java/train/client/render/models/ModelD51LongStreamlining.java +++ b/src/main/java/train/client/render/models/ModelD51LongStreamlining.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.library.Info; public class ModelD51LongStreamlining extends ModelConverter //Same as Filename diff --git a/src/main/java/train/client/render/models/ModelD51RearBogie.java b/src/main/java/train/client/render/models/ModelD51RearBogie.java index c417812db6..01cb2c2bff 100644 --- a/src/main/java/train/client/render/models/ModelD51RearBogie.java +++ b/src/main/java/train/client/render/models/ModelD51RearBogie.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelD51RearBogie extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelD51ShortStreamlining.java b/src/main/java/train/client/render/models/ModelD51ShortStreamlining.java index 59646a6fed..35afdda7e3 100644 --- a/src/main/java/train/client/render/models/ModelD51ShortStreamlining.java +++ b/src/main/java/train/client/render/models/ModelD51ShortStreamlining.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.library.Info; public class ModelD51ShortStreamlining extends ModelConverter //Same as Filename diff --git a/src/main/java/train/client/render/models/ModelD51Tender.java b/src/main/java/train/client/render/models/ModelD51Tender.java index 909507db31..accf98de0b 100644 --- a/src/main/java/train/client/render/models/ModelD51Tender.java +++ b/src/main/java/train/client/render/models/ModelD51Tender.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.library.Info; public class ModelD51Tender extends ModelConverter //Same as Filename diff --git a/src/main/java/train/client/render/models/ModelDB143.java b/src/main/java/train/client/render/models/ModelDB143.java index 1f88674989..c779562579 100644 --- a/src/main/java/train/client/render/models/ModelDB143.java +++ b/src/main/java/train/client/render/models/ModelDB143.java @@ -14,9 +14,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelDB143Bogis.java b/src/main/java/train/client/render/models/ModelDB143Bogis.java index 6c1c04d7ff..c9187c0841 100644 --- a/src/main/java/train/client/render/models/ModelDB143Bogis.java +++ b/src/main/java/train/client/render/models/ModelDB143Bogis.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelDB143Bogis extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelDB420End.java b/src/main/java/train/client/render/models/ModelDB420End.java index b45f9b2011..60f1a0302a 100644 --- a/src/main/java/train/client/render/models/ModelDB420End.java +++ b/src/main/java/train/client/render/models/ModelDB420End.java @@ -12,8 +12,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; import train.common.api.Locomotive; public class ModelDB420End extends ModelConverter //Same as Filename diff --git a/src/main/java/train/client/render/models/ModelDB420Middle.java b/src/main/java/train/client/render/models/ModelDB420Middle.java index e78c930820..374e72bbe7 100644 --- a/src/main/java/train/client/render/models/ModelDB420Middle.java +++ b/src/main/java/train/client/render/models/ModelDB420Middle.java @@ -12,8 +12,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; import train.common.api.Locomotive; public class ModelDB420Middle extends ModelConverter //Same as Filename diff --git a/src/main/java/train/client/render/models/ModelDD35A.java b/src/main/java/train/client/render/models/ModelDD35A.java index af4f0a9984..6d66f0ab19 100644 --- a/src/main/java/train/client/render/models/ModelDD35A.java +++ b/src/main/java/train/client/render/models/ModelDD35A.java @@ -11,8 +11,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelDD35A extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelDD35B.java b/src/main/java/train/client/render/models/ModelDD35B.java index c67852b8dc..5c2ce18fed 100644 --- a/src/main/java/train/client/render/models/ModelDD35B.java +++ b/src/main/java/train/client/render/models/ModelDD35B.java @@ -11,8 +11,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelDD35B extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelDH643.java b/src/main/java/train/client/render/models/ModelDH643.java index eae5baae5f..9d8a589ba3 100644 --- a/src/main/java/train/client/render/models/ModelDH643.java +++ b/src/main/java/train/client/render/models/ModelDH643.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelDRGBaggage.java b/src/main/java/train/client/render/models/ModelDRGBaggage.java index d38a835dad..836e597155 100644 --- a/src/main/java/train/client/render/models/ModelDRGBaggage.java +++ b/src/main/java/train/client/render/models/ModelDRGBaggage.java @@ -9,8 +9,8 @@ package train.client.render.models; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelDRGBaggage extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelDRGCombo.java b/src/main/java/train/client/render/models/ModelDRGCombo.java index e39bda0716..d4cb6a0b62 100644 --- a/src/main/java/train/client/render/models/ModelDRGCombo.java +++ b/src/main/java/train/client/render/models/ModelDRGCombo.java @@ -9,8 +9,8 @@ package train.client.render.models; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelDRGCombo extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelDRGPassenger.java b/src/main/java/train/client/render/models/ModelDRGPassenger.java index c936ec96be..4b87dc125b 100644 --- a/src/main/java/train/client/render/models/ModelDRGPassenger.java +++ b/src/main/java/train/client/render/models/ModelDRGPassenger.java @@ -9,8 +9,8 @@ package train.client.render.models; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelDRGPassenger extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelDRGW01400Caboose.java b/src/main/java/train/client/render/models/ModelDRGW01400Caboose.java index f1256730b6..019e6655d0 100644 --- a/src/main/java/train/client/render/models/ModelDRGW01400Caboose.java +++ b/src/main/java/train/client/render/models/ModelDRGW01400Caboose.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelDRWGStockCar.java b/src/main/java/train/client/render/models/ModelDRWGStockCar.java index 7340e1e79d..5a7393aee1 100644 --- a/src/main/java/train/client/render/models/ModelDRWGStockCar.java +++ b/src/main/java/train/client/render/models/ModelDRWGStockCar.java @@ -10,8 +10,8 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelDRWGStockCar extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelDash840B.java b/src/main/java/train/client/render/models/ModelDash840B.java index df39d35672..39149a7ca6 100644 --- a/src/main/java/train/client/render/models/ModelDash840B.java +++ b/src/main/java/train/client/render/models/ModelDash840B.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelDash840BB.java b/src/main/java/train/client/render/models/ModelDash840BB.java index d1e5b4d63b..92be2d9592 100644 --- a/src/main/java/train/client/render/models/ModelDash840BB.java +++ b/src/main/java/train/client/render/models/ModelDash840BB.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelDash840BW.java b/src/main/java/train/client/render/models/ModelDash840BW.java index d7abccc387..2dfc75a62f 100644 --- a/src/main/java/train/client/render/models/ModelDash840BW.java +++ b/src/main/java/train/client/render/models/ModelDash840BW.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelDash840C.java b/src/main/java/train/client/render/models/ModelDash840C.java index 698776c496..82f4db2ef6 100644 --- a/src/main/java/train/client/render/models/ModelDash840C.java +++ b/src/main/java/train/client/render/models/ModelDash840C.java @@ -12,9 +12,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelDash9_44CW.java b/src/main/java/train/client/render/models/ModelDash9_44CW.java index 34bc246369..2df4f29dae 100644 --- a/src/main/java/train/client/render/models/ModelDash9_44CW.java +++ b/src/main/java/train/client/render/models/ModelDash9_44CW.java @@ -5,9 +5,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.client.render.models.cabs.ModelD9_Cab4Window; import train.client.render.models.cabs.ModelD9_CabSquareWindow; import train.common.api.AbstractTrains; diff --git a/src/main/java/train/client/render/models/ModelDeiticBogie.java b/src/main/java/train/client/render/models/ModelDeiticBogie.java index f9b7db70fd..4a77532422 100644 --- a/src/main/java/train/client/render/models/ModelDeiticBogie.java +++ b/src/main/java/train/client/render/models/ModelDeiticBogie.java @@ -10,8 +10,8 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelDeiticBogie extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelDeltic.java b/src/main/java/train/client/render/models/ModelDeltic.java index aebeeb5703..71aa34bc49 100644 --- a/src/main/java/train/client/render/models/ModelDeltic.java +++ b/src/main/java/train/client/render/models/ModelDeltic.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.library.Info; public class ModelDeltic extends ModelBase diff --git a/src/main/java/train/client/render/models/ModelDeltic_Bogie.java b/src/main/java/train/client/render/models/ModelDeltic_Bogie.java index c29fe65a8f..b5d3472d9d 100644 --- a/src/main/java/train/client/render/models/ModelDeltic_Bogie.java +++ b/src/main/java/train/client/render/models/ModelDeltic_Bogie.java @@ -10,8 +10,8 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelDeltic_Bogie extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelDepressedFlatbed.java b/src/main/java/train/client/render/models/ModelDepressedFlatbed.java index d7c530a94a..e7ae836a97 100644 --- a/src/main/java/train/client/render/models/ModelDepressedFlatbed.java +++ b/src/main/java/train/client/render/models/ModelDepressedFlatbed.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.client.render.RenderRollingStock; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelDstockEngine.java b/src/main/java/train/client/render/models/ModelDstockEngine.java index 46eaae9e1c..4c0f160330 100644 --- a/src/main/java/train/client/render/models/ModelDstockEngine.java +++ b/src/main/java/train/client/render/models/ModelDstockEngine.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelDstockEngine extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelDstockPassenger.java b/src/main/java/train/client/render/models/ModelDstockPassenger.java index 3b0f2fdf01..bfc145606d 100644 --- a/src/main/java/train/client/render/models/ModelDstockPassenger.java +++ b/src/main/java/train/client/render/models/ModelDstockPassenger.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelDstockPassenger extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelDuewagGT6ERLoco.java b/src/main/java/train/client/render/models/ModelDuewagGT6ERLoco.java index 53226f4d8e..0e537d00f2 100644 --- a/src/main/java/train/client/render/models/ModelDuewagGT6ERLoco.java +++ b/src/main/java/train/client/render/models/ModelDuewagGT6ERLoco.java @@ -12,8 +12,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; import train.common.api.Locomotive; public class ModelDuewagGT6ERLoco extends ModelConverter //Same as Filename diff --git a/src/main/java/train/client/render/models/ModelDuewagGT6ERTail.java b/src/main/java/train/client/render/models/ModelDuewagGT6ERTail.java index 4052a87d96..518c4343ad 100644 --- a/src/main/java/train/client/render/models/ModelDuewagGT6ERTail.java +++ b/src/main/java/train/client/render/models/ModelDuewagGT6ERTail.java @@ -12,8 +12,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; import train.common.api.Locomotive; public class ModelDuewagGT6ERTail extends ModelConverter//Same as Filename diff --git a/src/main/java/train/client/render/models/ModelDuewagGT6ZRLoco.java b/src/main/java/train/client/render/models/ModelDuewagGT6ZRLoco.java index 34e8bc29e6..171058ca20 100644 --- a/src/main/java/train/client/render/models/ModelDuewagGT6ZRLoco.java +++ b/src/main/java/train/client/render/models/ModelDuewagGT6ZRLoco.java @@ -12,8 +12,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; import train.common.api.Locomotive; public class ModelDuewagGT6ZRLoco extends ModelConverter //Same as Filename diff --git a/src/main/java/train/client/render/models/ModelDuewagGT6ZRTail.java b/src/main/java/train/client/render/models/ModelDuewagGT6ZRTail.java index 3f1f204aa4..52971e9ce8 100644 --- a/src/main/java/train/client/render/models/ModelDuewagGT6ZRTail.java +++ b/src/main/java/train/client/render/models/ModelDuewagGT6ZRTail.java @@ -12,8 +12,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; import train.common.api.Locomotive; public class ModelDuewagGT6ZRTail extends ModelConverter //Same as Filename diff --git a/src/main/java/train/client/render/models/ModelDuewagT4ER.java b/src/main/java/train/client/render/models/ModelDuewagT4ER.java index de62abc6b6..55607a3317 100644 --- a/src/main/java/train/client/render/models/ModelDuewagT4ER.java +++ b/src/main/java/train/client/render/models/ModelDuewagT4ER.java @@ -14,8 +14,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; import train.common.api.Locomotive; public class ModelDuewagT4ER extends ModelConverter //Same as Filename diff --git a/src/main/java/train/client/render/models/ModelE103.java b/src/main/java/train/client/render/models/ModelE103.java index 7a9c759680..a8883a8c85 100644 --- a/src/main/java/train/client/render/models/ModelE103.java +++ b/src/main/java/train/client/render/models/ModelE103.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.entity.rollingStock.ModelE103Bogie; import train.common.library.Info; @@ -45,10 +45,10 @@ public void render(Entity entity, float f, float f1, float f2, float f3, float f for (ModelRendererTurbo mrt : bodyModel) { if (mrt.boxName.equals("lamp")) { Minecraft.getMinecraft().entityRenderer.disableLightmap(1D); - mrt.render(f5, false); + mrt.render(f5); Minecraft.getMinecraft().entityRenderer.enableLightmap(1D); } else { - mrt.render(f5, false); + mrt.render(f5); } } diff --git a/src/main/java/train/client/render/models/ModelE10Bogie.java b/src/main/java/train/client/render/models/ModelE10Bogie.java index 48c5f08c3d..9671a8ad60 100644 --- a/src/main/java/train/client/render/models/ModelE10Bogie.java +++ b/src/main/java/train/client/render/models/ModelE10Bogie.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelE10Bogie extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelE10DB.java b/src/main/java/train/client/render/models/ModelE10DB.java index aff36e95f6..3c6c95f655 100644 --- a/src/main/java/train/client/render/models/ModelE10DB.java +++ b/src/main/java/train/client/render/models/ModelE10DB.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.library.Info; public class ModelE10DB extends ModelConverter @@ -747,10 +747,10 @@ public void render(Entity entity, float f, float f1, float f2, float f3, float f for (ModelRendererTurbo mrt : bodyModel) { if (mrt.boxName.equals("lamp")) { Minecraft.getMinecraft().entityRenderer.disableLightmap(1D); - mrt.render(f5, false); + mrt.render(f5); Minecraft.getMinecraft().entityRenderer.enableLightmap(1D); } else { - mrt.render(f5, false); + mrt.render(f5); } } diff --git a/src/main/java/train/client/render/models/ModelEF1.java b/src/main/java/train/client/render/models/ModelEF1.java index 4b2fa9356a..a375bbff31 100644 --- a/src/main/java/train/client/render/models/ModelEF1.java +++ b/src/main/java/train/client/render/models/ModelEF1.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelEF1B.java b/src/main/java/train/client/render/models/ModelEF1B.java index 8ee5674306..bcc0ebead2 100644 --- a/src/main/java/train/client/render/models/ModelEF1B.java +++ b/src/main/java/train/client/render/models/ModelEF1B.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelEF1d.java b/src/main/java/train/client/render/models/ModelEF1d.java index 01ebfc9ac9..3d7e782925 100644 --- a/src/main/java/train/client/render/models/ModelEF1d.java +++ b/src/main/java/train/client/render/models/ModelEF1d.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelEF1d extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelEF1tp.java b/src/main/java/train/client/render/models/ModelEF1tp.java index 02ea2e16bd..ac3f71cc81 100644 --- a/src/main/java/train/client/render/models/ModelEF1tp.java +++ b/src/main/java/train/client/render/models/ModelEF1tp.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelEF1tp extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelEMDE7A.java b/src/main/java/train/client/render/models/ModelEMDE7A.java index 2c45e759bf..d942119d0e 100644 --- a/src/main/java/train/client/render/models/ModelEMDE7A.java +++ b/src/main/java/train/client/render/models/ModelEMDE7A.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelEMDE7B.java b/src/main/java/train/client/render/models/ModelEMDE7B.java index 323f65c67a..ebddb77ff1 100644 --- a/src/main/java/train/client/render/models/ModelEMDE7B.java +++ b/src/main/java/train/client/render/models/ModelEMDE7B.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelEMDE8A.java b/src/main/java/train/client/render/models/ModelEMDE8A.java index 1f553953e7..5b3666549c 100644 --- a/src/main/java/train/client/render/models/ModelEMDE8A.java +++ b/src/main/java/train/client/render/models/ModelEMDE8A.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelEMDE8B.java b/src/main/java/train/client/render/models/ModelEMDE8B.java index 107a1c5212..ec7d3603eb 100644 --- a/src/main/java/train/client/render/models/ModelEMDE8B.java +++ b/src/main/java/train/client/render/models/ModelEMDE8B.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelEMDF3.java b/src/main/java/train/client/render/models/ModelEMDF3.java index fb81bc5e40..c027b8d6f0 100644 --- a/src/main/java/train/client/render/models/ModelEMDF3.java +++ b/src/main/java/train/client/render/models/ModelEMDF3.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.library.Info; public class ModelEMDF3 extends ModelBase diff --git a/src/main/java/train/client/render/models/ModelEMDF3B.java b/src/main/java/train/client/render/models/ModelEMDF3B.java index 58e1707d1c..3515ae4cbc 100644 --- a/src/main/java/train/client/render/models/ModelEMDF3B.java +++ b/src/main/java/train/client/render/models/ModelEMDF3B.java @@ -12,9 +12,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.library.Info; public class ModelEMDF3B extends ModelBase diff --git a/src/main/java/train/client/render/models/ModelEMDF7.java b/src/main/java/train/client/render/models/ModelEMDF7.java index d5c3f26fcd..79a46b90b0 100644 --- a/src/main/java/train/client/render/models/ModelEMDF7.java +++ b/src/main/java/train/client/render/models/ModelEMDF7.java @@ -12,9 +12,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.library.Info; public class ModelEMDF7 extends ModelBase diff --git a/src/main/java/train/client/render/models/ModelEMDF7B.java b/src/main/java/train/client/render/models/ModelEMDF7B.java index 04d6c9bcb4..5a9e3d1782 100644 --- a/src/main/java/train/client/render/models/ModelEMDF7B.java +++ b/src/main/java/train/client/render/models/ModelEMDF7B.java @@ -11,9 +11,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.library.Info; public class ModelEMDF7B extends ModelBase diff --git a/src/main/java/train/client/render/models/ModelEP1A.java b/src/main/java/train/client/render/models/ModelEP1A.java index b8f125ef24..2d60eb9c67 100644 --- a/src/main/java/train/client/render/models/ModelEP1A.java +++ b/src/main/java/train/client/render/models/ModelEP1A.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelES44.java b/src/main/java/train/client/render/models/ModelES44.java index 172f27c4fa..b653806343 100644 --- a/src/main/java/train/client/render/models/ModelES44.java +++ b/src/main/java/train/client/render/models/ModelES44.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelEWSClass66.java b/src/main/java/train/client/render/models/ModelEWSClass66.java index 79eafb4409..7cec5ba9ec 100644 --- a/src/main/java/train/client/render/models/ModelEWSClass66.java +++ b/src/main/java/train/client/render/models/ModelEWSClass66.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.library.Info; public class ModelEWSClass66 extends ModelBase diff --git a/src/main/java/train/client/render/models/ModelEWSClass66_Bogie.java b/src/main/java/train/client/render/models/ModelEWSClass66_Bogie.java index 16273fb5af..0513550dab 100644 --- a/src/main/java/train/client/render/models/ModelEWSClass66_Bogie.java +++ b/src/main/java/train/client/render/models/ModelEWSClass66_Bogie.java @@ -10,8 +10,8 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelEWSClass66_Bogie extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelExpressFreightVan.java b/src/main/java/train/client/render/models/ModelExpressFreightVan.java index 11c93063d9..9fdfd82097 100644 --- a/src/main/java/train/client/render/models/ModelExpressFreightVan.java +++ b/src/main/java/train/client/render/models/ModelExpressFreightVan.java @@ -9,8 +9,8 @@ package train.client.render.models; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelExpressFreightVan extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelF7A.java b/src/main/java/train/client/render/models/ModelF7A.java index 6dfe156dc1..efd844ceac 100644 --- a/src/main/java/train/client/render/models/ModelF7A.java +++ b/src/main/java/train/client/render/models/ModelF7A.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelF7B.java b/src/main/java/train/client/render/models/ModelF7B.java index 2b93316b5d..bb2dd291bc 100644 --- a/src/main/java/train/client/render/models/ModelF7B.java +++ b/src/main/java/train/client/render/models/ModelF7B.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelFB2.java b/src/main/java/train/client/render/models/ModelFB2.java index dac486a8f8..d8e70459aa 100644 --- a/src/main/java/train/client/render/models/ModelFB2.java +++ b/src/main/java/train/client/render/models/ModelFB2.java @@ -9,8 +9,8 @@ package train.client.render.models; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelFB2 extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelFB3.java b/src/main/java/train/client/render/models/ModelFB3.java index 2dd8cc1866..dc2920dfd4 100644 --- a/src/main/java/train/client/render/models/ModelFB3.java +++ b/src/main/java/train/client/render/models/ModelFB3.java @@ -3,8 +3,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelFB3 extends ModelConverter //haha ModelConverter go BUYGkruighdilofujhglxfkjhlkuhdglkjxfhlkxjh { diff --git a/src/main/java/train/client/render/models/ModelFGV4300Coach.java b/src/main/java/train/client/render/models/ModelFGV4300Coach.java index 6c852d241f..d90318b23a 100644 --- a/src/main/java/train/client/render/models/ModelFGV4300Coach.java +++ b/src/main/java/train/client/render/models/ModelFGV4300Coach.java @@ -8,8 +8,8 @@ // Last changed on: 18.01.2019 - 19:05:31 package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelFGV4300Coach extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelFGV4300Motor.java b/src/main/java/train/client/render/models/ModelFGV4300Motor.java index 1076a993a2..1206aaa1d7 100644 --- a/src/main/java/train/client/render/models/ModelFGV4300Motor.java +++ b/src/main/java/train/client/render/models/ModelFGV4300Motor.java @@ -12,8 +12,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelFGV4300Motor extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelFGV4300Tail.java b/src/main/java/train/client/render/models/ModelFGV4300Tail.java index a4358691e4..15d9492d22 100644 --- a/src/main/java/train/client/render/models/ModelFGV4300Tail.java +++ b/src/main/java/train/client/render/models/ModelFGV4300Tail.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelFGV4300Tail extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelFMH16_66.java b/src/main/java/train/client/render/models/ModelFMH16_66.java index 886e21715d..61a488200c 100644 --- a/src/main/java/train/client/render/models/ModelFMH16_66.java +++ b/src/main/java/train/client/render/models/ModelFMH16_66.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelFMH24_66.java b/src/main/java/train/client/render/models/ModelFMH24_66.java index a175df21f5..0f23ef1261 100644 --- a/src/main/java/train/client/render/models/ModelFMH24_66.java +++ b/src/main/java/train/client/render/models/ModelFMH24_66.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelFMH24_66L.java b/src/main/java/train/client/render/models/ModelFMH24_66L.java index 366044f821..94e6c79a84 100644 --- a/src/main/java/train/client/render/models/ModelFMH24_66L.java +++ b/src/main/java/train/client/render/models/ModelFMH24_66L.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelFMTrimountTruck.java b/src/main/java/train/client/render/models/ModelFMTrimountTruck.java index 25ae482c11..00eebff917 100644 --- a/src/main/java/train/client/render/models/ModelFMTrimountTruck.java +++ b/src/main/java/train/client/render/models/ModelFMTrimountTruck.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelFMTrimountTruck extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelFOLM1B.java b/src/main/java/train/client/render/models/ModelFOLM1B.java index 19028ce3ed..58d91c0f1f 100644 --- a/src/main/java/train/client/render/models/ModelFOLM1B.java +++ b/src/main/java/train/client/render/models/ModelFOLM1B.java @@ -14,9 +14,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; @@ -633,10 +633,10 @@ public void render(Entity entity, float f, float f1, float f2, float f3, float f for (ModelRendererTurbo mrt : bodyModel){ if(mrt.boxName.equals("lamp")){ Minecraft.getMinecraft().entityRenderer.disableLightmap(1D); - mrt.render(f5,false); + mrt.render(f5); Minecraft.getMinecraft().entityRenderer.enableLightmap(1D); } else { - mrt.render(f5,false); + mrt.render(f5); } } diff --git a/src/main/java/train/client/render/models/ModelFOL_M1.java b/src/main/java/train/client/render/models/ModelFOL_M1.java index a398967108..d991e4250e 100644 --- a/src/main/java/train/client/render/models/ModelFOL_M1.java +++ b/src/main/java/train/client/render/models/ModelFOL_M1.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; @@ -791,10 +791,10 @@ public void render(Entity entity, float f, float f1, float f2, float f3, float f for (ModelRendererTurbo mrt : fol_m1Model){ if(mrt.boxName.equals("lamp")){ Minecraft.getMinecraft().entityRenderer.disableLightmap(1D); - mrt.render(f5,false); + mrt.render(f5); Minecraft.getMinecraft().entityRenderer.enableLightmap(1D); } else { - mrt.render(f5,false); + mrt.render(f5); } } diff --git a/src/main/java/train/client/render/models/ModelFOL_M1Bogie.java b/src/main/java/train/client/render/models/ModelFOL_M1Bogie.java index 3c46d290db..4adb9c38dc 100644 --- a/src/main/java/train/client/render/models/ModelFOL_M1Bogie.java +++ b/src/main/java/train/client/render/models/ModelFOL_M1Bogie.java @@ -10,8 +10,8 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelFOL_M1Bogie extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelFT17.java b/src/main/java/train/client/render/models/ModelFT17.java index 427b95ea01..662e61efc8 100644 --- a/src/main/java/train/client/render/models/ModelFT17.java +++ b/src/main/java/train/client/render/models/ModelFT17.java @@ -9,10 +9,10 @@ package train.client.render.models; //Path where the model is located -import tmt.Coord2D; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Shape2D; +import fexcraft.tmt.slim.Coord2D; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Shape2D; public class ModelFT17 extends ModelConverter //Same as Filename diff --git a/src/main/java/train/client/render/models/ModelFlatCar.java b/src/main/java/train/client/render/models/ModelFlatCar.java index 9dd2d8dd88..dd3b3d10f1 100644 --- a/src/main/java/train/client/render/models/ModelFlatCar.java +++ b/src/main/java/train/client/render/models/ModelFlatCar.java @@ -2,7 +2,7 @@ import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.core.ClientProxy; import train.client.render.CustomModelRenderer; import train.client.render.models.blocks.ModelPresent; diff --git a/src/main/java/train/client/render/models/ModelFlatCarLogs_DB.java b/src/main/java/train/client/render/models/ModelFlatCarLogs_DB.java index a579eb02c7..2766ab0f53 100644 --- a/src/main/java/train/client/render/models/ModelFlatCarLogs_DB.java +++ b/src/main/java/train/client/render/models/ModelFlatCarLogs_DB.java @@ -1,7 +1,7 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; import train.common.api.Freight; import train.common.core.handlers.ConfigHandler; diff --git a/src/main/java/train/client/render/models/ModelFlatCarRails_DB.java b/src/main/java/train/client/render/models/ModelFlatCarRails_DB.java index c7a71e0dae..2779847fa6 100644 --- a/src/main/java/train/client/render/models/ModelFlatCarRails_DB.java +++ b/src/main/java/train/client/render/models/ModelFlatCarRails_DB.java @@ -1,7 +1,7 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; import train.common.api.Freight; diff --git a/src/main/java/train/client/render/models/ModelFlatCarSU.java b/src/main/java/train/client/render/models/ModelFlatCarSU.java index 02868927b1..2e825d2ca9 100644 --- a/src/main/java/train/client/render/models/ModelFlatCarSU.java +++ b/src/main/java/train/client/render/models/ModelFlatCarSU.java @@ -2,7 +2,7 @@ import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.core.ClientProxy; import train.client.render.CustomModelRenderer; import train.client.render.models.blocks.ModelPresent; diff --git a/src/main/java/train/client/render/models/ModelFlatCarUS.java b/src/main/java/train/client/render/models/ModelFlatCarUS.java index 894aa0f218..594149463c 100644 --- a/src/main/java/train/client/render/models/ModelFlatCarUS.java +++ b/src/main/java/train/client/render/models/ModelFlatCarUS.java @@ -2,7 +2,7 @@ import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.core.ClientProxy; import train.client.render.CustomModelRenderer; import train.client.render.models.blocks.ModelPresent; diff --git a/src/main/java/train/client/render/models/ModelFlatCarWoodUS.java b/src/main/java/train/client/render/models/ModelFlatCarWoodUS.java index fdf10ba0bd..258516af6b 100644 --- a/src/main/java/train/client/render/models/ModelFlatCarWoodUS.java +++ b/src/main/java/train/client/render/models/ModelFlatCarWoodUS.java @@ -1,7 +1,7 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; import train.common.api.Freight; diff --git a/src/main/java/train/client/render/models/ModelFlatCar_DB.java b/src/main/java/train/client/render/models/ModelFlatCar_DB.java index bbe9c250f4..877546ecde 100644 --- a/src/main/java/train/client/render/models/ModelFlatCar_DB.java +++ b/src/main/java/train/client/render/models/ModelFlatCar_DB.java @@ -2,7 +2,7 @@ import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.core.ClientProxy; import train.client.render.CustomModelRenderer; import train.client.render.models.blocks.ModelPresent; diff --git a/src/main/java/train/client/render/models/ModelFlexicoil2.java b/src/main/java/train/client/render/models/ModelFlexicoil2.java index bc4a0003cd..1e44f09a3e 100644 --- a/src/main/java/train/client/render/models/ModelFlexicoil2.java +++ b/src/main/java/train/client/render/models/ModelFlexicoil2.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelFlexicoil2 extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelFlexicoil_C1.java b/src/main/java/train/client/render/models/ModelFlexicoil_C1.java index 983e7882e9..e5f2519c14 100644 --- a/src/main/java/train/client/render/models/ModelFlexicoil_C1.java +++ b/src/main/java/train/client/render/models/ModelFlexicoil_C1.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelFlexicoil_C1 extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelFlexicoil_C2H.java b/src/main/java/train/client/render/models/ModelFlexicoil_C2H.java index 8b08dc0aba..1c32c4c4a8 100644 --- a/src/main/java/train/client/render/models/ModelFlexicoil_C2H.java +++ b/src/main/java/train/client/render/models/ModelFlexicoil_C2H.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelFlexicoil_C2H extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelFowler.java b/src/main/java/train/client/render/models/ModelFowler.java index 63c9f18bdf..2aa33cd745 100644 --- a/src/main/java/train/client/render/models/ModelFowler.java +++ b/src/main/java/train/client/render/models/ModelFowler.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located import net.minecraft.entity.Entity; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelFowler extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelFowler4FTender.java b/src/main/java/train/client/render/models/ModelFowler4FTender.java index 5df6b9e779..789ef97603 100644 --- a/src/main/java/train/client/render/models/ModelFowler4FTender.java +++ b/src/main/java/train/client/render/models/ModelFowler4FTender.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelFowler4FTender extends ModelConverter //Same as Filename diff --git a/src/main/java/train/client/render/models/ModelFreight7Plank.java b/src/main/java/train/client/render/models/ModelFreight7Plank.java index 34641668ad..d72ad35720 100644 --- a/src/main/java/train/client/render/models/ModelFreight7Plank.java +++ b/src/main/java/train/client/render/models/ModelFreight7Plank.java @@ -9,10 +9,10 @@ /* package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Coord2D; -import tmt.Shape2D; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Coord2D; +import fexcraft.tmt.slim.Shape2D; public class ModelFreight7Plank extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelFreightCarL.java b/src/main/java/train/client/render/models/ModelFreightCarL.java index 044e3f686c..bcc83636e9 100644 --- a/src/main/java/train/client/render/models/ModelFreightCarL.java +++ b/src/main/java/train/client/render/models/ModelFreightCarL.java @@ -12,9 +12,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.library.Info; public class ModelFreightCarL extends ModelBase diff --git a/src/main/java/train/client/render/models/ModelFreightCart2.java b/src/main/java/train/client/render/models/ModelFreightCart2.java index 55a83d5617..9b5871e74e 100644 --- a/src/main/java/train/client/render/models/ModelFreightCart2.java +++ b/src/main/java/train/client/render/models/ModelFreightCart2.java @@ -1,7 +1,7 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; import train.common.core.handlers.ConfigHandler; diff --git a/src/main/java/train/client/render/models/ModelFreightCartUS.java b/src/main/java/train/client/render/models/ModelFreightCartUS.java index b65bfccd46..a887818bfc 100644 --- a/src/main/java/train/client/render/models/ModelFreightCartUS.java +++ b/src/main/java/train/client/render/models/ModelFreightCartUS.java @@ -2,7 +2,7 @@ import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; import train.common.api.Freight; diff --git a/src/main/java/train/client/render/models/ModelFreightCenterBeam_Empty.java b/src/main/java/train/client/render/models/ModelFreightCenterBeam_Empty.java index 08e3913104..47ddbe42f2 100644 --- a/src/main/java/train/client/render/models/ModelFreightCenterBeam_Empty.java +++ b/src/main/java/train/client/render/models/ModelFreightCenterBeam_Empty.java @@ -1,7 +1,7 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; import train.common.core.handlers.ConfigHandler; diff --git a/src/main/java/train/client/render/models/ModelFreightCenterBeam_Wood_1.java b/src/main/java/train/client/render/models/ModelFreightCenterBeam_Wood_1.java index c8fec49ff1..0281834aaa 100644 --- a/src/main/java/train/client/render/models/ModelFreightCenterBeam_Wood_1.java +++ b/src/main/java/train/client/render/models/ModelFreightCenterBeam_Wood_1.java @@ -1,7 +1,7 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; import train.common.api.Freight; import train.common.core.handlers.ConfigHandler; diff --git a/src/main/java/train/client/render/models/ModelFreightCenterBeam_Wood_2.java b/src/main/java/train/client/render/models/ModelFreightCenterBeam_Wood_2.java index a2f518364f..579c3d6d3e 100644 --- a/src/main/java/train/client/render/models/ModelFreightCenterBeam_Wood_2.java +++ b/src/main/java/train/client/render/models/ModelFreightCenterBeam_Wood_2.java @@ -1,7 +1,7 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; import train.common.api.Freight; diff --git a/src/main/java/train/client/render/models/ModelFreightClosed.java b/src/main/java/train/client/render/models/ModelFreightClosed.java index af20bc7f9e..d97d296621 100644 --- a/src/main/java/train/client/render/models/ModelFreightClosed.java +++ b/src/main/java/train/client/render/models/ModelFreightClosed.java @@ -1,7 +1,7 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; import train.common.core.handlers.ConfigHandler; diff --git a/src/main/java/train/client/render/models/ModelFreightGondola_DB.java b/src/main/java/train/client/render/models/ModelFreightGondola_DB.java index 9b3cc0e298..6449197087 100644 --- a/src/main/java/train/client/render/models/ModelFreightGondola_DB.java +++ b/src/main/java/train/client/render/models/ModelFreightGondola_DB.java @@ -2,7 +2,7 @@ import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; import train.common.api.Freight; diff --git a/src/main/java/train/client/render/models/ModelFreightHopper.java b/src/main/java/train/client/render/models/ModelFreightHopper.java index e94c1d8c6d..ad8dd0ecfd 100644 --- a/src/main/java/train/client/render/models/ModelFreightHopper.java +++ b/src/main/java/train/client/render/models/ModelFreightHopper.java @@ -2,7 +2,7 @@ import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; import train.common.api.Freight; diff --git a/src/main/java/train/client/render/models/ModelFreightOpen2.java b/src/main/java/train/client/render/models/ModelFreightOpen2.java index 7da173c49f..8e46da0f26 100644 --- a/src/main/java/train/client/render/models/ModelFreightOpen2.java +++ b/src/main/java/train/client/render/models/ModelFreightOpen2.java @@ -2,7 +2,7 @@ import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; import train.common.api.Freight; diff --git a/src/main/java/train/client/render/models/ModelFreightTrailer.java b/src/main/java/train/client/render/models/ModelFreightTrailer.java index 13e93a6d27..cae82e7ab8 100644 --- a/src/main/java/train/client/render/models/ModelFreightTrailer.java +++ b/src/main/java/train/client/render/models/ModelFreightTrailer.java @@ -1,7 +1,7 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; import train.common.api.Freight; import train.common.core.handlers.ConfigHandler; diff --git a/src/main/java/train/client/render/models/ModelFreightTruckM.java b/src/main/java/train/client/render/models/ModelFreightTruckM.java index 319a531992..202a0de72c 100644 --- a/src/main/java/train/client/render/models/ModelFreightTruckM.java +++ b/src/main/java/train/client/render/models/ModelFreightTruckM.java @@ -10,8 +10,8 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelFreightTruckM extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelFreightWagenDB.java b/src/main/java/train/client/render/models/ModelFreightWagenDB.java index 1d92dcd3ad..5df47deda2 100644 --- a/src/main/java/train/client/render/models/ModelFreightWagenDB.java +++ b/src/main/java/train/client/render/models/ModelFreightWagenDB.java @@ -2,7 +2,7 @@ import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; import train.common.core.handlers.ConfigHandler; diff --git a/src/main/java/train/client/render/models/ModelFreightWellcar.java b/src/main/java/train/client/render/models/ModelFreightWellcar.java index 688a751339..5fdf82858e 100644 --- a/src/main/java/train/client/render/models/ModelFreightWellcar.java +++ b/src/main/java/train/client/render/models/ModelFreightWellcar.java @@ -1,7 +1,7 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; import train.common.core.handlers.ConfigHandler; diff --git a/src/main/java/train/client/render/models/ModelFreightWood.java b/src/main/java/train/client/render/models/ModelFreightWood.java index 0ecb4ed4dc..0e38dca631 100644 --- a/src/main/java/train/client/render/models/ModelFreightWood.java +++ b/src/main/java/train/client/render/models/ModelFreightWood.java @@ -1,7 +1,7 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; import train.common.api.Freight; diff --git a/src/main/java/train/client/render/models/ModelFrictionTruck.java b/src/main/java/train/client/render/models/ModelFrictionTruck.java index d1d690b297..20ed72fefa 100644 --- a/src/main/java/train/client/render/models/ModelFrictionTruck.java +++ b/src/main/java/train/client/render/models/ModelFrictionTruck.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelFrictionTruck extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelGE25Ton.java b/src/main/java/train/client/render/models/ModelGE25Ton.java index 65af4a3358..95f5d4a220 100644 --- a/src/main/java/train/client/render/models/ModelGE25Ton.java +++ b/src/main/java/train/client/render/models/ModelGE25Ton.java @@ -12,8 +12,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; import java.util.ArrayList; diff --git a/src/main/java/train/client/render/models/ModelGE44Ton.java b/src/main/java/train/client/render/models/ModelGE44Ton.java index a17351454c..b30bfdc039 100644 --- a/src/main/java/train/client/render/models/ModelGE44Ton.java +++ b/src/main/java/train/client/render/models/ModelGE44Ton.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelGETonnerTruck.java b/src/main/java/train/client/render/models/ModelGETonnerTruck.java index c156a4f11b..3d9f7561bb 100644 --- a/src/main/java/train/client/render/models/ModelGETonnerTruck.java +++ b/src/main/java/train/client/render/models/ModelGETonnerTruck.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelGETonnerTruck extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelGM6C.java b/src/main/java/train/client/render/models/ModelGM6C.java index 6e959f9e2f..a0f692f869 100644 --- a/src/main/java/train/client/render/models/ModelGM6C.java +++ b/src/main/java/train/client/render/models/ModelGM6C.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelGP13.java b/src/main/java/train/client/render/models/ModelGP13.java index d57d189bf3..9a71eb9ab6 100644 --- a/src/main/java/train/client/render/models/ModelGP13.java +++ b/src/main/java/train/client/render/models/ModelGP13.java @@ -13,8 +13,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelGP13 extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelGP15.java b/src/main/java/train/client/render/models/ModelGP15.java index 495f6706a4..ada36c2a4c 100644 --- a/src/main/java/train/client/render/models/ModelGP15.java +++ b/src/main/java/train/client/render/models/ModelGP15.java @@ -9,9 +9,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelGP30.java b/src/main/java/train/client/render/models/ModelGP30.java index f715a2e22d..2d47cc7266 100644 --- a/src/main/java/train/client/render/models/ModelGP30.java +++ b/src/main/java/train/client/render/models/ModelGP30.java @@ -7,9 +7,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelGP38dash2.java b/src/main/java/train/client/render/models/ModelGP38dash2.java index 0a21ce7f26..e2f01d851f 100644 --- a/src/main/java/train/client/render/models/ModelGP38dash2.java +++ b/src/main/java/train/client/render/models/ModelGP38dash2.java @@ -6,9 +6,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelGP38dash9W.java b/src/main/java/train/client/render/models/ModelGP38dash9W.java index b0ae442146..112a9ea7c5 100644 --- a/src/main/java/train/client/render/models/ModelGP38dash9W.java +++ b/src/main/java/train/client/render/models/ModelGP38dash9W.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelGP40.java b/src/main/java/train/client/render/models/ModelGP40.java index 5195a5dcc5..7fdd9ad6d3 100644 --- a/src/main/java/train/client/render/models/ModelGP40.java +++ b/src/main/java/train/client/render/models/ModelGP40.java @@ -1,2476 +1,2476 @@ package train.client.render.models; +import fexcraft.tmt.slim.ModelRendererTurbo; import net.minecraft.client.Minecraft; -import net.minecraft.client.model.ModelRenderer; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; public class ModelGP40 extends ModelBase { - ModelRenderer Shape344; - ModelRenderer Shape1; - ModelRenderer Shape345; - ModelRenderer Shape2; - ModelRenderer Shape346; - ModelRenderer Shape3; - ModelRenderer Shape347; - ModelRenderer Shape4; - ModelRenderer Shape348; - ModelRenderer Shape5; - ModelRenderer Shape349; - ModelRenderer Shape6; - ModelRenderer Shape350; - ModelRenderer Shape7; - ModelRenderer Shape351; - ModelRenderer Shape8; - ModelRenderer Shape352; - ModelRenderer Shape9; - ModelRenderer Shape353; - ModelRenderer Shape10; - ModelRenderer Shape11; - ModelRenderer Shape12; - ModelRenderer Shape13; - ModelRenderer Shape14; - ModelRenderer Shape15; - ModelRenderer Shape16; - ModelRenderer Shape17; - ModelRenderer Shape18; - ModelRenderer Shape19; - ModelRenderer Shape20; - ModelRenderer Shape21; - ModelRenderer Shape22; - ModelRenderer Shape23; - ModelRenderer Shape24; - ModelRenderer Shape25; - ModelRenderer Shape26; - ModelRenderer Shape27; - ModelRenderer Shape28; - ModelRenderer Shape29; - ModelRenderer Shape30; - ModelRenderer Shape31; - ModelRenderer Shape32; - ModelRenderer Shape33; - ModelRenderer Shape34; - ModelRenderer Shape35; - ModelRenderer Shape36; - ModelRenderer Shape37; - ModelRenderer Shape38; - ModelRenderer Shape39; - ModelRenderer Shape40; - ModelRenderer Shape41; - ModelRenderer Shape42; - ModelRenderer Shape43; - ModelRenderer Shape44; - ModelRenderer Shape45; - ModelRenderer Shape46; - ModelRenderer Shape47; - ModelRenderer Shape48; - ModelRenderer Shape49; - ModelRenderer Shape50; - ModelRenderer Shape51; - ModelRenderer Shape52; - ModelRenderer Shape53; - ModelRenderer Shape54; - ModelRenderer Shape55; - ModelRenderer Shape56; - ModelRenderer Shape57; - ModelRenderer Shape58; - ModelRenderer Shape59; - ModelRenderer Shape60; - ModelRenderer Shape61; - ModelRenderer Shape62; - ModelRenderer Shape63; - ModelRenderer Shape64; - ModelRenderer Shape65; - ModelRenderer Shape66; - ModelRenderer Shape67; - ModelRenderer Shape68; - ModelRenderer Shape69; - ModelRenderer Shape70; - ModelRenderer Shape71; - ModelRenderer Shape72; - ModelRenderer Shape73; - ModelRenderer Shape74; - ModelRenderer Shape75; - ModelRenderer Shape76; - ModelRenderer Shape77; - ModelRenderer Shape78; - ModelRenderer Shape79; - ModelRenderer Shape80; - ModelRenderer Shape81; - ModelRenderer Shape82; - ModelRenderer Shape83; - ModelRenderer Shape84; - ModelRenderer Shape85; - ModelRenderer Shape86; - ModelRenderer Shape87; - ModelRenderer Shape88; - ModelRenderer Shape89; - ModelRenderer Shape90; - ModelRenderer Shape91; - ModelRenderer Shape92; - ModelRenderer Shape93; - ModelRenderer Shape94; - ModelRenderer Shape95; - ModelRenderer Shape97; - ModelRenderer Shape98; - ModelRenderer Shape99; - ModelRenderer Shape100; - ModelRenderer Shape101; - ModelRenderer Shape102; - ModelRenderer Shape103; - ModelRenderer Shape104; - ModelRenderer Shape105; - ModelRenderer Shape106; - ModelRenderer Shape107; - ModelRenderer Shape108; - ModelRenderer Shape109; - ModelRenderer Shape110; - ModelRenderer Shape111; - ModelRenderer Shape112; - ModelRenderer Shape113; - ModelRenderer Shape114; - ModelRenderer Shape115; - ModelRenderer Shape116; - ModelRenderer Shape117; - ModelRenderer Shape118; - ModelRenderer Shape119; - ModelRenderer Shape120; - ModelRenderer Shape121; - ModelRenderer Shape122; - ModelRenderer Shape123; - ModelRenderer Shape124; - ModelRenderer Shape125; - ModelRenderer Shape126; - ModelRenderer Shape127; - ModelRenderer Shape128; - ModelRenderer Shape129; - ModelRenderer Shape130; - ModelRenderer Shape131; - ModelRenderer Shape132; - ModelRenderer Shape133; - ModelRenderer Shape134; - ModelRenderer Shape135; - ModelRenderer Shape136; - ModelRenderer Shape137; - ModelRenderer Shape138; - ModelRenderer Shape139; - ModelRenderer Shape140; - ModelRenderer Shape141; - ModelRenderer Shape142; - ModelRenderer Shape143; - ModelRenderer Shape144; - ModelRenderer Shape145; - ModelRenderer Shape146; - ModelRenderer Shape147; - ModelRenderer Shape148; - ModelRenderer Shape149; - ModelRenderer Shape150; - ModelRenderer Shape151; - ModelRenderer Shape152; - ModelRenderer Shape153; - ModelRenderer Shape154; - ModelRenderer Shape155; - ModelRenderer Shape156; - ModelRenderer Shape157; - ModelRenderer Shape158; - ModelRenderer Shape159; - ModelRenderer Shape160; - ModelRenderer Shape161; - ModelRenderer Shape162; - ModelRenderer Shape163; - ModelRenderer Shape164; - ModelRenderer Shape165; - ModelRenderer Shape166; - ModelRenderer Shape167; - ModelRenderer Shape168; - ModelRenderer Shape169; - ModelRenderer Shape170; - ModelRenderer Shape171; - ModelRenderer Shape172; - ModelRenderer Shape173; - ModelRenderer Shape174; - ModelRenderer Shape175; - ModelRenderer light_big_2; - ModelRenderer Shape177; - ModelRenderer light8; - ModelRenderer Shape179; - ModelRenderer Shape180; - ModelRenderer Shape181; - ModelRenderer Shape182; - ModelRenderer Shape183; - ModelRenderer light1; - ModelRenderer Shape185; - ModelRenderer Shape186; - ModelRenderer Shape187; - ModelRenderer Shape188; - ModelRenderer Shape189; - ModelRenderer Shape190; - ModelRenderer Shape191; - ModelRenderer Shape192; - ModelRenderer Shape193; - ModelRenderer Shape194; - ModelRenderer Shape195; - ModelRenderer light_big_1; - ModelRenderer Shape197; - ModelRenderer Shape198; - ModelRenderer light7; - ModelRenderer Shape200; - ModelRenderer light3; - ModelRenderer Shape203; - ModelRenderer light5; - ModelRenderer light6; - ModelRenderer Shape206; - ModelRenderer Shape207; - ModelRenderer Shape208; - ModelRenderer Shape209; - ModelRenderer Shape210; - ModelRenderer Shape211; - ModelRenderer Shape212; - ModelRenderer Shape213; - ModelRenderer Shape214; - ModelRenderer Shape215; - ModelRenderer Shape216; - ModelRenderer Shape217; - ModelRenderer Shape218; - ModelRenderer Shape219; - ModelRenderer Shape220; - ModelRenderer Shape221; - ModelRenderer Shape222; - ModelRenderer Shape223; - ModelRenderer Shape224; - ModelRenderer Shape225; - ModelRenderer Shape226; - ModelRenderer Shape227; - ModelRenderer Shape228; - ModelRenderer Shape229; - ModelRenderer Shape230; - ModelRenderer Shape231; - ModelRenderer Shape232; - ModelRenderer Shape233; - ModelRenderer Shape234; - ModelRenderer Shape235; - ModelRenderer Shape236; - ModelRenderer Shape237; - ModelRenderer Shape238; - ModelRenderer light2; - ModelRenderer Shape240; - ModelRenderer Shape241; - ModelRenderer Shape242; - ModelRenderer Shape243; - ModelRenderer Shape244; - ModelRenderer Shape245; - ModelRenderer Shape246; - ModelRenderer Shape247; - ModelRenderer Shape248; - ModelRenderer Shape249; - ModelRenderer Shape250; - ModelRenderer Shape251; - ModelRenderer Shape252; - ModelRenderer light4; - ModelRenderer Shape254; - ModelRenderer Shape255; - ModelRenderer Shape256; - ModelRenderer Shape257; - ModelRenderer Shape258; - ModelRenderer Shape259; - ModelRenderer Shape260; - ModelRenderer Shape261; - ModelRenderer Shape262; - ModelRenderer Shape263; - ModelRenderer Shape264; - ModelRenderer Shape265; - ModelRenderer Shape266; - ModelRenderer Shape267; - ModelRenderer Shape268; - ModelRenderer Shape269; - ModelRenderer Shape270; - ModelRenderer Shape271; - ModelRenderer Shape272; - ModelRenderer Shape273; - ModelRenderer chimney; - ModelRenderer Shape275; - ModelRenderer Shape276; - ModelRenderer Shape277; - ModelRenderer Shape278; - ModelRenderer Shape279; - ModelRenderer Shape280; - ModelRenderer Shape281; - ModelRenderer Shape282; - ModelRenderer Shape283; - ModelRenderer Shape284; - ModelRenderer Shape285; - ModelRenderer Shape286; - ModelRenderer Shape287; - ModelRenderer Shape288; - ModelRenderer Shape289; - ModelRenderer Shape290; - ModelRenderer Shape291; - ModelRenderer Shape292; - ModelRenderer Shape293; - ModelRenderer Shape294; - ModelRenderer Shape295; - ModelRenderer Shape296; - ModelRenderer Shape297; - ModelRenderer Shape298; - ModelRenderer Shape299; - ModelRenderer Shape300; - ModelRenderer Shape301; - ModelRenderer Shape302; - ModelRenderer Shape303; - ModelRenderer Shape304; - ModelRenderer Shape305; - ModelRenderer Shape306; - ModelRenderer Shape307; - ModelRenderer Shape308; - ModelRenderer Shape309; - ModelRenderer Shape310; - ModelRenderer Shape311; - ModelRenderer Shape312; - ModelRenderer Shape313; - ModelRenderer Shape314; - ModelRenderer Shape315; - ModelRenderer Shape316; - ModelRenderer Shape317; - ModelRenderer Shape318; - ModelRenderer Shape319; - ModelRenderer Shape320; - ModelRenderer Shape321; - ModelRenderer Shape322; - ModelRenderer Shape323; - ModelRenderer Shape324; - ModelRenderer Shape325; - ModelRenderer Shape326; - ModelRenderer Shape327; - ModelRenderer Shape328; - ModelRenderer Shape329; - ModelRenderer Shape330; - ModelRenderer Shape331; - ModelRenderer Shape332; - ModelRenderer Shape333; - ModelRenderer Shape334; - ModelRenderer Shape335; - ModelRenderer Shape336; - ModelRenderer Shape337; - ModelRenderer Shape338; - ModelRenderer Shape339; - ModelRenderer Shape340; - ModelRenderer Shape341; - ModelRenderer Shape342; - ModelRenderer Shape343; - ModelRenderer Shape370; + ModelRendererTurbo Shape344; + ModelRendererTurbo Shape1; + ModelRendererTurbo Shape345; + ModelRendererTurbo Shape2; + ModelRendererTurbo Shape346; + ModelRendererTurbo Shape3; + ModelRendererTurbo Shape347; + ModelRendererTurbo Shape4; + ModelRendererTurbo Shape348; + ModelRendererTurbo Shape5; + ModelRendererTurbo Shape349; + ModelRendererTurbo Shape6; + ModelRendererTurbo Shape350; + ModelRendererTurbo Shape7; + ModelRendererTurbo Shape351; + ModelRendererTurbo Shape8; + ModelRendererTurbo Shape352; + ModelRendererTurbo Shape9; + ModelRendererTurbo Shape353; + ModelRendererTurbo Shape10; + ModelRendererTurbo Shape11; + ModelRendererTurbo Shape12; + ModelRendererTurbo Shape13; + ModelRendererTurbo Shape14; + ModelRendererTurbo Shape15; + ModelRendererTurbo Shape16; + ModelRendererTurbo Shape17; + ModelRendererTurbo Shape18; + ModelRendererTurbo Shape19; + ModelRendererTurbo Shape20; + ModelRendererTurbo Shape21; + ModelRendererTurbo Shape22; + ModelRendererTurbo Shape23; + ModelRendererTurbo Shape24; + ModelRendererTurbo Shape25; + ModelRendererTurbo Shape26; + ModelRendererTurbo Shape27; + ModelRendererTurbo Shape28; + ModelRendererTurbo Shape29; + ModelRendererTurbo Shape30; + ModelRendererTurbo Shape31; + ModelRendererTurbo Shape32; + ModelRendererTurbo Shape33; + ModelRendererTurbo Shape34; + ModelRendererTurbo Shape35; + ModelRendererTurbo Shape36; + ModelRendererTurbo Shape37; + ModelRendererTurbo Shape38; + ModelRendererTurbo Shape39; + ModelRendererTurbo Shape40; + ModelRendererTurbo Shape41; + ModelRendererTurbo Shape42; + ModelRendererTurbo Shape43; + ModelRendererTurbo Shape44; + ModelRendererTurbo Shape45; + ModelRendererTurbo Shape46; + ModelRendererTurbo Shape47; + ModelRendererTurbo Shape48; + ModelRendererTurbo Shape49; + ModelRendererTurbo Shape50; + ModelRendererTurbo Shape51; + ModelRendererTurbo Shape52; + ModelRendererTurbo Shape53; + ModelRendererTurbo Shape54; + ModelRendererTurbo Shape55; + ModelRendererTurbo Shape56; + ModelRendererTurbo Shape57; + ModelRendererTurbo Shape58; + ModelRendererTurbo Shape59; + ModelRendererTurbo Shape60; + ModelRendererTurbo Shape61; + ModelRendererTurbo Shape62; + ModelRendererTurbo Shape63; + ModelRendererTurbo Shape64; + ModelRendererTurbo Shape65; + ModelRendererTurbo Shape66; + ModelRendererTurbo Shape67; + ModelRendererTurbo Shape68; + ModelRendererTurbo Shape69; + ModelRendererTurbo Shape70; + ModelRendererTurbo Shape71; + ModelRendererTurbo Shape72; + ModelRendererTurbo Shape73; + ModelRendererTurbo Shape74; + ModelRendererTurbo Shape75; + ModelRendererTurbo Shape76; + ModelRendererTurbo Shape77; + ModelRendererTurbo Shape78; + ModelRendererTurbo Shape79; + ModelRendererTurbo Shape80; + ModelRendererTurbo Shape81; + ModelRendererTurbo Shape82; + ModelRendererTurbo Shape83; + ModelRendererTurbo Shape84; + ModelRendererTurbo Shape85; + ModelRendererTurbo Shape86; + ModelRendererTurbo Shape87; + ModelRendererTurbo Shape88; + ModelRendererTurbo Shape89; + ModelRendererTurbo Shape90; + ModelRendererTurbo Shape91; + ModelRendererTurbo Shape92; + ModelRendererTurbo Shape93; + ModelRendererTurbo Shape94; + ModelRendererTurbo Shape95; + ModelRendererTurbo Shape97; + ModelRendererTurbo Shape98; + ModelRendererTurbo Shape99; + ModelRendererTurbo Shape100; + ModelRendererTurbo Shape101; + ModelRendererTurbo Shape102; + ModelRendererTurbo Shape103; + ModelRendererTurbo Shape104; + ModelRendererTurbo Shape105; + ModelRendererTurbo Shape106; + ModelRendererTurbo Shape107; + ModelRendererTurbo Shape108; + ModelRendererTurbo Shape109; + ModelRendererTurbo Shape110; + ModelRendererTurbo Shape111; + ModelRendererTurbo Shape112; + ModelRendererTurbo Shape113; + ModelRendererTurbo Shape114; + ModelRendererTurbo Shape115; + ModelRendererTurbo Shape116; + ModelRendererTurbo Shape117; + ModelRendererTurbo Shape118; + ModelRendererTurbo Shape119; + ModelRendererTurbo Shape120; + ModelRendererTurbo Shape121; + ModelRendererTurbo Shape122; + ModelRendererTurbo Shape123; + ModelRendererTurbo Shape124; + ModelRendererTurbo Shape125; + ModelRendererTurbo Shape126; + ModelRendererTurbo Shape127; + ModelRendererTurbo Shape128; + ModelRendererTurbo Shape129; + ModelRendererTurbo Shape130; + ModelRendererTurbo Shape131; + ModelRendererTurbo Shape132; + ModelRendererTurbo Shape133; + ModelRendererTurbo Shape134; + ModelRendererTurbo Shape135; + ModelRendererTurbo Shape136; + ModelRendererTurbo Shape137; + ModelRendererTurbo Shape138; + ModelRendererTurbo Shape139; + ModelRendererTurbo Shape140; + ModelRendererTurbo Shape141; + ModelRendererTurbo Shape142; + ModelRendererTurbo Shape143; + ModelRendererTurbo Shape144; + ModelRendererTurbo Shape145; + ModelRendererTurbo Shape146; + ModelRendererTurbo Shape147; + ModelRendererTurbo Shape148; + ModelRendererTurbo Shape149; + ModelRendererTurbo Shape150; + ModelRendererTurbo Shape151; + ModelRendererTurbo Shape152; + ModelRendererTurbo Shape153; + ModelRendererTurbo Shape154; + ModelRendererTurbo Shape155; + ModelRendererTurbo Shape156; + ModelRendererTurbo Shape157; + ModelRendererTurbo Shape158; + ModelRendererTurbo Shape159; + ModelRendererTurbo Shape160; + ModelRendererTurbo Shape161; + ModelRendererTurbo Shape162; + ModelRendererTurbo Shape163; + ModelRendererTurbo Shape164; + ModelRendererTurbo Shape165; + ModelRendererTurbo Shape166; + ModelRendererTurbo Shape167; + ModelRendererTurbo Shape168; + ModelRendererTurbo Shape169; + ModelRendererTurbo Shape170; + ModelRendererTurbo Shape171; + ModelRendererTurbo Shape172; + ModelRendererTurbo Shape173; + ModelRendererTurbo Shape174; + ModelRendererTurbo Shape175; + ModelRendererTurbo light_big_2; + ModelRendererTurbo Shape177; + ModelRendererTurbo light8; + ModelRendererTurbo Shape179; + ModelRendererTurbo Shape180; + ModelRendererTurbo Shape181; + ModelRendererTurbo Shape182; + ModelRendererTurbo Shape183; + ModelRendererTurbo light1; + ModelRendererTurbo Shape185; + ModelRendererTurbo Shape186; + ModelRendererTurbo Shape187; + ModelRendererTurbo Shape188; + ModelRendererTurbo Shape189; + ModelRendererTurbo Shape190; + ModelRendererTurbo Shape191; + ModelRendererTurbo Shape192; + ModelRendererTurbo Shape193; + ModelRendererTurbo Shape194; + ModelRendererTurbo Shape195; + ModelRendererTurbo light_big_1; + ModelRendererTurbo Shape197; + ModelRendererTurbo Shape198; + ModelRendererTurbo light7; + ModelRendererTurbo Shape200; + ModelRendererTurbo light3; + ModelRendererTurbo Shape203; + ModelRendererTurbo light5; + ModelRendererTurbo light6; + ModelRendererTurbo Shape206; + ModelRendererTurbo Shape207; + ModelRendererTurbo Shape208; + ModelRendererTurbo Shape209; + ModelRendererTurbo Shape210; + ModelRendererTurbo Shape211; + ModelRendererTurbo Shape212; + ModelRendererTurbo Shape213; + ModelRendererTurbo Shape214; + ModelRendererTurbo Shape215; + ModelRendererTurbo Shape216; + ModelRendererTurbo Shape217; + ModelRendererTurbo Shape218; + ModelRendererTurbo Shape219; + ModelRendererTurbo Shape220; + ModelRendererTurbo Shape221; + ModelRendererTurbo Shape222; + ModelRendererTurbo Shape223; + ModelRendererTurbo Shape224; + ModelRendererTurbo Shape225; + ModelRendererTurbo Shape226; + ModelRendererTurbo Shape227; + ModelRendererTurbo Shape228; + ModelRendererTurbo Shape229; + ModelRendererTurbo Shape230; + ModelRendererTurbo Shape231; + ModelRendererTurbo Shape232; + ModelRendererTurbo Shape233; + ModelRendererTurbo Shape234; + ModelRendererTurbo Shape235; + ModelRendererTurbo Shape236; + ModelRendererTurbo Shape237; + ModelRendererTurbo Shape238; + ModelRendererTurbo light2; + ModelRendererTurbo Shape240; + ModelRendererTurbo Shape241; + ModelRendererTurbo Shape242; + ModelRendererTurbo Shape243; + ModelRendererTurbo Shape244; + ModelRendererTurbo Shape245; + ModelRendererTurbo Shape246; + ModelRendererTurbo Shape247; + ModelRendererTurbo Shape248; + ModelRendererTurbo Shape249; + ModelRendererTurbo Shape250; + ModelRendererTurbo Shape251; + ModelRendererTurbo Shape252; + ModelRendererTurbo light4; + ModelRendererTurbo Shape254; + ModelRendererTurbo Shape255; + ModelRendererTurbo Shape256; + ModelRendererTurbo Shape257; + ModelRendererTurbo Shape258; + ModelRendererTurbo Shape259; + ModelRendererTurbo Shape260; + ModelRendererTurbo Shape261; + ModelRendererTurbo Shape262; + ModelRendererTurbo Shape263; + ModelRendererTurbo Shape264; + ModelRendererTurbo Shape265; + ModelRendererTurbo Shape266; + ModelRendererTurbo Shape267; + ModelRendererTurbo Shape268; + ModelRendererTurbo Shape269; + ModelRendererTurbo Shape270; + ModelRendererTurbo Shape271; + ModelRendererTurbo Shape272; + ModelRendererTurbo Shape273; + ModelRendererTurbo chimney; + ModelRendererTurbo Shape275; + ModelRendererTurbo Shape276; + ModelRendererTurbo Shape277; + ModelRendererTurbo Shape278; + ModelRendererTurbo Shape279; + ModelRendererTurbo Shape280; + ModelRendererTurbo Shape281; + ModelRendererTurbo Shape282; + ModelRendererTurbo Shape283; + ModelRendererTurbo Shape284; + ModelRendererTurbo Shape285; + ModelRendererTurbo Shape286; + ModelRendererTurbo Shape287; + ModelRendererTurbo Shape288; + ModelRendererTurbo Shape289; + ModelRendererTurbo Shape290; + ModelRendererTurbo Shape291; + ModelRendererTurbo Shape292; + ModelRendererTurbo Shape293; + ModelRendererTurbo Shape294; + ModelRendererTurbo Shape295; + ModelRendererTurbo Shape296; + ModelRendererTurbo Shape297; + ModelRendererTurbo Shape298; + ModelRendererTurbo Shape299; + ModelRendererTurbo Shape300; + ModelRendererTurbo Shape301; + ModelRendererTurbo Shape302; + ModelRendererTurbo Shape303; + ModelRendererTurbo Shape304; + ModelRendererTurbo Shape305; + ModelRendererTurbo Shape306; + ModelRendererTurbo Shape307; + ModelRendererTurbo Shape308; + ModelRendererTurbo Shape309; + ModelRendererTurbo Shape310; + ModelRendererTurbo Shape311; + ModelRendererTurbo Shape312; + ModelRendererTurbo Shape313; + ModelRendererTurbo Shape314; + ModelRendererTurbo Shape315; + ModelRendererTurbo Shape316; + ModelRendererTurbo Shape317; + ModelRendererTurbo Shape318; + ModelRendererTurbo Shape319; + ModelRendererTurbo Shape320; + ModelRendererTurbo Shape321; + ModelRendererTurbo Shape322; + ModelRendererTurbo Shape323; + ModelRendererTurbo Shape324; + ModelRendererTurbo Shape325; + ModelRendererTurbo Shape326; + ModelRendererTurbo Shape327; + ModelRendererTurbo Shape328; + ModelRendererTurbo Shape329; + ModelRendererTurbo Shape330; + ModelRendererTurbo Shape331; + ModelRendererTurbo Shape332; + ModelRendererTurbo Shape333; + ModelRendererTurbo Shape334; + ModelRendererTurbo Shape335; + ModelRendererTurbo Shape336; + ModelRendererTurbo Shape337; + ModelRendererTurbo Shape338; + ModelRendererTurbo Shape339; + ModelRendererTurbo Shape340; + ModelRendererTurbo Shape341; + ModelRendererTurbo Shape342; + ModelRendererTurbo Shape343; + ModelRendererTurbo Shape370; public ModelGP40() { textureWidth = 512; textureHeight = 512; - Shape344 = new ModelRenderer(this, 59, 100); + Shape344 = new ModelRendererTurbo(this, 59, 100); Shape344.addBox(0F, 0F, 0F, 12, 3, 12); Shape344.setRotationPoint(21F, -10F, -6F); Shape344.setTextureSize(512, 512); Shape344.mirror = true; setRotation(Shape344, 0F, 0F, 0F); - Shape1 = new ModelRenderer(this, 0, 33); + Shape1 = new ModelRendererTurbo(this, 0, 33); Shape1.addBox(0F, 0F, 0F, 3, 0, 1); Shape1.setRotationPoint(8F, -0.5F, -6.6F); Shape1.setTextureSize(512, 512); Shape1.mirror = true; setRotation(Shape1, -2.792527F, 0F, 0F); - Shape345 = new ModelRenderer(this, 33, 0); + Shape345 = new ModelRendererTurbo(this, 33, 0); Shape345.addBox(0F, 0F, 0F, 0, 1, 6); Shape345.setRotationPoint(7F, -10.5F, -3F); Shape345.setTextureSize(512, 512); Shape345.mirror = true; setRotation(Shape345, 0F, 0F, 2.617994F); - Shape2 = new ModelRenderer(this, 0, 33); + Shape2 = new ModelRendererTurbo(this, 0, 33); Shape2.addBox(0F, 0F, 0F, 3, 0, 1); Shape2.setRotationPoint(8F, 1.5F, -6.6F); Shape2.setTextureSize(512, 512); Shape2.mirror = true; setRotation(Shape2, -2.792527F, 0F, 0F); - Shape346 = new ModelRenderer(this, 33, 0); + Shape346 = new ModelRendererTurbo(this, 33, 0); Shape346.addBox(0F, 0F, 0F, 0, 1, 6); Shape346.setRotationPoint(11F, -10.5F, -3F); Shape346.setTextureSize(512, 512); Shape346.mirror = true; setRotation(Shape346, 0F, 0F, -2.617994F); - Shape3 = new ModelRenderer(this, 0, 33); + Shape3 = new ModelRendererTurbo(this, 0, 33); Shape3.addBox(0F, 0F, 0F, 3, 0, 1); Shape3.setRotationPoint(8F, 0.5F, -6.6F); Shape3.setTextureSize(512, 512); Shape3.mirror = true; setRotation(Shape3, -2.792527F, 0F, 0F); - Shape347 = new ModelRenderer(this, 29, 18); + Shape347 = new ModelRendererTurbo(this, 29, 18); Shape347.addBox(0F, 0F, 0F, 4, 1, 0); Shape347.setRotationPoint(7F, -10.5F, -3F); Shape347.setTextureSize(512, 512); Shape347.mirror = true; setRotation(Shape347, -2.617994F, 0F, 0F); - Shape4 = new ModelRenderer(this, 200, 0); + Shape4 = new ModelRendererTurbo(this, 200, 0); Shape4.addBox(0F, 0F, 0F, 2, 2, 14); Shape4.setRotationPoint(-13F, 20F, -7F); Shape4.setTextureSize(512, 512); Shape4.mirror = true; setRotation(Shape4, 0F, 0F, 0F); - Shape348 = new ModelRenderer(this, 29, 18); + Shape348 = new ModelRendererTurbo(this, 29, 18); Shape348.addBox(0F, 0F, 0F, 4, 1, 0); Shape348.setRotationPoint(7F, -10.5F, 3F); Shape348.setTextureSize(512, 512); Shape348.mirror = true; setRotation(Shape348, 2.617994F, 0F, 0F); - Shape5 = new ModelRenderer(this, 0, 33); + Shape5 = new ModelRendererTurbo(this, 0, 33); Shape5.addBox(0F, 0F, 0F, 3, 0, 1); Shape5.setRotationPoint(8F, -1.5F, -6.6F); Shape5.setTextureSize(512, 512); Shape5.mirror = true; setRotation(Shape5, -2.792527F, 0F, 0F); - Shape349 = new ModelRenderer(this, 10, 10); + Shape349 = new ModelRendererTurbo(this, 10, 10); Shape349.addBox(0F, 0F, 0F, 1, 2, 1); Shape349.setRotationPoint(-8F, -11F, 0F); Shape349.setTextureSize(512, 512); Shape349.mirror = true; setRotation(Shape349, 0F, 0F, 0F); - Shape6 = new ModelRenderer(this, 243, 479); + Shape6 = new ModelRendererTurbo(this, 243, 479); Shape6.addBox(0F, 0F, 0F, 3, 5, 22); Shape6.setRotationPoint(-23F, 14F, -11F); Shape6.setTextureSize(512, 512); Shape6.mirror = true; setRotation(Shape6, 0F, 0F, 0F); - Shape350 = new ModelRenderer(this, 20, 28); + Shape350 = new ModelRendererTurbo(this, 20, 28); Shape350.addBox(0F, 0F, 0F, 1, 2, 8); Shape350.setRotationPoint(40.1F, 14.1F, -4F); Shape350.setTextureSize(512, 512); Shape350.mirror = true; setRotation(Shape350, 0F, 0F, 0F); - Shape7 = new ModelRenderer(this, 200, 52); + Shape7 = new ModelRendererTurbo(this, 200, 52); Shape7.addBox(0F, 0F, 0F, 6, 3, 1); Shape7.setRotationPoint(-15F, 19F, -9F); Shape7.setTextureSize(512, 512); Shape7.mirror = true; setRotation(Shape7, 0F, 0F, 0F); - Shape351 = new ModelRenderer(this, 20, 28); + Shape351 = new ModelRendererTurbo(this, 20, 28); Shape351.addBox(0F, 0F, 0F, 1, 2, 8); Shape351.setRotationPoint(-23.1F, 14.1F, -4F); Shape351.setTextureSize(512, 512); Shape351.mirror = true; setRotation(Shape351, 0F, 0F, 0F); - Shape8 = new ModelRenderer(this, 200, 30); + Shape8 = new ModelRendererTurbo(this, 200, 30); Shape8.addBox(0F, 0F, 0F, 6, 6, 0); Shape8.setRotationPoint(28F, 18F, -7F); Shape8.setTextureSize(512, 512); Shape8.mirror = true; setRotation(Shape8, 0F, 0F, 0F); - Shape352 = new ModelRenderer(this, 20, 47); + Shape352 = new ModelRendererTurbo(this, 20, 47); Shape352.addBox(0F, 0F, 0F, 8, 2, 0); Shape352.setRotationPoint(-9F, 9F, -11F); Shape352.setTextureSize(512, 512); Shape352.mirror = true; setRotation(Shape352, -0.0349066F, 0F, 0F); - Shape9 = new ModelRenderer(this, 200, 40); + Shape9 = new ModelRendererTurbo(this, 200, 40); Shape9.addBox(0F, 0F, 0F, 2, 3, 2); Shape9.setRotationPoint(30F, 17F, -1F); Shape9.setTextureSize(512, 512); Shape9.mirror = true; setRotation(Shape9, 0F, 0F, 0F); - Shape353 = new ModelRenderer(this, 20, 47); + Shape353 = new ModelRendererTurbo(this, 20, 47); Shape353.addBox(0F, 0F, 0F, 8, 2, 0); Shape353.setRotationPoint(-9F, 9F, 11F); Shape353.setTextureSize(512, 512); Shape353.mirror = true; setRotation(Shape353, 0.0349066F, 0F, 0F); - Shape10 = new ModelRenderer(this, 200, 0); + Shape10 = new ModelRendererTurbo(this, 200, 0); Shape10.addBox(0F, 0F, 0F, 2, 2, 14); Shape10.setRotationPoint(19F, 20F, -7F); Shape10.setTextureSize(512, 512); Shape10.mirror = true; setRotation(Shape10, 0F, 0F, 0F); - Shape11 = new ModelRenderer(this, 200, 0); + Shape11 = new ModelRendererTurbo(this, 200, 0); Shape11.addBox(0F, 0F, 0F, 2, 2, 14); Shape11.setRotationPoint(30F, 20F, -7F); Shape11.setTextureSize(512, 512); Shape11.mirror = true; setRotation(Shape11, 0F, 0F, 0F); - Shape12 = new ModelRenderer(this, 243, 479); + Shape12 = new ModelRendererTurbo(this, 243, 479); Shape12.addBox(0F, 0F, 0F, 3, 5, 22); Shape12.setRotationPoint(38F, 14F, -11F); Shape12.setTextureSize(512, 512); Shape12.mirror = true; setRotation(Shape12, 0F, 0F, 0F); - Shape13 = new ModelRenderer(this, 300, 486); + Shape13 = new ModelRendererTurbo(this, 300, 486); Shape13.addBox(0F, 0F, 0F, 4, 3, 16); Shape13.setRotationPoint(34F, 14F, -8F); Shape13.setTextureSize(512, 512); Shape13.mirror = true; setRotation(Shape13, 0F, 0F, 0F); - Shape14 = new ModelRenderer(this, 0, 33); + Shape14 = new ModelRendererTurbo(this, 0, 33); Shape14.addBox(0F, 0F, 0F, 3, 0, 1); Shape14.setRotationPoint(8F, 1F, -6.6F); Shape14.setTextureSize(512, 512); Shape14.mirror = true; setRotation(Shape14, -2.792527F, 0F, 0F); - Shape15 = new ModelRenderer(this, 300, 486); + Shape15 = new ModelRendererTurbo(this, 300, 486); Shape15.addBox(0F, 0F, 0F, 4, 3, 16); Shape15.setRotationPoint(-20F, 14F, -8F); Shape15.setTextureSize(512, 512); Shape15.mirror = true; setRotation(Shape15, 0F, 0F, 0F); - Shape16 = new ModelRenderer(this, 200, 40); + Shape16 = new ModelRendererTurbo(this, 200, 40); Shape16.addBox(0F, 0F, 0F, 2, 3, 2); Shape16.setRotationPoint(19F, 17F, -1F); Shape16.setTextureSize(512, 512); Shape16.mirror = true; setRotation(Shape16, 0F, 0F, 0F); - Shape17 = new ModelRenderer(this, 200, 30); + Shape17 = new ModelRendererTurbo(this, 200, 30); Shape17.addBox(0F, 0F, 0F, 6, 6, 0); Shape17.setRotationPoint(-15F, 18F, 7F); Shape17.setTextureSize(512, 512); Shape17.mirror = true; setRotation(Shape17, 0F, 0F, 0F); - Shape18 = new ModelRenderer(this, 200, 30); + Shape18 = new ModelRendererTurbo(this, 200, 30); Shape18.addBox(0F, 0F, 0F, 6, 6, 0); Shape18.setRotationPoint(-4F, 18F, -7F); Shape18.setTextureSize(512, 512); Shape18.mirror = true; setRotation(Shape18, 0F, 0F, 0F); - Shape19 = new ModelRenderer(this, 0, 33); + Shape19 = new ModelRendererTurbo(this, 0, 33); Shape19.addBox(0F, 0F, 0F, 3, 0, 1); Shape19.setRotationPoint(8F, -2F, -6.6F); Shape19.setTextureSize(512, 512); Shape19.mirror = true; setRotation(Shape19, -2.792527F, 0F, 0F); - Shape20 = new ModelRenderer(this, 347, 480); + Shape20 = new ModelRendererTurbo(this, 347, 480); Shape20.addBox(0F, 0F, 0F, 50, 3, 22); Shape20.setRotationPoint(-16F, 14F, -11F); Shape20.setTextureSize(512, 512); Shape20.mirror = true; setRotation(Shape20, 0F, 0F, 0F); - Shape21 = new ModelRenderer(this, 0, 33); + Shape21 = new ModelRendererTurbo(this, 0, 33); Shape21.addBox(0F, 0F, 0F, 3, 0, 1); Shape21.setRotationPoint(8F, -1F, -6.6F); Shape21.setTextureSize(512, 512); Shape21.mirror = true; setRotation(Shape21, -2.792527F, 0F, 0F); - Shape22 = new ModelRenderer(this, 0, 33); + Shape22 = new ModelRendererTurbo(this, 0, 33); Shape22.addBox(0F, 0F, 0F, 3, 0, 1); Shape22.setRotationPoint(4F, 1.5F, -6.6F); Shape22.setTextureSize(512, 512); Shape22.mirror = true; setRotation(Shape22, -2.792527F, 0F, 0F); - Shape23 = new ModelRenderer(this, 0, 33); + Shape23 = new ModelRendererTurbo(this, 0, 33); Shape23.addBox(0F, 0F, 0F, 3, 0, 1); Shape23.setRotationPoint(4F, -1.5F, -6.6F); Shape23.setTextureSize(512, 512); Shape23.mirror = true; setRotation(Shape23, -2.792527F, 0F, 0F); - Shape24 = new ModelRenderer(this, 0, 33); + Shape24 = new ModelRendererTurbo(this, 0, 33); Shape24.addBox(0F, 0F, 0F, 3, 0, 1); Shape24.setRotationPoint(4F, 0F, -6.6F); Shape24.setTextureSize(512, 512); Shape24.mirror = true; setRotation(Shape24, -2.792527F, 0F, 0F); - Shape25 = new ModelRenderer(this, 200, 52); + Shape25 = new ModelRendererTurbo(this, 200, 52); Shape25.addBox(0F, 0F, 0F, 6, 3, 1); Shape25.setRotationPoint(-4F, 19F, 8F); Shape25.setTextureSize(512, 512); Shape25.mirror = true; setRotation(Shape25, 0F, 0F, 0F); - Shape26 = new ModelRenderer(this, 0, 33); + Shape26 = new ModelRendererTurbo(this, 0, 33); Shape26.addBox(0F, 0F, 0F, 3, 0, 1); Shape26.setRotationPoint(4F, -0.5F, -6.6F); Shape26.setTextureSize(512, 512); Shape26.mirror = true; setRotation(Shape26, -2.792527F, 0F, 0F); - Shape27 = new ModelRenderer(this, 100, 7); + Shape27 = new ModelRendererTurbo(this, 100, 7); Shape27.addBox(0F, 0F, 0F, 11, 4, 0); Shape27.setRotationPoint(4F, 18F, -10F); Shape27.setTextureSize(512, 512); Shape27.mirror = true; setRotation(Shape27, 0F, 0F, 0F); - Shape28 = new ModelRenderer(this, 0, 33); + Shape28 = new ModelRendererTurbo(this, 0, 33); Shape28.addBox(0F, 0F, 0F, 3, 0, 1); Shape28.setRotationPoint(-19F, 1.5F, -6.6F); Shape28.setTextureSize(512, 512); Shape28.mirror = true; setRotation(Shape28, -2.792527F, 0F, 0F); - Shape29 = new ModelRenderer(this, 0, 33); + Shape29 = new ModelRendererTurbo(this, 0, 33); Shape29.addBox(0F, 0F, 0F, 3, 0, 1); Shape29.setRotationPoint(-19F, -2F, -6.6F); Shape29.setTextureSize(512, 512); Shape29.mirror = true; setRotation(Shape29, -2.792527F, 0F, 0F); - Shape30 = new ModelRenderer(this, 0, 26); + Shape30 = new ModelRendererTurbo(this, 0, 26); Shape30.addBox(0F, 0F, 0F, 3, 0, 1); Shape30.setRotationPoint(8F, -0.5F, 6.6F); Shape30.setTextureSize(512, 512); Shape30.mirror = true; setRotation(Shape30, -0.3490659F, 0F, 0F); - Shape31 = new ModelRenderer(this, 0, 33); + Shape31 = new ModelRendererTurbo(this, 0, 33); Shape31.addBox(0F, 0F, 0F, 3, 0, 1); Shape31.setRotationPoint(-15F, 1F, -6.6F); Shape31.setTextureSize(512, 512); Shape31.mirror = true; setRotation(Shape31, -2.792527F, 0F, 0F); - Shape32 = new ModelRenderer(this, 0, 33); + Shape32 = new ModelRendererTurbo(this, 0, 33); Shape32.addBox(0F, 0F, 0F, 3, 0, 1); Shape32.setRotationPoint(-15F, 1.5F, -6.6F); Shape32.setTextureSize(512, 512); Shape32.mirror = true; setRotation(Shape32, -2.792527F, 0F, 0F); - Shape33 = new ModelRenderer(this, 0, 33); + Shape33 = new ModelRendererTurbo(this, 0, 33); Shape33.addBox(0F, 0F, 0F, 3, 0, 1); Shape33.setRotationPoint(-15F, -1.5F, -6.6F); Shape33.setTextureSize(512, 512); Shape33.mirror = true; setRotation(Shape33, -2.792527F, 0F, 0F); - Shape34 = new ModelRenderer(this, 0, 33); + Shape34 = new ModelRendererTurbo(this, 0, 33); Shape34.addBox(0F, 0F, 0F, 3, 0, 1); Shape34.setRotationPoint(-15F, 0.5F, -6.6F); Shape34.setTextureSize(512, 512); Shape34.mirror = true; setRotation(Shape34, -2.792527F, 0F, 0F); - Shape35 = new ModelRenderer(this, 0, 33); + Shape35 = new ModelRendererTurbo(this, 0, 33); Shape35.addBox(0F, 0F, 0F, 3, 0, 1); Shape35.setRotationPoint(-19F, 1F, -6.6F); Shape35.setTextureSize(512, 512); Shape35.mirror = true; setRotation(Shape35, -2.792527F, 0F, 0F); - Shape36 = new ModelRenderer(this, 0, 33); + Shape36 = new ModelRendererTurbo(this, 0, 33); Shape36.addBox(0F, 0F, 0F, 3, 0, 1); Shape36.setRotationPoint(-19F, 0.5F, -6.6F); Shape36.setTextureSize(512, 512); Shape36.mirror = true; setRotation(Shape36, -2.792527F, 0F, 0F); - Shape37 = new ModelRenderer(this, 0, 26); + Shape37 = new ModelRendererTurbo(this, 0, 26); Shape37.addBox(0F, 0F, 0F, 3, 0, 1); Shape37.setRotationPoint(-19F, -0.5F, 6.6F); Shape37.setTextureSize(512, 512); Shape37.mirror = true; setRotation(Shape37, -0.3490659F, 0F, 0F); - Shape38 = new ModelRenderer(this, 0, 26); + Shape38 = new ModelRendererTurbo(this, 0, 26); Shape38.addBox(0F, 0F, 0F, 3, 0, 1); Shape38.setRotationPoint(-19F, 1.5F, 6.6F); Shape38.setTextureSize(512, 512); Shape38.mirror = true; setRotation(Shape38, -0.3490659F, 0F, 0F); - Shape39 = new ModelRenderer(this, 200, 0); + Shape39 = new ModelRendererTurbo(this, 200, 0); Shape39.addBox(0F, 0F, 0F, 2, 2, 14); Shape39.setRotationPoint(-2F, 20F, -7F); Shape39.setTextureSize(512, 512); Shape39.mirror = true; setRotation(Shape39, 0F, 0F, 0F); - Shape40 = new ModelRenderer(this, 0, 26); + Shape40 = new ModelRendererTurbo(this, 0, 26); Shape40.addBox(0F, 0F, 0F, 3, 0, 1); Shape40.setRotationPoint(-19F, 1F, 6.6F); Shape40.setTextureSize(512, 512); Shape40.mirror = true; setRotation(Shape40, -0.3490659F, 0F, 0F); - Shape41 = new ModelRenderer(this, 0, 26); + Shape41 = new ModelRendererTurbo(this, 0, 26); Shape41.addBox(0F, 0F, 0F, 3, 0, 1); Shape41.setRotationPoint(-19F, -1.5F, 6.6F); Shape41.setTextureSize(512, 512); Shape41.mirror = true; setRotation(Shape41, -0.3490659F, 0F, 0F); - Shape42 = new ModelRenderer(this, 200, 21); + Shape42 = new ModelRendererTurbo(this, 200, 21); Shape42.addBox(0F, 0F, 0F, 9, 2, 2); Shape42.setRotationPoint(-11F, 20F, -1F); Shape42.setTextureSize(512, 512); Shape42.mirror = true; setRotation(Shape42, 0F, 0F, 0F); - Shape43 = new ModelRenderer(this, 200, 30); + Shape43 = new ModelRendererTurbo(this, 200, 30); Shape43.addBox(0F, 0F, 0F, 6, 6, 0); Shape43.setRotationPoint(-15F, 18F, -7F); Shape43.setTextureSize(512, 512); Shape43.mirror = true; setRotation(Shape43, 0F, 0F, 0F); - Shape44 = new ModelRenderer(this, 0, 33); + Shape44 = new ModelRendererTurbo(this, 0, 33); Shape44.addBox(0F, 0F, 0F, 3, 0, 1); Shape44.setRotationPoint(-15F, -2F, -6.6F); Shape44.setTextureSize(512, 512); Shape44.mirror = true; setRotation(Shape44, -2.792527F, 0F, 0F); - Shape45 = new ModelRenderer(this, 0, 33); + Shape45 = new ModelRendererTurbo(this, 0, 33); Shape45.addBox(0F, 0F, 0F, 3, 0, 1); Shape45.setRotationPoint(-15F, 0F, -6.6F); Shape45.setTextureSize(512, 512); Shape45.mirror = true; setRotation(Shape45, -2.792527F, 0F, 0F); - Shape46 = new ModelRenderer(this, 200, 30); + Shape46 = new ModelRendererTurbo(this, 200, 30); Shape46.addBox(0F, 0F, 0F, 6, 6, 0); Shape46.setRotationPoint(-4F, 18F, 7F); Shape46.setTextureSize(512, 512); Shape46.mirror = true; setRotation(Shape46, 0F, 0F, 0F); - Shape47 = new ModelRenderer(this, 200, 40); + Shape47 = new ModelRendererTurbo(this, 200, 40); Shape47.addBox(0F, 0F, 0F, 2, 3, 2); Shape47.setRotationPoint(-2F, 17F, -1F); Shape47.setTextureSize(512, 512); Shape47.mirror = true; setRotation(Shape47, 0F, 0F, 0F); - Shape48 = new ModelRenderer(this, 0, 33); + Shape48 = new ModelRendererTurbo(this, 0, 33); Shape48.addBox(0F, 0F, 0F, 3, 0, 1); Shape48.setRotationPoint(-19F, 0F, -6.6F); Shape48.setTextureSize(512, 512); Shape48.mirror = true; setRotation(Shape48, -2.792527F, 0F, 0F); - Shape49 = new ModelRenderer(this, 200, 30); + Shape49 = new ModelRendererTurbo(this, 200, 30); Shape49.addBox(0F, 0F, 0F, 6, 6, 0); Shape49.setRotationPoint(28F, 18F, 7F); Shape49.setTextureSize(512, 512); Shape49.mirror = true; setRotation(Shape49, 0F, 0F, 0F); - Shape50 = new ModelRenderer(this, 0, 33); + Shape50 = new ModelRendererTurbo(this, 0, 33); Shape50.addBox(0F, 0F, 0F, 3, 0, 1); Shape50.setRotationPoint(4F, -2F, -6.6F); Shape50.setTextureSize(512, 512); Shape50.mirror = true; setRotation(Shape50, -2.792527F, 0F, 0F); - Shape51 = new ModelRenderer(this, 200, 52); + Shape51 = new ModelRendererTurbo(this, 200, 52); Shape51.addBox(0F, 0F, 0F, 6, 3, 1); Shape51.setRotationPoint(-4F, 19F, -9F); Shape51.setTextureSize(512, 512); Shape51.mirror = true; setRotation(Shape51, 0F, 0F, 0F); - Shape52 = new ModelRenderer(this, 0, 33); + Shape52 = new ModelRendererTurbo(this, 0, 33); Shape52.addBox(0F, 0F, 0F, 3, 0, 1); Shape52.setRotationPoint(4F, 0.5F, -6.6F); Shape52.setTextureSize(512, 512); Shape52.mirror = true; setRotation(Shape52, -2.792527F, 0F, 0F); - Shape53 = new ModelRenderer(this, 0, 26); + Shape53 = new ModelRendererTurbo(this, 0, 26); Shape53.addBox(0F, 0F, 0F, 3, 0, 1); Shape53.setRotationPoint(-15F, 0.5F, 6.6F); Shape53.setTextureSize(512, 512); Shape53.mirror = true; setRotation(Shape53, -0.3490659F, 0F, 0F); - Shape54 = new ModelRenderer(this, 200, 52); + Shape54 = new ModelRendererTurbo(this, 200, 52); Shape54.addBox(0F, 0F, 0F, 6, 3, 1); Shape54.setRotationPoint(28F, 19F, 8F); Shape54.setTextureSize(512, 512); Shape54.mirror = true; setRotation(Shape54, 0F, 0F, 0F); - Shape55 = new ModelRenderer(this, 200, 52); + Shape55 = new ModelRendererTurbo(this, 200, 52); Shape55.addBox(0F, 0F, 0F, 6, 3, 1); Shape55.setRotationPoint(17F, 19F, 8F); Shape55.setTextureSize(512, 512); Shape55.mirror = true; setRotation(Shape55, 0F, 0F, 0F); - Shape56 = new ModelRenderer(this, 0, 26); + Shape56 = new ModelRendererTurbo(this, 0, 26); Shape56.addBox(0F, 0F, 0F, 3, 0, 1); Shape56.setRotationPoint(-19F, -2F, 6.6F); Shape56.setTextureSize(512, 512); Shape56.mirror = true; setRotation(Shape56, -0.3490659F, 0F, 0F); - Shape57 = new ModelRenderer(this, 140, 0); + Shape57 = new ModelRendererTurbo(this, 140, 0); Shape57.addBox(0F, 0F, 0F, 1, 3, 22); Shape57.setRotationPoint(33F, 17F, -11F); Shape57.setTextureSize(512, 512); Shape57.mirror = true; setRotation(Shape57, 0F, 0F, 0F); - Shape58 = new ModelRenderer(this, 0, 26); + Shape58 = new ModelRendererTurbo(this, 0, 26); Shape58.addBox(0F, 0F, 0F, 3, 0, 1); Shape58.setRotationPoint(-19F, 0.5F, 6.6F); Shape58.setTextureSize(512, 512); Shape58.mirror = true; setRotation(Shape58, -0.3490659F, 0F, 0F); - Shape59 = new ModelRenderer(this, 74, 22); + Shape59 = new ModelRendererTurbo(this, 74, 22); Shape59.addBox(0F, 0F, 0F, 4, 1, 2); Shape59.setRotationPoint(34F, 15F, 8F); Shape59.setTextureSize(512, 512); Shape59.mirror = true; setRotation(Shape59, 0F, 0F, 0F); - Shape60 = new ModelRenderer(this, 0, 33); + Shape60 = new ModelRendererTurbo(this, 0, 33); Shape60.addBox(0F, 0F, 0F, 3, 0, 1); Shape60.setRotationPoint(-15F, -0.5F, -6.6F); Shape60.setTextureSize(512, 512); Shape60.mirror = true; setRotation(Shape60, -2.792527F, 0F, 0F); - Shape61 = new ModelRenderer(this, 0, 33); + Shape61 = new ModelRendererTurbo(this, 0, 33); Shape61.addBox(0F, 0F, 0F, 3, 0, 1); Shape61.setRotationPoint(-19F, -0.5F, -6.6F); Shape61.setTextureSize(512, 512); Shape61.mirror = true; setRotation(Shape61, -2.792527F, 0F, 0F); - Shape62 = new ModelRenderer(this, 200, 61); + Shape62 = new ModelRendererTurbo(this, 200, 61); Shape62.addBox(0F, 0F, 0F, 15, 1, 1); Shape62.setRotationPoint(18F, 19F, 9F); Shape62.setTextureSize(512, 512); Shape62.mirror = true; setRotation(Shape62, 0F, 0F, 0F); - Shape63 = new ModelRenderer(this, 200, 40); + Shape63 = new ModelRendererTurbo(this, 200, 40); Shape63.addBox(0F, 0F, 0F, 2, 3, 2); Shape63.setRotationPoint(-13F, 17F, -1F); Shape63.setTextureSize(512, 512); Shape63.mirror = true; setRotation(Shape63, 0F, 0F, 0F); - Shape64 = new ModelRenderer(this, 0, 33); + Shape64 = new ModelRendererTurbo(this, 0, 33); Shape64.addBox(0F, 0F, 0F, 3, 0, 1); Shape64.setRotationPoint(8F, 0F, -6.6F); Shape64.setTextureSize(512, 512); Shape64.mirror = true; setRotation(Shape64, -2.792527F, 0F, 0F); - Shape65 = new ModelRenderer(this, 200, 21); + Shape65 = new ModelRendererTurbo(this, 200, 21); Shape65.addBox(0F, 0F, 0F, 9, 2, 2); Shape65.setRotationPoint(21F, 20F, -1F); Shape65.setTextureSize(512, 512); Shape65.mirror = true; setRotation(Shape65, 0F, 0F, 0F); - Shape66 = new ModelRenderer(this, 0, 26); + Shape66 = new ModelRendererTurbo(this, 0, 26); Shape66.addBox(0F, 0F, 0F, 3, 0, 1); Shape66.setRotationPoint(35F, -0.5F, 6.6F); Shape66.setTextureSize(512, 512); Shape66.mirror = true; setRotation(Shape66, -0.3490659F, 0F, 0F); - Shape67 = new ModelRenderer(this, 200, 30); + Shape67 = new ModelRendererTurbo(this, 200, 30); Shape67.addBox(0F, 0F, 0F, 6, 6, 0); Shape67.setRotationPoint(17F, 18F, -7F); Shape67.setTextureSize(512, 512); Shape67.mirror = true; setRotation(Shape67, 0F, 0F, 0F); - Shape68 = new ModelRenderer(this, 0, 26); + Shape68 = new ModelRendererTurbo(this, 0, 26); Shape68.addBox(0F, 0F, 0F, 3, 0, 1); Shape68.setRotationPoint(35F, 1.5F, 6.6F); Shape68.setTextureSize(512, 512); Shape68.mirror = true; setRotation(Shape68, -0.3490659F, 0F, 0F); - Shape69 = new ModelRenderer(this, 0, 26); + Shape69 = new ModelRendererTurbo(this, 0, 26); Shape69.addBox(0F, 0F, 0F, 3, 0, 1); Shape69.setRotationPoint(-15F, -1F, 6.6F); Shape69.setTextureSize(512, 512); Shape69.mirror = true; setRotation(Shape69, -0.3490659F, 0F, 0F); - Shape70 = new ModelRenderer(this, 200, 30); + Shape70 = new ModelRendererTurbo(this, 200, 30); Shape70.addBox(0F, 0F, 0F, 6, 6, 0); Shape70.setRotationPoint(17F, 18F, 7F); Shape70.setTextureSize(512, 512); Shape70.mirror = true; setRotation(Shape70, 0F, 0F, 0F); - Shape71 = new ModelRenderer(this, 200, 52); + Shape71 = new ModelRendererTurbo(this, 200, 52); Shape71.addBox(0F, 0F, 0F, 6, 3, 1); Shape71.setRotationPoint(28F, 19F, -9F); Shape71.setTextureSize(512, 512); Shape71.mirror = true; setRotation(Shape71, 0F, 0F, 0F); - Shape72 = new ModelRenderer(this, 0, 26); + Shape72 = new ModelRendererTurbo(this, 0, 26); Shape72.addBox(0F, 0F, 0F, 3, 0, 1); Shape72.setRotationPoint(-15F, 1F, 6.6F); Shape72.setTextureSize(512, 512); Shape72.mirror = true; setRotation(Shape72, -0.3490659F, 0F, 0F); - Shape73 = new ModelRenderer(this, 200, 52); + Shape73 = new ModelRendererTurbo(this, 200, 52); Shape73.addBox(0F, 0F, 0F, 6, 3, 1); Shape73.setRotationPoint(17F, 19F, -9F); Shape73.setTextureSize(512, 512); Shape73.mirror = true; setRotation(Shape73, 0F, 0F, 0F); - Shape74 = new ModelRenderer(this, 0, 26); + Shape74 = new ModelRendererTurbo(this, 0, 26); Shape74.addBox(0F, 0F, 0F, 3, 0, 1); Shape74.setRotationPoint(-15F, -0.5F, 6.6F); Shape74.setTextureSize(512, 512); Shape74.mirror = true; setRotation(Shape74, -0.3490659F, 0F, 0F); - Shape75 = new ModelRenderer(this, 0, 26); + Shape75 = new ModelRendererTurbo(this, 0, 26); Shape75.addBox(0F, 0F, 0F, 3, 0, 1); Shape75.setRotationPoint(-19F, -1F, 6.6F); Shape75.setTextureSize(512, 512); Shape75.mirror = true; setRotation(Shape75, -0.3490659F, 0F, 0F); - Shape76 = new ModelRenderer(this, 200, 52); + Shape76 = new ModelRendererTurbo(this, 200, 52); Shape76.addBox(0F, 0F, 0F, 6, 3, 1); Shape76.setRotationPoint(-15F, 19F, 8F); Shape76.setTextureSize(512, 512); Shape76.mirror = true; setRotation(Shape76, 0F, 0F, 0F); - Shape77 = new ModelRenderer(this, 200, 61); + Shape77 = new ModelRendererTurbo(this, 200, 61); Shape77.addBox(0F, 0F, 0F, 15, 1, 1); Shape77.setRotationPoint(-14F, 19F, -10F); Shape77.setTextureSize(512, 512); Shape77.mirror = true; setRotation(Shape77, 0F, 0F, 0F); - Shape78 = new ModelRenderer(this, 0, 33); + Shape78 = new ModelRendererTurbo(this, 0, 33); Shape78.addBox(0F, 0F, 0F, 3, 0, 1); Shape78.setRotationPoint(4F, -1F, -6.6F); Shape78.setTextureSize(512, 512); Shape78.mirror = true; setRotation(Shape78, -2.792527F, 0F, 0F); - Shape79 = new ModelRenderer(this, 200, 68); + Shape79 = new ModelRendererTurbo(this, 200, 68); Shape79.addBox(0F, 0F, 0F, 13, 2, 0); Shape79.setRotationPoint(19F, 20F, -10F); Shape79.setTextureSize(512, 512); Shape79.mirror = true; setRotation(Shape79, 0F, 0F, 0F); - Shape80 = new ModelRenderer(this, 0, 33); + Shape80 = new ModelRendererTurbo(this, 0, 33); Shape80.addBox(0F, 0F, 0F, 3, 0, 1); Shape80.setRotationPoint(4F, 1F, -6.6F); Shape80.setTextureSize(512, 512); Shape80.mirror = true; setRotation(Shape80, -2.792527F, 0F, 0F); - Shape81 = new ModelRenderer(this, 140, 0); + Shape81 = new ModelRendererTurbo(this, 140, 0); Shape81.addBox(0F, 0F, 0F, 1, 2, 22); Shape81.setRotationPoint(-21F, 19F, -11F); Shape81.setTextureSize(512, 512); Shape81.mirror = true; setRotation(Shape81, 0F, 0F, 0F); - Shape82 = new ModelRenderer(this, 0, 26); + Shape82 = new ModelRendererTurbo(this, 0, 26); Shape82.addBox(0F, 0F, 0F, 3, 0, 1); Shape82.setRotationPoint(4F, -0.5F, 6.6F); Shape82.setTextureSize(512, 512); Shape82.mirror = true; setRotation(Shape82, -0.3490659F, 0F, 0F); - Shape83 = new ModelRenderer(this, 59, 0); + Shape83 = new ModelRendererTurbo(this, 59, 0); Shape83.addBox(0F, 0F, 0F, 0, 6, 8); Shape83.setRotationPoint(15F, 17F, 0.3F); Shape83.setTextureSize(512, 512); Shape83.mirror = true; setRotation(Shape83, 0F, 0F, 0F); - Shape84 = new ModelRenderer(this, 0, 26); + Shape84 = new ModelRendererTurbo(this, 0, 26); Shape84.addBox(0F, 0F, 0F, 3, 0, 1); Shape84.setRotationPoint(4F, 1.5F, 6.6F); Shape84.setTextureSize(512, 512); Shape84.mirror = true; setRotation(Shape84, -0.3490659F, 0F, 0F); - Shape85 = new ModelRenderer(this, 0, 26); + Shape85 = new ModelRendererTurbo(this, 0, 26); Shape85.addBox(0F, 0F, 0F, 3, 0, 1); Shape85.setRotationPoint(35F, -1F, 6.6F); Shape85.setTextureSize(512, 512); Shape85.mirror = true; setRotation(Shape85, -0.3490659F, 0F, 0F); - Shape86 = new ModelRenderer(this, 0, 265); + Shape86 = new ModelRendererTurbo(this, 0, 265); Shape86.addBox(0F, 0F, 0F, 11, 19, 0); Shape86.setRotationPoint(-11F, -5F, -11F); Shape86.setTextureSize(512, 512); Shape86.mirror = true; setRotation(Shape86, 0F, 0F, 0F); - Shape87 = new ModelRenderer(this, 0, 26); + Shape87 = new ModelRendererTurbo(this, 0, 26); Shape87.addBox(0F, 0F, 0F, 3, 0, 1); Shape87.setRotationPoint(35F, 0F, 6.6F); Shape87.setTextureSize(512, 512); Shape87.mirror = true; setRotation(Shape87, -0.3490659F, 0F, 0F); - Shape88 = new ModelRenderer(this, 200, 61); + Shape88 = new ModelRendererTurbo(this, 200, 61); Shape88.addBox(0F, 0F, 0F, 15, 1, 1); Shape88.setRotationPoint(-14F, 19F, 9F); Shape88.setTextureSize(512, 512); Shape88.mirror = true; setRotation(Shape88, 0F, 0F, 0F); - Shape89 = new ModelRenderer(this, 0, 26); + Shape89 = new ModelRendererTurbo(this, 0, 26); Shape89.addBox(0F, 0F, 0F, 3, 0, 1); Shape89.setRotationPoint(35F, 0.5F, 6.6F); Shape89.setTextureSize(512, 512); Shape89.mirror = true; setRotation(Shape89, -0.3490659F, 0F, 0F); - Shape90 = new ModelRenderer(this, 200, 61); + Shape90 = new ModelRendererTurbo(this, 200, 61); Shape90.addBox(0F, 0F, 0F, 15, 1, 1); Shape90.setRotationPoint(18F, 19F, -10F); Shape90.setTextureSize(512, 512); Shape90.mirror = true; setRotation(Shape90, 0F, 0F, 0F); - Shape91 = new ModelRenderer(this, 200, 68); + Shape91 = new ModelRendererTurbo(this, 200, 68); Shape91.addBox(0F, 0F, 0F, 13, 2, 0); Shape91.setRotationPoint(19F, 20F, 10F); Shape91.setTextureSize(512, 512); Shape91.mirror = true; setRotation(Shape91, 0F, 0F, 0F); - Shape92 = new ModelRenderer(this, 0, 26); + Shape92 = new ModelRendererTurbo(this, 0, 26); Shape92.addBox(0F, 0F, 0F, 3, 0, 1); Shape92.setRotationPoint(-15F, 0F, 6.6F); Shape92.setTextureSize(512, 512); Shape92.mirror = true; setRotation(Shape92, -0.3490659F, 0F, 0F); - Shape93 = new ModelRenderer(this, 0, 26); + Shape93 = new ModelRendererTurbo(this, 0, 26); Shape93.addBox(0F, 0F, 0F, 3, 0, 1); Shape93.setRotationPoint(-15F, -1.5F, 6.6F); Shape93.setTextureSize(512, 512); Shape93.mirror = true; setRotation(Shape93, -0.3490659F, 0F, 0F); - Shape94 = new ModelRenderer(this, 200, 68); + Shape94 = new ModelRendererTurbo(this, 200, 68); Shape94.addBox(0F, 0F, 0F, 13, 2, 0); Shape94.setRotationPoint(-13F, 20F, -10F); Shape94.setTextureSize(512, 512); Shape94.mirror = true; setRotation(Shape94, 0F, 0F, 0F); - Shape95 = new ModelRenderer(this, 200, 68); + Shape95 = new ModelRendererTurbo(this, 200, 68); Shape95.addBox(0F, 0F, 0F, 13, 2, 0); Shape95.setRotationPoint(-13F, 20F, 10F); Shape95.setTextureSize(512, 512); Shape95.mirror = true; setRotation(Shape95, 0F, 0F, 0F); - Shape97 = new ModelRenderer(this, 0, 33); + Shape97 = new ModelRendererTurbo(this, 0, 33); Shape97.addBox(0F, 0F, 0F, 3, 0, 1); Shape97.setRotationPoint(-15F, -1F, -6.6F); Shape97.setTextureSize(512, 512); Shape97.mirror = true; setRotation(Shape97, -2.792527F, 0F, 0F); - Shape98 = new ModelRenderer(this, 140, 0); + Shape98 = new ModelRendererTurbo(this, 140, 0); Shape98.addBox(0F, 0F, 0F, 1, 2, 22); Shape98.setRotationPoint(38F, 19F, -11F); Shape98.setTextureSize(512, 512); Shape98.mirror = true; setRotation(Shape98, 0F, 0F, 0F); - Shape99 = new ModelRenderer(this, 0, 33); + Shape99 = new ModelRendererTurbo(this, 0, 33); Shape99.addBox(0F, 0F, 0F, 3, 0, 1); Shape99.setRotationPoint(-19F, -1.5F, -6.6F); Shape99.setTextureSize(512, 512); Shape99.mirror = true; setRotation(Shape99, -2.792527F, 0F, 0F); - Shape100 = new ModelRenderer(this, 140, 30); + Shape100 = new ModelRendererTurbo(this, 140, 30); Shape100.addBox(0F, 0F, 0F, 0, 3, 22); Shape100.setRotationPoint(38.9F, 20.9F, -11F); Shape100.setTextureSize(512, 512); Shape100.mirror = true; setRotation(Shape100, 0F, 0F, -0.5585054F); - Shape101 = new ModelRenderer(this, 0, 26); + Shape101 = new ModelRendererTurbo(this, 0, 26); Shape101.addBox(0F, 0F, 0F, 3, 0, 1); Shape101.setRotationPoint(8F, -1.5F, 6.6F); Shape101.setTextureSize(512, 512); Shape101.mirror = true; setRotation(Shape101, -0.3490659F, 0F, 0F); - Shape102 = new ModelRenderer(this, 140, 30); + Shape102 = new ModelRendererTurbo(this, 140, 30); Shape102.addBox(0F, 0F, 0F, 0, 3, 22); Shape102.setRotationPoint(-20.9F, 20.9F, -11F); Shape102.setTextureSize(512, 512); Shape102.mirror = true; setRotation(Shape102, 0F, 0F, 0.5585054F); - Shape103 = new ModelRenderer(this, 0, 26); + Shape103 = new ModelRendererTurbo(this, 0, 26); Shape103.addBox(0F, 0F, 0F, 3, 0, 1); Shape103.setRotationPoint(8F, 1.5F, 6.6F); Shape103.setTextureSize(512, 512); Shape103.mirror = true; setRotation(Shape103, -0.3490659F, 0F, 0F); - Shape104 = new ModelRenderer(this, 0, 26); + Shape104 = new ModelRendererTurbo(this, 0, 26); Shape104.addBox(0F, 0F, 0F, 3, 0, 1); Shape104.setRotationPoint(4F, 0F, 6.6F); Shape104.setTextureSize(512, 512); Shape104.mirror = true; setRotation(Shape104, -0.3490659F, 0F, 0F); - Shape105 = new ModelRenderer(this, 140, 0); + Shape105 = new ModelRendererTurbo(this, 140, 0); Shape105.addBox(0F, 0F, 0F, 1, 3, 22); Shape105.setRotationPoint(-16F, 17F, -11F); Shape105.setTextureSize(512, 512); Shape105.mirror = true; setRotation(Shape105, 0F, 0F, 0F); - Shape106 = new ModelRenderer(this, 74, 22); + Shape106 = new ModelRendererTurbo(this, 74, 22); Shape106.addBox(0F, 0F, 0F, 4, 1, 2); Shape106.setRotationPoint(-20F, 17F, -10F); Shape106.setTextureSize(512, 512); Shape106.mirror = true; setRotation(Shape106, 0F, 0F, 0F); - Shape107 = new ModelRenderer(this, 0, 26); + Shape107 = new ModelRendererTurbo(this, 0, 26); Shape107.addBox(0F, 0F, 0F, 3, 0, 1); Shape107.setRotationPoint(4F, -1.5F, 6.6F); Shape107.setTextureSize(512, 512); Shape107.mirror = true; setRotation(Shape107, -0.3490659F, 0F, 0F); - Shape108 = new ModelRenderer(this, 100, 0); + Shape108 = new ModelRendererTurbo(this, 100, 0); Shape108.addBox(0F, 0F, 0F, 11, 2, 0); Shape108.setRotationPoint(4F, 17F, -8.3F); Shape108.setTextureSize(512, 512); Shape108.mirror = true; setRotation(Shape108, -1.047198F, 0F, 0F); - Shape109 = new ModelRenderer(this, 0, 26); + Shape109 = new ModelRendererTurbo(this, 0, 26); Shape109.addBox(0F, 0F, 0F, 3, 0, 1); Shape109.setRotationPoint(35F, -2F, 6.6F); Shape109.setTextureSize(512, 512); Shape109.mirror = true; setRotation(Shape109, -0.3490659F, 0F, 0F); - Shape110 = new ModelRenderer(this, 100, 16); + Shape110 = new ModelRendererTurbo(this, 100, 16); Shape110.addBox(0F, 0F, 0F, 11, 2, 0); Shape110.setRotationPoint(4F, 22F, -10F); Shape110.setTextureSize(512, 512); Shape110.mirror = true; setRotation(Shape110, 1.047198F, 0F, 0F); - Shape111 = new ModelRenderer(this, 0, 26); + Shape111 = new ModelRendererTurbo(this, 0, 26); Shape111.addBox(0F, 0F, 0F, 3, 0, 1); Shape111.setRotationPoint(35F, -1.5F, 6.6F); Shape111.setTextureSize(512, 512); Shape111.mirror = true; setRotation(Shape111, -0.3490659F, 0F, 0F); - Shape112 = new ModelRenderer(this, 94, 25); + Shape112 = new ModelRendererTurbo(this, 94, 25); Shape112.addBox(0F, 0F, 0F, 11, 0, 9); Shape112.setRotationPoint(4F, 23F, -8.3F); Shape112.setTextureSize(512, 512); Shape112.mirror = true; setRotation(Shape112, 0F, 0F, 0F); - Shape113 = new ModelRenderer(this, 0, 26); + Shape113 = new ModelRendererTurbo(this, 0, 26); Shape113.addBox(0F, 0F, 0F, 3, 0, 1); Shape113.setRotationPoint(-15F, 1.5F, 6.6F); Shape113.setTextureSize(512, 512); Shape113.mirror = true; setRotation(Shape113, -0.3490659F, 0F, 0F); - Shape114 = new ModelRenderer(this, 100, 7); + Shape114 = new ModelRendererTurbo(this, 100, 7); Shape114.addBox(0F, 0F, 0F, 11, 4, 0); Shape114.setRotationPoint(4F, 18F, 10F); Shape114.setTextureSize(512, 512); Shape114.mirror = true; setRotation(Shape114, 0F, 0F, 0F); - Shape115 = new ModelRenderer(this, 0, 26); + Shape115 = new ModelRendererTurbo(this, 0, 26); Shape115.addBox(0F, 0F, 0F, 3, 0, 1); Shape115.setRotationPoint(-19F, 0F, 6.6F); Shape115.setTextureSize(512, 512); Shape115.mirror = true; setRotation(Shape115, -0.3490659F, 0F, 0F); - Shape116 = new ModelRenderer(this, 0, 26); + Shape116 = new ModelRendererTurbo(this, 0, 26); Shape116.addBox(0F, 0F, 0F, 3, 0, 1); Shape116.setRotationPoint(8F, 0F, 6.6F); Shape116.setTextureSize(512, 512); Shape116.mirror = true; setRotation(Shape116, -0.3490659F, 0F, 0F); - Shape117 = new ModelRenderer(this, 100, 0); + Shape117 = new ModelRendererTurbo(this, 100, 0); Shape117.addBox(0F, 0F, 0F, 11, 2, 0); Shape117.setRotationPoint(4F, 17F, 8.3F); Shape117.setTextureSize(512, 512); Shape117.mirror = true; setRotation(Shape117, 1.047198F, 0F, 0F); - Shape118 = new ModelRenderer(this, 74, 22); + Shape118 = new ModelRendererTurbo(this, 74, 22); Shape118.addBox(0F, 0F, 0F, 4, 1, 2); Shape118.setRotationPoint(-20F, 15F, 8F); Shape118.setTextureSize(512, 512); Shape118.mirror = true; setRotation(Shape118, 0F, 0F, 0F); - Shape119 = new ModelRenderer(this, 0, 26); + Shape119 = new ModelRendererTurbo(this, 0, 26); Shape119.addBox(0F, 0F, 0F, 3, 0, 1); Shape119.setRotationPoint(8F, 1F, 6.6F); Shape119.setTextureSize(512, 512); Shape119.mirror = true; setRotation(Shape119, -0.3490659F, 0F, 0F); - Shape120 = new ModelRenderer(this, 0, 26); + Shape120 = new ModelRendererTurbo(this, 0, 26); Shape120.addBox(0F, 0F, 0F, 3, 0, 1); Shape120.setRotationPoint(8F, 0.5F, 6.6F); Shape120.setTextureSize(512, 512); Shape120.mirror = true; setRotation(Shape120, -0.3490659F, 0F, 0F); - Shape121 = new ModelRenderer(this, 27, 268); + Shape121 = new ModelRendererTurbo(this, 27, 268); Shape121.addBox(0F, 0F, 0F, 0, 19, 4); Shape121.setRotationPoint(0F, -5F, -11F); Shape121.setTextureSize(512, 512); Shape121.mirror = true; setRotation(Shape121, 0F, 0F, 0F); - Shape122 = new ModelRenderer(this, 94, 25); + Shape122 = new ModelRendererTurbo(this, 94, 25); Shape122.addBox(0F, 0F, 0F, 11, 0, 8); Shape122.setRotationPoint(4F, 23F, 0.3F); Shape122.setTextureSize(512, 512); Shape122.mirror = true; setRotation(Shape122, 0F, 0F, 0F); - Shape123 = new ModelRenderer(this, 0, 26); + Shape123 = new ModelRendererTurbo(this, 0, 26); Shape123.addBox(0F, 0F, 0F, 3, 0, 1); Shape123.setRotationPoint(4F, -2F, 6.6F); Shape123.setTextureSize(512, 512); Shape123.mirror = true; setRotation(Shape123, -0.3490659F, 0F, 0F); - Shape124 = new ModelRenderer(this, 0, 26); + Shape124 = new ModelRendererTurbo(this, 0, 26); Shape124.addBox(0F, 0F, 0F, 3, 0, 1); Shape124.setRotationPoint(12F, 1F, 6.6F); Shape124.setTextureSize(512, 512); Shape124.mirror = true; setRotation(Shape124, -0.3490659F, 0F, 0F); - Shape125 = new ModelRenderer(this, 91, 0); + Shape125 = new ModelRendererTurbo(this, 91, 0); Shape125.addBox(0F, 0F, 0F, 0, 2, 2); Shape125.setRotationPoint(4F, 22F, 10F); Shape125.setTextureSize(512, 512); Shape125.mirror = true; setRotation(Shape125, -2.617994F, 0F, 0F); - Shape126 = new ModelRenderer(this, 91, 0); + Shape126 = new ModelRendererTurbo(this, 91, 0); Shape126.addBox(0F, 0F, 0F, 0, 2, 2); Shape126.setRotationPoint(15F, 22F, 10F); Shape126.setTextureSize(512, 512); Shape126.mirror = true; setRotation(Shape126, -2.617994F, 0F, 0F); - Shape127 = new ModelRenderer(this, 0, 26); + Shape127 = new ModelRendererTurbo(this, 0, 26); Shape127.addBox(0F, 0F, 0F, 3, 0, 1); Shape127.setRotationPoint(12F, -1.5F, 6.6F); Shape127.setTextureSize(512, 512); Shape127.mirror = true; setRotation(Shape127, -0.3490659F, 0F, 0F); - Shape128 = new ModelRenderer(this, 0, 26); + Shape128 = new ModelRendererTurbo(this, 0, 26); Shape128.addBox(0F, 0F, 0F, 3, 0, 1); Shape128.setRotationPoint(12F, 0.5F, 6.6F); Shape128.setTextureSize(512, 512); Shape128.mirror = true; setRotation(Shape128, -0.3490659F, 0F, 0F); - Shape129 = new ModelRenderer(this, 91, 0); + Shape129 = new ModelRendererTurbo(this, 91, 0); Shape129.addBox(0F, 0F, 0F, 0, 2, 2); Shape129.setRotationPoint(4F, 18F, -10F); Shape129.setTextureSize(512, 512); Shape129.mirror = true; setRotation(Shape129, 0.5235988F, 0F, 0F); - Shape130 = new ModelRenderer(this, 83, 0); + Shape130 = new ModelRendererTurbo(this, 83, 0); Shape130.addBox(0F, 0F, 0F, 0, 4, 2); Shape130.setRotationPoint(4F, 18F, 8F); Shape130.setTextureSize(512, 512); Shape130.mirror = true; setRotation(Shape130, 0F, 0F, 0F); - Shape131 = new ModelRenderer(this, 0, 26); + Shape131 = new ModelRendererTurbo(this, 0, 26); Shape131.addBox(0F, 0F, 0F, 3, 0, 1); Shape131.setRotationPoint(8F, -1F, 6.6F); Shape131.setTextureSize(512, 512); Shape131.mirror = true; setRotation(Shape131, -0.3490659F, 0F, 0F); - Shape132 = new ModelRenderer(this, 83, 0); + Shape132 = new ModelRendererTurbo(this, 83, 0); Shape132.addBox(0F, 0F, 0F, 0, 4, 2); Shape132.setRotationPoint(15F, 18F, 8F); Shape132.setTextureSize(512, 512); Shape132.mirror = true; setRotation(Shape132, 0F, 0F, 0F); - Shape133 = new ModelRenderer(this, 0, 26); + Shape133 = new ModelRendererTurbo(this, 0, 26); Shape133.addBox(0F, 0F, 0F, 3, 0, 1); Shape133.setRotationPoint(4F, 1F, 6.6F); Shape133.setTextureSize(512, 512); Shape133.mirror = true; setRotation(Shape133, -0.3490659F, 0F, 0F); - Shape134 = new ModelRenderer(this, 59, 0); + Shape134 = new ModelRendererTurbo(this, 59, 0); Shape134.addBox(0F, 0F, 0F, 0, 6, 9); Shape134.setRotationPoint(4F, 17F, -8.3F); Shape134.setTextureSize(512, 512); Shape134.mirror = true; setRotation(Shape134, 0F, 0F, 0F); - Shape135 = new ModelRenderer(this, 0, 26); + Shape135 = new ModelRendererTurbo(this, 0, 26); Shape135.addBox(0F, 0F, 0F, 3, 0, 1); Shape135.setRotationPoint(35F, 1F, 6.6F); Shape135.setTextureSize(512, 512); Shape135.mirror = true; setRotation(Shape135, -0.3490659F, 0F, 0F); - Shape136 = new ModelRenderer(this, 0, 33); + Shape136 = new ModelRendererTurbo(this, 0, 33); Shape136.addBox(0F, 0F, 0F, 3, 0, 1); Shape136.setRotationPoint(-19F, -1F, -6.6F); Shape136.setTextureSize(512, 512); Shape136.mirror = true; setRotation(Shape136, -2.792527F, 0F, 0F); - Shape137 = new ModelRenderer(this, 59, 0); + Shape137 = new ModelRendererTurbo(this, 59, 0); Shape137.addBox(0F, 0F, 0F, 0, 6, 8); Shape137.setRotationPoint(4F, 17F, 0.3F); Shape137.setTextureSize(512, 512); Shape137.mirror = true; setRotation(Shape137, 0F, 0F, 0F); - Shape138 = new ModelRenderer(this, 74, 22); + Shape138 = new ModelRendererTurbo(this, 74, 22); Shape138.addBox(0F, 0F, 0F, 4, 1, 2); Shape138.setRotationPoint(-20F, 15F, -10F); Shape138.setTextureSize(512, 512); Shape138.mirror = true; setRotation(Shape138, 0F, 0F, 0F); - Shape139 = new ModelRenderer(this, 0, 26); + Shape139 = new ModelRendererTurbo(this, 0, 26); Shape139.addBox(0F, 0F, 0F, 3, 0, 1); Shape139.setRotationPoint(16F, 0F, 6.6F); Shape139.setTextureSize(512, 512); Shape139.mirror = true; setRotation(Shape139, -0.3490659F, 0F, 0F); - Shape140 = new ModelRenderer(this, 0, 26); + Shape140 = new ModelRendererTurbo(this, 0, 26); Shape140.addBox(0F, 0F, 0F, 3, 0, 1); Shape140.setRotationPoint(16F, 0.5F, 6.6F); Shape140.setTextureSize(512, 512); Shape140.mirror = true; setRotation(Shape140, -0.3490659F, 0F, 0F); - Shape141 = new ModelRenderer(this, 74, 22); + Shape141 = new ModelRendererTurbo(this, 74, 22); Shape141.addBox(0F, 0F, 0F, 4, 1, 2); Shape141.setRotationPoint(-20F, 19F, -11F); Shape141.setTextureSize(512, 512); Shape141.mirror = true; setRotation(Shape141, 0F, 0F, 0F); - Shape142 = new ModelRenderer(this, 0, 26); + Shape142 = new ModelRendererTurbo(this, 0, 26); Shape142.addBox(0F, 0F, 0F, 3, 0, 1); Shape142.setRotationPoint(12F, -2F, 6.6F); Shape142.setTextureSize(512, 512); Shape142.mirror = true; setRotation(Shape142, -0.3490659F, 0F, 0F); - Shape143 = new ModelRenderer(this, 100, 16); + Shape143 = new ModelRendererTurbo(this, 100, 16); Shape143.addBox(0F, 0F, 0F, 11, 2, 0); Shape143.setRotationPoint(4F, 22F, 10F); Shape143.setTextureSize(512, 512); Shape143.mirror = true; setRotation(Shape143, -1.047198F, 0F, 0F); - Shape144 = new ModelRenderer(this, 0, 26); + Shape144 = new ModelRendererTurbo(this, 0, 26); Shape144.addBox(0F, 0F, 0F, 3, 0, 1); Shape144.setRotationPoint(8F, -2F, 6.6F); Shape144.setTextureSize(512, 512); Shape144.mirror = true; setRotation(Shape144, -0.3490659F, 0F, 0F); - Shape145 = new ModelRenderer(this, 91, 0); + Shape145 = new ModelRendererTurbo(this, 91, 0); Shape145.addBox(0F, 0F, 0F, 0, 2, 2); Shape145.setRotationPoint(4F, 17F, 8.3F); Shape145.setTextureSize(512, 512); Shape145.mirror = true; setRotation(Shape145, -0.5235988F, 0F, 0F); - Shape146 = new ModelRenderer(this, 91, 0); + Shape146 = new ModelRendererTurbo(this, 91, 0); Shape146.addBox(0F, 0F, 0F, 0, 2, 2); Shape146.setRotationPoint(15F, 17F, 8.3F); Shape146.setTextureSize(512, 512); Shape146.mirror = true; setRotation(Shape146, -0.5235988F, 0F, 0F); - Shape147 = new ModelRenderer(this, 0, 26); + Shape147 = new ModelRendererTurbo(this, 0, 26); Shape147.addBox(0F, 0F, 0F, 3, 0, 1); Shape147.setRotationPoint(12F, 1.5F, 6.6F); Shape147.setTextureSize(512, 512); Shape147.mirror = true; setRotation(Shape147, -0.3490659F, 0F, 0F); - Shape148 = new ModelRenderer(this, 40, 70); + Shape148 = new ModelRendererTurbo(this, 40, 70); Shape148.addBox(0F, 0F, 0F, 0, 2, 2); Shape148.setRotationPoint(15F, 18F, -10F); Shape148.setTextureSize(512, 512); Shape148.mirror = true; setRotation(Shape148, 0.5235988F, 0F, 0F); - Shape149 = new ModelRenderer(this, 0, 26); + Shape149 = new ModelRendererTurbo(this, 0, 26); Shape149.addBox(0F, 0F, 0F, 3, 0, 1); Shape149.setRotationPoint(20F, -0.5F, 6.6F); Shape149.setTextureSize(512, 512); Shape149.mirror = true; setRotation(Shape149, -0.3490659F, 0F, 0F); - Shape150 = new ModelRenderer(this, 91, 0); + Shape150 = new ModelRendererTurbo(this, 91, 0); Shape150.addBox(0F, 0F, 0F, 0, 2, 2); Shape150.setRotationPoint(4F, 23F, -8.3F); Shape150.setTextureSize(512, 512); Shape150.mirror = true; setRotation(Shape150, 2.617994F, 0F, 0F); - Shape151 = new ModelRenderer(this, 0, 26); + Shape151 = new ModelRendererTurbo(this, 0, 26); Shape151.addBox(0F, 0F, 0F, 3, 0, 1); Shape151.setRotationPoint(20F, 1.5F, 6.6F); Shape151.setTextureSize(512, 512); Shape151.mirror = true; setRotation(Shape151, -0.3490659F, 0F, 0F); - Shape152 = new ModelRenderer(this, 91, 0); + Shape152 = new ModelRendererTurbo(this, 91, 0); Shape152.addBox(0F, 0F, 0F, 0, 2, 2); Shape152.setRotationPoint(15F, 23F, -8.3F); Shape152.setTextureSize(512, 512); Shape152.mirror = true; setRotation(Shape152, 2.617994F, 0F, 0F); - Shape153 = new ModelRenderer(this, 0, 26); + Shape153 = new ModelRendererTurbo(this, 0, 26); Shape153.addBox(0F, 0F, 0F, 3, 0, 1); Shape153.setRotationPoint(16F, -1F, 6.6F); Shape153.setTextureSize(512, 512); Shape153.mirror = true; setRotation(Shape153, -0.3490659F, 0F, 0F); - Shape154 = new ModelRenderer(this, 83, 0); + Shape154 = new ModelRendererTurbo(this, 83, 0); Shape154.addBox(0F, 0F, 0F, 0, 4, 2); Shape154.setRotationPoint(15F, 18F, -10F); Shape154.setTextureSize(512, 512); Shape154.mirror = true; setRotation(Shape154, 0F, 0F, 0F); - Shape155 = new ModelRenderer(this, 0, 26); + Shape155 = new ModelRendererTurbo(this, 0, 26); Shape155.addBox(0F, 0F, 0F, 3, 0, 1); Shape155.setRotationPoint(16F, 1.5F, 6.6F); Shape155.setTextureSize(512, 512); Shape155.mirror = true; setRotation(Shape155, -0.3490659F, 0F, 0F); - Shape156 = new ModelRenderer(this, 83, 0); + Shape156 = new ModelRendererTurbo(this, 83, 0); Shape156.addBox(0F, 0F, 0F, 0, 4, 2); Shape156.setRotationPoint(4F, 18F, -10F); Shape156.setTextureSize(512, 512); Shape156.mirror = true; setRotation(Shape156, 0F, 0F, 0F); - Shape157 = new ModelRenderer(this, 0, 26); + Shape157 = new ModelRendererTurbo(this, 0, 26); Shape157.addBox(0F, 0F, 0F, 3, 0, 1); Shape157.setRotationPoint(12F, -0.5F, 6.6F); Shape157.setTextureSize(512, 512); Shape157.mirror = true; setRotation(Shape157, -0.3490659F, 0F, 0F); - Shape158 = new ModelRenderer(this, 59, 0); + Shape158 = new ModelRendererTurbo(this, 59, 0); Shape158.addBox(0F, 0F, 0F, 0, 6, 9); Shape158.setRotationPoint(15F, 17F, -8.3F); Shape158.setTextureSize(512, 512); Shape158.mirror = true; setRotation(Shape158, 0F, 0F, 0F); - Shape159 = new ModelRenderer(this, 0, 26); + Shape159 = new ModelRendererTurbo(this, 0, 26); Shape159.addBox(0F, 0F, 0F, 3, 0, 1); Shape159.setRotationPoint(4F, -1F, 6.6F); Shape159.setTextureSize(512, 512); Shape159.mirror = true; setRotation(Shape159, -0.3490659F, 0F, 0F); - Shape160 = new ModelRenderer(this, 74, 22); + Shape160 = new ModelRendererTurbo(this, 74, 22); Shape160.addBox(0F, 0F, 0F, 4, 1, 2); Shape160.setRotationPoint(34F, 17F, -10F); Shape160.setTextureSize(512, 512); Shape160.mirror = true; setRotation(Shape160, 0F, 0F, 0F); - Shape161 = new ModelRenderer(this, 0, 26); + Shape161 = new ModelRendererTurbo(this, 0, 26); Shape161.addBox(0F, 0F, 0F, 3, 0, 1); Shape161.setRotationPoint(4F, 0.5F, 6.6F); Shape161.setTextureSize(512, 512); Shape161.mirror = true; setRotation(Shape161, -0.3490659F, 0F, 0F); - Shape162 = new ModelRenderer(this, 74, 22); + Shape162 = new ModelRendererTurbo(this, 74, 22); Shape162.addBox(0F, 0F, 0F, 4, 1, 2); Shape162.setRotationPoint(34F, 17F, 8F); Shape162.setTextureSize(512, 512); Shape162.mirror = true; setRotation(Shape162, 0F, 0F, 0F); - Shape163 = new ModelRenderer(this, 0, 26); + Shape163 = new ModelRendererTurbo(this, 0, 26); Shape163.addBox(0F, 0F, 0F, 3, 0, 1); Shape163.setRotationPoint(-15F, -2F, 6.6F); Shape163.setTextureSize(512, 512); Shape163.mirror = true; setRotation(Shape163, -0.3490659F, 0F, 0F); - Shape164 = new ModelRenderer(this, 74, 22); + Shape164 = new ModelRendererTurbo(this, 74, 22); Shape164.addBox(0F, 0F, 0F, 4, 1, 2); Shape164.setRotationPoint(34F, 19F, 9F); Shape164.setTextureSize(512, 512); Shape164.mirror = true; setRotation(Shape164, 0F, 0F, 0F); - Shape165 = new ModelRenderer(this, 0, 26); + Shape165 = new ModelRendererTurbo(this, 0, 26); Shape165.addBox(0F, 0F, 0F, 3, 0, 1); Shape165.setRotationPoint(20F, -2F, 6.6F); Shape165.setTextureSize(512, 512); Shape165.mirror = true; setRotation(Shape165, -0.3490659F, 0F, 0F); - Shape166 = new ModelRenderer(this, 0, 26); + Shape166 = new ModelRendererTurbo(this, 0, 26); Shape166.addBox(0F, 0F, 0F, 3, 0, 1); Shape166.setRotationPoint(20F, -1F, 6.6F); Shape166.setTextureSize(512, 512); Shape166.mirror = true; setRotation(Shape166, -0.3490659F, 0F, 0F); - Shape167 = new ModelRenderer(this, 74, 22); + Shape167 = new ModelRendererTurbo(this, 74, 22); Shape167.addBox(0F, 0F, 0F, 4, 1, 2); Shape167.setRotationPoint(34F, 19F, -11F); Shape167.setTextureSize(512, 512); Shape167.mirror = true; setRotation(Shape167, 0F, 0F, 0F); - Shape168 = new ModelRenderer(this, 0, 26); + Shape168 = new ModelRendererTurbo(this, 0, 26); Shape168.addBox(0F, 0F, 0F, 3, 0, 1); Shape168.setRotationPoint(20F, 1F, 6.6F); Shape168.setTextureSize(512, 512); Shape168.mirror = true; setRotation(Shape168, -0.3490659F, 0F, 0F); - Shape169 = new ModelRenderer(this, 0, 400); + Shape169 = new ModelRendererTurbo(this, 0, 400); Shape169.addBox(0F, 0F, 0F, 0, 5, 14); Shape169.setRotationPoint(-11F, 9F, -7F); Shape169.setTextureSize(512, 512); Shape169.mirror = true; setRotation(Shape169, 0F, 0F, 0F); - Shape170 = new ModelRenderer(this, 0, 26); + Shape170 = new ModelRendererTurbo(this, 0, 26); Shape170.addBox(0F, 0F, 0F, 3, 0, 1); Shape170.setRotationPoint(16F, 1F, 6.6F); Shape170.setTextureSize(512, 512); Shape170.mirror = true; setRotation(Shape170, -0.3490659F, 0F, 0F); - Shape171 = new ModelRenderer(this, 0, 424); + Shape171 = new ModelRendererTurbo(this, 0, 424); Shape171.addBox(0F, 0F, 0F, 0, 5, 14); Shape171.setRotationPoint(-11F, 9F, -7F); Shape171.setTextureSize(512, 512); Shape171.mirror = true; setRotation(Shape171, 0F, 0F, 1.919862F); - Shape172 = new ModelRenderer(this, 11, 320); + Shape172 = new ModelRendererTurbo(this, 11, 320); Shape172.addBox(0F, 0F, 0F, 0, 2, 5); Shape172.setRotationPoint(0F, -5F, -11F); Shape172.setTextureSize(512, 512); Shape172.mirror = true; setRotation(Shape172, 0.418879F, 0F, 0F); - Shape173 = new ModelRenderer(this, 0, 26); + Shape173 = new ModelRendererTurbo(this, 0, 26); Shape173.addBox(0F, 0F, 0F, 3, 0, 1); Shape173.setRotationPoint(20F, 0F, 6.6F); Shape173.setTextureSize(512, 512); Shape173.mirror = true; setRotation(Shape173, -0.3490659F, 0F, 0F); - Shape174 = new ModelRenderer(this, 0, 26); + Shape174 = new ModelRendererTurbo(this, 0, 26); Shape174.addBox(0F, 0F, 0F, 3, 0, 1); Shape174.setRotationPoint(20F, 0.5F, 6.6F); Shape174.setTextureSize(512, 512); Shape174.mirror = true; setRotation(Shape174, -0.3490659F, 0F, 0F); - Shape175 = new ModelRenderer(this, 74, 22); + Shape175 = new ModelRendererTurbo(this, 74, 22); Shape175.addBox(0F, 0F, 0F, 4, 1, 2); Shape175.setRotationPoint(34F, 15F, -10F); Shape175.setTextureSize(512, 512); Shape175.mirror = true; setRotation(Shape175, 0F, 0F, 0F); - light_big_2 = new ModelRenderer(this, 0, 59); + light_big_2 = new ModelRendererTurbo(this, 0, 59); light_big_2.addBox(0F, 0F, 0F, 1, 4, 4); light_big_2.setRotationPoint(38.4F, -8F, -2F); light_big_2.setTextureSize(512, 512); light_big_2.mirror = true; setRotation(light_big_2, 0F, 0F, 0F); - Shape177 = new ModelRenderer(this, 74, 22); + Shape177 = new ModelRendererTurbo(this, 74, 22); Shape177.addBox(0F, 0F, 0F, 4, 1, 2); Shape177.setRotationPoint(-20F, 17F, 8F); Shape177.setTextureSize(512, 512); Shape177.mirror = true; setRotation(Shape177, 0F, 0F, 0F); - light8 = new ModelRenderer(this, 15, 75); + light8 = new ModelRendererTurbo(this, 15, 75); light8.addBox(0F, 0F, 0F, 1, 2, 2); light8.setRotationPoint(-21.4F, 7F, -5F); light8.setTextureSize(512, 512); light8.mirror = true; setRotation(light8, 0F, 0F, 0F); - Shape179 = new ModelRenderer(this, 74, 22); + Shape179 = new ModelRendererTurbo(this, 74, 22); Shape179.addBox(0F, 0F, 0F, 4, 1, 2); Shape179.setRotationPoint(-20F, 19F, 9F); Shape179.setTextureSize(512, 512); Shape179.mirror = true; setRotation(Shape179, 0F, 0F, 0F); - Shape180 = new ModelRenderer(this, 34, 200); + Shape180 = new ModelRendererTurbo(this, 34, 200); Shape180.addBox(0F, 0F, 0F, 0, 21, 14); Shape180.setRotationPoint(-21F, -7F, -7F); Shape180.setTextureSize(512, 512); Shape180.mirror = true; setRotation(Shape180, 0F, 0F, 0F); - Shape181 = new ModelRenderer(this, 0, 26); + Shape181 = new ModelRendererTurbo(this, 0, 26); Shape181.addBox(0F, 0F, 0F, 3, 0, 1); Shape181.setRotationPoint(16F, -2F, 6.6F); Shape181.setTextureSize(512, 512); Shape181.mirror = true; setRotation(Shape181, -0.3490659F, 0F, 0F); - Shape182 = new ModelRenderer(this, 0, 200); + Shape182 = new ModelRendererTurbo(this, 0, 200); Shape182.addBox(0F, 0F, 0F, 0, 21, 14); Shape182.setRotationPoint(39F, -7F, -7F); Shape182.setTextureSize(512, 512); Shape182.mirror = true; setRotation(Shape182, 0F, 0F, 0F); - Shape183 = new ModelRenderer(this, 0, 26); + Shape183 = new ModelRendererTurbo(this, 0, 26); Shape183.addBox(0F, 0F, 0F, 3, 0, 1); Shape183.setRotationPoint(12F, -1F, 6.6F); Shape183.setTextureSize(512, 512); Shape183.mirror = true; setRotation(Shape183, -0.3490659F, 0F, 0F); - light1 = new ModelRenderer(this, 0, 75); + light1 = new ModelRendererTurbo(this, 0, 75); light1.addBox(0F, 0F, 0F, 1, 2, 2); light1.setRotationPoint(38.4F, 10F, -5F); light1.setTextureSize(512, 512); light1.mirror = true; setRotation(light1, 0F, 0F, 0F); - Shape185 = new ModelRenderer(this, 0, 238); + Shape185 = new ModelRendererTurbo(this, 0, 238); Shape185.addBox(0F, 0F, 0F, 10, 21, 0); Shape185.setRotationPoint(-21F, -7F, -7F); Shape185.setTextureSize(512, 512); Shape185.mirror = true; setRotation(Shape185, 0F, 0F, 0F); - Shape186 = new ModelRenderer(this, 0, 117); + Shape186 = new ModelRendererTurbo(this, 0, 117); Shape186.addBox(0F, 0F, 0F, 5, 1, 0); Shape186.setRotationPoint(-16F, 5F, -11F); Shape186.setTextureSize(512, 512); Shape186.mirror = true; setRotation(Shape186, 0F, 0F, 0F); - Shape187 = new ModelRenderer(this, 0, 238); + Shape187 = new ModelRendererTurbo(this, 0, 238); Shape187.addBox(0F, 0F, 0F, 10, 21, 0); Shape187.setRotationPoint(-21F, -7F, 7F); Shape187.setTextureSize(512, 512); Shape187.mirror = true; setRotation(Shape187, 0F, 0F, 0F); - Shape188 = new ModelRenderer(this, 0, 117); + Shape188 = new ModelRendererTurbo(this, 0, 117); Shape188.addBox(0F, 0F, 0F, 5, 1, 0); Shape188.setRotationPoint(-16F, 5F, 11F); Shape188.setTextureSize(512, 512); Shape188.mirror = true; setRotation(Shape188, 0F, 0F, 0F); - Shape189 = new ModelRenderer(this, 27, 238); + Shape189 = new ModelRendererTurbo(this, 27, 238); Shape189.addBox(0F, 0F, 0F, 0, 19, 4); Shape189.setRotationPoint(-11F, -5F, -11F); Shape189.setTextureSize(512, 512); Shape189.mirror = true; setRotation(Shape189, 0F, 0F, 0F); - Shape190 = new ModelRenderer(this, 0, 26); + Shape190 = new ModelRendererTurbo(this, 0, 26); Shape190.addBox(0F, 0F, 0F, 3, 0, 1); Shape190.setRotationPoint(12F, 1F, 6.6F); Shape190.setTextureSize(512, 512); Shape190.mirror = true; setRotation(Shape190, -0.3490659F, 0F, 0F); - Shape191 = new ModelRenderer(this, 41, 238); + Shape191 = new ModelRendererTurbo(this, 41, 238); Shape191.addBox(0F, 0F, 0F, 0, 19, 4); Shape191.setRotationPoint(-11F, -5F, 7F); Shape191.setTextureSize(512, 512); Shape191.mirror = true; setRotation(Shape191, 0F, 0F, 0F); - Shape192 = new ModelRenderer(this, 0, 26); + Shape192 = new ModelRendererTurbo(this, 0, 26); Shape192.addBox(0F, 0F, 0F, 3, 0, 1); Shape192.setRotationPoint(16F, -0.5F, 6.6F); Shape192.setTextureSize(512, 512); Shape192.mirror = true; setRotation(Shape192, -0.3490659F, 0F, 0F); - Shape193 = new ModelRenderer(this, 0, 400); + Shape193 = new ModelRendererTurbo(this, 0, 400); Shape193.addBox(0F, 0F, 0F, 0, 5, 14); Shape193.setRotationPoint(0F, 9F, -7F); Shape193.setTextureSize(512, 512); Shape193.mirror = true; setRotation(Shape193, 0F, 0F, 0F); - Shape194 = new ModelRenderer(this, 0, 300); + Shape194 = new ModelRendererTurbo(this, 0, 300); Shape194.addBox(0F, 0F, 0F, 4, 0, 14); Shape194.setRotationPoint(0F, -5F, -7F); Shape194.setTextureSize(512, 512); Shape194.mirror = true; setRotation(Shape194, 0F, 0F, 0F); - Shape195 = new ModelRenderer(this, 0, 26); + Shape195 = new ModelRendererTurbo(this, 0, 26); Shape195.addBox(0F, 0F, 0F, 3, 0, 1); Shape195.setRotationPoint(16F, -1.5F, 6.6F); Shape195.setTextureSize(512, 512); Shape195.mirror = true; setRotation(Shape195, -0.3490659F, 0F, 0F); - light_big_1 = new ModelRenderer(this, 0, 59); + light_big_1 = new ModelRendererTurbo(this, 0, 59); light_big_1.addBox(0F, 0F, 0F, 1, 4, 4); light_big_1.setRotationPoint(-21.4F, -8F, -2F); light_big_1.setTextureSize(512, 512); light_big_1.mirror = true; setRotation(light_big_1, 0F, 0F, 0F); - Shape197 = new ModelRenderer(this, 0, 300); + Shape197 = new ModelRendererTurbo(this, 0, 300); Shape197.addBox(0F, 0F, 0F, 4, 0, 14); Shape197.setRotationPoint(-15F, -5F, -7F); Shape197.setTextureSize(512, 512); Shape197.mirror = true; setRotation(Shape197, 0F, 0F, 0F); - Shape198 = new ModelRenderer(this, 0, 164); + Shape198 = new ModelRendererTurbo(this, 0, 164); Shape198.addBox(0F, 0F, 0F, 11, 0, 22); Shape198.setRotationPoint(-11F, -5F, -11F); Shape198.setTextureSize(512, 512); Shape198.mirror = true; setRotation(Shape198, 0F, 0F, 0F); - light7 = new ModelRenderer(this, 15, 75); + light7 = new ModelRendererTurbo(this, 15, 75); light7.addBox(0F, 0F, 0F, 1, 2, 2); light7.setRotationPoint(-21.4F, 7F, 3F); light7.setTextureSize(512, 512); light7.mirror = true; setRotation(light7, 0F, 0F, 0F); - Shape200 = new ModelRenderer(this, 0, 334); + Shape200 = new ModelRendererTurbo(this, 0, 334); Shape200.addBox(0F, 0F, 0F, 11, 0, 5); Shape200.setRotationPoint(-11F, -5F, 11F); Shape200.setTextureSize(512, 512); Shape200.mirror = true; setRotation(Shape200, 2.722714F, 0F, 0F); - light3 = new ModelRenderer(this, 15, 75); + light3 = new ModelRendererTurbo(this, 15, 75); light3.addBox(0F, 0F, 0F, 1, 2, 2); light3.setRotationPoint(38.4F, 7F, -5F); light3.setTextureSize(512, 512); light3.mirror = true; setRotation(light3, 0F, 0F, 0F); - Shape203 = new ModelRenderer(this, 100, 306); + Shape203 = new ModelRendererTurbo(this, 100, 306); Shape203.addBox(0F, 0F, 0F, 0, 2, 3); Shape203.setRotationPoint(-21F, -7F, -7F); Shape203.setTextureSize(512, 512); Shape203.mirror = true; setRotation(Shape203, 0.7853982F, 0F, 0F); - light5 = new ModelRenderer(this, 0, 75); + light5 = new ModelRendererTurbo(this, 0, 75); light5.addBox(0F, 0F, 0F, 1, 2, 2); light5.setRotationPoint(-21.4F, 10F, 3F); light5.setTextureSize(512, 512); light5.mirror = true; setRotation(light5, 0F, 0F, 0F); - light6 = new ModelRenderer(this, 0, 75); + light6 = new ModelRendererTurbo(this, 0, 75); light6.addBox(0F, 0F, 0F, 1, 2, 2); light6.setRotationPoint(-21.4F, 10F, -5F); light6.setTextureSize(512, 512); light6.mirror = true; setRotation(light6, 0F, 0F, 0F); - Shape206 = new ModelRenderer(this, 11, 100); + Shape206 = new ModelRendererTurbo(this, 11, 100); Shape206.addBox(0F, 0F, 0F, 8, 1, 1); Shape206.setRotationPoint(25F, -3F, -7.7F); Shape206.setTextureSize(512, 512); Shape206.mirror = true; setRotation(Shape206, 0F, 0F, 0F); - Shape207 = new ModelRenderer(this, 0, 87); + Shape207 = new ModelRendererTurbo(this, 0, 87); Shape207.addBox(0F, 0F, 0F, 34, 1, 0); Shape207.setRotationPoint(0F, 5F, -11F); Shape207.setTextureSize(512, 512); Shape207.mirror = true; setRotation(Shape207, 0F, 0F, 0F); - Shape208 = new ModelRenderer(this, 0, 0); + Shape208 = new ModelRendererTurbo(this, 0, 0); Shape208.addBox(0F, 0F, 0F, 8, 0, 1); Shape208.setRotationPoint(25F, 0.5F, 6.7F); Shape208.setTextureSize(512, 512); Shape208.mirror = true; setRotation(Shape208, -0.3490659F, 0F, 0F); - Shape209 = new ModelRenderer(this, 0, 265); + Shape209 = new ModelRendererTurbo(this, 0, 265); Shape209.addBox(0F, 0F, 0F, 11, 19, 0); Shape209.setRotationPoint(-11F, -5F, 11F); Shape209.setTextureSize(512, 512); Shape209.mirror = true; setRotation(Shape209, 0F, 0F, 0F); - Shape210 = new ModelRenderer(this, 0, 131); + Shape210 = new ModelRendererTurbo(this, 0, 131); Shape210.addBox(0F, 0F, 0F, 1, 8, 0); Shape210.setRotationPoint(-16F, 6F, -11F); Shape210.setTextureSize(512, 512); Shape210.mirror = true; setRotation(Shape210, 0F, 0F, 0F); - Shape211 = new ModelRenderer(this, 0, 367); + Shape211 = new ModelRendererTurbo(this, 0, 367); Shape211.addBox(0F, 0F, 0F, 0, 14, 14); Shape211.setRotationPoint(-15F, -5F, -7F); Shape211.setTextureSize(512, 512); Shape211.mirror = true; setRotation(Shape211, 0F, 0F, 0F); - Shape212 = new ModelRenderer(this, 35, 100); + Shape212 = new ModelRendererTurbo(this, 35, 100); Shape212.addBox(0F, 0F, 0F, 0, 1, 5); Shape212.setRotationPoint(-23F, 6F, 8.7F); Shape212.setTextureSize(512, 512); Shape212.mirror = true; setRotation(Shape212, -2.635447F, 0F, 0F); - Shape213 = new ModelRenderer(this, 100, 250); + Shape213 = new ModelRendererTurbo(this, 100, 250); Shape213.addBox(0F, 0F, 0F, 39, 21, 0); Shape213.setRotationPoint(0F, -7F, -7F); Shape213.setTextureSize(512, 512); Shape213.mirror = true; setRotation(Shape213, 0F, 0F, 0F); - Shape214 = new ModelRenderer(this, 0, 26); + Shape214 = new ModelRendererTurbo(this, 0, 26); Shape214.addBox(0F, 0F, 0F, 3, 0, 1); Shape214.setRotationPoint(4F, 1F, 6.6F); Shape214.setTextureSize(512, 512); Shape214.mirror = true; setRotation(Shape214, -0.3490659F, 0F, 0F); - Shape215 = new ModelRenderer(this, 0, 424); + Shape215 = new ModelRendererTurbo(this, 0, 424); Shape215.addBox(0F, 0F, 0F, 0, 5, 14); Shape215.setRotationPoint(0F, 9F, -7F); Shape215.setTextureSize(512, 512); Shape215.mirror = true; setRotation(Shape215, 0F, 0F, -1.919862F); - Shape216 = new ModelRenderer(this, 0, 26); + Shape216 = new ModelRendererTurbo(this, 0, 26); Shape216.addBox(0F, 0F, 0F, 3, 0, 1); Shape216.setRotationPoint(20F, -1.5F, 6.6F); Shape216.setTextureSize(512, 512); Shape216.mirror = true; setRotation(Shape216, -0.3490659F, 0F, 0F); - Shape217 = new ModelRenderer(this, 33, 367); + Shape217 = new ModelRendererTurbo(this, 33, 367); Shape217.addBox(0F, 0F, 0F, 0, 14, 14); Shape217.setRotationPoint(4F, -5F, -7F); Shape217.setTextureSize(512, 512); Shape217.mirror = true; setRotation(Shape217, 0F, 0F, 0F); - Shape218 = new ModelRenderer(this, 0, 131); + Shape218 = new ModelRendererTurbo(this, 0, 131); Shape218.addBox(0F, 0F, 0F, 1, 8, 0); Shape218.setRotationPoint(-16F, 6F, 11F); Shape218.setTextureSize(512, 512); Shape218.mirror = true; setRotation(Shape218, 0F, 0F, 0F); - Shape219 = new ModelRenderer(this, 41, 268); + Shape219 = new ModelRendererTurbo(this, 41, 268); Shape219.addBox(0F, 0F, 0F, 0, 19, 4); Shape219.setRotationPoint(0F, -5F, 7F); Shape219.setTextureSize(512, 512); Shape219.mirror = true; setRotation(Shape219, 0F, 0F, 0F); - Shape220 = new ModelRenderer(this, 10, 146); + Shape220 = new ModelRendererTurbo(this, 10, 146); Shape220.addBox(0F, 0F, 0F, 0, 9, 1); Shape220.setRotationPoint(-23F, 7.5F, 4F); Shape220.setTextureSize(512, 512); Shape220.mirror = true; setRotation(Shape220, 0F, 0F, 0F); - Shape221 = new ModelRenderer(this, 20, 146); + Shape221 = new ModelRendererTurbo(this, 20, 146); Shape221.addBox(0F, 0F, 0F, 0, 7, 1); Shape221.setRotationPoint(-23F, 7.5F, -5F); Shape221.setTextureSize(512, 512); Shape221.mirror = true; setRotation(Shape221, 0F, 0F, 0F); - Shape222 = new ModelRenderer(this, 100, 288); + Shape222 = new ModelRendererTurbo(this, 100, 288); Shape222.addBox(0F, 0F, 0F, 0, 2, 10); Shape222.setRotationPoint(-21F, -9F, -5F); Shape222.setTextureSize(512, 512); Shape222.mirror = true; setRotation(Shape222, 0F, 0F, 0F); - Shape223 = new ModelRenderer(this, 0, 131); + Shape223 = new ModelRendererTurbo(this, 0, 131); Shape223.addBox(0F, 0F, 0F, 4, 1, 0); Shape223.setRotationPoint(-23F, 5F, 8F); Shape223.setTextureSize(512, 512); Shape223.mirror = true; setRotation(Shape223, 0F, -0.7853982F, 0F); - Shape224 = new ModelRenderer(this, 0, 100); + Shape224 = new ModelRendererTurbo(this, 0, 100); Shape224.addBox(0F, 0F, 0F, 1, 8, 1); Shape224.setRotationPoint(33F, -3F, 6.7F); Shape224.setTextureSize(512, 512); Shape224.mirror = true; setRotation(Shape224, 0F, 0F, 0F); - Shape225 = new ModelRenderer(this, 0, 0); + Shape225 = new ModelRendererTurbo(this, 0, 0); Shape225.addBox(0F, 0F, 0F, 8, 0, 1); Shape225.setRotationPoint(25F, -1.5F, 6.7F); Shape225.setTextureSize(512, 512); Shape225.mirror = true; setRotation(Shape225, -0.3490659F, 0F, 0F); - Shape226 = new ModelRenderer(this, 35, 100); + Shape226 = new ModelRendererTurbo(this, 35, 100); Shape226.addBox(0F, 0F, 0F, 0, 1, 5); Shape226.setRotationPoint(41F, 5F, -8.3F); Shape226.setTextureSize(512, 512); Shape226.mirror = true; setRotation(Shape226, -0.5061455F, 0F, 0F); - Shape227 = new ModelRenderer(this, 0, 10); + Shape227 = new ModelRendererTurbo(this, 0, 10); Shape227.addBox(0F, 0F, 0F, 0, 6, 1); Shape227.setRotationPoint(29F, -2F, 6.7F); Shape227.setTextureSize(512, 512); Shape227.mirror = true; setRotation(Shape227, 0F, 0F, 0F); - Shape228 = new ModelRenderer(this, 10, 146); + Shape228 = new ModelRendererTurbo(this, 10, 146); Shape228.addBox(0F, 0F, 0F, 0, 9, 1); Shape228.setRotationPoint(41F, 7.5F, 4F); Shape228.setTextureSize(512, 512); Shape228.mirror = true; setRotation(Shape228, 0F, 0F, 0F); - Shape229 = new ModelRenderer(this, 20, 146); + Shape229 = new ModelRendererTurbo(this, 20, 146); Shape229.addBox(0F, 0F, 0F, 0, 7, 1); Shape229.setRotationPoint(41F, 7.5F, -5F); Shape229.setTextureSize(512, 512); Shape229.mirror = true; setRotation(Shape229, 0F, 0F, 0F); - Shape230 = new ModelRenderer(this, 100, 250); + Shape230 = new ModelRendererTurbo(this, 100, 250); Shape230.addBox(0F, 0F, 0F, 39, 21, 0); Shape230.setRotationPoint(0F, -7F, 7F); Shape230.setTextureSize(512, 512); Shape230.mirror = true; setRotation(Shape230, 0F, 0F, 0F); - Shape231 = new ModelRenderer(this, 0, 320); + Shape231 = new ModelRendererTurbo(this, 0, 320); Shape231.addBox(0F, 0F, 0F, 0, 5, 2); Shape231.setRotationPoint(0F, -5F, 11F); Shape231.setTextureSize(512, 512); Shape231.mirror = true; setRotation(Shape231, -2.024582F, 0F, 0F); - Shape232 = new ModelRenderer(this, 0, 131); + Shape232 = new ModelRendererTurbo(this, 0, 131); Shape232.addBox(0F, 0F, 0F, 4, 1, 0); Shape232.setRotationPoint(38F, 5F, -11F); Shape232.setTextureSize(512, 512); Shape232.mirror = true; setRotation(Shape232, 0F, -0.7853982F, 0F); - Shape233 = new ModelRenderer(this, 0, 320); + Shape233 = new ModelRendererTurbo(this, 0, 320); Shape233.addBox(0F, 0F, 0F, 0, 5, 2); Shape233.setRotationPoint(-11F, -5F, 11F); Shape233.setTextureSize(512, 512); Shape233.mirror = true; setRotation(Shape233, -2.024582F, 0F, 0F); - Shape234 = new ModelRenderer(this, 0, 146); + Shape234 = new ModelRendererTurbo(this, 0, 146); Shape234.addBox(0F, 0F, 0F, 0, 8, 1); Shape234.setRotationPoint(41F, 6F, -8F); Shape234.setTextureSize(512, 512); Shape234.mirror = true; setRotation(Shape234, 0F, 0F, 0F); - Shape235 = new ModelRenderer(this, 11, 320); + Shape235 = new ModelRendererTurbo(this, 11, 320); Shape235.addBox(0F, 0F, 0F, 0, 2, 5); Shape235.setRotationPoint(-11F, -5F, -11F); Shape235.setTextureSize(512, 512); Shape235.mirror = true; setRotation(Shape235, 0.418879F, 0F, 0F); - Shape236 = new ModelRenderer(this, 9, 131); + Shape236 = new ModelRendererTurbo(this, 9, 131); Shape236.addBox(0F, 0F, 0F, 1, 8, 0); Shape236.setRotationPoint(38F, 6F, 11F); Shape236.setTextureSize(512, 512); Shape236.mirror = true; setRotation(Shape236, 0F, 0.7853982F, 0F); - Shape237 = new ModelRenderer(this, 0, 334); + Shape237 = new ModelRendererTurbo(this, 0, 334); Shape237.addBox(0F, 0F, 0F, 11, 0, 5); Shape237.setRotationPoint(-11F, -5F, -11F); Shape237.setTextureSize(512, 512); Shape237.mirror = true; setRotation(Shape237, 0.418879F, 0F, 0F); - Shape238 = new ModelRenderer(this, 0, 131); + Shape238 = new ModelRendererTurbo(this, 0, 131); Shape238.addBox(0F, 0F, 0F, 1, 8, 0); Shape238.setRotationPoint(38F, 6F, -11F); Shape238.setTextureSize(512, 512); Shape238.mirror = true; setRotation(Shape238, 0F, -0.7853982F, 0F); - light2 = new ModelRenderer(this, 0, 75); + light2 = new ModelRendererTurbo(this, 0, 75); light2.addBox(0F, 0F, 0F, 1, 2, 2); light2.setRotationPoint(38.4F, 10F, 3F); light2.setTextureSize(512, 512); light2.mirror = true; setRotation(light2, 0F, 0F, 0F); - Shape240 = new ModelRenderer(this, 89, 278); + Shape240 = new ModelRendererTurbo(this, 89, 278); Shape240.addBox(0F, 0F, 0F, 60, 3, 0); Shape240.setRotationPoint(-21F, -7F, -7F); Shape240.setTextureSize(512, 512); Shape240.mirror = true; setRotation(Shape240, 2.356194F, 0F, 0F); - Shape241 = new ModelRenderer(this, 89, 278); + Shape241 = new ModelRendererTurbo(this, 89, 278); Shape241.addBox(0F, 0F, 0F, 60, 3, 0); Shape241.setRotationPoint(-21F, -7F, 7F); Shape241.setTextureSize(512, 512); Shape241.mirror = true; setRotation(Shape241, -2.356194F, 0F, 0F); - Shape242 = new ModelRenderer(this, 0, 87); + Shape242 = new ModelRendererTurbo(this, 0, 87); Shape242.addBox(0F, 0F, 0F, 34, 1, 0); Shape242.setRotationPoint(0F, 5F, 11F); Shape242.setTextureSize(512, 512); Shape242.mirror = true; setRotation(Shape242, 0F, 0F, 0F); - Shape243 = new ModelRenderer(this, 0, 131); + Shape243 = new ModelRendererTurbo(this, 0, 131); Shape243.addBox(0F, 0F, 0F, 4, 1, 0); Shape243.setRotationPoint(-23F, 5F, -8F); Shape243.setTextureSize(512, 512); Shape243.mirror = true; setRotation(Shape243, 0F, 0.7853982F, 0F); - Shape244 = new ModelRenderer(this, 0, 100); + Shape244 = new ModelRendererTurbo(this, 0, 100); Shape244.addBox(0F, 0F, 0F, 1, 8, 1); Shape244.setRotationPoint(33F, -3F, -7.7F); Shape244.setTextureSize(512, 512); Shape244.mirror = true; setRotation(Shape244, 0F, 0F, 0F); - Shape245 = new ModelRenderer(this, 10, 146); + Shape245 = new ModelRendererTurbo(this, 10, 146); Shape245.addBox(0F, 0F, 0F, 0, 8, 1); Shape245.setRotationPoint(-20F, 6F, -11F); Shape245.setTextureSize(512, 512); Shape245.mirror = true; setRotation(Shape245, 0F, -0.7853982F, 0F); - Shape246 = new ModelRenderer(this, 0, 0); + Shape246 = new ModelRendererTurbo(this, 0, 0); Shape246.addBox(0F, 0F, 0F, 8, 0, 1); Shape246.setRotationPoint(25F, -1F, 6.7F); Shape246.setTextureSize(512, 512); Shape246.mirror = true; setRotation(Shape246, -0.3490659F, 0F, 0F); - Shape247 = new ModelRenderer(this, 0, 26); + Shape247 = new ModelRendererTurbo(this, 0, 26); Shape247.addBox(0F, 0F, 0F, 3, 0, 1); Shape247.setRotationPoint(12F, 0F, 6.6F); Shape247.setTextureSize(512, 512); Shape247.mirror = true; setRotation(Shape247, -0.3490659F, 0F, 0F); - Shape248 = new ModelRenderer(this, 0, 0); + Shape248 = new ModelRendererTurbo(this, 0, 0); Shape248.addBox(0F, 0F, 0F, 8, 0, 1); Shape248.setRotationPoint(25F, 2F, 6.7F); Shape248.setTextureSize(512, 512); Shape248.mirror = true; setRotation(Shape248, -0.3490659F, 0F, 0F); - Shape249 = new ModelRenderer(this, 35, 100); + Shape249 = new ModelRendererTurbo(this, 35, 100); Shape249.addBox(0F, 0F, 0F, 0, 1, 5); Shape249.setRotationPoint(41F, 6F, 8.7F); Shape249.setTextureSize(512, 512); Shape249.mirror = true; setRotation(Shape249, -2.635447F, 0F, 0F); - Shape250 = new ModelRenderer(this, 100, 316); + Shape250 = new ModelRendererTurbo(this, 100, 316); Shape250.addBox(0F, 0F, 0F, 0, 3, 2); Shape250.setRotationPoint(39F, -7F, 7F); Shape250.setTextureSize(512, 512); Shape250.mirror = true; setRotation(Shape250, -2.356194F, 0F, 0F); - Shape251 = new ModelRenderer(this, 0, 146); + Shape251 = new ModelRendererTurbo(this, 0, 146); Shape251.addBox(0F, 0F, 0F, 0, 8, 1); Shape251.setRotationPoint(-23F, 6F, -8F); Shape251.setTextureSize(512, 512); Shape251.mirror = true; setRotation(Shape251, 0F, 0F, 0F); - Shape252 = new ModelRenderer(this, 100, 288); + Shape252 = new ModelRendererTurbo(this, 100, 288); Shape252.addBox(0F, 0F, 0F, 0, 2, 10); Shape252.setRotationPoint(39F, -9F, -5F); Shape252.setTextureSize(512, 512); Shape252.mirror = true; setRotation(Shape252, 0F, 0F, 0F); - light4 = new ModelRenderer(this, 15, 75); + light4 = new ModelRendererTurbo(this, 15, 75); light4.addBox(0F, 0F, 0F, 1, 2, 2); light4.setRotationPoint(38.4F, 7F, 3F); light4.setTextureSize(512, 512); light4.mirror = true; setRotation(light4, 0F, 0F, 0F); - Shape254 = new ModelRenderer(this, 0, 131); + Shape254 = new ModelRendererTurbo(this, 0, 131); Shape254.addBox(0F, 0F, 0F, 4, 1, 0); Shape254.setRotationPoint(38F, 5F, 11F); Shape254.setTextureSize(512, 512); Shape254.mirror = true; setRotation(Shape254, 0F, 0.7853982F, 0F); - Shape255 = new ModelRenderer(this, 0, 100); + Shape255 = new ModelRendererTurbo(this, 0, 100); Shape255.addBox(0F, 0F, 0F, 1, 8, 1); Shape255.setRotationPoint(24F, -3F, 6.7F); Shape255.setTextureSize(512, 512); Shape255.mirror = true; setRotation(Shape255, 0F, 0F, 0F); - Shape256 = new ModelRenderer(this, 11, 102); + Shape256 = new ModelRendererTurbo(this, 11, 102); Shape256.addBox(0F, 0F, 0F, 8, 1, 1); Shape256.setRotationPoint(25F, 4F, 6.7F); Shape256.setTextureSize(512, 512); Shape256.mirror = true; setRotation(Shape256, 0F, 0F, 0F); - Shape257 = new ModelRenderer(this, 35, 100); + Shape257 = new ModelRendererTurbo(this, 35, 100); Shape257.addBox(0F, 0F, 0F, 0, 1, 5); Shape257.setRotationPoint(-23F, 5F, -8.3F); Shape257.setTextureSize(512, 512); Shape257.mirror = true; setRotation(Shape257, -0.5061455F, 0F, 0F); - Shape258 = new ModelRenderer(this, 0, 100); + Shape258 = new ModelRendererTurbo(this, 0, 100); Shape258.addBox(0F, 0F, 0F, 1, 8, 1); Shape258.setRotationPoint(24F, -3F, -6.7F); Shape258.setTextureSize(512, 512); Shape258.mirror = true; setRotation(Shape258, 0F, 0F, 0F); - Shape259 = new ModelRenderer(this, 0, 146); + Shape259 = new ModelRendererTurbo(this, 0, 146); Shape259.addBox(0F, 0F, 0F, 0, 8, 1); Shape259.setRotationPoint(41F, 6F, 7F); Shape259.setTextureSize(512, 512); Shape259.mirror = true; setRotation(Shape259, 0F, 0F, 0F); - Shape260 = new ModelRenderer(this, 0, 0); + Shape260 = new ModelRendererTurbo(this, 0, 0); Shape260.addBox(0F, 0F, 0F, 8, 0, 1); Shape260.setRotationPoint(25F, -2F, 6.7F); Shape260.setTextureSize(512, 512); Shape260.mirror = true; setRotation(Shape260, -0.3490659F, 0F, 0F); - Shape261 = new ModelRenderer(this, 0, 131); + Shape261 = new ModelRendererTurbo(this, 0, 131); Shape261.addBox(0F, 0F, 0F, 1, 8, 0); Shape261.setRotationPoint(33F, 6F, -11F); Shape261.setTextureSize(512, 512); Shape261.mirror = true; setRotation(Shape261, 0F, 0F, 0F); - Shape262 = new ModelRenderer(this, 0, 10); + Shape262 = new ModelRendererTurbo(this, 0, 10); Shape262.addBox(0F, 0F, 0F, 0, 6, 1); Shape262.setRotationPoint(29F, -2F, -7.7F); Shape262.setTextureSize(512, 512); Shape262.mirror = true; setRotation(Shape262, 0F, 0F, 0F); - Shape263 = new ModelRenderer(this, 0, 0); + Shape263 = new ModelRendererTurbo(this, 0, 0); Shape263.addBox(0F, 0F, 0F, 8, 0, 1); Shape263.setRotationPoint(25F, 1.5F, 6.7F); Shape263.setTextureSize(512, 512); Shape263.mirror = true; setRotation(Shape263, -0.3490659F, 0F, 0F); - Shape264 = new ModelRenderer(this, 100, 306); + Shape264 = new ModelRendererTurbo(this, 100, 306); Shape264.addBox(0F, 0F, 0F, 0, 2, 3); Shape264.setRotationPoint(39F, -7F, -7F); Shape264.setTextureSize(512, 512); Shape264.mirror = true; setRotation(Shape264, 0.7853982F, 0F, 0F); - Shape265 = new ModelRenderer(this, 0, 146); + Shape265 = new ModelRendererTurbo(this, 0, 146); Shape265.addBox(0F, 0F, 0F, 0, 8, 1); Shape265.setRotationPoint(-23F, 6F, 7F); Shape265.setTextureSize(512, 512); Shape265.mirror = true; setRotation(Shape265, 0F, 0F, 0F); - Shape266 = new ModelRenderer(this, 100, 233); + Shape266 = new ModelRendererTurbo(this, 100, 233); Shape266.addBox(0F, 0F, 0F, 60, 0, 10); Shape266.setRotationPoint(-21F, -9F, -5F); Shape266.setTextureSize(512, 512); Shape266.mirror = true; setRotation(Shape266, 0F, 0F, 0F); - Shape267 = new ModelRenderer(this, 0, 131); + Shape267 = new ModelRendererTurbo(this, 0, 131); Shape267.addBox(0F, 0F, 0F, 1, 8, 0); Shape267.setRotationPoint(17F, 6F, -11F); Shape267.setTextureSize(512, 512); Shape267.mirror = true; setRotation(Shape267, 0F, 0F, 0F); - Shape268 = new ModelRenderer(this, 11, 100); + Shape268 = new ModelRendererTurbo(this, 11, 100); Shape268.addBox(0F, 0F, 0F, 8, 1, 1); Shape268.setRotationPoint(25F, -3F, 6.7F); Shape268.setTextureSize(512, 512); Shape268.mirror = true; setRotation(Shape268, 0F, 0F, 0F); - Shape269 = new ModelRenderer(this, 0, 131); + Shape269 = new ModelRendererTurbo(this, 0, 131); Shape269.addBox(0F, 0F, 0F, 1, 8, 0); Shape269.setRotationPoint(25F, 6F, 11F); Shape269.setTextureSize(512, 512); Shape269.mirror = true; setRotation(Shape269, 0F, 0F, 0F); - Shape270 = new ModelRenderer(this, 0, 0); + Shape270 = new ModelRendererTurbo(this, 0, 0); Shape270.addBox(0F, 0F, 0F, 8, 0, 1); Shape270.setRotationPoint(25F, 1F, 6.7F); Shape270.setTextureSize(512, 512); Shape270.mirror = true; setRotation(Shape270, -0.3490659F, 0F, 0F); - Shape271 = new ModelRenderer(this, 10, 146); + Shape271 = new ModelRendererTurbo(this, 10, 146); Shape271.addBox(0F, 0F, 0F, 0, 8, 1); Shape271.setRotationPoint(-20F, 6F, 11F); Shape271.setTextureSize(512, 512); Shape271.mirror = true; setRotation(Shape271, 0F, -2.356194F, 0F); - Shape272 = new ModelRenderer(this, 100, 316); + Shape272 = new ModelRendererTurbo(this, 100, 316); Shape272.addBox(0F, 0F, 0F, 0, 3, 2); Shape272.setRotationPoint(-21F, -7F, 7F); Shape272.setTextureSize(512, 512); Shape272.mirror = true; setRotation(Shape272, -2.356194F, 0F, 0F); - Shape273 = new ModelRenderer(this, 0, 131); + Shape273 = new ModelRendererTurbo(this, 0, 131); Shape273.addBox(0F, 0F, 0F, 1, 8, 0); Shape273.setRotationPoint(1F, 6F, 11F); Shape273.setTextureSize(512, 512); Shape273.mirror = true; setRotation(Shape273, 0F, 0F, 0F); - chimney = new ModelRenderer(this, 67, 200); + chimney = new ModelRendererTurbo(this, 67, 200); chimney.addBox(0F, 0F, 0F, 4, 2, 6); chimney.setRotationPoint(7F, -10.5F, -3F); chimney.setTextureSize(512, 512); chimney.mirror = true; setRotation(chimney, 0F, 0F, 0F); - Shape275 = new ModelRenderer(this, 0, 0); + Shape275 = new ModelRendererTurbo(this, 0, 0); Shape275.addBox(0F, 0F, 0F, 8, 0, 1); Shape275.setRotationPoint(25F, -0.5F, 6.7F); Shape275.setTextureSize(512, 512); Shape275.mirror = true; setRotation(Shape275, -0.3490659F, 0F, 0F); - Shape276 = new ModelRenderer(this, 0, 0); + Shape276 = new ModelRendererTurbo(this, 0, 0); Shape276.addBox(0F, 0F, 0F, 8, 0, 1); Shape276.setRotationPoint(25F, 0F, -6.7F); Shape276.setTextureSize(512, 512); Shape276.mirror = true; setRotation(Shape276, -2.792527F, 0F, 0F); - Shape277 = new ModelRenderer(this, 0, 0); + Shape277 = new ModelRendererTurbo(this, 0, 0); Shape277.addBox(0F, 0F, 0F, 8, 0, 1); Shape277.setRotationPoint(25F, 3F, -6.7F); Shape277.setTextureSize(512, 512); Shape277.mirror = true; setRotation(Shape277, -2.792527F, 0F, 0F); - Shape278 = new ModelRenderer(this, 0, 0); + Shape278 = new ModelRendererTurbo(this, 0, 0); Shape278.addBox(0F, 0F, 0F, 8, 0, 1); Shape278.setRotationPoint(25F, 2F, -6.7F); Shape278.setTextureSize(512, 512); Shape278.mirror = true; setRotation(Shape278, -2.792527F, 0F, 0F); - Shape279 = new ModelRenderer(this, 0, 0); + Shape279 = new ModelRendererTurbo(this, 0, 0); Shape279.addBox(0F, 0F, 0F, 8, 0, 1); Shape279.setRotationPoint(25F, -1F, -6.7F); Shape279.setTextureSize(512, 512); Shape279.mirror = true; setRotation(Shape279, -2.792527F, 0F, 0F); - Shape280 = new ModelRenderer(this, 0, 0); + Shape280 = new ModelRendererTurbo(this, 0, 0); Shape280.addBox(0F, 0F, 0F, 8, 0, 1); Shape280.setRotationPoint(25F, 1F, -6.7F); Shape280.setTextureSize(512, 512); Shape280.mirror = true; setRotation(Shape280, -2.792527F, 0F, 0F); - Shape281 = new ModelRenderer(this, 0, 0); + Shape281 = new ModelRendererTurbo(this, 0, 0); Shape281.addBox(0F, 0F, 0F, 8, 0, 1); Shape281.setRotationPoint(25F, 1.5F, -6.7F); Shape281.setTextureSize(512, 512); Shape281.mirror = true; setRotation(Shape281, -2.792527F, 0F, 0F); - Shape282 = new ModelRenderer(this, 0, 131); + Shape282 = new ModelRendererTurbo(this, 0, 131); Shape282.addBox(0F, 0F, 0F, 1, 8, 0); Shape282.setRotationPoint(33F, 6F, 11F); Shape282.setTextureSize(512, 512); Shape282.mirror = true; setRotation(Shape282, 0F, 0F, 0F); - Shape283 = new ModelRenderer(this, 0, 0); + Shape283 = new ModelRendererTurbo(this, 0, 0); Shape283.addBox(0F, 0F, 0F, 8, 0, 1); Shape283.setRotationPoint(25F, -0.5F, -6.7F); Shape283.setTextureSize(512, 512); Shape283.mirror = true; setRotation(Shape283, -2.792527F, 0F, 0F); - Shape284 = new ModelRenderer(this, 0, 0); + Shape284 = new ModelRendererTurbo(this, 0, 0); Shape284.addBox(0F, 0F, 0F, 8, 0, 1); Shape284.setRotationPoint(25F, -1.5F, -6.7F); Shape284.setTextureSize(512, 512); Shape284.mirror = true; setRotation(Shape284, -2.792527F, 0F, 0F); - Shape285 = new ModelRenderer(this, 0, 0); + Shape285 = new ModelRendererTurbo(this, 0, 0); Shape285.addBox(0F, 0F, 0F, 8, 0, 1); Shape285.setRotationPoint(25F, 0F, 6.7F); Shape285.setTextureSize(512, 512); Shape285.mirror = true; setRotation(Shape285, -0.3490659F, 0F, 0F); - Shape286 = new ModelRenderer(this, 0, 0); + Shape286 = new ModelRendererTurbo(this, 0, 0); Shape286.addBox(0F, 0F, 0F, 8, 0, 1); Shape286.setRotationPoint(25F, 2.5F, 6.7F); Shape286.setTextureSize(512, 512); Shape286.mirror = true; setRotation(Shape286, -0.3490659F, 0F, 0F); - Shape287 = new ModelRenderer(this, 0, 0); + Shape287 = new ModelRendererTurbo(this, 0, 0); Shape287.addBox(0F, 0F, 0F, 8, 0, 1); Shape287.setRotationPoint(25F, 3.5F, 6.7F); Shape287.setTextureSize(512, 512); Shape287.mirror = true; setRotation(Shape287, -0.3490659F, 0F, 0F); - Shape288 = new ModelRenderer(this, 0, 0); + Shape288 = new ModelRendererTurbo(this, 0, 0); Shape288.addBox(0F, 0F, 0F, 8, 0, 1); Shape288.setRotationPoint(25F, 3F, 6.7F); Shape288.setTextureSize(512, 512); Shape288.mirror = true; setRotation(Shape288, -0.3490659F, 0F, 0F); - Shape289 = new ModelRenderer(this, 0, 0); + Shape289 = new ModelRendererTurbo(this, 0, 0); Shape289.addBox(0F, 0F, 0F, 8, 0, 1); Shape289.setRotationPoint(25F, -2F, -6.7F); Shape289.setTextureSize(512, 512); Shape289.mirror = true; setRotation(Shape289, -2.792527F, 0F, 0F); - Shape290 = new ModelRenderer(this, 0, 0); + Shape290 = new ModelRendererTurbo(this, 0, 0); Shape290.addBox(0F, 0F, 0F, 8, 0, 1); Shape290.setRotationPoint(25F, 0.5F, -6.7F); Shape290.setTextureSize(512, 512); Shape290.mirror = true; setRotation(Shape290, -2.792527F, 0F, 0F); - Shape291 = new ModelRenderer(this, 0, 131); + Shape291 = new ModelRendererTurbo(this, 0, 131); Shape291.addBox(0F, 0F, 0F, 1, 8, 0); Shape291.setRotationPoint(9F, 6F, -11F); Shape291.setTextureSize(512, 512); Shape291.mirror = true; setRotation(Shape291, 0F, 0F, 0F); - Shape292 = new ModelRenderer(this, 0, 131); + Shape292 = new ModelRendererTurbo(this, 0, 131); Shape292.addBox(0F, 0F, 0F, 1, 8, 0); Shape292.setRotationPoint(17F, 6F, 11F); Shape292.setTextureSize(512, 512); Shape292.mirror = true; setRotation(Shape292, 0F, 0F, 0F); - Shape293 = new ModelRenderer(this, 0, 131); + Shape293 = new ModelRendererTurbo(this, 0, 131); Shape293.addBox(0F, 0F, 0F, 1, 8, 0); Shape293.setRotationPoint(1F, 6F, -11F); Shape293.setTextureSize(512, 512); Shape293.mirror = true; setRotation(Shape293, 0F, 0F, 0F); - Shape294 = new ModelRenderer(this, 0, 0); + Shape294 = new ModelRendererTurbo(this, 0, 0); Shape294.addBox(0F, 0F, 0F, 8, 0, 1); Shape294.setRotationPoint(25F, 2.5F, -6.7F); Shape294.setTextureSize(512, 512); Shape294.mirror = true; setRotation(Shape294, -2.792527F, 0F, 0F); - Shape295 = new ModelRenderer(this, 0, 131); + Shape295 = new ModelRendererTurbo(this, 0, 131); Shape295.addBox(0F, 0F, 0F, 1, 8, 0); Shape295.setRotationPoint(25F, 6F, -11F); Shape295.setTextureSize(512, 512); Shape295.mirror = true; setRotation(Shape295, 0F, 0F, 0F); - Shape296 = new ModelRenderer(this, 0, 131); + Shape296 = new ModelRendererTurbo(this, 0, 131); Shape296.addBox(0F, 0F, 0F, 1, 8, 0); Shape296.setRotationPoint(9F, 6F, 11F); Shape296.setTextureSize(512, 512); Shape296.mirror = true; setRotation(Shape296, 0F, 0F, 0F); - Shape297 = new ModelRenderer(this, 0, 0); + Shape297 = new ModelRendererTurbo(this, 0, 0); Shape297.addBox(0F, 0F, 0F, 8, 0, 1); Shape297.setRotationPoint(25F, 3.5F, -6.7F); Shape297.setTextureSize(512, 512); Shape297.mirror = true; setRotation(Shape297, -2.792527F, 0F, 0F); - Shape298 = new ModelRenderer(this, 0, 33); + Shape298 = new ModelRendererTurbo(this, 0, 33); Shape298.addBox(0F, 0F, 0F, 3, 0, 1); Shape298.setRotationPoint(12F, -1F, -6.6F); Shape298.setTextureSize(512, 512); Shape298.mirror = true; setRotation(Shape298, -2.792527F, 0F, 0F); - Shape299 = new ModelRenderer(this, 0, 33); + Shape299 = new ModelRendererTurbo(this, 0, 33); Shape299.addBox(0F, 0F, 0F, 3, 0, 1); Shape299.setRotationPoint(12F, -2F, -6.6F); Shape299.setTextureSize(512, 512); Shape299.mirror = true; setRotation(Shape299, -2.792527F, 0F, 0F); - Shape300 = new ModelRenderer(this, 0, 33); + Shape300 = new ModelRendererTurbo(this, 0, 33); Shape300.addBox(0F, 0F, 0F, 3, 0, 1); Shape300.setRotationPoint(12F, 0F, -6.6F); Shape300.setTextureSize(512, 512); Shape300.mirror = true; setRotation(Shape300, -2.792527F, 0F, 0F); - Shape301 = new ModelRenderer(this, 0, 33); + Shape301 = new ModelRendererTurbo(this, 0, 33); Shape301.addBox(0F, 0F, 0F, 3, 0, 1); Shape301.setRotationPoint(12F, 1F, -6.6F); Shape301.setTextureSize(512, 512); Shape301.mirror = true; setRotation(Shape301, -2.792527F, 0F, 0F); - Shape302 = new ModelRenderer(this, 0, 33); + Shape302 = new ModelRendererTurbo(this, 0, 33); Shape302.addBox(0F, 0F, 0F, 3, 0, 1); Shape302.setRotationPoint(12F, -1.5F, -6.6F); Shape302.setTextureSize(512, 512); Shape302.mirror = true; setRotation(Shape302, -2.792527F, 0F, 0F); - Shape303 = new ModelRenderer(this, 0, 33); + Shape303 = new ModelRendererTurbo(this, 0, 33); Shape303.addBox(0F, 0F, 0F, 3, 0, 1); Shape303.setRotationPoint(12F, -0.5F, -6.6F); Shape303.setTextureSize(512, 512); Shape303.mirror = true; setRotation(Shape303, -2.792527F, 0F, 0F); - Shape304 = new ModelRenderer(this, 0, 33); + Shape304 = new ModelRendererTurbo(this, 0, 33); Shape304.addBox(0F, 0F, 0F, 3, 0, 1); Shape304.setRotationPoint(12F, 1.5F, -6.6F); Shape304.setTextureSize(512, 512); Shape304.mirror = true; setRotation(Shape304, -2.792527F, 0F, 0F); - Shape305 = new ModelRenderer(this, 0, 33); + Shape305 = new ModelRendererTurbo(this, 0, 33); Shape305.addBox(0F, 0F, 0F, 3, 0, 1); Shape305.setRotationPoint(12F, 0.5F, -6.6F); Shape305.setTextureSize(512, 512); Shape305.mirror = true; setRotation(Shape305, -2.792527F, 0F, 0F); - Shape306 = new ModelRenderer(this, 0, 0); + Shape306 = new ModelRendererTurbo(this, 0, 0); Shape306.addBox(0F, 0F, 0F, 3, 0, 1); Shape306.setRotationPoint(16F, -2F, -6.6F); Shape306.setTextureSize(512, 512); Shape306.mirror = true; setRotation(Shape306, -2.792527F, 0F, 0F); - Shape307 = new ModelRenderer(this, 0, 0); + Shape307 = new ModelRendererTurbo(this, 0, 0); Shape307.addBox(0F, 0F, 0F, 3, 0, 1); Shape307.setRotationPoint(16F, -1F, -6.6F); Shape307.setTextureSize(512, 512); Shape307.mirror = true; setRotation(Shape307, -2.792527F, 0F, 0F); - Shape308 = new ModelRenderer(this, 0, 0); + Shape308 = new ModelRendererTurbo(this, 0, 0); Shape308.addBox(0F, 0F, 0F, 3, 0, 1); Shape308.setRotationPoint(16F, 0F, -6.6F); Shape308.setTextureSize(512, 512); Shape308.mirror = true; setRotation(Shape308, -2.792527F, 0F, 0F); - Shape309 = new ModelRenderer(this, 0, 0); + Shape309 = new ModelRendererTurbo(this, 0, 0); Shape309.addBox(0F, 0F, 0F, 3, 0, 1); Shape309.setRotationPoint(16F, 1F, -6.6F); Shape309.setTextureSize(512, 512); Shape309.mirror = true; setRotation(Shape309, -2.792527F, 0F, 0F); - Shape310 = new ModelRenderer(this, 0, 0); + Shape310 = new ModelRendererTurbo(this, 0, 0); Shape310.addBox(0F, 0F, 0F, 3, 0, 1); Shape310.setRotationPoint(16F, -1.5F, -6.6F); Shape310.setTextureSize(512, 512); Shape310.mirror = true; setRotation(Shape310, -2.792527F, 0F, 0F); - Shape311 = new ModelRenderer(this, 0, 0); + Shape311 = new ModelRendererTurbo(this, 0, 0); Shape311.addBox(0F, 0F, 0F, 3, 0, 1); Shape311.setRotationPoint(16F, -0.5F, -6.6F); Shape311.setTextureSize(512, 512); Shape311.mirror = true; setRotation(Shape311, -2.792527F, 0F, 0F); - Shape312 = new ModelRenderer(this, 0, 0); + Shape312 = new ModelRendererTurbo(this, 0, 0); Shape312.addBox(0F, 0F, 0F, 3, 0, 1); Shape312.setRotationPoint(16F, 0.5F, -6.6F); Shape312.setTextureSize(512, 512); Shape312.mirror = true; setRotation(Shape312, -2.792527F, 0F, 0F); - Shape313 = new ModelRenderer(this, 0, 0); + Shape313 = new ModelRendererTurbo(this, 0, 0); Shape313.addBox(0F, 0F, 0F, 3, 0, 1); Shape313.setRotationPoint(16F, 1.5F, -6.6F); Shape313.setTextureSize(512, 512); Shape313.mirror = true; setRotation(Shape313, -2.792527F, 0F, 0F); - Shape314 = new ModelRenderer(this, 0, 0); + Shape314 = new ModelRendererTurbo(this, 0, 0); Shape314.addBox(0F, 0F, 0F, 3, 0, 1); Shape314.setRotationPoint(20F, -2F, -6.6F); Shape314.setTextureSize(512, 512); Shape314.mirror = true; setRotation(Shape314, -2.792527F, 0F, 0F); - Shape315 = new ModelRenderer(this, 0, 0); + Shape315 = new ModelRendererTurbo(this, 0, 0); Shape315.addBox(0F, 0F, 0F, 3, 0, 1); Shape315.setRotationPoint(20F, -1F, -6.6F); Shape315.setTextureSize(512, 512); Shape315.mirror = true; setRotation(Shape315, -2.792527F, 0F, 0F); - Shape316 = new ModelRenderer(this, 0, 0); + Shape316 = new ModelRendererTurbo(this, 0, 0); Shape316.addBox(0F, 0F, 0F, 3, 0, 1); Shape316.setRotationPoint(20F, 0F, -6.6F); Shape316.setTextureSize(512, 512); Shape316.mirror = true; setRotation(Shape316, -2.792527F, 0F, 0F); - Shape317 = new ModelRenderer(this, 0, 0); + Shape317 = new ModelRendererTurbo(this, 0, 0); Shape317.addBox(0F, 0F, 0F, 3, 0, 1); Shape317.setRotationPoint(20F, 1F, -6.6F); Shape317.setTextureSize(512, 512); Shape317.mirror = true; setRotation(Shape317, -2.792527F, 0F, 0F); - Shape318 = new ModelRenderer(this, 0, 0); + Shape318 = new ModelRendererTurbo(this, 0, 0); Shape318.addBox(0F, 0F, 0F, 3, 0, 1); Shape318.setRotationPoint(20F, -1.5F, -6.6F); Shape318.setTextureSize(512, 512); Shape318.mirror = true; setRotation(Shape318, -2.792527F, 0F, 0F); - Shape319 = new ModelRenderer(this, 0, 0); + Shape319 = new ModelRendererTurbo(this, 0, 0); Shape319.addBox(0F, 0F, 0F, 3, 0, 1); Shape319.setRotationPoint(20F, -0.5F, -6.6F); Shape319.setTextureSize(512, 512); Shape319.mirror = true; setRotation(Shape319, -2.792527F, 0F, 0F); - Shape320 = new ModelRenderer(this, 0, 0); + Shape320 = new ModelRendererTurbo(this, 0, 0); Shape320.addBox(0F, 0F, 0F, 3, 0, 1); Shape320.setRotationPoint(20F, 0.5F, -6.6F); Shape320.setTextureSize(512, 512); Shape320.mirror = true; setRotation(Shape320, -2.792527F, 0F, 0F); - Shape321 = new ModelRenderer(this, 0, 0); + Shape321 = new ModelRendererTurbo(this, 0, 0); Shape321.addBox(0F, 0F, 0F, 3, 0, 1); Shape321.setRotationPoint(20F, 1.5F, -6.6F); Shape321.setTextureSize(512, 512); Shape321.mirror = true; setRotation(Shape321, -2.792527F, 0F, 0F); - Shape322 = new ModelRenderer(this, 0, 0); + Shape322 = new ModelRendererTurbo(this, 0, 0); Shape322.addBox(0F, 0F, 0F, 3, 0, 1); Shape322.setRotationPoint(35F, -2F, -6.6F); Shape322.setTextureSize(512, 512); Shape322.mirror = true; setRotation(Shape322, -2.792527F, 0F, 0F); - Shape323 = new ModelRenderer(this, 0, 0); + Shape323 = new ModelRendererTurbo(this, 0, 0); Shape323.addBox(0F, 0F, 0F, 3, 0, 1); Shape323.setRotationPoint(35F, -1F, -6.6F); Shape323.setTextureSize(512, 512); Shape323.mirror = true; setRotation(Shape323, -2.792527F, 0F, 0F); - Shape324 = new ModelRenderer(this, 0, 0); + Shape324 = new ModelRendererTurbo(this, 0, 0); Shape324.addBox(0F, 0F, 0F, 3, 0, 1); Shape324.setRotationPoint(35F, 0F, -6.6F); Shape324.setTextureSize(512, 512); Shape324.mirror = true; setRotation(Shape324, -2.792527F, 0F, 0F); - Shape325 = new ModelRenderer(this, 0, 0); + Shape325 = new ModelRendererTurbo(this, 0, 0); Shape325.addBox(0F, 0F, 0F, 3, 0, 1); Shape325.setRotationPoint(35F, 1F, -6.6F); Shape325.setTextureSize(512, 512); Shape325.mirror = true; setRotation(Shape325, -2.792527F, 0F, 0F); - Shape326 = new ModelRenderer(this, 0, 0); + Shape326 = new ModelRendererTurbo(this, 0, 0); Shape326.addBox(0F, 0F, 0F, 3, 0, 1); Shape326.setRotationPoint(35F, -1.5F, -6.6F); Shape326.setTextureSize(512, 512); Shape326.mirror = true; setRotation(Shape326, -2.792527F, 0F, 0F); - Shape327 = new ModelRenderer(this, 0, 0); + Shape327 = new ModelRendererTurbo(this, 0, 0); Shape327.addBox(0F, 0F, 0F, 3, 0, 1); Shape327.setRotationPoint(35F, -0.5F, -6.6F); Shape327.setTextureSize(512, 512); Shape327.mirror = true; setRotation(Shape327, -2.792527F, 0F, 0F); - Shape328 = new ModelRenderer(this, 0, 0); + Shape328 = new ModelRendererTurbo(this, 0, 0); Shape328.addBox(0F, 0F, 0F, 3, 0, 1); Shape328.setRotationPoint(35F, 0.5F, -6.6F); Shape328.setTextureSize(512, 512); Shape328.mirror = true; setRotation(Shape328, -2.792527F, 0F, 0F); - Shape329 = new ModelRenderer(this, 0, 0); + Shape329 = new ModelRendererTurbo(this, 0, 0); Shape329.addBox(0F, 0F, 0F, 3, 0, 1); Shape329.setRotationPoint(35F, 1.5F, -6.6F); Shape329.setTextureSize(512, 512); Shape329.mirror = true; setRotation(Shape329, -2.792527F, 0F, 0F); - Shape330 = new ModelRenderer(this, 50, 50); + Shape330 = new ModelRendererTurbo(this, 50, 50); Shape330.addBox(0F, 0F, 0F, 4, 2, 2); Shape330.setRotationPoint(-27F, 16F, 6F); Shape330.setTextureSize(512, 512); Shape330.mirror = true; setRotation(Shape330, 0F, 0F, 0F); - Shape331 = new ModelRenderer(this, 50, 50); + Shape331 = new ModelRendererTurbo(this, 50, 50); Shape331.addBox(0F, 0F, 0F, 4, 2, 2); Shape331.setRotationPoint(-27F, 16F, -8F); Shape331.setTextureSize(512, 512); Shape331.mirror = true; setRotation(Shape331, 0F, 0F, 0F); - Shape332 = new ModelRenderer(this, 50, 50); + Shape332 = new ModelRendererTurbo(this, 50, 50); Shape332.addBox(0F, 0F, 0F, 4, 2, 2); Shape332.setRotationPoint(41F, 16F, -8F); Shape332.setTextureSize(512, 512); Shape332.mirror = true; setRotation(Shape332, 0F, 0F, 0F); - Shape333 = new ModelRenderer(this, 50, 50); + Shape333 = new ModelRendererTurbo(this, 50, 50); Shape333.addBox(0F, 0F, 0F, 4, 2, 2); Shape333.setRotationPoint(41F, 16F, 6F); Shape333.setTextureSize(512, 512); Shape333.mirror = true; setRotation(Shape333, 0F, 0F, 0F); - Shape334 = new ModelRenderer(this, 50, 61); + Shape334 = new ModelRendererTurbo(this, 50, 61); Shape334.addBox(0F, 0F, 0F, 1, 4, 4); Shape334.setRotationPoint(45F, 15F, 5F); Shape334.setTextureSize(512, 512); Shape334.mirror = true; setRotation(Shape334, 0F, 0F, 0F); - Shape335 = new ModelRenderer(this, 50, 61); + Shape335 = new ModelRendererTurbo(this, 50, 61); Shape335.addBox(0F, 0F, 0F, 1, 4, 4); Shape335.setRotationPoint(45F, 15F, -9F); Shape335.setTextureSize(512, 512); Shape335.mirror = true; setRotation(Shape335, 0F, 0F, 0F); - Shape336 = new ModelRenderer(this, 50, 61); + Shape336 = new ModelRendererTurbo(this, 50, 61); Shape336.addBox(0F, 0F, 0F, 1, 4, 4); Shape336.setRotationPoint(-28F, 15F, -9F); Shape336.setTextureSize(512, 512); Shape336.mirror = true; setRotation(Shape336, 0F, 0F, 0F); - Shape337 = new ModelRenderer(this, 50, 61); + Shape337 = new ModelRendererTurbo(this, 50, 61); Shape337.addBox(0F, 0F, 0F, 1, 4, 4); Shape337.setRotationPoint(-28F, 15F, 5F); Shape337.setTextureSize(512, 512); Shape337.mirror = true; setRotation(Shape337, 0F, 0F, 0F); - Shape338 = new ModelRenderer(this, 70, 50); + Shape338 = new ModelRendererTurbo(this, 70, 50); Shape338.addBox(0F, 0F, 0F, 1, 3, 1); Shape338.setRotationPoint(40F, 16F, -2F); Shape338.setTextureSize(512, 512); Shape338.mirror = true; setRotation(Shape338, 0F, 0F, -0.7853982F); - Shape339 = new ModelRenderer(this, 70, 50); + Shape339 = new ModelRendererTurbo(this, 70, 50); Shape339.addBox(0F, 0F, 0F, 1, 3, 1); Shape339.setRotationPoint(40F, 16F, 1F); Shape339.setTextureSize(512, 512); Shape339.mirror = true; setRotation(Shape339, 0F, 0F, -0.7853982F); - Shape340 = new ModelRenderer(this, 70, 62); + Shape340 = new ModelRendererTurbo(this, 70, 62); Shape340.addBox(0F, 0F, 0F, 1, 3, 1); Shape340.setRotationPoint(-23F, 16F, -2F); Shape340.setTextureSize(512, 512); Shape340.mirror = true; setRotation(Shape340, 0F, 0F, 0.7853982F); - Shape341 = new ModelRenderer(this, 70, 62); + Shape341 = new ModelRendererTurbo(this, 70, 62); Shape341.addBox(0F, 0F, 0F, 1, 3, 1); Shape341.setRotationPoint(-23F, 16F, 1F); Shape341.setTextureSize(512, 512); Shape341.mirror = true; setRotation(Shape341, 0F, 0F, 0.7853982F); - Shape342 = new ModelRenderer(this, 70, 75); + Shape342 = new ModelRendererTurbo(this, 70, 75); Shape342.addBox(0F, 0F, 0F, 1, 4, 2); Shape342.setRotationPoint(-25F, 18F, -1F); Shape342.setTextureSize(512, 512); Shape342.mirror = true; setRotation(Shape342, 0F, 0F, -1.047198F); - Shape343 = new ModelRenderer(this, 83, 75); + Shape343 = new ModelRendererTurbo(this, 83, 75); Shape343.addBox(0F, 0F, 0F, 1, 4, 2); Shape343.setRotationPoint(42.5F, 17F, -1F); Shape343.setTextureSize(512, 512); Shape343.mirror = true; setRotation(Shape343, 0F, 0F, 1.047198F); - Shape370 = new ModelRenderer(this, 11, 102); + Shape370 = new ModelRendererTurbo(this, 11, 102); Shape370.addBox(0F, 0F, 0F, 8, 1, 1); Shape370.setRotationPoint(25F, 4F, -7.7F); Shape370.setTextureSize(512, 512); @@ -2838,7 +2838,7 @@ public void render(Entity entity, float f, float f1, float f2, float f3, float f Minecraft.getMinecraft().entityRenderer.enableLightmap(1D); } - private void setRotation(ModelRenderer model, float x, float y, float z) { + private void setRotation(ModelRendererTurbo model, float x, float y, float z) { model.rotateAngleX = x; model.rotateAngleY = y; model.rotateAngleZ = z; diff --git a/src/main/java/train/client/render/models/ModelGP49.java b/src/main/java/train/client/render/models/ModelGP49.java index a0166e253f..e1c665e372 100644 --- a/src/main/java/train/client/render/models/ModelGP49.java +++ b/src/main/java/train/client/render/models/ModelGP49.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelGP7.java b/src/main/java/train/client/render/models/ModelGP7.java index 42c4e4c34a..b3526700c5 100644 --- a/src/main/java/train/client/render/models/ModelGP7.java +++ b/src/main/java/train/client/render/models/ModelGP7.java @@ -3,8 +3,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelGP7 extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelGP7BAP.java b/src/main/java/train/client/render/models/ModelGP7BAP.java index 1348a36f20..61d2172c45 100644 --- a/src/main/java/train/client/render/models/ModelGP7BAP.java +++ b/src/main/java/train/client/render/models/ModelGP7BAP.java @@ -14,9 +14,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelGP7b.java b/src/main/java/train/client/render/models/ModelGP7b.java index 38a621b792..d3d3c9c982 100644 --- a/src/main/java/train/client/render/models/ModelGP7b.java +++ b/src/main/java/train/client/render/models/ModelGP7b.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelGP7u.java b/src/main/java/train/client/render/models/ModelGP7u.java index e1fd34fe42..498028782e 100644 --- a/src/main/java/train/client/render/models/ModelGP7u.java +++ b/src/main/java/train/client/render/models/ModelGP7u.java @@ -14,9 +14,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelGP9.java b/src/main/java/train/client/render/models/ModelGP9.java index b04d51c39a..e2b079d40a 100644 --- a/src/main/java/train/client/render/models/ModelGP9.java +++ b/src/main/java/train/client/render/models/ModelGP9.java @@ -14,9 +14,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelGS4Baggage.java b/src/main/java/train/client/render/models/ModelGS4Baggage.java index a2e7c77b32..4bb3711149 100644 --- a/src/main/java/train/client/render/models/ModelGS4Baggage.java +++ b/src/main/java/train/client/render/models/ModelGS4Baggage.java @@ -12,9 +12,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelGS4Loco.java b/src/main/java/train/client/render/models/ModelGS4Loco.java index 6bc48257cd..4828eb2888 100644 --- a/src/main/java/train/client/render/models/ModelGS4Loco.java +++ b/src/main/java/train/client/render/models/ModelGS4Loco.java @@ -11,8 +11,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelGS4Loco extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelGS4Passenger.java b/src/main/java/train/client/render/models/ModelGS4Passenger.java index fa190ac11f..fe74ea21c1 100644 --- a/src/main/java/train/client/render/models/ModelGS4Passenger.java +++ b/src/main/java/train/client/render/models/ModelGS4Passenger.java @@ -12,9 +12,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelGS4Tail.java b/src/main/java/train/client/render/models/ModelGS4Tail.java index b1d7eb7500..fb4ca32a18 100644 --- a/src/main/java/train/client/render/models/ModelGS4Tail.java +++ b/src/main/java/train/client/render/models/ModelGS4Tail.java @@ -12,9 +12,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelGS4Tavern.java b/src/main/java/train/client/render/models/ModelGS4Tavern.java index 37b3730c78..f548fa04bb 100644 --- a/src/main/java/train/client/render/models/ModelGS4Tavern.java +++ b/src/main/java/train/client/render/models/ModelGS4Tavern.java @@ -12,9 +12,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelGS4Tender.java b/src/main/java/train/client/render/models/ModelGS4Tender.java index fa0de4cd7b..552e8cb443 100644 --- a/src/main/java/train/client/render/models/ModelGS4Tender.java +++ b/src/main/java/train/client/render/models/ModelGS4Tender.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.library.Info; public class ModelGS4Tender extends ModelBase diff --git a/src/main/java/train/client/render/models/ModelGS4TenderBogie.java b/src/main/java/train/client/render/models/ModelGS4TenderBogie.java index 07a20774a1..119a0095ff 100644 --- a/src/main/java/train/client/render/models/ModelGS4TenderBogie.java +++ b/src/main/java/train/client/render/models/ModelGS4TenderBogie.java @@ -10,8 +10,8 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelGS4TenderBogie extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelGSI60FootBulkheadFlat.java b/src/main/java/train/client/render/models/ModelGSI60FootBulkheadFlat.java index 0291841502..12ccb9a26b 100644 --- a/src/main/java/train/client/render/models/ModelGSI60FootBulkheadFlat.java +++ b/src/main/java/train/client/render/models/ModelGSI60FootBulkheadFlat.java @@ -12,9 +12,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelGWR101Class.java b/src/main/java/train/client/render/models/ModelGWR101Class.java index b790babad6..ace965ac17 100644 --- a/src/main/java/train/client/render/models/ModelGWR101Class.java +++ b/src/main/java/train/client/render/models/ModelGWR101Class.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelGWR101Class extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelGWR42xx.java b/src/main/java/train/client/render/models/ModelGWR42xx.java index 296f166b8a..bcf9ace42a 100644 --- a/src/main/java/train/client/render/models/ModelGWR42xx.java +++ b/src/main/java/train/client/render/models/ModelGWR42xx.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelGWR42xx extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelGWR72xx.java b/src/main/java/train/client/render/models/ModelGWR72xx.java index 0a3ec21d4e..8205221cf9 100644 --- a/src/main/java/train/client/render/models/ModelGWR72xx.java +++ b/src/main/java/train/client/render/models/ModelGWR72xx.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelGWR72xx extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelGWRBrakeVan.java b/src/main/java/train/client/render/models/ModelGWRBrakeVan.java index 0034081d0b..85f753244d 100644 --- a/src/main/java/train/client/render/models/ModelGWRBrakeVan.java +++ b/src/main/java/train/client/render/models/ModelGWRBrakeVan.java @@ -10,8 +10,8 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelGWRBrakeVan extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelGarrattBack.java b/src/main/java/train/client/render/models/ModelGarrattBack.java index a194151762..401440afb0 100644 --- a/src/main/java/train/client/render/models/ModelGarrattBack.java +++ b/src/main/java/train/client/render/models/ModelGarrattBack.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; import java.util.ArrayList; diff --git a/src/main/java/train/client/render/models/ModelGarrattFront.java b/src/main/java/train/client/render/models/ModelGarrattFront.java index c86ec5102c..cdfcb01d9d 100644 --- a/src/main/java/train/client/render/models/ModelGarrattFront.java +++ b/src/main/java/train/client/render/models/ModelGarrattFront.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; import java.util.ArrayList; diff --git a/src/main/java/train/client/render/models/ModelGarrattMid.java b/src/main/java/train/client/render/models/ModelGarrattMid.java index 48867d60e4..e1be5c2591 100644 --- a/src/main/java/train/client/render/models/ModelGarrattMid.java +++ b/src/main/java/train/client/render/models/ModelGarrattMid.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; import java.util.ArrayList; diff --git a/src/main/java/train/client/render/models/ModelGermanPost.java b/src/main/java/train/client/render/models/ModelGermanPost.java index 174767c88e..f6ca20a803 100644 --- a/src/main/java/train/client/render/models/ModelGermanPost.java +++ b/src/main/java/train/client/render/models/ModelGermanPost.java @@ -12,9 +12,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.library.Info; public class ModelGermanPost extends ModelConverter //Same as Filename diff --git a/src/main/java/train/client/render/models/ModelGrain.java b/src/main/java/train/client/render/models/ModelGrain.java index 4de7bec46f..7afb3df02e 100644 --- a/src/main/java/train/client/render/models/ModelGrain.java +++ b/src/main/java/train/client/render/models/ModelGrain.java @@ -1,7 +1,7 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; import train.common.core.handlers.ConfigHandler; diff --git a/src/main/java/train/client/render/models/ModelGs4Bogie.java b/src/main/java/train/client/render/models/ModelGs4Bogie.java index 465ae81c88..0023b943bb 100644 --- a/src/main/java/train/client/render/models/ModelGs4Bogie.java +++ b/src/main/java/train/client/render/models/ModelGs4Bogie.java @@ -9,8 +9,8 @@ package train.client.render.models; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelGs4Bogie extends ModelConverter { diff --git a/src/main/java/train/client/render/models/ModelH1044.java b/src/main/java/train/client/render/models/ModelH1044.java index 5fa0710250..c8d5a37b24 100644 --- a/src/main/java/train/client/render/models/ModelH1044.java +++ b/src/main/java/train/client/render/models/ModelH1044.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelHBC1C.java b/src/main/java/train/client/render/models/ModelHBC1C.java index 562adb337c..a0a145c5b8 100644 --- a/src/main/java/train/client/render/models/ModelHBC1C.java +++ b/src/main/java/train/client/render/models/ModelHBC1C.java @@ -14,9 +14,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelHH660.java b/src/main/java/train/client/render/models/ModelHH660.java index 18a4500410..4866f9d44d 100644 --- a/src/main/java/train/client/render/models/ModelHH660.java +++ b/src/main/java/train/client/render/models/ModelHH660.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelHTSCTruck.java b/src/main/java/train/client/render/models/ModelHTSCTruck.java index a32dd12a11..f369512719 100644 --- a/src/main/java/train/client/render/models/ModelHTSCTruck.java +++ b/src/main/java/train/client/render/models/ModelHTSCTruck.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelHTSCTruck extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelHallClass.java b/src/main/java/train/client/render/models/ModelHallClass.java index f379de00df..b4640d6e5c 100644 --- a/src/main/java/train/client/render/models/ModelHallClass.java +++ b/src/main/java/train/client/render/models/ModelHallClass.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located import net.minecraft.entity.Entity; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelHallClass extends ModelConverter //Same as Filename diff --git a/src/main/java/train/client/render/models/ModelHeavySteamLoco.java b/src/main/java/train/client/render/models/ModelHeavySteamLoco.java index 8ed971012a..5fc4f530b4 100644 --- a/src/main/java/train/client/render/models/ModelHeavySteamLoco.java +++ b/src/main/java/train/client/render/models/ModelHeavySteamLoco.java @@ -1,7 +1,7 @@ package train.client.render.models; //loco import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; //import src.train.common.core.handlers.ConfigHandler; diff --git a/src/main/java/train/client/render/models/ModelHeavyweight.java b/src/main/java/train/client/render/models/ModelHeavyweight.java index c4459b8687..798d9dde73 100644 --- a/src/main/java/train/client/render/models/ModelHeavyweight.java +++ b/src/main/java/train/client/render/models/ModelHeavyweight.java @@ -10,8 +10,8 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelHeavyweight extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelHeavyweightBaggage.java b/src/main/java/train/client/render/models/ModelHeavyweightBaggage.java index d9a7f42626..edcc17a820 100644 --- a/src/main/java/train/client/render/models/ModelHeavyweightBaggage.java +++ b/src/main/java/train/client/render/models/ModelHeavyweightBaggage.java @@ -12,9 +12,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.library.Info; public class ModelHeavyweightBaggage extends ModelBase diff --git a/src/main/java/train/client/render/models/ModelHeavyweightBogie.java b/src/main/java/train/client/render/models/ModelHeavyweightBogie.java index 6f32d87ce8..60d005b4a3 100644 --- a/src/main/java/train/client/render/models/ModelHeavyweightBogie.java +++ b/src/main/java/train/client/render/models/ModelHeavyweightBogie.java @@ -10,8 +10,8 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelHeavyweightBogie extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelHiAd.java b/src/main/java/train/client/render/models/ModelHiAd.java index db9faa7737..58e2b03ae7 100644 --- a/src/main/java/train/client/render/models/ModelHiAd.java +++ b/src/main/java/train/client/render/models/ModelHiAd.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelHiAd extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelHopper5201.java b/src/main/java/train/client/render/models/ModelHopper5201.java index 56974424af..7179199e19 100644 --- a/src/main/java/train/client/render/models/ModelHopper5201.java +++ b/src/main/java/train/client/render/models/ModelHopper5201.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.library.Info; public class ModelHopper5201 extends ModelConverter //Same as Filename diff --git a/src/main/java/train/client/render/models/ModelHopper6260.java b/src/main/java/train/client/render/models/ModelHopper6260.java index 65106e28d1..a942ef0686 100644 --- a/src/main/java/train/client/render/models/ModelHopper6260.java +++ b/src/main/java/train/client/render/models/ModelHopper6260.java @@ -14,9 +14,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.library.Info; public class ModelHopper6260 extends ModelConverter //Same as Filename diff --git a/src/main/java/train/client/render/models/ModelHopper_UK.java b/src/main/java/train/client/render/models/ModelHopper_UK.java index 576dc00abe..4508b57ecd 100644 --- a/src/main/java/train/client/render/models/ModelHopper_UK.java +++ b/src/main/java/train/client/render/models/ModelHopper_UK.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelHopper_UK extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelHuskyStack.java b/src/main/java/train/client/render/models/ModelHuskyStack.java index 285f9b20f1..f832822a80 100644 --- a/src/main/java/train/client/render/models/ModelHuskyStack.java +++ b/src/main/java/train/client/render/models/ModelHuskyStack.java @@ -12,9 +12,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.client.render.models.containers.Modelcontainer40; import train.common.entity.rollingStock.EntityFreightBapHuskyStack; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelHuskyStackWellcar.java b/src/main/java/train/client/render/models/ModelHuskyStackWellcar.java index 04fcd3d845..51aa2f084b 100644 --- a/src/main/java/train/client/render/models/ModelHuskyStackWellcar.java +++ b/src/main/java/train/client/render/models/ModelHuskyStackWellcar.java @@ -3,9 +3,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.client.render.models.containers.Modelcontainer40; import train.common.entity.rollingStock.HuskyStackWellcar; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelICE1.java b/src/main/java/train/client/render/models/ModelICE1.java index efa4343851..14420d56fd 100644 --- a/src/main/java/train/client/render/models/ModelICE1.java +++ b/src/main/java/train/client/render/models/ModelICE1.java @@ -2,8 +2,8 @@ import net.minecraft.entity.Entity; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelICE1 extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelICE1Passenger.java b/src/main/java/train/client/render/models/ModelICE1Passenger.java index 1648a63f1b..bd9be91025 100644 --- a/src/main/java/train/client/render/models/ModelICE1Passenger.java +++ b/src/main/java/train/client/render/models/ModelICE1Passenger.java @@ -1,8 +1,8 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelICE1Passenger extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelICE1Restaurant.java b/src/main/java/train/client/render/models/ModelICE1Restaurant.java index 6b8a65b7c0..a342ff5cb6 100644 --- a/src/main/java/train/client/render/models/ModelICE1Restaurant.java +++ b/src/main/java/train/client/render/models/ModelICE1Restaurant.java @@ -1,8 +1,8 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelICE1Restaurant extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelILMA.java b/src/main/java/train/client/render/models/ModelILMA.java index 76383abc51..3bb3cd6f98 100644 --- a/src/main/java/train/client/render/models/ModelILMA.java +++ b/src/main/java/train/client/render/models/ModelILMA.java @@ -11,8 +11,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelILMA extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelILMB.java b/src/main/java/train/client/render/models/ModelILMB.java index f73f5d2301..15784bcd78 100644 --- a/src/main/java/train/client/render/models/ModelILMB.java +++ b/src/main/java/train/client/render/models/ModelILMB.java @@ -11,8 +11,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelILMB extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelIceWagon.java b/src/main/java/train/client/render/models/ModelIceWagon.java index 007d8c9e24..e6c48f10e9 100644 --- a/src/main/java/train/client/render/models/ModelIceWagon.java +++ b/src/main/java/train/client/render/models/ModelIceWagon.java @@ -10,8 +10,8 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelIceWagon extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelInterurbanSeries100.java b/src/main/java/train/client/render/models/ModelInterurbanSeries100.java index 00ff5722c7..c7349b7421 100644 --- a/src/main/java/train/client/render/models/ModelInterurbanSeries100.java +++ b/src/main/java/train/client/render/models/ModelInterurbanSeries100.java @@ -11,8 +11,8 @@ package train.client.render.models; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelInterurbanSeries100 extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelJ50.java b/src/main/java/train/client/render/models/ModelJ50.java index 9acface9b0..073b33dbe9 100644 --- a/src/main/java/train/client/render/models/ModelJ50.java +++ b/src/main/java/train/client/render/models/ModelJ50.java @@ -13,8 +13,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelJ50 extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelJukeBox.java b/src/main/java/train/client/render/models/ModelJukeBox.java index 9b4ba3f343..00b121b63b 100644 --- a/src/main/java/train/client/render/models/ModelJukeBox.java +++ b/src/main/java/train/client/render/models/ModelJukeBox.java @@ -2,7 +2,7 @@ import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.core.ClientProxy; import train.client.render.CustomModelRenderer; import train.client.render.models.blocks.ModelLights; diff --git a/src/main/java/train/client/render/models/ModelKClassRailBox.java b/src/main/java/train/client/render/models/ModelKClassRailBox.java index 1aeccc8234..a10ed965da 100644 --- a/src/main/java/train/client/render/models/ModelKClassRailBox.java +++ b/src/main/java/train/client/render/models/ModelKClassRailBox.java @@ -12,9 +12,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.library.Info; public class ModelKClassRailBox extends ModelBase diff --git a/src/main/java/train/client/render/models/ModelKOF_III.java b/src/main/java/train/client/render/models/ModelKOF_III.java index de6a74cd9c..4007f972ae 100644 --- a/src/main/java/train/client/render/models/ModelKOF_III.java +++ b/src/main/java/train/client/render/models/ModelKOF_III.java @@ -11,8 +11,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelKOF_III extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelKOF_III_M.java b/src/main/java/train/client/render/models/ModelKOF_III_M.java index b4b2513f3a..5ef8cb43d0 100644 --- a/src/main/java/train/client/render/models/ModelKOF_III_M.java +++ b/src/main/java/train/client/render/models/ModelKOF_III_M.java @@ -11,8 +11,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelKOF_III_M extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelKVB_2300.java b/src/main/java/train/client/render/models/ModelKVB_2300.java index fe96d0753f..d0f2472e8d 100644 --- a/src/main/java/train/client/render/models/ModelKVB_2300.java +++ b/src/main/java/train/client/render/models/ModelKVB_2300.java @@ -12,8 +12,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelKVB_2300 extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelKVB_2300_B.java b/src/main/java/train/client/render/models/ModelKVB_2300_B.java index c7ee85313e..e7a0c18636 100644 --- a/src/main/java/train/client/render/models/ModelKVB_2300_B.java +++ b/src/main/java/train/client/render/models/ModelKVB_2300_B.java @@ -12,8 +12,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelKVB_2300_B extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelKingClass.java b/src/main/java/train/client/render/models/ModelKingClass.java index 4380377600..dd216dac6e 100644 --- a/src/main/java/train/client/render/models/ModelKingClass.java +++ b/src/main/java/train/client/render/models/ModelKingClass.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located import net.minecraft.entity.Entity; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelKingClass extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelKof.java b/src/main/java/train/client/render/models/ModelKof.java index b8e3605175..2a44313762 100644 --- a/src/main/java/train/client/render/models/ModelKof.java +++ b/src/main/java/train/client/render/models/ModelKof.java @@ -2,7 +2,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; public class ModelKof extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelKrautt.java b/src/main/java/train/client/render/models/ModelKrautt.java index fcc05121ce..f99be42c04 100644 --- a/src/main/java/train/client/render/models/ModelKrautt.java +++ b/src/main/java/train/client/render/models/ModelKrautt.java @@ -14,9 +14,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.library.Info; import java.util.ArrayList; diff --git a/src/main/java/train/client/render/models/ModelKrauttTrucc.java b/src/main/java/train/client/render/models/ModelKrauttTrucc.java index 5160dcea4f..38a9df6bea 100644 --- a/src/main/java/train/client/render/models/ModelKrauttTrucc.java +++ b/src/main/java/train/client/render/models/ModelKrauttTrucc.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelKrauttTrucc extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelLSSP7.java b/src/main/java/train/client/render/models/ModelLSSP7.java index 65574017b0..687a19a8e4 100644 --- a/src/main/java/train/client/render/models/ModelLSSP7.java +++ b/src/main/java/train/client/render/models/ModelLSSP7.java @@ -10,8 +10,8 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelLSSP7 extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelLUengine.java b/src/main/java/train/client/render/models/ModelLUengine.java index 3d1b3c5cfb..fa295e410b 100644 --- a/src/main/java/train/client/render/models/ModelLUengine.java +++ b/src/main/java/train/client/render/models/ModelLUengine.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelLUengine extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelLUpassenger.java b/src/main/java/train/client/render/models/ModelLUpassenger.java index e467534c16..dd68ae1464 100644 --- a/src/main/java/train/client/render/models/ModelLUpassenger.java +++ b/src/main/java/train/client/render/models/ModelLUpassenger.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelLUpassenger extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelLightCrane.java b/src/main/java/train/client/render/models/ModelLightCrane.java index bd4a254292..aa4e6d2bb6 100644 --- a/src/main/java/train/client/render/models/ModelLightCrane.java +++ b/src/main/java/train/client/render/models/ModelLightCrane.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.library.Info; public class ModelLightCrane extends ModelConverter //Same as Filename diff --git a/src/main/java/train/client/render/models/ModelLoco.java b/src/main/java/train/client/render/models/ModelLoco.java index b88175d519..d9fed863f1 100644 --- a/src/main/java/train/client/render/models/ModelLoco.java +++ b/src/main/java/train/client/render/models/ModelLoco.java @@ -2,7 +2,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; import train.common.core.handlers.ConfigHandler; diff --git a/src/main/java/train/client/render/models/ModelLoco3.java b/src/main/java/train/client/render/models/ModelLoco3.java index fa2feddb13..ecb7c5f06a 100644 --- a/src/main/java/train/client/render/models/ModelLoco3.java +++ b/src/main/java/train/client/render/models/ModelLoco3.java @@ -1,7 +1,7 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; import train.common.core.handlers.ConfigHandler; diff --git a/src/main/java/train/client/render/models/ModelLoco44TonSwitcher.java b/src/main/java/train/client/render/models/ModelLoco44TonSwitcher.java index fb2b1a5fd1..36f4e25c25 100644 --- a/src/main/java/train/client/render/models/ModelLoco44TonSwitcher.java +++ b/src/main/java/train/client/render/models/ModelLoco44TonSwitcher.java @@ -12,8 +12,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelLoco44TonSwitcher extends ModelConverter //Same as Filename { @@ -37,10 +37,10 @@ public void render(Entity entity, float f0, float f1, float f2, float f3, float for (ModelRendererTurbo mrt : bodyModel) { if (mrt.boxName.equals("lamp")) { Minecraft.getMinecraft().entityRenderer.disableLightmap(1D); - mrt.render(scale, false); + mrt.render(scale); Minecraft.getMinecraft().entityRenderer.enableLightmap(1D); } else { - mrt.render(scale, false); + mrt.render(scale); } } } diff --git a/src/main/java/train/client/render/models/ModelLocoAlice040.java b/src/main/java/train/client/render/models/ModelLocoAlice040.java index d4981e46b6..2127b130cf 100644 --- a/src/main/java/train/client/render/models/ModelLocoAlice040.java +++ b/src/main/java/train/client/render/models/ModelLocoAlice040.java @@ -9,8 +9,8 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelLocoAlice040 extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelLocoBR01_DB.java b/src/main/java/train/client/render/models/ModelLocoBR01_DB.java index 9961973c01..bc40d8d0ce 100644 --- a/src/main/java/train/client/render/models/ModelLocoBR01_DB.java +++ b/src/main/java/train/client/render/models/ModelLocoBR01_DB.java @@ -4,7 +4,7 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.core.ClientProxy; import train.client.render.CustomModelRenderer; import train.client.render.models.blocks.ModelRing; @@ -474,7 +474,7 @@ public ModelLocoBR01_DB() { public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { if (ClientProxy.isHoliday()) { - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, "textures/trains/locoBR01_DB_winter.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, "textures/trains/locoBR01_DB_winter.png")); } box.render(f5); diff --git a/src/main/java/train/client/render/models/ModelLocoBR80_DB.java b/src/main/java/train/client/render/models/ModelLocoBR80_DB.java index 6944f8438c..835439344d 100644 --- a/src/main/java/train/client/render/models/ModelLocoBR80_DB.java +++ b/src/main/java/train/client/render/models/ModelLocoBR80_DB.java @@ -4,7 +4,7 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.core.ClientProxy; import train.client.render.CustomModelRenderer; import train.client.render.models.blocks.ModelRing; @@ -445,7 +445,7 @@ public void render(Entity entity, float f, float f1, float f2, float f3, float f lastframe = now; if (ClientProxy.isHoliday()) { - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, "textures/trains/locoBR80_DB_winter.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, "textures/trains/locoBR80_DB_winter.png")); } body.render(f5); diff --git a/src/main/java/train/client/render/models/ModelLocoC41.java b/src/main/java/train/client/render/models/ModelLocoC41.java index 520b9e48bc..b901364889 100644 --- a/src/main/java/train/client/render/models/ModelLocoC41.java +++ b/src/main/java/train/client/render/models/ModelLocoC41.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelLocoC41 extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelLocoC41T.java b/src/main/java/train/client/render/models/ModelLocoC41T.java index c13da2ccf4..2eef860c4a 100644 --- a/src/main/java/train/client/render/models/ModelLocoC41T.java +++ b/src/main/java/train/client/render/models/ModelLocoC41T.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelLocoC41T extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelLocoC62Class.java b/src/main/java/train/client/render/models/ModelLocoC62Class.java index a0ea18b13f..6ad6d5a9ec 100644 --- a/src/main/java/train/client/render/models/ModelLocoC62Class.java +++ b/src/main/java/train/client/render/models/ModelLocoC62Class.java @@ -3,7 +3,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.core.ClientProxy; import train.client.render.CustomModelRenderer; import train.client.render.models.blocks.ModelRing; diff --git a/src/main/java/train/client/render/models/ModelLocoCD151.java b/src/main/java/train/client/render/models/ModelLocoCD151.java index 36dfc5dcc7..5fbdba6afe 100644 --- a/src/main/java/train/client/render/models/ModelLocoCD151.java +++ b/src/main/java/train/client/render/models/ModelLocoCD151.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.library.Info; public class ModelLocoCD151 extends ModelConverter //Same as Filename @@ -39,10 +39,10 @@ public void render(Entity entity, float f0, float f1, float f2, float f3, float for (ModelRendererTurbo mrt : bodyModel){ if(mrt.boxName.equals("lamp")){ Minecraft.getMinecraft().entityRenderer.disableLightmap(1D); - mrt.render(scale,false); + mrt.render(scale); Minecraft.getMinecraft().entityRenderer.enableLightmap(1D); } else { - mrt.render(scale,false); + mrt.render(scale); } } diff --git a/src/main/java/train/client/render/models/ModelLocoCherepanov.java b/src/main/java/train/client/render/models/ModelLocoCherepanov.java index 83b3200ebf..f833d91c2a 100644 --- a/src/main/java/train/client/render/models/ModelLocoCherepanov.java +++ b/src/main/java/train/client/render/models/ModelLocoCherepanov.java @@ -1,7 +1,7 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; import train.common.core.handlers.ConfigHandler; diff --git a/src/main/java/train/client/render/models/ModelLocoClimax.java b/src/main/java/train/client/render/models/ModelLocoClimax.java index f198c441d8..944d131fce 100644 --- a/src/main/java/train/client/render/models/ModelLocoClimax.java +++ b/src/main/java/train/client/render/models/ModelLocoClimax.java @@ -10,8 +10,8 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelLocoClimax extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelLocoDieselIC4_DSB_FG.java b/src/main/java/train/client/render/models/ModelLocoDieselIC4_DSB_FG.java index 2d4567515f..d1a267e4fd 100644 --- a/src/main/java/train/client/render/models/ModelLocoDieselIC4_DSB_FG.java +++ b/src/main/java/train/client/render/models/ModelLocoDieselIC4_DSB_FG.java @@ -11,589 +11,589 @@ package train.client.render.models; -import net.minecraft.client.model.ModelRenderer; +import fexcraft.tmt.slim.ModelRendererTurbo; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; public class ModelLocoDieselIC4_DSB_FG extends ModelBase { //fields - ModelRenderer Left1; - ModelRenderer Left2; - ModelRenderer Left3; - ModelRenderer Floor1; - ModelRenderer Floor2; - ModelRenderer Ceiling; - ModelRenderer Right1; - ModelRenderer Right2; - ModelRenderer Right3; - ModelRenderer WallToCab; - ModelRenderer MiddleWall1; - ModelRenderer MiddleWall2; - ModelRenderer BackWall; - ModelRenderer Wheels1; - ModelRenderer Wheels2; - ModelRenderer Seats1; - ModelRenderer Seats2; - ModelRenderer Seats3; - ModelRenderer Seats4; - ModelRenderer Seats5; - ModelRenderer Seats6; - ModelRenderer Seats7; - ModelRenderer Seats8; - ModelRenderer Seats9; - ModelRenderer Seats10; - ModelRenderer Seats11; - ModelRenderer Seats12; - ModelRenderer Seats13; - ModelRenderer Seats14; - ModelRenderer Seats15; - ModelRenderer Seats16; - ModelRenderer Seats17; - ModelRenderer Seats18; - ModelRenderer Seats19; - ModelRenderer Seats20; - ModelRenderer Seats21; - ModelRenderer Seats22; - ModelRenderer Seats23; - ModelRenderer Seats24; - ModelRenderer Seats25; - ModelRenderer Seats26; - ModelRenderer Seats27; - ModelRenderer Seats28; - ModelRenderer Seats29; - ModelRenderer Seats30; - ModelRenderer Seats31; - ModelRenderer Seats32; - ModelRenderer Seats33; - ModelRenderer Seats34; - ModelRenderer Seats35; - ModelRenderer Seats36; - ModelRenderer Seats37; - ModelRenderer Seats38; - ModelRenderer Seats39; - ModelRenderer Seats40; - ModelRenderer Seats41; - ModelRenderer Seats42; - ModelRenderer Seats43; - ModelRenderer Seats44; - ModelRenderer Seats45; - ModelRenderer Seats46; - ModelRenderer Seats47; - ModelRenderer Seats48; - ModelRenderer Right4; - ModelRenderer Left4; - ModelRenderer Bottom; - ModelRenderer TranConnector1; - ModelRenderer TranConnector2; - ModelRenderer TranConnector3; - ModelRenderer TranConnector4; - ModelRenderer TrainConnector5; - ModelRenderer TrainConnector6; - ModelRenderer TrainConnector7; - ModelRenderer TrainConnector8; - ModelRenderer TrainConnector9; - ModelRenderer TrainConnector10; - ModelRenderer TranConnector11; - ModelRenderer TranConnector12; - ModelRenderer TrainConnector13; - ModelRenderer TrainConnector14; - ModelRenderer TranConnector15; - ModelRenderer TranConnector16; + ModelRendererTurbo Left1; + ModelRendererTurbo Left2; + ModelRendererTurbo Left3; + ModelRendererTurbo Floor1; + ModelRendererTurbo Floor2; + ModelRendererTurbo Ceiling; + ModelRendererTurbo Right1; + ModelRendererTurbo Right2; + ModelRendererTurbo Right3; + ModelRendererTurbo WallToCab; + ModelRendererTurbo MiddleWall1; + ModelRendererTurbo MiddleWall2; + ModelRendererTurbo BackWall; + ModelRendererTurbo Wheels1; + ModelRendererTurbo Wheels2; + ModelRendererTurbo Seats1; + ModelRendererTurbo Seats2; + ModelRendererTurbo Seats3; + ModelRendererTurbo Seats4; + ModelRendererTurbo Seats5; + ModelRendererTurbo Seats6; + ModelRendererTurbo Seats7; + ModelRendererTurbo Seats8; + ModelRendererTurbo Seats9; + ModelRendererTurbo Seats10; + ModelRendererTurbo Seats11; + ModelRendererTurbo Seats12; + ModelRendererTurbo Seats13; + ModelRendererTurbo Seats14; + ModelRendererTurbo Seats15; + ModelRendererTurbo Seats16; + ModelRendererTurbo Seats17; + ModelRendererTurbo Seats18; + ModelRendererTurbo Seats19; + ModelRendererTurbo Seats20; + ModelRendererTurbo Seats21; + ModelRendererTurbo Seats22; + ModelRendererTurbo Seats23; + ModelRendererTurbo Seats24; + ModelRendererTurbo Seats25; + ModelRendererTurbo Seats26; + ModelRendererTurbo Seats27; + ModelRendererTurbo Seats28; + ModelRendererTurbo Seats29; + ModelRendererTurbo Seats30; + ModelRendererTurbo Seats31; + ModelRendererTurbo Seats32; + ModelRendererTurbo Seats33; + ModelRendererTurbo Seats34; + ModelRendererTurbo Seats35; + ModelRendererTurbo Seats36; + ModelRendererTurbo Seats37; + ModelRendererTurbo Seats38; + ModelRendererTurbo Seats39; + ModelRendererTurbo Seats40; + ModelRendererTurbo Seats41; + ModelRendererTurbo Seats42; + ModelRendererTurbo Seats43; + ModelRendererTurbo Seats44; + ModelRendererTurbo Seats45; + ModelRendererTurbo Seats46; + ModelRendererTurbo Seats47; + ModelRendererTurbo Seats48; + ModelRendererTurbo Right4; + ModelRendererTurbo Left4; + ModelRendererTurbo Bottom; + ModelRendererTurbo TranConnector1; + ModelRendererTurbo TranConnector2; + ModelRendererTurbo TranConnector3; + ModelRendererTurbo TranConnector4; + ModelRendererTurbo TrainConnector5; + ModelRendererTurbo TrainConnector6; + ModelRendererTurbo TrainConnector7; + ModelRendererTurbo TrainConnector8; + ModelRendererTurbo TrainConnector9; + ModelRendererTurbo TrainConnector10; + ModelRendererTurbo TranConnector11; + ModelRendererTurbo TranConnector12; + ModelRendererTurbo TrainConnector13; + ModelRendererTurbo TrainConnector14; + ModelRendererTurbo TranConnector15; + ModelRendererTurbo TranConnector16; public ModelLocoDieselIC4_DSB_FG() { textureWidth = 256; textureHeight = 256; - Left1 = new ModelRenderer(this, 202, 0); + Left1 = new ModelRendererTurbo(this, 202, 0); Left1.addBox(0F, 0F, 0F, 2, 111, 6); Left1.setRotationPoint(9F, 18F, -1F); Left1.setTextureSize(256, 256); Left1.mirror = true; setRotation(Left1, 1.570796F, 0F, 0.2230717F); - Left2 = new ModelRenderer(this, 111, 0); + Left2 = new ModelRendererTurbo(this, 111, 0); Left2.addBox(0F, 0F, 0F, 2, 111, 15); Left2.setRotationPoint(10.1F, 13F, -1F); Left2.setTextureSize(256, 256); Left2.mirror = true; setRotation(Left2, 1.570796F, 0F, 0F); - Left3 = new ModelRenderer(this, 146, 0); + Left3 = new ModelRendererTurbo(this, 146, 0); Left3.addBox(0F, 0F, 0F, 2, 111, 6); Left3.setRotationPoint(10.25F, -1F, -1F); Left3.setTextureSize(256, 256); Left3.mirror = true; setRotation(Left3, 1.570796F, 0F, -0.2230717F); - Floor1 = new ModelRenderer(this, 0, 0); + Floor1 = new ModelRendererTurbo(this, 0, 0); Floor1.addBox(0F, 0F, 0F, 20, 117, 1); Floor1.setRotationPoint(-10F, 18F, -4F); Floor1.setTextureSize(256, 256); Floor1.mirror = true; setRotation(Floor1, 1.570796F, 0F, 0F); - Floor2 = new ModelRenderer(this, 25, 125); + Floor2 = new ModelRendererTurbo(this, 25, 125); Floor2.addBox(0F, 0F, 0F, 21, 117, 1); Floor2.setRotationPoint(-10F, 14F, -4F); Floor2.setTextureSize(256, 256); Floor2.mirror = true; setRotation(Floor2, 1.570796F, 0F, 0F); - Ceiling = new ModelRenderer(this, 163, 0); + Ceiling = new ModelRendererTurbo(this, 163, 0); Ceiling.addBox(0F, 0F, 0F, 18, 111, 1); Ceiling.setRotationPoint(-8F, -6F, -1F); Ceiling.setTextureSize(256, 256); Ceiling.mirror = true; setRotation(Ceiling, 1.570796F, 0F, 0F); - Right1 = new ModelRenderer(this, 59, 0); + Right1 = new ModelRendererTurbo(this, 59, 0); Right1.addBox(0F, 0F, 0F, 2, 111, 6); Right1.setRotationPoint(-10F, 18.3F, -1F); Right1.setTextureSize(256, 256); Right1.mirror = true; setRotation(Right1, 1.570796F, 0F, -0.2230717F); - Right2 = new ModelRenderer(this, 76, 0); + Right2 = new ModelRendererTurbo(this, 76, 0); Right2.addBox(0F, 0F, 0F, 2, 111, 15); Right2.setRotationPoint(-11.2F, 13F, -1F); Right2.setTextureSize(256, 256); Right2.mirror = true; setRotation(Right2, 1.570796F, 0F, 0F); - Right3 = new ModelRenderer(this, 42, 0); + Right3 = new ModelRendererTurbo(this, 42, 0); Right3.addBox(0F, 0F, 0F, 2, 111, 6); Right3.setRotationPoint(-11F, -2F, -1F); Right3.setTextureSize(256, 256); Right3.mirror = true; setRotation(Right3, 1.570796F, 0F, 0.3346075F); - WallToCab = new ModelRenderer(this, 196, 234); + WallToCab = new ModelRendererTurbo(this, 196, 234); WallToCab.addBox(0F, 0F, 0F, 20, 20, 1); WallToCab.setRotationPoint(-10F, -6F, 0F); WallToCab.setTextureSize(256, 256); WallToCab.mirror = true; setRotation(WallToCab, 0F, 0F, 0F); - MiddleWall1 = new ModelRenderer(this, 196, 212); + MiddleWall1 = new ModelRendererTurbo(this, 196, 212); MiddleWall1.addBox(0F, 0F, 0F, 20, 20, 1); MiddleWall1.setRotationPoint(-10F, -6F, 68F); MiddleWall1.setTextureSize(256, 256); MiddleWall1.mirror = true; setRotation(MiddleWall1, 0F, 0F, 0F); - MiddleWall2 = new ModelRenderer(this, 196, 168); + MiddleWall2 = new ModelRendererTurbo(this, 196, 168); MiddleWall2.addBox(0F, 0F, 0F, 20, 20, 1); MiddleWall2.setRotationPoint(-9F, -6F, 48F); MiddleWall2.setTextureSize(256, 256); MiddleWall2.mirror = true; setRotation(MiddleWall2, 0F, 0F, 0F); - BackWall = new ModelRenderer(this, 196, 190); + BackWall = new ModelRendererTurbo(this, 196, 190); BackWall.addBox(0F, 0F, 0F, 21, 20, 1); BackWall.setRotationPoint(-10F, -6F, 108F); BackWall.setTextureSize(256, 256); BackWall.mirror = true; setRotation(BackWall, 0F, 0F, 0F); - Wheels1 = new ModelRenderer(this, 124, 186); + Wheels1 = new ModelRendererTurbo(this, 124, 186); Wheels1.addBox(0F, 0F, 0F, 6, 21, 10); Wheels1.setRotationPoint(11F, 18F, -5F); Wheels1.setTextureSize(256, 256); Wheels1.mirror = true; setRotation(Wheels1, 0F, 0F, 1.570796F); - Wheels2 = new ModelRenderer(this, 134, 151); + Wheels2 = new ModelRendererTurbo(this, 134, 151); Wheels2.addBox(0F, 0F, 0F, 6, 21, 11); Wheels2.setRotationPoint(11F, 18F, 104F); Wheels2.setTextureSize(256, 256); Wheels2.mirror = true; setRotation(Wheels2, 0F, 0F, 1.570796F); - Seats1 = new ModelRenderer(this, 136, 148); + Seats1 = new ModelRendererTurbo(this, 136, 148); Seats1.addBox(0F, 0F, 0F, 7, 2, 1); Seats1.setRotationPoint(-9F, 12F, 11F); Seats1.setTextureSize(256, 256); Seats1.mirror = true; setRotation(Seats1, 0F, 0F, 0F); - Seats2 = new ModelRenderer(this, 136, 148); + Seats2 = new ModelRendererTurbo(this, 136, 148); Seats2.addBox(0F, 0F, 0F, 7, 2, 1); Seats2.setRotationPoint(3F, 12F, 11F); Seats2.setTextureSize(256, 256); Seats2.mirror = true; setRotation(Seats2, 0F, 0F, 0F); - Seats3 = new ModelRenderer(this, 136, 148); + Seats3 = new ModelRendererTurbo(this, 136, 148); Seats3.addBox(0F, 0F, 0F, 7, 2, 1); Seats3.setRotationPoint(-9F, 12F, 20F); Seats3.setTextureSize(256, 256); Seats3.mirror = true; setRotation(Seats3, 0F, 0F, 0F); - Seats4 = new ModelRenderer(this, 136, 148); + Seats4 = new ModelRendererTurbo(this, 136, 148); Seats4.addBox(0F, 0F, 0F, 7, 2, 1); Seats4.setRotationPoint(3F, 12F, 20F); Seats4.setTextureSize(256, 256); Seats4.mirror = true; setRotation(Seats4, 0F, 0F, 0F); - Seats5 = new ModelRenderer(this, 136, 148); + Seats5 = new ModelRendererTurbo(this, 136, 148); Seats5.addBox(0F, 0F, 0F, 7, 2, 1); Seats5.setRotationPoint(-9F, 12F, 30F); Seats5.setTextureSize(256, 256); Seats5.mirror = true; setRotation(Seats5, 0F, 0F, 0F); - Seats6 = new ModelRenderer(this, 136, 148); + Seats6 = new ModelRendererTurbo(this, 136, 148); Seats6.addBox(0F, 0F, 0F, 7, 2, 1); Seats6.setRotationPoint(3F, 12F, 30F); Seats6.setTextureSize(256, 256); Seats6.mirror = true; setRotation(Seats6, 0F, 0F, 0F); - Seats7 = new ModelRenderer(this, 136, 148); + Seats7 = new ModelRendererTurbo(this, 136, 148); Seats7.addBox(0F, 0F, 0F, 7, 2, 1); Seats7.setRotationPoint(-9F, 12F, 40F); Seats7.setTextureSize(256, 256); Seats7.mirror = true; setRotation(Seats7, 0F, 0F, 0F); - Seats8 = new ModelRenderer(this, 136, 148); + Seats8 = new ModelRendererTurbo(this, 136, 148); Seats8.addBox(0F, 0F, 0F, 7, 2, 1); Seats8.setRotationPoint(3F, 12F, 40F); Seats8.setTextureSize(256, 256); Seats8.mirror = true; setRotation(Seats8, 0F, 0F, 0F); - Seats9 = new ModelRenderer(this, 136, 148); + Seats9 = new ModelRendererTurbo(this, 136, 148); Seats9.addBox(0F, 0F, 0F, 7, 2, 1); Seats9.setRotationPoint(3F, 12F, 70F); Seats9.setTextureSize(256, 256); Seats9.mirror = true; setRotation(Seats9, 0F, 0F, 0F); - Seats10 = new ModelRenderer(this, 136, 148); + Seats10 = new ModelRendererTurbo(this, 136, 148); Seats10.addBox(0F, 0F, 0F, 7, 2, 1); Seats10.setRotationPoint(-9F, 12F, 70F); Seats10.setTextureSize(256, 256); Seats10.mirror = true; setRotation(Seats10, 0F, 0F, 0F); - Seats11 = new ModelRenderer(this, 136, 148); + Seats11 = new ModelRendererTurbo(this, 136, 148); Seats11.addBox(0F, 0F, 0F, 7, 2, 1); Seats11.setRotationPoint(-9F, 12F, 80F); Seats11.setTextureSize(256, 256); Seats11.mirror = true; setRotation(Seats11, 0F, 0F, 0F); - Seats12 = new ModelRenderer(this, 136, 148); + Seats12 = new ModelRendererTurbo(this, 136, 148); Seats12.addBox(0F, 0F, 0F, 7, 2, 1); Seats12.setRotationPoint(3F, 12F, 80F); Seats12.setTextureSize(256, 256); Seats12.mirror = true; setRotation(Seats12, 0F, 0F, 0F); - Seats13 = new ModelRenderer(this, 136, 148); + Seats13 = new ModelRendererTurbo(this, 136, 148); Seats13.addBox(0F, 0F, 0F, 7, 2, 1); Seats13.setRotationPoint(3F, 12F, 90F); Seats13.setTextureSize(256, 256); Seats13.mirror = true; setRotation(Seats13, 0F, 0F, 0F); - Seats14 = new ModelRenderer(this, 136, 148); + Seats14 = new ModelRendererTurbo(this, 136, 148); Seats14.addBox(0F, 0F, 0F, 7, 2, 1); Seats14.setRotationPoint(-9F, 12F, 90F); Seats14.setTextureSize(256, 256); Seats14.mirror = true; setRotation(Seats14, 0F, 0F, 0F); - Seats15 = new ModelRenderer(this, 136, 148); + Seats15 = new ModelRendererTurbo(this, 136, 148); Seats15.addBox(0F, 0F, 0F, 7, 2, 1); Seats15.setRotationPoint(3F, 12F, 100F); Seats15.setTextureSize(256, 256); Seats15.mirror = true; setRotation(Seats15, 0F, 0F, 0F); - Seats16 = new ModelRenderer(this, 136, 148); + Seats16 = new ModelRendererTurbo(this, 136, 148); Seats16.addBox(0F, 0F, 0F, 7, 2, 1); Seats16.setRotationPoint(-9F, 12F, 100F); Seats16.setTextureSize(256, 256); Seats16.mirror = true; setRotation(Seats16, 0F, 0F, 0F); - Seats17 = new ModelRenderer(this, 136, 134); + Seats17 = new ModelRendererTurbo(this, 136, 134); Seats17.addBox(0F, 0F, 0F, 1, 7, 3); Seats17.setRotationPoint(10F, 11F, 11F); Seats17.setTextureSize(256, 256); Seats17.mirror = true; setRotation(Seats17, 0F, 0F, 1.570796F); - Seats18 = new ModelRenderer(this, 136, 134); + Seats18 = new ModelRendererTurbo(this, 136, 134); Seats18.addBox(0F, 0F, 0F, 1, 7, 3); Seats18.setRotationPoint(-2F, 11F, 11F); Seats18.setTextureSize(256, 256); Seats18.mirror = true; setRotation(Seats18, 0F, 0F, 1.570796F); - Seats19 = new ModelRenderer(this, 136, 134); + Seats19 = new ModelRendererTurbo(this, 136, 134); Seats19.addBox(0F, 0F, 0F, 1, 7, 3); Seats19.setRotationPoint(-2F, 11F, 70F); Seats19.setTextureSize(256, 256); Seats19.mirror = true; setRotation(Seats19, 0F, 0F, 1.570796F); - Seats20 = new ModelRenderer(this, 136, 134); + Seats20 = new ModelRendererTurbo(this, 136, 134); Seats20.addBox(0F, 0F, 0F, 1, 7, 3); Seats20.setRotationPoint(10F, 11F, 70F); Seats20.setTextureSize(256, 256); Seats20.mirror = true; setRotation(Seats20, 0F, 0F, 1.570796F); - Seats21 = new ModelRenderer(this, 136, 120); + Seats21 = new ModelRendererTurbo(this, 136, 120); Seats21.addBox(0F, 0F, 0F, 1, 7, 5); Seats21.setRotationPoint(-2F, 11F, 18F); Seats21.setTextureSize(256, 256); Seats21.mirror = true; setRotation(Seats21, 0F, 0F, 1.570796F); - Seats22 = new ModelRenderer(this, 136, 120); + Seats22 = new ModelRendererTurbo(this, 136, 120); Seats22.addBox(0F, 0F, 0F, 1, 7, 5); Seats22.setRotationPoint(10F, 11F, 18F); Seats22.setTextureSize(256, 256); Seats22.mirror = true; setRotation(Seats22, 0F, 0F, 1.570796F); - Seats23 = new ModelRenderer(this, 136, 120); + Seats23 = new ModelRendererTurbo(this, 136, 120); Seats23.addBox(0F, 0F, 0F, 1, 7, 5); Seats23.setRotationPoint(10F, 11F, 28F); Seats23.setTextureSize(256, 256); Seats23.mirror = true; setRotation(Seats23, 0F, 0F, 1.570796F); - Seats24 = new ModelRenderer(this, 136, 120); + Seats24 = new ModelRendererTurbo(this, 136, 120); Seats24.addBox(0F, 0F, 0F, 1, 7, 5); Seats24.setRotationPoint(-2F, 11F, 28F); Seats24.setTextureSize(256, 256); Seats24.mirror = true; setRotation(Seats24, 0F, 0F, 1.570796F); - Seats25 = new ModelRenderer(this, 136, 120); + Seats25 = new ModelRendererTurbo(this, 136, 120); Seats25.addBox(0F, 0F, 0F, 1, 7, 5); Seats25.setRotationPoint(-2F, 11F, 38F); Seats25.setTextureSize(256, 256); Seats25.mirror = true; setRotation(Seats25, 0F, 0F, 1.570796F); - Seats26 = new ModelRenderer(this, 136, 120); + Seats26 = new ModelRendererTurbo(this, 136, 120); Seats26.addBox(0F, 0F, 0F, 1, 7, 5); Seats26.setRotationPoint(10F, 11F, 78F); Seats26.setTextureSize(256, 256); Seats26.mirror = true; setRotation(Seats26, 0F, 0F, 1.570796F); - Seats27 = new ModelRenderer(this, 136, 120); + Seats27 = new ModelRendererTurbo(this, 136, 120); Seats27.addBox(0F, 0F, 0F, 1, 7, 5); Seats27.setRotationPoint(-2F, 11F, 78F); Seats27.setTextureSize(256, 256); Seats27.mirror = true; setRotation(Seats27, 0F, 0F, 1.570796F); - Seats28 = new ModelRenderer(this, 136, 120); + Seats28 = new ModelRendererTurbo(this, 136, 120); Seats28.addBox(0F, 0F, 0F, 1, 7, 5); Seats28.setRotationPoint(-2F, 11F, 88F); Seats28.setTextureSize(256, 256); Seats28.mirror = true; setRotation(Seats28, 0F, 0F, 1.570796F); - Seats29 = new ModelRenderer(this, 138, 120); + Seats29 = new ModelRendererTurbo(this, 138, 120); Seats29.addBox(0F, 0F, 0F, 1, 7, 5); Seats29.setRotationPoint(10F, 11F, 88F); Seats29.setTextureSize(256, 256); Seats29.mirror = true; setRotation(Seats29, 0F, 0F, 1.570796F); - Seats30 = new ModelRenderer(this, 136, 120); + Seats30 = new ModelRendererTurbo(this, 136, 120); Seats30.addBox(0F, 0F, 0F, 1, 7, 5); Seats30.setRotationPoint(-2F, 11F, 98F); Seats30.setTextureSize(256, 256); Seats30.mirror = true; setRotation(Seats30, 0F, 0F, 1.570796F); - Seats31 = new ModelRenderer(this, 136, 120); + Seats31 = new ModelRendererTurbo(this, 136, 120); Seats31.addBox(0F, 0F, 0F, 1, 7, 5); Seats31.setRotationPoint(10F, 11F, 98F); Seats31.setTextureSize(256, 256); Seats31.mirror = true; setRotation(Seats31, 0F, 0F, 1.570796F); - Seats32 = new ModelRenderer(this, 178, 223); + Seats32 = new ModelRendererTurbo(this, 178, 223); Seats32.addBox(0F, 0F, 0F, 7, 5, 1); Seats32.setRotationPoint(3F, 6F, 11F); Seats32.setTextureSize(256, 256); Seats32.mirror = true; setRotation(Seats32, 0F, 0F, 0F); - Seats33 = new ModelRenderer(this, 178, 223); + Seats33 = new ModelRendererTurbo(this, 178, 223); Seats33.addBox(0F, 0F, 0F, 7, 5, 1); Seats33.setRotationPoint(-9F, 6F, 11F); Seats33.setTextureSize(256, 256); Seats33.mirror = true; setRotation(Seats33, 0F, 0F, 0F); - Seats34 = new ModelRenderer(this, 178, 216); + Seats34 = new ModelRendererTurbo(this, 178, 216); Seats34.addBox(0F, 0F, 0F, 7, 5, 1); Seats34.setRotationPoint(-9F, 6F, 20F); Seats34.setTextureSize(256, 256); Seats34.mirror = true; setRotation(Seats34, 0F, 0F, 0F); - Seats35 = new ModelRenderer(this, 178, 216); + Seats35 = new ModelRendererTurbo(this, 178, 216); Seats35.addBox(0F, 0F, 0F, 7, 5, 1); Seats35.setRotationPoint(3F, 6F, 20F); Seats35.setTextureSize(256, 256); Seats35.mirror = true; setRotation(Seats35, 0F, 0F, 0F); - Seats36 = new ModelRenderer(this, 178, 216); + Seats36 = new ModelRendererTurbo(this, 178, 216); Seats36.addBox(0F, 0F, 0F, 7, 5, 1); Seats36.setRotationPoint(-9F, 6F, 30F); Seats36.setTextureSize(256, 256); Seats36.mirror = true; setRotation(Seats36, 0F, 0F, 0F); - Seats37 = new ModelRenderer(this, 178, 216); + Seats37 = new ModelRendererTurbo(this, 178, 216); Seats37.addBox(0F, 0F, 0F, 7, 5, 1); Seats37.setRotationPoint(3F, 6F, 30F); Seats37.setTextureSize(256, 256); Seats37.mirror = true; setRotation(Seats37, 0F, 0F, 0F); - Seats38 = new ModelRenderer(this, 136, 120); + Seats38 = new ModelRendererTurbo(this, 136, 120); Seats38.addBox(0F, 0F, 0F, 1, 7, 5); Seats38.setRotationPoint(10F, 11F, 38F); Seats38.setTextureSize(256, 256); Seats38.mirror = true; setRotation(Seats38, 0F, 0F, 1.570796F); - Seats39 = new ModelRenderer(this, 178, 216); + Seats39 = new ModelRendererTurbo(this, 178, 216); Seats39.addBox(0F, 0F, 0F, 7, 5, 1); Seats39.setRotationPoint(-9F, 6F, 40F); Seats39.setTextureSize(256, 256); Seats39.mirror = true; setRotation(Seats39, 0F, 0F, 0F); - Seats40 = new ModelRenderer(this, 178, 216); + Seats40 = new ModelRendererTurbo(this, 178, 216); Seats40.addBox(0F, 0F, 0F, 7, 5, 1); Seats40.setRotationPoint(3F, 6F, 40F); Seats40.setTextureSize(256, 256); Seats40.mirror = true; setRotation(Seats40, 0F, 0F, 0F); - Seats41 = new ModelRenderer(this, 178, 223); + Seats41 = new ModelRendererTurbo(this, 178, 223); Seats41.addBox(0F, 0F, 0F, 7, 5, 1); Seats41.setRotationPoint(-9F, 6F, 70F); Seats41.setTextureSize(256, 256); Seats41.mirror = true; setRotation(Seats41, 0F, 0F, 0F); - Seats42 = new ModelRenderer(this, 178, 223); + Seats42 = new ModelRendererTurbo(this, 178, 223); Seats42.addBox(0F, 0F, 0F, 7, 5, 1); Seats42.setRotationPoint(3F, 6F, 70F); Seats42.setTextureSize(256, 256); Seats42.mirror = true; setRotation(Seats42, 0F, 0F, 0F); - Seats43 = new ModelRenderer(this, 178, 216); + Seats43 = new ModelRendererTurbo(this, 178, 216); Seats43.addBox(0F, 0F, 0F, 7, 5, 1); Seats43.setRotationPoint(-9F, 6F, 80F); Seats43.setTextureSize(256, 256); Seats43.mirror = true; setRotation(Seats43, 0F, 0F, 0F); - Seats44 = new ModelRenderer(this, 178, 216); + Seats44 = new ModelRendererTurbo(this, 178, 216); Seats44.addBox(0F, 0F, 0F, 7, 5, 1); Seats44.setRotationPoint(3F, 6F, 80F); Seats44.setTextureSize(256, 256); Seats44.mirror = true; setRotation(Seats44, 0F, 0F, 0F); - Seats45 = new ModelRenderer(this, 178, 216); + Seats45 = new ModelRendererTurbo(this, 178, 216); Seats45.addBox(0F, 0F, 0F, 7, 5, 1); Seats45.setRotationPoint(-9F, 6F, 90F); Seats45.setTextureSize(256, 256); Seats45.mirror = true; setRotation(Seats45, 0F, 0F, 0F); - Seats46 = new ModelRenderer(this, 178, 216); + Seats46 = new ModelRendererTurbo(this, 178, 216); Seats46.addBox(0F, 0F, 0F, 7, 5, 1); Seats46.setRotationPoint(3F, 6F, 90F); Seats46.setTextureSize(256, 256); Seats46.mirror = true; setRotation(Seats46, 0F, 0F, 0F); - Seats47 = new ModelRenderer(this, 178, 216); + Seats47 = new ModelRendererTurbo(this, 178, 216); Seats47.addBox(0F, 0F, 0F, 7, 5, 1); Seats47.setRotationPoint(-9F, 6F, 100F); Seats47.setTextureSize(256, 256); Seats47.mirror = true; setRotation(Seats47, 0F, 0F, 0F); - Seats48 = new ModelRenderer(this, 178, 216); + Seats48 = new ModelRendererTurbo(this, 178, 216); Seats48.addBox(0F, 0F, 0F, 7, 5, 1); Seats48.setRotationPoint(3F, 6F, 100F); Seats48.setTextureSize(256, 256); Seats48.mirror = true; setRotation(Seats48, 0F, 0F, 0F); - Right4 = new ModelRenderer(this, 172, 128); + Right4 = new ModelRendererTurbo(this, 172, 128); Right4.addBox(0F, 0F, 0F, 1, 97, 4); Right4.setRotationPoint(-9F, 22F, 6F); Right4.setTextureSize(256, 256); Right4.mirror = true; setRotation(Right4, 1.570796F, 0F, -0.2974289F); - Left4 = new ModelRenderer(this, 246, 146); + Left4 = new ModelRendererTurbo(this, 246, 146); Left4.addBox(0F, 0F, 0F, 1, 97, 4); Left4.setRotationPoint(9F, 22F, 6F); Left4.setTextureSize(256, 256); Left4.mirror = true; setRotation(Left4, 1.570796F, 0F, 0.2974289F); - Bottom = new ModelRenderer(this, 220, 0); + Bottom = new ModelRendererTurbo(this, 220, 0); Bottom.addBox(0F, 0F, 0F, 17, 95, 1); Bottom.setRotationPoint(-8F, 22F, 6F); Bottom.setTextureSize(256, 256); Bottom.mirror = true; setRotation(Bottom, 1.570796F, 0F, 0F); - TranConnector1 = new ModelRenderer(this, 0, 114); + TranConnector1 = new ModelRendererTurbo(this, 0, 114); TranConnector1.addBox(0F, 0F, 0F, 2, 16, 3); TranConnector1.setRotationPoint(-11F, -2F, -4F); TranConnector1.setTextureSize(256, 256); TranConnector1.mirror = true; setRotation(TranConnector1, 0F, 0F, 0F); - TranConnector2 = new ModelRenderer(this, 0, 114); + TranConnector2 = new ModelRendererTurbo(this, 0, 114); TranConnector2.addBox(0F, 0F, 0F, 2, 16, 3); TranConnector2.setRotationPoint(9.5F, -2F, -4F); TranConnector2.setTextureSize(256, 256); TranConnector2.mirror = true; setRotation(TranConnector2, 0F, 0F, 0F); - TranConnector3 = new ModelRenderer(this, 0, 114); + TranConnector3 = new ModelRendererTurbo(this, 0, 114); TranConnector3.addBox(0F, 0F, 0F, 2, 16, 3); TranConnector3.setRotationPoint(-11F, -2F, 110F); TranConnector3.setTextureSize(256, 256); TranConnector3.mirror = true; setRotation(TranConnector3, 0F, 0F, 0F); - TranConnector4 = new ModelRenderer(this, 0, 114); + TranConnector4 = new ModelRendererTurbo(this, 0, 114); TranConnector4.addBox(0F, 0F, 0F, 2, 16, 3); TranConnector4.setRotationPoint(9.5F, -2F, 110F); TranConnector4.setTextureSize(256, 256); TranConnector4.mirror = true; setRotation(TranConnector4, 0F, 0F, 0F); - TrainConnector5 = new ModelRenderer(this, 0, 134); + TrainConnector5 = new ModelRendererTurbo(this, 0, 134); TrainConnector5.addBox(0F, 0F, 0F, 2, 5, 3); TrainConnector5.setRotationPoint(-9F, -6F, -4F); TrainConnector5.setTextureSize(256, 256); TrainConnector5.mirror = true; setRotation(TrainConnector5, 0F, 0F, 0.4461433F); - TrainConnector6 = new ModelRenderer(this, 0, 144); + TrainConnector6 = new ModelRendererTurbo(this, 0, 144); TrainConnector6.addBox(0F, 0F, 0F, 2, 3, 3); TrainConnector6.setRotationPoint(9.7F, 13F, -4F); TrainConnector6.setTextureSize(256, 256); TrainConnector6.mirror = true; setRotation(TrainConnector6, 0F, 0F, 0.4461433F); - TrainConnector7 = new ModelRenderer(this, 0, 144); + TrainConnector7 = new ModelRendererTurbo(this, 0, 144); TrainConnector7.addBox(0F, 0F, 0F, 2, 3, 3); TrainConnector7.setRotationPoint(-11F, 14F, -4F); TrainConnector7.setTextureSize(256, 256); TrainConnector7.mirror = true; setRotation(TrainConnector7, 0F, 0F, -0.4461433F); - TrainConnector8 = new ModelRenderer(this, 0, 144); + TrainConnector8 = new ModelRendererTurbo(this, 0, 144); TrainConnector8.addBox(0F, 0F, 0F, 2, 5, 3); TrainConnector8.setRotationPoint(-11F, 14F, 110F); TrainConnector8.setTextureSize(256, 256); TrainConnector8.mirror = true; setRotation(TrainConnector8, 0F, 0F, -0.4461433F); - TrainConnector9 = new ModelRenderer(this, 0, 144); + TrainConnector9 = new ModelRendererTurbo(this, 0, 144); TrainConnector9.addBox(0F, 0F, 0F, 2, 5, 3); TrainConnector9.setRotationPoint(9.5F, 13F, 110F); TrainConnector9.setTextureSize(256, 256); TrainConnector9.mirror = true; setRotation(TrainConnector9, 0F, 0F, 0.4461433F); - TrainConnector10 = new ModelRenderer(this, 0, 134); + TrainConnector10 = new ModelRendererTurbo(this, 0, 134); TrainConnector10.addBox(0F, 0F, 0F, 2, 5, 3); TrainConnector10.setRotationPoint(7.6F, -5F, -4F); TrainConnector10.setTextureSize(256, 256); TrainConnector10.mirror = true; setRotation(TrainConnector10, 0F, 0F, -0.4833219F); - TranConnector11 = new ModelRenderer(this, 0, 152); + TranConnector11 = new ModelRendererTurbo(this, 0, 152); TranConnector11.addBox(0F, 0F, 0F, 2, 18, 3); TranConnector11.setRotationPoint(9F, -6F, -4F); TranConnector11.setTextureSize(256, 256); TranConnector11.mirror = true; setRotation(TranConnector11, 0F, 0F, 1.570796F); - TranConnector12 = new ModelRenderer(this, 0, 176); + TranConnector12 = new ModelRendererTurbo(this, 0, 176); TranConnector12.addBox(0F, 0F, 0F, 2, 20, 3); TranConnector12.setRotationPoint(10.2F, 15F, -4F); TranConnector12.setTextureSize(256, 256); TranConnector12.mirror = true; setRotation(TranConnector12, 0F, 0F, 1.570796F); - TrainConnector13 = new ModelRenderer(this, 0, 200); + TrainConnector13 = new ModelRendererTurbo(this, 0, 200); TrainConnector13.addBox(0F, 0F, 0F, 2, 4, 3); TrainConnector13.setRotationPoint(8.2F, -4F, 110F); TrainConnector13.setTextureSize(256, 256); TrainConnector13.mirror = true; setRotation(TrainConnector13, 0F, 0F, -0.4833219F); - TrainConnector14 = new ModelRenderer(this, 0, 200); + TrainConnector14 = new ModelRendererTurbo(this, 0, 200); TrainConnector14.addBox(0F, 0F, 0F, 2, 4, 3); TrainConnector14.setRotationPoint(-9.4F, -5F, 110F); TrainConnector14.setTextureSize(256, 256); TrainConnector14.mirror = true; setRotation(TrainConnector14, 0F, 0F, 0.4833219F); - TranConnector15 = new ModelRenderer(this, 0, 208); + TranConnector15 = new ModelRendererTurbo(this, 0, 208); TranConnector15.addBox(0F, 0F, 0F, 2, 19, 3); TranConnector15.setRotationPoint(10F, -5F, 110F); TranConnector15.setTextureSize(256, 256); TranConnector15.mirror = true; setRotation(TranConnector15, 0F, 0F, 1.570796F); - TranConnector16 = new ModelRenderer(this, 0, 176); + TranConnector16 = new ModelRendererTurbo(this, 0, 176); TranConnector16.addBox(0F, 0F, 0F, 2, 19, 3); TranConnector16.setRotationPoint(10F, 16F, 110F); TranConnector16.setTextureSize(256, 256); @@ -609,7 +609,7 @@ public void render(Entity entity, float f, float f1, float f2, float f3, float f GL11.glTranslated(0,-1.4f,-2.6); GL11.glScaled(0.7,0.9,1); super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); + //setRotationAngles(f, f1, f2, f3, f4, f5, entity); Left1.render(f5); Left2.render(f5); Left3.render(f5); @@ -695,7 +695,7 @@ public void render(Entity entity, float f, float f1, float f2, float f3, float f GL11.glPopMatrix(); } - private void setRotation(ModelRenderer model, float x, float y, float z) + private void setRotation(ModelRendererTurbo model, float x, float y, float z) { model.rotateAngleX = x; model.rotateAngleY = y; diff --git a/src/main/java/train/client/render/models/ModelLocoDieselIC4_DSB_FH.java b/src/main/java/train/client/render/models/ModelLocoDieselIC4_DSB_FH.java index ba4abf350b..a2bffebfc0 100644 --- a/src/main/java/train/client/render/models/ModelLocoDieselIC4_DSB_FH.java +++ b/src/main/java/train/client/render/models/ModelLocoDieselIC4_DSB_FH.java @@ -3,477 +3,477 @@ //Keep in mind that you still need to fill in some blanks // - ZeuX -import net.minecraft.client.model.ModelRenderer; +import fexcraft.tmt.slim.ModelRendererTurbo; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; public class ModelLocoDieselIC4_DSB_FH extends ModelBase { //fields - ModelRenderer Left1; - ModelRenderer Left2; - ModelRenderer Left3; - ModelRenderer Left4; - ModelRenderer Floor1; - ModelRenderer Floor2; - ModelRenderer Floor3; - ModelRenderer Ceiling; - ModelRenderer Right1; - ModelRenderer Right2; - ModelRenderer Right3; - ModelRenderer Right4; - ModelRenderer Wheels1; - ModelRenderer Wheels2; - ModelRenderer Bottom; - ModelRenderer TranConnector1; - ModelRenderer TranConnector2; - ModelRenderer TranConnector3; - ModelRenderer TranConnector4; - ModelRenderer TrainConnector5; - ModelRenderer TrainConnector6; - ModelRenderer TrainConnector7; - ModelRenderer TrainConnector8; - ModelRenderer TrainConnector9; - ModelRenderer TrainConnector10; - ModelRenderer TranConnector11; - ModelRenderer TranConnector12; - ModelRenderer TrainConnector13; - ModelRenderer TrainConnector14; - ModelRenderer TranConnector15; - ModelRenderer TranConnector16; - ModelRenderer Stairs1; - ModelRenderer Stairs2; - ModelRenderer Stairs3; - ModelRenderer Walls1; - ModelRenderer Walls2; - ModelRenderer Walls3; - ModelRenderer Walls4; - ModelRenderer Walls5; - ModelRenderer Walls6; - ModelRenderer Walls7; - ModelRenderer Walls8; - ModelRenderer Walls9; - ModelRenderer Seats1; - ModelRenderer Seats2; - ModelRenderer Seats3; - ModelRenderer Seats4; - ModelRenderer Seats5; - ModelRenderer Seats6; - ModelRenderer Seats7; - ModelRenderer Seats8; - ModelRenderer Seats9; - ModelRenderer Seats10; - ModelRenderer Seats11; - ModelRenderer Seats12; - ModelRenderer Seats13; - ModelRenderer Seats14; - ModelRenderer Seats15; - ModelRenderer Seats16; - ModelRenderer Seats17; - ModelRenderer Seats18; - ModelRenderer Seats19; - ModelRenderer Seats20; - ModelRenderer Seats21; - ModelRenderer Seats22; - ModelRenderer Seats23; + ModelRendererTurbo Left1; + ModelRendererTurbo Left2; + ModelRendererTurbo Left3; + ModelRendererTurbo Left4; + ModelRendererTurbo Floor1; + ModelRendererTurbo Floor2; + ModelRendererTurbo Floor3; + ModelRendererTurbo Ceiling; + ModelRendererTurbo Right1; + ModelRendererTurbo Right2; + ModelRendererTurbo Right3; + ModelRendererTurbo Right4; + ModelRendererTurbo Wheels1; + ModelRendererTurbo Wheels2; + ModelRendererTurbo Bottom; + ModelRendererTurbo TranConnector1; + ModelRendererTurbo TranConnector2; + ModelRendererTurbo TranConnector3; + ModelRendererTurbo TranConnector4; + ModelRendererTurbo TrainConnector5; + ModelRendererTurbo TrainConnector6; + ModelRendererTurbo TrainConnector7; + ModelRendererTurbo TrainConnector8; + ModelRendererTurbo TrainConnector9; + ModelRendererTurbo TrainConnector10; + ModelRendererTurbo TranConnector11; + ModelRendererTurbo TranConnector12; + ModelRendererTurbo TrainConnector13; + ModelRendererTurbo TrainConnector14; + ModelRendererTurbo TranConnector15; + ModelRendererTurbo TranConnector16; + ModelRendererTurbo Stairs1; + ModelRendererTurbo Stairs2; + ModelRendererTurbo Stairs3; + ModelRendererTurbo Walls1; + ModelRendererTurbo Walls2; + ModelRendererTurbo Walls3; + ModelRendererTurbo Walls4; + ModelRendererTurbo Walls5; + ModelRendererTurbo Walls6; + ModelRendererTurbo Walls7; + ModelRendererTurbo Walls8; + ModelRendererTurbo Walls9; + ModelRendererTurbo Seats1; + ModelRendererTurbo Seats2; + ModelRendererTurbo Seats3; + ModelRendererTurbo Seats4; + ModelRendererTurbo Seats5; + ModelRendererTurbo Seats6; + ModelRendererTurbo Seats7; + ModelRendererTurbo Seats8; + ModelRendererTurbo Seats9; + ModelRendererTurbo Seats10; + ModelRendererTurbo Seats11; + ModelRendererTurbo Seats12; + ModelRendererTurbo Seats13; + ModelRendererTurbo Seats14; + ModelRendererTurbo Seats15; + ModelRendererTurbo Seats16; + ModelRendererTurbo Seats17; + ModelRendererTurbo Seats18; + ModelRendererTurbo Seats19; + ModelRendererTurbo Seats20; + ModelRendererTurbo Seats21; + ModelRendererTurbo Seats22; + ModelRendererTurbo Seats23; public ModelLocoDieselIC4_DSB_FH() { textureWidth = 256; textureHeight = 256; - Left1 = new ModelRenderer(this, 203, 0); + Left1 = new ModelRendererTurbo(this, 203, 0); Left1.addBox(0F, 0F, 0F, 2, 111, 6); Left1.setRotationPoint(9F, 18F, -1F); Left1.setTextureSize(256, 256); Left1.mirror = true; setRotation(Left1, 1.570796F, 0F, 0.2230717F); - Left2 = new ModelRenderer(this, 111, 0); + Left2 = new ModelRendererTurbo(this, 111, 0); Left2.addBox(0F, 0F, 0F, 2, 111, 15); Left2.setRotationPoint(10.1F, 13F, -1F); Left2.setTextureSize(256, 256); Left2.mirror = true; setRotation(Left2, 1.570796F, 0F, 0F); - Left3 = new ModelRenderer(this, 146, 0); + Left3 = new ModelRendererTurbo(this, 146, 0); Left3.addBox(0F, 0F, 0F, 2, 111, 6); Left3.setRotationPoint(10.25F, -1F, -1F); Left3.setTextureSize(256, 256); Left3.mirror = true; setRotation(Left3, 1.570796F, 0F, -0.2230717F); - Left4 = new ModelRenderer(this, 246, 146); + Left4 = new ModelRendererTurbo(this, 246, 146); Left4.addBox(0F, 0F, 0F, 1, 97, 4); Left4.setRotationPoint(9F, 22F, 6F); Left4.setTextureSize(256, 256); Left4.mirror = true; setRotation(Left4, 1.570796F, 0F, 0.2974289F); - Floor1 = new ModelRenderer(this, 0, 0); + Floor1 = new ModelRendererTurbo(this, 0, 0); Floor1.addBox(0F, 0F, 0F, 20, 117, 1); Floor1.setRotationPoint(-10F, 18F, -4F); Floor1.setTextureSize(256, 256); Floor1.mirror = true; setRotation(Floor1, 1.570796F, 0F, 0F); - Floor2 = new ModelRenderer(this, 12, 172); + Floor2 = new ModelRendererTurbo(this, 12, 172); Floor2.addBox(0F, 0F, 0F, 20, 14, 3); Floor2.setRotationPoint(-9F, 17F, -1F); Floor2.setTextureSize(256, 256); Floor2.mirror = true; setRotation(Floor2, 1.570796F, 0F, 0F); - Floor3 = new ModelRenderer(this, 12, 202); + Floor3 = new ModelRendererTurbo(this, 12, 202); Floor3.addBox(0F, 0F, 0F, 20, 22, 3); Floor3.setRotationPoint(-9F, 18F, 88F); Floor3.setTextureSize(256, 256); Floor3.mirror = true; setRotation(Floor3, 1.570796F, 0F, 0F); - Ceiling = new ModelRenderer(this, 164, 0); + Ceiling = new ModelRendererTurbo(this, 164, 0); Ceiling.addBox(0F, 0F, 0F, 18, 111, 1); Ceiling.setRotationPoint(-8F, -6F, -1F); Ceiling.setTextureSize(256, 256); Ceiling.mirror = true; setRotation(Ceiling, 1.570796F, 0F, 0F); - Right1 = new ModelRenderer(this, 59, 0); + Right1 = new ModelRendererTurbo(this, 59, 0); Right1.addBox(0F, 0F, 0F, 2, 111, 6); Right1.setRotationPoint(-10F, 18.3F, -1F); Right1.setTextureSize(256, 256); Right1.mirror = true; setRotation(Right1, 1.570796F, 0F, -0.2230717F); - Right2 = new ModelRenderer(this, 76, 0); + Right2 = new ModelRendererTurbo(this, 76, 0); Right2.addBox(0F, 0F, 0F, 2, 111, 15); Right2.setRotationPoint(-11.2F, 13F, -1F); Right2.setTextureSize(256, 256); Right2.mirror = true; setRotation(Right2, 1.570796F, 0F, 0F); - Right3 = new ModelRenderer(this, 42, 0); + Right3 = new ModelRendererTurbo(this, 42, 0); Right3.addBox(0F, 0F, 0F, 2, 111, 6); Right3.setRotationPoint(-11F, -2F, -1F); Right3.setTextureSize(256, 256); Right3.mirror = true; setRotation(Right3, 1.570796F, 0F, 0.3346075F); - Right4 = new ModelRenderer(this, 234, 146); + Right4 = new ModelRendererTurbo(this, 234, 146); Right4.addBox(0F, 0F, 0F, 1, 97, 4); Right4.setRotationPoint(-9F, 22F, 6F); Right4.setTextureSize(256, 256); Right4.mirror = true; setRotation(Right4, 1.570796F, 0F, -0.2974289F); - Wheels1 = new ModelRenderer(this, 124, 186); + Wheels1 = new ModelRendererTurbo(this, 124, 186); Wheels1.addBox(0F, 0F, 0F, 6, 21, 10); Wheels1.setRotationPoint(11F, 18F, -5F); Wheels1.setTextureSize(256, 256); Wheels1.mirror = true; setRotation(Wheels1, 0F, 0F, 1.570796F); - Wheels2 = new ModelRenderer(this, 134, 151); + Wheels2 = new ModelRendererTurbo(this, 134, 151); Wheels2.addBox(0F, 0F, 0F, 6, 21, 11); Wheels2.setRotationPoint(11F, 18F, 104F); Wheels2.setTextureSize(256, 256); Wheels2.mirror = true; setRotation(Wheels2, 0F, 0F, 1.570796F); - Bottom = new ModelRenderer(this, 220, 0); + Bottom = new ModelRendererTurbo(this, 220, 0); Bottom.addBox(0F, 0F, 0F, 17, 95, 1); Bottom.setRotationPoint(-8F, 22F, 6F); Bottom.setTextureSize(256, 256); Bottom.mirror = true; setRotation(Bottom, 1.570796F, 0F, 0F); - TranConnector1 = new ModelRenderer(this, 0, 114); + TranConnector1 = new ModelRendererTurbo(this, 0, 114); TranConnector1.addBox(0F, 0F, 0F, 2, 16, 3); TranConnector1.setRotationPoint(-11F, -2F, -4F); TranConnector1.setTextureSize(256, 256); TranConnector1.mirror = true; setRotation(TranConnector1, 0F, 0F, 0F); - TranConnector2 = new ModelRenderer(this, 0, 114); + TranConnector2 = new ModelRendererTurbo(this, 0, 114); TranConnector2.addBox(0F, 0F, 0F, 2, 16, 3); TranConnector2.setRotationPoint(9.5F, -2F, -4F); TranConnector2.setTextureSize(256, 256); TranConnector2.mirror = true; setRotation(TranConnector2, 0F, 0F, 0F); - TranConnector3 = new ModelRenderer(this, 0, 114); + TranConnector3 = new ModelRendererTurbo(this, 0, 114); TranConnector3.addBox(0F, 0F, 0F, 2, 16, 3); TranConnector3.setRotationPoint(-11F, -2F, 110F); TranConnector3.setTextureSize(256, 256); TranConnector3.mirror = true; setRotation(TranConnector3, 0F, 0F, 0F); - TranConnector4 = new ModelRenderer(this, 0, 114); + TranConnector4 = new ModelRendererTurbo(this, 0, 114); TranConnector4.addBox(0F, 0F, 0F, 2, 16, 3); TranConnector4.setRotationPoint(9.5F, -2F, 110F); TranConnector4.setTextureSize(256, 256); TranConnector4.mirror = true; setRotation(TranConnector4, 0F, 0F, 0F); - TrainConnector5 = new ModelRenderer(this, 0, 134); + TrainConnector5 = new ModelRendererTurbo(this, 0, 134); TrainConnector5.addBox(0F, 0F, 0F, 2, 5, 3); TrainConnector5.setRotationPoint(-9F, -6F, -4F); TrainConnector5.setTextureSize(256, 256); TrainConnector5.mirror = true; setRotation(TrainConnector5, 0F, 0F, 0.4461433F); - TrainConnector6 = new ModelRenderer(this, 0, 144); + TrainConnector6 = new ModelRendererTurbo(this, 0, 144); TrainConnector6.addBox(0F, 0F, 0F, 2, 3, 3); TrainConnector6.setRotationPoint(9.7F, 13F, -4F); TrainConnector6.setTextureSize(256, 256); TrainConnector6.mirror = true; setRotation(TrainConnector6, 0F, 0F, 0.4461433F); - TrainConnector7 = new ModelRenderer(this, 0, 144); + TrainConnector7 = new ModelRendererTurbo(this, 0, 144); TrainConnector7.addBox(0F, 0F, 0F, 2, 3, 3); TrainConnector7.setRotationPoint(-11F, 14F, -4F); TrainConnector7.setTextureSize(256, 256); TrainConnector7.mirror = true; setRotation(TrainConnector7, 0F, 0F, -0.4461433F); - TrainConnector8 = new ModelRenderer(this, 0, 144); + TrainConnector8 = new ModelRendererTurbo(this, 0, 144); TrainConnector8.addBox(0F, 0F, 0F, 2, 5, 3); TrainConnector8.setRotationPoint(-11F, 14F, 110F); TrainConnector8.setTextureSize(256, 256); TrainConnector8.mirror = true; setRotation(TrainConnector8, 0F, 0F, -0.4461433F); - TrainConnector9 = new ModelRenderer(this, 0, 144); + TrainConnector9 = new ModelRendererTurbo(this, 0, 144); TrainConnector9.addBox(0F, 0F, 0F, 2, 5, 3); TrainConnector9.setRotationPoint(9.5F, 13F, 110F); TrainConnector9.setTextureSize(256, 256); TrainConnector9.mirror = true; setRotation(TrainConnector9, 0F, 0F, 0.4461433F); - TrainConnector10 = new ModelRenderer(this, 0, 134); + TrainConnector10 = new ModelRendererTurbo(this, 0, 134); TrainConnector10.addBox(0F, 0F, 0F, 2, 5, 3); TrainConnector10.setRotationPoint(7.6F, -5F, -4F); TrainConnector10.setTextureSize(256, 256); TrainConnector10.mirror = true; setRotation(TrainConnector10, 0F, 0F, -0.4833219F); - TranConnector11 = new ModelRenderer(this, 120, 154); + TranConnector11 = new ModelRendererTurbo(this, 120, 154); TranConnector11.addBox(0F, 0F, 0F, 2, 18, 3); TranConnector11.setRotationPoint(9F, -6F, -4F); TranConnector11.setTextureSize(256, 256); TranConnector11.mirror = true; setRotation(TranConnector11, 0F, 0F, 1.570796F); - TranConnector12 = new ModelRenderer(this, 0, 176); + TranConnector12 = new ModelRendererTurbo(this, 0, 176); TranConnector12.addBox(0F, 0F, 0F, 2, 20, 3); TranConnector12.setRotationPoint(10.2F, 15F, -4F); TranConnector12.setTextureSize(256, 256); TranConnector12.mirror = true; setRotation(TranConnector12, 0F, 0F, 1.570796F); - TrainConnector13 = new ModelRenderer(this, 0, 200); + TrainConnector13 = new ModelRendererTurbo(this, 0, 200); TrainConnector13.addBox(0F, 0F, 0F, 2, 4, 3); TrainConnector13.setRotationPoint(8.2F, -4F, 110F); TrainConnector13.setTextureSize(256, 256); TrainConnector13.mirror = true; setRotation(TrainConnector13, 0F, 0F, -0.4833219F); - TrainConnector14 = new ModelRenderer(this, 0, 200); + TrainConnector14 = new ModelRendererTurbo(this, 0, 200); TrainConnector14.addBox(0F, 0F, 0F, 2, 4, 3); TrainConnector14.setRotationPoint(-9.4F, -5F, 110F); TrainConnector14.setTextureSize(256, 256); TrainConnector14.mirror = true; setRotation(TrainConnector14, 0F, 0F, 0.4833219F); - TranConnector15 = new ModelRenderer(this, 0, 208); + TranConnector15 = new ModelRendererTurbo(this, 0, 208); TranConnector15.addBox(0F, 0F, 0F, 2, 19, 3); TranConnector15.setRotationPoint(10F, -5F, 110F); TranConnector15.setTextureSize(256, 256); TranConnector15.mirror = true; setRotation(TranConnector15, 0F, 0F, 1.570796F); - TranConnector16 = new ModelRenderer(this, 0, 176); + TranConnector16 = new ModelRendererTurbo(this, 0, 176); TranConnector16.addBox(0F, 0F, 0F, 2, 19, 3); TranConnector16.setRotationPoint(10F, 16F, 110F); TranConnector16.setTextureSize(256, 256); TranConnector16.mirror = true; setRotation(TranConnector16, 0F, 0F, 1.570796F); - Stairs1 = new ModelRenderer(this, 76, 140); + Stairs1 = new ModelRendererTurbo(this, 76, 140); Stairs1.addBox(0F, 0F, 0F, 7, 2, 2); Stairs1.setRotationPoint(3F, 17.6F, 13F); Stairs1.setTextureSize(256, 256); Stairs1.mirror = true; setRotation(Stairs1, 1.570796F, 0F, 0F); - Stairs2 = new ModelRenderer(this, 96, 140); + Stairs2 = new ModelRendererTurbo(this, 96, 140); Stairs2.addBox(0F, 0F, 0F, 7, 1, 1); Stairs2.setRotationPoint(3F, 15.8F, 13F); Stairs2.setTextureSize(256, 256); Stairs2.mirror = true; setRotation(Stairs2, 1.570796F, 0F, 0F); - Stairs3 = new ModelRenderer(this, 96, 140); + Stairs3 = new ModelRendererTurbo(this, 96, 140); Stairs3.addBox(0F, 0F, 0F, 7, 1, 1); Stairs3.setRotationPoint(3F, 17.2F, 15F); Stairs3.setTextureSize(256, 256); Stairs3.mirror = true; setRotation(Stairs3, 1.570796F, 0F, 0F); - Walls1 = new ModelRenderer(this, 12, 146); + Walls1 = new ModelRendererTurbo(this, 12, 146); Walls1.addBox(0F, 0F, 0F, 19, 23, 2); Walls1.setRotationPoint(-9F, -6F, -1F); Walls1.setTextureSize(256, 256); Walls1.mirror = true; setRotation(Walls1, 0F, 0F, 0F); - Walls2 = new ModelRenderer(this, 12, 119); + Walls2 = new ModelRendererTurbo(this, 12, 119); Walls2.addBox(0F, 0F, 0F, 19, 24, 2); Walls2.setRotationPoint(-9F, -6F, 108F); Walls2.setTextureSize(256, 256); Walls2.mirror = true; setRotation(Walls2, 0F, 0F, 0F); - Walls3 = new ModelRenderer(this, 60, 150); + Walls3 = new ModelRendererTurbo(this, 60, 150); Walls3.addBox(0F, 0F, 0F, 19, 24, 2); Walls3.setRotationPoint(-9F, -6F, 42F); Walls3.setTextureSize(256, 256); Walls3.mirror = true; setRotation(Walls3, 0F, 0F, 0F); - Walls4 = new ModelRenderer(this, 60, 207); + Walls4 = new ModelRendererTurbo(this, 60, 207); Walls4.addBox(0F, 0F, 0F, 19, 24, 2); Walls4.setRotationPoint(-9F, -6F, 74F); Walls4.setTextureSize(256, 256); Walls4.mirror = true; setRotation(Walls4, 0F, 0F, 0F); - Walls5 = new ModelRenderer(this, 60, 178); + Walls5 = new ModelRendererTurbo(this, 60, 178); Walls5.addBox(0F, 0F, 0F, 12, 24, 3); Walls5.setRotationPoint(-9F, -6F, 13F); Walls5.setTextureSize(256, 256); Walls5.mirror = true; setRotation(Walls5, 0F, 0F, 0F); - Walls6 = new ModelRenderer(this, 91, 178); + Walls6 = new ModelRendererTurbo(this, 91, 178); Walls6.addBox(0F, 0F, -1F, 15, 20, 1); Walls6.setRotationPoint(-6F, -6F, 1F); Walls6.setTextureSize(256, 256); Walls6.mirror = true; setRotation(Walls6, 0F, -1.003822F, 0F); - Walls7 = new ModelRenderer(this, 104, 208); + Walls7 = new ModelRendererTurbo(this, 104, 208); Walls7.addBox(0F, 0F, 0F, 7, 24, 1); Walls7.setRotationPoint(-4F, -6F, 60F); Walls7.setTextureSize(256, 256); Walls7.mirror = true; setRotation(Walls7, 0F, -0.7807508F, 0F); - Walls8 = new ModelRenderer(this, 104, 150); + Walls8 = new ModelRendererTurbo(this, 104, 150); Walls8.addBox(0F, 0F, 0F, 5, 24, 1); Walls8.setRotationPoint(-9F, -6F, 60F); Walls8.setTextureSize(256, 256); Walls8.mirror = true; setRotation(Walls8, 0F, 0F, 0F); - Walls9 = new ModelRenderer(this, 160, 185); + Walls9 = new ModelRendererTurbo(this, 160, 185); Walls9.addBox(0F, 0F, 0F, 1, 24, 9); Walls9.setRotationPoint(0F, -6F, 65F); Walls9.setTextureSize(256, 256); Walls9.mirror = true; setRotation(Walls9, 0F, 0F, 0F); - Seats1 = new ModelRenderer(this, 56, 120); + Seats1 = new ModelRendererTurbo(this, 56, 120); Seats1.addBox(0F, 0F, 0F, 3, 20, 1); Seats1.setRotationPoint(-9F, 17F, 20F); Seats1.setTextureSize(256, 256); Seats1.mirror = true; setRotation(Seats1, 1.570796F, 0F, 0F); - Seats2 = new ModelRenderer(this, 66, 122); + Seats2 = new ModelRendererTurbo(this, 66, 122); Seats2.addBox(0F, 0F, 0F, 3, 21, 1); Seats2.setRotationPoint(7F, 17F, 20F); Seats2.setTextureSize(256, 256); Seats2.mirror = true; setRotation(Seats2, 1.570796F, 0F, 0F); - Seats3 = new ModelRenderer(this, 96, 132); + Seats3 = new ModelRendererTurbo(this, 96, 132); Seats3.addBox(0F, 0F, 0F, 7, 1, 1); Seats3.setRotationPoint(-9F, 18F, 85F); Seats3.setTextureSize(256, 256); Seats3.mirror = true; setRotation(Seats3, 1.570796F, 0F, 0F); - Seats4 = new ModelRenderer(this, 76, 136); + Seats4 = new ModelRendererTurbo(this, 76, 136); Seats4.addBox(0F, 0F, 0F, 4, 1, 1); Seats4.setRotationPoint(-9F, 18F, 78F); Seats4.setTextureSize(256, 256); Seats4.mirror = true; setRotation(Seats4, 1.570796F, 0F, 0F); - Seats5 = new ModelRenderer(this, 96, 136); + Seats5 = new ModelRendererTurbo(this, 96, 136); Seats5.addBox(0F, 0F, 0F, 7, 1, 1); Seats5.setRotationPoint(-9F, 15F, 90F); Seats5.setTextureSize(256, 256); Seats5.mirror = true; setRotation(Seats5, 1.570796F, 0F, 0F); - Seats6 = new ModelRenderer(this, 96, 136); + Seats6 = new ModelRendererTurbo(this, 96, 136); Seats6.addBox(0F, 0F, -1F, 7, 1, 1); Seats6.setRotationPoint(3F, 14.3F, 98F); Seats6.setTextureSize(256, 256); Seats6.mirror = true; setRotation(Seats6, 1.570796F, 0F, 0F); - Seats7 = new ModelRenderer(this, 96, 136); + Seats7 = new ModelRendererTurbo(this, 96, 136); Seats7.addBox(0F, 0F, 0F, 7, 1, 1); Seats7.setRotationPoint(-9F, 15.5F, 98F); Seats7.setTextureSize(256, 256); Seats7.mirror = true; setRotation(Seats7, 1.570796F, 0F, 0F); - Seats8 = new ModelRenderer(this, 96, 136); + Seats8 = new ModelRendererTurbo(this, 96, 136); Seats8.addBox(0F, 0F, 0F, 7, 1, 1); Seats8.setRotationPoint(-9F, 15F, 106F); Seats8.setTextureSize(256, 256); Seats8.mirror = true; setRotation(Seats8, 1.570796F, 0F, 0F); - Seats9 = new ModelRenderer(this, 96, 136); + Seats9 = new ModelRendererTurbo(this, 96, 136); Seats9.addBox(0F, 0F, 0F, 7, 1, 1); Seats9.setRotationPoint(3F, 15F, 106F); Seats9.setTextureSize(256, 256); Seats9.mirror = true; setRotation(Seats9, 1.570796F, 0F, 0F); - Seats10 = new ModelRenderer(this, 0, 232); + Seats10 = new ModelRendererTurbo(this, 0, 232); Seats10.addBox(0F, 0F, 0F, 1, 4, 3); Seats10.setRotationPoint(-5F, 16F, 78F); Seats10.setTextureSize(256, 256); Seats10.mirror = true; setRotation(Seats10, 0F, 0F, 1.570796F); - Seats11 = new ModelRenderer(this, 10, 232); + Seats11 = new ModelRendererTurbo(this, 10, 232); Seats11.addBox(0F, 0F, 0F, 1, 7, 3); Seats11.setRotationPoint(-2F, 16F, 83F); Seats11.setTextureSize(256, 256); Seats11.mirror = true; setRotation(Seats11, 0F, 0F, 1.570796F); - Seats12 = new ModelRenderer(this, 20, 232); + Seats12 = new ModelRendererTurbo(this, 20, 232); Seats12.addBox(0F, 0F, 0F, 1, 8, 3); Seats12.setRotationPoint(-2F, 13F, 104F); Seats12.setTextureSize(256, 256); Seats12.mirror = true; setRotation(Seats12, 0F, 0F, 1.570796F); - Seats13 = new ModelRenderer(this, 20, 232); + Seats13 = new ModelRendererTurbo(this, 20, 232); Seats13.addBox(0F, 0F, 0F, 1, 8, 3); Seats13.setRotationPoint(11F, 13F, 104F); Seats13.setTextureSize(256, 256); Seats13.mirror = true; setRotation(Seats13, 0F, 0F, 1.570796F); - Seats14 = new ModelRenderer(this, 30, 232); + Seats14 = new ModelRendererTurbo(this, 30, 232); Seats14.addBox(0F, 0F, 0F, 1, 8, 5); Seats14.setRotationPoint(-2F, 13.6F, 96F); Seats14.setTextureSize(256, 256); Seats14.mirror = true; setRotation(Seats14, 0F, 0F, 1.570796F); - Seats15 = new ModelRenderer(this, 54, 234); + Seats15 = new ModelRendererTurbo(this, 54, 234); Seats15.addBox(0F, 0F, 0F, 1, 8, 3); Seats15.setRotationPoint(11F, 13.2F, 98F); Seats15.setTextureSize(256, 256); Seats15.mirror = true; setRotation(Seats15, 0F, 0F, 1.570796F); - Seats16 = new ModelRenderer(this, 44, 232); + Seats16 = new ModelRendererTurbo(this, 44, 232); Seats16.addBox(0F, 0F, 0F, 1, 8, 3); Seats16.setRotationPoint(-2F, 13F, 90F); Seats16.setTextureSize(256, 256); Seats16.mirror = true; setRotation(Seats16, 0F, 0F, 1.570796F); - Seats17 = new ModelRenderer(this, 70, 236); + Seats17 = new ModelRendererTurbo(this, 70, 236); Seats17.addBox(0F, 0F, 0F, 4, 5, 1); Seats17.setRotationPoint(-9F, 11F, 78F); Seats17.setTextureSize(256, 256); Seats17.mirror = true; setRotation(Seats17, 0F, 0F, 0F); - Seats18 = new ModelRenderer(this, 70, 244); + Seats18 = new ModelRendererTurbo(this, 70, 244); Seats18.addBox(0F, 0F, 0F, 7, 5, 1); Seats18.setRotationPoint(-9F, 11F, 85F); Seats18.setTextureSize(256, 256); Seats18.mirror = true; setRotation(Seats18, 0F, 0F, 0F); - Seats19 = new ModelRenderer(this, 90, 244); + Seats19 = new ModelRendererTurbo(this, 90, 244); Seats19.addBox(0F, 0F, 0F, 7, 5, 1); Seats19.setRotationPoint(-9F, 8F, 90F); Seats19.setTextureSize(256, 256); Seats19.mirror = true; setRotation(Seats19, 0F, 0F, 0F); - Seats20 = new ModelRenderer(this, 90, 244); + Seats20 = new ModelRendererTurbo(this, 90, 244); Seats20.addBox(0F, 0F, 0F, 7, 5, 1); Seats20.setRotationPoint(3F, 9F, 98F); Seats20.setTextureSize(256, 256); Seats20.mirror = true; setRotation(Seats20, 0F, 0F, 0F); - Seats21 = new ModelRenderer(this, 70, 244); + Seats21 = new ModelRendererTurbo(this, 70, 244); Seats21.addBox(0F, 0F, 0F, 7, 5, 1); Seats21.setRotationPoint(3F, 8F, 106F); Seats21.setTextureSize(256, 256); Seats21.mirror = true; setRotation(Seats21, 0F, 0F, 0F); - Seats22 = new ModelRenderer(this, 70, 244); + Seats22 = new ModelRendererTurbo(this, 70, 244); Seats22.addBox(0F, 0F, 0F, 7, 5, 1); Seats22.setRotationPoint(-9F, 8F, 106F); Seats22.setTextureSize(256, 256); Seats22.mirror = true; setRotation(Seats22, 0F, 0F, 0F); - Seats23 = new ModelRenderer(this, 90, 236); + Seats23 = new ModelRendererTurbo(this, 90, 236); Seats23.addBox(0F, 0F, 0F, 7, 5, 1); Seats23.setRotationPoint(-9F, 9F, 98F); Seats23.setTextureSize(256, 256); @@ -559,7 +559,7 @@ public void render(Entity entity, float f, float f1, float f2, float f3, float f GL11.glPopMatrix(); } - private void setRotation(ModelRenderer model, float x, float y, float z) + private void setRotation(ModelRendererTurbo model, float x, float y, float z) { model.rotateAngleX = x; model.rotateAngleY = y; diff --git a/src/main/java/train/client/render/models/ModelLocoDieselIC4_DSB_MG.java b/src/main/java/train/client/render/models/ModelLocoDieselIC4_DSB_MG.java index d004382ec5..3ec7181232 100644 --- a/src/main/java/train/client/render/models/ModelLocoDieselIC4_DSB_MG.java +++ b/src/main/java/train/client/render/models/ModelLocoDieselIC4_DSB_MG.java @@ -3,841 +3,841 @@ //Keep in mind that you still need to fill in some blanks // - ZeuX -import net.minecraft.client.model.ModelRenderer; +import fexcraft.tmt.slim.ModelRendererTurbo; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; public class ModelLocoDieselIC4_DSB_MG extends ModelBase { //fields - ModelRenderer Left1; - ModelRenderer Left2; - ModelRenderer Left3; - ModelRenderer Floor1; - ModelRenderer Floor2; - ModelRenderer Floor_3; - ModelRenderer Floor_4; - ModelRenderer Floor_5; - ModelRenderer Ceiling; - ModelRenderer Right1; - ModelRenderer Right2; - ModelRenderer Right3; - ModelRenderer Cab_2; - ModelRenderer Cab_3; - ModelRenderer Cab_4; - ModelRenderer Cab_5; - ModelRenderer Cab_6; - ModelRenderer Cab_7; - ModelRenderer Cab_8; - ModelRenderer Cab_9; - ModelRenderer Cab_10; - ModelRenderer Cab_11; - ModelRenderer Cab_12; - ModelRenderer Cab_13; - ModelRenderer Cab_14; - ModelRenderer Cab_15; - ModelRenderer Cab_16; - ModelRenderer Cab_17; - ModelRenderer Cab_18; - ModelRenderer Cab_19; - ModelRenderer Cab_20; - ModelRenderer Cab_21; - ModelRenderer Cab_22; - ModelRenderer Cab_23; - ModelRenderer Cab_24; - ModelRenderer Cab_25; - ModelRenderer Cab_26; - ModelRenderer Cab_27; - ModelRenderer Cab_28; - ModelRenderer Cab_29; - ModelRenderer Cab_30; - ModelRenderer Cab_31; - ModelRenderer Coupler_1; - ModelRenderer Coupler_2; - ModelRenderer ControlPanel1; - ModelRenderer ControlPanel2; - ModelRenderer ControlPanel3; - ModelRenderer ControlPanel4; - ModelRenderer ControlPanel5; - ModelRenderer ControlPanel6; - ModelRenderer WallToCab; - ModelRenderer MiddleWall1; - ModelRenderer MiddleWall2; - ModelRenderer BackWall; - ModelRenderer DriverChair1; - ModelRenderer DriverChair2; - ModelRenderer DriverChair3; - ModelRenderer Wheels1; - ModelRenderer Wheels2; - ModelRenderer Seats1; - ModelRenderer Seats2; - ModelRenderer Seats3; - ModelRenderer Seats4; - ModelRenderer Seats5; - ModelRenderer Seats6; - ModelRenderer Seats7; - ModelRenderer Seats8; - ModelRenderer Seats9; - ModelRenderer Seats10; - ModelRenderer Seats11; - ModelRenderer Seats12; - ModelRenderer Seats13; - ModelRenderer Seats14; - ModelRenderer Seats15; - ModelRenderer Seats16; - ModelRenderer Seats17; - ModelRenderer Seats18; - ModelRenderer Seats19; - ModelRenderer Seats20; - ModelRenderer Seats21; - ModelRenderer Seats22; - ModelRenderer Seats23; - ModelRenderer Seats24; - ModelRenderer Seats25; - ModelRenderer Seats26; - ModelRenderer Seats27; - ModelRenderer Seats28; - ModelRenderer Seats29; - ModelRenderer Seats30; - ModelRenderer Seats31; - ModelRenderer Seats32; - ModelRenderer Seats33; - ModelRenderer Seats34; - ModelRenderer Seats35; - ModelRenderer Seats36; - ModelRenderer Seats37; - ModelRenderer Seats38; - ModelRenderer Seats39; - ModelRenderer Seats40; - ModelRenderer Seats41; - ModelRenderer Seats42; - ModelRenderer Seats43; - ModelRenderer Seats44; - ModelRenderer Seats45; - ModelRenderer Seats46; - ModelRenderer Seats47; - ModelRenderer Seats48; - ModelRenderer Right4; - ModelRenderer Left4; - ModelRenderer Cab_32; - ModelRenderer Cab_33; - ModelRenderer Bottom; - ModelRenderer Showel5; - ModelRenderer Showel6; - ModelRenderer Showel7; - ModelRenderer Showel8; - ModelRenderer Showel9; - ModelRenderer Shape1; + ModelRendererTurbo Left1; + ModelRendererTurbo Left2; + ModelRendererTurbo Left3; + ModelRendererTurbo Floor1; + ModelRendererTurbo Floor2; + ModelRendererTurbo Floor_3; + ModelRendererTurbo Floor_4; + ModelRendererTurbo Floor_5; + ModelRendererTurbo Ceiling; + ModelRendererTurbo Right1; + ModelRendererTurbo Right2; + ModelRendererTurbo Right3; + ModelRendererTurbo Cab_2; + ModelRendererTurbo Cab_3; + ModelRendererTurbo Cab_4; + ModelRendererTurbo Cab_5; + ModelRendererTurbo Cab_6; + ModelRendererTurbo Cab_7; + ModelRendererTurbo Cab_8; + ModelRendererTurbo Cab_9; + ModelRendererTurbo Cab_10; + ModelRendererTurbo Cab_11; + ModelRendererTurbo Cab_12; + ModelRendererTurbo Cab_13; + ModelRendererTurbo Cab_14; + ModelRendererTurbo Cab_15; + ModelRendererTurbo Cab_16; + ModelRendererTurbo Cab_17; + ModelRendererTurbo Cab_18; + ModelRendererTurbo Cab_19; + ModelRendererTurbo Cab_20; + ModelRendererTurbo Cab_21; + ModelRendererTurbo Cab_22; + ModelRendererTurbo Cab_23; + ModelRendererTurbo Cab_24; + ModelRendererTurbo Cab_25; + ModelRendererTurbo Cab_26; + ModelRendererTurbo Cab_27; + ModelRendererTurbo Cab_28; + ModelRendererTurbo Cab_29; + ModelRendererTurbo Cab_30; + ModelRendererTurbo Cab_31; + ModelRendererTurbo Coupler_1; + ModelRendererTurbo Coupler_2; + ModelRendererTurbo ControlPanel1; + ModelRendererTurbo ControlPanel2; + ModelRendererTurbo ControlPanel3; + ModelRendererTurbo ControlPanel4; + ModelRendererTurbo ControlPanel5; + ModelRendererTurbo ControlPanel6; + ModelRendererTurbo WallToCab; + ModelRendererTurbo MiddleWall1; + ModelRendererTurbo MiddleWall2; + ModelRendererTurbo BackWall; + ModelRendererTurbo DriverChair1; + ModelRendererTurbo DriverChair2; + ModelRendererTurbo DriverChair3; + ModelRendererTurbo Wheels1; + ModelRendererTurbo Wheels2; + ModelRendererTurbo Seats1; + ModelRendererTurbo Seats2; + ModelRendererTurbo Seats3; + ModelRendererTurbo Seats4; + ModelRendererTurbo Seats5; + ModelRendererTurbo Seats6; + ModelRendererTurbo Seats7; + ModelRendererTurbo Seats8; + ModelRendererTurbo Seats9; + ModelRendererTurbo Seats10; + ModelRendererTurbo Seats11; + ModelRendererTurbo Seats12; + ModelRendererTurbo Seats13; + ModelRendererTurbo Seats14; + ModelRendererTurbo Seats15; + ModelRendererTurbo Seats16; + ModelRendererTurbo Seats17; + ModelRendererTurbo Seats18; + ModelRendererTurbo Seats19; + ModelRendererTurbo Seats20; + ModelRendererTurbo Seats21; + ModelRendererTurbo Seats22; + ModelRendererTurbo Seats23; + ModelRendererTurbo Seats24; + ModelRendererTurbo Seats25; + ModelRendererTurbo Seats26; + ModelRendererTurbo Seats27; + ModelRendererTurbo Seats28; + ModelRendererTurbo Seats29; + ModelRendererTurbo Seats30; + ModelRendererTurbo Seats31; + ModelRendererTurbo Seats32; + ModelRendererTurbo Seats33; + ModelRendererTurbo Seats34; + ModelRendererTurbo Seats35; + ModelRendererTurbo Seats36; + ModelRendererTurbo Seats37; + ModelRendererTurbo Seats38; + ModelRendererTurbo Seats39; + ModelRendererTurbo Seats40; + ModelRendererTurbo Seats41; + ModelRendererTurbo Seats42; + ModelRendererTurbo Seats43; + ModelRendererTurbo Seats44; + ModelRendererTurbo Seats45; + ModelRendererTurbo Seats46; + ModelRendererTurbo Seats47; + ModelRendererTurbo Seats48; + ModelRendererTurbo Right4; + ModelRendererTurbo Left4; + ModelRendererTurbo Cab_32; + ModelRendererTurbo Cab_33; + ModelRendererTurbo Bottom; + ModelRendererTurbo Showel5; + ModelRendererTurbo Showel6; + ModelRendererTurbo Showel7; + ModelRendererTurbo Showel8; + ModelRendererTurbo Showel9; + ModelRendererTurbo Shape1; public ModelLocoDieselIC4_DSB_MG() { textureWidth = 256; textureHeight = 256; - Left1 = new ModelRenderer(this, 202, 0); + Left1 = new ModelRendererTurbo(this, 202, 0); Left1.addBox(0F, 0F, 0F, 2, 110, 6); Left1.setRotationPoint(9F, 18F, 0F); Left1.setTextureSize(256, 256); Left1.mirror = true; setRotation(Left1, 1.570796F, 0F, 0.2230717F); - Left2 = new ModelRenderer(this, 111, 0); + Left2 = new ModelRendererTurbo(this, 111, 0); Left2.addBox(0F, 0F, 0F, 2, 100, 15); Left2.setRotationPoint(10.1F, 13F, 10F); Left2.setTextureSize(256, 256); Left2.mirror = true; setRotation(Left2, 1.570796F, 0F, 0F); - Left3 = new ModelRenderer(this, 146, 0); + Left3 = new ModelRendererTurbo(this, 146, 0); Left3.addBox(0F, 0F, 0F, 2, 100, 6); Left3.setRotationPoint(10.25F, -1F, 10F); Left3.setTextureSize(256, 256); Left3.mirror = true; setRotation(Left3, 1.570796F, 0F, -0.2230717F); - Floor1 = new ModelRenderer(this, 0, 0); + Floor1 = new ModelRendererTurbo(this, 0, 0); Floor1.addBox(0F, 0F, 0F, 20, 111, 1); Floor1.setRotationPoint(-10F, 18F, -1F); Floor1.setTextureSize(256, 256); Floor1.mirror = true; setRotation(Floor1, 1.570796F, 0F, 0F); - Floor2 = new ModelRenderer(this, 25, 125); + Floor2 = new ModelRendererTurbo(this, 25, 125); Floor2.addBox(0F, 0F, 0F, 20, 111, 1); Floor2.setRotationPoint(-9F, 14F, -1F); Floor2.setTextureSize(256, 256); Floor2.mirror = true; setRotation(Floor2, 1.570796F, 0F, 0F); - Floor_3 = new ModelRenderer(this, 122, 225); + Floor_3 = new ModelRendererTurbo(this, 122, 225); Floor_3.addBox(0F, 0F, 0F, 1, 19, 11); Floor_3.setRotationPoint(10F, 13F, -12F); Floor_3.setTextureSize(256, 256); Floor_3.mirror = true; setRotation(Floor_3, 0F, 0F, 1.570796F); - Floor_4 = new ModelRenderer(this, 148, 226); + Floor_4 = new ModelRendererTurbo(this, 148, 226); Floor_4.addBox(0F, 0F, 0F, 1, 17, 11); Floor_4.setRotationPoint(9F, 17F, -12F); Floor_4.setTextureSize(256, 256); Floor_4.mirror = true; setRotation(Floor_4, -0.0371786F, 0F, 1.570796F); - Floor_5 = new ModelRenderer(this, 174, 230); + Floor_5 = new ModelRendererTurbo(this, 174, 230); Floor_5.addBox(0F, 0F, 0F, 1, 15, 9); Floor_5.setRotationPoint(-7F, 18F, -21F); Floor_5.setTextureSize(256, 256); Floor_5.mirror = true; setRotation(Floor_5, 0F, 0F, -1.570796F); - Ceiling = new ModelRenderer(this, 163, 0); + Ceiling = new ModelRendererTurbo(this, 163, 0); Ceiling.addBox(0F, 0F, 0F, 18, 100, 1); Ceiling.setRotationPoint(-8F, -6F, 10F); Ceiling.setTextureSize(256, 256); Ceiling.mirror = true; setRotation(Ceiling, 1.570796F, 0F, 0F); - Right1 = new ModelRenderer(this, 59, 0); + Right1 = new ModelRendererTurbo(this, 59, 0); Right1.addBox(0F, 0F, 0F, 2, 110, 6); Right1.setRotationPoint(-10F, 18.3F, 0F); Right1.setTextureSize(256, 256); Right1.mirror = true; setRotation(Right1, 1.570796F, 0F, -0.2230717F); - Right2 = new ModelRenderer(this, 76, 0); + Right2 = new ModelRendererTurbo(this, 76, 0); Right2.addBox(0F, 0F, 0F, 2, 100, 15); Right2.setRotationPoint(-11.2F, 13F, 10F); Right2.setTextureSize(256, 256); Right2.mirror = true; setRotation(Right2, 1.570796F, 0F, 0F); - Right3 = new ModelRenderer(this, 42, 0); + Right3 = new ModelRendererTurbo(this, 42, 0); Right3.addBox(0F, 0F, 0F, 2, 100, 6); Right3.setRotationPoint(-11F, -2F, 10F); Right3.setTextureSize(256, 256); Right3.mirror = true; setRotation(Right3, 1.570796F, 0F, 0.3346075F); - Cab_2 = new ModelRenderer(this, 0, 114); + Cab_2 = new ModelRendererTurbo(this, 0, 114); Cab_2.addBox(0F, 0F, 0F, 2, 20, 3); Cab_2.setRotationPoint(-7.5F, 20.3F, -19F); Cab_2.setTextureSize(256, 256); Cab_2.mirror = true; setRotation(Cab_2, 1.682332F, -0.1115358F, -0.2230717F); - Cab_3 = new ModelRenderer(this, 0, 138); + Cab_3 = new ModelRendererTurbo(this, 0, 138); Cab_3.addBox(0F, 0F, 0F, 2, 20, 4); Cab_3.setRotationPoint(-8F, 18F, -19F); Cab_3.setTextureSize(256, 256); Cab_3.mirror = true; setRotation(Cab_3, 1.682332F, -0.1115358F, -0.2230717F); - Cab_4 = new ModelRenderer(this, 11, 114); + Cab_4 = new ModelRendererTurbo(this, 11, 114); Cab_4.addBox(0F, 0F, 0F, 2, 20, 3); Cab_4.setRotationPoint(6.5F, 20F, -19F); Cab_4.setTextureSize(256, 256); Cab_4.mirror = true; setRotation(Cab_4, 1.682332F, 0.1115358F, 0.2230717F); - Cab_5 = new ModelRenderer(this, 12, 138); + Cab_5 = new ModelRendererTurbo(this, 12, 138); Cab_5.addBox(0F, 0F, 0F, 2, 20, 3); Cab_5.setRotationPoint(7.2F, 17F, -19F); Cab_5.setTextureSize(256, 256); Cab_5.mirror = true; setRotation(Cab_5, 1.682332F, 0.1115358F, 0.2230717F); - Cab_6 = new ModelRenderer(this, 101, 117); + Cab_6 = new ModelRendererTurbo(this, 101, 117); Cab_6.addBox(0F, 0F, 0F, 2, 30, 6); Cab_6.setRotationPoint(8.4F, 11.3F, -14F); Cab_6.setTextureSize(256, 256); Cab_6.mirror = true; setRotation(Cab_6, 1.979761F, 0.2230717F, -0.2974289F); - Cab_7 = new ModelRenderer(this, 118, 118); + Cab_7 = new ModelRendererTurbo(this, 118, 118); Cab_7.addBox(0F, 0F, 0F, 2, 28, 6); Cab_7.setRotationPoint(-8.9F, 10.4F, -12F); Cab_7.setTextureSize(256, 256); Cab_7.mirror = true; setRotation(Cab_7, 2.01694F, -0.2230717F, 0.2602503F); - Cab_8 = new ModelRenderer(this, 12, 198); + Cab_8 = new ModelRendererTurbo(this, 12, 198); Cab_8.addBox(0F, 0F, 0F, 2, 7, 4); Cab_8.setRotationPoint(-5.3F, 19F, -25F); Cab_8.setTextureSize(256, 256); Cab_8.mirror = true; setRotation(Cab_8, 1.384903F, -0.4089647F, -0.2230717F); - Cab_9 = new ModelRenderer(this, 0, 230); + Cab_9 = new ModelRendererTurbo(this, 0, 230); Cab_9.addBox(0F, 0F, 0F, 2, 16, 4); Cab_9.setRotationPoint(-7.3F, 17.5F, -24F); Cab_9.setTextureSize(256, 256); Cab_9.mirror = true; setRotation(Cab_9, 2.202833F, -0.2602503F, 0.2602503F); - Cab_10 = new ModelRenderer(this, 240, 234); + Cab_10 = new ModelRendererTurbo(this, 240, 234); Cab_10.addBox(0F, 0F, 0F, 2, 14, 5); Cab_10.setRotationPoint(6F, 18.5F, -23F); Cab_10.setTextureSize(256, 256); Cab_10.mirror = true; setRotation(Cab_10, 2.165654F, 0.4833219F, -0.2974289F); - Cab_11 = new ModelRenderer(this, 10, 210); + Cab_11 = new ModelRendererTurbo(this, 10, 210); Cab_11.addBox(0F, 0F, 0F, 2, 7, 5); Cab_11.setRotationPoint(4F, 19F, -24F); Cab_11.setTextureSize(256, 256); Cab_11.mirror = true; setRotation(Cab_11, 1.422082F, 0.4461433F, 0.1487144F); - Cab_12 = new ModelRenderer(this, 23, 238); + Cab_12 = new ModelRendererTurbo(this, 23, 238); Cab_12.addBox(0F, 0F, 0F, 7, 16, 1); Cab_12.setRotationPoint(8F, 6F, -15F); Cab_12.setTextureSize(256, 256); Cab_12.mirror = true; setRotation(Cab_12, 0F, 0F, 1.570796F); - Cab_13 = new ModelRenderer(this, 46, 240); + Cab_13 = new ModelRendererTurbo(this, 46, 240); Cab_13.addBox(0F, 0F, 0F, 6, 13, 1); Cab_13.setRotationPoint(7F, 13F, -22F); Cab_13.setTextureSize(256, 256); Cab_13.mirror = true; setRotation(Cab_13, 0F, 0F, 1.570796F); - Cab_14 = new ModelRenderer(this, 68, 222); + Cab_14 = new ModelRendererTurbo(this, 68, 222); Cab_14.addBox(0F, 0F, 0F, 12, 14, 1); Cab_14.setRotationPoint(-6F, 5.4F, -15F); Cab_14.setTextureSize(256, 256); Cab_14.mirror = true; setRotation(Cab_14, -0.9294653F, 0F, 0F); - Cab_15 = new ModelRenderer(this, 75, 192); + Cab_15 = new ModelRendererTurbo(this, 75, 192); Cab_15.addBox(0F, 0F, 0F, 2, 28, 1); Cab_15.setRotationPoint(8F, -7F, 10F); Cab_15.setTextureSize(256, 256); Cab_15.mirror = true; setRotation(Cab_15, -1.115358F, 0.1487144F, -0.0371786F); - Cab_16 = new ModelRenderer(this, 68, 192); + Cab_16 = new ModelRendererTurbo(this, 68, 192); Cab_16.addBox(0F, 0F, 0F, 2, 27, 1); Cab_16.setRotationPoint(-8F, -7F, 10F); Cab_16.setTextureSize(256, 256); Cab_16.mirror = true; setRotation(Cab_16, -1.115358F, -0.0743572F, 0F); - Cab_17 = new ModelRenderer(this, 61, 240); + Cab_17 = new ModelRendererTurbo(this, 61, 240); Cab_17.addBox(0F, 0F, 0F, 14, 14, 1); Cab_17.setRotationPoint(-6F, -6.95F, 10F); Cab_17.setTextureSize(256, 256); Cab_17.mirror = true; setRotation(Cab_17, -1.115358F, 0F, 0F); - Cab_18 = new ModelRenderer(this, 92, 240); + Cab_18 = new ModelRendererTurbo(this, 92, 240); Cab_18.addBox(0F, 0F, 0F, 13, 15, 1); Cab_18.setRotationPoint(-6F, -1F, -2F); Cab_18.setTextureSize(256, 256); Cab_18.mirror = true; setRotation(Cab_18, -1.115358F, 0F, 0F); - Cab_19 = new ModelRenderer(this, 95, 214); + Cab_19 = new ModelRendererTurbo(this, 95, 214); Cab_19.addBox(0F, 0F, 0F, 2, 15, 5); Cab_19.setRotationPoint(8.4F, 14F, -14F); Cab_19.setTextureSize(256, 256); Cab_19.mirror = true; setRotation(Cab_19, 1.663743F, 0.1487144F, -0.0371786F); - Cab_20 = new ModelRenderer(this, 89, 170); + Cab_20 = new ModelRendererTurbo(this, 89, 170); Cab_20.addBox(0F, 0F, 0F, 2, 10, 5); Cab_20.setRotationPoint(10.5F, 12.6F, 0F); Cab_20.setTextureSize(256, 256); Cab_20.mirror = true; setRotation(Cab_20, 1.570796F, -0.0371786F, -0.0371786F); - Cab_21 = new ModelRenderer(this, 79, 138); + Cab_21 = new ModelRendererTurbo(this, 79, 138); Cab_21.addBox(0F, 0F, 0F, 1, 12, 3); Cab_21.setRotationPoint(7.9F, 7F, -14F); Cab_21.setTextureSize(256, 256); Cab_21.mirror = true; setRotation(Cab_21, -0.8272241F, 0.3717861F, -0.1858931F); - Cab_22 = new ModelRenderer(this, 83, 200); + Cab_22 = new ModelRendererTurbo(this, 83, 200); Cab_22.addBox(0F, 0F, 0F, 1, 4, 5); Cab_22.setRotationPoint(7.4F, 10F, -18F); Cab_22.setTextureSize(256, 256); Cab_22.mirror = true; setRotation(Cab_22, 0.0371786F, 0.3717861F, -0.0371786F); - Cab_23 = new ModelRenderer(this, 96, 192); + Cab_23 = new ModelRendererTurbo(this, 96, 192); Cab_23.addBox(0F, 0F, 0F, 1, 10, 6); Cab_23.setRotationPoint(-11F, 13F, 0F); Cab_23.setTextureSize(256, 256); Cab_23.mirror = true; setRotation(Cab_23, 1.570796F, 0F, -0.0371786F); - Cab_24 = new ModelRenderer(this, 110, 204); + Cab_24 = new ModelRendererTurbo(this, 110, 204); Cab_24.addBox(0F, 0F, 0F, 1, 16, 5); Cab_24.setRotationPoint(-8.7F, 14F, -15F); Cab_24.setTextureSize(256, 256); Cab_24.mirror = true; setRotation(Cab_24, 1.663743F, -0.1487144F, -0.0371786F); - Cab_25 = new ModelRenderer(this, 88, 138); + Cab_25 = new ModelRendererTurbo(this, 88, 138); Cab_25.addBox(0F, 0F, 0F, 1, 12, 4); Cab_25.setRotationPoint(-8.6F, 7F, -13F); Cab_25.setTextureSize(256, 256); Cab_25.mirror = true; setRotation(Cab_25, -0.9015813F, -0.2974289F, 0.1487144F); - Cab_26 = new ModelRenderer(this, 0, 163); + Cab_26 = new ModelRendererTurbo(this, 0, 163); Cab_26.addBox(0F, 0F, 0F, 1, 27, 4); Cab_26.setRotationPoint(9.5F, 12F, -13F); Cab_26.setTextureSize(256, 256); Cab_26.mirror = true; setRotation(Cab_26, 1.979761F, 0.1115358F, -0.1115358F); - Cab_27 = new ModelRenderer(this, 104, 154); + Cab_27 = new ModelRendererTurbo(this, 104, 154); Cab_27.addBox(0F, 0F, 0F, 1, 23, 4); Cab_27.setRotationPoint(-8F, 9F, -12F); Cab_27.setTextureSize(256, 256); Cab_27.mirror = true; setRotation(Cab_27, 1.663743F, -0.1487144F, 0.0371786F); - Cab_28 = new ModelRenderer(this, 115, 154); + Cab_28 = new ModelRendererTurbo(this, 115, 154); Cab_28.addBox(0F, 0F, 0F, 1, 14, 4); Cab_28.setRotationPoint(10F, 8F, -4F); Cab_28.setTextureSize(256, 256); Cab_28.mirror = true; setRotation(Cab_28, 1.552207F, 0.0743572F, -0.0371786F); - Cab_29 = new ModelRenderer(this, 112, 188); + Cab_29 = new ModelRendererTurbo(this, 112, 188); Cab_29.addBox(0F, 0F, 0F, 1, 12, 2); Cab_29.setRotationPoint(-9F, 4F, -1F); Cab_29.setTextureSize(256, 256); Cab_29.mirror = true; setRotation(Cab_29, 1.645154F, -0.1858931F, -0.0371786F); - Cab_30 = new ModelRenderer(this, 115, 175); + Cab_30 = new ModelRendererTurbo(this, 115, 175); Cab_30.addBox(0F, 0F, 0F, 1, 7, 3); Cab_30.setRotationPoint(-10F, 2F, 4F); Cab_30.setTextureSize(256, 256); Cab_30.mirror = true; setRotation(Cab_30, 1.645154F, -0.1858931F, -0.0371786F); - Cab_31 = new ModelRenderer(this, 124, 175); + Cab_31 = new ModelRendererTurbo(this, 124, 175); Cab_31.addBox(0F, 0F, 0F, 1, 6, 3); Cab_31.setRotationPoint(10.4F, 5F, 5F); Cab_31.setTextureSize(256, 256); Cab_31.mirror = true; setRotation(Cab_31, 1.645154F, 0.1115358F, 0F); - Coupler_1 = new ModelRenderer(this, 12, 164); + Coupler_1 = new ModelRendererTurbo(this, 12, 164); Coupler_1.addBox(0F, 0F, 0F, 4, 8, 2); Coupler_1.setRotationPoint(4F, 15F, -24F); Coupler_1.setTextureSize(256, 256); Coupler_1.mirror = true; setRotation(Coupler_1, 0F, 0F, 1.570796F); - Coupler_2 = new ModelRenderer(this, 12, 175); + Coupler_2 = new ModelRendererTurbo(this, 12, 175); Coupler_2.addBox(0F, 0F, 0F, 2, 2, 2); Coupler_2.setRotationPoint(-3F, 16F, -26F); Coupler_2.setTextureSize(256, 256); Coupler_2.mirror = true; setRotation(Coupler_2, 0F, 0F, 0F); - ControlPanel1 = new ModelRenderer(this, 68, 182); + ControlPanel1 = new ModelRendererTurbo(this, 68, 182); ControlPanel1.addBox(0F, 0F, 0F, 5, 5, 4); ControlPanel1.setRotationPoint(4F, 8F, -14F); ControlPanel1.setTextureSize(256, 256); ControlPanel1.mirror = true; setRotation(ControlPanel1, 0F, -0.4363323F, 0F); - ControlPanel2 = new ModelRenderer(this, 69, 157); + ControlPanel2 = new ModelRendererTurbo(this, 69, 157); ControlPanel2.addBox(0F, 0F, 0F, 5, 5, 4); ControlPanel2.setRotationPoint(-8F, 8F, -12F); ControlPanel2.setTextureSize(256, 256); ControlPanel2.mirror = true; setRotation(ControlPanel2, 0F, 0.4363323F, 0F); - ControlPanel3 = new ModelRenderer(this, 69, 168); + ControlPanel3 = new ModelRendererTurbo(this, 69, 168); ControlPanel3.addBox(0F, 0F, 0F, 5, 8, 4); ControlPanel3.setRotationPoint(4F, 8F, -14F); ControlPanel3.setTextureSize(256, 256); ControlPanel3.mirror = true; setRotation(ControlPanel3, 0F, 0F, 1.570796F); - ControlPanel4 = new ModelRenderer(this, 69, 146); + ControlPanel4 = new ModelRendererTurbo(this, 69, 146); ControlPanel4.addBox(0F, 0F, 0F, 3, 8, 1); ControlPanel4.setRotationPoint(4F, 5F, -14F); ControlPanel4.setTextureSize(256, 256); ControlPanel4.mirror = true; setRotation(ControlPanel4, 0F, 0F, 1.570796F); - ControlPanel5 = new ModelRenderer(this, 68, 138); + ControlPanel5 = new ModelRendererTurbo(this, 68, 138); ControlPanel5.addBox(0F, 0F, 0F, 3, 5, 1); ControlPanel5.setRotationPoint(4F, 8F, -14F); ControlPanel5.setTextureSize(256, 256); ControlPanel5.mirror = true; setRotation(ControlPanel5, 0.4363323F, 0F, -1.570796F); - ControlPanel6 = new ModelRenderer(this, 68, 131); + ControlPanel6 = new ModelRendererTurbo(this, 68, 131); ControlPanel6.addBox(0F, 0F, 0F, 3, 5, 1); ControlPanel6.setRotationPoint(-8F, 8F, -12F); ControlPanel6.setTextureSize(256, 256); ControlPanel6.mirror = true; setRotation(ControlPanel6, -0.4363323F, 0F, -1.570796F); - WallToCab = new ModelRenderer(this, 196, 234); + WallToCab = new ModelRendererTurbo(this, 196, 234); WallToCab.addBox(0F, 0F, 0F, 20, 20, 1); WallToCab.setRotationPoint(-10F, -6F, 10F); WallToCab.setTextureSize(256, 256); WallToCab.mirror = true; setRotation(WallToCab, 0F, 0F, 0F); - MiddleWall1 = new ModelRenderer(this, 196, 212); + MiddleWall1 = new ModelRendererTurbo(this, 196, 212); MiddleWall1.addBox(0F, 0F, 0F, 20, 20, 1); MiddleWall1.setRotationPoint(-10F, -6F, 68F); MiddleWall1.setTextureSize(256, 256); MiddleWall1.mirror = true; setRotation(MiddleWall1, 0F, 0F, 0F); - MiddleWall2 = new ModelRenderer(this, 196, 168); + MiddleWall2 = new ModelRendererTurbo(this, 196, 168); MiddleWall2.addBox(0F, 0F, 0F, 20, 20, 1); MiddleWall2.setRotationPoint(-9F, -6F, 48F); MiddleWall2.setTextureSize(256, 256); MiddleWall2.mirror = true; setRotation(MiddleWall2, 0F, 0F, 0F); - BackWall = new ModelRenderer(this, 196, 190); + BackWall = new ModelRendererTurbo(this, 196, 190); BackWall.addBox(0F, 0F, 0F, 21, 20, 1); BackWall.setRotationPoint(-10F, -6F, 108F); BackWall.setTextureSize(256, 256); BackWall.mirror = true; setRotation(BackWall, 0F, 0F, 0F); - DriverChair1 = new ModelRenderer(this, 82, 212); + DriverChair1 = new ModelRendererTurbo(this, 82, 212); DriverChair1.addBox(0F, 0F, 0F, 3, 4, 1); DriverChair1.setRotationPoint(2F, 11F, -4F); DriverChair1.setTextureSize(256, 256); DriverChair1.mirror = true; setRotation(DriverChair1, 0F, 0F, 1.570796F); - DriverChair2 = new ModelRenderer(this, 69, 119); + DriverChair2 = new ModelRendererTurbo(this, 69, 119); DriverChair2.addBox(0F, 0F, 0F, 1, 6, 4); DriverChair2.setRotationPoint(3F, 10F, -6F); DriverChair2.setTextureSize(256, 256); DriverChair2.mirror = true; setRotation(DriverChair2, 0F, 0F, 1.570796F); - DriverChair3 = new ModelRenderer(this, 90, 158); + DriverChair3 = new ModelRendererTurbo(this, 90, 158); DriverChair3.addBox(0F, 0F, 0F, 6, 5, 1); DriverChair3.setRotationPoint(-3F, 5F, -3F); DriverChair3.setTextureSize(256, 256); DriverChair3.mirror = true; setRotation(DriverChair3, 0F, 0F, 0F); - Wheels1 = new ModelRenderer(this, 124, 186); + Wheels1 = new ModelRendererTurbo(this, 124, 186); Wheels1.addBox(0F, 0F, 0F, 6, 21, 16); Wheels1.setRotationPoint(11F, 18F, 2F); Wheels1.setTextureSize(256, 256); Wheels1.mirror = true; setRotation(Wheels1, 0F, 0F, 1.570796F); - Wheels2 = new ModelRenderer(this, 134, 151); + Wheels2 = new ModelRendererTurbo(this, 134, 151); Wheels2.addBox(0F, 0F, 0F, 6, 21, 12); Wheels2.setRotationPoint(11F, 18F, 102F); Wheels2.setTextureSize(256, 256); Wheels2.mirror = true; setRotation(Wheels2, 0F, 0F, 1.570796F); - Seats1 = new ModelRenderer(this, 136, 148); + Seats1 = new ModelRendererTurbo(this, 136, 148); Seats1.addBox(0F, 0F, 0F, 7, 2, 1); Seats1.setRotationPoint(-9F, 12F, 11F); Seats1.setTextureSize(256, 256); Seats1.mirror = true; setRotation(Seats1, 0F, 0F, 0F); - Seats2 = new ModelRenderer(this, 136, 148); + Seats2 = new ModelRendererTurbo(this, 136, 148); Seats2.addBox(0F, 0F, 0F, 7, 2, 1); Seats2.setRotationPoint(3F, 12F, 11F); Seats2.setTextureSize(256, 256); Seats2.mirror = true; setRotation(Seats2, 0F, 0F, 0F); - Seats3 = new ModelRenderer(this, 136, 148); + Seats3 = new ModelRendererTurbo(this, 136, 148); Seats3.addBox(0F, 0F, 0F, 7, 2, 1); Seats3.setRotationPoint(-9F, 12F, 20F); Seats3.setTextureSize(256, 256); Seats3.mirror = true; setRotation(Seats3, 0F, 0F, 0F); - Seats4 = new ModelRenderer(this, 136, 148); + Seats4 = new ModelRendererTurbo(this, 136, 148); Seats4.addBox(0F, 0F, 0F, 7, 2, 1); Seats4.setRotationPoint(3F, 12F, 20F); Seats4.setTextureSize(256, 256); Seats4.mirror = true; setRotation(Seats4, 0F, 0F, 0F); - Seats5 = new ModelRenderer(this, 136, 148); + Seats5 = new ModelRendererTurbo(this, 136, 148); Seats5.addBox(0F, 0F, 0F, 7, 2, 1); Seats5.setRotationPoint(-9F, 12F, 30F); Seats5.setTextureSize(256, 256); Seats5.mirror = true; setRotation(Seats5, 0F, 0F, 0F); - Seats6 = new ModelRenderer(this, 136, 148); + Seats6 = new ModelRendererTurbo(this, 136, 148); Seats6.addBox(0F, 0F, 0F, 7, 2, 1); Seats6.setRotationPoint(3F, 12F, 30F); Seats6.setTextureSize(256, 256); Seats6.mirror = true; setRotation(Seats6, 0F, 0F, 0F); - Seats7 = new ModelRenderer(this, 136, 148); + Seats7 = new ModelRendererTurbo(this, 136, 148); Seats7.addBox(0F, 0F, 0F, 7, 2, 1); Seats7.setRotationPoint(-9F, 12F, 40F); Seats7.setTextureSize(256, 256); Seats7.mirror = true; setRotation(Seats7, 0F, 0F, 0F); - Seats8 = new ModelRenderer(this, 136, 148); + Seats8 = new ModelRendererTurbo(this, 136, 148); Seats8.addBox(0F, 0F, 0F, 7, 2, 1); Seats8.setRotationPoint(3F, 12F, 40F); Seats8.setTextureSize(256, 256); Seats8.mirror = true; setRotation(Seats8, 0F, 0F, 0F); - Seats9 = new ModelRenderer(this, 136, 148); + Seats9 = new ModelRendererTurbo(this, 136, 148); Seats9.addBox(0F, 0F, 0F, 7, 2, 1); Seats9.setRotationPoint(3F, 12F, 70F); Seats9.setTextureSize(256, 256); Seats9.mirror = true; setRotation(Seats9, 0F, 0F, 0F); - Seats10 = new ModelRenderer(this, 136, 148); + Seats10 = new ModelRendererTurbo(this, 136, 148); Seats10.addBox(0F, 0F, 0F, 7, 2, 1); Seats10.setRotationPoint(-9F, 12F, 70F); Seats10.setTextureSize(256, 256); Seats10.mirror = true; setRotation(Seats10, 0F, 0F, 0F); - Seats11 = new ModelRenderer(this, 136, 148); + Seats11 = new ModelRendererTurbo(this, 136, 148); Seats11.addBox(0F, 0F, 0F, 7, 2, 1); Seats11.setRotationPoint(-9F, 12F, 80F); Seats11.setTextureSize(256, 256); Seats11.mirror = true; setRotation(Seats11, 0F, 0F, 0F); - Seats12 = new ModelRenderer(this, 136, 148); + Seats12 = new ModelRendererTurbo(this, 136, 148); Seats12.addBox(0F, 0F, 0F, 7, 2, 1); Seats12.setRotationPoint(3F, 12F, 80F); Seats12.setTextureSize(256, 256); Seats12.mirror = true; setRotation(Seats12, 0F, 0F, 0F); - Seats13 = new ModelRenderer(this, 136, 148); + Seats13 = new ModelRendererTurbo(this, 136, 148); Seats13.addBox(0F, 0F, 0F, 7, 2, 1); Seats13.setRotationPoint(3F, 12F, 90F); Seats13.setTextureSize(256, 256); Seats13.mirror = true; setRotation(Seats13, 0F, 0F, 0F); - Seats14 = new ModelRenderer(this, 136, 148); + Seats14 = new ModelRendererTurbo(this, 136, 148); Seats14.addBox(0F, 0F, 0F, 7, 2, 1); Seats14.setRotationPoint(-9F, 12F, 90F); Seats14.setTextureSize(256, 256); Seats14.mirror = true; setRotation(Seats14, 0F, 0F, 0F); - Seats15 = new ModelRenderer(this, 136, 148); + Seats15 = new ModelRendererTurbo(this, 136, 148); Seats15.addBox(0F, 0F, 0F, 7, 2, 1); Seats15.setRotationPoint(3F, 12F, 100F); Seats15.setTextureSize(256, 256); Seats15.mirror = true; setRotation(Seats15, 0F, 0F, 0F); - Seats16 = new ModelRenderer(this, 136, 148); + Seats16 = new ModelRendererTurbo(this, 136, 148); Seats16.addBox(0F, 0F, 0F, 7, 2, 1); Seats16.setRotationPoint(-9F, 12F, 100F); Seats16.setTextureSize(256, 256); Seats16.mirror = true; setRotation(Seats16, 0F, 0F, 0F); - Seats17 = new ModelRenderer(this, 136, 134); + Seats17 = new ModelRendererTurbo(this, 136, 134); Seats17.addBox(0F, 0F, 0F, 1, 7, 3); Seats17.setRotationPoint(10F, 11F, 11F); Seats17.setTextureSize(256, 256); Seats17.mirror = true; setRotation(Seats17, 0F, 0F, 1.570796F); - Seats18 = new ModelRenderer(this, 136, 134); + Seats18 = new ModelRendererTurbo(this, 136, 134); Seats18.addBox(0F, 0F, 0F, 1, 7, 3); Seats18.setRotationPoint(-2F, 11F, 11F); Seats18.setTextureSize(256, 256); Seats18.mirror = true; setRotation(Seats18, 0F, 0F, 1.570796F); - Seats19 = new ModelRenderer(this, 136, 134); + Seats19 = new ModelRendererTurbo(this, 136, 134); Seats19.addBox(0F, 0F, 0F, 1, 7, 3); Seats19.setRotationPoint(-2F, 11F, 70F); Seats19.setTextureSize(256, 256); Seats19.mirror = true; setRotation(Seats19, 0F, 0F, 1.570796F); - Seats20 = new ModelRenderer(this, 136, 134); + Seats20 = new ModelRendererTurbo(this, 136, 134); Seats20.addBox(0F, 0F, 0F, 1, 7, 3); Seats20.setRotationPoint(10F, 11F, 70F); Seats20.setTextureSize(256, 256); Seats20.mirror = true; setRotation(Seats20, 0F, 0F, 1.570796F); - Seats21 = new ModelRenderer(this, 136, 120); + Seats21 = new ModelRendererTurbo(this, 136, 120); Seats21.addBox(0F, 0F, 0F, 1, 7, 5); Seats21.setRotationPoint(-2F, 11F, 18F); Seats21.setTextureSize(256, 256); Seats21.mirror = true; setRotation(Seats21, 0F, 0F, 1.570796F); - Seats22 = new ModelRenderer(this, 136, 120); + Seats22 = new ModelRendererTurbo(this, 136, 120); Seats22.addBox(0F, 0F, 0F, 1, 7, 5); Seats22.setRotationPoint(10F, 11F, 18F); Seats22.setTextureSize(256, 256); Seats22.mirror = true; setRotation(Seats22, 0F, 0F, 1.570796F); - Seats23 = new ModelRenderer(this, 136, 120); + Seats23 = new ModelRendererTurbo(this, 136, 120); Seats23.addBox(0F, 0F, 0F, 1, 7, 5); Seats23.setRotationPoint(10F, 11F, 28F); Seats23.setTextureSize(256, 256); Seats23.mirror = true; setRotation(Seats23, 0F, 0F, 1.570796F); - Seats24 = new ModelRenderer(this, 136, 120); + Seats24 = new ModelRendererTurbo(this, 136, 120); Seats24.addBox(0F, 0F, 0F, 1, 7, 5); Seats24.setRotationPoint(-2F, 11F, 28F); Seats24.setTextureSize(256, 256); Seats24.mirror = true; setRotation(Seats24, 0F, 0F, 1.570796F); - Seats25 = new ModelRenderer(this, 136, 120); + Seats25 = new ModelRendererTurbo(this, 136, 120); Seats25.addBox(0F, 0F, 0F, 1, 7, 5); Seats25.setRotationPoint(-2F, 11F, 38F); Seats25.setTextureSize(256, 256); Seats25.mirror = true; setRotation(Seats25, 0F, 0F, 1.570796F); - Seats26 = new ModelRenderer(this, 136, 120); + Seats26 = new ModelRendererTurbo(this, 136, 120); Seats26.addBox(0F, 0F, 0F, 1, 7, 5); Seats26.setRotationPoint(10F, 11F, 78F); Seats26.setTextureSize(256, 256); Seats26.mirror = true; setRotation(Seats26, 0F, 0F, 1.570796F); - Seats27 = new ModelRenderer(this, 136, 120); + Seats27 = new ModelRendererTurbo(this, 136, 120); Seats27.addBox(0F, 0F, 0F, 1, 7, 5); Seats27.setRotationPoint(-2F, 11F, 78F); Seats27.setTextureSize(256, 256); Seats27.mirror = true; setRotation(Seats27, 0F, 0F, 1.570796F); - Seats28 = new ModelRenderer(this, 136, 120); + Seats28 = new ModelRendererTurbo(this, 136, 120); Seats28.addBox(0F, 0F, 0F, 1, 7, 5); Seats28.setRotationPoint(-2F, 11F, 88F); Seats28.setTextureSize(256, 256); Seats28.mirror = true; setRotation(Seats28, 0F, 0F, 1.570796F); - Seats29 = new ModelRenderer(this, 138, 120); + Seats29 = new ModelRendererTurbo(this, 138, 120); Seats29.addBox(0F, 0F, 0F, 1, 7, 5); Seats29.setRotationPoint(10F, 11F, 88F); Seats29.setTextureSize(256, 256); Seats29.mirror = true; setRotation(Seats29, 0F, 0F, 1.570796F); - Seats30 = new ModelRenderer(this, 136, 120); + Seats30 = new ModelRendererTurbo(this, 136, 120); Seats30.addBox(0F, 0F, 0F, 1, 7, 5); Seats30.setRotationPoint(-2F, 11F, 98F); Seats30.setTextureSize(256, 256); Seats30.mirror = true; setRotation(Seats30, 0F, 0F, 1.570796F); - Seats31 = new ModelRenderer(this, 136, 120); + Seats31 = new ModelRendererTurbo(this, 136, 120); Seats31.addBox(0F, 0F, 0F, 1, 7, 5); Seats31.setRotationPoint(10F, 11F, 98F); Seats31.setTextureSize(256, 256); Seats31.mirror = true; setRotation(Seats31, 0F, 0F, 1.570796F); - Seats32 = new ModelRenderer(this, 178, 223); + Seats32 = new ModelRendererTurbo(this, 178, 223); Seats32.addBox(0F, 0F, 0F, 7, 5, 1); Seats32.setRotationPoint(3F, 6F, 11F); Seats32.setTextureSize(256, 256); Seats32.mirror = true; setRotation(Seats32, 0F, 0F, 0F); - Seats33 = new ModelRenderer(this, 178, 223); + Seats33 = new ModelRendererTurbo(this, 178, 223); Seats33.addBox(0F, 0F, 0F, 7, 5, 1); Seats33.setRotationPoint(-9F, 6F, 11F); Seats33.setTextureSize(256, 256); Seats33.mirror = true; setRotation(Seats33, 0F, 0F, 0F); - Seats34 = new ModelRenderer(this, 178, 216); + Seats34 = new ModelRendererTurbo(this, 178, 216); Seats34.addBox(0F, 0F, 0F, 7, 5, 1); Seats34.setRotationPoint(-9F, 6F, 20F); Seats34.setTextureSize(256, 256); Seats34.mirror = true; setRotation(Seats34, 0F, 0F, 0F); - Seats35 = new ModelRenderer(this, 178, 216); + Seats35 = new ModelRendererTurbo(this, 178, 216); Seats35.addBox(0F, 0F, 0F, 7, 5, 1); Seats35.setRotationPoint(3F, 6F, 20F); Seats35.setTextureSize(256, 256); Seats35.mirror = true; setRotation(Seats35, 0F, 0F, 0F); - Seats36 = new ModelRenderer(this, 178, 216); + Seats36 = new ModelRendererTurbo(this, 178, 216); Seats36.addBox(0F, 0F, 0F, 7, 5, 1); Seats36.setRotationPoint(-9F, 6F, 30F); Seats36.setTextureSize(256, 256); Seats36.mirror = true; setRotation(Seats36, 0F, 0F, 0F); - Seats37 = new ModelRenderer(this, 178, 216); + Seats37 = new ModelRendererTurbo(this, 178, 216); Seats37.addBox(0F, 0F, 0F, 7, 5, 1); Seats37.setRotationPoint(3F, 6F, 30F); Seats37.setTextureSize(256, 256); Seats37.mirror = true; setRotation(Seats37, 0F, 0F, 0F); - Seats38 = new ModelRenderer(this, 136, 120); + Seats38 = new ModelRendererTurbo(this, 136, 120); Seats38.addBox(0F, 0F, 0F, 1, 7, 5); Seats38.setRotationPoint(10F, 11F, 38F); Seats38.setTextureSize(256, 256); Seats38.mirror = true; setRotation(Seats38, 0F, 0F, 1.570796F); - Seats39 = new ModelRenderer(this, 178, 216); + Seats39 = new ModelRendererTurbo(this, 178, 216); Seats39.addBox(0F, 0F, 0F, 7, 5, 1); Seats39.setRotationPoint(-9F, 6F, 40F); Seats39.setTextureSize(256, 256); Seats39.mirror = true; setRotation(Seats39, 0F, 0F, 0F); - Seats40 = new ModelRenderer(this, 178, 216); + Seats40 = new ModelRendererTurbo(this, 178, 216); Seats40.addBox(0F, 0F, 0F, 7, 5, 1); Seats40.setRotationPoint(3F, 6F, 40F); Seats40.setTextureSize(256, 256); Seats40.mirror = true; setRotation(Seats40, 0F, 0F, 0F); - Seats41 = new ModelRenderer(this, 178, 223); + Seats41 = new ModelRendererTurbo(this, 178, 223); Seats41.addBox(0F, 0F, 0F, 7, 5, 1); Seats41.setRotationPoint(-9F, 6F, 70F); Seats41.setTextureSize(256, 256); Seats41.mirror = true; setRotation(Seats41, 0F, 0F, 0F); - Seats42 = new ModelRenderer(this, 178, 223); + Seats42 = new ModelRendererTurbo(this, 178, 223); Seats42.addBox(0F, 0F, 0F, 7, 5, 1); Seats42.setRotationPoint(3F, 6F, 70F); Seats42.setTextureSize(256, 256); Seats42.mirror = true; setRotation(Seats42, 0F, 0F, 0F); - Seats43 = new ModelRenderer(this, 178, 216); + Seats43 = new ModelRendererTurbo(this, 178, 216); Seats43.addBox(0F, 0F, 0F, 7, 5, 1); Seats43.setRotationPoint(-9F, 6F, 80F); Seats43.setTextureSize(256, 256); Seats43.mirror = true; setRotation(Seats43, 0F, 0F, 0F); - Seats44 = new ModelRenderer(this, 178, 216); + Seats44 = new ModelRendererTurbo(this, 178, 216); Seats44.addBox(0F, 0F, 0F, 7, 5, 1); Seats44.setRotationPoint(3F, 6F, 80F); Seats44.setTextureSize(256, 256); Seats44.mirror = true; setRotation(Seats44, 0F, 0F, 0F); - Seats45 = new ModelRenderer(this, 178, 216); + Seats45 = new ModelRendererTurbo(this, 178, 216); Seats45.addBox(0F, 0F, 0F, 7, 5, 1); Seats45.setRotationPoint(-9F, 6F, 90F); Seats45.setTextureSize(256, 256); Seats45.mirror = true; setRotation(Seats45, 0F, 0F, 0F); - Seats46 = new ModelRenderer(this, 178, 216); + Seats46 = new ModelRendererTurbo(this, 178, 216); Seats46.addBox(0F, 0F, 0F, 7, 5, 1); Seats46.setRotationPoint(3F, 6F, 90F); Seats46.setTextureSize(256, 256); Seats46.mirror = true; setRotation(Seats46, 0F, 0F, 0F); - Seats47 = new ModelRenderer(this, 178, 216); + Seats47 = new ModelRendererTurbo(this, 178, 216); Seats47.addBox(0F, 0F, 0F, 7, 5, 1); Seats47.setRotationPoint(-9F, 6F, 100F); Seats47.setTextureSize(256, 256); Seats47.mirror = true; setRotation(Seats47, 0F, 0F, 0F); - Seats48 = new ModelRenderer(this, 178, 216); + Seats48 = new ModelRendererTurbo(this, 178, 216); Seats48.addBox(0F, 0F, 0F, 7, 5, 1); Seats48.setRotationPoint(3F, 6F, 100F); Seats48.setTextureSize(256, 256); Seats48.mirror = true; setRotation(Seats48, 0F, 0F, 0F); - Right4 = new ModelRenderer(this, 172, 128); + Right4 = new ModelRendererTurbo(this, 172, 128); Right4.addBox(0F, 0F, 0F, 1, 82, 4); Right4.setRotationPoint(-9F, 22F, 19F); Right4.setTextureSize(256, 256); Right4.mirror = true; setRotation(Right4, 1.570796F, 0F, -0.2974289F); - Left4 = new ModelRenderer(this, 246, 146); + Left4 = new ModelRendererTurbo(this, 246, 146); Left4.addBox(0F, 0F, 0F, 1, 82, 4); Left4.setRotationPoint(9F, 22F, 19F); Left4.setTextureSize(256, 256); Left4.mirror = true; setRotation(Left4, 1.570796F, 0F, 0.2974289F); - Cab_32 = new ModelRenderer(this, 150, 118); + Cab_32 = new ModelRendererTurbo(this, 150, 118); Cab_32.addBox(0F, 0F, 0F, 2, 20, 4); Cab_32.setRotationPoint(5.9F, 23.8F, -18F); Cab_32.setTextureSize(256, 256); Cab_32.mirror = true; setRotation(Cab_32, 1.682332F, 0.1115358F, 0.2230717F); - Cab_33 = new ModelRenderer(this, 150, 118); + Cab_33 = new ModelRendererTurbo(this, 150, 118); Cab_33.addBox(0F, 0F, 0F, 2, 20, 4); Cab_33.setRotationPoint(-7F, 23.8F, -18F); Cab_33.setTextureSize(256, 256); Cab_33.mirror = true; setRotation(Cab_33, 1.682332F, -0.1115358F, -0.2230717F); - Bottom = new ModelRenderer(this, 220, 0); + Bottom = new ModelRendererTurbo(this, 220, 0); Bottom.addBox(0F, 0F, 0F, 17, 82, 1); Bottom.setRotationPoint(-8F, 22F, 19F); Bottom.setTextureSize(256, 256); Bottom.mirror = true; setRotation(Bottom, 1.570796F, 0F, 0F); - Showel5 = new ModelRenderer(this, 183, 146); + Showel5 = new ModelRendererTurbo(this, 183, 146); Showel5.addBox(0F, 0F, 0F, 7, 2, 1); Showel5.setRotationPoint(-7F, 20.8F, -20.4F); Showel5.setTextureSize(256, 256); Showel5.mirror = true; setRotation(Showel5, 0.6320364F, 0.2230717F, 0.0371786F); - Showel6 = new ModelRenderer(this, 183, 146); + Showel6 = new ModelRendererTurbo(this, 183, 146); Showel6.addBox(0F, 0F, 0F, 8, 2, 1); Showel6.setRotationPoint(0F, 21F, -21.9F); Showel6.setTextureSize(256, 256); Showel6.mirror = true; setRotation(Showel6, 0.669215F, -0.3717861F, 0F); - Showel7 = new ModelRenderer(this, 183, 146); + Showel7 = new ModelRendererTurbo(this, 183, 146); Showel7.addBox(0F, 0F, 0F, 8, 2, 1); Showel7.setRotationPoint(0F, 22F, -20.8F); Showel7.setTextureSize(256, 256); Showel7.mirror = true; setRotation(Showel7, -0.1858931F, -0.4461433F, 0F); - Showel8 = new ModelRenderer(this, 183, 146); + Showel8 = new ModelRendererTurbo(this, 183, 146); Showel8.addBox(0F, 0F, 0F, 7, 2, 1); Showel8.setRotationPoint(-7F, 22F, -19.2F); Showel8.setTextureSize(256, 256); Showel8.mirror = true; setRotation(Showel8, -0.2230717F, 0.2230717F, 0F); - Showel9 = new ModelRenderer(this, 205, 118); + Showel9 = new ModelRendererTurbo(this, 205, 118); Showel9.addBox(0F, 0F, 0F, 12, 1, 12); Showel9.setRotationPoint(-6F, 18.5F, -24F); Showel9.setTextureSize(256, 256); Showel9.mirror = true; setRotation(Showel9, -0.2602503F, 0F, 0F); - Shape1 = new ModelRenderer(this, 164, 102); + Shape1 = new ModelRendererTurbo(this, 164, 102); Shape1.addBox(0F, 0F, 0F, 17, 15, 1); Shape1.setRotationPoint(-8F, 22.5F, -13F); Shape1.setTextureSize(256, 256); @@ -853,7 +853,7 @@ public void render(Entity entity, float f, float f1, float f2, float f3, float f GL11.glTranslated(0,-1.4f,-6); GL11.glScaled(0.7,0.9,1); super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); + //setRotationAngles(f, f1, f2, f3, f4, f5, entity); Left1.render(f5); Left2.render(f5); Left3.render(f5); @@ -975,7 +975,7 @@ public void render(Entity entity, float f, float f1, float f2, float f3, float f GL11.glPopMatrix(); } - private void setRotation(ModelRenderer model, float x, float y, float z) + private void setRotation(ModelRendererTurbo model, float x, float y, float z) { model.rotateAngleX = x; model.rotateAngleY = y; diff --git a/src/main/java/train/client/render/models/ModelLocoEr_Ussr.java b/src/main/java/train/client/render/models/ModelLocoEr_Ussr.java index 59c2c4518f..214d31f947 100644 --- a/src/main/java/train/client/render/models/ModelLocoEr_Ussr.java +++ b/src/main/java/train/client/render/models/ModelLocoEr_Ussr.java @@ -3,7 +3,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.core.ClientProxy; import train.client.render.CustomModelRenderer; import train.client.render.models.blocks.ModelRing; diff --git a/src/main/java/train/client/render/models/ModelLocoForney.java b/src/main/java/train/client/render/models/ModelLocoForney.java index 4979a041b2..4baa0efe8e 100644 --- a/src/main/java/train/client/render/models/ModelLocoForney.java +++ b/src/main/java/train/client/render/models/ModelLocoForney.java @@ -2,7 +2,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; public class ModelLocoForney extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelLocoHighSpeedZeroED.java b/src/main/java/train/client/render/models/ModelLocoHighSpeedZeroED.java index 7513150e1e..44b6aa8515 100644 --- a/src/main/java/train/client/render/models/ModelLocoHighSpeedZeroED.java +++ b/src/main/java/train/client/render/models/ModelLocoHighSpeedZeroED.java @@ -2,7 +2,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; public class ModelLocoHighSpeedZeroED extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelLocoMinetrain.java b/src/main/java/train/client/render/models/ModelLocoMinetrain.java index e6d319d460..859e797ef5 100644 --- a/src/main/java/train/client/render/models/ModelLocoMinetrain.java +++ b/src/main/java/train/client/render/models/ModelLocoMinetrain.java @@ -2,7 +2,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; public class ModelLocoMinetrain extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelLocoMogul.java b/src/main/java/train/client/render/models/ModelLocoMogul.java index 692d88a2b2..7e04e5c23a 100644 --- a/src/main/java/train/client/render/models/ModelLocoMogul.java +++ b/src/main/java/train/client/render/models/ModelLocoMogul.java @@ -2,7 +2,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; public class ModelLocoMogul extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelLocoPannier.java b/src/main/java/train/client/render/models/ModelLocoPannier.java index fbc00f6cfd..ce310b115c 100644 --- a/src/main/java/train/client/render/models/ModelLocoPannier.java +++ b/src/main/java/train/client/render/models/ModelLocoPannier.java @@ -10,8 +10,8 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelLocoPannier extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelLocoSteamAdler.java b/src/main/java/train/client/render/models/ModelLocoSteamAdler.java index 2b0f3585f0..f40dd92fa4 100644 --- a/src/main/java/train/client/render/models/ModelLocoSteamAdler.java +++ b/src/main/java/train/client/render/models/ModelLocoSteamAdler.java @@ -7,1917 +7,1917 @@ package train.client.render.models; +import fexcraft.tmt.slim.ModelRendererTurbo; import net.minecraft.client.Minecraft; -import net.minecraft.client.model.ModelRenderer; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; public class ModelLocoSteamAdler extends ModelBase { - ModelRenderer Shape1; - ModelRenderer Shape2; - ModelRenderer Shape3; - ModelRenderer Shape4; - ModelRenderer Shape5; - ModelRenderer Shape6; - ModelRenderer Shape7; - ModelRenderer Shape8; - ModelRenderer Shape9; - ModelRenderer Shape10; - ModelRenderer Shape11; - ModelRenderer Shape12; - ModelRenderer Shape13; - ModelRenderer Shape14; - ModelRenderer Shape15; - ModelRenderer Shape16; - ModelRenderer Shape17; - ModelRenderer Shape18; - ModelRenderer Shape19; - ModelRenderer Shape20; - ModelRenderer Shape21; - ModelRenderer Shape22; - ModelRenderer Shape23; - ModelRenderer Shape24; - ModelRenderer Shape25; - ModelRenderer Shape26; - ModelRenderer Shape27; - ModelRenderer Shape28; - ModelRenderer Shape29; - ModelRenderer Shape30; - ModelRenderer Shape31; - ModelRenderer Shape32; - ModelRenderer Shape33; - ModelRenderer Shape34; - ModelRenderer Shape35; - ModelRenderer Shape36; - ModelRenderer Shape37; - ModelRenderer Shape38; - ModelRenderer Shape39; - ModelRenderer Shape40; - ModelRenderer Shape41; - ModelRenderer Shape42; - ModelRenderer Shape43; - ModelRenderer Shape44; - ModelRenderer Shape45; - ModelRenderer Shape46; - ModelRenderer Shape47; - ModelRenderer Shape48; - ModelRenderer Shape49; - ModelRenderer Shape50; - ModelRenderer Shape51; - ModelRenderer Shape52; - ModelRenderer Shape53; - ModelRenderer Shape54; - ModelRenderer Shape55; - ModelRenderer Shape56; - ModelRenderer Shape57; - ModelRenderer Shape58; - ModelRenderer Shape59; - ModelRenderer Shape60; - ModelRenderer Shape61; - ModelRenderer Shape62; - ModelRenderer Shape63; - ModelRenderer Shape64; - ModelRenderer Shape65; - ModelRenderer Shape66; - ModelRenderer Shape67; - ModelRenderer Shape68; - ModelRenderer Shape69; - ModelRenderer Shape70; - ModelRenderer Shape71; - ModelRenderer Shape72; - ModelRenderer Shape73; - ModelRenderer Shape74; - ModelRenderer Shape75; - ModelRenderer Shape76; - ModelRenderer Shape77; - ModelRenderer Shape78; - ModelRenderer Shape79; - ModelRenderer Shape80; - ModelRenderer Shape81; - ModelRenderer Shape82; - ModelRenderer Shape83; - ModelRenderer Shape84; - ModelRenderer Shape85; - ModelRenderer Shape86; - ModelRenderer Shape87; - ModelRenderer Shape88; - ModelRenderer Shape89; - ModelRenderer Shape90; - ModelRenderer Shape91; - ModelRenderer Shape92; - ModelRenderer Shape93; - ModelRenderer Shape94; - ModelRenderer Shape95; - ModelRenderer Shape96; - ModelRenderer Shape97; - ModelRenderer Shape98; - ModelRenderer Shape99; - ModelRenderer Shape100; - ModelRenderer Shape101; - ModelRenderer Shape102; - ModelRenderer Shape103; - ModelRenderer Shape104; - ModelRenderer Shape105; - ModelRenderer Shape106; - ModelRenderer Shape107; - ModelRenderer Shape108; - ModelRenderer Shape109; - ModelRenderer Shape110; - ModelRenderer Shape111; - ModelRenderer Shape112; - ModelRenderer Shape113; - ModelRenderer Shape114; - ModelRenderer Shape115; - ModelRenderer Shape116; - ModelRenderer Shape117; - ModelRenderer Shape118; - ModelRenderer Shape119; - ModelRenderer Shape120; - ModelRenderer Shape121; - ModelRenderer Shape122; - ModelRenderer Shape123; - ModelRenderer Shape124; - ModelRenderer Shape125; - ModelRenderer Shape126; - ModelRenderer Shape127; - ModelRenderer Shape128; - ModelRenderer Shape129; - ModelRenderer Shape130; - ModelRenderer Shape131; - ModelRenderer Shape132; - ModelRenderer Shape133; - ModelRenderer Shape134; - ModelRenderer Shape135; - ModelRenderer Shape136; - ModelRenderer Shape137; - ModelRenderer Shape138; - ModelRenderer Shape139; - ModelRenderer Shape140; - ModelRenderer Shape141; - ModelRenderer Shape142; - ModelRenderer Shape143; - ModelRenderer Shape144; - ModelRenderer Shape145; - ModelRenderer Shape146; - ModelRenderer Shape147; - ModelRenderer Shape148; - ModelRenderer Shape149; - ModelRenderer Shape150; - ModelRenderer Shape151; - ModelRenderer Shape152; - ModelRenderer Shape153; - ModelRenderer Shape154; - ModelRenderer Shape155; - ModelRenderer Shape156; - ModelRenderer Shape157; - ModelRenderer Shape158; - ModelRenderer Shape159; - ModelRenderer Shape160; - ModelRenderer Shape161; - ModelRenderer Shape162; - ModelRenderer Shape163; - ModelRenderer Shape164; - ModelRenderer Shape165; - ModelRenderer Shape166; - ModelRenderer Shape167; - ModelRenderer Shape168; - ModelRenderer Shape169; - ModelRenderer Shape170; - ModelRenderer Shape171; - ModelRenderer Shape172; - ModelRenderer Shape173; - ModelRenderer Shape174; - ModelRenderer Shape175; - ModelRenderer Shape176; - ModelRenderer Shape177; - ModelRenderer Shape178; - ModelRenderer Shape179; - ModelRenderer Shape180; - ModelRenderer Shape181; - ModelRenderer Shape182; - ModelRenderer Shape183; - ModelRenderer Shape184; - ModelRenderer Shape185; - ModelRenderer Shape186; - ModelRenderer Shape187; - ModelRenderer Shape188; - ModelRenderer Shape189; - ModelRenderer Shape190; - ModelRenderer Shape191; - ModelRenderer Shape192; - ModelRenderer Shape193; - ModelRenderer Shape194; - ModelRenderer Shape195; - ModelRenderer Shape196; - ModelRenderer Shape197; - ModelRenderer Shape198; - ModelRenderer Shape199; - ModelRenderer Shape200; - ModelRenderer Shape201; - ModelRenderer Shape202; - ModelRenderer Shape203; - ModelRenderer Shape204; - ModelRenderer Shape205; - ModelRenderer Shape206; - ModelRenderer Shape207; - ModelRenderer Shape208; - ModelRenderer Shape209; - ModelRenderer Shape210; - ModelRenderer Shape211; - ModelRenderer Shape212; - ModelRenderer Shape213; - ModelRenderer Shape214; - ModelRenderer Shape215; - ModelRenderer Shape216; - ModelRenderer Shape217; - ModelRenderer Shape218; - ModelRenderer Shape219; - ModelRenderer Shape220; - ModelRenderer Shape221; - ModelRenderer Shape222; - ModelRenderer Shape223; - ModelRenderer Shape224; - ModelRenderer Shape225; - ModelRenderer Shape226; - ModelRenderer Shape227; - ModelRenderer Shape228; - ModelRenderer Shape229; - ModelRenderer Shape230; - ModelRenderer Shape231; - ModelRenderer Shape232; - ModelRenderer Shape233; - ModelRenderer Shape234; - ModelRenderer Shape235; - ModelRenderer Shape236; - ModelRenderer Shape237; - ModelRenderer Shape238; - ModelRenderer Shape239; - ModelRenderer Shape240; - ModelRenderer Shape241; - ModelRenderer Shape242; - ModelRenderer Shape243; - ModelRenderer Shape244; - ModelRenderer Shape245; - ModelRenderer Shape246; - ModelRenderer Shape247; - ModelRenderer Shape248; - ModelRenderer Shape249; - ModelRenderer Shape250; - ModelRenderer Shape251; - ModelRenderer Shape252; - ModelRenderer Shape253; - ModelRenderer Shape254; - ModelRenderer Shape255; - ModelRenderer Shape256; - ModelRenderer Shape257; - ModelRenderer Shape258; - ModelRenderer Shape259; - ModelRenderer Shape260; - ModelRenderer Shape261; - ModelRenderer Shape262; - ModelRenderer Shape263; - ModelRenderer Shape264; - ModelRenderer Shape265; - ModelRenderer Shape266; - ModelRenderer Shape267; - ModelRenderer Shape268; - ModelRenderer Shape269; - ModelRenderer Shape270; - ModelRenderer Shape271; - ModelRenderer Shape272; + ModelRendererTurbo Shape1; + ModelRendererTurbo Shape2; + ModelRendererTurbo Shape3; + ModelRendererTurbo Shape4; + ModelRendererTurbo Shape5; + ModelRendererTurbo Shape6; + ModelRendererTurbo Shape7; + ModelRendererTurbo Shape8; + ModelRendererTurbo Shape9; + ModelRendererTurbo Shape10; + ModelRendererTurbo Shape11; + ModelRendererTurbo Shape12; + ModelRendererTurbo Shape13; + ModelRendererTurbo Shape14; + ModelRendererTurbo Shape15; + ModelRendererTurbo Shape16; + ModelRendererTurbo Shape17; + ModelRendererTurbo Shape18; + ModelRendererTurbo Shape19; + ModelRendererTurbo Shape20; + ModelRendererTurbo Shape21; + ModelRendererTurbo Shape22; + ModelRendererTurbo Shape23; + ModelRendererTurbo Shape24; + ModelRendererTurbo Shape25; + ModelRendererTurbo Shape26; + ModelRendererTurbo Shape27; + ModelRendererTurbo Shape28; + ModelRendererTurbo Shape29; + ModelRendererTurbo Shape30; + ModelRendererTurbo Shape31; + ModelRendererTurbo Shape32; + ModelRendererTurbo Shape33; + ModelRendererTurbo Shape34; + ModelRendererTurbo Shape35; + ModelRendererTurbo Shape36; + ModelRendererTurbo Shape37; + ModelRendererTurbo Shape38; + ModelRendererTurbo Shape39; + ModelRendererTurbo Shape40; + ModelRendererTurbo Shape41; + ModelRendererTurbo Shape42; + ModelRendererTurbo Shape43; + ModelRendererTurbo Shape44; + ModelRendererTurbo Shape45; + ModelRendererTurbo Shape46; + ModelRendererTurbo Shape47; + ModelRendererTurbo Shape48; + ModelRendererTurbo Shape49; + ModelRendererTurbo Shape50; + ModelRendererTurbo Shape51; + ModelRendererTurbo Shape52; + ModelRendererTurbo Shape53; + ModelRendererTurbo Shape54; + ModelRendererTurbo Shape55; + ModelRendererTurbo Shape56; + ModelRendererTurbo Shape57; + ModelRendererTurbo Shape58; + ModelRendererTurbo Shape59; + ModelRendererTurbo Shape60; + ModelRendererTurbo Shape61; + ModelRendererTurbo Shape62; + ModelRendererTurbo Shape63; + ModelRendererTurbo Shape64; + ModelRendererTurbo Shape65; + ModelRendererTurbo Shape66; + ModelRendererTurbo Shape67; + ModelRendererTurbo Shape68; + ModelRendererTurbo Shape69; + ModelRendererTurbo Shape70; + ModelRendererTurbo Shape71; + ModelRendererTurbo Shape72; + ModelRendererTurbo Shape73; + ModelRendererTurbo Shape74; + ModelRendererTurbo Shape75; + ModelRendererTurbo Shape76; + ModelRendererTurbo Shape77; + ModelRendererTurbo Shape78; + ModelRendererTurbo Shape79; + ModelRendererTurbo Shape80; + ModelRendererTurbo Shape81; + ModelRendererTurbo Shape82; + ModelRendererTurbo Shape83; + ModelRendererTurbo Shape84; + ModelRendererTurbo Shape85; + ModelRendererTurbo Shape86; + ModelRendererTurbo Shape87; + ModelRendererTurbo Shape88; + ModelRendererTurbo Shape89; + ModelRendererTurbo Shape90; + ModelRendererTurbo Shape91; + ModelRendererTurbo Shape92; + ModelRendererTurbo Shape93; + ModelRendererTurbo Shape94; + ModelRendererTurbo Shape95; + ModelRendererTurbo Shape96; + ModelRendererTurbo Shape97; + ModelRendererTurbo Shape98; + ModelRendererTurbo Shape99; + ModelRendererTurbo Shape100; + ModelRendererTurbo Shape101; + ModelRendererTurbo Shape102; + ModelRendererTurbo Shape103; + ModelRendererTurbo Shape104; + ModelRendererTurbo Shape105; + ModelRendererTurbo Shape106; + ModelRendererTurbo Shape107; + ModelRendererTurbo Shape108; + ModelRendererTurbo Shape109; + ModelRendererTurbo Shape110; + ModelRendererTurbo Shape111; + ModelRendererTurbo Shape112; + ModelRendererTurbo Shape113; + ModelRendererTurbo Shape114; + ModelRendererTurbo Shape115; + ModelRendererTurbo Shape116; + ModelRendererTurbo Shape117; + ModelRendererTurbo Shape118; + ModelRendererTurbo Shape119; + ModelRendererTurbo Shape120; + ModelRendererTurbo Shape121; + ModelRendererTurbo Shape122; + ModelRendererTurbo Shape123; + ModelRendererTurbo Shape124; + ModelRendererTurbo Shape125; + ModelRendererTurbo Shape126; + ModelRendererTurbo Shape127; + ModelRendererTurbo Shape128; + ModelRendererTurbo Shape129; + ModelRendererTurbo Shape130; + ModelRendererTurbo Shape131; + ModelRendererTurbo Shape132; + ModelRendererTurbo Shape133; + ModelRendererTurbo Shape134; + ModelRendererTurbo Shape135; + ModelRendererTurbo Shape136; + ModelRendererTurbo Shape137; + ModelRendererTurbo Shape138; + ModelRendererTurbo Shape139; + ModelRendererTurbo Shape140; + ModelRendererTurbo Shape141; + ModelRendererTurbo Shape142; + ModelRendererTurbo Shape143; + ModelRendererTurbo Shape144; + ModelRendererTurbo Shape145; + ModelRendererTurbo Shape146; + ModelRendererTurbo Shape147; + ModelRendererTurbo Shape148; + ModelRendererTurbo Shape149; + ModelRendererTurbo Shape150; + ModelRendererTurbo Shape151; + ModelRendererTurbo Shape152; + ModelRendererTurbo Shape153; + ModelRendererTurbo Shape154; + ModelRendererTurbo Shape155; + ModelRendererTurbo Shape156; + ModelRendererTurbo Shape157; + ModelRendererTurbo Shape158; + ModelRendererTurbo Shape159; + ModelRendererTurbo Shape160; + ModelRendererTurbo Shape161; + ModelRendererTurbo Shape162; + ModelRendererTurbo Shape163; + ModelRendererTurbo Shape164; + ModelRendererTurbo Shape165; + ModelRendererTurbo Shape166; + ModelRendererTurbo Shape167; + ModelRendererTurbo Shape168; + ModelRendererTurbo Shape169; + ModelRendererTurbo Shape170; + ModelRendererTurbo Shape171; + ModelRendererTurbo Shape172; + ModelRendererTurbo Shape173; + ModelRendererTurbo Shape174; + ModelRendererTurbo Shape175; + ModelRendererTurbo Shape176; + ModelRendererTurbo Shape177; + ModelRendererTurbo Shape178; + ModelRendererTurbo Shape179; + ModelRendererTurbo Shape180; + ModelRendererTurbo Shape181; + ModelRendererTurbo Shape182; + ModelRendererTurbo Shape183; + ModelRendererTurbo Shape184; + ModelRendererTurbo Shape185; + ModelRendererTurbo Shape186; + ModelRendererTurbo Shape187; + ModelRendererTurbo Shape188; + ModelRendererTurbo Shape189; + ModelRendererTurbo Shape190; + ModelRendererTurbo Shape191; + ModelRendererTurbo Shape192; + ModelRendererTurbo Shape193; + ModelRendererTurbo Shape194; + ModelRendererTurbo Shape195; + ModelRendererTurbo Shape196; + ModelRendererTurbo Shape197; + ModelRendererTurbo Shape198; + ModelRendererTurbo Shape199; + ModelRendererTurbo Shape200; + ModelRendererTurbo Shape201; + ModelRendererTurbo Shape202; + ModelRendererTurbo Shape203; + ModelRendererTurbo Shape204; + ModelRendererTurbo Shape205; + ModelRendererTurbo Shape206; + ModelRendererTurbo Shape207; + ModelRendererTurbo Shape208; + ModelRendererTurbo Shape209; + ModelRendererTurbo Shape210; + ModelRendererTurbo Shape211; + ModelRendererTurbo Shape212; + ModelRendererTurbo Shape213; + ModelRendererTurbo Shape214; + ModelRendererTurbo Shape215; + ModelRendererTurbo Shape216; + ModelRendererTurbo Shape217; + ModelRendererTurbo Shape218; + ModelRendererTurbo Shape219; + ModelRendererTurbo Shape220; + ModelRendererTurbo Shape221; + ModelRendererTurbo Shape222; + ModelRendererTurbo Shape223; + ModelRendererTurbo Shape224; + ModelRendererTurbo Shape225; + ModelRendererTurbo Shape226; + ModelRendererTurbo Shape227; + ModelRendererTurbo Shape228; + ModelRendererTurbo Shape229; + ModelRendererTurbo Shape230; + ModelRendererTurbo Shape231; + ModelRendererTurbo Shape232; + ModelRendererTurbo Shape233; + ModelRendererTurbo Shape234; + ModelRendererTurbo Shape235; + ModelRendererTurbo Shape236; + ModelRendererTurbo Shape237; + ModelRendererTurbo Shape238; + ModelRendererTurbo Shape239; + ModelRendererTurbo Shape240; + ModelRendererTurbo Shape241; + ModelRendererTurbo Shape242; + ModelRendererTurbo Shape243; + ModelRendererTurbo Shape244; + ModelRendererTurbo Shape245; + ModelRendererTurbo Shape246; + ModelRendererTurbo Shape247; + ModelRendererTurbo Shape248; + ModelRendererTurbo Shape249; + ModelRendererTurbo Shape250; + ModelRendererTurbo Shape251; + ModelRendererTurbo Shape252; + ModelRendererTurbo Shape253; + ModelRendererTurbo Shape254; + ModelRendererTurbo Shape255; + ModelRendererTurbo Shape256; + ModelRendererTurbo Shape257; + ModelRendererTurbo Shape258; + ModelRendererTurbo Shape259; + ModelRendererTurbo Shape260; + ModelRendererTurbo Shape261; + ModelRendererTurbo Shape262; + ModelRendererTurbo Shape263; + ModelRendererTurbo Shape264; + ModelRendererTurbo Shape265; + ModelRendererTurbo Shape266; + ModelRendererTurbo Shape267; + ModelRendererTurbo Shape268; + ModelRendererTurbo Shape269; + ModelRendererTurbo Shape270; + ModelRendererTurbo Shape271; + ModelRendererTurbo Shape272; public ModelLocoSteamAdler() { textureWidth = 128; textureHeight = 128; - Shape1 = new ModelRenderer(this, 13, 61); + Shape1 = new ModelRendererTurbo(this, 13, 61); Shape1.addBox(0F, 0F, 0F, 1, 1, 2); Shape1.setRotationPoint(-5.2F, 22F, 2F); Shape1.setTextureSize(128, 128); Shape1.mirror = true; setRotation(Shape1, 0F, 0F, 0F); - Shape2 = new ModelRenderer(this, 20, 61); + Shape2 = new ModelRendererTurbo(this, 20, 61); Shape2.addBox(0F, 0F, 0F, 1, 1, 2); Shape2.setRotationPoint(-5.2F, 22F, -5F); Shape2.setTextureSize(128, 128); Shape2.mirror = true; setRotation(Shape2, 0F, 0F, 0F); - Shape3 = new ModelRenderer(this, 5, 51); + Shape3 = new ModelRendererTurbo(this, 5, 51); Shape3.addBox(0F, 0F, 0F, 1, 5, 1); Shape3.setRotationPoint(-5.2F, 15F, -7F); Shape3.setTextureSize(128, 128); Shape3.mirror = true; setRotation(Shape3, 0F, 0F, 0F); - Shape4 = new ModelRenderer(this, 0, 51); + Shape4 = new ModelRendererTurbo(this, 0, 51); Shape4.addBox(0F, 0F, 0F, 1, 5, 1); Shape4.setRotationPoint(-5.2F, 15F, 5F); Shape4.setTextureSize(128, 128); Shape4.mirror = true; setRotation(Shape4, 0F, 0F, 0F); - Shape5 = new ModelRenderer(this, 10, 50); + Shape5 = new ModelRendererTurbo(this, 10, 50); Shape5.addBox(0F, 0F, 0F, 1, 1, 5); Shape5.setRotationPoint(-5.2F, 11F, -3F); Shape5.setTextureSize(128, 128); Shape5.mirror = true; setRotation(Shape5, 0F, 0F, 0F); - Shape6 = new ModelRenderer(this, 13, 57); + Shape6 = new ModelRendererTurbo(this, 13, 57); Shape6.addBox(0F, 0F, 0F, 1, 1, 2); Shape6.setRotationPoint(-5.2F, 12F, 2F); Shape6.setTextureSize(128, 128); Shape6.mirror = true; setRotation(Shape6, 0F, 0F, 0F); - Shape7 = new ModelRenderer(this, 20, 57); + Shape7 = new ModelRendererTurbo(this, 20, 57); Shape7.addBox(0F, 0F, 0F, 1, 1, 2); Shape7.setRotationPoint(-5.2F, 12F, -5F); Shape7.setTextureSize(128, 128); Shape7.mirror = true; setRotation(Shape7, 0F, 0F, 0F); - Shape8 = new ModelRenderer(this, 27, 57); + Shape8 = new ModelRendererTurbo(this, 27, 57); Shape8.addBox(0F, 0F, 0F, 1, 2, 1); Shape8.setRotationPoint(-5.2F, 20F, -6F); Shape8.setTextureSize(128, 128); Shape8.mirror = true; setRotation(Shape8, 0F, 0F, 0F); - Shape9 = new ModelRenderer(this, 27, 48); + Shape9 = new ModelRendererTurbo(this, 27, 48); Shape9.addBox(0F, 0F, 0F, 1, 2, 1); Shape9.setRotationPoint(-5F, 13F, -6F); Shape9.setTextureSize(128, 128); Shape9.mirror = true; setRotation(Shape9, 0F, 0F, 0F); - Shape10 = new ModelRenderer(this, 27, 61); + Shape10 = new ModelRendererTurbo(this, 27, 61); Shape10.addBox(0F, 0F, 0F, 1, 2, 1); Shape10.setRotationPoint(-5F, 20F, 4F); Shape10.setTextureSize(128, 128); Shape10.mirror = true; setRotation(Shape10, 0F, 0F, 0F); - Shape11 = new ModelRenderer(this, 27, 52); + Shape11 = new ModelRendererTurbo(this, 27, 52); Shape11.addBox(0F, 0F, 0F, 1, 2, 1); Shape11.setRotationPoint(-5.2F, 13F, 4F); Shape11.setTextureSize(128, 128); Shape11.mirror = true; setRotation(Shape11, 0F, 0F, 0F); - Shape12 = new ModelRenderer(this, 38, 12); + Shape12 = new ModelRendererTurbo(this, 38, 12); Shape12.addBox(0F, 0F, 0F, 13, 1, 1); Shape12.setRotationPoint(-6.5F, 17F, -1F); Shape12.setTextureSize(128, 128); Shape12.mirror = true; setRotation(Shape12, 0F, 0F, 0F); - Shape13 = new ModelRenderer(this, 10, 16); + Shape13 = new ModelRendererTurbo(this, 10, 16); Shape13.addBox(0F, 0F, 0F, 1, 3, 1); Shape13.setRotationPoint(-7F, 16.5F, 0F); Shape13.setTextureSize(128, 128); Shape13.mirror = true; setRotation(Shape13, 0F, 0F, 0F); - Shape14 = new ModelRenderer(this, 15, 16); + Shape14 = new ModelRendererTurbo(this, 15, 16); Shape14.addBox(0F, 0F, 0F, 1, 3, 1); Shape14.setRotationPoint(-7F, 16.5F, -2F); Shape14.setTextureSize(128, 128); Shape14.mirror = true; setRotation(Shape14, 0F, 0F, 0F); - Shape15 = new ModelRenderer(this, 18, 41); + Shape15 = new ModelRendererTurbo(this, 18, 41); Shape15.addBox(0F, 0F, 0F, 1, 3, 3); Shape15.setRotationPoint(-5.2F, 16F, -2F); Shape15.setTextureSize(128, 128); Shape15.mirror = true; setRotation(Shape15, 0F, 0F, 0F); - Shape16 = new ModelRenderer(this, 0, 39); + Shape16 = new ModelRendererTurbo(this, 0, 39); Shape16.addBox(0F, 0F, 0F, 0, 4, 1); Shape16.setRotationPoint(-4.7F, 12F, -1F); Shape16.setTextureSize(128, 128); Shape16.mirror = true; setRotation(Shape16, 0F, 0F, 0F); - Shape17 = new ModelRenderer(this, 0, 39); + Shape17 = new ModelRendererTurbo(this, 0, 39); Shape17.addBox(0F, 0F, 0F, 0, 4, 1); Shape17.setRotationPoint(-4.7F, 19F, -1F); Shape17.setTextureSize(128, 128); Shape17.mirror = true; setRotation(Shape17, 0F, 0F, 0F); - Shape18 = new ModelRenderer(this, 3, 38); + Shape18 = new ModelRendererTurbo(this, 3, 38); Shape18.addBox(0F, 0F, 0F, 0, 1, 4); Shape18.setRotationPoint(-4.7F, 17F, 1F); Shape18.setTextureSize(128, 128); Shape18.mirror = true; setRotation(Shape18, 0F, 0F, 0F); - Shape19 = new ModelRenderer(this, 3, 38); + Shape19 = new ModelRendererTurbo(this, 3, 38); Shape19.addBox(0F, 0F, 0F, 0, 1, 4); Shape19.setRotationPoint(-4.7F, 17F, -6F); Shape19.setTextureSize(128, 128); Shape19.mirror = true; setRotation(Shape19, 0F, 0F, 0F); - Shape20 = new ModelRenderer(this, 14, 38); + Shape20 = new ModelRendererTurbo(this, 14, 38); Shape20.addBox(0F, 0F, 0F, 0, 5, 1); Shape20.setRotationPoint(-4.7F, 12F, 2F); Shape20.setTextureSize(128, 128); Shape20.mirror = true; setRotation(Shape20, -0.5235988F, 0F, 0F); - Shape21 = new ModelRenderer(this, 3, 35); + Shape21 = new ModelRendererTurbo(this, 3, 35); Shape21.addBox(0F, 0F, 0F, 0, 1, 5); Shape21.setRotationPoint(-4.7F, 16.6F, 0.2F); Shape21.setTextureSize(128, 128); Shape21.mirror = true; setRotation(Shape21, 0.5235988F, 0F, 0F); - Shape22 = new ModelRenderer(this, 14, 38); + Shape22 = new ModelRendererTurbo(this, 14, 38); Shape22.addBox(0F, 0F, 0F, 0, 5, 1); Shape22.setRotationPoint(-4.7F, 12.5F, -3.9F); Shape22.setTextureSize(128, 128); Shape22.mirror = true; setRotation(Shape22, 0.5235988F, 0F, 0F); - Shape23 = new ModelRenderer(this, 3, 35); + Shape23 = new ModelRendererTurbo(this, 3, 35); Shape23.addBox(0F, 0F, 0F, 0, 1, 5); Shape23.setRotationPoint(-4.7F, 14.1F, -5.5F); Shape23.setTextureSize(128, 128); Shape23.mirror = true; setRotation(Shape23, -0.5235988F, 0F, 0F); - Shape24 = new ModelRenderer(this, 14, 38); + Shape24 = new ModelRendererTurbo(this, 14, 38); Shape24.addBox(0F, 0F, 0F, 0, 5, 1); Shape24.setRotationPoint(-4.7F, 18.6F, -0.5F); Shape24.setTextureSize(128, 128); Shape24.mirror = true; setRotation(Shape24, 0.5235988F, 0F, 0F); - Shape25 = new ModelRenderer(this, 14, 38); + Shape25 = new ModelRendererTurbo(this, 14, 38); Shape25.addBox(0F, 0F, 0F, 0, 5, 1); Shape25.setRotationPoint(-4.7F, 18.2F, -1.4F); Shape25.setTextureSize(128, 128); Shape25.mirror = true; setRotation(Shape25, -0.5235988F, 0F, 0F); - Shape26 = new ModelRenderer(this, 3, 35); + Shape26 = new ModelRendererTurbo(this, 3, 35); Shape26.addBox(0F, 0F, 0F, 0, 1, 5); Shape26.setRotationPoint(-4.7F, 17.5F, 0.6F); Shape26.setTextureSize(128, 128); Shape26.mirror = true; setRotation(Shape26, -0.5235988F, 0F, 0F); - Shape27 = new ModelRenderer(this, 3, 35); + Shape27 = new ModelRendererTurbo(this, 3, 35); Shape27.addBox(0F, 0F, 0F, 0, 1, 5); Shape27.setRotationPoint(-4.7F, 20F, -6F); Shape27.setTextureSize(128, 128); Shape27.mirror = true; setRotation(Shape27, 0.5235988F, 0F, 0F); - Shape28 = new ModelRenderer(this, 21, 68); + Shape28 = new ModelRendererTurbo(this, 21, 68); Shape28.addBox(0F, 0F, 0F, 1, 1, 4); Shape28.setRotationPoint(-5.2F, 16F, 9F); Shape28.setTextureSize(128, 128); Shape28.mirror = true; setRotation(Shape28, 0F, 0F, 0F); - Shape29 = new ModelRenderer(this, 0, 68); + Shape29 = new ModelRendererTurbo(this, 0, 68); Shape29.addBox(0F, 0F, 0F, 1, 1, 4); Shape29.setRotationPoint(-5.2F, 23F, 9F); Shape29.setTextureSize(128, 128); Shape29.mirror = true; setRotation(Shape29, 0F, 0F, 0F); - Shape30 = new ModelRenderer(this, 16, 68); + Shape30 = new ModelRendererTurbo(this, 16, 68); Shape30.addBox(0F, 0F, 0F, 1, 4, 1); Shape30.setRotationPoint(-5.2F, 18F, 7F); Shape30.setTextureSize(128, 128); Shape30.mirror = true; setRotation(Shape30, 0F, 0F, 0F); - Shape31 = new ModelRenderer(this, 11, 68); + Shape31 = new ModelRendererTurbo(this, 11, 68); Shape31.addBox(0F, 0F, 0F, 1, 4, 1); Shape31.setRotationPoint(-5.2F, 18F, 14F); Shape31.setTextureSize(128, 128); Shape31.mirror = true; setRotation(Shape31, 0F, 0F, 0F); - Shape32 = new ModelRenderer(this, 0, 65); + Shape32 = new ModelRendererTurbo(this, 0, 65); Shape32.addBox(0F, 0F, 0F, 1, 1, 1); Shape32.setRotationPoint(-5.2F, 22F, 13F); Shape32.setTextureSize(128, 128); Shape32.mirror = true; setRotation(Shape32, 0F, 0F, 0F); - Shape33 = new ModelRenderer(this, 5, 65); + Shape33 = new ModelRendererTurbo(this, 5, 65); Shape33.addBox(0F, 0F, 0F, 1, 1, 1); Shape33.setRotationPoint(-5.2F, 22F, 8F); Shape33.setTextureSize(128, 128); Shape33.mirror = true; setRotation(Shape33, 0F, 0F, 0F); - Shape34 = new ModelRenderer(this, 10, 65); + Shape34 = new ModelRendererTurbo(this, 10, 65); Shape34.addBox(0F, 0F, 0F, 1, 1, 1); Shape34.setRotationPoint(-5.2F, 17F, 13F); Shape34.setTextureSize(128, 128); Shape34.mirror = true; setRotation(Shape34, 0F, 0F, 0F); - Shape35 = new ModelRenderer(this, 15, 65); + Shape35 = new ModelRendererTurbo(this, 15, 65); Shape35.addBox(0F, 0F, 0F, 1, 1, 1); Shape35.setRotationPoint(-5.2F, 17F, 8F); Shape35.setTextureSize(128, 128); Shape35.mirror = true; setRotation(Shape35, 0F, 0F, 0F); - Shape36 = new ModelRenderer(this, 27, 43); + Shape36 = new ModelRendererTurbo(this, 27, 43); Shape36.addBox(0F, 0F, 0F, 1, 2, 2); Shape36.setRotationPoint(-5.2F, 19F, 10F); Shape36.setTextureSize(128, 128); Shape36.mirror = true; setRotation(Shape36, 0F, 0F, 0F); - Shape37 = new ModelRenderer(this, 11, 68); + Shape37 = new ModelRendererTurbo(this, 11, 68); Shape37.addBox(0F, 0F, 0F, 1, 4, 1); Shape37.setRotationPoint(-5.2F, 18F, -9F); Shape37.setTextureSize(128, 128); Shape37.mirror = true; setRotation(Shape37, 0F, 0F, 0F); - Shape38 = new ModelRenderer(this, 16, 68); + Shape38 = new ModelRendererTurbo(this, 16, 68); Shape38.addBox(0F, 0F, 0F, 1, 4, 1); Shape38.setRotationPoint(-5.2F, 18F, -16F); Shape38.setTextureSize(128, 128); Shape38.mirror = true; setRotation(Shape38, 0F, 0F, 0F); - Shape39 = new ModelRenderer(this, 21, 68); + Shape39 = new ModelRendererTurbo(this, 21, 68); Shape39.addBox(0F, 0F, 0F, 1, 1, 4); Shape39.setRotationPoint(-5.2F, 16F, -14F); Shape39.setTextureSize(128, 128); Shape39.mirror = true; setRotation(Shape39, 0F, 0F, 0F); - Shape40 = new ModelRenderer(this, 0, 68); + Shape40 = new ModelRendererTurbo(this, 0, 68); Shape40.addBox(0F, 0F, 0F, 1, 1, 4); Shape40.setRotationPoint(-5.2F, 23F, -14F); Shape40.setTextureSize(128, 128); Shape40.mirror = true; setRotation(Shape40, 0F, 0F, 0F); - Shape41 = new ModelRenderer(this, 5, 65); + Shape41 = new ModelRendererTurbo(this, 5, 65); Shape41.addBox(0F, 0F, 0F, 1, 1, 1); Shape41.setRotationPoint(-5.2F, 22F, -15F); Shape41.setTextureSize(128, 128); Shape41.mirror = true; setRotation(Shape41, 0F, 0F, 0F); - Shape42 = new ModelRenderer(this, 0, 65); + Shape42 = new ModelRendererTurbo(this, 0, 65); Shape42.addBox(0F, 0F, 0F, 1, 1, 1); Shape42.setRotationPoint(-5.2F, 22F, -10F); Shape42.setTextureSize(128, 128); Shape42.mirror = true; setRotation(Shape42, 0F, 0F, 0F); - Shape43 = new ModelRenderer(this, 10, 65); + Shape43 = new ModelRendererTurbo(this, 10, 65); Shape43.addBox(0F, 0F, 0F, 1, 1, 1); Shape43.setRotationPoint(-5.2F, 17F, -10F); Shape43.setTextureSize(128, 128); Shape43.mirror = true; setRotation(Shape43, 0F, 0F, 0F); - Shape44 = new ModelRenderer(this, 15, 65); + Shape44 = new ModelRendererTurbo(this, 15, 65); Shape44.addBox(0F, 0F, 0F, 1, 1, 1); Shape44.setRotationPoint(-5.2F, 17F, -15F); Shape44.setTextureSize(128, 128); Shape44.mirror = true; setRotation(Shape44, 0F, 0F, 0F); - Shape45 = new ModelRenderer(this, 27, 43); + Shape45 = new ModelRendererTurbo(this, 27, 43); Shape45.addBox(0F, 0F, 0F, 1, 2, 2); Shape45.setRotationPoint(-5.2F, 19F, -13F); Shape45.setTextureSize(128, 128); Shape45.mirror = true; setRotation(Shape45, 0F, 0F, 0F); - Shape46 = new ModelRenderer(this, 0, 45); + Shape46 = new ModelRendererTurbo(this, 0, 45); Shape46.addBox(0F, 0F, 0F, 0, 2, 1); Shape46.setRotationPoint(-4.7F, 21F, 10.5F); Shape46.setTextureSize(128, 128); Shape46.mirror = true; setRotation(Shape46, 0F, 0F, 0F); - Shape47 = new ModelRenderer(this, 0, 45); + Shape47 = new ModelRendererTurbo(this, 0, 45); Shape47.addBox(0F, 0F, 0F, 0, 2, 1); Shape47.setRotationPoint(-4.7F, 21F, -12.5F); Shape47.setTextureSize(128, 128); Shape47.mirror = true; setRotation(Shape47, 0F, 0F, 0F); - Shape48 = new ModelRenderer(this, 0, 45); + Shape48 = new ModelRendererTurbo(this, 0, 45); Shape48.addBox(0F, 0F, 0F, 0, 2, 1); Shape48.setRotationPoint(-4.7F, 17F, 10.5F); Shape48.setTextureSize(128, 128); Shape48.mirror = true; setRotation(Shape48, 0F, 0F, 0F); - Shape49 = new ModelRenderer(this, 0, 45); + Shape49 = new ModelRendererTurbo(this, 0, 45); Shape49.addBox(0F, 0F, 0F, 0, 2, 1); Shape49.setRotationPoint(-4.7F, 17F, -12.5F); Shape49.setTextureSize(128, 128); Shape49.mirror = true; setRotation(Shape49, 0F, 0F, 0F); - Shape50 = new ModelRenderer(this, 10, 45); + Shape50 = new ModelRendererTurbo(this, 10, 45); Shape50.addBox(0F, 0F, 0F, 0, 1, 2); Shape50.setRotationPoint(-4.7F, 19.5F, 12F); Shape50.setTextureSize(128, 128); Shape50.mirror = true; setRotation(Shape50, 0F, 0F, 0F); - Shape51 = new ModelRenderer(this, 10, 45); + Shape51 = new ModelRendererTurbo(this, 10, 45); Shape51.addBox(0F, 0F, 0F, 0, 1, 2); Shape51.setRotationPoint(-4.7F, 19.5F, 8F); Shape51.setTextureSize(128, 128); Shape51.mirror = true; setRotation(Shape51, 0F, 0F, 0F); - Shape52 = new ModelRenderer(this, 10, 45); + Shape52 = new ModelRendererTurbo(this, 10, 45); Shape52.addBox(0F, 0F, 0F, 0, 1, 2); Shape52.setRotationPoint(-4.7F, 19.5F, -15F); Shape52.setTextureSize(128, 128); Shape52.mirror = true; setRotation(Shape52, 0F, 0F, 0F); - Shape53 = new ModelRenderer(this, 10, 45); + Shape53 = new ModelRendererTurbo(this, 10, 45); Shape53.addBox(0F, 0F, 0F, 0, 1, 2); Shape53.setRotationPoint(-4.7F, 19.5F, -11F); Shape53.setTextureSize(128, 128); Shape53.mirror = true; setRotation(Shape53, 0F, 0F, 0F); - Shape54 = new ModelRenderer(this, 3, 44); + Shape54 = new ModelRendererTurbo(this, 3, 44); Shape54.addBox(0F, 0F, 0F, 0, 1, 3); Shape54.setRotationPoint(-4.7F, 20F, 11.7F); Shape54.setTextureSize(128, 128); Shape54.mirror = true; setRotation(Shape54, -0.7853982F, 0F, 0F); - Shape55 = new ModelRenderer(this, 3, 44); + Shape55 = new ModelRendererTurbo(this, 3, 44); Shape55.addBox(0F, 0F, 0F, 0, 1, 3); Shape55.setRotationPoint(-4.7F, 17F, 8.7F); Shape55.setTextureSize(128, 128); Shape55.mirror = true; setRotation(Shape55, -0.7853982F, 0F, 0F); - Shape56 = new ModelRenderer(this, 3, 44); + Shape56 = new ModelRendererTurbo(this, 3, 44); Shape56.addBox(0F, 0F, 0F, 0, 1, 3); Shape56.setRotationPoint(-4.7F, 20.1F, -11.2F); Shape56.setTextureSize(128, 128); Shape56.mirror = true; setRotation(Shape56, -0.7853982F, 0F, 0F); - Shape57 = new ModelRenderer(this, 3, 44); + Shape57 = new ModelRendererTurbo(this, 3, 44); Shape57.addBox(0F, 0F, 0F, 0, 1, 3); Shape57.setRotationPoint(-4.7F, 17F, -14.3F); Shape57.setTextureSize(128, 128); Shape57.mirror = true; setRotation(Shape57, -0.7853982F, 0F, 0F); - Shape58 = new ModelRenderer(this, 3, 44); + Shape58 = new ModelRendererTurbo(this, 3, 44); Shape58.addBox(0F, 0F, 0F, 0, 1, 3); Shape58.setRotationPoint(-4.7F, 19.2F, 11.1F); Shape58.setTextureSize(128, 128); Shape58.mirror = true; setRotation(Shape58, 0.7853982F, 0F, 0F); - Shape59 = new ModelRenderer(this, 3, 44); + Shape59 = new ModelRendererTurbo(this, 3, 44); Shape59.addBox(0F, 0F, 0F, 0, 1, 3); Shape59.setRotationPoint(-4.7F, 22.1F, 8.2F); Shape59.setTextureSize(128, 128); Shape59.mirror = true; setRotation(Shape59, 0.7853982F, 0F, 0F); - Shape60 = new ModelRenderer(this, 3, 44); + Shape60 = new ModelRendererTurbo(this, 3, 44); Shape60.addBox(0F, 0F, 0F, 0, 1, 3); Shape60.setRotationPoint(-4.7F, 22.1F, -14.8F); Shape60.setTextureSize(128, 128); Shape60.mirror = true; setRotation(Shape60, 0.7853982F, 0F, 0F); - Shape61 = new ModelRenderer(this, 3, 44); + Shape61 = new ModelRendererTurbo(this, 3, 44); Shape61.addBox(0F, 0F, 0F, 0, 1, 3); Shape61.setRotationPoint(-4.7F, 19.2F, -11.9F); Shape61.setTextureSize(128, 128); Shape61.mirror = true; setRotation(Shape61, 0.7853982F, 0F, 0F); - Shape62 = new ModelRenderer(this, 38, 9); + Shape62 = new ModelRendererTurbo(this, 38, 9); Shape62.addBox(0F, 0F, 0F, 13, 1, 1); Shape62.setRotationPoint(-6.5F, 19.5F, 10.5F); Shape62.setTextureSize(128, 128); Shape62.mirror = true; setRotation(Shape62, 0F, 0F, 0F); - Shape63 = new ModelRenderer(this, 38, 15); + Shape63 = new ModelRendererTurbo(this, 38, 15); Shape63.addBox(0F, 0F, 0F, 13, 1, 1); Shape63.setRotationPoint(-6.5F, 19.5F, -12.5F); Shape63.setTextureSize(128, 128); Shape63.mirror = true; setRotation(Shape63, 0F, 0F, 0F); - Shape64 = new ModelRenderer(this, 0, 58); + Shape64 = new ModelRendererTurbo(this, 0, 58); Shape64.addBox(0F, 0F, 0F, 1, 1, 5); Shape64.setRotationPoint(-5.2F, 23F, -3F); Shape64.setTextureSize(128, 128); Shape64.mirror = true; setRotation(Shape64, 0F, 0F, 0F); - Shape65 = new ModelRenderer(this, 0, 16); + Shape65 = new ModelRendererTurbo(this, 0, 16); Shape65.addBox(0F, 0F, 0F, 1, 5, 1); Shape65.setRotationPoint(-7F, 16.5F, 11.5F); Shape65.setTextureSize(128, 128); Shape65.mirror = true; setRotation(Shape65, 0F, 0F, 0F); - Shape66 = new ModelRenderer(this, 5, 16); + Shape66 = new ModelRendererTurbo(this, 5, 16); Shape66.addBox(0F, 0F, 0F, 1, 5, 1); Shape66.setRotationPoint(-7F, 16.5F, 9.5F); Shape66.setTextureSize(128, 128); Shape66.mirror = true; setRotation(Shape66, 0F, 0F, 0F); - Shape67 = new ModelRenderer(this, 25, 16); + Shape67 = new ModelRendererTurbo(this, 25, 16); Shape67.addBox(0F, 0F, 0F, 1, 5, 1); Shape67.setRotationPoint(-7F, 16.5F, -13.5F); Shape67.setTextureSize(128, 128); Shape67.mirror = true; setRotation(Shape67, 0F, 0F, 0F); - Shape68 = new ModelRenderer(this, 20, 16); + Shape68 = new ModelRendererTurbo(this, 20, 16); Shape68.addBox(0F, 0F, 0F, 1, 5, 1); Shape68.setRotationPoint(-7F, 16.5F, -11.5F); Shape68.setTextureSize(128, 128); Shape68.mirror = true; setRotation(Shape68, 0F, 0F, 0F); - Shape69 = new ModelRenderer(this, 76, -21); + Shape69 = new ModelRendererTurbo(this, 76, -21); Shape69.addBox(0F, 0F, 0F, 0, 1, 21); Shape69.setRotationPoint(-6.5F, 19F, -11F); Shape69.setTextureSize(128, 128); Shape69.mirror = true; setRotation(Shape69, 0F, 0F, 0F); - Shape70 = new ModelRenderer(this, 0, 0); + Shape70 = new ModelRendererTurbo(this, 0, 0); Shape70.addBox(0F, 0F, 0F, 1, 1, 35); Shape70.setRotationPoint(-7F, 15.5F, -17F); Shape70.setTextureSize(128, 128); Shape70.mirror = true; setRotation(Shape70, 0F, 0F, 0F); - Shape71 = new ModelRenderer(this, 27, 0); + Shape71 = new ModelRendererTurbo(this, 27, 0); Shape71.addBox(0F, 0F, 0F, 2, 2, 1); Shape71.setRotationPoint(-7F, 15.5F, 18F); Shape71.setTextureSize(128, 128); Shape71.mirror = true; setRotation(Shape71, 0F, 0F, 0F); - Shape72 = new ModelRenderer(this, 53, 11); + Shape72 = new ModelRendererTurbo(this, 53, 11); Shape72.addBox(0F, 0F, 0F, 0, 1, 7); Shape72.setRotationPoint(-6.5F, 19F, 12F); Shape72.setTextureSize(128, 128); Shape72.mirror = true; setRotation(Shape72, 0.3839724F, 0F, 0F); - Shape73 = new ModelRenderer(this, 35, 92); + Shape73 = new ModelRendererTurbo(this, 35, 92); Shape73.addBox(0F, 0F, 0F, 1, 1, 1); Shape73.setRotationPoint(-6.5F, 16F, 18.8F); Shape73.setTextureSize(128, 128); Shape73.mirror = true; setRotation(Shape73, 0F, 0F, 0F); - Shape74 = new ModelRenderer(this, 27, 4); + Shape74 = new ModelRendererTurbo(this, 27, 4); Shape74.addBox(0F, 0F, 0F, 2, 2, 1); Shape74.setRotationPoint(5F, 15.5F, 18F); Shape74.setTextureSize(128, 128); Shape74.mirror = true; setRotation(Shape74, 0F, 0F, 0F); - Shape75 = new ModelRenderer(this, 0, 3); + Shape75 = new ModelRendererTurbo(this, 0, 3); Shape75.addBox(0F, 0F, 0F, 10, 1, 1); Shape75.setRotationPoint(-5F, 15.5F, 18F); Shape75.setTextureSize(128, 128); Shape75.mirror = true; setRotation(Shape75, 0F, 0F, 0F); - Shape76 = new ModelRenderer(this, 30, 92); + Shape76 = new ModelRendererTurbo(this, 30, 92); Shape76.addBox(0F, 0F, 0F, 1, 1, 1); Shape76.setRotationPoint(5.5F, 16F, 18.8F); Shape76.setTextureSize(128, 128); Shape76.mirror = true; setRotation(Shape76, 0F, 0F, 0F); - Shape77 = new ModelRenderer(this, 65, 93); + Shape77 = new ModelRendererTurbo(this, 65, 93); Shape77.addBox(0F, 0F, 0F, 2, 2, 1); Shape77.setRotationPoint(-3F, 18F, 16.5F); Shape77.setTextureSize(128, 128); Shape77.mirror = true; setRotation(Shape77, 0F, 0F, 0F); - Shape78 = new ModelRenderer(this, 58, 93); + Shape78 = new ModelRendererTurbo(this, 58, 93); Shape78.addBox(0F, 0F, 0F, 2, 2, 1); Shape78.setRotationPoint(1F, 18F, 16.5F); Shape78.setTextureSize(128, 128); Shape78.mirror = true; setRotation(Shape78, 0F, 0F, 0F); - Shape79 = new ModelRenderer(this, 63, 78); + Shape79 = new ModelRendererTurbo(this, 63, 78); Shape79.addBox(0F, 0F, 0F, 1, 1, 2); Shape79.setRotationPoint(-0.5F, 15.7F, 18.1F); Shape79.setTextureSize(128, 128); Shape79.mirror = true; setRotation(Shape79, 0F, 0F, 0F); - Shape80 = new ModelRenderer(this, 38, 2); + Shape80 = new ModelRendererTurbo(this, 38, 2); Shape80.addBox(0F, 0F, 0F, 1, 1, 35); Shape80.setRotationPoint(6F, 15.5F, -17F); Shape80.setTextureSize(128, 128); Shape80.mirror = true; setRotation(Shape80, 0F, 0F, 0F); - Shape81 = new ModelRenderer(this, 0, 58); + Shape81 = new ModelRendererTurbo(this, 0, 58); Shape81.addBox(0F, 0F, 0F, 1, 1, 5); Shape81.setRotationPoint(4.2F, 23F, -3F); Shape81.setTextureSize(128, 128); Shape81.mirror = true; setRotation(Shape81, 0F, 0F, 0F); - Shape82 = new ModelRenderer(this, 10, 50); + Shape82 = new ModelRendererTurbo(this, 10, 50); Shape82.addBox(0F, 0F, 0F, 1, 1, 5); Shape82.setRotationPoint(4.2F, 11F, -3F); Shape82.setTextureSize(128, 128); Shape82.mirror = true; setRotation(Shape82, 0F, 0F, 0F); - Shape83 = new ModelRenderer(this, 0, 51); + Shape83 = new ModelRendererTurbo(this, 0, 51); Shape83.addBox(0F, 0F, 0F, 1, 5, 1); Shape83.setRotationPoint(4.2F, 15F, 5F); Shape83.setTextureSize(128, 128); Shape83.mirror = true; setRotation(Shape83, 0F, 0F, 0F); - Shape84 = new ModelRenderer(this, 5, 51); + Shape84 = new ModelRendererTurbo(this, 5, 51); Shape84.addBox(0F, 0F, 0F, 1, 5, 1); Shape84.setRotationPoint(4.2F, 15F, -7F); Shape84.setTextureSize(128, 128); Shape84.mirror = true; setRotation(Shape84, 0F, 0F, 0F); - Shape85 = new ModelRenderer(this, 18, 41); + Shape85 = new ModelRendererTurbo(this, 18, 41); Shape85.addBox(0F, 0F, 0F, 1, 3, 3); Shape85.setRotationPoint(4.2F, 16F, -2F); Shape85.setTextureSize(128, 128); Shape85.mirror = true; setRotation(Shape85, 0F, 0F, 0F); - Shape86 = new ModelRenderer(this, 27, 52); + Shape86 = new ModelRendererTurbo(this, 27, 52); Shape86.addBox(0F, 0F, 0F, 1, 2, 1); Shape86.setRotationPoint(4.2F, 13F, 4F); Shape86.setTextureSize(128, 128); Shape86.mirror = true; setRotation(Shape86, 0F, 0F, 0F); - Shape87 = new ModelRenderer(this, 27, 48); + Shape87 = new ModelRendererTurbo(this, 27, 48); Shape87.addBox(0F, 0F, 0F, 1, 2, 1); Shape87.setRotationPoint(4.2F, 13F, -6F); Shape87.setTextureSize(128, 128); Shape87.mirror = true; setRotation(Shape87, 0F, 0F, 0F); - Shape88 = new ModelRenderer(this, 27, 57); + Shape88 = new ModelRendererTurbo(this, 27, 57); Shape88.addBox(0F, 0F, 0F, 1, 2, 1); Shape88.setRotationPoint(4.2F, 20F, -6F); Shape88.setTextureSize(128, 128); Shape88.mirror = true; setRotation(Shape88, 0F, 0F, 0F); - Shape89 = new ModelRenderer(this, 27, 61); + Shape89 = new ModelRendererTurbo(this, 27, 61); Shape89.addBox(0F, 0F, 0F, 1, 2, 1); Shape89.setRotationPoint(4.2F, 20F, 4F); Shape89.setTextureSize(128, 128); Shape89.mirror = true; setRotation(Shape89, 0F, 0F, 0F); - Shape90 = new ModelRenderer(this, 20, 61); + Shape90 = new ModelRendererTurbo(this, 20, 61); Shape90.addBox(0F, 0F, 0F, 1, 1, 2); Shape90.setRotationPoint(4.2F, 22F, -5F); Shape90.setTextureSize(128, 128); Shape90.mirror = true; setRotation(Shape90, 0F, 0F, 0F); - Shape91 = new ModelRenderer(this, 13, 61); + Shape91 = new ModelRendererTurbo(this, 13, 61); Shape91.addBox(0F, 0F, 0F, 1, 1, 2); Shape91.setRotationPoint(4.2F, 22F, 2F); Shape91.setTextureSize(128, 128); Shape91.mirror = true; setRotation(Shape91, 0F, 0F, 0F); - Shape92 = new ModelRenderer(this, 20, 57); + Shape92 = new ModelRendererTurbo(this, 20, 57); Shape92.addBox(0F, 0F, 0F, 1, 1, 2); Shape92.setRotationPoint(4.2F, 12F, -5F); Shape92.setTextureSize(128, 128); Shape92.mirror = true; setRotation(Shape92, 0F, 0F, 0F); - Shape93 = new ModelRenderer(this, 13, 57); + Shape93 = new ModelRendererTurbo(this, 13, 57); Shape93.addBox(0F, 0F, 0F, 1, 1, 2); Shape93.setRotationPoint(4.2F, 12F, 2F); Shape93.setTextureSize(128, 128); Shape93.mirror = true; setRotation(Shape93, 0F, 0F, 0F); - Shape94 = new ModelRenderer(this, 0, 39); + Shape94 = new ModelRendererTurbo(this, 0, 39); Shape94.addBox(0F, 0F, 0F, 0, 4, 1); Shape94.setRotationPoint(4.7F, 12F, -1F); Shape94.setTextureSize(128, 128); Shape94.mirror = true; setRotation(Shape94, 0F, 0F, 0F); - Shape95 = new ModelRenderer(this, 0, 39); + Shape95 = new ModelRendererTurbo(this, 0, 39); Shape95.addBox(0F, 0F, 0F, 0, 4, 1); Shape95.setRotationPoint(4.7F, 19F, -1F); Shape95.setTextureSize(128, 128); Shape95.mirror = true; setRotation(Shape95, 0F, 0F, 0F); - Shape96 = new ModelRenderer(this, 3, 38); + Shape96 = new ModelRendererTurbo(this, 3, 38); Shape96.addBox(0F, 0F, 0F, 0, 1, 4); Shape96.setRotationPoint(4.7F, 17F, 1F); Shape96.setTextureSize(128, 128); Shape96.mirror = true; setRotation(Shape96, 0F, 0F, 0F); - Shape97 = new ModelRenderer(this, 3, 38); + Shape97 = new ModelRendererTurbo(this, 3, 38); Shape97.addBox(0F, 0F, 0F, 0, 1, 4); Shape97.setRotationPoint(4.7F, 17F, -6F); Shape97.setTextureSize(128, 128); Shape97.mirror = true; setRotation(Shape97, 0F, 0F, 0F); - Shape98 = new ModelRenderer(this, 14, 38); + Shape98 = new ModelRendererTurbo(this, 14, 38); Shape98.addBox(0F, 0F, 0F, 0, 5, 1); Shape98.setRotationPoint(4.7F, 18.6F, -0.5F); Shape98.setTextureSize(128, 128); Shape98.mirror = true; setRotation(Shape98, 0.5235988F, 0F, 0F); - Shape99 = new ModelRenderer(this, 3, 35); + Shape99 = new ModelRendererTurbo(this, 3, 35); Shape99.addBox(0F, 0F, 0F, 0, 1, 5); Shape99.setRotationPoint(4.7F, 17.5F, 0.6F); Shape99.setTextureSize(128, 128); Shape99.mirror = true; setRotation(Shape99, -0.5235988F, 0F, 0F); - Shape100 = new ModelRenderer(this, 3, 35); + Shape100 = new ModelRendererTurbo(this, 3, 35); Shape100.addBox(0F, 0F, 0F, 0, 1, 5); Shape100.setRotationPoint(4.7F, 16.6F, 0.2F); Shape100.setTextureSize(128, 128); Shape100.mirror = true; setRotation(Shape100, 0.5235988F, 0F, 0F); - Shape101 = new ModelRenderer(this, 14, 38); + Shape101 = new ModelRendererTurbo(this, 14, 38); Shape101.addBox(0F, 0F, 0F, 0, 5, 1); Shape101.setRotationPoint(4.7F, 12F, 2F); Shape101.setTextureSize(128, 128); Shape101.mirror = true; setRotation(Shape101, -0.5235988F, 0F, 0F); - Shape102 = new ModelRenderer(this, 14, 38); + Shape102 = new ModelRendererTurbo(this, 14, 38); Shape102.addBox(0F, 0F, 0F, 0, 5, 1); Shape102.setRotationPoint(4.7F, 18.2F, -1.4F); Shape102.setTextureSize(128, 128); Shape102.mirror = true; setRotation(Shape102, -0.5235988F, 0F, 0F); - Shape103 = new ModelRenderer(this, 3, 35); + Shape103 = new ModelRendererTurbo(this, 3, 35); Shape103.addBox(0F, 0F, 0F, 0, 1, 5); Shape103.setRotationPoint(4.7F, 20F, -6F); Shape103.setTextureSize(128, 128); Shape103.mirror = true; setRotation(Shape103, 0.5235988F, 0F, 0F); - Shape104 = new ModelRenderer(this, 3, 35); + Shape104 = new ModelRendererTurbo(this, 3, 35); Shape104.addBox(0F, 0F, 0F, 0, 1, 5); Shape104.setRotationPoint(4.7F, 14.1F, -5.5F); Shape104.setTextureSize(128, 128); Shape104.mirror = true; setRotation(Shape104, -0.5235988F, 0F, 0F); - Shape105 = new ModelRenderer(this, 14, 38); + Shape105 = new ModelRendererTurbo(this, 14, 38); Shape105.addBox(0F, 0F, 0F, 0, 5, 1); Shape105.setRotationPoint(4.7F, 12.5F, -3.9F); Shape105.setTextureSize(128, 128); Shape105.mirror = true; setRotation(Shape105, 0.5235988F, 0F, 0F); - Shape106 = new ModelRenderer(this, 0, 68); + Shape106 = new ModelRendererTurbo(this, 0, 68); Shape106.addBox(0F, 0F, 0F, 1, 1, 4); Shape106.setRotationPoint(4.2F, 23F, 9F); Shape106.setTextureSize(128, 128); Shape106.mirror = true; setRotation(Shape106, 0F, 0F, 0F); - Shape107 = new ModelRenderer(this, 11, 68); + Shape107 = new ModelRendererTurbo(this, 11, 68); Shape107.addBox(0F, 0F, 0F, 1, 4, 1); Shape107.setRotationPoint(4.2F, 18F, 14F); Shape107.setTextureSize(128, 128); Shape107.mirror = true; setRotation(Shape107, 0F, 0F, 0F); - Shape108 = new ModelRenderer(this, 16, 68); + Shape108 = new ModelRendererTurbo(this, 16, 68); Shape108.addBox(0F, 0F, 0F, 1, 4, 1); Shape108.setRotationPoint(4.2F, 18F, 7F); Shape108.setTextureSize(128, 128); Shape108.mirror = true; setRotation(Shape108, 0F, 0F, 0F); - Shape109 = new ModelRenderer(this, 21, 68); + Shape109 = new ModelRendererTurbo(this, 21, 68); Shape109.addBox(0F, 0F, 0F, 1, 1, 4); Shape109.setRotationPoint(4.2F, 16F, 9F); Shape109.setTextureSize(128, 128); Shape109.mirror = true; setRotation(Shape109, 0F, 0F, 0F); - Shape110 = new ModelRenderer(this, 0, 65); + Shape110 = new ModelRendererTurbo(this, 0, 65); Shape110.addBox(0F, 0F, 0F, 1, 1, 1); Shape110.setRotationPoint(4.2F, 22F, 13F); Shape110.setTextureSize(128, 128); Shape110.mirror = true; setRotation(Shape110, 0F, 0F, 0F); - Shape111 = new ModelRenderer(this, 5, 65); + Shape111 = new ModelRendererTurbo(this, 5, 65); Shape111.addBox(0F, 0F, 0F, 1, 1, 1); Shape111.setRotationPoint(4.2F, 22F, 8F); Shape111.setTextureSize(128, 128); Shape111.mirror = true; setRotation(Shape111, 0F, 0F, 0F); - Shape112 = new ModelRenderer(this, 10, 65); + Shape112 = new ModelRendererTurbo(this, 10, 65); Shape112.addBox(0F, 0F, 0F, 1, 1, 1); Shape112.setRotationPoint(4.2F, 17F, 13F); Shape112.setTextureSize(128, 128); Shape112.mirror = true; setRotation(Shape112, 0F, 0F, 0F); - Shape113 = new ModelRenderer(this, 15, 65); + Shape113 = new ModelRendererTurbo(this, 15, 65); Shape113.addBox(0F, 0F, 0F, 1, 1, 1); Shape113.setRotationPoint(4.2F, 17F, 8F); Shape113.setTextureSize(128, 128); Shape113.mirror = true; setRotation(Shape113, 0F, 0F, 0F); - Shape114 = new ModelRenderer(this, 27, 43); + Shape114 = new ModelRendererTurbo(this, 27, 43); Shape114.addBox(0F, 0F, 0F, 1, 2, 2); Shape114.setRotationPoint(4.2F, 19F, 10F); Shape114.setTextureSize(128, 128); Shape114.mirror = true; setRotation(Shape114, 0F, 0F, 0F); - Shape115 = new ModelRenderer(this, 0, 45); + Shape115 = new ModelRendererTurbo(this, 0, 45); Shape115.addBox(0F, 0F, 0F, 0, 2, 1); Shape115.setRotationPoint(4.7F, 21F, 10.5F); Shape115.setTextureSize(128, 128); Shape115.mirror = true; setRotation(Shape115, 0F, 0F, 0F); - Shape116 = new ModelRenderer(this, 0, 45); + Shape116 = new ModelRendererTurbo(this, 0, 45); Shape116.addBox(0F, 0F, 0F, 0, 2, 1); Shape116.setRotationPoint(4.7F, 17F, 10.5F); Shape116.setTextureSize(128, 128); Shape116.mirror = true; setRotation(Shape116, 0F, 0F, 0F); - Shape117 = new ModelRenderer(this, 10, 45); + Shape117 = new ModelRendererTurbo(this, 10, 45); Shape117.addBox(0F, 0F, 0F, 0, 1, 2); Shape117.setRotationPoint(4.7F, 19.5F, 12F); Shape117.setTextureSize(128, 128); Shape117.mirror = true; setRotation(Shape117, 0F, 0F, 0F); - Shape118 = new ModelRenderer(this, 10, 45); + Shape118 = new ModelRendererTurbo(this, 10, 45); Shape118.addBox(0F, 0F, 0F, 0, 1, 2); Shape118.setRotationPoint(4.7F, 19.5F, 8F); Shape118.setTextureSize(128, 128); Shape118.mirror = true; setRotation(Shape118, 0F, 0F, 0F); - Shape119 = new ModelRenderer(this, 3, 44); + Shape119 = new ModelRendererTurbo(this, 3, 44); Shape119.addBox(0F, 0F, 0F, 0, 1, 3); Shape119.setRotationPoint(4.7F, 20F, 11.7F); Shape119.setTextureSize(128, 128); Shape119.mirror = true; setRotation(Shape119, -0.7853982F, 0F, 0F); - Shape120 = new ModelRenderer(this, 3, 44); + Shape120 = new ModelRendererTurbo(this, 3, 44); Shape120.addBox(0F, 0F, 0F, 0, 1, 3); Shape120.setRotationPoint(4.7F, 17F, 8.7F); Shape120.setTextureSize(128, 128); Shape120.mirror = true; setRotation(Shape120, -0.7853982F, 0F, 0F); - Shape121 = new ModelRenderer(this, 3, 44); + Shape121 = new ModelRendererTurbo(this, 3, 44); Shape121.addBox(0F, 0F, 0F, 0, 1, 3); Shape121.setRotationPoint(4.7F, 19.2F, 11.1F); Shape121.setTextureSize(128, 128); Shape121.mirror = true; setRotation(Shape121, 0.7853982F, 0F, 0F); - Shape122 = new ModelRenderer(this, 3, 44); + Shape122 = new ModelRendererTurbo(this, 3, 44); Shape122.addBox(0F, 0F, 0F, 0, 1, 3); Shape122.setRotationPoint(4.7F, 22.1F, 8.2F); Shape122.setTextureSize(128, 128); Shape122.mirror = true; setRotation(Shape122, 0.7853982F, 0F, 0F); - Shape123 = new ModelRenderer(this, 0, 68); + Shape123 = new ModelRendererTurbo(this, 0, 68); Shape123.addBox(0F, 0F, 0F, 1, 1, 4); Shape123.setRotationPoint(4.2F, 23F, -14F); Shape123.setTextureSize(128, 128); Shape123.mirror = true; setRotation(Shape123, 0F, 0F, 0F); - Shape124 = new ModelRenderer(this, 21, 68); + Shape124 = new ModelRendererTurbo(this, 21, 68); Shape124.addBox(0F, 0F, 0F, 1, 1, 4); Shape124.setRotationPoint(4.2F, 16F, -14F); Shape124.setTextureSize(128, 128); Shape124.mirror = true; setRotation(Shape124, 0F, 0F, 0F); - Shape125 = new ModelRenderer(this, 16, 68); + Shape125 = new ModelRendererTurbo(this, 16, 68); Shape125.addBox(0F, 0F, 0F, 1, 4, 1); Shape125.setRotationPoint(4.2F, 18F, -16F); Shape125.setTextureSize(128, 128); Shape125.mirror = true; setRotation(Shape125, 0F, 0F, 0F); - Shape126 = new ModelRenderer(this, 11, 68); + Shape126 = new ModelRendererTurbo(this, 11, 68); Shape126.addBox(0F, 0F, 0F, 1, 4, 1); Shape126.setRotationPoint(4.2F, 18F, -9F); Shape126.setTextureSize(128, 128); Shape126.mirror = true; setRotation(Shape126, 0F, 0F, 0F); - Shape127 = new ModelRenderer(this, 15, 65); + Shape127 = new ModelRendererTurbo(this, 15, 65); Shape127.addBox(0F, 0F, 0F, 1, 1, 1); Shape127.setRotationPoint(4.2F, 17F, -15F); Shape127.setTextureSize(128, 128); Shape127.mirror = true; setRotation(Shape127, 0F, 0F, 0F); - Shape128 = new ModelRenderer(this, 10, 65); + Shape128 = new ModelRendererTurbo(this, 10, 65); Shape128.addBox(0F, 0F, 0F, 1, 1, 1); Shape128.setRotationPoint(4.2F, 17F, -10F); Shape128.setTextureSize(128, 128); Shape128.mirror = true; setRotation(Shape128, 0F, 0F, 0F); - Shape129 = new ModelRenderer(this, 5, 65); + Shape129 = new ModelRendererTurbo(this, 5, 65); Shape129.addBox(0F, 0F, 0F, 1, 1, 1); Shape129.setRotationPoint(4.2F, 22F, -15F); Shape129.setTextureSize(128, 128); Shape129.mirror = true; setRotation(Shape129, 0F, 0F, 0F); - Shape130 = new ModelRenderer(this, 0, 65); + Shape130 = new ModelRendererTurbo(this, 0, 65); Shape130.addBox(0F, 0F, 0F, 1, 1, 1); Shape130.setRotationPoint(4.2F, 22F, -10F); Shape130.setTextureSize(128, 128); Shape130.mirror = true; setRotation(Shape130, 0F, 0F, 0F); - Shape131 = new ModelRenderer(this, 27, 43); + Shape131 = new ModelRendererTurbo(this, 27, 43); Shape131.addBox(0F, 0F, 0F, 1, 2, 2); Shape131.setRotationPoint(4.2F, 19F, -13F); Shape131.setTextureSize(128, 128); Shape131.mirror = true; setRotation(Shape131, 0F, 0F, 0F); - Shape132 = new ModelRenderer(this, 0, 45); + Shape132 = new ModelRendererTurbo(this, 0, 45); Shape132.addBox(0F, 0F, 0F, 0, 2, 1); Shape132.setRotationPoint(4.7F, 17F, -12.46667F); Shape132.setTextureSize(128, 128); Shape132.mirror = true; setRotation(Shape132, 0F, 0F, 0F); - Shape133 = new ModelRenderer(this, 0, 45); + Shape133 = new ModelRendererTurbo(this, 0, 45); Shape133.addBox(0F, 0F, 0F, 0, 2, 1); Shape133.setRotationPoint(4.7F, 21F, -12.5F); Shape133.setTextureSize(128, 128); Shape133.mirror = true; setRotation(Shape133, 0F, 0F, 0F); - Shape134 = new ModelRenderer(this, 10, 45); + Shape134 = new ModelRendererTurbo(this, 10, 45); Shape134.addBox(0F, 0F, 0F, 0, 1, 2); Shape134.setRotationPoint(4.7F, 19.5F, -15F); Shape134.setTextureSize(128, 128); Shape134.mirror = true; setRotation(Shape134, 0F, 0F, 0F); - Shape135 = new ModelRenderer(this, 10, 45); + Shape135 = new ModelRendererTurbo(this, 10, 45); Shape135.addBox(0F, 0F, 0F, 0, 1, 2); Shape135.setRotationPoint(4.7F, 19.5F, -11F); Shape135.setTextureSize(128, 128); Shape135.mirror = true; setRotation(Shape135, 0F, 0F, 0F); - Shape136 = new ModelRenderer(this, 3, 44); + Shape136 = new ModelRendererTurbo(this, 3, 44); Shape136.addBox(0F, 0F, 0F, 0, 1, 3); Shape136.setRotationPoint(4.7F, 22.1F, -14.8F); Shape136.setTextureSize(128, 128); Shape136.mirror = true; setRotation(Shape136, 0.7853982F, 0F, 0F); - Shape137 = new ModelRenderer(this, 3, 44); + Shape137 = new ModelRendererTurbo(this, 3, 44); Shape137.addBox(0F, 0F, 0F, 0, 1, 3); Shape137.setRotationPoint(4.7F, 19.2F, -11.9F); Shape137.setTextureSize(128, 128); Shape137.mirror = true; setRotation(Shape137, 0.7853982F, 0F, 0F); - Shape138 = new ModelRenderer(this, 3, 44); + Shape138 = new ModelRendererTurbo(this, 3, 44); Shape138.addBox(0F, 0F, 0F, 0, 1, 3); Shape138.setRotationPoint(4.7F, 20.1F, -11.2F); Shape138.setTextureSize(128, 128); Shape138.mirror = true; setRotation(Shape138, -0.7853982F, 0F, 0F); - Shape139 = new ModelRenderer(this, 3, 44); + Shape139 = new ModelRendererTurbo(this, 3, 44); Shape139.addBox(0F, 0F, 0F, 0, 1, 3); Shape139.setRotationPoint(4.7F, 17F, -14.3F); Shape139.setTextureSize(128, 128); Shape139.mirror = true; setRotation(Shape139, -0.7853982F, 0F, 0F); - Shape140 = new ModelRenderer(this, 25, 23); + Shape140 = new ModelRendererTurbo(this, 25, 23); Shape140.addBox(0F, 0F, 0F, 1, 5, 1); Shape140.setRotationPoint(6F, 16.5F, 11.5F); Shape140.setTextureSize(128, 128); Shape140.mirror = true; setRotation(Shape140, 0F, 0F, 0F); - Shape141 = new ModelRenderer(this, 20, 23); + Shape141 = new ModelRendererTurbo(this, 20, 23); Shape141.addBox(0F, 0F, 0F, 1, 5, 1); Shape141.setRotationPoint(6F, 16.5F, 9.5F); Shape141.setTextureSize(128, 128); Shape141.mirror = true; setRotation(Shape141, 0F, 0F, 0F); - Shape142 = new ModelRenderer(this, 0, 23); + Shape142 = new ModelRendererTurbo(this, 0, 23); Shape142.addBox(0F, 0F, 0F, 1, 5, 1); Shape142.setRotationPoint(6F, 16.5F, -13.5F); Shape142.setTextureSize(128, 128); Shape142.mirror = true; setRotation(Shape142, 0F, 0F, 0F); - Shape143 = new ModelRenderer(this, 5, 23); + Shape143 = new ModelRendererTurbo(this, 5, 23); Shape143.addBox(0F, 0F, 0F, 1, 5, 1); Shape143.setRotationPoint(6F, 16.5F, -11.5F); Shape143.setTextureSize(128, 128); Shape143.mirror = true; setRotation(Shape143, 0F, 0F, 0F); - Shape144 = new ModelRenderer(this, 10, 25); + Shape144 = new ModelRendererTurbo(this, 10, 25); Shape144.addBox(0F, 0F, 0F, 1, 3, 1); Shape144.setRotationPoint(6F, 16.5F, -2F); Shape144.setTextureSize(128, 128); Shape144.mirror = true; setRotation(Shape144, 0F, 0F, 0F); - Shape145 = new ModelRenderer(this, 15, 25); + Shape145 = new ModelRendererTurbo(this, 15, 25); Shape145.addBox(0F, 0F, 0F, 1, 3, 1); Shape145.setRotationPoint(6F, 16.5F, 0F); Shape145.setTextureSize(128, 128); Shape145.mirror = true; setRotation(Shape145, 0F, 0F, 0F); - Shape146 = new ModelRenderer(this, 76, -19); + Shape146 = new ModelRendererTurbo(this, 76, -19); Shape146.addBox(0F, 0F, 0F, 0, 1, 21); Shape146.setRotationPoint(6.5F, 19F, -11F); Shape146.setTextureSize(128, 128); Shape146.mirror = true; setRotation(Shape146, 0F, 0F, 0F); - Shape147 = new ModelRenderer(this, 38, 11); + Shape147 = new ModelRendererTurbo(this, 38, 11); Shape147.addBox(0F, 0F, 0F, 0, 1, 7); Shape147.setRotationPoint(6.5F, 19F, 12F); Shape147.setTextureSize(128, 128); Shape147.mirror = true; setRotation(Shape147, 0.3839724F, 0F, 0F); - Shape148 = new ModelRenderer(this, 41, 110); + Shape148 = new ModelRendererTurbo(this, 41, 110); Shape148.addBox(0F, 0F, 0F, 1, 11, 5); Shape148.setRotationPoint(-4F, 10F, 11F); Shape148.setTextureSize(128, 128); Shape148.mirror = true; setRotation(Shape148, 0F, 0F, 0F); - Shape149 = new ModelRenderer(this, 40, 92); + Shape149 = new ModelRendererTurbo(this, 40, 92); Shape149.addBox(0F, 0F, 0F, 1, 11, 5); Shape149.setRotationPoint(3F, 10F, 11F); Shape149.setTextureSize(128, 128); Shape149.mirror = true; setRotation(Shape149, 0F, 0F, 0F); - Shape150 = new ModelRenderer(this, 21, 95); + Shape150 = new ModelRendererTurbo(this, 21, 95); Shape150.addBox(0F, 0F, 0F, 8, 11, 1); Shape150.setRotationPoint(-4F, 10F, 16F); Shape150.setTextureSize(128, 128); Shape150.mirror = true; setRotation(Shape150, 0F, 0F, 0F); - Shape151 = new ModelRenderer(this, 20, 92); + Shape151 = new ModelRendererTurbo(this, 20, 92); Shape151.addBox(0F, 0F, 0F, 1, 1, 1); Shape151.setRotationPoint(1.5F, 18.5F, 17F); Shape151.setTextureSize(128, 128); Shape151.mirror = true; setRotation(Shape151, 0F, 0F, 0F); - Shape152 = new ModelRenderer(this, 25, 92); + Shape152 = new ModelRendererTurbo(this, 25, 92); Shape152.addBox(0F, 0F, 0F, 1, 1, 1); Shape152.setRotationPoint(-2.5F, 18.5F, 17F); Shape152.setTextureSize(128, 128); Shape152.mirror = true; setRotation(Shape152, 0F, 0F, 0F); - Shape153 = new ModelRenderer(this, 122, 102); + Shape153 = new ModelRendererTurbo(this, 122, 102); Shape153.addBox(0F, 0F, 0F, 2, 1, 1); Shape153.setRotationPoint(-1F, 20F, 16.2F); Shape153.setTextureSize(128, 128); Shape153.mirror = true; setRotation(Shape153, 0F, 0F, 0F); - Shape154 = new ModelRenderer(this, 60, 119); + Shape154 = new ModelRendererTurbo(this, 60, 119); Shape154.addBox(0F, 0F, 0F, 6, 1, 5); Shape154.setRotationPoint(-3F, 20F, 11F); Shape154.setTextureSize(128, 128); Shape154.mirror = true; setRotation(Shape154, 0F, 0F, 0F); - Shape155 = new ModelRenderer(this, 58, 97); + Shape155 = new ModelRendererTurbo(this, 58, 97); Shape155.addBox(0F, 0F, 0F, 6, 10, 1); Shape155.setRotationPoint(-3F, 10F, 11F); Shape155.setTextureSize(128, 128); Shape155.mirror = true; setRotation(Shape155, 0F, 0F, 0F); - Shape156 = new ModelRenderer(this, 0, 98); + Shape156 = new ModelRendererTurbo(this, 0, 98); Shape156.addBox(0F, 0F, 0F, 1, 3, 6); Shape156.setRotationPoint(-1.8F, 8F, 11F); Shape156.setTextureSize(128, 128); Shape156.mirror = true; setRotation(Shape156, 0F, 0F, 0.837758F); - Shape157 = new ModelRenderer(this, 0, 111); + Shape157 = new ModelRendererTurbo(this, 0, 111); Shape157.addBox(0F, 0F, 0F, 1, 3, 6); Shape157.setRotationPoint(1.1F, 8.7F, 11F); Shape157.setTextureSize(128, 128); Shape157.mirror = true; setRotation(Shape157, 0F, 0F, -0.837758F); - Shape158 = new ModelRenderer(this, 22, 111); + Shape158 = new ModelRendererTurbo(this, 22, 111); Shape158.addBox(0F, 0F, 0F, 3, 1, 6); Shape158.setRotationPoint(-1.8F, 8F, 11F); Shape158.setTextureSize(128, 128); Shape158.mirror = true; setRotation(Shape158, 0F, 0F, 0F); - Shape159 = new ModelRenderer(this, 22, 119); + Shape159 = new ModelRendererTurbo(this, 22, 119); Shape159.addBox(0F, 0F, 0F, 3, 1, 6); Shape159.setRotationPoint(-1.2F, 8F, 11F); Shape159.setTextureSize(128, 128); Shape159.mirror = true; setRotation(Shape159, 0F, 0F, 0F); - Shape160 = new ModelRenderer(this, 0, 121); + Shape160 = new ModelRendererTurbo(this, 0, 121); Shape160.addBox(0F, 0F, 0F, 5, 1, 1); Shape160.setRotationPoint(-2.5F, 9F, 16F); Shape160.setTextureSize(128, 128); Shape160.mirror = true; setRotation(Shape160, 0F, 0F, 0F); - Shape161 = new ModelRenderer(this, 122, 30); + Shape161 = new ModelRendererTurbo(this, 122, 30); Shape161.addBox(0F, 0F, 0F, 2, 2, 1); Shape161.setRotationPoint(1.8F, 18F, 10.5F); Shape161.setTextureSize(128, 128); Shape161.mirror = true; setRotation(Shape161, 0F, 0F, 0F); - Shape162 = new ModelRenderer(this, 122, 34); + Shape162 = new ModelRendererTurbo(this, 122, 34); Shape162.addBox(0F, 0F, 0F, 2, 2, 1); Shape162.setRotationPoint(-3.8F, 18F, 10.5F); Shape162.setTextureSize(128, 128); Shape162.mirror = true; setRotation(Shape162, 0F, 0F, 0F); - Shape163 = new ModelRenderer(this, 24, 80); + Shape163 = new ModelRendererTurbo(this, 24, 80); Shape163.addBox(0F, 0F, 0F, 1, 3, 2); Shape163.setRotationPoint(-3.3F, 17.5F, -1.5F); Shape163.setTextureSize(128, 128); Shape163.mirror = true; setRotation(Shape163, 0F, 0F, 0F); - Shape164 = new ModelRenderer(this, 24, 85); + Shape164 = new ModelRendererTurbo(this, 24, 85); Shape164.addBox(0F, 0F, 0F, 1, 2, 3); Shape164.setRotationPoint(2.3F, 16.5F, -3.5F); Shape164.setTextureSize(128, 128); Shape164.mirror = true; setRotation(Shape164, 0F, 0F, 0F); - Shape165 = new ModelRenderer(this, 0, 76); + Shape165 = new ModelRendererTurbo(this, 0, 76); Shape165.addBox(0F, 0F, 0F, 1, 1, 2); Shape165.setRotationPoint(-3.3F, 18.5F, 8.5F); Shape165.setTextureSize(128, 128); Shape165.mirror = true; setRotation(Shape165, 0F, 0F, 0F); - Shape166 = new ModelRenderer(this, 14, 74); + Shape166 = new ModelRendererTurbo(this, 14, 74); Shape166.addBox(0F, 0F, 0F, 1, 1, 4); Shape166.setRotationPoint(2.3F, 18.5F, 7F); Shape166.setTextureSize(128, 128); Shape166.mirror = true; setRotation(Shape166, 0F, 0F, 0F); - Shape167 = new ModelRenderer(this, 85, 5); + Shape167 = new ModelRendererTurbo(this, 85, 5); Shape167.addBox(0F, 0F, 0F, 0, 1, 11); Shape167.setRotationPoint(2.8F, 17F, -3.5F); Shape167.setTextureSize(128, 128); Shape167.mirror = true; setRotation(Shape167, -0.1396263F, 0F, 0F); - Shape168 = new ModelRenderer(this, 85, 0); + Shape168 = new ModelRendererTurbo(this, 85, 0); Shape168.addBox(0F, 0F, 0F, 0, 1, 10); Shape168.setRotationPoint(-2.8F, 19.5F, -1F); Shape168.setTextureSize(128, 128); Shape168.mirror = true; setRotation(Shape168, 0.1047198F, 0F, 0F); - Shape169 = new ModelRenderer(this, 16, 80); + Shape169 = new ModelRendererTurbo(this, 16, 80); Shape169.addBox(0F, 0F, 0F, 1, 2, 3); Shape169.setRotationPoint(0.5F, 15.5F, -1.5F); Shape169.setTextureSize(128, 128); Shape169.mirror = true; setRotation(Shape169, 0F, 0F, 0F); - Shape170 = new ModelRenderer(this, 16, 85); + Shape170 = new ModelRendererTurbo(this, 16, 85); Shape170.addBox(0F, 0F, 0F, 1, 2, 3); Shape170.setRotationPoint(-1.5F, 16.5F, -0.5F); Shape170.setTextureSize(128, 128); Shape170.mirror = true; setRotation(Shape170, 0F, 0F, 0F); - Shape171 = new ModelRenderer(this, 118, 38); + Shape171 = new ModelRendererTurbo(this, 118, 38); Shape171.addBox(0F, 0F, 0F, 4, 2, 1); Shape171.setRotationPoint(-2F, 17F, 10.5F); Shape171.setTextureSize(128, 128); Shape171.mirror = true; setRotation(Shape171, 0F, 0F, 0F); - Shape172 = new ModelRenderer(this, 7, 76); + Shape172 = new ModelRendererTurbo(this, 7, 76); Shape172.addBox(0F, 0F, 0F, 1, 1, 2); Shape172.setRotationPoint(0.5F, 17.5F, 9F); Shape172.setTextureSize(128, 128); Shape172.mirror = true; setRotation(Shape172, 0F, 0F, 0F); - Shape173 = new ModelRenderer(this, 85, 3); + Shape173 = new ModelRendererTurbo(this, 85, 3); Shape173.addBox(0F, 0F, 0F, 0, 1, 11); Shape173.setRotationPoint(1F, 15.5F, -1F); Shape173.setTextureSize(128, 128); Shape173.mirror = true; setRotation(Shape173, -0.1919862F, 0F, 0F); - Shape174 = new ModelRenderer(this, 85, 3); + Shape174 = new ModelRendererTurbo(this, 85, 3); Shape174.addBox(0F, 0F, 0F, 0, 1, 9); Shape174.setRotationPoint(-1F, 17F, 1F); Shape174.setTextureSize(128, 128); Shape174.mirror = true; setRotation(Shape174, -0.0698132F, 0F, 0F); - Shape175 = new ModelRenderer(this, 0, 74); + Shape175 = new ModelRendererTurbo(this, 0, 74); Shape175.addBox(0F, 0F, 0F, 1, 1, 1); Shape175.setRotationPoint(-1.5F, 17.5F, 9.5F); Shape175.setTextureSize(128, 128); Shape175.mirror = true; setRotation(Shape175, 0F, 0F, 0F); - Shape176 = new ModelRenderer(this, 89, 110); + Shape176 = new ModelRendererTurbo(this, 89, 110); Shape176.addBox(0F, 0F, 0F, 2, 0, 7); Shape176.setRotationPoint(-6.2F, 10F, 3.5F); Shape176.setTextureSize(128, 128); Shape176.mirror = true; setRotation(Shape176, -0.9948377F, 0F, 0F); - Shape177 = new ModelRenderer(this, 94, 110); + Shape177 = new ModelRendererTurbo(this, 94, 110); Shape177.addBox(0F, 0F, 0F, 2, 0, 7); Shape177.setRotationPoint(4.2F, 10F, 3.5F); Shape177.setTextureSize(128, 128); Shape177.mirror = true; setRotation(Shape177, -0.9948377F, 0F, 0F); - Shape178 = new ModelRenderer(this, 66, 110); + Shape178 = new ModelRendererTurbo(this, 66, 110); Shape178.addBox(0F, 0F, 0F, 2, 0, 7); Shape178.setRotationPoint(-6.2F, 10F, -4.5F); Shape178.setTextureSize(128, 128); Shape178.mirror = true; setRotation(Shape178, -2.146755F, 0F, 0F); - Shape179 = new ModelRenderer(this, 71, 110); + Shape179 = new ModelRendererTurbo(this, 71, 110); Shape179.addBox(0F, 0F, 0F, 2, 0, 7); Shape179.setRotationPoint(4.2F, 10F, -4.5F); Shape179.setTextureSize(128, 128); Shape179.mirror = true; setRotation(Shape179, -2.146755F, 0F, 0F); - Shape180 = new ModelRenderer(this, 80, 110); + Shape180 = new ModelRendererTurbo(this, 80, 110); Shape180.addBox(0F, 0F, 0F, 2, 0, 8); Shape180.setRotationPoint(-6.2F, 10F, -4.5F); Shape180.setTextureSize(128, 128); Shape180.mirror = true; setRotation(Shape180, 0F, 0F, 0F); - Shape181 = new ModelRenderer(this, 75, 110); + Shape181 = new ModelRendererTurbo(this, 75, 110); Shape181.addBox(0F, 0F, 0F, 2, 0, 8); Shape181.setRotationPoint(4.2F, 10F, -4.5F); Shape181.setTextureSize(128, 128); Shape181.mirror = true; setRotation(Shape181, 0F, 0F, 0F); - Shape182 = new ModelRenderer(this, 0, 9); + Shape182 = new ModelRendererTurbo(this, 0, 9); Shape182.addBox(0F, 0F, 0F, 12, 1, 1); Shape182.setRotationPoint(-6F, 15.5F, 7F); Shape182.setTextureSize(128, 128); Shape182.mirror = true; setRotation(Shape182, 0F, 0F, 0F); - Shape183 = new ModelRenderer(this, 0, 6); + Shape183 = new ModelRendererTurbo(this, 0, 6); Shape183.addBox(0F, 0F, 0F, 12, 1, 1); Shape183.setRotationPoint(-6F, 15.5F, 15F); Shape183.setTextureSize(128, 128); Shape183.mirror = true; setRotation(Shape183, 0F, 0F, 0F); - Shape184 = new ModelRenderer(this, 0, 12); + Shape184 = new ModelRendererTurbo(this, 0, 12); Shape184.addBox(0F, 0F, 0F, 12, 1, 1); Shape184.setRotationPoint(-6F, 15.5F, -9F); Shape184.setTextureSize(128, 128); Shape184.mirror = true; setRotation(Shape184, 0F, 0F, 0F); - Shape185 = new ModelRenderer(this, 30, 0); + Shape185 = new ModelRendererTurbo(this, 30, 0); Shape185.addBox(0F, 0F, 0F, 12, 0, 8); Shape185.setRotationPoint(-6F, 15.5F, -17F); Shape185.setTextureSize(128, 128); Shape185.mirror = true; setRotation(Shape185, 0F, 0F, 0F); - Shape186 = new ModelRenderer(this, 122, 115); + Shape186 = new ModelRendererTurbo(this, 122, 115); Shape186.addBox(0F, 0F, 0F, 2, 1, 1); Shape186.setRotationPoint(-5.5F, 13F, 15.46667F); Shape186.setTextureSize(128, 128); Shape186.mirror = true; setRotation(Shape186, 0F, 0F, 0F); - Shape187 = new ModelRenderer(this, 122, 118); + Shape187 = new ModelRendererTurbo(this, 122, 118); Shape187.addBox(0F, 0F, 0F, 2, 1, 1); Shape187.setRotationPoint(3.5F, 13F, 15.5F); Shape187.setTextureSize(128, 128); Shape187.mirror = true; setRotation(Shape187, 0F, 0F, 0F); - Shape188 = new ModelRenderer(this, 122, 121); + Shape188 = new ModelRendererTurbo(this, 122, 121); Shape188.addBox(0F, 0F, 0F, 2, 2, 1); Shape188.setRotationPoint(-6.5F, 11.5F, 16F); Shape188.setTextureSize(128, 128); Shape188.mirror = true; setRotation(Shape188, 0F, 0F, 0F); - Shape189 = new ModelRenderer(this, 122, 125); + Shape189 = new ModelRendererTurbo(this, 122, 125); Shape189.addBox(0F, 0F, 0F, 2, 2, 1); Shape189.setRotationPoint(4.5F, 11.5F, 16F); Shape189.setTextureSize(128, 128); Shape189.mirror = true; setRotation(Shape189, 0F, 0F, 0F); - Shape190 = new ModelRenderer(this, 113, 114); + Shape190 = new ModelRendererTurbo(this, 113, 114); Shape190.addBox(0F, 0F, 0F, 2, 12, 2); Shape190.setRotationPoint(-1F, -4F, 13F); Shape190.setTextureSize(128, 128); Shape190.mirror = true; setRotation(Shape190, 0F, 0F, 0F); - Shape191 = new ModelRenderer(this, 113, 96); + Shape191 = new ModelRendererTurbo(this, 113, 96); Shape191.addBox(0F, 0F, 0F, 3, 1, 3); Shape191.setRotationPoint(-1.5F, 7.5F, 12.5F); Shape191.setTextureSize(128, 128); Shape191.mirror = true; setRotation(Shape191, 0F, 0F, 0F); - Shape192 = new ModelRenderer(this, 113, 108); + Shape192 = new ModelRendererTurbo(this, 113, 108); Shape192.addBox(0F, 0F, 0F, 3, 2, 3); Shape192.setRotationPoint(-1.5F, -6F, 12.5F); Shape192.setTextureSize(128, 128); Shape192.mirror = true; setRotation(Shape192, 0F, 0F, 0F); - Shape193 = new ModelRenderer(this, 0, 124); + Shape193 = new ModelRendererTurbo(this, 0, 124); Shape193.addBox(0F, 0F, 0F, 5, 1, 1); Shape193.setRotationPoint(-2.5F, 9F, 11F); Shape193.setTextureSize(128, 128); Shape193.mirror = true; setRotation(Shape193, 0F, 0F, 0F); - Shape194 = new ModelRenderer(this, 0, 0); + Shape194 = new ModelRendererTurbo(this, 0, 0); Shape194.addBox(0F, 0F, 0F, 12, 1, 1); Shape194.setRotationPoint(-6F, 15.5F, -17F); Shape194.setTextureSize(128, 128); Shape194.mirror = true; setRotation(Shape194, 0F, 0F, 0F); - Shape195 = new ModelRenderer(this, 116, 59); + Shape195 = new ModelRendererTurbo(this, 116, 59); Shape195.addBox(0F, 0F, 0F, 1, 11, 5); Shape195.setRotationPoint(-4F, 10F, -10.5F); Shape195.setTextureSize(128, 128); Shape195.mirror = true; setRotation(Shape195, 0F, 0F, 0F); - Shape196 = new ModelRenderer(this, 116, 42); + Shape196 = new ModelRendererTurbo(this, 116, 42); Shape196.addBox(0F, 0F, 0F, 1, 11, 5); Shape196.setRotationPoint(3F, 10F, -10.5F); Shape196.setTextureSize(128, 128); Shape196.mirror = true; setRotation(Shape196, 0F, 0F, 0F); - Shape197 = new ModelRenderer(this, 112, 76); + Shape197 = new ModelRendererTurbo(this, 112, 76); Shape197.addBox(0F, 0F, 0F, 6, 12, 1); Shape197.setRotationPoint(-3F, 9.5F, -6.5F); Shape197.setTextureSize(128, 128); Shape197.mirror = true; setRotation(Shape197, 0F, 0F, 0F); - Shape198 = new ModelRenderer(this, 69, 60); + Shape198 = new ModelRendererTurbo(this, 69, 60); Shape198.addBox(0F, 0F, 0F, 8, 1, 5); Shape198.setRotationPoint(-4F, 20.5F, -10.5F); Shape198.setTextureSize(128, 128); Shape198.mirror = true; setRotation(Shape198, 0F, 0F, 0F); - Shape199 = new ModelRenderer(this, 96, 99); + Shape199 = new ModelRendererTurbo(this, 96, 99); Shape199.addBox(0F, 0F, 0F, 1, 3, 5); Shape199.setRotationPoint(-1.9F, 7.9F, -10.5F); Shape199.setTextureSize(128, 128); Shape199.mirror = true; setRotation(Shape199, 0F, 0F, 0.7853982F); - Shape200 = new ModelRenderer(this, 96, 92); + Shape200 = new ModelRendererTurbo(this, 96, 92); Shape200.addBox(0F, 0F, 0F, 3, 1, 5); Shape200.setRotationPoint(1.9F, 7.9F, -10.5F); Shape200.setTextureSize(128, 128); Shape200.mirror = true; setRotation(Shape200, 0F, 0F, 0.7853982F); - Shape201 = new ModelRenderer(this, 88, 77); + Shape201 = new ModelRendererTurbo(this, 88, 77); Shape201.addBox(0F, 0F, 0F, 4, 1, 5); Shape201.setRotationPoint(-2F, 7.9F, -10.5F); Shape201.setTextureSize(128, 128); Shape201.mirror = true; setRotation(Shape201, 0F, 0F, 0F); - Shape202 = new ModelRenderer(this, 76, 94); + Shape202 = new ModelRendererTurbo(this, 76, 94); Shape202.addBox(0F, 0F, 0F, 6, 12, 1); Shape202.setRotationPoint(-3F, 9.5F, -10.5F); Shape202.setTextureSize(128, 128); Shape202.mirror = true; setRotation(Shape202, 0F, 0F, 0F); - Shape203 = new ModelRenderer(this, 94, 84); + Shape203 = new ModelRendererTurbo(this, 94, 84); Shape203.addBox(0F, 0F, 0F, 5, 1, 1); Shape203.setRotationPoint(-2.5F, 8.5F, -10.5F); Shape203.setTextureSize(128, 128); Shape203.mirror = true; setRotation(Shape203, 0F, 0F, 0F); - Shape204 = new ModelRenderer(this, 94, 87); + Shape204 = new ModelRendererTurbo(this, 94, 87); Shape204.addBox(0F, 0F, 0F, 5, 1, 1); Shape204.setRotationPoint(-2.5F, 8.5F, -6.5F); Shape204.setTextureSize(128, 128); Shape204.mirror = true; setRotation(Shape204, 0F, 0F, 0F); - Shape205 = new ModelRenderer(this, 60, 110); + Shape205 = new ModelRendererTurbo(this, 60, 110); Shape205.addBox(0F, 0F, 0F, 2, 1, 2); Shape205.setRotationPoint(-1F, 7.3F, -9F); Shape205.setTextureSize(128, 128); Shape205.mirror = true; setRotation(Shape205, 0F, 0F, 0F); - Shape206 = new ModelRenderer(this, 108, 112); + Shape206 = new ModelRendererTurbo(this, 108, 112); Shape206.addBox(0F, 0F, 0F, 1, 3, 1); Shape206.setRotationPoint(-0.5F, 5F, -8.5F); Shape206.setTextureSize(128, 128); Shape206.mirror = true; setRotation(Shape206, 0F, 0F, 0F); - Shape207 = new ModelRenderer(this, 18, 30); + Shape207 = new ModelRendererTurbo(this, 18, 30); Shape207.addBox(0F, 0F, 0F, 0, 3, 1); Shape207.setRotationPoint(-4F, 14F, 14F); Shape207.setTextureSize(128, 128); Shape207.mirror = true; setRotation(Shape207, 0F, 0F, 0.8726646F); - Shape208 = new ModelRenderer(this, 15, 30); + Shape208 = new ModelRendererTurbo(this, 15, 30); Shape208.addBox(0F, 0F, 0F, 0, 3, 1); Shape208.setRotationPoint(4F, 14F, 14F); Shape208.setTextureSize(128, 128); Shape208.mirror = true; setRotation(Shape208, 0F, 0F, -0.8726646F); - Shape209 = new ModelRenderer(this, 0, 89); + Shape209 = new ModelRendererTurbo(this, 0, 89); Shape209.addBox(0F, 0F, 0F, 0, 7, 1); Shape209.setRotationPoint(-7F, 8.5F, -9F); Shape209.setTextureSize(128, 128); Shape209.mirror = true; setRotation(Shape209, 0F, 0F, 0F); - Shape210 = new ModelRenderer(this, 2, 89); + Shape210 = new ModelRendererTurbo(this, 2, 89); Shape210.addBox(0F, 0F, 0F, 0, 7, 1); Shape210.setRotationPoint(-7F, 8.5F, -11F); Shape210.setTextureSize(128, 128); Shape210.mirror = true; setRotation(Shape210, 0F, 0F, 0F); - Shape211 = new ModelRenderer(this, 4, 89); + Shape211 = new ModelRendererTurbo(this, 4, 89); Shape211.addBox(0F, 0F, 0F, 0, 7, 1); Shape211.setRotationPoint(-7F, 8.5F, -13F); Shape211.setTextureSize(128, 128); Shape211.mirror = true; setRotation(Shape211, 0F, 0F, 0F); - Shape212 = new ModelRenderer(this, 6, 89); + Shape212 = new ModelRendererTurbo(this, 6, 89); Shape212.addBox(0F, 0F, 0F, 0, 7, 1); Shape212.setRotationPoint(-7F, 8.5F, -15F); Shape212.setTextureSize(128, 128); Shape212.mirror = true; setRotation(Shape212, 0F, 0F, 0F); - Shape213 = new ModelRenderer(this, 8, 89); + Shape213 = new ModelRendererTurbo(this, 8, 89); Shape213.addBox(0F, 0F, 0F, 0, 7, 1); Shape213.setRotationPoint(-7F, 8.5F, -17F); Shape213.setTextureSize(128, 128); Shape213.mirror = true; setRotation(Shape213, 0F, 0F, 0F); - Shape214 = new ModelRenderer(this, 8, 80); + Shape214 = new ModelRendererTurbo(this, 8, 80); Shape214.addBox(0F, 0F, -1F, 0, 7, 1); Shape214.setRotationPoint(7F, 8.5F, -16F); Shape214.setTextureSize(128, 128); Shape214.mirror = true; setRotation(Shape214, 0F, 0F, 0F); - Shape215 = new ModelRenderer(this, 6, 80); + Shape215 = new ModelRendererTurbo(this, 6, 80); Shape215.addBox(0F, 0F, 0F, 0, 7, 1); Shape215.setRotationPoint(7F, 8.5F, -15F); Shape215.setTextureSize(128, 128); Shape215.mirror = true; setRotation(Shape215, 0F, 0F, 0F); - Shape216 = new ModelRenderer(this, 4, 80); + Shape216 = new ModelRendererTurbo(this, 4, 80); Shape216.addBox(0F, 0F, 0F, 0, 7, 1); Shape216.setRotationPoint(7F, 8.5F, -13F); Shape216.setTextureSize(128, 128); Shape216.mirror = true; setRotation(Shape216, 0F, 0F, 0F); - Shape217 = new ModelRenderer(this, 2, 80); + Shape217 = new ModelRendererTurbo(this, 2, 80); Shape217.addBox(0F, 0F, 0F, 0, 7, 1); Shape217.setRotationPoint(7F, 8.5F, -11F); Shape217.setTextureSize(128, 128); Shape217.mirror = true; setRotation(Shape217, 0F, 0F, 0F); - Shape218 = new ModelRenderer(this, 0, 80); + Shape218 = new ModelRendererTurbo(this, 0, 80); Shape218.addBox(0F, 0F, 0F, 0, 7, 1); Shape218.setRotationPoint(7F, 8.5F, -9F); Shape218.setTextureSize(128, 128); Shape218.mirror = true; setRotation(Shape218, 0F, 0F, 0F); - Shape219 = new ModelRenderer(this, 11, 90); + Shape219 = new ModelRendererTurbo(this, 11, 90); Shape219.addBox(0F, 0F, 0F, 1, 7, 0); Shape219.setRotationPoint(-7F, 8.5F, -8F); Shape219.setTextureSize(128, 128); Shape219.mirror = true; setRotation(Shape219, 0F, 0F, 0F); - Shape220 = new ModelRenderer(this, 11, 81); + Shape220 = new ModelRendererTurbo(this, 11, 81); Shape220.addBox(0F, 0F, 0F, 1, 7, 0); Shape220.setRotationPoint(6F, 8.5F, -8F); Shape220.setTextureSize(128, 128); Shape220.mirror = true; setRotation(Shape220, 0F, 0F, 0F); - Shape221 = new ModelRenderer(this, 13, 81); + Shape221 = new ModelRendererTurbo(this, 13, 81); Shape221.addBox(0F, 0F, 0F, 1, 7, 0); Shape221.setRotationPoint(4.2F, 8.5F, -8F); Shape221.setTextureSize(128, 128); Shape221.mirror = true; setRotation(Shape221, 0F, 0F, 0F); - Shape222 = new ModelRenderer(this, 37, 79); + Shape222 = new ModelRendererTurbo(this, 37, 79); Shape222.addBox(0F, 0F, 0F, 1, 0, 9); Shape222.setRotationPoint(-7F, 8.5F, -17F); Shape222.setTextureSize(128, 128); Shape222.mirror = true; setRotation(Shape222, 0F, 0F, 0F); - Shape223 = new ModelRenderer(this, 34, 79); + Shape223 = new ModelRendererTurbo(this, 34, 79); Shape223.addBox(0F, 0F, 0F, 1, 0, 9); Shape223.setRotationPoint(6F, 8.5F, -17F); Shape223.setTextureSize(128, 128); Shape223.mirror = true; setRotation(Shape223, 0F, 0F, 0F); - Shape224 = new ModelRenderer(this, 23, 75); + Shape224 = new ModelRendererTurbo(this, 23, 75); Shape224.addBox(0F, 0F, 0F, 12, 0, 1); Shape224.setRotationPoint(-6F, 8.5F, -9F); Shape224.setTextureSize(128, 128); Shape224.mirror = true; setRotation(Shape224, 0F, 0F, 0F); - Shape225 = new ModelRenderer(this, 90, 73); + Shape225 = new ModelRendererTurbo(this, 90, 73); Shape225.addBox(0F, 0F, 0F, 2, 1, 17); Shape225.setRotationPoint(-1F, 8F, -6F); Shape225.setTextureSize(128, 128); Shape225.mirror = true; setRotation(Shape225, 0F, 0F, 0F); - Shape226 = new ModelRenderer(this, 74, 91); + Shape226 = new ModelRendererTurbo(this, 74, 91); Shape226.addBox(0F, 0F, 0F, 2, 1, 17); Shape226.setRotationPoint(1F, 8F, -6F); Shape226.setTextureSize(128, 128); Shape226.mirror = true; setRotation(Shape226, 0F, 0F, 0.5235988F); - Shape227 = new ModelRenderer(this, 53, 68); + Shape227 = new ModelRendererTurbo(this, 53, 68); Shape227.addBox(0F, 0F, 0F, 1, 2, 17); Shape227.setRotationPoint(-1F, 8F, -6F); Shape227.setTextureSize(128, 128); Shape227.mirror = true; setRotation(Shape227, 0F, 0F, 1.047198F); - Shape228 = new ModelRenderer(this, 36, 92); + Shape228 = new ModelRendererTurbo(this, 36, 92); Shape228.addBox(0F, 0F, 0F, 2, 1, 17); Shape228.setRotationPoint(2.7F, 9F, -6F); Shape228.setTextureSize(128, 128); Shape228.mirror = true; setRotation(Shape228, 0F, 0F, 1.047198F); - Shape229 = new ModelRenderer(this, 33, 72); + Shape229 = new ModelRendererTurbo(this, 33, 72); Shape229.addBox(0F, 0F, 0F, 1, 2, 17); Shape229.setRotationPoint(-2.7F, 9F, -6F); Shape229.setTextureSize(128, 128); Shape229.mirror = true; setRotation(Shape229, 0F, 0F, 0.5235988F); - Shape230 = new ModelRenderer(this, 79, 53); + Shape230 = new ModelRendererTurbo(this, 79, 53); Shape230.addBox(0F, 0F, 0F, 1, 2, 17); Shape230.setRotationPoint(-3.7F, 10.7F, -6F); Shape230.setTextureSize(128, 128); Shape230.mirror = true; setRotation(Shape230, 0F, 0F, 0F); - Shape231 = new ModelRenderer(this, 0, 91); + Shape231 = new ModelRendererTurbo(this, 0, 91); Shape231.addBox(0F, 0F, 0F, 1, 2, 17); Shape231.setRotationPoint(2.7F, 10.7F, -6F); Shape231.setTextureSize(128, 128); Shape231.mirror = true; setRotation(Shape231, 0F, 0F, 0F); - Shape232 = new ModelRenderer(this, 33, 50); + Shape232 = new ModelRendererTurbo(this, 33, 50); Shape232.addBox(0F, 0F, 0F, 1, 2, 17); Shape232.setRotationPoint(-3.7F, 12.7F, -6F); Shape232.setTextureSize(128, 128); Shape232.mirror = true; setRotation(Shape232, 0F, 0F, -0.5235988F); - Shape233 = new ModelRenderer(this, 76, 109); + Shape233 = new ModelRendererTurbo(this, 76, 109); Shape233.addBox(0F, 0F, 0F, 1, 2, 17); Shape233.setRotationPoint(2.8F, 12.2F, -6F); Shape233.setTextureSize(128, 128); Shape233.mirror = true; setRotation(Shape233, 0F, 0F, 0.5235988F); - Shape234 = new ModelRenderer(this, 56, 39); + Shape234 = new ModelRendererTurbo(this, 56, 39); Shape234.addBox(0F, 0F, 0F, 1, 2, 17); Shape234.setRotationPoint(-2.7F, 14.4F, -6F); Shape234.setTextureSize(128, 128); Shape234.mirror = true; setRotation(Shape234, 0F, 0F, -1.047198F); - Shape235 = new ModelRenderer(this, 38, 110); + Shape235 = new ModelRendererTurbo(this, 38, 110); Shape235.addBox(0F, 0F, 0F, 2, 1, 17); Shape235.setRotationPoint(2.7F, 14.4F, -6F); Shape235.setTextureSize(128, 128); Shape235.mirror = true; setRotation(Shape235, 0F, 0F, 2.617994F); - Shape236 = new ModelRenderer(this, 0, 110); + Shape236 = new ModelRendererTurbo(this, 0, 110); Shape236.addBox(0F, 0F, 0F, 2, 1, 17); Shape236.setRotationPoint(-1F, 14.4F, -6F); Shape236.setTextureSize(128, 128); Shape236.mirror = true; setRotation(Shape236, 0F, 0F, 0F); - Shape237 = new ModelRenderer(this, 113, 101); + Shape237 = new ModelRendererTurbo(this, 113, 101); Shape237.addBox(0F, 0F, 0F, 2, 4, 2); Shape237.setRotationPoint(-1F, 4F, 7.5F); Shape237.setTextureSize(128, 128); Shape237.mirror = true; setRotation(Shape237, 0F, 0F, 0F); - Shape238 = new ModelRenderer(this, 122, 105); + Shape238 = new ModelRendererTurbo(this, 122, 105); Shape238.addBox(0F, 0F, 0F, 1, 1, 1); Shape238.setRotationPoint(-0.5F, 3F, 8F); Shape238.setTextureSize(128, 128); Shape238.mirror = true; setRotation(Shape238, 0F, 0F, 0F); - Shape239 = new ModelRenderer(this, 108, 117); + Shape239 = new ModelRendererTurbo(this, 108, 117); Shape239.addBox(0F, 0F, 0F, 1, 7, 1); Shape239.setRotationPoint(-0.5F, 1F, 3.5F); Shape239.setTextureSize(128, 128); Shape239.mirror = true; setRotation(Shape239, 0F, 0F, 0F); - Shape240 = new ModelRenderer(this, 99, 121); + Shape240 = new ModelRendererTurbo(this, 99, 121); Shape240.addBox(0F, 0F, 0F, 2, 2, 2); Shape240.setRotationPoint(-1F, 5F, 3F); Shape240.setTextureSize(128, 128); Shape240.mirror = true; setRotation(Shape240, 0F, 0F, 0F); - Shape241 = new ModelRenderer(this, 103, 117); + Shape241 = new ModelRendererTurbo(this, 103, 117); Shape241.addBox(0F, 0F, 0F, 1, 2, 1); Shape241.setRotationPoint(-0.5F, 6F, -3.5F); Shape241.setTextureSize(128, 128); Shape241.mirror = true; setRotation(Shape241, 0F, 0F, 0F); - Shape242 = new ModelRenderer(this, 83, 121); + Shape242 = new ModelRendererTurbo(this, 83, 121); Shape242.addBox(0F, 0F, 0F, 2, 3, 1); Shape242.setRotationPoint(-1F, 12F, 16.2F); Shape242.setTextureSize(128, 128); Shape242.mirror = true; setRotation(Shape242, 0F, 0F, 0F); - Shape243 = new ModelRenderer(this, 60, 115); + Shape243 = new ModelRendererTurbo(this, 60, 115); Shape243.addBox(0F, 0F, 0F, 4, 2, 1); Shape243.setRotationPoint(-2F, 12F, 16.2F); Shape243.setTextureSize(128, 128); Shape243.mirror = true; setRotation(Shape243, 0F, 0F, 0F); - Shape244 = new ModelRenderer(this, 88, 117); + Shape244 = new ModelRendererTurbo(this, 88, 117); Shape244.addBox(0F, 0F, 0F, 0, 1, 2); Shape244.setRotationPoint(6.2F, 10F, -1.5F); Shape244.setTextureSize(128, 128); Shape244.mirror = true; setRotation(Shape244, 0F, 0F, 0F); - Shape245 = new ModelRenderer(this, 83, 117); + Shape245 = new ModelRendererTurbo(this, 83, 117); Shape245.addBox(0F, 0F, 0F, 0, 1, 2); Shape245.setRotationPoint(-6.2F, 10F, -1.5F); Shape245.setTextureSize(128, 128); Shape245.mirror = true; setRotation(Shape245, 0F, 0F, 0F); - Shape246 = new ModelRenderer(this, 113, 86); + Shape246 = new ModelRendererTurbo(this, 113, 86); Shape246.addBox(0F, 0F, 0F, 0, 2, 5); Shape246.setRotationPoint(-3F, 8F, -2F); Shape246.setTextureSize(128, 128); Shape246.mirror = true; setRotation(Shape246, 0F, 0F, 0F); - Shape247 = new ModelRenderer(this, 113, 88); + Shape247 = new ModelRendererTurbo(this, 113, 88); Shape247.addBox(0F, 0F, 0F, 0, 2, 5); Shape247.setRotationPoint(3F, 8F, -2F); Shape247.setTextureSize(128, 128); Shape247.mirror = true; setRotation(Shape247, 0F, 0F, 0F); - Shape248 = new ModelRenderer(this, 76, 88); + Shape248 = new ModelRendererTurbo(this, 76, 88); Shape248.addBox(0F, 0F, 0F, 6, 1, 1); Shape248.setRotationPoint(-3F, 8.7F, -2F); Shape248.setTextureSize(128, 128); Shape248.mirror = true; setRotation(Shape248, 0F, 0F, 0F); - Shape249 = new ModelRenderer(this, 76, 91); + Shape249 = new ModelRendererTurbo(this, 76, 91); Shape249.addBox(0F, 0F, 0F, 6, 1, 1); Shape249.setRotationPoint(-3F, 8.7F, 2F); Shape249.setTextureSize(128, 128); Shape249.mirror = true; setRotation(Shape249, 0F, 0F, 0F); - Shape250 = new ModelRenderer(this, 98, 117); + Shape250 = new ModelRendererTurbo(this, 98, 117); Shape250.addBox(0F, 0F, 0F, 0, 1, 2); Shape250.setRotationPoint(0F, 7.4F, -10.4F); Shape250.setTextureSize(128, 128); Shape250.mirror = true; setRotation(Shape250, -0.0349066F, 0F, 0F); - Shape251 = new ModelRenderer(this, 0, 30); + Shape251 = new ModelRendererTurbo(this, 0, 30); Shape251.addBox(0F, 0F, 0F, 6, 0, 1); Shape251.setRotationPoint(2F, 12F, 9F); Shape251.setTextureSize(128, 128); Shape251.mirror = true; setRotation(Shape251, 0F, 0F, 0.7853982F); - Shape252 = new ModelRenderer(this, 0, 32); + Shape252 = new ModelRendererTurbo(this, 0, 32); Shape252.addBox(0F, 0F, 0F, 6, 0, 1); Shape252.setRotationPoint(-6F, 16F, 9F); Shape252.setTextureSize(128, 128); Shape252.mirror = true; setRotation(Shape252, 0F, 0F, -0.7853982F); - Shape253 = new ModelRenderer(this, 53, 15); + Shape253 = new ModelRendererTurbo(this, 53, 15); Shape253.addBox(0F, 0F, 0F, 0, 1, 5); Shape253.setRotationPoint(-6.5F, 15.5F, -16F); Shape253.setTextureSize(128, 128); Shape253.mirror = true; setRotation(Shape253, -0.8726646F, 0F, 0F); - Shape254 = new ModelRenderer(this, 38, 15); + Shape254 = new ModelRendererTurbo(this, 38, 15); Shape254.addBox(0F, 0F, 0F, 0, 1, 5); Shape254.setRotationPoint(6.5F, 15.5F, -16F); Shape254.setTextureSize(128, 128); Shape254.mirror = true; setRotation(Shape254, -0.8726646F, 0F, 0F); - Shape255 = new ModelRenderer(this, 13, 90); + Shape255 = new ModelRendererTurbo(this, 13, 90); Shape255.addBox(0F, 0F, 0F, 1, 7, 0); Shape255.setRotationPoint(-5.2F, 8.5F, -8F); Shape255.setTextureSize(128, 128); Shape255.mirror = true; setRotation(Shape255, 0F, 0F, 0F); - Shape256 = new ModelRenderer(this, 76, 10); + Shape256 = new ModelRendererTurbo(this, 76, 10); Shape256.addBox(0F, 0F, 0F, 0, 1, 1); Shape256.setRotationPoint(-3F, 11F, -11F); Shape256.setTextureSize(128, 128); Shape256.mirror = true; setRotation(Shape256, 0F, 0F, 0F); - Shape257 = new ModelRenderer(this, 79, 10); + Shape257 = new ModelRendererTurbo(this, 79, 10); Shape257.addBox(3F, 11F, -11F, 0, 1, 1); Shape257.setRotationPoint(0F, 0F, 0F); Shape257.setTextureSize(128, 128); Shape257.mirror = true; setRotation(Shape257, 0F, 0F, 0F); - Shape258 = new ModelRenderer(this, 85, 18); + Shape258 = new ModelRendererTurbo(this, 85, 18); Shape258.addBox(0F, 0F, 0F, 9, 1, 0); Shape258.setRotationPoint(-4.5F, 11F, -11F); Shape258.setTextureSize(128, 128); Shape258.mirror = true; setRotation(Shape258, 0F, 0F, 0F); - Shape259 = new ModelRenderer(this, 67, 20); + Shape259 = new ModelRendererTurbo(this, 67, 20); Shape259.addBox(2.5F, 0F, -7.5F, 1, 5, 1); Shape259.setRotationPoint(0F, 6F, 0F); Shape259.setTextureSize(128, 128); Shape259.mirror = true; setRotation(Shape259, 0F, 0F, 0F); - Shape260 = new ModelRenderer(this, 85, 15); + Shape260 = new ModelRendererTurbo(this, 85, 15); Shape260.addBox(0F, 0F, 0F, 0, 1, 5); Shape260.setRotationPoint(3.5F, 6.1F, -7F); Shape260.setTextureSize(128, 128); Shape260.mirror = true; setRotation(Shape260, 0F, -0.715585F, 0F); - Shape261 = new ModelRenderer(this, 76, 13); + Shape261 = new ModelRendererTurbo(this, 76, 13); Shape261.addBox(4.5F, 10.5F, -11F, 0, 4, 1); Shape261.setRotationPoint(0F, 0F, 0F); Shape261.setTextureSize(128, 128); Shape261.mirror = true; setRotation(Shape261, 0F, 0F, 0F); - Shape262 = new ModelRenderer(this, 76, 23); + Shape262 = new ModelRendererTurbo(this, 76, 23); Shape262.addBox(-3F, 5F, -12.5F, 0, 6, 1); Shape262.setRotationPoint(0F, 0F, 0F); Shape262.setTextureSize(128, 128); Shape262.mirror = true; setRotation(Shape262, 0.1047198F, 0F, 0F); - Shape263 = new ModelRenderer(this, 79, 23); + Shape263 = new ModelRendererTurbo(this, 79, 23); Shape263.addBox(-2F, 5F, -12.5F, 0, 6, 1); Shape263.setRotationPoint(0F, 0F, 0F); Shape263.setTextureSize(128, 128); Shape263.mirror = true; setRotation(Shape263, 0.1047198F, 0F, 0F); - Shape264 = new ModelRenderer(this, 82, 23); + Shape264 = new ModelRendererTurbo(this, 82, 23); Shape264.addBox(-4F, 5F, -12.5F, 1, 0, 1); Shape264.setRotationPoint(0F, 0F, 0F); Shape264.setTextureSize(128, 128); Shape264.mirror = true; setRotation(Shape264, 0.1047198F, 0F, 0F); - Shape265 = new ModelRenderer(this, 82, 25); + Shape265 = new ModelRendererTurbo(this, 82, 25); Shape265.addBox(-2F, 5F, -12.5F, 1, 0, 1); Shape265.setRotationPoint(0F, 0F, 0F); Shape265.setTextureSize(128, 128); Shape265.mirror = true; setRotation(Shape265, 0.1047198F, 0F, 0F); - Shape266 = new ModelRenderer(this, 62, 23); + Shape266 = new ModelRendererTurbo(this, 62, 23); Shape266.addBox(-6F, 7.5F, -11F, 1, 2, 1); Shape266.setRotationPoint(0F, 0F, 0F); Shape266.setTextureSize(128, 128); Shape266.mirror = true; setRotation(Shape266, 0F, 0F, -0.5061455F); - Shape267 = new ModelRenderer(this, 67, 27); + Shape267 = new ModelRendererTurbo(this, 67, 27); Shape267.addBox(1.5F, 9.5F, -11.5F, 1, 4, 1); Shape267.setRotationPoint(0F, 0F, 0F); Shape267.setTextureSize(128, 128); Shape267.mirror = true; setRotation(Shape267, 0F, 0F, 0F); - Shape268 = new ModelRenderer(this, 79, 13); + Shape268 = new ModelRendererTurbo(this, 79, 13); Shape268.addBox(0F, 0F, 0F, 0, 4, 1); Shape268.setRotationPoint(-4.5F, 10.5F, -11F); Shape268.setTextureSize(128, 128); Shape268.mirror = true; setRotation(Shape268, 0F, 0F, 0F); - Shape269 = new ModelRenderer(this, 48, 18); + Shape269 = new ModelRendererTurbo(this, 48, 18); Shape269.addBox(0F, 0F, 0F, 0, 1, 9); Shape269.setRotationPoint(-4.5F, 14F, -11F); Shape269.setTextureSize(128, 128); Shape269.mirror = true; setRotation(Shape269, -0.2443461F, 0F, 0F); - Shape270 = new ModelRenderer(this, 48, 20); + Shape270 = new ModelRendererTurbo(this, 48, 20); Shape270.addBox(0F, 0F, 0F, 0, 1, 9); Shape270.setRotationPoint(4.5F, 14F, -11F); Shape270.setTextureSize(128, 128); Shape270.mirror = true; setRotation(Shape270, -0.2443461F, 0F, 0F); - Shape271 = new ModelRenderer(this, 57, 22); + Shape271 = new ModelRendererTurbo(this, 57, 22); Shape271.addBox(0F, 0F, 0F, 1, 3, 1); Shape271.setRotationPoint(-3F, 7F, -5F); Shape271.setTextureSize(128, 128); Shape271.mirror = true; setRotation(Shape271, 0F, 0F, 0F); - Shape272 = new ModelRenderer(this, 85, 15); + Shape272 = new ModelRendererTurbo(this, 85, 15); Shape272.addBox(0F, 0F, 0F, 0, 1, 7); Shape272.setRotationPoint(-4F, 7.2F, -11.5F); Shape272.setTextureSize(128, 128); @@ -2204,7 +2204,7 @@ public void render(Entity entity, float f, float f1, float f2, float f3, float f Minecraft.getMinecraft().entityRenderer.enableLightmap(1D); } - private void setRotation(ModelRenderer model, float x, float y, float z) { + private void setRotation(ModelRendererTurbo model, float x, float y, float z) { model.rotateAngleX = x; model.rotateAngleY = y; model.rotateAngleZ = z; diff --git a/src/main/java/train/client/render/models/ModelLocoSteamShay.java b/src/main/java/train/client/render/models/ModelLocoSteamShay.java index ab243476a5..5b1224e035 100644 --- a/src/main/java/train/client/render/models/ModelLocoSteamShay.java +++ b/src/main/java/train/client/render/models/ModelLocoSteamShay.java @@ -3,7 +3,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; import train.common.entity.rollingStock.EntityLocoSteamShay; diff --git a/src/main/java/train/client/render/models/ModelLocoU57.java b/src/main/java/train/client/render/models/ModelLocoU57.java index 0ae45d38e9..8bd1949c76 100644 --- a/src/main/java/train/client/render/models/ModelLocoU57.java +++ b/src/main/java/train/client/render/models/ModelLocoU57.java @@ -1,7 +1,7 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; public class ModelLocoU57 extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelLongCoveredHopper.java b/src/main/java/train/client/render/models/ModelLongCoveredHopper.java index 8d46880df7..365677337e 100644 --- a/src/main/java/train/client/render/models/ModelLongCoveredHopper.java +++ b/src/main/java/train/client/render/models/ModelLongCoveredHopper.java @@ -12,9 +12,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.library.Info; public class ModelLongCoveredHopper extends ModelBase diff --git a/src/main/java/train/client/render/models/ModelM8CLoco.java b/src/main/java/train/client/render/models/ModelM8CLoco.java index 1cd6d653fa..dc648c8608 100644 --- a/src/main/java/train/client/render/models/ModelM8CLoco.java +++ b/src/main/java/train/client/render/models/ModelM8CLoco.java @@ -12,8 +12,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; import train.common.api.Locomotive; public class ModelM8CLoco extends ModelConverter //Same as Filename diff --git a/src/main/java/train/client/render/models/ModelM8CTail.java b/src/main/java/train/client/render/models/ModelM8CTail.java index 7378fa302a..a3c25720b4 100644 --- a/src/main/java/train/client/render/models/ModelM8CTail.java +++ b/src/main/java/train/client/render/models/ModelM8CTail.java @@ -12,8 +12,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; import train.common.api.Locomotive; public class ModelM8CTail extends ModelConverter //Same as Filename diff --git a/src/main/java/train/client/render/models/ModelM8DNF1End.java b/src/main/java/train/client/render/models/ModelM8DNF1End.java index 807d34d85d..8c902f8ff1 100644 --- a/src/main/java/train/client/render/models/ModelM8DNF1End.java +++ b/src/main/java/train/client/render/models/ModelM8DNF1End.java @@ -12,8 +12,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; import train.common.api.Locomotive; diff --git a/src/main/java/train/client/render/models/ModelM8DNF1Middle1.java b/src/main/java/train/client/render/models/ModelM8DNF1Middle1.java index 8a9dca6660..c288cbe738 100644 --- a/src/main/java/train/client/render/models/ModelM8DNF1Middle1.java +++ b/src/main/java/train/client/render/models/ModelM8DNF1Middle1.java @@ -12,8 +12,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; import train.common.api.Locomotive; public class ModelM8DNF1Middle1 extends ModelConverter //Same as Filename diff --git a/src/main/java/train/client/render/models/ModelM8DNF1Middle2.java b/src/main/java/train/client/render/models/ModelM8DNF1Middle2.java index 7c0127afe3..935310cbd5 100644 --- a/src/main/java/train/client/render/models/ModelM8DNF1Middle2.java +++ b/src/main/java/train/client/render/models/ModelM8DNF1Middle2.java @@ -12,8 +12,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; import train.common.api.Locomotive; public class ModelM8DNF1Middle2 extends ModelConverter //Same as Filename diff --git a/src/main/java/train/client/render/models/ModelMA100_Loco.java b/src/main/java/train/client/render/models/ModelMA100_Loco.java index 531dc24677..489ff1f458 100644 --- a/src/main/java/train/client/render/models/ModelMA100_Loco.java +++ b/src/main/java/train/client/render/models/ModelMA100_Loco.java @@ -12,8 +12,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; import train.common.api.Locomotive; public class ModelMA100_Loco extends ModelConverter//Same as Filename diff --git a/src/main/java/train/client/render/models/ModelMA100_Tail.java b/src/main/java/train/client/render/models/ModelMA100_Tail.java index 68d5f0a24f..d8b7d3ac1a 100644 --- a/src/main/java/train/client/render/models/ModelMA100_Tail.java +++ b/src/main/java/train/client/render/models/ModelMA100_Tail.java @@ -12,8 +12,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelMA100_Tail extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelMILW40boxcar.java b/src/main/java/train/client/render/models/ModelMILW40boxcar.java index 6b8a349ac4..562cc2f1a9 100644 --- a/src/main/java/train/client/render/models/ModelMILW40boxcar.java +++ b/src/main/java/train/client/render/models/ModelMILW40boxcar.java @@ -12,9 +12,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelMILWBaggage.java b/src/main/java/train/client/render/models/ModelMILWBaggage.java index 088341a6e2..0d30dbf562 100644 --- a/src/main/java/train/client/render/models/ModelMILWBaggage.java +++ b/src/main/java/train/client/render/models/ModelMILWBaggage.java @@ -10,8 +10,8 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelMILWBaggage extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelMILWClassA.java b/src/main/java/train/client/render/models/ModelMILWClassA.java index 30e1302bc0..917d1c4f36 100644 --- a/src/main/java/train/client/render/models/ModelMILWClassA.java +++ b/src/main/java/train/client/render/models/ModelMILWClassA.java @@ -11,8 +11,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelMILWClassA extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelMILWPassenger.java b/src/main/java/train/client/render/models/ModelMILWPassenger.java index ecc7902f24..ecd16a4e5c 100644 --- a/src/main/java/train/client/render/models/ModelMILWPassenger.java +++ b/src/main/java/train/client/render/models/ModelMILWPassenger.java @@ -10,8 +10,8 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelMILWPassenger extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelMILWTail.java b/src/main/java/train/client/render/models/ModelMILWTail.java index df272d9714..0558a02ff5 100644 --- a/src/main/java/train/client/render/models/ModelMILWTail.java +++ b/src/main/java/train/client/render/models/ModelMILWTail.java @@ -10,8 +10,8 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelMILWTail extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelMILWTender.java b/src/main/java/train/client/render/models/ModelMILWTender.java index 7f947eb588..e54f0cb1e8 100644 --- a/src/main/java/train/client/render/models/ModelMILWTender.java +++ b/src/main/java/train/client/render/models/ModelMILWTender.java @@ -11,8 +11,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelMILWTender extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelMILW_H1044.java b/src/main/java/train/client/render/models/ModelMILW_H1044.java index e55e1a98ce..30a28aa536 100644 --- a/src/main/java/train/client/render/models/ModelMILW_H1044.java +++ b/src/main/java/train/client/render/models/ModelMILW_H1044.java @@ -11,9 +11,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.library.Info; public class ModelMILW_H1044 extends ModelBase diff --git a/src/main/java/train/client/render/models/ModelMILW_H1044_Bogie.java b/src/main/java/train/client/render/models/ModelMILW_H1044_Bogie.java index 90cc60c6da..e1340369cd 100644 --- a/src/main/java/train/client/render/models/ModelMILW_H1044_Bogie.java +++ b/src/main/java/train/client/render/models/ModelMILW_H1044_Bogie.java @@ -9,8 +9,8 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelMILW_H1044_Bogie extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelMRCompoundTender.java b/src/main/java/train/client/render/models/ModelMRCompoundTender.java index be054ef004..32c4a167ff 100644 --- a/src/main/java/train/client/render/models/ModelMRCompoundTender.java +++ b/src/main/java/train/client/render/models/ModelMRCompoundTender.java @@ -13,8 +13,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelMRCompoundTender extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelMWClass88BTE.java b/src/main/java/train/client/render/models/ModelMWClass88BTE.java index 688b198127..029e07fa18 100644 --- a/src/main/java/train/client/render/models/ModelMWClass88BTE.java +++ b/src/main/java/train/client/render/models/ModelMWClass88BTE.java @@ -13,8 +13,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelMWClass88BTE extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelMailWagen.java b/src/main/java/train/client/render/models/ModelMailWagen.java index 41c24e25b8..ab4ed8f989 100644 --- a/src/main/java/train/client/render/models/ModelMailWagen.java +++ b/src/main/java/train/client/render/models/ModelMailWagen.java @@ -2,7 +2,7 @@ import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.core.ClientProxy; import train.client.render.CustomModelRenderer; import train.client.render.models.blocks.ModelLights; diff --git a/src/main/java/train/client/render/models/ModelMetalTram.java b/src/main/java/train/client/render/models/ModelMetalTram.java index fd07791724..e8257a193a 100644 --- a/src/main/java/train/client/render/models/ModelMetalTram.java +++ b/src/main/java/train/client/render/models/ModelMetalTram.java @@ -9,8 +9,8 @@ package train.client.render.models; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelMetalTram extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelMetalTramCoach.java b/src/main/java/train/client/render/models/ModelMetalTramCoach.java index 99c761fd26..e7a3d297b1 100644 --- a/src/main/java/train/client/render/models/ModelMetalTramCoach.java +++ b/src/main/java/train/client/render/models/ModelMetalTramCoach.java @@ -10,8 +10,8 @@ package train.client.render.models; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelMetalTramCoach extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelMetro2000Tail.java b/src/main/java/train/client/render/models/ModelMetro2000Tail.java index 226bc04950..8e9ce7bc8c 100644 --- a/src/main/java/train/client/render/models/ModelMetro2000Tail.java +++ b/src/main/java/train/client/render/models/ModelMetro2000Tail.java @@ -12,8 +12,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; import train.common.api.Locomotive; public class ModelMetro2000Tail extends ModelConverter //Same as Filename diff --git a/src/main/java/train/client/render/models/ModelMetroMadrid2000Loco.java b/src/main/java/train/client/render/models/ModelMetroMadrid2000Loco.java index 9700e537a1..93c0099833 100644 --- a/src/main/java/train/client/render/models/ModelMetroMadrid2000Loco.java +++ b/src/main/java/train/client/render/models/ModelMetroMadrid2000Loco.java @@ -12,8 +12,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; import train.common.api.Locomotive; public class ModelMetroMadrid2000Loco extends ModelConverter //Same as Filename diff --git a/src/main/java/train/client/render/models/ModelMetroMadrid3000Loco.java b/src/main/java/train/client/render/models/ModelMetroMadrid3000Loco.java index 67c4d9747f..243cfc6b3c 100644 --- a/src/main/java/train/client/render/models/ModelMetroMadrid3000Loco.java +++ b/src/main/java/train/client/render/models/ModelMetroMadrid3000Loco.java @@ -9,8 +9,8 @@ package train.client.render.models; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelMetroMadrid3000Loco extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelMetroMadrid3000Passenger.java b/src/main/java/train/client/render/models/ModelMetroMadrid3000Passenger.java index dbda7d791a..fac0322b53 100644 --- a/src/main/java/train/client/render/models/ModelMetroMadrid3000Passenger.java +++ b/src/main/java/train/client/render/models/ModelMetroMadrid3000Passenger.java @@ -9,8 +9,8 @@ package train.client.render.models; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelMetroMadrid3000Passenger extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelMidlandcompound.java b/src/main/java/train/client/render/models/ModelMidlandcompound.java index 4b5a55e745..23433ca751 100644 --- a/src/main/java/train/client/render/models/ModelMidlandcompound.java +++ b/src/main/java/train/client/render/models/ModelMidlandcompound.java @@ -13,8 +13,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelMidlandcompound extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelMillGondola.java b/src/main/java/train/client/render/models/ModelMillGondola.java index 55dba3ca08..a57bf83dbb 100644 --- a/src/main/java/train/client/render/models/ModelMillGondola.java +++ b/src/main/java/train/client/render/models/ModelMillGondola.java @@ -5,9 +5,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.api.Freight; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelMineralwagon.java b/src/main/java/train/client/render/models/ModelMineralwagon.java index b47a220082..153b959875 100644 --- a/src/main/java/train/client/render/models/ModelMineralwagon.java +++ b/src/main/java/train/client/render/models/ModelMineralwagon.java @@ -1,7 +1,7 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelMineralwagon extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelMinetrain.java b/src/main/java/train/client/render/models/ModelMinetrain.java index 0c34793668..384ec74ac1 100644 --- a/src/main/java/train/client/render/models/ModelMinetrain.java +++ b/src/main/java/train/client/render/models/ModelMinetrain.java @@ -2,7 +2,7 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.core.ClientProxy; import train.client.render.CustomModelRenderer; import train.common.api.Freight; @@ -178,7 +178,7 @@ public ModelMinetrain() { @Override public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { if (ClientProxy.isHoliday()) { - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, "textures/trains/minetrain_winter.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, "textures/trains/minetrain_winter.png")); } box.render(f5); box0.render(f5); diff --git a/src/main/java/train/client/render/models/ModelNMBS_HLE_18.java b/src/main/java/train/client/render/models/ModelNMBS_HLE_18.java index d00f11f130..e1061c3c8b 100644 --- a/src/main/java/train/client/render/models/ModelNMBS_HLE_18.java +++ b/src/main/java/train/client/render/models/ModelNMBS_HLE_18.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelNMBS_HLE_18 extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelNRE3gs21b.java b/src/main/java/train/client/render/models/ModelNRE3gs21b.java index 3034fe9e29..09c42f44d5 100644 --- a/src/main/java/train/client/render/models/ModelNRE3gs21b.java +++ b/src/main/java/train/client/render/models/ModelNRE3gs21b.java @@ -14,9 +14,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelNewBlombergA1ATruck.java b/src/main/java/train/client/render/models/ModelNewBlombergA1ATruck.java index de6eb6390a..f8d4a448cc 100644 --- a/src/main/java/train/client/render/models/ModelNewBlombergA1ATruck.java +++ b/src/main/java/train/client/render/models/ModelNewBlombergA1ATruck.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelNewBlombergA1ATruck extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelNormalSteamTender.java b/src/main/java/train/client/render/models/ModelNormalSteamTender.java index 5a04450f15..0ea29a3e8f 100644 --- a/src/main/java/train/client/render/models/ModelNormalSteamTender.java +++ b/src/main/java/train/client/render/models/ModelNormalSteamTender.java @@ -1,7 +1,7 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; import train.common.core.handlers.ConfigHandler; diff --git a/src/main/java/train/client/render/models/ModelOWO60Verticube.java b/src/main/java/train/client/render/models/ModelOWO60Verticube.java index 3319ba5769..51a9ca1e59 100644 --- a/src/main/java/train/client/render/models/ModelOWO60Verticube.java +++ b/src/main/java/train/client/render/models/ModelOWO60Verticube.java @@ -4,9 +4,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelOnion.java b/src/main/java/train/client/render/models/ModelOnion.java index ad6a7ecc7d..e02fa13deb 100644 --- a/src/main/java/train/client/render/models/ModelOnion.java +++ b/src/main/java/train/client/render/models/ModelOnion.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelOnion extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelOnionTender.java b/src/main/java/train/client/render/models/ModelOnionTender.java index 76ac341eda..442fe8ee1b 100644 --- a/src/main/java/train/client/render/models/ModelOnionTender.java +++ b/src/main/java/train/client/render/models/ModelOnionTender.java @@ -11,8 +11,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelOnionTender extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelOpenWagon.java b/src/main/java/train/client/render/models/ModelOpenWagon.java index a8e0d5baf2..befe50a155 100644 --- a/src/main/java/train/client/render/models/ModelOpenWagon.java +++ b/src/main/java/train/client/render/models/ModelOpenWagon.java @@ -2,7 +2,7 @@ import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; import train.common.api.Freight; diff --git a/src/main/java/train/client/render/models/ModelOreJenny.java b/src/main/java/train/client/render/models/ModelOreJenny.java index 2d9d4e245c..47e2bb04ed 100644 --- a/src/main/java/train/client/render/models/ModelOreJenny.java +++ b/src/main/java/train/client/render/models/ModelOreJenny.java @@ -5,9 +5,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelOreJennyTrucc.java b/src/main/java/train/client/render/models/ModelOreJennyTrucc.java index e4e5a2af65..367a07bfa6 100644 --- a/src/main/java/train/client/render/models/ModelOreJennyTrucc.java +++ b/src/main/java/train/client/render/models/ModelOreJennyTrucc.java @@ -3,8 +3,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelOreJennyTrucc extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelOreJennyTruck2.java b/src/main/java/train/client/render/models/ModelOreJennyTruck2.java index 0dbca50bf6..2b31f847fd 100644 --- a/src/main/java/train/client/render/models/ModelOreJennyTruck2.java +++ b/src/main/java/train/client/render/models/ModelOreJennyTruck2.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelOreJennyTruck2 extends ModelConverter//Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelPCH120Car.java b/src/main/java/train/client/render/models/ModelPCH120Car.java index 79fba0864d..3b8c14aa74 100644 --- a/src/main/java/train/client/render/models/ModelPCH120Car.java +++ b/src/main/java/train/client/render/models/ModelPCH120Car.java @@ -12,9 +12,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; public class ModelPCH120Car extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelPCH120Commute.java b/src/main/java/train/client/render/models/ModelPCH120Commute.java index f98c17022d..3e03f10120 100644 --- a/src/main/java/train/client/render/models/ModelPCH120Commute.java +++ b/src/main/java/train/client/render/models/ModelPCH120Commute.java @@ -15,9 +15,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; public class ModelPCH120Commute extends ModelConverter //Same as Filename diff --git a/src/main/java/train/client/render/models/ModelPCHBogie.java b/src/main/java/train/client/render/models/ModelPCHBogie.java index e1a3095896..23e8419d79 100644 --- a/src/main/java/train/client/render/models/ModelPCHBogie.java +++ b/src/main/java/train/client/render/models/ModelPCHBogie.java @@ -9,9 +9,9 @@ package train.client.render.models; -import net.minecraft.client.model.ModelBase; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; import net.minecraft.entity.Entity; -import tmt.ModelRendererTurbo; public class ModelPCHBogie extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelPE_Loco.java b/src/main/java/train/client/render/models/ModelPE_Loco.java index 252d87dd3e..67476c1f3a 100644 --- a/src/main/java/train/client/render/models/ModelPE_Loco.java +++ b/src/main/java/train/client/render/models/ModelPE_Loco.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.library.Info; public class ModelPE_Loco extends ModelConverter //Same as Filename diff --git a/src/main/java/train/client/render/models/ModelPE_Loco_FrontTruck.java b/src/main/java/train/client/render/models/ModelPE_Loco_FrontTruck.java index 0216706a50..5e3b7a072f 100644 --- a/src/main/java/train/client/render/models/ModelPE_Loco_FrontTruck.java +++ b/src/main/java/train/client/render/models/ModelPE_Loco_FrontTruck.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelPE_Loco_FrontTruck extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelPE_Loco_RearTruck.java b/src/main/java/train/client/render/models/ModelPE_Loco_RearTruck.java index e32fd2ce4e..e2be1687ca 100644 --- a/src/main/java/train/client/render/models/ModelPE_Loco_RearTruck.java +++ b/src/main/java/train/client/render/models/ModelPE_Loco_RearTruck.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelPE_Loco_RearTruck extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelPE_Tender.java b/src/main/java/train/client/render/models/ModelPE_Tender.java index c35c7def08..a7beb30da0 100644 --- a/src/main/java/train/client/render/models/ModelPE_Tender.java +++ b/src/main/java/train/client/render/models/ModelPE_Tender.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.library.Info; public class ModelPE_Tender extends ModelConverter //Same as Filename diff --git a/src/main/java/train/client/render/models/ModelPEcoach.java b/src/main/java/train/client/render/models/ModelPEcoach.java index cd03d0bc5d..a1435af5c3 100644 --- a/src/main/java/train/client/render/models/ModelPEcoach.java +++ b/src/main/java/train/client/render/models/ModelPEcoach.java @@ -15,9 +15,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.library.Info; public class ModelPEcoach extends ModelConverter//Same as Filename diff --git a/src/main/java/train/client/render/models/ModelPEobserve.java b/src/main/java/train/client/render/models/ModelPEobserve.java index 66632c8907..f5755244f8 100644 --- a/src/main/java/train/client/render/models/ModelPEobserve.java +++ b/src/main/java/train/client/render/models/ModelPEobserve.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.library.Info; public class ModelPEobserve extends ModelConverter//Same as Filename diff --git a/src/main/java/train/client/render/models/ModelPEtrucc.java b/src/main/java/train/client/render/models/ModelPEtrucc.java index d233c3c53e..4fb421c8da 100644 --- a/src/main/java/train/client/render/models/ModelPEtrucc.java +++ b/src/main/java/train/client/render/models/ModelPEtrucc.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelPEtrucc extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelPRRCaboose.java b/src/main/java/train/client/render/models/ModelPRRCaboose.java index 096b5b99a2..4be776199f 100644 --- a/src/main/java/train/client/render/models/ModelPRRCaboose.java +++ b/src/main/java/train/client/render/models/ModelPRRCaboose.java @@ -4,9 +4,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.library.Info; //This File was created with the Minecraft-SMP Modelling Toolbox 2.3.0.0 diff --git a/src/main/java/train/client/render/models/ModelPRRX31Wagon.java b/src/main/java/train/client/render/models/ModelPRRX31Wagon.java index a0d5f0f308..af0b78449a 100644 --- a/src/main/java/train/client/render/models/ModelPRRX31Wagon.java +++ b/src/main/java/train/client/render/models/ModelPRRX31Wagon.java @@ -6,9 +6,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.library.Info; // Model: PRR X31a Wagon Top diff --git a/src/main/java/train/client/render/models/ModelPS140.java b/src/main/java/train/client/render/models/ModelPS140.java index 9b40420fdb..074f1d57b6 100644 --- a/src/main/java/train/client/render/models/ModelPS140.java +++ b/src/main/java/train/client/render/models/ModelPS140.java @@ -12,9 +12,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelPS150.java b/src/main/java/train/client/render/models/ModelPS150.java index 65dc8f963a..3a32c2d5ed 100644 --- a/src/main/java/train/client/render/models/ModelPS150.java +++ b/src/main/java/train/client/render/models/ModelPS150.java @@ -12,9 +12,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelPS160.java b/src/main/java/train/client/render/models/ModelPS160.java index a7ae497b91..9ba29dcb36 100644 --- a/src/main/java/train/client/render/models/ModelPS160.java +++ b/src/main/java/train/client/render/models/ModelPS160.java @@ -12,9 +12,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelPS30SeatParlor.java b/src/main/java/train/client/render/models/ModelPS30SeatParlor.java index 74d0c8e730..10b898e4db 100644 --- a/src/main/java/train/client/render/models/ModelPS30SeatParlor.java +++ b/src/main/java/train/client/render/models/ModelPS30SeatParlor.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelPS52SeatCoach.java b/src/main/java/train/client/render/models/ModelPS52SeatCoach.java index 29a958811a..022de660d4 100644 --- a/src/main/java/train/client/render/models/ModelPS52SeatCoach.java +++ b/src/main/java/train/client/render/models/ModelPS52SeatCoach.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelPS54SeatCoach_Lounge.java b/src/main/java/train/client/render/models/ModelPS54SeatCoach_Lounge.java index b02e4428c5..b6669ba810 100644 --- a/src/main/java/train/client/render/models/ModelPS54SeatCoach_Lounge.java +++ b/src/main/java/train/client/render/models/ModelPS54SeatCoach_Lounge.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelPS58SeatCoach_Observation.java b/src/main/java/train/client/render/models/ModelPS58SeatCoach_Observation.java index aec26688df..74744d164e 100644 --- a/src/main/java/train/client/render/models/ModelPS58SeatCoach_Observation.java +++ b/src/main/java/train/client/render/models/ModelPS58SeatCoach_Observation.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelPS73Baggage.java b/src/main/java/train/client/render/models/ModelPS73Baggage.java index 8acf9c6bc9..adbe5ab7ec 100644 --- a/src/main/java/train/client/render/models/ModelPS73Baggage.java +++ b/src/main/java/train/client/render/models/ModelPS73Baggage.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelPS85Baggage.java b/src/main/java/train/client/render/models/ModelPS85Baggage.java index 4722a350b8..087941c068 100644 --- a/src/main/java/train/client/render/models/ModelPS85Baggage.java +++ b/src/main/java/train/client/render/models/ModelPS85Baggage.java @@ -12,9 +12,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelPSBM56SeatCoach.java b/src/main/java/train/client/render/models/ModelPSBM56SeatCoach.java index 0088fb54e2..841c71af8e 100644 --- a/src/main/java/train/client/render/models/ModelPSBM56SeatCoach.java +++ b/src/main/java/train/client/render/models/ModelPSBM56SeatCoach.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelPSBMCombine.java b/src/main/java/train/client/render/models/ModelPSBMCombine.java index 4d94b61d4f..5fbcf94a06 100644 --- a/src/main/java/train/client/render/models/ModelPSBMCombine.java +++ b/src/main/java/train/client/render/models/ModelPSBMCombine.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelPSBMDiner_Lounge.java b/src/main/java/train/client/render/models/ModelPSBMDiner_Lounge.java index 483c21fd88..b2be2109e3 100644 --- a/src/main/java/train/client/render/models/ModelPSBMDiner_Lounge.java +++ b/src/main/java/train/client/render/models/ModelPSBMDiner_Lounge.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelPSCombine.java b/src/main/java/train/client/render/models/ModelPSCombine.java index fb96718c61..a0caf1115b 100644 --- a/src/main/java/train/client/render/models/ModelPSCombine.java +++ b/src/main/java/train/client/render/models/ModelPSCombine.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelPSLunchCounter_Lounge.java b/src/main/java/train/client/render/models/ModelPSLunchCounter_Lounge.java index 9cd74e6ced..cbca3f423e 100644 --- a/src/main/java/train/client/render/models/ModelPSLunchCounter_Lounge.java +++ b/src/main/java/train/client/render/models/ModelPSLunchCounter_Lounge.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelPSRPO.java b/src/main/java/train/client/render/models/ModelPSRPO.java index b226b033c3..c262e4b31c 100644 --- a/src/main/java/train/client/render/models/ModelPSRPO.java +++ b/src/main/java/train/client/render/models/ModelPSRPO.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelPSRPOPM.java b/src/main/java/train/client/render/models/ModelPSRPOPM.java index 0ca1378bd8..4ff5dfe556 100644 --- a/src/main/java/train/client/render/models/ModelPSRPOPM.java +++ b/src/main/java/train/client/render/models/ModelPSRPOPM.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelPSSleeper565.java b/src/main/java/train/client/render/models/ModelPSSleeper565.java index c34b6083e9..4b32a4aec0 100644 --- a/src/main/java/train/client/render/models/ModelPSSleeper565.java +++ b/src/main/java/train/client/render/models/ModelPSSleeper565.java @@ -12,9 +12,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelPSSleeper565DRGW.java b/src/main/java/train/client/render/models/ModelPSSleeper565DRGW.java index f09c31457a..2924b15b9d 100644 --- a/src/main/java/train/client/render/models/ModelPSSleeper565DRGW.java +++ b/src/main/java/train/client/render/models/ModelPSSleeper565DRGW.java @@ -12,9 +12,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelPS_Truck.java b/src/main/java/train/client/render/models/ModelPS_Truck.java index 58af0f81dd..e4c5581f54 100644 --- a/src/main/java/train/client/render/models/ModelPS_Truck.java +++ b/src/main/java/train/client/render/models/ModelPS_Truck.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelPS_Truck extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelPScenterDiner.java b/src/main/java/train/client/render/models/ModelPScenterDiner.java index efc23b63ad..4d0d418693 100644 --- a/src/main/java/train/client/render/models/ModelPScenterDiner.java +++ b/src/main/java/train/client/render/models/ModelPScenterDiner.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelPSscrewyoutoomanydiners.java b/src/main/java/train/client/render/models/ModelPSscrewyoutoomanydiners.java index 5d511f4122..02ae9a95dd 100644 --- a/src/main/java/train/client/render/models/ModelPSscrewyoutoomanydiners.java +++ b/src/main/java/train/client/render/models/ModelPSscrewyoutoomanydiners.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelPanzerI.java b/src/main/java/train/client/render/models/ModelPanzerI.java index 51406f8835..c5e555389c 100644 --- a/src/main/java/train/client/render/models/ModelPanzerI.java +++ b/src/main/java/train/client/render/models/ModelPanzerI.java @@ -9,10 +9,10 @@ package train.client.render.models; //Path where the model is located -import tmt.Coord2D; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Shape2D; +import fexcraft.tmt.slim.Coord2D; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Shape2D; public class ModelPanzerI extends ModelConverter //Same as Filename diff --git a/src/main/java/train/client/render/models/ModelPassenger.java b/src/main/java/train/client/render/models/ModelPassenger.java index 48e1185ba8..0c4042c781 100644 --- a/src/main/java/train/client/render/models/ModelPassenger.java +++ b/src/main/java/train/client/render/models/ModelPassenger.java @@ -1,7 +1,7 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; public class ModelPassenger extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelPassenger2.java b/src/main/java/train/client/render/models/ModelPassenger2.java index d8d4611e38..ae4cb19a55 100644 --- a/src/main/java/train/client/render/models/ModelPassenger2.java +++ b/src/main/java/train/client/render/models/ModelPassenger2.java @@ -1,7 +1,7 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; public class ModelPassenger2 extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelPassenger4.java b/src/main/java/train/client/render/models/ModelPassenger4.java index aacb2f5ba3..e20ccaea04 100644 --- a/src/main/java/train/client/render/models/ModelPassenger4.java +++ b/src/main/java/train/client/render/models/ModelPassenger4.java @@ -1,7 +1,7 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; public class ModelPassenger4 extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelPassenger5.java b/src/main/java/train/client/render/models/ModelPassenger5.java index d8aedb7f83..6f1e5a036f 100644 --- a/src/main/java/train/client/render/models/ModelPassenger5.java +++ b/src/main/java/train/client/render/models/ModelPassenger5.java @@ -1,7 +1,7 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; public class ModelPassenger5 extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelPassenger6.java b/src/main/java/train/client/render/models/ModelPassenger6.java index 6263883b8d..7200a3e503 100644 --- a/src/main/java/train/client/render/models/ModelPassenger6.java +++ b/src/main/java/train/client/render/models/ModelPassenger6.java @@ -2,7 +2,7 @@ import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.core.ClientProxy; import train.client.render.CustomModelRenderer; import train.client.render.models.blocks.ModelLights; diff --git a/src/main/java/train/client/render/models/ModelPassenger7.java b/src/main/java/train/client/render/models/ModelPassenger7.java index c286d6a9e3..28f384031a 100644 --- a/src/main/java/train/client/render/models/ModelPassenger7.java +++ b/src/main/java/train/client/render/models/ModelPassenger7.java @@ -2,7 +2,7 @@ import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; import train.common.core.handlers.ConfigHandler; diff --git a/src/main/java/train/client/render/models/ModelPassengerAdler.java b/src/main/java/train/client/render/models/ModelPassengerAdler.java index 1b32fe4bcc..5e8d64726e 100644 --- a/src/main/java/train/client/render/models/ModelPassengerAdler.java +++ b/src/main/java/train/client/render/models/ModelPassengerAdler.java @@ -7,1489 +7,1489 @@ package train.client.render.models; -import net.minecraft.client.model.ModelRenderer; +import fexcraft.tmt.slim.ModelRendererTurbo; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; public class ModelPassengerAdler extends ModelBase { - ModelRenderer Shape1; - ModelRenderer Shape2; - ModelRenderer Shape3; - ModelRenderer Shape4; - ModelRenderer Shape5; - ModelRenderer Shape6; - ModelRenderer Shape7; - ModelRenderer Shape8; - ModelRenderer Shape9; - ModelRenderer Shape10; - ModelRenderer Shape11; - ModelRenderer Shape12; - ModelRenderer Shape13; - ModelRenderer Shape14; - ModelRenderer Shape15; - ModelRenderer Shape16; - ModelRenderer Shape17; - ModelRenderer Shape18; - ModelRenderer Shape19; - ModelRenderer Shape20; - ModelRenderer Shape21; - ModelRenderer Shape22; - ModelRenderer Shape23; - ModelRenderer Shape24; - ModelRenderer Shape25; - ModelRenderer Shape26; - ModelRenderer Shape27; - ModelRenderer Shape28; - ModelRenderer Shape29; - ModelRenderer Shape30; - ModelRenderer Shape31; - ModelRenderer Shape32; - ModelRenderer Shape33; - ModelRenderer Shape34; - ModelRenderer Shape35; - ModelRenderer Shape36; - ModelRenderer Shape37; - ModelRenderer Shape38; - ModelRenderer Shape39; - ModelRenderer Shape40; - ModelRenderer Shape41; - ModelRenderer Shape42; - ModelRenderer Shape43; - ModelRenderer Shape44; - ModelRenderer Shape45; - ModelRenderer Shape46; - ModelRenderer Shape47; - ModelRenderer Shape48; - ModelRenderer Shape49; - ModelRenderer Shape50; - ModelRenderer Shape51; - ModelRenderer Shape52; - ModelRenderer Shape53; - ModelRenderer Shape54; - ModelRenderer Shape55; - ModelRenderer Shape56; - ModelRenderer Shape57; - ModelRenderer Shape58; - ModelRenderer Shape59; - ModelRenderer Shape60; - ModelRenderer Shape61; - ModelRenderer Shape62; - ModelRenderer Shape63; - ModelRenderer Shape64; - ModelRenderer Shape65; - ModelRenderer Shape66; - ModelRenderer Shape67; - ModelRenderer Shape68; - ModelRenderer Shape69; - ModelRenderer Shape70; - ModelRenderer Shape71; - ModelRenderer Shape72; - ModelRenderer Shape73; - ModelRenderer Shape74; - ModelRenderer Shape75; - ModelRenderer Shape76; - ModelRenderer Shape77; - ModelRenderer Shape78; - ModelRenderer Shape79; - ModelRenderer Shape80; - ModelRenderer Shape81; - ModelRenderer Shape82; - ModelRenderer Shape83; - ModelRenderer Shape84; - ModelRenderer Shape85; - ModelRenderer Shape86; - ModelRenderer Shape87; - ModelRenderer Shape88; - ModelRenderer Shape89; - ModelRenderer Shape90; - ModelRenderer Shape91; - ModelRenderer Shape92; - ModelRenderer Shape93; - ModelRenderer Shape94; - ModelRenderer Shape95; - ModelRenderer Shape96; - ModelRenderer Shape97; - ModelRenderer Shape98; - ModelRenderer Shape99; - ModelRenderer Shape100; - ModelRenderer Shape101; - ModelRenderer Shape102; - ModelRenderer Shape103; - ModelRenderer Shape104; - ModelRenderer Shape105; - ModelRenderer Shape106; - ModelRenderer Shape107; - ModelRenderer Shape108; - ModelRenderer Shape109; - ModelRenderer Shape110; - ModelRenderer Shape111; - ModelRenderer Shape112; - ModelRenderer Shape113; - ModelRenderer Shape114; - ModelRenderer Shape115; - ModelRenderer Shape116; - ModelRenderer Shape117; - ModelRenderer Shape118; - ModelRenderer Shape119; - ModelRenderer Shape120; - ModelRenderer Shape121; - ModelRenderer Shape122; - ModelRenderer Shape123; - ModelRenderer Shape124; - ModelRenderer Shape125; - ModelRenderer Shape126; - ModelRenderer Shape127; - ModelRenderer Shape128; - ModelRenderer Shape129; - ModelRenderer Shape130; - ModelRenderer Shape131; - ModelRenderer Shape132; - ModelRenderer Shape133; - ModelRenderer Shape134; - ModelRenderer Shape135; - ModelRenderer Shape136; - ModelRenderer Shape137; - ModelRenderer Shape138; - ModelRenderer Shape139; - ModelRenderer Shape140; - ModelRenderer Shape141; - ModelRenderer Shape142; - ModelRenderer Shape143; - ModelRenderer Shape144; - ModelRenderer Shape145; - ModelRenderer Shape146; - ModelRenderer Shape147; - ModelRenderer Shape148; - ModelRenderer Shape149; - ModelRenderer Shape150; - ModelRenderer Shape151; - ModelRenderer Shape152; - ModelRenderer Shape153; - ModelRenderer Shape154; - ModelRenderer Shape155; - ModelRenderer Shape156; - ModelRenderer Shape157; - ModelRenderer Shape158; - ModelRenderer Shape159; - ModelRenderer Shape160; - ModelRenderer Shape161; - ModelRenderer Shape162; - ModelRenderer Shape163; - ModelRenderer Shape164; - ModelRenderer Shape165; - ModelRenderer Shape167; - ModelRenderer Shape166; - ModelRenderer Shape168; - ModelRenderer Shape169; - ModelRenderer Shape170; - ModelRenderer Shape171; - ModelRenderer Shape172; - ModelRenderer Shape173; - ModelRenderer Shape174; - ModelRenderer Shape175; - ModelRenderer Shape176; - ModelRenderer Shape177; - ModelRenderer Shape178; - ModelRenderer Shape179; - ModelRenderer Shape180; - ModelRenderer Shape181; - ModelRenderer Shape182; - ModelRenderer Shape183; - ModelRenderer Shape184; - ModelRenderer Shape185; - ModelRenderer Shape186; - ModelRenderer Shape187; - ModelRenderer Shape188; - ModelRenderer Shape189; - ModelRenderer Shape190; - ModelRenderer Shape191; - ModelRenderer Shape192; - ModelRenderer Shape193; - ModelRenderer Shape194; - ModelRenderer Shape195; - ModelRenderer Shape196; - ModelRenderer Shape197; - ModelRenderer Shape198; - ModelRenderer Shape199; - ModelRenderer Shape200; - ModelRenderer Shape201; - ModelRenderer Shape202; - ModelRenderer Shape203; - ModelRenderer Shape204; - ModelRenderer Shape205; - ModelRenderer Shape206; - ModelRenderer Shape207; - ModelRenderer Shape208; - ModelRenderer Shape209; - ModelRenderer Shape210; - ModelRenderer Shape211; + ModelRendererTurbo Shape1; + ModelRendererTurbo Shape2; + ModelRendererTurbo Shape3; + ModelRendererTurbo Shape4; + ModelRendererTurbo Shape5; + ModelRendererTurbo Shape6; + ModelRendererTurbo Shape7; + ModelRendererTurbo Shape8; + ModelRendererTurbo Shape9; + ModelRendererTurbo Shape10; + ModelRendererTurbo Shape11; + ModelRendererTurbo Shape12; + ModelRendererTurbo Shape13; + ModelRendererTurbo Shape14; + ModelRendererTurbo Shape15; + ModelRendererTurbo Shape16; + ModelRendererTurbo Shape17; + ModelRendererTurbo Shape18; + ModelRendererTurbo Shape19; + ModelRendererTurbo Shape20; + ModelRendererTurbo Shape21; + ModelRendererTurbo Shape22; + ModelRendererTurbo Shape23; + ModelRendererTurbo Shape24; + ModelRendererTurbo Shape25; + ModelRendererTurbo Shape26; + ModelRendererTurbo Shape27; + ModelRendererTurbo Shape28; + ModelRendererTurbo Shape29; + ModelRendererTurbo Shape30; + ModelRendererTurbo Shape31; + ModelRendererTurbo Shape32; + ModelRendererTurbo Shape33; + ModelRendererTurbo Shape34; + ModelRendererTurbo Shape35; + ModelRendererTurbo Shape36; + ModelRendererTurbo Shape37; + ModelRendererTurbo Shape38; + ModelRendererTurbo Shape39; + ModelRendererTurbo Shape40; + ModelRendererTurbo Shape41; + ModelRendererTurbo Shape42; + ModelRendererTurbo Shape43; + ModelRendererTurbo Shape44; + ModelRendererTurbo Shape45; + ModelRendererTurbo Shape46; + ModelRendererTurbo Shape47; + ModelRendererTurbo Shape48; + ModelRendererTurbo Shape49; + ModelRendererTurbo Shape50; + ModelRendererTurbo Shape51; + ModelRendererTurbo Shape52; + ModelRendererTurbo Shape53; + ModelRendererTurbo Shape54; + ModelRendererTurbo Shape55; + ModelRendererTurbo Shape56; + ModelRendererTurbo Shape57; + ModelRendererTurbo Shape58; + ModelRendererTurbo Shape59; + ModelRendererTurbo Shape60; + ModelRendererTurbo Shape61; + ModelRendererTurbo Shape62; + ModelRendererTurbo Shape63; + ModelRendererTurbo Shape64; + ModelRendererTurbo Shape65; + ModelRendererTurbo Shape66; + ModelRendererTurbo Shape67; + ModelRendererTurbo Shape68; + ModelRendererTurbo Shape69; + ModelRendererTurbo Shape70; + ModelRendererTurbo Shape71; + ModelRendererTurbo Shape72; + ModelRendererTurbo Shape73; + ModelRendererTurbo Shape74; + ModelRendererTurbo Shape75; + ModelRendererTurbo Shape76; + ModelRendererTurbo Shape77; + ModelRendererTurbo Shape78; + ModelRendererTurbo Shape79; + ModelRendererTurbo Shape80; + ModelRendererTurbo Shape81; + ModelRendererTurbo Shape82; + ModelRendererTurbo Shape83; + ModelRendererTurbo Shape84; + ModelRendererTurbo Shape85; + ModelRendererTurbo Shape86; + ModelRendererTurbo Shape87; + ModelRendererTurbo Shape88; + ModelRendererTurbo Shape89; + ModelRendererTurbo Shape90; + ModelRendererTurbo Shape91; + ModelRendererTurbo Shape92; + ModelRendererTurbo Shape93; + ModelRendererTurbo Shape94; + ModelRendererTurbo Shape95; + ModelRendererTurbo Shape96; + ModelRendererTurbo Shape97; + ModelRendererTurbo Shape98; + ModelRendererTurbo Shape99; + ModelRendererTurbo Shape100; + ModelRendererTurbo Shape101; + ModelRendererTurbo Shape102; + ModelRendererTurbo Shape103; + ModelRendererTurbo Shape104; + ModelRendererTurbo Shape105; + ModelRendererTurbo Shape106; + ModelRendererTurbo Shape107; + ModelRendererTurbo Shape108; + ModelRendererTurbo Shape109; + ModelRendererTurbo Shape110; + ModelRendererTurbo Shape111; + ModelRendererTurbo Shape112; + ModelRendererTurbo Shape113; + ModelRendererTurbo Shape114; + ModelRendererTurbo Shape115; + ModelRendererTurbo Shape116; + ModelRendererTurbo Shape117; + ModelRendererTurbo Shape118; + ModelRendererTurbo Shape119; + ModelRendererTurbo Shape120; + ModelRendererTurbo Shape121; + ModelRendererTurbo Shape122; + ModelRendererTurbo Shape123; + ModelRendererTurbo Shape124; + ModelRendererTurbo Shape125; + ModelRendererTurbo Shape126; + ModelRendererTurbo Shape127; + ModelRendererTurbo Shape128; + ModelRendererTurbo Shape129; + ModelRendererTurbo Shape130; + ModelRendererTurbo Shape131; + ModelRendererTurbo Shape132; + ModelRendererTurbo Shape133; + ModelRendererTurbo Shape134; + ModelRendererTurbo Shape135; + ModelRendererTurbo Shape136; + ModelRendererTurbo Shape137; + ModelRendererTurbo Shape138; + ModelRendererTurbo Shape139; + ModelRendererTurbo Shape140; + ModelRendererTurbo Shape141; + ModelRendererTurbo Shape142; + ModelRendererTurbo Shape143; + ModelRendererTurbo Shape144; + ModelRendererTurbo Shape145; + ModelRendererTurbo Shape146; + ModelRendererTurbo Shape147; + ModelRendererTurbo Shape148; + ModelRendererTurbo Shape149; + ModelRendererTurbo Shape150; + ModelRendererTurbo Shape151; + ModelRendererTurbo Shape152; + ModelRendererTurbo Shape153; + ModelRendererTurbo Shape154; + ModelRendererTurbo Shape155; + ModelRendererTurbo Shape156; + ModelRendererTurbo Shape157; + ModelRendererTurbo Shape158; + ModelRendererTurbo Shape159; + ModelRendererTurbo Shape160; + ModelRendererTurbo Shape161; + ModelRendererTurbo Shape162; + ModelRendererTurbo Shape163; + ModelRendererTurbo Shape164; + ModelRendererTurbo Shape165; + ModelRendererTurbo Shape167; + ModelRendererTurbo Shape166; + ModelRendererTurbo Shape168; + ModelRendererTurbo Shape169; + ModelRendererTurbo Shape170; + ModelRendererTurbo Shape171; + ModelRendererTurbo Shape172; + ModelRendererTurbo Shape173; + ModelRendererTurbo Shape174; + ModelRendererTurbo Shape175; + ModelRendererTurbo Shape176; + ModelRendererTurbo Shape177; + ModelRendererTurbo Shape178; + ModelRendererTurbo Shape179; + ModelRendererTurbo Shape180; + ModelRendererTurbo Shape181; + ModelRendererTurbo Shape182; + ModelRendererTurbo Shape183; + ModelRendererTurbo Shape184; + ModelRendererTurbo Shape185; + ModelRendererTurbo Shape186; + ModelRendererTurbo Shape187; + ModelRendererTurbo Shape188; + ModelRendererTurbo Shape189; + ModelRendererTurbo Shape190; + ModelRendererTurbo Shape191; + ModelRendererTurbo Shape192; + ModelRendererTurbo Shape193; + ModelRendererTurbo Shape194; + ModelRendererTurbo Shape195; + ModelRendererTurbo Shape196; + ModelRendererTurbo Shape197; + ModelRendererTurbo Shape198; + ModelRendererTurbo Shape199; + ModelRendererTurbo Shape200; + ModelRendererTurbo Shape201; + ModelRendererTurbo Shape202; + ModelRendererTurbo Shape203; + ModelRendererTurbo Shape204; + ModelRendererTurbo Shape205; + ModelRendererTurbo Shape206; + ModelRendererTurbo Shape207; + ModelRendererTurbo Shape208; + ModelRendererTurbo Shape209; + ModelRendererTurbo Shape210; + ModelRendererTurbo Shape211; public ModelPassengerAdler() { textureWidth = 256; textureHeight = 128; - Shape1 = new ModelRenderer(this, 0, 0); + Shape1 = new ModelRendererTurbo(this, 0, 0); Shape1.addBox(0F, 0F, 0F, 1, 1, 4); Shape1.setRotationPoint(-5F, 23F, 4F); Shape1.setTextureSize(256, 128); Shape1.mirror = true; setRotation(Shape1, 0F, 0F, 0F); - Shape2 = new ModelRenderer(this, 11, 0); + Shape2 = new ModelRendererTurbo(this, 11, 0); Shape2.addBox(0F, 0F, 0F, 1, 1, 4); Shape2.setRotationPoint(-5F, 23F, -7F); Shape2.setTextureSize(256, 128); Shape2.mirror = true; setRotation(Shape2, 0F, 0F, 0F); - Shape3 = new ModelRenderer(this, 0, 6); + Shape3 = new ModelRendererTurbo(this, 0, 6); Shape3.addBox(0F, 0F, 0F, 1, 1, 4); Shape3.setRotationPoint(4F, 23F, 4F); Shape3.setTextureSize(256, 128); Shape3.mirror = true; setRotation(Shape3, 0F, 0F, 0F); - Shape4 = new ModelRenderer(this, 11, 6); + Shape4 = new ModelRendererTurbo(this, 11, 6); Shape4.addBox(0F, 0F, 0F, 1, 1, 4); Shape4.setRotationPoint(4F, 23F, -7F); Shape4.setTextureSize(256, 128); Shape4.mirror = true; setRotation(Shape4, 0F, 0F, 0F); - Shape5 = new ModelRenderer(this, 0, 12); + Shape5 = new ModelRendererTurbo(this, 0, 12); Shape5.addBox(0F, 0F, 0F, 1, 1, 4); Shape5.setRotationPoint(-5F, 16F, 4F); Shape5.setTextureSize(256, 128); Shape5.mirror = true; setRotation(Shape5, 0F, 0F, 0F); - Shape6 = new ModelRenderer(this, 11, 12); + Shape6 = new ModelRendererTurbo(this, 11, 12); Shape6.addBox(0F, 0F, 0F, 1, 1, 4); Shape6.setRotationPoint(-5F, 16F, -7F); Shape6.setTextureSize(256, 128); Shape6.mirror = true; setRotation(Shape6, 0F, 0F, 0F); - Shape7 = new ModelRenderer(this, 0, 18); + Shape7 = new ModelRendererTurbo(this, 0, 18); Shape7.addBox(0F, 0F, 0F, 1, 1, 4); Shape7.setRotationPoint(4F, 16F, -7F); Shape7.setTextureSize(256, 128); Shape7.mirror = true; setRotation(Shape7, 0F, 0F, 0F); - Shape8 = new ModelRenderer(this, 11, 18); + Shape8 = new ModelRendererTurbo(this, 11, 18); Shape8.addBox(0F, 0F, 0F, 1, 1, 4); Shape8.setRotationPoint(4F, 16F, 4F); Shape8.setTextureSize(256, 128); Shape8.mirror = true; setRotation(Shape8, 0F, 0F, 0F); - Shape9 = new ModelRenderer(this, 62, 0); + Shape9 = new ModelRendererTurbo(this, 62, 0); Shape9.addBox(0F, 0F, 0F, 1, 1, 1); Shape9.setRotationPoint(-5F, 22F, 8F); Shape9.setTextureSize(256, 128); Shape9.mirror = true; setRotation(Shape9, 0F, 0F, 0F); - Shape10 = new ModelRenderer(this, 67, 0); + Shape10 = new ModelRendererTurbo(this, 67, 0); Shape10.addBox(0F, 0F, 0F, 1, 1, 1); Shape10.setRotationPoint(-5F, 22F, 3F); Shape10.setTextureSize(256, 128); Shape10.mirror = true; setRotation(Shape10, 0F, 0F, 0F); - Shape11 = new ModelRenderer(this, 72, 0); + Shape11 = new ModelRendererTurbo(this, 72, 0); Shape11.addBox(0F, 0F, 0F, 1, 1, 1); Shape11.setRotationPoint(-5F, 22F, -8F); Shape11.setTextureSize(256, 128); Shape11.mirror = true; setRotation(Shape11, 0F, 0F, 0F); - Shape12 = new ModelRenderer(this, 77, 0); + Shape12 = new ModelRendererTurbo(this, 77, 0); Shape12.addBox(0F, 0F, 0F, 1, 1, 1); Shape12.setRotationPoint(-5F, 22F, -3F); Shape12.setTextureSize(256, 128); Shape12.mirror = true; setRotation(Shape12, 0F, 0F, 0F); - Shape13 = new ModelRenderer(this, 82, 0); + Shape13 = new ModelRendererTurbo(this, 82, 0); Shape13.addBox(0F, 0F, 0F, 1, 1, 1); Shape13.setRotationPoint(-5F, 17F, 8F); Shape13.setTextureSize(256, 128); Shape13.mirror = true; setRotation(Shape13, 0F, 0F, 0F); - Shape14 = new ModelRenderer(this, 62, 3); + Shape14 = new ModelRendererTurbo(this, 62, 3); Shape14.addBox(0F, 0F, 0F, 1, 1, 1); Shape14.setRotationPoint(-5F, 17F, 3F); Shape14.setTextureSize(256, 128); Shape14.mirror = true; setRotation(Shape14, 0F, 0F, 0F); - Shape15 = new ModelRenderer(this, 67, 3); + Shape15 = new ModelRendererTurbo(this, 67, 3); Shape15.addBox(0F, 0F, 0F, 1, 1, 1); Shape15.setRotationPoint(-5F, 17F, -8F); Shape15.setTextureSize(256, 128); Shape15.mirror = true; setRotation(Shape15, 0F, 0F, 0F); - Shape16 = new ModelRenderer(this, 72, 3); + Shape16 = new ModelRendererTurbo(this, 72, 3); Shape16.addBox(0F, 0F, 0F, 1, 1, 1); Shape16.setRotationPoint(-5F, 17F, -3F); Shape16.setTextureSize(256, 128); Shape16.mirror = true; setRotation(Shape16, 0F, 0F, 0F); - Shape17 = new ModelRenderer(this, 77, 3); + Shape17 = new ModelRendererTurbo(this, 77, 3); Shape17.addBox(0F, 0F, 0F, 1, 1, 1); Shape17.setRotationPoint(4F, 17F, 8F); Shape17.setTextureSize(256, 128); Shape17.mirror = true; setRotation(Shape17, 0F, 0F, 0F); - Shape18 = new ModelRenderer(this, 82, 3); + Shape18 = new ModelRendererTurbo(this, 82, 3); Shape18.addBox(0F, 0F, 0F, 1, 1, 1); Shape18.setRotationPoint(4F, 17F, 3F); Shape18.setTextureSize(256, 128); Shape18.mirror = true; setRotation(Shape18, 0F, 0F, 0F); - Shape19 = new ModelRenderer(this, 62, 6); + Shape19 = new ModelRendererTurbo(this, 62, 6); Shape19.addBox(0F, 0F, 0F, 1, 1, 1); Shape19.setRotationPoint(4F, 17F, -8F); Shape19.setTextureSize(256, 128); Shape19.mirror = true; setRotation(Shape19, 0F, 0F, 0F); - Shape20 = new ModelRenderer(this, 67, 6); + Shape20 = new ModelRendererTurbo(this, 67, 6); Shape20.addBox(0F, 0F, 0F, 1, 1, 1); Shape20.setRotationPoint(4F, 17F, -3F); Shape20.setTextureSize(256, 128); Shape20.mirror = true; setRotation(Shape20, 0F, 0F, 0F); - Shape21 = new ModelRenderer(this, 72, 6); + Shape21 = new ModelRendererTurbo(this, 72, 6); Shape21.addBox(0F, 0F, 0F, 1, 1, 1); Shape21.setRotationPoint(4F, 22F, 8F); Shape21.setTextureSize(256, 128); Shape21.mirror = true; setRotation(Shape21, 0F, 0F, 0F); - Shape22 = new ModelRenderer(this, 77, 6); + Shape22 = new ModelRendererTurbo(this, 77, 6); Shape22.addBox(0F, 0F, 0F, 1, 1, 1); Shape22.setRotationPoint(4F, 22F, 3F); Shape22.setTextureSize(256, 128); Shape22.mirror = true; setRotation(Shape22, 0F, 0F, 0F); - Shape23 = new ModelRenderer(this, 82, 6); + Shape23 = new ModelRendererTurbo(this, 82, 6); Shape23.addBox(0F, 0F, 0F, 1, 1, 1); Shape23.setRotationPoint(4F, 22F, -8F); Shape23.setTextureSize(256, 128); Shape23.mirror = true; setRotation(Shape23, 0F, 0F, 0F); - Shape24 = new ModelRenderer(this, 62, 9); + Shape24 = new ModelRendererTurbo(this, 62, 9); Shape24.addBox(0F, 0F, 0F, 1, 1, 1); Shape24.setRotationPoint(4F, 22F, -3F); Shape24.setTextureSize(256, 128); Shape24.mirror = true; setRotation(Shape24, 0F, 0F, 0F); - Shape25 = new ModelRenderer(this, 62, 12); + Shape25 = new ModelRendererTurbo(this, 62, 12); Shape25.addBox(0F, 0F, 0F, 1, 4, 1); Shape25.setRotationPoint(-5F, 18F, 9F); Shape25.setTextureSize(256, 128); Shape25.mirror = true; setRotation(Shape25, 0F, 0F, 0F); - Shape26 = new ModelRenderer(this, 67, 12); + Shape26 = new ModelRendererTurbo(this, 67, 12); Shape26.addBox(0F, 0F, 0F, 1, 4, 1); Shape26.setRotationPoint(-5F, 18F, 2F); Shape26.setTextureSize(256, 128); Shape26.mirror = true; setRotation(Shape26, 0F, 0F, 0F); - Shape27 = new ModelRenderer(this, 72, 12); + Shape27 = new ModelRendererTurbo(this, 72, 12); Shape27.addBox(0F, 0F, 0F, 1, 4, 1); Shape27.setRotationPoint(-5F, 18F, -9F); Shape27.setTextureSize(256, 128); Shape27.mirror = true; setRotation(Shape27, 0F, 0F, 0F); - Shape28 = new ModelRenderer(this, 77, 12); + Shape28 = new ModelRendererTurbo(this, 77, 12); Shape28.addBox(0F, 0F, 0F, 1, 4, 1); Shape28.setRotationPoint(-5F, 18F, -2F); Shape28.setTextureSize(256, 128); Shape28.mirror = true; setRotation(Shape28, 0F, 0F, 0F); - Shape29 = new ModelRenderer(this, 82, 12); + Shape29 = new ModelRendererTurbo(this, 82, 12); Shape29.addBox(0F, 0F, 0F, 1, 4, 1); Shape29.setRotationPoint(4F, 18F, 9F); Shape29.setTextureSize(256, 128); Shape29.mirror = true; setRotation(Shape29, 0F, 0F, 0F); - Shape30 = new ModelRenderer(this, 62, 18); + Shape30 = new ModelRendererTurbo(this, 62, 18); Shape30.addBox(0F, 0F, 0F, 1, 4, 1); Shape30.setRotationPoint(4F, 18F, 2F); Shape30.setTextureSize(256, 128); Shape30.mirror = true; setRotation(Shape30, 0F, 0F, 0F); - Shape31 = new ModelRenderer(this, 67, 18); + Shape31 = new ModelRendererTurbo(this, 67, 18); Shape31.addBox(0F, 0F, 0F, 1, 4, 1); Shape31.setRotationPoint(4F, 18F, -9F); Shape31.setTextureSize(256, 128); Shape31.mirror = true; setRotation(Shape31, 0F, 0F, 0F); - Shape32 = new ModelRenderer(this, 72, 18); + Shape32 = new ModelRendererTurbo(this, 72, 18); Shape32.addBox(0F, 0F, 0F, 1, 4, 1); Shape32.setRotationPoint(4F, 18F, -2F); Shape32.setTextureSize(256, 128); Shape32.mirror = true; setRotation(Shape32, 0F, 0F, 0F); - Shape33 = new ModelRenderer(this, 0, 24); + Shape33 = new ModelRendererTurbo(this, 0, 24); Shape33.addBox(0F, 0F, 0F, 1, 2, 2); Shape33.setRotationPoint(-5F, 19F, 5F); Shape33.setTextureSize(256, 128); Shape33.mirror = true; setRotation(Shape33, 0F, 0F, 0F); - Shape34 = new ModelRenderer(this, 7, 24); + Shape34 = new ModelRendererTurbo(this, 7, 24); Shape34.addBox(0F, 0F, 0F, 1, 2, 2); Shape34.setRotationPoint(-5F, 19F, -6F); Shape34.setTextureSize(256, 128); Shape34.mirror = true; setRotation(Shape34, 0F, 0F, 0F); - Shape35 = new ModelRenderer(this, 14, 24); + Shape35 = new ModelRendererTurbo(this, 14, 24); Shape35.addBox(0F, 0F, 0F, 1, 2, 2); Shape35.setRotationPoint(4F, 19F, 5F); Shape35.setTextureSize(256, 128); Shape35.mirror = true; setRotation(Shape35, 0F, 0F, 0F); - Shape36 = new ModelRenderer(this, 21, 24); + Shape36 = new ModelRendererTurbo(this, 21, 24); Shape36.addBox(0F, 0F, 0F, 1, 2, 2); Shape36.setRotationPoint(4F, 19F, -6F); Shape36.setTextureSize(256, 128); Shape36.mirror = true; setRotation(Shape36, 0F, 0F, 0F); - Shape37 = new ModelRenderer(this, 0, 32); + Shape37 = new ModelRendererTurbo(this, 0, 32); Shape37.addBox(0F, 0F, 0F, 0, 2, 1); Shape37.setRotationPoint(-4.5F, 21F, 5.5F); Shape37.setTextureSize(256, 128); Shape37.mirror = true; setRotation(Shape37, 0F, 0F, 0F); - Shape38 = new ModelRenderer(this, 3, 32); + Shape38 = new ModelRendererTurbo(this, 3, 32); Shape38.addBox(0F, 0F, 0F, 0, 2, 1); Shape38.setRotationPoint(-4.5F, 17F, 5.5F); Shape38.setTextureSize(256, 128); Shape38.mirror = true; setRotation(Shape38, 0F, 0F, 0F); - Shape39 = new ModelRenderer(this, 6, 32); + Shape39 = new ModelRendererTurbo(this, 6, 32); Shape39.addBox(0F, 0F, 0F, 0, 2, 1); Shape39.setRotationPoint(-4.5F, 21F, -5.5F); Shape39.setTextureSize(256, 128); Shape39.mirror = true; setRotation(Shape39, 0F, 0F, 0F); - Shape40 = new ModelRenderer(this, 9, 32); + Shape40 = new ModelRendererTurbo(this, 9, 32); Shape40.addBox(0F, 0F, 0F, 0, 2, 1); Shape40.setRotationPoint(-4.5F, 17F, -5.5F); Shape40.setTextureSize(256, 128); Shape40.mirror = true; setRotation(Shape40, 0F, 0F, 0F); - Shape41 = new ModelRenderer(this, 12, 32); + Shape41 = new ModelRendererTurbo(this, 12, 32); Shape41.addBox(0F, 0F, 0F, 0, 2, 1); Shape41.setRotationPoint(4.5F, 21F, 5.5F); Shape41.setTextureSize(256, 128); Shape41.mirror = true; setRotation(Shape41, 0F, 0F, 0F); - Shape42 = new ModelRenderer(this, 15, 32); + Shape42 = new ModelRendererTurbo(this, 15, 32); Shape42.addBox(0F, 0F, 0F, 0, 2, 1); Shape42.setRotationPoint(4.5F, 17F, 5.5F); Shape42.setTextureSize(256, 128); Shape42.mirror = true; setRotation(Shape42, 0F, 0F, 0F); - Shape43 = new ModelRenderer(this, 18, 32); + Shape43 = new ModelRendererTurbo(this, 18, 32); Shape43.addBox(0F, 0F, 0F, 0, 2, 1); Shape43.setRotationPoint(4.5F, 21F, -5.5F); Shape43.setTextureSize(256, 128); Shape43.mirror = true; setRotation(Shape43, 0F, 0F, 0F); - Shape44 = new ModelRenderer(this, 21, 32); + Shape44 = new ModelRendererTurbo(this, 21, 32); Shape44.addBox(0F, 0F, 0F, 0, 2, 1); Shape44.setRotationPoint(4.5F, 17F, -5.5F); Shape44.setTextureSize(256, 128); Shape44.mirror = true; setRotation(Shape44, 0F, 0F, 0F); - Shape45 = new ModelRenderer(this, 0, 27); + Shape45 = new ModelRendererTurbo(this, 0, 27); Shape45.addBox(0F, 0F, 0F, 0, 1, 2); Shape45.setRotationPoint(-4.5F, 19.5F, 7F); Shape45.setTextureSize(256, 128); Shape45.mirror = true; setRotation(Shape45, 0F, 0F, 0F); - Shape46 = new ModelRenderer(this, 5, 27); + Shape46 = new ModelRendererTurbo(this, 5, 27); Shape46.addBox(0F, 0F, 0F, 0, 1, 2); Shape46.setRotationPoint(-4.5F, 19.5F, 3F); Shape46.setTextureSize(256, 128); Shape46.mirror = true; setRotation(Shape46, 0F, 0F, 0F); - Shape47 = new ModelRenderer(this, 10, 27); + Shape47 = new ModelRendererTurbo(this, 10, 27); Shape47.addBox(0F, 0F, 0F, 0, 1, 2); Shape47.setRotationPoint(-4.5F, 19.5F, -8F); Shape47.setTextureSize(256, 128); Shape47.mirror = true; setRotation(Shape47, 0F, 0F, 0F); - Shape48 = new ModelRenderer(this, 15, 27); + Shape48 = new ModelRendererTurbo(this, 15, 27); Shape48.addBox(0F, 0F, 0F, 0, 1, 2); Shape48.setRotationPoint(-4.5F, 19.5F, -4F); Shape48.setTextureSize(256, 128); Shape48.mirror = true; setRotation(Shape48, 0F, 0F, 0F); - Shape49 = new ModelRenderer(this, 20, 27); + Shape49 = new ModelRendererTurbo(this, 20, 27); Shape49.addBox(0F, 0F, 0F, 0, 1, 2); Shape49.setRotationPoint(4.5F, 19.5F, 7F); Shape49.setTextureSize(256, 128); Shape49.mirror = true; setRotation(Shape49, 0F, 0F, 0F); - Shape50 = new ModelRenderer(this, 25, 27); + Shape50 = new ModelRendererTurbo(this, 25, 27); Shape50.addBox(0F, 0F, 0F, 0, 1, 2); Shape50.setRotationPoint(4.5F, 19.5F, 3F); Shape50.setTextureSize(256, 128); Shape50.mirror = true; setRotation(Shape50, 0F, 0F, 0F); - Shape51 = new ModelRenderer(this, 24, -1); + Shape51 = new ModelRendererTurbo(this, 24, -1); Shape51.addBox(0F, 0F, 0F, 0, 1, 2); Shape51.setRotationPoint(4.5F, 19.5F, -8F); Shape51.setTextureSize(256, 128); Shape51.mirror = true; setRotation(Shape51, 0F, 0F, 0F); - Shape52 = new ModelRenderer(this, 24, 1); + Shape52 = new ModelRendererTurbo(this, 24, 1); Shape52.addBox(0F, 0F, 0F, 0, 1, 2); Shape52.setRotationPoint(4.5F, 19.5F, -4F); Shape52.setTextureSize(256, 128); Shape52.mirror = true; setRotation(Shape52, 0F, 0F, 0F); - Shape53 = new ModelRenderer(this, 24, 2); + Shape53 = new ModelRendererTurbo(this, 24, 2); Shape53.addBox(0F, 0F, 0F, 0, 1, 3); Shape53.setRotationPoint(-4.5F, 20.1F, 6.8F); Shape53.setTextureSize(256, 128); Shape53.mirror = true; setRotation(Shape53, -0.7853982F, 0F, 0F); - Shape54 = new ModelRenderer(this, 24, 4); + Shape54 = new ModelRendererTurbo(this, 24, 4); Shape54.addBox(0F, 0F, 0F, 0, 1, 3); Shape54.setRotationPoint(-4.5F, 17F, 3.7F); Shape54.setTextureSize(256, 128); Shape54.mirror = true; setRotation(Shape54, -0.7853982F, 0F, 0F); - Shape55 = new ModelRenderer(this, 24, 6); + Shape55 = new ModelRendererTurbo(this, 24, 6); Shape55.addBox(0F, 0F, 0F, 0, 1, 3); Shape55.setRotationPoint(-4.5F, 20.1F, -4.2F); Shape55.setTextureSize(256, 128); Shape55.mirror = true; setRotation(Shape55, -0.7853982F, 0F, 0F); - Shape56 = new ModelRenderer(this, 24, 8); + Shape56 = new ModelRendererTurbo(this, 24, 8); Shape56.addBox(0F, 0F, 0F, 0, 1, 3); Shape56.setRotationPoint(-4.5F, 17F, -7.3F); Shape56.setTextureSize(256, 128); Shape56.mirror = true; setRotation(Shape56, -0.7853982F, 0F, 0F); - Shape57 = new ModelRenderer(this, 24, 10); + Shape57 = new ModelRendererTurbo(this, 24, 10); Shape57.addBox(0F, 0F, 0F, 0, 1, 3); Shape57.setRotationPoint(4.5F, 20.1F, 6.8F); Shape57.setTextureSize(256, 128); Shape57.mirror = true; setRotation(Shape57, -0.7853982F, 0F, 0F); - Shape58 = new ModelRenderer(this, 24, 12); + Shape58 = new ModelRendererTurbo(this, 24, 12); Shape58.addBox(0F, 0F, 0F, 0, 1, 3); Shape58.setRotationPoint(4.5F, 17F, 3.7F); Shape58.setTextureSize(256, 128); Shape58.mirror = true; setRotation(Shape58, -0.7853982F, 0F, 0F); - Shape59 = new ModelRenderer(this, 24, 14); + Shape59 = new ModelRendererTurbo(this, 24, 14); Shape59.addBox(0F, 0F, 0F, 0, 1, 3); Shape59.setRotationPoint(4.5F, 20.1F, -4.2F); Shape59.setTextureSize(256, 128); Shape59.mirror = true; setRotation(Shape59, -0.7853982F, 0F, 0F); - Shape60 = new ModelRenderer(this, 24, 16); + Shape60 = new ModelRendererTurbo(this, 24, 16); Shape60.addBox(0F, 0F, 0F, 0, 1, 3); Shape60.setRotationPoint(4.5F, 17F, -7.3F); Shape60.setTextureSize(256, 128); Shape60.mirror = true; setRotation(Shape60, -0.7853982F, 0F, 0F); - Shape61 = new ModelRenderer(this, 24, 18); + Shape61 = new ModelRendererTurbo(this, 24, 18); Shape61.addBox(0F, 0F, 0F, 0, 1, 3); Shape61.setRotationPoint(-4.5F, 22F, 3.3F); Shape61.setTextureSize(256, 128); Shape61.mirror = true; setRotation(Shape61, 0.7853982F, 0F, 0F); - Shape62 = new ModelRenderer(this, 67, 7); + Shape62 = new ModelRendererTurbo(this, 67, 7); Shape62.addBox(0F, 0F, 0F, 0, 1, 3); Shape62.setRotationPoint(-4.5F, 19.2F, 6.1F); Shape62.setTextureSize(256, 128); Shape62.mirror = true; setRotation(Shape62, 0.7853982F, 0F, 0F); - Shape63 = new ModelRenderer(this, 74, 7); + Shape63 = new ModelRendererTurbo(this, 74, 7); Shape63.addBox(0F, 0F, 0F, 0, 1, 3); Shape63.setRotationPoint(-4.5F, 19.2F, -4.9F); Shape63.setTextureSize(256, 128); Shape63.mirror = true; setRotation(Shape63, 0.7853982F, 0F, 0F); - Shape64 = new ModelRenderer(this, 81, 7); + Shape64 = new ModelRendererTurbo(this, 81, 7); Shape64.addBox(0F, 0F, 0F, 0, 1, 3); Shape64.setRotationPoint(-4.5F, 22F, -7.7F); Shape64.setTextureSize(256, 128); Shape64.mirror = true; setRotation(Shape64, 0.7853982F, 0F, 0F); - Shape65 = new ModelRenderer(this, 62, 21); + Shape65 = new ModelRendererTurbo(this, 62, 21); Shape65.addBox(0F, 0F, 0F, 0, 1, 3); Shape65.setRotationPoint(4.5F, 19.2F, 6.1F); Shape65.setTextureSize(256, 128); Shape65.mirror = true; setRotation(Shape65, 0.7853982F, 0F, 0F); - Shape66 = new ModelRenderer(this, 62, 23); + Shape66 = new ModelRendererTurbo(this, 62, 23); Shape66.addBox(0F, 0F, 0F, 0, 1, 3); Shape66.setRotationPoint(4.5F, 22F, 3.3F); Shape66.setTextureSize(256, 128); Shape66.mirror = true; setRotation(Shape66, 0.7853982F, 0F, 0F); - Shape67 = new ModelRenderer(this, 69, 21); + Shape67 = new ModelRendererTurbo(this, 69, 21); Shape67.addBox(0F, 0F, 0F, 0, 1, 3); Shape67.setRotationPoint(4.5F, 19.2F, -4.9F); Shape67.setTextureSize(256, 128); Shape67.mirror = true; setRotation(Shape67, 0.7853982F, 0F, 0F); - Shape68 = new ModelRenderer(this, 69, 23); + Shape68 = new ModelRendererTurbo(this, 69, 23); Shape68.addBox(0F, 0F, 0F, 0, 1, 3); Shape68.setRotationPoint(4.5F, 22F, -7.7F); Shape68.setTextureSize(256, 128); Shape68.mirror = true; setRotation(Shape68, 0.7853982F, 0F, 0F); - Shape69 = new ModelRenderer(this, 0, 36); + Shape69 = new ModelRendererTurbo(this, 0, 36); Shape69.addBox(0F, 0F, 0F, 12, 1, 1); Shape69.setRotationPoint(-6F, 19.5F, 5.5F); Shape69.setTextureSize(256, 128); Shape69.mirror = true; setRotation(Shape69, 0F, 0F, 0F); - Shape70 = new ModelRenderer(this, 0, 39); + Shape70 = new ModelRendererTurbo(this, 0, 39); Shape70.addBox(0F, 0F, 0F, 12, 1, 1); Shape70.setRotationPoint(-6F, 19.5F, -5.5F); Shape70.setTextureSize(256, 128); Shape70.mirror = true; setRotation(Shape70, 0F, 0F, 0F); - Shape71 = new ModelRenderer(this, 77, 18); + Shape71 = new ModelRendererTurbo(this, 77, 18); Shape71.addBox(0F, 0F, 0F, 1, 2, 1); Shape71.setRotationPoint(-6.5F, 19F, 6.5F); Shape71.setTextureSize(256, 128); Shape71.mirror = true; setRotation(Shape71, 0F, 0F, 0F); - Shape72 = new ModelRenderer(this, 82, 18); + Shape72 = new ModelRendererTurbo(this, 82, 18); Shape72.addBox(0F, 0F, 0F, 1, 2, 1); Shape72.setRotationPoint(-6.5F, 19F, 4.5F); Shape72.setTextureSize(256, 128); Shape72.mirror = true; setRotation(Shape72, 0F, 0F, 0F); - Shape73 = new ModelRenderer(this, 77, 22); + Shape73 = new ModelRendererTurbo(this, 77, 22); Shape73.addBox(0F, 0F, 0F, 1, 2, 1); Shape73.setRotationPoint(-6.5F, 19F, -6.5F); Shape73.setTextureSize(256, 128); Shape73.mirror = true; setRotation(Shape73, 0F, 0F, 0F); - Shape74 = new ModelRenderer(this, 82, 22); + Shape74 = new ModelRendererTurbo(this, 82, 22); Shape74.addBox(0F, 0F, 0F, 1, 2, 1); Shape74.setRotationPoint(-6.5F, 19F, -4.5F); Shape74.setTextureSize(256, 128); Shape74.mirror = true; setRotation(Shape74, 0F, 0F, 0F); - Shape75 = new ModelRenderer(this, 28, 33); + Shape75 = new ModelRendererTurbo(this, 28, 33); Shape75.addBox(0F, 0F, 0F, 1, 2, 1); Shape75.setRotationPoint(5.5F, 19F, 6.5F); Shape75.setTextureSize(256, 128); Shape75.mirror = true; setRotation(Shape75, 0F, 0F, 0F); - Shape76 = new ModelRenderer(this, 28, 37); + Shape76 = new ModelRendererTurbo(this, 28, 37); Shape76.addBox(0F, 0F, 0F, 1, 2, 1); Shape76.setRotationPoint(5.5F, 19F, 4.5F); Shape76.setTextureSize(256, 128); Shape76.mirror = true; setRotation(Shape76, 0F, 0F, 0F); - Shape77 = new ModelRenderer(this, 28, 41); + Shape77 = new ModelRendererTurbo(this, 28, 41); Shape77.addBox(0F, 0F, 0F, 1, 2, 1); Shape77.setRotationPoint(5.5F, 19F, -6.5F); Shape77.setTextureSize(256, 128); Shape77.mirror = true; setRotation(Shape77, 0F, 0F, 0F); - Shape78 = new ModelRenderer(this, 28, 45); + Shape78 = new ModelRendererTurbo(this, 28, 45); Shape78.addBox(0F, 0F, 0F, 1, 2, 1); Shape78.setRotationPoint(5.5F, 19F, -4.5F); Shape78.setTextureSize(256, 128); Shape78.mirror = true; setRotation(Shape78, 0F, 0F, 0F); - Shape79 = new ModelRenderer(this, 58, 30); + Shape79 = new ModelRendererTurbo(this, 58, 30); Shape79.addBox(0F, 0F, 0F, 1, 1, 34); Shape79.setRotationPoint(-6.5F, 18F, -15.5F); Shape79.setTextureSize(256, 128); Shape79.mirror = true; setRotation(Shape79, 0F, 0F, 0F); - Shape80 = new ModelRenderer(this, 0, 33); + Shape80 = new ModelRendererTurbo(this, 0, 33); Shape80.addBox(0F, 0F, 0F, 1, 1, 34); Shape80.setRotationPoint(5.5F, 18F, -15.5F); Shape80.setTextureSize(256, 128); Shape80.mirror = true; setRotation(Shape80, 0F, 0F, 0F); - Shape81 = new ModelRenderer(this, 37, 33); + Shape81 = new ModelRendererTurbo(this, 37, 33); Shape81.addBox(0F, 0F, 0F, 11, 1, 1); Shape81.setRotationPoint(-5.5F, 18F, 0.5F); Shape81.setTextureSize(256, 128); Shape81.mirror = true; setRotation(Shape81, 0F, 0F, 0F); - Shape82 = new ModelRenderer(this, 37, 36); + Shape82 = new ModelRendererTurbo(this, 37, 36); Shape82.addBox(0F, 0F, 0F, 11, 1, 1); Shape82.setRotationPoint(-5.5F, 18F, 11.5F); Shape82.setTextureSize(256, 128); Shape82.mirror = true; setRotation(Shape82, 0F, 0F, 0F); - Shape83 = new ModelRenderer(this, 37, 39); + Shape83 = new ModelRendererTurbo(this, 37, 39); Shape83.addBox(0F, 0F, 0F, 11, 1, 1); Shape83.setRotationPoint(-5.5F, 18F, 16.5F); Shape83.setTextureSize(256, 128); Shape83.mirror = true; setRotation(Shape83, 0F, 0F, 0F); - Shape84 = new ModelRenderer(this, 37, 42); + Shape84 = new ModelRendererTurbo(this, 37, 42); Shape84.addBox(0F, 0F, 0F, 11, 1, 1); Shape84.setRotationPoint(-5.5F, 18F, -10.5F); Shape84.setTextureSize(256, 128); Shape84.mirror = true; setRotation(Shape84, 0F, 0F, 0F); - Shape85 = new ModelRenderer(this, 37, 45); + Shape85 = new ModelRendererTurbo(this, 37, 45); Shape85.addBox(0F, 0F, 0F, 11, 1, 1); Shape85.setRotationPoint(-5.5F, 18F, -13.5F); Shape85.setTextureSize(256, 128); Shape85.mirror = true; setRotation(Shape85, 0F, 0F, 0F); - Shape86 = new ModelRenderer(this, 25, 85); + Shape86 = new ModelRendererTurbo(this, 25, 85); Shape86.addBox(0F, 0F, 0F, 1, 1, 33); Shape86.setRotationPoint(-0.5F, 18F, -13F); Shape86.setTextureSize(256, 128); Shape86.mirror = true; setRotation(Shape86, 0F, 0F, 0F); - Shape87 = new ModelRenderer(this, 0, 42); + Shape87 = new ModelRendererTurbo(this, 0, 42); Shape87.addBox(0F, 0F, 0F, 2, 2, 1); Shape87.setRotationPoint(-7F, 17.5F, 18.5F); Shape87.setTextureSize(256, 128); Shape87.mirror = true; setRotation(Shape87, 0F, 0F, 0F); - Shape88 = new ModelRenderer(this, 7, 42); + Shape88 = new ModelRendererTurbo(this, 7, 42); Shape88.addBox(0F, 0F, 0F, 2, 2, 1); Shape88.setRotationPoint(5F, 17.5F, 18.5F); Shape88.setTextureSize(256, 128); Shape88.mirror = true; setRotation(Shape88, 0F, 0F, 0F); - Shape89 = new ModelRenderer(this, 14, 42); + Shape89 = new ModelRendererTurbo(this, 14, 42); Shape89.addBox(0F, 0F, 0F, 2, 2, 1); Shape89.setRotationPoint(-7F, 17.5F, -16.5F); Shape89.setTextureSize(256, 128); Shape89.mirror = true; setRotation(Shape89, 0F, 0F, 0F); - Shape90 = new ModelRenderer(this, 21, 42); + Shape90 = new ModelRendererTurbo(this, 21, 42); Shape90.addBox(0F, 0F, 0F, 2, 2, 1); Shape90.setRotationPoint(5F, 17.5F, -16.5F); Shape90.setTextureSize(256, 128); Shape90.mirror = true; setRotation(Shape90, 0F, 0F, 0F); - Shape91 = new ModelRenderer(this, 0, 46); + Shape91 = new ModelRendererTurbo(this, 0, 46); Shape91.addBox(0F, 0F, 0F, 1, 1, 1); Shape91.setRotationPoint(-0.5F, 18F, -17F); Shape91.setTextureSize(256, 128); Shape91.mirror = true; setRotation(Shape91, 0F, 0F, 0F); - Shape92 = new ModelRenderer(this, 1, 46); + Shape92 = new ModelRendererTurbo(this, 1, 46); Shape92.addBox(0F, 0F, 0F, 1, 0, 4); Shape92.setRotationPoint(-0.5F, 18.5F, -16.5F); Shape92.setTextureSize(256, 128); Shape92.mirror = true; setRotation(Shape92, 0F, -0.5235988F, 0F); - Shape93 = new ModelRenderer(this, 12, 46); + Shape93 = new ModelRendererTurbo(this, 12, 46); Shape93.addBox(0F, 0F, 0F, 1, 0, 4); Shape93.setRotationPoint(-0.5F, 18.5F, -16.3F); Shape93.setTextureSize(256, 128); Shape93.mirror = true; setRotation(Shape93, 0F, 0.4886922F, 0F); - Shape94 = new ModelRenderer(this, 23, 49); + Shape94 = new ModelRendererTurbo(this, 23, 49); Shape94.addBox(0F, 0F, 0F, 4, 0, 1); Shape94.setRotationPoint(-6F, 18.5F, -15F); Shape94.setTextureSize(256, 128); Shape94.mirror = true; setRotation(Shape94, 0F, -0.3839724F, 0F); - Shape95 = new ModelRenderer(this, 23, 52); + Shape95 = new ModelRendererTurbo(this, 23, 52); Shape95.addBox(0F, 0F, 0F, 4, 0, 1); Shape95.setRotationPoint(2.2F, 18.5F, -13.5F); Shape95.setTextureSize(256, 128); Shape95.mirror = true; setRotation(Shape95, 0F, 0.3839724F, 0F); - Shape96 = new ModelRenderer(this, 103, 0); + Shape96 = new ModelRendererTurbo(this, 103, 0); Shape96.addBox(0F, 0F, 0F, 1, 0, 14); Shape96.setRotationPoint(-6.5F, 21F, -6.5F); Shape96.setTextureSize(256, 128); Shape96.mirror = true; setRotation(Shape96, 0F, 0F, 0F); - Shape97 = new ModelRenderer(this, 106, 0); + Shape97 = new ModelRendererTurbo(this, 106, 0); Shape97.addBox(0F, 0F, 0F, 1, 0, 14); Shape97.setRotationPoint(5.5F, 21F, -6.5F); Shape97.setTextureSize(256, 128); Shape97.mirror = true; setRotation(Shape97, 0F, 0F, 0F); - Shape98 = new ModelRenderer(this, 111, 15); + Shape98 = new ModelRendererTurbo(this, 111, 15); Shape98.addBox(0F, 0F, 0F, 1, 0, 6); Shape98.setRotationPoint(-6.5F, 21F, 7F); Shape98.setTextureSize(256, 128); Shape98.mirror = true; setRotation(Shape98, 0.3490659F, 0F, 0F); - Shape99 = new ModelRenderer(this, 114, 15); + Shape99 = new ModelRendererTurbo(this, 114, 15); Shape99.addBox(0F, 0F, 0F, 1, 0, 6); Shape99.setRotationPoint(5.5F, 21F, 7F); Shape99.setTextureSize(256, 128); Shape99.mirror = true; setRotation(Shape99, 0.3490659F, 0F, 0F); - Shape100 = new ModelRenderer(this, 117, 0); + Shape100 = new ModelRendererTurbo(this, 117, 0); Shape100.addBox(0F, 0F, 0F, 1, 0, 6); Shape100.setRotationPoint(-6.5F, 18.9F, -12F); Shape100.setTextureSize(256, 128); Shape100.mirror = true; setRotation(Shape100, -0.3490659F, 0F, 0F); - Shape101 = new ModelRenderer(this, 117, 7); + Shape101 = new ModelRendererTurbo(this, 117, 7); Shape101.addBox(0F, 0F, 0F, 1, 0, 6); Shape101.setRotationPoint(5.5F, 18.9F, -12F); Shape101.setTextureSize(256, 128); Shape101.mirror = true; setRotation(Shape101, -0.3490659F, 0F, 0F); - Shape102 = new ModelRenderer(this, 8, 45); + Shape102 = new ModelRendererTurbo(this, 8, 45); Shape102.addBox(0F, 0F, 0F, 0, 2, 1); Shape102.setRotationPoint(-6F, 19F, 17F); Shape102.setTextureSize(256, 128); Shape102.mirror = true; setRotation(Shape102, 0F, 0F, 0F); - Shape103 = new ModelRenderer(this, 11, 45); + Shape103 = new ModelRendererTurbo(this, 11, 45); Shape103.addBox(0F, 0F, 0F, 0, 2, 1); Shape103.setRotationPoint(6F, 19F, 17F); Shape103.setTextureSize(256, 128); Shape103.mirror = true; setRotation(Shape103, 0F, 0F, 0F); - Shape104 = new ModelRenderer(this, 17, 46); + Shape104 = new ModelRendererTurbo(this, 17, 46); Shape104.addBox(0F, 0F, 0F, 1, 0, 2); Shape104.setRotationPoint(-7F, 21F, 16.5F); Shape104.setTextureSize(256, 128); Shape104.mirror = true; setRotation(Shape104, 0F, 0F, 0F); - Shape105 = new ModelRenderer(this, 21, 46); + Shape105 = new ModelRendererTurbo(this, 21, 46); Shape105.addBox(0F, 0F, 0F, 1, 0, 2); Shape105.setRotationPoint(6F, 21F, 16.5F); Shape105.setTextureSize(256, 128); Shape105.mirror = true; setRotation(Shape105, 0F, 0F, 0F); - Shape106 = new ModelRenderer(this, 0, 0); + Shape106 = new ModelRendererTurbo(this, 0, 0); Shape106.addBox(0F, 0F, 0F, 14, 1, 31); Shape106.setRotationPoint(-7F, 15F, -15F); Shape106.setTextureSize(256, 128); Shape106.mirror = true; setRotation(Shape106, 0F, 0F, 0F); - Shape107 = new ModelRenderer(this, 0, 52); + Shape107 = new ModelRendererTurbo(this, 0, 52); Shape107.addBox(0F, 0F, 0F, 1, 2, 1); Shape107.setRotationPoint(-6F, 16F, 13.5F); Shape107.setTextureSize(256, 128); Shape107.mirror = true; setRotation(Shape107, 0F, 0F, 0F); - Shape108 = new ModelRenderer(this, 5, 52); + Shape108 = new ModelRendererTurbo(this, 5, 52); Shape108.addBox(0F, 0F, 0F, 1, 2, 1); Shape108.setRotationPoint(-6F, 16F, 8.5F); Shape108.setTextureSize(256, 128); Shape108.mirror = true; setRotation(Shape108, 0F, 0F, 0F); - Shape109 = new ModelRenderer(this, 10, 52); + Shape109 = new ModelRendererTurbo(this, 10, 52); Shape109.addBox(0F, 0F, 0F, 1, 2, 1); Shape109.setRotationPoint(-6F, 16F, 3F); Shape109.setTextureSize(256, 128); Shape109.mirror = true; setRotation(Shape109, 0F, 0F, 0F); - Shape110 = new ModelRenderer(this, 15, 52); + Shape110 = new ModelRendererTurbo(this, 15, 52); Shape110.addBox(0F, 0F, 0F, 1, 2, 1); Shape110.setRotationPoint(-6F, 16F, -3F); Shape110.setTextureSize(256, 128); Shape110.mirror = true; setRotation(Shape110, 0F, 0F, 0F); - Shape111 = new ModelRenderer(this, 0, 56); + Shape111 = new ModelRendererTurbo(this, 0, 56); Shape111.addBox(0F, 0F, 0F, 1, 2, 1); Shape111.setRotationPoint(-6F, 16F, -8.5F); Shape111.setTextureSize(256, 128); Shape111.mirror = true; setRotation(Shape111, 0F, 0F, 0F); - Shape112 = new ModelRenderer(this, 5, 56); + Shape112 = new ModelRendererTurbo(this, 5, 56); Shape112.addBox(0F, 0F, 0F, 1, 2, 1); Shape112.setRotationPoint(-6F, 16F, -14F); Shape112.setTextureSize(256, 128); Shape112.mirror = true; setRotation(Shape112, 0F, 0F, 0F); - Shape113 = new ModelRenderer(this, 10, 56); + Shape113 = new ModelRendererTurbo(this, 10, 56); Shape113.addBox(0F, 0F, 0F, 1, 2, 1); Shape113.setRotationPoint(5F, 16F, 13.5F); Shape113.setTextureSize(256, 128); Shape113.mirror = true; setRotation(Shape113, 0F, 0F, 0F); - Shape114 = new ModelRenderer(this, 15, 56); + Shape114 = new ModelRendererTurbo(this, 15, 56); Shape114.addBox(0F, 0F, 0F, 1, 2, 1); Shape114.setRotationPoint(5F, 16F, 8.5F); Shape114.setTextureSize(256, 128); Shape114.mirror = true; setRotation(Shape114, 0F, 0F, 0F); - Shape115 = new ModelRenderer(this, 20, 56); + Shape115 = new ModelRendererTurbo(this, 20, 56); Shape115.addBox(0F, 0F, 0F, 1, 2, 1); Shape115.setRotationPoint(5F, 16F, 3F); Shape115.setTextureSize(256, 128); Shape115.mirror = true; setRotation(Shape115, 0F, 0F, 0F); - Shape116 = new ModelRenderer(this, 25, 56); + Shape116 = new ModelRendererTurbo(this, 25, 56); Shape116.addBox(0F, 0F, 0F, 1, 2, 1); Shape116.setRotationPoint(5F, 16F, -3F); Shape116.setTextureSize(256, 128); Shape116.mirror = true; setRotation(Shape116, 0F, 0F, 0F); - Shape117 = new ModelRenderer(this, 0, 60); + Shape117 = new ModelRendererTurbo(this, 0, 60); Shape117.addBox(0F, 0F, 0F, 1, 2, 1); Shape117.setRotationPoint(5F, 16F, -8.5F); Shape117.setTextureSize(256, 128); Shape117.mirror = true; setRotation(Shape117, 0F, 0F, 0F); - Shape118 = new ModelRenderer(this, 5, 60); + Shape118 = new ModelRendererTurbo(this, 5, 60); Shape118.addBox(0F, 0F, 0F, 1, 2, 1); Shape118.setRotationPoint(5F, 16F, -13.5F); Shape118.setTextureSize(256, 128); Shape118.mirror = true; setRotation(Shape118, 0F, 0F, 0F); - Shape119 = new ModelRenderer(this, 10, 60); + Shape119 = new ModelRendererTurbo(this, 10, 60); Shape119.addBox(0F, 0F, 0F, 1, 2, 1); Shape119.setRotationPoint(-0.5F, 16F, 5.5F); Shape119.setTextureSize(256, 128); Shape119.mirror = true; setRotation(Shape119, 0F, 0F, 0F); - Shape120 = new ModelRenderer(this, 15, 60); + Shape120 = new ModelRendererTurbo(this, 15, 60); Shape120.addBox(0F, 0F, 0F, 1, 2, 1); Shape120.setRotationPoint(-0.5F, 16F, -5.5F); Shape120.setTextureSize(256, 128); Shape120.mirror = true; setRotation(Shape120, 0F, 0F, 0F); - Shape121 = new ModelRenderer(this, 95, 30); + Shape121 = new ModelRendererTurbo(this, 95, 30); Shape121.addBox(0F, 0F, 0F, 11, 1, 2); Shape121.setRotationPoint(-5.5F, 15.1F, 15.6F); Shape121.setTextureSize(256, 128); Shape121.mirror = true; setRotation(Shape121, 0.4014257F, 0F, 0F); - Shape122 = new ModelRenderer(this, 0, 69); + Shape122 = new ModelRendererTurbo(this, 0, 69); Shape122.addBox(0F, 0F, 0F, 1, 1, 5); Shape122.setRotationPoint(-6.4F, 14F, 6.5F); Shape122.setTextureSize(256, 128); Shape122.mirror = true; setRotation(Shape122, 0F, 0F, 0F); - Shape123 = new ModelRenderer(this, 13, 69); + Shape123 = new ModelRendererTurbo(this, 13, 69); Shape123.addBox(0F, 0F, 0F, 1, 1, 5); Shape123.setRotationPoint(-6.4F, 14F, -2F); Shape123.setTextureSize(256, 128); Shape123.mirror = true; setRotation(Shape123, 0F, 0F, 0F); - Shape124 = new ModelRenderer(this, 0, 77); + Shape124 = new ModelRendererTurbo(this, 0, 77); Shape124.addBox(0F, 0F, 0F, 1, 1, 5); Shape124.setRotationPoint(-6.4F, 14F, -10.5F); Shape124.setTextureSize(256, 128); Shape124.mirror = true; setRotation(Shape124, 0F, 0F, 0F); - Shape125 = new ModelRenderer(this, 13, 77); + Shape125 = new ModelRendererTurbo(this, 13, 77); Shape125.addBox(0F, 0F, 0F, 1, 1, 5); Shape125.setRotationPoint(5.4F, 14F, 6.5F); Shape125.setTextureSize(256, 128); Shape125.mirror = true; setRotation(Shape125, 0F, 0F, 0F); - Shape126 = new ModelRenderer(this, 0, 85); + Shape126 = new ModelRendererTurbo(this, 0, 85); Shape126.addBox(0F, 0F, 0F, 1, 1, 5); Shape126.setRotationPoint(5.4F, 14F, -2F); Shape126.setTextureSize(256, 128); Shape126.mirror = true; setRotation(Shape126, 0F, 0F, 0F); - Shape127 = new ModelRenderer(this, 13, 85); + Shape127 = new ModelRendererTurbo(this, 13, 85); Shape127.addBox(0F, 0F, 0F, 1, 1, 5); Shape127.setRotationPoint(5.4F, 14F, -10.5F); Shape127.setTextureSize(256, 128); Shape127.mirror = true; setRotation(Shape127, 0F, 0F, 0F); - Shape128 = new ModelRenderer(this, 37, 48); + Shape128 = new ModelRendererTurbo(this, 37, 48); Shape128.addBox(0F, 0F, 0F, 3, 1, 0); Shape128.setRotationPoint(-8F, 16F, 10F); Shape128.setTextureSize(256, 128); Shape128.mirror = true; setRotation(Shape128, 0F, 0F, 0F); - Shape129 = new ModelRenderer(this, 44, 48); + Shape129 = new ModelRendererTurbo(this, 44, 48); Shape129.addBox(0F, 0F, 0F, 3, 1, 0); Shape129.setRotationPoint(-8F, 16F, 8F); Shape129.setTextureSize(256, 128); Shape129.mirror = true; setRotation(Shape129, 0F, 0F, 0F); - Shape130 = new ModelRenderer(this, 51, 48); + Shape130 = new ModelRendererTurbo(this, 51, 48); Shape130.addBox(0F, 0F, 0F, 3, 1, 0); Shape130.setRotationPoint(-8F, 16F, 1.5F); Shape130.setTextureSize(256, 128); Shape130.mirror = true; setRotation(Shape130, 0F, 0F, 0F); - Shape131 = new ModelRenderer(this, 37, 50); + Shape131 = new ModelRendererTurbo(this, 37, 50); Shape131.addBox(0F, 0F, 0F, 3, 1, 0); Shape131.setRotationPoint(-8F, 16F, -0.5F); Shape131.setTextureSize(256, 128); Shape131.mirror = true; setRotation(Shape131, 0F, 0F, 0F); - Shape132 = new ModelRenderer(this, 44, 50); + Shape132 = new ModelRendererTurbo(this, 44, 50); Shape132.addBox(0F, 0F, 0F, 3, 1, 0); Shape132.setRotationPoint(-8F, 16F, -7F); Shape132.setTextureSize(256, 128); Shape132.mirror = true; setRotation(Shape132, 0F, 0F, 0F); - Shape133 = new ModelRenderer(this, 51, 50); + Shape133 = new ModelRendererTurbo(this, 51, 50); Shape133.addBox(0F, 0F, 0F, 3, 1, 0); Shape133.setRotationPoint(-8F, 16F, -9F); Shape133.setTextureSize(256, 128); Shape133.mirror = true; setRotation(Shape133, 0F, 0F, 0F); - Shape134 = new ModelRenderer(this, 37, 52); + Shape134 = new ModelRendererTurbo(this, 37, 52); Shape134.addBox(0F, 0F, 0F, 1, 3, 0); Shape134.setRotationPoint(-8F, 17F, 10F); Shape134.setTextureSize(256, 128); Shape134.mirror = true; setRotation(Shape134, 0F, 0F, 0F); - Shape135 = new ModelRenderer(this, 40, 52); + Shape135 = new ModelRendererTurbo(this, 40, 52); Shape135.addBox(0F, 0F, 0F, 1, 3, 0); Shape135.setRotationPoint(-8F, 17F, 8F); Shape135.setTextureSize(256, 128); Shape135.mirror = true; setRotation(Shape135, 0F, 0F, 0F); - Shape136 = new ModelRenderer(this, 43, 52); + Shape136 = new ModelRendererTurbo(this, 43, 52); Shape136.addBox(0F, 0F, 0F, 1, 3, 0); Shape136.setRotationPoint(-8F, 17F, 1.5F); Shape136.setTextureSize(256, 128); Shape136.mirror = true; setRotation(Shape136, 0F, 0F, 0F); - Shape137 = new ModelRenderer(this, 46, 52); + Shape137 = new ModelRendererTurbo(this, 46, 52); Shape137.addBox(0F, 0F, 0F, 1, 3, 0); Shape137.setRotationPoint(-8F, 17F, -0.5F); Shape137.setTextureSize(256, 128); Shape137.mirror = true; setRotation(Shape137, 0F, 0F, 0F); - Shape138 = new ModelRenderer(this, 49, 52); + Shape138 = new ModelRendererTurbo(this, 49, 52); Shape138.addBox(0F, 0F, 0F, 1, 3, 0); Shape138.setRotationPoint(-8F, 17F, -7F); Shape138.setTextureSize(256, 128); Shape138.mirror = true; setRotation(Shape138, 0F, 0F, 0F); - Shape139 = new ModelRenderer(this, 52, 52); + Shape139 = new ModelRendererTurbo(this, 52, 52); Shape139.addBox(0F, 0F, 0F, 1, 3, 0); Shape139.setRotationPoint(-8F, 17F, -9F); Shape139.setTextureSize(256, 128); Shape139.mirror = true; setRotation(Shape139, 0F, 0F, 0F); - Shape140 = new ModelRenderer(this, 53, 52); + Shape140 = new ModelRendererTurbo(this, 53, 52); Shape140.addBox(0F, 0F, 0F, 1, 0, 2); Shape140.setRotationPoint(-8F, 20F, 8F); Shape140.setTextureSize(256, 128); Shape140.mirror = true; setRotation(Shape140, 0F, 0F, 0F); - Shape141 = new ModelRenderer(this, 56, 52); + Shape141 = new ModelRendererTurbo(this, 56, 52); Shape141.addBox(0F, 0F, 0F, 1, 0, 2); Shape141.setRotationPoint(-8F, 17.5F, 8F); Shape141.setTextureSize(256, 128); Shape141.mirror = true; setRotation(Shape141, 0F, 0F, 0F); - Shape142 = new ModelRenderer(this, 35, 56); + Shape142 = new ModelRendererTurbo(this, 35, 56); Shape142.addBox(0F, 0F, 0F, 1, 0, 2); Shape142.setRotationPoint(-8F, 20F, -0.5F); Shape142.setTextureSize(256, 128); Shape142.mirror = true; setRotation(Shape142, 0F, 0F, 0F); - Shape143 = new ModelRenderer(this, 38, 56); + Shape143 = new ModelRendererTurbo(this, 38, 56); Shape143.addBox(0F, 0F, 0F, 1, 0, 2); Shape143.setRotationPoint(-8F, 17.5F, -0.5F); Shape143.setTextureSize(256, 128); Shape143.mirror = true; setRotation(Shape143, 0F, 0F, 0F); - Shape144 = new ModelRenderer(this, 41, 56); + Shape144 = new ModelRendererTurbo(this, 41, 56); Shape144.addBox(0F, 0F, 0F, 1, 0, 2); Shape144.setRotationPoint(-8F, 20F, -9F); Shape144.setTextureSize(256, 128); Shape144.mirror = true; setRotation(Shape144, 0F, 0F, 0F); - Shape145 = new ModelRenderer(this, 44, 56); + Shape145 = new ModelRendererTurbo(this, 44, 56); Shape145.addBox(0F, 0F, 0F, 1, 0, 2); Shape145.setRotationPoint(-8F, 17.5F, -9F); Shape145.setTextureSize(256, 128); Shape145.mirror = true; setRotation(Shape145, 0F, 0F, 0F); - Shape146 = new ModelRenderer(this, 66, 33); + Shape146 = new ModelRendererTurbo(this, 66, 33); Shape146.addBox(0F, 0F, 0F, 3, 1, 0); Shape146.setRotationPoint(5F, 16F, 10F); Shape146.setTextureSize(256, 128); Shape146.mirror = true; setRotation(Shape146, 0F, 0F, 0F); - Shape147 = new ModelRenderer(this, 73, 33); + Shape147 = new ModelRendererTurbo(this, 73, 33); Shape147.addBox(0F, 0F, 0F, 3, 1, 0); Shape147.setRotationPoint(5F, 16F, 8F); Shape147.setTextureSize(256, 128); Shape147.mirror = true; setRotation(Shape147, 0F, 0F, 0F); - Shape148 = new ModelRenderer(this, 80, 33); + Shape148 = new ModelRendererTurbo(this, 80, 33); Shape148.addBox(0F, 0F, 0F, 3, 1, 0); Shape148.setRotationPoint(5F, 16F, 1.5F); Shape148.setTextureSize(256, 128); Shape148.mirror = true; setRotation(Shape148, 0F, 0F, 0F); - Shape149 = new ModelRenderer(this, 66, 35); + Shape149 = new ModelRendererTurbo(this, 66, 35); Shape149.addBox(0F, 0F, 0F, 3, 1, 0); Shape149.setRotationPoint(5F, 16F, -0.5F); Shape149.setTextureSize(256, 128); Shape149.mirror = true; setRotation(Shape149, 0F, 0F, 0F); - Shape150 = new ModelRenderer(this, 73, 35); + Shape150 = new ModelRendererTurbo(this, 73, 35); Shape150.addBox(0F, 0F, 0F, 3, 1, 0); Shape150.setRotationPoint(5F, 16F, -7F); Shape150.setTextureSize(256, 128); Shape150.mirror = true; setRotation(Shape150, 0F, 0F, 0F); - Shape151 = new ModelRenderer(this, 80, 35); + Shape151 = new ModelRendererTurbo(this, 80, 35); Shape151.addBox(0F, 0F, 0F, 3, 1, 0); Shape151.setRotationPoint(5F, 16F, -7F); Shape151.setTextureSize(256, 128); Shape151.mirror = true; setRotation(Shape151, 0F, 0F, 0F); - Shape152 = new ModelRenderer(this, 66, 37); + Shape152 = new ModelRendererTurbo(this, 66, 37); Shape152.addBox(0F, 0F, 0F, 3, 1, 0); Shape152.setRotationPoint(5F, 16F, -9F); Shape152.setTextureSize(256, 128); Shape152.mirror = true; setRotation(Shape152, 0F, 0F, 0F); - Shape153 = new ModelRenderer(this, 66, 39); + Shape153 = new ModelRendererTurbo(this, 66, 39); Shape153.addBox(0F, 0F, 0F, 1, 3, 0); Shape153.setRotationPoint(7F, 17F, 10F); Shape153.setTextureSize(256, 128); Shape153.mirror = true; setRotation(Shape153, 0F, 0F, 0F); - Shape154 = new ModelRenderer(this, 69, 39); + Shape154 = new ModelRendererTurbo(this, 69, 39); Shape154.addBox(0F, 0F, 0F, 1, 3, 0); Shape154.setRotationPoint(7F, 17F, 8F); Shape154.setTextureSize(256, 128); Shape154.mirror = true; setRotation(Shape154, 0F, 0F, 0F); - Shape155 = new ModelRenderer(this, 72, 39); + Shape155 = new ModelRendererTurbo(this, 72, 39); Shape155.addBox(0F, 0F, 0F, 1, 3, 0); Shape155.setRotationPoint(7F, 17F, 1.5F); Shape155.setTextureSize(256, 128); Shape155.mirror = true; setRotation(Shape155, 0F, 0F, 0F); - Shape156 = new ModelRenderer(this, 75, 39); + Shape156 = new ModelRendererTurbo(this, 75, 39); Shape156.addBox(0F, 0F, 0F, 1, 3, 0); Shape156.setRotationPoint(7F, 17F, -0.5F); Shape156.setTextureSize(256, 128); Shape156.mirror = true; setRotation(Shape156, 0F, 0F, 0F); - Shape157 = new ModelRenderer(this, 78, 39); + Shape157 = new ModelRendererTurbo(this, 78, 39); Shape157.addBox(0F, 0F, 0F, 1, 3, 0); Shape157.setRotationPoint(7F, 17F, -7F); Shape157.setTextureSize(256, 128); Shape157.mirror = true; setRotation(Shape157, 0F, 0F, 0F); - Shape158 = new ModelRenderer(this, 81, 39); + Shape158 = new ModelRendererTurbo(this, 81, 39); Shape158.addBox(0F, 0F, 0F, 1, 3, 0); Shape158.setRotationPoint(7F, 17F, -9F); Shape158.setTextureSize(256, 128); Shape158.mirror = true; setRotation(Shape158, 0F, 0F, 0F); - Shape159 = new ModelRenderer(this, 82, 39); + Shape159 = new ModelRendererTurbo(this, 82, 39); Shape159.addBox(0F, 0F, 0F, 1, 0, 2); Shape159.setRotationPoint(7F, 20F, 8F); Shape159.setTextureSize(256, 128); Shape159.mirror = true; setRotation(Shape159, 0F, 0F, 0F); - Shape160 = new ModelRenderer(this, 85, 39); + Shape160 = new ModelRendererTurbo(this, 85, 39); Shape160.addBox(0F, 0F, 0F, 1, 0, 2); Shape160.setRotationPoint(7F, 17.5F, 8F); Shape160.setTextureSize(256, 128); Shape160.mirror = true; setRotation(Shape160, 0F, 0F, 0F); - Shape161 = new ModelRenderer(this, 64, 43); + Shape161 = new ModelRendererTurbo(this, 64, 43); Shape161.addBox(0F, 0F, 0F, 1, 0, 2); Shape161.setRotationPoint(7F, 20F, -0.5F); Shape161.setTextureSize(256, 128); Shape161.mirror = true; setRotation(Shape161, 0F, 0F, 0F); - Shape162 = new ModelRenderer(this, 67, 43); + Shape162 = new ModelRendererTurbo(this, 67, 43); Shape162.addBox(0F, 0F, 0F, 1, 0, 2); Shape162.setRotationPoint(7F, 17.5F, -0.5F); Shape162.setTextureSize(256, 128); Shape162.mirror = true; setRotation(Shape162, 0F, 0F, 0F); - Shape163 = new ModelRenderer(this, 70, 43); + Shape163 = new ModelRendererTurbo(this, 70, 43); Shape163.addBox(0F, 0F, 0F, 1, 0, 2); Shape163.setRotationPoint(7F, 20F, -9F); Shape163.setTextureSize(256, 128); Shape163.mirror = true; setRotation(Shape163, 0F, 0F, 0F); - Shape164 = new ModelRenderer(this, 73, 43); + Shape164 = new ModelRendererTurbo(this, 73, 43); Shape164.addBox(0F, 0F, 0F, 1, 0, 2); Shape164.setRotationPoint(7F, 17.5F, -9F); Shape164.setTextureSize(256, 128); Shape164.mirror = true; setRotation(Shape164, 0F, 0F, 0F); - Shape165 = new ModelRenderer(this, 29, 69); + Shape165 = new ModelRendererTurbo(this, 29, 69); Shape165.addBox(0F, 0F, 0F, 11, 3, 4); Shape165.setRotationPoint(-5.5F, 12.5F, 2.75F); Shape165.setTextureSize(256, 128); Shape165.mirror = true; setRotation(Shape165, 0F, 0F, 0F); - Shape167 = new ModelRenderer(this, 29, 77); + Shape167 = new ModelRendererTurbo(this, 29, 77); Shape167.addBox(0F, 0F, 0F, 11, 3, 4); Shape167.setRotationPoint(-5.5F, 12.5F, -5.8F); Shape167.setTextureSize(256, 128); Shape167.mirror = true; setRotation(Shape167, 0F, 0F, 0F); - Shape166 = new ModelRenderer(this, 66, 46); + Shape166 = new ModelRendererTurbo(this, 66, 46); Shape166.addBox(0F, 0F, 0F, 11, 3, 1); Shape166.setRotationPoint(-5.5F, 10F, 4.3F); Shape166.setTextureSize(256, 128); Shape166.mirror = true; setRotation(Shape166, 0F, 0F, 0F); - Shape168 = new ModelRenderer(this, 66, 51); + Shape168 = new ModelRendererTurbo(this, 66, 51); Shape168.addBox(0F, 0F, 0F, 11, 3, 1); Shape168.setRotationPoint(-5.5F, 10F, -4.3F); Shape168.setTextureSize(256, 128); Shape168.mirror = true; setRotation(Shape168, 0F, 0F, 0F); - Shape169 = new ModelRenderer(this, 95, 34); + Shape169 = new ModelRendererTurbo(this, 95, 34); Shape169.addBox(0F, 0F, 0F, 11, 3, 1); Shape169.setRotationPoint(-5.5F, 12.5F, 11.5F); Shape169.setTextureSize(256, 128); Shape169.mirror = true; setRotation(Shape169, 0F, 0F, 0F); - Shape170 = new ModelRenderer(this, 95, 39); + Shape170 = new ModelRendererTurbo(this, 95, 39); Shape170.addBox(0F, 0F, 0F, 13, 8, 1); Shape170.setRotationPoint(-6.5F, 5F, 13F); Shape170.setTextureSize(256, 128); Shape170.mirror = true; setRotation(Shape170, 0F, 0F, 0F); - Shape171 = new ModelRenderer(this, 95, 49); + Shape171 = new ModelRendererTurbo(this, 95, 49); Shape171.addBox(0F, 0F, 0F, 11, 3, 1); Shape171.setRotationPoint(-5.5F, 12.5F, -11.2F); Shape171.setTextureSize(256, 128); Shape171.mirror = true; setRotation(Shape171, 0F, 0F, 0F); - Shape172 = new ModelRenderer(this, 95, 54); + Shape172 = new ModelRendererTurbo(this, 95, 54); Shape172.addBox(0F, 0F, 0F, 13, 8, 1); Shape172.setRotationPoint(-6.5F, 5F, -12.7F); Shape172.setTextureSize(256, 128); Shape172.mirror = true; setRotation(Shape172, 0F, 0F, 0F); - Shape173 = new ModelRenderer(this, 29, 85); + Shape173 = new ModelRendererTurbo(this, 29, 85); Shape173.addBox(0F, 0F, 0F, 1, 4, 2); Shape173.setRotationPoint(-6.4F, 12F, 4.8F); Shape173.setTextureSize(256, 128); Shape173.mirror = true; setRotation(Shape173, 0.4886922F, 0F, 0F); - Shape174 = new ModelRenderer(this, 36, 85); + Shape174 = new ModelRendererTurbo(this, 36, 85); Shape174.addBox(0F, 0F, 0F, 1, 4, 2); Shape174.setRotationPoint(-6.4F, 12F, -3.8F); Shape174.setTextureSize(256, 128); Shape174.mirror = true; setRotation(Shape174, 0.4886922F, 0F, 0F); - Shape175 = new ModelRenderer(this, 43, 85); + Shape175 = new ModelRendererTurbo(this, 43, 85); Shape175.addBox(0F, 0F, 0F, 1, 4, 2); Shape175.setRotationPoint(-6.4F, 12F, -12.5F); Shape175.setTextureSize(256, 128); Shape175.mirror = true; setRotation(Shape175, 0.4886922F, 0F, 0F); - Shape176 = new ModelRenderer(this, 50, 85); + Shape176 = new ModelRendererTurbo(this, 50, 85); Shape176.addBox(0F, 0F, 0F, 1, 4, 2); Shape176.setRotationPoint(5.4F, 12F, 4.8F); Shape176.setTextureSize(256, 128); Shape176.mirror = true; setRotation(Shape176, 0.4886922F, 0F, 0F); - Shape177 = new ModelRenderer(this, 63, 69); + Shape177 = new ModelRendererTurbo(this, 63, 69); Shape177.addBox(0F, 0F, 0F, 1, 4, 2); Shape177.setRotationPoint(5.4F, 12F, -3.8F); Shape177.setTextureSize(256, 128); Shape177.mirror = true; setRotation(Shape177, 0.4886922F, 0F, 0F); - Shape178 = new ModelRenderer(this, 70, 69); + Shape178 = new ModelRendererTurbo(this, 70, 69); Shape178.addBox(0F, 0F, 0F, 1, 4, 2); Shape178.setRotationPoint(5.4F, 12F, -12.5F); Shape178.setTextureSize(256, 128); Shape178.mirror = true; setRotation(Shape178, 0.4886922F, 0F, 0F); - Shape179 = new ModelRenderer(this, 77, 69); + Shape179 = new ModelRendererTurbo(this, 77, 69); Shape179.addBox(0F, 0F, 0F, 1, 4, 2); Shape179.setRotationPoint(-6.4F, 11F, 12F); Shape179.setTextureSize(256, 128); Shape179.mirror = true; setRotation(Shape179, -0.4886922F, 0F, 0F); - Shape180 = new ModelRenderer(this, 63, 76); + Shape180 = new ModelRendererTurbo(this, 63, 76); Shape180.addBox(0F, 0F, 0F, 1, 4, 2); Shape180.setRotationPoint(-6.4F, 11F, 3.2F); Shape180.setTextureSize(256, 128); Shape180.mirror = true; setRotation(Shape180, -0.4886922F, 0F, 0F); - Shape181 = new ModelRenderer(this, 70, 76); + Shape181 = new ModelRendererTurbo(this, 70, 76); Shape181.addBox(0F, 0F, 0F, 1, 4, 2); Shape181.setRotationPoint(-6.4F, 11F, -5.2F); Shape181.setTextureSize(256, 128); Shape181.mirror = true; setRotation(Shape181, -0.4886922F, 0F, 0F); - Shape182 = new ModelRenderer(this, 77, 76); + Shape182 = new ModelRendererTurbo(this, 77, 76); Shape182.addBox(0F, 0F, 0F, 1, 4, 2); Shape182.setRotationPoint(5.4F, 11F, 12F); Shape182.setTextureSize(256, 128); Shape182.mirror = true; setRotation(Shape182, -0.4886922F, 0F, 0F); - Shape183 = new ModelRenderer(this, 63, 83); + Shape183 = new ModelRendererTurbo(this, 63, 83); Shape183.addBox(0F, 0F, 0F, 1, 4, 2); Shape183.setRotationPoint(5.4F, 11F, 3.2F); Shape183.setTextureSize(256, 128); Shape183.mirror = true; setRotation(Shape183, -0.4886922F, 0F, 0F); - Shape184 = new ModelRenderer(this, 70, 83); + Shape184 = new ModelRendererTurbo(this, 70, 83); Shape184.addBox(0F, 0F, 0F, 1, 4, 2); Shape184.setRotationPoint(5.4F, 11F, -5.2F); Shape184.setTextureSize(256, 128); Shape184.mirror = true; setRotation(Shape184, -0.4886922F, 0F, 0F); - Shape185 = new ModelRenderer(this, 92, 66); + Shape185 = new ModelRendererTurbo(this, 92, 66); Shape185.addBox(0F, 0F, 0F, 1, 2, 4); Shape185.setRotationPoint(-6.4F, 10F, 2.9F); Shape185.setTextureSize(256, 128); Shape185.mirror = true; setRotation(Shape185, 0F, 0F, 0F); - Shape186 = new ModelRenderer(this, 92, 73); + Shape186 = new ModelRendererTurbo(this, 92, 73); Shape186.addBox(0F, 0F, 0F, 1, 2, 4); Shape186.setRotationPoint(-6.4F, 10F, -5.7F); Shape186.setTextureSize(256, 128); Shape186.mirror = true; setRotation(Shape186, 0F, 0F, 0F); - Shape187 = new ModelRenderer(this, 63, 90); + Shape187 = new ModelRendererTurbo(this, 63, 90); Shape187.addBox(0F, 0F, 0F, 1, 2, 2); Shape187.setRotationPoint(-6.4F, 10F, 11.6F); Shape187.setTextureSize(256, 128); Shape187.mirror = true; setRotation(Shape187, 0F, 0F, 0F); - Shape188 = new ModelRenderer(this, 70, 90); + Shape188 = new ModelRendererTurbo(this, 70, 90); Shape188.addBox(0F, 0F, 0F, 1, 2, 2); Shape188.setRotationPoint(-6.4F, 10F, -12.3F); Shape188.setTextureSize(256, 128); Shape188.mirror = true; setRotation(Shape188, 0F, 0F, 0F); - Shape189 = new ModelRenderer(this, 92, 80); + Shape189 = new ModelRendererTurbo(this, 92, 80); Shape189.addBox(0F, 0F, 0F, 1, 2, 4); Shape189.setRotationPoint(5.4F, 10F, 2.9F); Shape189.setTextureSize(256, 128); Shape189.mirror = true; setRotation(Shape189, 0F, 0F, 0F); - Shape190 = new ModelRenderer(this, 103, 80); + Shape190 = new ModelRendererTurbo(this, 103, 80); Shape190.addBox(0F, 0F, 0F, 1, 2, 4); Shape190.setRotationPoint(5.4F, 10F, -5.7F); Shape190.setTextureSize(256, 128); Shape190.mirror = true; setRotation(Shape190, 0F, 0F, 0F); - Shape191 = new ModelRenderer(this, 77, 90); + Shape191 = new ModelRendererTurbo(this, 77, 90); Shape191.addBox(0F, 0F, 0F, 1, 2, 2); Shape191.setRotationPoint(5.4F, 10F, 11.6F); Shape191.setTextureSize(256, 128); Shape191.mirror = true; setRotation(Shape191, 0F, 0F, 0F); - Shape192 = new ModelRenderer(this, 77, 85); + Shape192 = new ModelRendererTurbo(this, 77, 85); Shape192.addBox(0F, 0F, 0F, 1, 2, 2); Shape192.setRotationPoint(5.4F, 10F, -12.3F); Shape192.setTextureSize(256, 128); Shape192.mirror = true; setRotation(Shape192, 0F, 0F, 0F); - Shape193 = new ModelRenderer(this, 66, 56); + Shape193 = new ModelRendererTurbo(this, 66, 56); Shape193.addBox(0F, 0F, 0F, 11, 1, 1); Shape193.setRotationPoint(-5.5F, 12.5F, -11.7F); Shape193.setTextureSize(256, 128); Shape193.mirror = true; setRotation(Shape193, 0F, 0F, 0F); - Shape194 = new ModelRenderer(this, 67, 61); + Shape194 = new ModelRendererTurbo(this, 67, 61); Shape194.addBox(0F, 0F, 0F, 11, 1, 1); Shape194.setRotationPoint(-5.5F, 12.5F, 12.5F); Shape194.setTextureSize(256, 128); Shape194.mirror = true; setRotation(Shape194, 0F, 0F, 0F); - Shape195 = new ModelRenderer(this, 117, 22); + Shape195 = new ModelRendererTurbo(this, 117, 22); Shape195.addBox(0F, 0F, 0F, 13, 3, 1); Shape195.setRotationPoint(-6.5F, 13F, -12.7F); Shape195.setTextureSize(256, 128); Shape195.mirror = true; setRotation(Shape195, 0.4886922F, 0F, 0F); - Shape196 = new ModelRenderer(this, 122, 30); + Shape196 = new ModelRendererTurbo(this, 122, 30); Shape196.addBox(0F, 0F, 0F, 13, 3, 1); Shape196.setRotationPoint(-6.5F, 12.5F, 13.1F); Shape196.setTextureSize(256, 128); Shape196.mirror = true; setRotation(Shape196, -0.4886922F, 0F, 0F); - Shape197 = new ModelRenderer(this, 103, 66); + Shape197 = new ModelRendererTurbo(this, 103, 66); Shape197.addBox(0F, 0F, 0F, 1, 5, 1); Shape197.setRotationPoint(-6.5F, 5F, 4.4F); Shape197.setTextureSize(256, 128); Shape197.mirror = true; setRotation(Shape197, 0F, 0F, 0F); - Shape198 = new ModelRenderer(this, 108, 66); + Shape198 = new ModelRendererTurbo(this, 108, 66); Shape198.addBox(0F, 0F, 0F, 1, 5, 1); Shape198.setRotationPoint(-6.5F, 5F, -4.3F); Shape198.setTextureSize(256, 128); Shape198.mirror = true; setRotation(Shape198, 0F, 0F, 0F); - Shape199 = new ModelRenderer(this, 113, 66); + Shape199 = new ModelRendererTurbo(this, 113, 66); Shape199.addBox(0F, 0F, 0F, 1, 5, 1); Shape199.setRotationPoint(5.5F, 5F, -4.3F); Shape199.setTextureSize(256, 128); Shape199.mirror = true; setRotation(Shape199, 0F, 0F, 0F); - Shape200 = new ModelRenderer(this, 121, 66); + Shape200 = new ModelRendererTurbo(this, 121, 66); Shape200.addBox(0F, 0F, 0F, 1, 5, 1); Shape200.setRotationPoint(5.5F, 5F, 4.4F); Shape200.setTextureSize(256, 128); Shape200.mirror = true; setRotation(Shape200, 0F, 0F, 0F); - Shape201 = new ModelRenderer(this, 103, 73); + Shape201 = new ModelRendererTurbo(this, 103, 73); Shape201.addBox(0F, 0F, 0F, 1, 4, 1); Shape201.setRotationPoint(-6.4F, 12F, 13F); Shape201.setTextureSize(256, 128); Shape201.mirror = true; setRotation(Shape201, 0.5061455F, 0F, 0F); - Shape202 = new ModelRenderer(this, 108, 73); + Shape202 = new ModelRendererTurbo(this, 108, 73); Shape202.addBox(0F, 0F, 0F, 1, 4, 1); Shape202.setRotationPoint(5.4F, 12F, 13F); Shape202.setTextureSize(256, 128); Shape202.mirror = true; setRotation(Shape202, 0.5061455F, 0F, 0F); - Shape203 = new ModelRenderer(this, 124, 35); + Shape203 = new ModelRendererTurbo(this, 124, 35); Shape203.addBox(0F, 0F, 0F, 13, 4, 1); Shape203.setRotationPoint(-6.5F, 11.9F, -12.6F); Shape203.setTextureSize(256, 128); Shape203.mirror = true; setRotation(Shape203, -0.4886922F, 0F, 0F); - Shape204 = new ModelRenderer(this, 124, 41); + Shape204 = new ModelRendererTurbo(this, 124, 41); Shape204.addBox(0F, 0F, 0F, 13, 2, 1); Shape204.setRotationPoint(-6.5F, 11.3F, -12.5F); Shape204.setTextureSize(256, 128); Shape204.mirror = true; setRotation(Shape204, -0.5934119F, 0F, 0F); - Shape205 = new ModelRenderer(this, 0, 64); + Shape205 = new ModelRendererTurbo(this, 0, 64); Shape205.addBox(0F, 0F, 0F, 13, 1, 1); Shape205.setRotationPoint(-6.5F, 12.9F, -13.6F); Shape205.setTextureSize(256, 128); Shape205.mirror = true; setRotation(Shape205, 0F, 0F, 0F); - Shape206 = new ModelRenderer(this, 124, 45); + Shape206 = new ModelRendererTurbo(this, 124, 45); Shape206.addBox(0F, 0F, 0F, 11, 1, 2); Shape206.setRotationPoint(-5.5F, 12F, 13.5F); Shape206.setTextureSize(256, 128); Shape206.mirror = true; setRotation(Shape206, 0.2094395F, 0F, 0F); - Shape207 = new ModelRenderer(this, 60, 0); + Shape207 = new ModelRendererTurbo(this, 60, 0); Shape207.addBox(0F, 0F, 0F, 14, 1, 28); Shape207.setRotationPoint(-7F, 4F, -13.4F); Shape207.setTextureSize(256, 128); Shape207.mirror = true; setRotation(Shape207, 0F, 0F, 0F); - Shape208 = new ModelRenderer(this, 37, 33); + Shape208 = new ModelRendererTurbo(this, 37, 33); Shape208.addBox(0F, 0F, 0F, 1, 1, 26); Shape208.setRotationPoint(-5F, 3.7F, -12.2F); Shape208.setTextureSize(256, 128); Shape208.mirror = true; setRotation(Shape208, 0F, 0F, 0F); - Shape209 = new ModelRenderer(this, 0, 69); + Shape209 = new ModelRendererTurbo(this, 0, 69); Shape209.addBox(0F, 0F, 0F, 1, 1, 26); Shape209.setRotationPoint(-2F, 3.7F, -12.2F); Shape209.setTextureSize(256, 128); Shape209.mirror = true; setRotation(Shape209, 0F, 0F, 0F); - Shape210 = new ModelRenderer(this, 92, 66); + Shape210 = new ModelRendererTurbo(this, 92, 66); Shape210.addBox(0F, 0F, 0F, 1, 1, 26); Shape210.setRotationPoint(1F, 3.7F, -12.2F); Shape210.setTextureSize(256, 128); Shape210.mirror = true; setRotation(Shape210, 0F, 0F, 0F); - Shape211 = new ModelRenderer(this, 63, 69); + Shape211 = new ModelRendererTurbo(this, 63, 69); Shape211.addBox(0F, 0F, 0F, 1, 1, 26); Shape211.setRotationPoint(4F, 3.7F, -12.2F); Shape211.setTextureSize(256, 128); @@ -1711,7 +1711,7 @@ public void render(Entity entity, float f, float f1, float f2, float f3, float f Shape211.render(f5); } - private void setRotation(ModelRenderer model, float x, float y, float z) { + private void setRotation(ModelRendererTurbo model, float x, float y, float z) { model.rotateAngleX = x; model.rotateAngleY = y; model.rotateAngleZ = z; diff --git a/src/main/java/train/client/render/models/ModelPassengerHighSpeedCarZeroED.java b/src/main/java/train/client/render/models/ModelPassengerHighSpeedCarZeroED.java index 6193eb566e..159a4286e8 100644 --- a/src/main/java/train/client/render/models/ModelPassengerHighSpeedCarZeroED.java +++ b/src/main/java/train/client/render/models/ModelPassengerHighSpeedCarZeroED.java @@ -1,7 +1,7 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; import train.common.core.handlers.ConfigHandler; diff --git a/src/main/java/train/client/render/models/ModelPassengerMinetrain.java b/src/main/java/train/client/render/models/ModelPassengerMinetrain.java index f90adc2754..87506a9a98 100644 --- a/src/main/java/train/client/render/models/ModelPassengerMinetrain.java +++ b/src/main/java/train/client/render/models/ModelPassengerMinetrain.java @@ -2,7 +2,7 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.core.ClientProxy; import train.client.render.CustomModelRenderer; import train.common.api.EntityRollingStock; @@ -178,7 +178,7 @@ public ModelPassengerMinetrain() { @Override public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { if (ClientProxy.isHoliday()) { - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, "textures/trains/minetrain_winter.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, "textures/trains/minetrain_winter.png")); } box.render(f5); box0.render(f5); diff --git a/src/main/java/train/client/render/models/ModelPassenger_1class_DB.java b/src/main/java/train/client/render/models/ModelPassenger_1class_DB.java index 84bc8c565b..edd81ffdba 100644 --- a/src/main/java/train/client/render/models/ModelPassenger_1class_DB.java +++ b/src/main/java/train/client/render/models/ModelPassenger_1class_DB.java @@ -2,7 +2,7 @@ import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.core.ClientProxy; import train.client.render.CustomModelRenderer; import train.client.render.models.blocks.ModelLights; diff --git a/src/main/java/train/client/render/models/ModelPassenger_2class_DB.java b/src/main/java/train/client/render/models/ModelPassenger_2class_DB.java index 2783bb309e..c3fb10d5d1 100644 --- a/src/main/java/train/client/render/models/ModelPassenger_2class_DB.java +++ b/src/main/java/train/client/render/models/ModelPassenger_2class_DB.java @@ -2,7 +2,7 @@ import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.core.ClientProxy; import train.client.render.CustomModelRenderer; import train.client.render.models.blocks.ModelLights; diff --git a/src/main/java/train/client/render/models/ModelPassenger_DB_oriental.java b/src/main/java/train/client/render/models/ModelPassenger_DB_oriental.java index 6582816b63..c914f651a0 100644 --- a/src/main/java/train/client/render/models/ModelPassenger_DB_oriental.java +++ b/src/main/java/train/client/render/models/ModelPassenger_DB_oriental.java @@ -11,8 +11,8 @@ import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelPassenger_DB_oriental extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelPassenger_DB_oriental_bogie.java b/src/main/java/train/client/render/models/ModelPassenger_DB_oriental_bogie.java index 0486d2b63b..4641e7f0d6 100644 --- a/src/main/java/train/client/render/models/ModelPassenger_DB_oriental_bogie.java +++ b/src/main/java/train/client/render/models/ModelPassenger_DB_oriental_bogie.java @@ -10,8 +10,8 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelPassenger_DB_oriental_bogie extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelPropagandaCar.java b/src/main/java/train/client/render/models/ModelPropagandaCar.java index 5d39d99306..5106a38239 100644 --- a/src/main/java/train/client/render/models/ModelPropagandaCar.java +++ b/src/main/java/train/client/render/models/ModelPropagandaCar.java @@ -12,9 +12,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.library.Info; public class ModelPropagandaCar extends ModelBase diff --git a/src/main/java/train/client/render/models/ModelRSD15.java b/src/main/java/train/client/render/models/ModelRSD15.java index 8bbe3ced1d..56c0f0cf89 100644 --- a/src/main/java/train/client/render/models/ModelRSD15.java +++ b/src/main/java/train/client/render/models/ModelRSD15.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelRW_Type_2.java b/src/main/java/train/client/render/models/ModelRW_Type_2.java index 34997a67cc..15dd906703 100644 --- a/src/main/java/train/client/render/models/ModelRW_Type_2.java +++ b/src/main/java/train/client/render/models/ModelRW_Type_2.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelRW_Type_2 extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelRW_Type_2_Tender.java b/src/main/java/train/client/render/models/ModelRW_Type_2_Tender.java index 5b32d8214b..e19dffcab4 100644 --- a/src/main/java/train/client/render/models/ModelRW_Type_2_Tender.java +++ b/src/main/java/train/client/render/models/ModelRW_Type_2_Tender.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelRW_Type_2_Tender extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelRW_Type_3.java b/src/main/java/train/client/render/models/ModelRW_Type_3.java index 266a2fe2b4..a06dddb69e 100644 --- a/src/main/java/train/client/render/models/ModelRW_Type_3.java +++ b/src/main/java/train/client/render/models/ModelRW_Type_3.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelRW_Type_3 extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelReefer64Foot.java b/src/main/java/train/client/render/models/ModelReefer64Foot.java index cf756bc3db..fe6ac961d5 100644 --- a/src/main/java/train/client/render/models/ModelReefer64Foot.java +++ b/src/main/java/train/client/render/models/ModelReefer64Foot.java @@ -12,9 +12,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelRheingoldBogie.java b/src/main/java/train/client/render/models/ModelRheingoldBogie.java index f2f7d9349e..4d0a9b40c6 100644 --- a/src/main/java/train/client/render/models/ModelRheingoldBogie.java +++ b/src/main/java/train/client/render/models/ModelRheingoldBogie.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelRheingoldBogie extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelRheingoldPassenger.java b/src/main/java/train/client/render/models/ModelRheingoldPassenger.java index 9ea9a45b47..550e7aac38 100644 --- a/src/main/java/train/client/render/models/ModelRheingoldPassenger.java +++ b/src/main/java/train/client/render/models/ModelRheingoldPassenger.java @@ -12,9 +12,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.library.Info; public class ModelRheingoldPassenger extends ModelConverter diff --git a/src/main/java/train/client/render/models/ModelRheingoldPassenger_Dining1.java b/src/main/java/train/client/render/models/ModelRheingoldPassenger_Dining1.java index e595612f34..f7372a7d84 100644 --- a/src/main/java/train/client/render/models/ModelRheingoldPassenger_Dining1.java +++ b/src/main/java/train/client/render/models/ModelRheingoldPassenger_Dining1.java @@ -12,9 +12,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.library.Info; public class ModelRheingoldPassenger_Dining1 extends ModelConverter diff --git a/src/main/java/train/client/render/models/ModelRheingoldPassenger_Dining2.java b/src/main/java/train/client/render/models/ModelRheingoldPassenger_Dining2.java index 8383d470bd..2d664bef99 100644 --- a/src/main/java/train/client/render/models/ModelRheingoldPassenger_Dining2.java +++ b/src/main/java/train/client/render/models/ModelRheingoldPassenger_Dining2.java @@ -12,9 +12,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.library.Info; public class ModelRheingoldPassenger_Dining2 extends ModelBase diff --git a/src/main/java/train/client/render/models/ModelRheingoldPassenger_Panorama.java b/src/main/java/train/client/render/models/ModelRheingoldPassenger_Panorama.java index 5193ed558f..68e1db5db9 100644 --- a/src/main/java/train/client/render/models/ModelRheingoldPassenger_Panorama.java +++ b/src/main/java/train/client/render/models/ModelRheingoldPassenger_Panorama.java @@ -12,9 +12,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.library.Info; public class ModelRheingoldPassenger_Panorama extends ModelConverter diff --git a/src/main/java/train/client/render/models/ModelRibbedHopper.java b/src/main/java/train/client/render/models/ModelRibbedHopper.java index 923b9ec0c6..7b21da882c 100644 --- a/src/main/java/train/client/render/models/ModelRibbedHopper.java +++ b/src/main/java/train/client/render/models/ModelRibbedHopper.java @@ -12,9 +12,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.library.Info; public class ModelRibbedHopper extends ModelConverter //Same as Filename diff --git a/src/main/java/train/client/render/models/ModelRotaryExcavator.java b/src/main/java/train/client/render/models/ModelRotaryExcavator.java index d991b03730..461d1d4702 100644 --- a/src/main/java/train/client/render/models/ModelRotaryExcavator.java +++ b/src/main/java/train/client/render/models/ModelRotaryExcavator.java @@ -1,7 +1,7 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; import train.common.core.handlers.ConfigHandler; import train.common.entity.digger.EntityRotativeDigger; diff --git a/src/main/java/train/client/render/models/ModelRotaryExcavator_Wheel.java b/src/main/java/train/client/render/models/ModelRotaryExcavator_Wheel.java index 1c8b00731d..d4a26e771c 100644 --- a/src/main/java/train/client/render/models/ModelRotaryExcavator_Wheel.java +++ b/src/main/java/train/client/render/models/ModelRotaryExcavator_Wheel.java @@ -1,7 +1,7 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; import train.common.core.handlers.ConfigHandler; diff --git a/src/main/java/train/client/render/models/ModelRoundHopper.java b/src/main/java/train/client/render/models/ModelRoundHopper.java index 767ad1a687..d4110597e7 100644 --- a/src/main/java/train/client/render/models/ModelRoundHopper.java +++ b/src/main/java/train/client/render/models/ModelRoundHopper.java @@ -12,9 +12,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.library.Info; public class ModelRoundHopper extends ModelConverter //Same as Filename diff --git a/src/main/java/train/client/render/models/ModelSD40.java b/src/main/java/train/client/render/models/ModelSD40.java index 773aa42aa5..32421582dd 100644 --- a/src/main/java/train/client/render/models/ModelSD40.java +++ b/src/main/java/train/client/render/models/ModelSD40.java @@ -1,656 +1,656 @@ package train.client.render.models; +import fexcraft.tmt.slim.ModelRendererTurbo; import net.minecraft.client.Minecraft; -import net.minecraft.client.model.ModelRenderer; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; public class ModelSD40 extends ModelBase { - public ModelRenderer box; - public ModelRenderer box0; - public ModelRenderer box1; - public ModelRenderer box10; - public ModelRenderer box100; - public ModelRenderer box102; - public ModelRenderer box104; - public ModelRenderer box105; - public ModelRenderer box106; - public ModelRenderer box107; - public ModelRenderer box108; - public ModelRenderer box109; - public ModelRenderer box11; - public ModelRenderer box110; - public ModelRenderer box111; - public ModelRenderer box112; - public ModelRenderer box113; - public ModelRenderer box114; - public ModelRenderer box115; - public ModelRenderer box116; - public ModelRenderer box119; - public ModelRenderer box12; - public ModelRenderer box120; - public ModelRenderer box121; - public ModelRenderer box123; - public ModelRenderer box124; - public ModelRenderer box125; - public ModelRenderer box126; - public ModelRenderer box128; - public ModelRenderer box13; - public ModelRenderer box132; - public ModelRenderer box14; - public ModelRenderer box143; - public ModelRenderer box148; - public ModelRenderer box15; - public ModelRenderer box16; - public ModelRenderer box17; - public ModelRenderer box18; - public ModelRenderer box19; - public ModelRenderer box2; - public ModelRenderer box20; - public ModelRenderer box21; - public ModelRenderer box22; - public ModelRenderer box23; - public ModelRenderer box24; - public ModelRenderer box25; - public ModelRenderer box26; - public ModelRenderer box27; - public ModelRenderer box28; - public ModelRenderer box29; - public ModelRenderer box3; - public ModelRenderer box30; - public ModelRenderer box31; - public ModelRenderer box32; - public ModelRenderer box33; - public ModelRenderer box34; - public ModelRenderer box35; - public ModelRenderer box36; - public ModelRenderer box37; - public ModelRenderer box38; - public ModelRenderer box39; - public ModelRenderer box4; - public ModelRenderer box40; - public ModelRenderer box41; - public ModelRenderer box42; - public ModelRenderer box43; - public ModelRenderer box44; - public ModelRenderer box45; - public ModelRenderer box46; - public ModelRenderer box47; - public ModelRenderer box48; - public ModelRenderer box49; - public ModelRenderer box5; - public ModelRenderer box50; - public ModelRenderer box51; - public ModelRenderer box52; - public ModelRenderer box53; - public ModelRenderer box54; - public ModelRenderer box55; - public ModelRenderer box56; - public ModelRenderer box57; - public ModelRenderer box58; - public ModelRenderer box59; - public ModelRenderer box6; - public ModelRenderer box60; - public ModelRenderer box61; - public ModelRenderer box62; - public ModelRenderer box63; - public ModelRenderer box64; - public ModelRenderer box66; - public ModelRenderer box67; - public ModelRenderer box68; - public ModelRenderer box69; - public ModelRenderer box7; - public ModelRenderer box70; - public ModelRenderer box71; - public ModelRenderer box72; - public ModelRenderer box73; - public ModelRenderer box74; - public ModelRenderer box75; - public ModelRenderer box76; - public ModelRenderer box77; - public ModelRenderer box78; - public ModelRenderer box79; - public ModelRenderer box8; - public ModelRenderer box80; - public ModelRenderer box81; - public ModelRenderer box82; - public ModelRenderer box84; - public ModelRenderer box85; - public ModelRenderer box89; - public ModelRenderer box9; - public ModelRenderer box90; - public ModelRenderer box91; - public ModelRenderer box92; - public ModelRenderer box93; - public ModelRenderer box94; - public ModelRenderer box95; - public ModelRenderer box96; - public ModelRenderer box97; - public ModelRenderer box98; + public ModelRendererTurbo box; + public ModelRendererTurbo box0; + public ModelRendererTurbo box1; + public ModelRendererTurbo box10; + public ModelRendererTurbo box100; + public ModelRendererTurbo box102; + public ModelRendererTurbo box104; + public ModelRendererTurbo box105; + public ModelRendererTurbo box106; + public ModelRendererTurbo box107; + public ModelRendererTurbo box108; + public ModelRendererTurbo box109; + public ModelRendererTurbo box11; + public ModelRendererTurbo box110; + public ModelRendererTurbo box111; + public ModelRendererTurbo box112; + public ModelRendererTurbo box113; + public ModelRendererTurbo box114; + public ModelRendererTurbo box115; + public ModelRendererTurbo box116; + public ModelRendererTurbo box119; + public ModelRendererTurbo box12; + public ModelRendererTurbo box120; + public ModelRendererTurbo box121; + public ModelRendererTurbo box123; + public ModelRendererTurbo box124; + public ModelRendererTurbo box125; + public ModelRendererTurbo box126; + public ModelRendererTurbo box128; + public ModelRendererTurbo box13; + public ModelRendererTurbo box132; + public ModelRendererTurbo box14; + public ModelRendererTurbo box143; + public ModelRendererTurbo box148; + public ModelRendererTurbo box15; + public ModelRendererTurbo box16; + public ModelRendererTurbo box17; + public ModelRendererTurbo box18; + public ModelRendererTurbo box19; + public ModelRendererTurbo box2; + public ModelRendererTurbo box20; + public ModelRendererTurbo box21; + public ModelRendererTurbo box22; + public ModelRendererTurbo box23; + public ModelRendererTurbo box24; + public ModelRendererTurbo box25; + public ModelRendererTurbo box26; + public ModelRendererTurbo box27; + public ModelRendererTurbo box28; + public ModelRendererTurbo box29; + public ModelRendererTurbo box3; + public ModelRendererTurbo box30; + public ModelRendererTurbo box31; + public ModelRendererTurbo box32; + public ModelRendererTurbo box33; + public ModelRendererTurbo box34; + public ModelRendererTurbo box35; + public ModelRendererTurbo box36; + public ModelRendererTurbo box37; + public ModelRendererTurbo box38; + public ModelRendererTurbo box39; + public ModelRendererTurbo box4; + public ModelRendererTurbo box40; + public ModelRendererTurbo box41; + public ModelRendererTurbo box42; + public ModelRendererTurbo box43; + public ModelRendererTurbo box44; + public ModelRendererTurbo box45; + public ModelRendererTurbo box46; + public ModelRendererTurbo box47; + public ModelRendererTurbo box48; + public ModelRendererTurbo box49; + public ModelRendererTurbo box5; + public ModelRendererTurbo box50; + public ModelRendererTurbo box51; + public ModelRendererTurbo box52; + public ModelRendererTurbo box53; + public ModelRendererTurbo box54; + public ModelRendererTurbo box55; + public ModelRendererTurbo box56; + public ModelRendererTurbo box57; + public ModelRendererTurbo box58; + public ModelRendererTurbo box59; + public ModelRendererTurbo box6; + public ModelRendererTurbo box60; + public ModelRendererTurbo box61; + public ModelRendererTurbo box62; + public ModelRendererTurbo box63; + public ModelRendererTurbo box64; + public ModelRendererTurbo box66; + public ModelRendererTurbo box67; + public ModelRendererTurbo box68; + public ModelRendererTurbo box69; + public ModelRendererTurbo box7; + public ModelRendererTurbo box70; + public ModelRendererTurbo box71; + public ModelRendererTurbo box72; + public ModelRendererTurbo box73; + public ModelRendererTurbo box74; + public ModelRendererTurbo box75; + public ModelRendererTurbo box76; + public ModelRendererTurbo box77; + public ModelRendererTurbo box78; + public ModelRendererTurbo box79; + public ModelRendererTurbo box8; + public ModelRendererTurbo box80; + public ModelRendererTurbo box81; + public ModelRendererTurbo box82; + public ModelRendererTurbo box84; + public ModelRendererTurbo box85; + public ModelRendererTurbo box89; + public ModelRendererTurbo box9; + public ModelRendererTurbo box90; + public ModelRendererTurbo box91; + public ModelRendererTurbo box92; + public ModelRendererTurbo box93; + public ModelRendererTurbo box94; + public ModelRendererTurbo box95; + public ModelRendererTurbo box96; + public ModelRendererTurbo box97; + public ModelRendererTurbo box98; public ModelSD40() { this.textureHeight=256; this.textureWidth=256; - box = new ModelRenderer(this,0, 2); + box = new ModelRendererTurbo(this,0, 2); box.addBox(0F, 0F, 0F, 1, 6, 20); //box.setPosition(5F, 0F, -30F); box.setRotationPoint(5, 0, -30); - box0 = new ModelRenderer(this,45, 2); + box0 = new ModelRendererTurbo(this,45, 2); box0.addBox(0F, 0F, 0F, 1, 4, 22); //box0.setPosition(6F, 2F, -31F); box0.setRotationPoint(6F, 2F, -31F); - box1 = new ModelRenderer(this,49, 31); + box1 = new ModelRendererTurbo(this,49, 31); box1.addBox(0F, 0F, 0F, 16, 2, 2); box1.setRotationPoint(-8F, 2F, -28F); - box10 = new ModelRenderer(this,0, 2); + box10 = new ModelRendererTurbo(this,0, 2); box10.addBox(0F, 0F, 0F, 1, 6, 20); box10.setRotationPoint(5F, 0F, 10F); - box100 = new ModelRenderer(this,211, 42); + box100 = new ModelRendererTurbo(this,211, 42); box100.addBox(0F, 0F, 0F, 5, 1, 12); box100.setRotationPoint(-5F, 32F, -22F); box100.rotateAngleZ = -2.6878070480712677F; - box102 = new ModelRenderer(this,133, 80); + box102 = new ModelRendererTurbo(this,133, 80); box102.addBox(2F, 0F, 0F, 14, 1, 1); box102.setRotationPoint(-9F, 30F, -22F); - box104 = new ModelRenderer(this,68, 62); + box104 = new ModelRendererTurbo(this,68, 62); box104.addBox(0F, 0F, 0F, 2, 3, 1); box104.setRotationPoint(-1F, 26F, 34F); - box105 = new ModelRenderer(this,200, 17); + box105 = new ModelRendererTurbo(this,200, 17); box105.addBox(0F, 0F, 0F, 2, 3, 2); box105.setRotationPoint(-1F, 29F, -26F); - box106 = new ModelRenderer(this,201, 29); + box106 = new ModelRendererTurbo(this,201, 29); box106.addBox(0F, 0F, 0F, 5, 3, 1); box106.setRotationPoint(-5F, 29F, -22F); box106.rotateAngleY = -5.6374134839416845F; - box107 = new ModelRenderer(this,201, 24); + box107 = new ModelRendererTurbo(this,201, 24); box107.addBox(0F, 0F, 0F, 5, 3, 1); box107.setRotationPoint(5F, 32F, -22F); box107.rotateAngleY = 0.6457718232379019F; box107.rotateAngleZ = 3.141592653589793F; - box108 = new ModelRenderer(this,184, 63); + box108 = new ModelRendererTurbo(this,184, 63); box108.addBox(0F, 0F, 0F, 16, 2, 1); box108.setRotationPoint(-8F, 28F, -11F); - box109 = new ModelRenderer(this,185, 67); + box109 = new ModelRendererTurbo(this,185, 67); box109.addBox(0F, 0F, 0F, 14, 1, 1); box109.setRotationPoint(-7F, 30F, -11F); - box11 = new ModelRenderer(this,1, 29); + box11 = new ModelRendererTurbo(this,1, 29); box11.addBox(0F, 0F, 0F, 12, 2, 1); box11.setRotationPoint(-6F, 3F, 9F); - box110 = new ModelRenderer(this,110, 56); + box110 = new ModelRendererTurbo(this,110, 56); box110.addBox(0F, 0F, 0F, 16, 12, 1); box110.setRotationPoint(-8F, 10F, -11F); - box111 = new ModelRenderer(this,172, 2); + box111 = new ModelRendererTurbo(this,172, 2); box111.addBox(0F, 0F, 0F, 12, 6, 1); box111.setRotationPoint(-6F, 22F, -11F); - box112 = new ModelRenderer(this,238, 74); + box112 = new ModelRendererTurbo(this,238, 74); box112.addBox(0F, 0F, 0F, 5, 22, 1); box112.setRotationPoint(5F, 10F, 31F); box112.rotateAngleY = -2.4958208303518914F; - box113 = new ModelRenderer(this,224, 74); + box113 = new ModelRendererTurbo(this,224, 74); box113.addBox(0F, 0F, 0F, 5, 22, 1); box113.setRotationPoint(-5F, 32F, 31F); box113.rotateAngleX = -3.141592653589793F; box113.rotateAngleY = -0.6457718232379019F; - box114 = new ModelRenderer(this,215, 74); + box114 = new ModelRendererTurbo(this,215, 74); box114.addBox(0F, 0F, 0F, 2, 22, 1); box114.setRotationPoint(-1F, 10F, 33F); - box115 = new ModelRenderer(this,200, 77); + box115 = new ModelRendererTurbo(this,200, 77); box115.addBox(0F, 0F, 0F, 6, 1, 1); box115.setRotationPoint(-3F, 31F, 31F); - box116 = new ModelRenderer(this,202, 80); + box116 = new ModelRendererTurbo(this,202, 80); box116.addBox(0F, 0F, 0F, 4, 1, 1); box116.setRotationPoint(-2F, 31F, 32F); - box119 = new ModelRenderer(this,89, 86); + box119 = new ModelRendererTurbo(this,89, 86); box119.addBox(0F, 0F, 0F, 12, 1, 14); box119.setRotationPoint(-6F, 31F, 4F); - box12 = new ModelRenderer(this,1, 29); + box12 = new ModelRendererTurbo(this,1, 29); box12.addBox(0F, 0F, 0F, 12, 2, 1); box12.setRotationPoint(-6F, 3F, 30F); - box120 = new ModelRenderer(this,172, 151); + box120 = new ModelRendererTurbo(this,172, 151); box120.addBox(0F, 0F, 0F, 2, 3, 14); box120.setRotationPoint(6F, 31F, 4F); box120.rotateAngleZ = -3.473205211468716F; - box121 = new ModelRenderer(this,207, 151); + box121 = new ModelRendererTurbo(this,207, 151); box121.addBox(0F, 0F, 0F, 2, 3, 14); box121.setRotationPoint(-6F, 31F, 18F); box121.rotateAngleX = -3.141592653589793F; box121.rotateAngleZ = -5.969026041820607F; - box123 = new ModelRenderer(this,4, 129); + box123 = new ModelRendererTurbo(this,4, 129); box123.addBox(0F, 0F, 0F, 6, 1, 13); box123.setRotationPoint(-3F, 32F, 17F); - box124 = new ModelRenderer(this,2, 64); + box124 = new ModelRendererTurbo(this,2, 64); box124.addBox(0F, 0F, 0F, 4, 1, 1); box124.setRotationPoint(-2F, 32F, -21F); - box125 = new ModelRenderer(this,2, 67); + box125 = new ModelRendererTurbo(this,2, 67); box125.addBox(0F, 0F, 0F, 1, 1, 4); box125.setRotationPoint(1F, 33F, -23F); - box126 = new ModelRenderer(this,2, 73); + box126 = new ModelRendererTurbo(this,2, 73); box126.addBox(0F, 0F, 0F, 1, 1, 4); box126.setRotationPoint(-2F, 33F, -22F); - box128 = new ModelRenderer(this,171, 109); + box128 = new ModelRendererTurbo(this,171, 109); box128.addBox(0F, 0F, 0F, 18, 6, 4); box128.setRotationPoint(-9F, 10F, -10F); - box13 = new ModelRenderer(this,45, 2); + box13 = new ModelRendererTurbo(this,45, 2); box13.addBox(0F, 0F, 0F, 1, 4, 22); box13.setRotationPoint(6F, 2F, 9F); - box132 = new ModelRenderer(this,48, 206); + box132 = new ModelRendererTurbo(this,48, 206); box132.addBox(0F, 0F, 0F, 18, 1, 5); box132.setRotationPoint(9F, 23F, -8F); box132.rotateAngleX = -4.153883619746504F; box132.rotateAngleY = -3.141592653589793F; - box14 = new ModelRenderer(this,49, 31); + box14 = new ModelRendererTurbo(this,49, 31); box14.addBox(0F, 0F, 0F, 16, 2, 2); box14.setRotationPoint(-8F, 2F, 19F); - box143 = new ModelRenderer(this,4, 125); + box143 = new ModelRendererTurbo(this,4, 125); box143.addBox(0F, 0F, 0F, 7, 1, 0); box143.setRotationPoint(-6F, 19F, -35F); box143.rotateAngleZ = -2.0245819323134224F; - box148 = new ModelRenderer(this,4, 125); + box148 = new ModelRendererTurbo(this,4, 125); box148.addBox(0F, 0F, 0F, 7, 1, 0); box148.setRotationPoint(6F, 19F, 35F); box148.rotateAngleX = -3.141592653589793F; box148.rotateAngleZ = -1.117010721276371F; - box15 = new ModelRenderer(this,49, 31); + box15 = new ModelRendererTurbo(this,49, 31); box15.addBox(0F, 0F, 0F, 16, 2, 2); box15.setRotationPoint(-8F, 2F, 26F); - box16 = new ModelRenderer(this,45, 2); + box16 = new ModelRendererTurbo(this,45, 2); box16.addBox(0F, 0F, 0F, 1, 4, 22); box16.setRotationPoint(-7F, 2F, 9F); - box17 = new ModelRenderer(this,0, 33); + box17 = new ModelRendererTurbo(this,0, 33); box17.addBox(0F, 0F, 0F, 8, 3, 18); box17.setRotationPoint(-4F, 4F, -29F); - box18 = new ModelRenderer(this,1, 33); + box18 = new ModelRendererTurbo(this,1, 33); box18.addBox(0F, 0F, 0F, 2, 2, 2); box18.setRotationPoint(6F, 5F, -26F); - box19 = new ModelRenderer(this,1, 33); + box19 = new ModelRendererTurbo(this,1, 33); box19.addBox(0F, 0F, 0F, 2, 2, 2); box19.setRotationPoint(6F, 5F, -19F); - box2 = new ModelRenderer(this,0, 2); + box2 = new ModelRendererTurbo(this,0, 2); box2.addBox(0F, 0F, 0F, 1, 6, 20); box2.setRotationPoint(-6F, 0F, -30F); - box20 = new ModelRenderer(this,1, 33); + box20 = new ModelRendererTurbo(this,1, 33); box20.addBox(0F, 0F, 0F, 2, 2, 2); box20.setRotationPoint(6F, 5F, 24F); - box21 = new ModelRenderer(this,1, 33); + box21 = new ModelRendererTurbo(this,1, 33); box21.addBox(0F, 0F, 0F, 2, 2, 2); box21.setRotationPoint(6F, 5F, 17F); - box22 = new ModelRenderer(this,0, 33); + box22 = new ModelRendererTurbo(this,0, 33); box22.addBox(0F, 0F, 0F, 8, 3, 18); box22.setRotationPoint(-4F, 4F, 11F); - box23 = new ModelRenderer(this,1, 33); + box23 = new ModelRendererTurbo(this,1, 33); box23.addBox(0F, 0F, 0F, 2, 2, 2); box23.setRotationPoint(-8F, 5F, 17F); - box24 = new ModelRenderer(this,1, 33); + box24 = new ModelRendererTurbo(this,1, 33); box24.addBox(0F, 0F, 0F, 2, 2, 2); box24.setRotationPoint(-8F, 5F, 24F); - box25 = new ModelRenderer(this,1, 33); + box25 = new ModelRendererTurbo(this,1, 33); box25.addBox(0F, 0F, 0F, 2, 2, 2); box25.setRotationPoint(-8F, 5F, -19F); - box26 = new ModelRenderer(this,1, 33); + box26 = new ModelRendererTurbo(this,1, 33); box26.addBox(0F, 0F, 0F, 2, 2, 2); box26.setRotationPoint(-8F, 5F, -26F); - box27 = new ModelRenderer(this,0, 66); + box27 = new ModelRendererTurbo(this,0, 66); box27.addBox(0F, 0F, 0F, 18, 3, 16); box27.setRotationPoint(-9F, 5F, -8F); - box28 = new ModelRenderer(this,67, 70); + box28 = new ModelRendererTurbo(this,67, 70); box28.addBox(0F, 0F, 0F, 1, 5, 16); box28.setRotationPoint(-9F, 5F, 8F); box28.rotateAngleX = -3.141592653589793F; box28.rotateAngleZ = -5.6374134839416845F; - box29 = new ModelRenderer(this,2, 88); + box29 = new ModelRendererTurbo(this,2, 88); box29.addBox(0F, 0F, 0F, 12, 1, 16); box29.setRotationPoint(-6F, 1F, -8F); - box3 = new ModelRenderer(this,45, 2); + box3 = new ModelRendererTurbo(this,45, 2); box3.addBox(0F, 0F, 0F, 1, 4, 22); box3.setRotationPoint(-7F, 2F, -31F); - box30 = new ModelRenderer(this,67, 70); + box30 = new ModelRendererTurbo(this,67, 70); box30.addBox(0F, 0F, 0F, 1, 5, 16); box30.setRotationPoint(9F, 5F, -8F); box30.rotateAngleZ = -3.7873644768276953F; - box31 = new ModelRenderer(this,130, 76); + box31 = new ModelRendererTurbo(this,130, 76); box31.addBox(0F, 0F, 0F, 18, 2, 1); box31.setRotationPoint(-9F, 28F, -22F); - box32 = new ModelRenderer(this,75, 62); + box32 = new ModelRendererTurbo(this,75, 62); box32.addBox(0F, 0F, 0F, 2, 3, 1); box32.setRotationPoint(3F, 10F, -36F); - box33 = new ModelRenderer(this,75, 62); + box33 = new ModelRendererTurbo(this,75, 62); box33.addBox(0F, 0F, 0F, 2, 3, 1); box33.setRotationPoint(-5F, 10F, -36F); - box34 = new ModelRenderer(this,4, 218); + box34 = new ModelRendererTurbo(this,4, 218); box34.addBox(0F, 0F, 0F, 12, 1, 16); box34.setRotationPoint(-6F, 2F, -8F); - box35 = new ModelRenderer(this,1, 201); + box35 = new ModelRendererTurbo(this,1, 201); box35.addBox(0F, 0F, 0F, 14, 1, 16); box35.setRotationPoint(-7F, 3F, -8F); - box36 = new ModelRenderer(this,1, 181); + box36 = new ModelRendererTurbo(this,1, 181); box36.addBox(0F, 0F, 0F, 16, 1, 16); box36.setRotationPoint(-8F, 4F, -8F); - box37 = new ModelRenderer(this,48, 38); + box37 = new ModelRendererTurbo(this,48, 38); box37.addBox(0F, 0F, 0F, 18, 2, 1); box37.setRotationPoint(-9F, 7F, 8F); - box38 = new ModelRenderer(this,48, 38); + box38 = new ModelRendererTurbo(this,48, 38); box38.addBox(0F, 0F, 0F, 18, 1, 1); box38.setRotationPoint(-9F, 8F, -7F); - box39 = new ModelRenderer(this,48, 38); + box39 = new ModelRendererTurbo(this,48, 38); box39.addBox(0F, 0F, 0F, 18, 2, 1); box39.setRotationPoint(-9F, 7F, -23F); - box4 = new ModelRenderer(this,1, 29); + box4 = new ModelRendererTurbo(this,1, 29); box4.addBox(0F, 0F, 0F, 12, 2, 1); box4.setRotationPoint(-6F, 3F, -31F); - box40 = new ModelRenderer(this,48, 38); + box40 = new ModelRendererTurbo(this,48, 38); box40.addBox(0F, 0F, 0F, 18, 2, 1); box40.setRotationPoint(-9F, 7F, 22F); - box41 = new ModelRenderer(this,1, 104); + box41 = new ModelRendererTurbo(this,1, 104); box41.addBox(0F, 0F, 0F, 18, 1, 64); box41.setRotationPoint(-9F, 9F, -32F); - box42 = new ModelRenderer(this,60, 183); + box42 = new ModelRendererTurbo(this,60, 183); box42.addBox(0F, 0F, 0F, 10, 2, 70); box42.setRotationPoint(-5F, 7F, -35F); - box43 = new ModelRenderer(this,81, 172); + box43 = new ModelRendererTurbo(this,81, 172); box43.addBox(0F, 0F, 0F, 4, 2, 78); box43.setRotationPoint(-2F, 6F, -39F); - box44 = new ModelRenderer(this,37, 109); + box44 = new ModelRendererTurbo(this,37, 109); box44.addBox(0F, 0F, 0F, 10, 1, 3); box44.setRotationPoint(-5F, 9F, 32F); - box45 = new ModelRenderer(this,44, 158); + box45 = new ModelRendererTurbo(this,44, 158); box45.addBox(0F, 0F, 0F, 8, 6, 1); box45.setRotationPoint(-4F, 19F, -21F); - box46 = new ModelRenderer(this,21, 109); + box46 = new ModelRendererTurbo(this,21, 109); box46.addBox(0F, 0F, 0F, 6, 1, 1); box46.setRotationPoint(-1F, 9F, 37F); box46.rotateAngleX = 3.141592653589793F; box46.rotateAngleY = 0.15707963267948966F; box46.rotateAngleZ = 3.141592653589793F; - box47 = new ModelRenderer(this,2, 147); + box47 = new ModelRendererTurbo(this,2, 147); box47.addBox(0F, 0F, 0F, 18, 18, 0); box47.setRotationPoint(-9F, 1F, 35F); - box48 = new ModelRenderer(this,21, 109); + box48 = new ModelRendererTurbo(this,21, 109); box48.addBox(0F, 0F, 0F, 6, 1, 1); box48.setRotationPoint(1F, 10F, 37F); box48.rotateAngleX = -3.141592653589793F; box48.rotateAngleY = -6.126105674500097F; - box49 = new ModelRenderer(this,1, 172); + box49 = new ModelRendererTurbo(this,1, 172); box49.addBox(0F, 0F, 0F, 0, 13, 64); box49.setRotationPoint(9F, 10F, -32F); - box5 = new ModelRenderer(this,1, 29); + box5 = new ModelRendererTurbo(this,1, 29); box5.addBox(0F, 0F, 0F, 12, 2, 1); box5.setRotationPoint(-6F, 3F, -10F); - box50 = new ModelRenderer(this,5, 112); + box50 = new ModelRendererTurbo(this,5, 112); box50.addBox(0F, 0F, 0F, 14, 1, 1); box50.setRotationPoint(-7F, 9F, 35F); - box51 = new ModelRenderer(this,48, 197); + box51 = new ModelRendererTurbo(this,48, 197); box51.addBox(0F, 0F, 0F, 0, 1, 5); box51.setRotationPoint(-9F, 23F, -25F); box51.rotateAngleX = -4.084070449666731F; - box52 = new ModelRenderer(this,37, 109); + box52 = new ModelRendererTurbo(this,37, 109); box52.addBox(0F, 0F, 0F, 10, 1, 3); box52.setRotationPoint(-5F, 9F, -35F); - box53 = new ModelRenderer(this,5, 112); + box53 = new ModelRendererTurbo(this,5, 112); box53.addBox(0F, 0F, 0F, 14, 1, 1); box53.setRotationPoint(-7F, 9F, -36F); - box54 = new ModelRenderer(this,93, 175); + box54 = new ModelRendererTurbo(this,93, 175); box54.addBox(0F, 0F, 0F, 2, 1, 74); box54.setRotationPoint(-1F, 9F, -37F); - box55 = new ModelRenderer(this,21, 109); + box55 = new ModelRendererTurbo(this,21, 109); box55.addBox(0F, 0F, 0F, 6, 1, 1); box55.setRotationPoint(1F, 9F, -37F); box55.rotateAngleY = -0.13962634015954636F; - box56 = new ModelRenderer(this,21, 109); + box56 = new ModelRendererTurbo(this,21, 109); box56.addBox(0F, 0F, 0F, 6, 1, 1); box56.setRotationPoint(-1F, 10F, -37F); box56.rotateAngleX = -3.141592653589793F; box56.rotateAngleY = -2.9845130209103035F; - box57 = new ModelRenderer(this,48, 197); + box57 = new ModelRendererTurbo(this,48, 197); box57.addBox(0F, 0F, 0F, 0, 1, 5); box57.setRotationPoint(9F, 23F, -25F); box57.rotateAngleX = -4.084070449666731F; - box58 = new ModelRenderer(this,168, 84); + box58 = new ModelRendererTurbo(this,168, 84); box58.addBox(0F, 0F, 0F, 18, 6, 5); box58.setRotationPoint(-9F, 10F, -27F); - box59 = new ModelRenderer(this,4, 116); + box59 = new ModelRendererTurbo(this,4, 116); box59.addBox(0F, 0F, 0F, 18, 7, 1); box59.setRotationPoint(-9F, 2F, -32F); - box6 = new ModelRenderer(this,49, 31); + box6 = new ModelRendererTurbo(this,49, 31); box6.addBox(0F, 0F, 0F, 16, 2, 2); box6.setRotationPoint(-8F, 2F, -21F); - box60 = new ModelRenderer(this,4, 125); + box60 = new ModelRendererTurbo(this,4, 125); box60.addBox(0F, 0F, 0F, 7, 1, 0); box60.setRotationPoint(-6F, 19F, 35F); box60.rotateAngleZ = -2.0245819323134224F; - box61 = new ModelRenderer(this,49, 118); + box61 = new ModelRendererTurbo(this,49, 118); box61.addBox(0F, 0F, 0F, 4, 1, 2); box61.setRotationPoint(-2F, 32F, -5F); - box62 = new ModelRenderer(this,4, 129); + box62 = new ModelRendererTurbo(this,4, 129); box62.addBox(0F, 0F, 0F, 6, 1, 13); box62.setRotationPoint(-3F, 32F, 2F); - box63 = new ModelRenderer(this,2, 147); + box63 = new ModelRendererTurbo(this,2, 147); box63.addBox(0F, 0F, 0F, 18, 18, 0); box63.setRotationPoint(-9F, 1F, -35F); - box64 = new ModelRenderer(this,1, 172); + box64 = new ModelRendererTurbo(this,1, 172); box64.addBox(0F, 0F, 0F, 0, 13, 64); box64.setRotationPoint(-9F, 10F, -32F); - box66 = new ModelRenderer(this,4, 125); + box66 = new ModelRendererTurbo(this,4, 125); box66.addBox(0F, 0F, 0F, 7, 1, 0); box66.setRotationPoint(6F, 19F, -35F); box66.rotateAngleX = -3.141592653589793F; box66.rotateAngleZ = -1.117010721276371F; - box67 = new ModelRenderer(this,4, 116); + box67 = new ModelRendererTurbo(this,4, 116); box67.addBox(0F, 0F, 0F, 18, 7, 1); box67.setRotationPoint(-9F, 2F, 31F); - box68 = new ModelRenderer(this,107, 102); + box68 = new ModelRendererTurbo(this,107, 102); box68.addBox(0F, 0F, 0F, 10, 15, 9); box68.setRotationPoint(-5F, 10F, -30F); - box69 = new ModelRenderer(this,110, 42); + box69 = new ModelRendererTurbo(this,110, 42); box69.addBox(0F, 0F, 0F, 16, 12, 1); box69.setRotationPoint(-8F, 10F, -22F); - box7 = new ModelRenderer(this,49, 31); + box7 = new ModelRendererTurbo(this,49, 31); box7.addBox(0F, 0F, 0F, 16, 2, 2); box7.setRotationPoint(-8F, 2F, -14F); - box70 = new ModelRenderer(this,103, 25); + box70 = new ModelRendererTurbo(this,103, 25); box70.addBox(0F, 0F, 0F, 5, 15, 1); box70.setRotationPoint(-5F, 10F, -30F); box70.rotateAngleY = -5.6374134839416845F; - box71 = new ModelRenderer(this,102, 178); + box71 = new ModelRendererTurbo(this,102, 178); box71.addBox(0F, 0F, 0F, 16, 0, 70); box71.setRotationPoint(-8F, 2F, -35F); - box72 = new ModelRenderer(this,234, 23); + box72 = new ModelRendererTurbo(this,234, 23); box72.addBox(0F, 0F, 0F, 6, 3, 1); box72.setRotationPoint(-3F, 29F, -23F); - box73 = new ModelRenderer(this,103, 8); + box73 = new ModelRendererTurbo(this,103, 8); box73.addBox(0F, 0F, 0F, 5, 15, 1); box73.setRotationPoint(5F, 25F, -30F); box73.rotateAngleY = 0.6457718232379019F; box73.rotateAngleZ = 3.141592653589793F; - box74 = new ModelRenderer(this,235, 27); + box74 = new ModelRendererTurbo(this,235, 27); box74.addBox(0F, 0F, 0F, 4, 3, 1); box74.setRotationPoint(-2F, 29F, -24F); - box75 = new ModelRenderer(this,118, 8); + box75 = new ModelRendererTurbo(this,118, 8); box75.addBox(0F, 0F, 0F, 2, 15, 1); box75.setRotationPoint(-1F, 10F, -33F); - box76 = new ModelRenderer(this,117, 28); + box76 = new ModelRendererTurbo(this,117, 28); box76.addBox(0F, 0F, 0F, 1, 6, 1); box76.setRotationPoint(5F, 22F, -22F); - box77 = new ModelRenderer(this,122, 28); + box77 = new ModelRendererTurbo(this,122, 28); box77.addBox(0F, 0F, 0F, 1, 6, 1); box77.setRotationPoint(-6F, 22F, -22F); - box78 = new ModelRenderer(this,131, 37); + box78 = new ModelRendererTurbo(this,131, 37); box78.addBox(0F, 0F, 0F, 6, 1, 1); box78.setRotationPoint(-3F, 24F, -31F); - box79 = new ModelRenderer(this,133, 34); + box79 = new ModelRendererTurbo(this,133, 34); box79.addBox(0F, 0F, 0F, 4, 1, 1); box79.setRotationPoint(-2F, 24F, -32F); - box8 = new ModelRenderer(this,49, 31); + box8 = new ModelRendererTurbo(this,49, 31); box8.addBox(0F, 0F, 0F, 16, 2, 2); box8.setRotationPoint(-8F, 2F, 12F); - box80 = new ModelRenderer(this,146, 0); + box80 = new ModelRendererTurbo(this,146, 0); box80.addBox(0F, 0F, 0F, 1, 13, 12); box80.setRotationPoint(8F, 10F, -22F); - box81 = new ModelRenderer(this,146, 25); + box81 = new ModelRendererTurbo(this,146, 25); box81.addBox(0F, 0F, 0F, 1, 13, 12); box81.setRotationPoint(-9F, 10F, -22F); - box82 = new ModelRenderer(this,102, 178); + box82 = new ModelRendererTurbo(this,102, 178); box82.addBox(0F, 0F, 0F, 16, 0, 70); box82.setRotationPoint(-8F, 6F, -35F); - box84 = new ModelRenderer(this,106, 87); + box84 = new ModelRendererTurbo(this,106, 87); box84.addBox(0F, 0F, 0F, 10, 22, 41); box84.setRotationPoint(-5F, 10F, -10F); - box85 = new ModelRenderer(this,159, 52); + box85 = new ModelRendererTurbo(this,159, 52); box85.addBox(0F, 0F, 0F, 2, 3, 1); box85.setRotationPoint(-1F, 25F, -22F); - box89 = new ModelRenderer(this,149, 61); + box89 = new ModelRendererTurbo(this,149, 61); box89.addBox(0F, 0F, 0F, 1, 5, 1); box89.setRotationPoint(-9F, 23F, -22F); - box9 = new ModelRenderer(this,0, 2); + box9 = new ModelRendererTurbo(this,0, 2); box9.addBox(0F, 0F, 0F, 1, 6, 20); box9.setRotationPoint(-6F, 0F, 10F); - box90 = new ModelRenderer(this,154, 61); + box90 = new ModelRendererTurbo(this,154, 61); box90.addBox(0F, 0F, 0F, 1, 5, 1); box90.setRotationPoint(8F, 23F, -22F); - box91 = new ModelRenderer(this,167, 42); + box91 = new ModelRendererTurbo(this,167, 42); box91.addBox(0F, 0F, 0F, 1, 2, 11); box91.setRotationPoint(-9F, 28F, -21F); - box92 = new ModelRenderer(this,173, 27); + box92 = new ModelRendererTurbo(this,173, 27); box92.addBox(0F, 0F, 0F, 1, 2, 11); box92.setRotationPoint(8F, 28F, -21F); - box93 = new ModelRenderer(this,176, 61); + box93 = new ModelRendererTurbo(this,176, 61); box93.addBox(0F, 0F, 0F, 1, 5, 2); box93.setRotationPoint(-9F, 23F, -12F); - box94 = new ModelRenderer(this,164, 62); + box94 = new ModelRendererTurbo(this,164, 62); box94.addBox(0F, 0F, 0F, 1, 5, 1); box94.setRotationPoint(-9F, 23F, -17F); - box95 = new ModelRenderer(this,169, 61); + box95 = new ModelRendererTurbo(this,169, 61); box95.addBox(0F, 0F, 0F, 1, 5, 2); box95.setRotationPoint(8F, 23F, -12F); - box96 = new ModelRenderer(this,159, 62); + box96 = new ModelRendererTurbo(this,159, 62); box96.addBox(0F, 0F, 0F, 1, 5, 1); box96.setRotationPoint(8F, 23F, -17F); - box97 = new ModelRenderer(this,201, 2); + box97 = new ModelRendererTurbo(this,201, 2); box97.addBox(0F, 0F, 0F, 10, 1, 12); box97.setRotationPoint(-5F, 31F, -22F); - box98 = new ModelRenderer(this,204, 23); + box98 = new ModelRendererTurbo(this,204, 23); box98.addBox(0F, 0F, 0F, 5, 1, 12); box98.setRotationPoint(5F, 32F, -10F); box98.rotateAngleX = -3.141592653589793F; diff --git a/src/main/java/train/client/render/models/ModelSD40dash2.java b/src/main/java/train/client/render/models/ModelSD40dash2.java index 4b26176cfd..e96e09d3c4 100644 --- a/src/main/java/train/client/render/models/ModelSD40dash2.java +++ b/src/main/java/train/client/render/models/ModelSD40dash2.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelSD70.java b/src/main/java/train/client/render/models/ModelSD70.java index cc74ff03d4..83c8f338e6 100644 --- a/src/main/java/train/client/render/models/ModelSD70.java +++ b/src/main/java/train/client/render/models/ModelSD70.java @@ -2,7 +2,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; import train.common.core.handlers.ConfigHandler; diff --git a/src/main/java/train/client/render/models/ModelSD70Mac.java b/src/main/java/train/client/render/models/ModelSD70Mac.java index 482507baa0..acf827bd18 100644 --- a/src/main/java/train/client/render/models/ModelSD70Mac.java +++ b/src/main/java/train/client/render/models/ModelSD70Mac.java @@ -14,9 +14,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelSD9.java b/src/main/java/train/client/render/models/ModelSD9.java index fe332ac79c..f6673b5764 100644 --- a/src/main/java/train/client/render/models/ModelSD9.java +++ b/src/main/java/train/client/render/models/ModelSD9.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelSM42_Bogie.java b/src/main/java/train/client/render/models/ModelSM42_Bogie.java index c445026b2a..675c729f08 100644 --- a/src/main/java/train/client/render/models/ModelSM42_Bogie.java +++ b/src/main/java/train/client/render/models/ModelSM42_Bogie.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelSM42_Bogie extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelSNCB_M6.java b/src/main/java/train/client/render/models/ModelSNCB_M6.java index 01d8a95735..58bae48cfd 100644 --- a/src/main/java/train/client/render/models/ModelSNCB_M6.java +++ b/src/main/java/train/client/render/models/ModelSNCB_M6.java @@ -14,8 +14,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelSNCB_M6 extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelSNCB_M6_TAIL.java b/src/main/java/train/client/render/models/ModelSNCB_M6_TAIL.java index 6acf4a8ad2..8e44096bb9 100644 --- a/src/main/java/train/client/render/models/ModelSNCB_M6_TAIL.java +++ b/src/main/java/train/client/render/models/ModelSNCB_M6_TAIL.java @@ -14,8 +14,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelSNCB_M6_TAIL extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelSNCB_M6_Trucks.java b/src/main/java/train/client/render/models/ModelSNCB_M6_Trucks.java index 8e6c1e0360..a0a9600b57 100644 --- a/src/main/java/train/client/render/models/ModelSNCB_M6_Trucks.java +++ b/src/main/java/train/client/render/models/ModelSNCB_M6_Trucks.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelSNCB_M6_Trucks extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelSW1.java b/src/main/java/train/client/render/models/ModelSW1.java index 8003e2e57f..491fb73101 100644 --- a/src/main/java/train/client/render/models/ModelSW1.java +++ b/src/main/java/train/client/render/models/ModelSW1.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelSW1200.java b/src/main/java/train/client/render/models/ModelSW1200.java index b9155eb6fc..43132e21a0 100644 --- a/src/main/java/train/client/render/models/ModelSW1200.java +++ b/src/main/java/train/client/render/models/ModelSW1200.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelSW1500.java b/src/main/java/train/client/render/models/ModelSW1500.java index f329eb1fa3..5e5393ac18 100644 --- a/src/main/java/train/client/render/models/ModelSW1500.java +++ b/src/main/java/train/client/render/models/ModelSW1500.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelSW8.java b/src/main/java/train/client/render/models/ModelSW8.java index 28115fc9f7..d79d82b78a 100644 --- a/src/main/java/train/client/render/models/ModelSW8.java +++ b/src/main/java/train/client/render/models/ModelSW8.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelSentinelY3.java b/src/main/java/train/client/render/models/ModelSentinelY3.java index cc6b91b29e..0e055b168a 100644 --- a/src/main/java/train/client/render/models/ModelSentinelY3.java +++ b/src/main/java/train/client/render/models/ModelSentinelY3.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelSentinelY3 extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelShay3Truck.java b/src/main/java/train/client/render/models/ModelShay3Truck.java index 52f37a6c0c..cc6d802090 100644 --- a/src/main/java/train/client/render/models/ModelShay3Truck.java +++ b/src/main/java/train/client/render/models/ModelShay3Truck.java @@ -12,8 +12,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelShay3Truck extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelShay3TruckTender.java b/src/main/java/train/client/render/models/ModelShay3TruckTender.java index ee960a222e..b3a1e005e1 100644 --- a/src/main/java/train/client/render/models/ModelShay3TruckTender.java +++ b/src/main/java/train/client/render/models/ModelShay3TruckTender.java @@ -12,8 +12,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelShay3TruckTender extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelShortCoveredHopper.java b/src/main/java/train/client/render/models/ModelShortCoveredHopper.java index 8bcbeee019..35be3d6a81 100644 --- a/src/main/java/train/client/render/models/ModelShortCoveredHopper.java +++ b/src/main/java/train/client/render/models/ModelShortCoveredHopper.java @@ -12,9 +12,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.library.Info; public class ModelShortCoveredHopper extends ModelBase diff --git a/src/main/java/train/client/render/models/ModelShunter.java b/src/main/java/train/client/render/models/ModelShunter.java index 966da781e0..ed525430ce 100644 --- a/src/main/java/train/client/render/models/ModelShunter.java +++ b/src/main/java/train/client/render/models/ModelShunter.java @@ -2,7 +2,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; public class ModelShunter extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelShuntingTenderUK.java b/src/main/java/train/client/render/models/ModelShuntingTenderUK.java index e535fa2005..c8de4ce7c8 100644 --- a/src/main/java/train/client/render/models/ModelShuntingTenderUK.java +++ b/src/main/java/train/client/render/models/ModelShuntingTenderUK.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelShuntingTenderUK extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelSkeletonLogCar.java b/src/main/java/train/client/render/models/ModelSkeletonLogCar.java index 130025d84c..94fe2f2983 100644 --- a/src/main/java/train/client/render/models/ModelSkeletonLogCar.java +++ b/src/main/java/train/client/render/models/ModelSkeletonLogCar.java @@ -13,9 +13,9 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.client.render.models.loads.ModelBigLog; import train.client.render.models.loads.ModelMixedLogs; import train.common.api.AbstractTrains; diff --git a/src/main/java/train/client/render/models/ModelSkookum.java b/src/main/java/train/client/render/models/ModelSkookum.java index b04731900d..080bfeab32 100644 --- a/src/main/java/train/client/render/models/ModelSkookum.java +++ b/src/main/java/train/client/render/models/ModelSkookum.java @@ -13,8 +13,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelSkookum extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelSkookumTender.java b/src/main/java/train/client/render/models/ModelSkookumTender.java index 52edf19db4..9785931364 100644 --- a/src/main/java/train/client/render/models/ModelSkookumTender.java +++ b/src/main/java/train/client/render/models/ModelSkookumTender.java @@ -4,9 +4,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.library.Info; public class ModelSkookumTender extends ModelConverter //Same as Filename diff --git a/src/main/java/train/client/render/models/ModelSkookumTenderTrucc.java b/src/main/java/train/client/render/models/ModelSkookumTenderTrucc.java index 127289da52..f310ed392c 100644 --- a/src/main/java/train/client/render/models/ModelSkookumTenderTrucc.java +++ b/src/main/java/train/client/render/models/ModelSkookumTenderTrucc.java @@ -2,8 +2,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelSkookumTenderTrucc extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelSlateWagon.java b/src/main/java/train/client/render/models/ModelSlateWagon.java index 3f5c6ddf44..022a2a799a 100644 --- a/src/main/java/train/client/render/models/ModelSlateWagon.java +++ b/src/main/java/train/client/render/models/ModelSlateWagon.java @@ -1,8 +1,8 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelSlateWagon extends ModelBase { int textureX = 512; diff --git a/src/main/java/train/client/render/models/ModelSmallFreightCart.java b/src/main/java/train/client/render/models/ModelSmallFreightCart.java index 4ee885cb97..ac00bef832 100644 --- a/src/main/java/train/client/render/models/ModelSmallFreightCart.java +++ b/src/main/java/train/client/render/models/ModelSmallFreightCart.java @@ -1,7 +1,7 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; import train.common.core.handlers.ConfigHandler; diff --git a/src/main/java/train/client/render/models/ModelSnowPlow.java b/src/main/java/train/client/render/models/ModelSnowPlow.java index 4d920efb24..98263092ab 100644 --- a/src/main/java/train/client/render/models/ModelSnowPlow.java +++ b/src/main/java/train/client/render/models/ModelSnowPlow.java @@ -12,9 +12,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.library.Info; public class ModelSnowPlow extends ModelBase diff --git a/src/main/java/train/client/render/models/ModelSouthern1102.java b/src/main/java/train/client/render/models/ModelSouthern1102.java index 8a84380f25..f4a9120ce3 100644 --- a/src/main/java/train/client/render/models/ModelSouthern1102.java +++ b/src/main/java/train/client/render/models/ModelSouthern1102.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelSouthern1102 extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelSouthern1102Tender.java b/src/main/java/train/client/render/models/ModelSouthern1102Tender.java index 61bcf2a6c1..651949766d 100644 --- a/src/main/java/train/client/render/models/ModelSouthern1102Tender.java +++ b/src/main/java/train/client/render/models/ModelSouthern1102Tender.java @@ -10,8 +10,8 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelSouthern1102Tender extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelStarCarFat.java b/src/main/java/train/client/render/models/ModelStarCarFat.java index b587938592..8c5c536ff1 100644 --- a/src/main/java/train/client/render/models/ModelStarCarFat.java +++ b/src/main/java/train/client/render/models/ModelStarCarFat.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelStarCarFat extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelStarCarNotFat.java b/src/main/java/train/client/render/models/ModelStarCarNotFat.java index a60916e57a..30b954268d 100644 --- a/src/main/java/train/client/render/models/ModelStarCarNotFat.java +++ b/src/main/java/train/client/render/models/ModelStarCarNotFat.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelStarCarNotFat extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelStarClass.java b/src/main/java/train/client/render/models/ModelStarClass.java index 64ce61a82a..b3980ec725 100644 --- a/src/main/java/train/client/render/models/ModelStarClass.java +++ b/src/main/java/train/client/render/models/ModelStarClass.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelStarClass extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelStarClassTender.java b/src/main/java/train/client/render/models/ModelStarClassTender.java index 3e97d5d399..cd551fd7c9 100644 --- a/src/main/java/train/client/render/models/ModelStarClassTender.java +++ b/src/main/java/train/client/render/models/ModelStarClassTender.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelStarClassTender extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelStockCar.java b/src/main/java/train/client/render/models/ModelStockCar.java index 99456d8d35..b93409942c 100644 --- a/src/main/java/train/client/render/models/ModelStockCar.java +++ b/src/main/java/train/client/render/models/ModelStockCar.java @@ -1,7 +1,7 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; import train.common.core.handlers.ConfigHandler; diff --git a/src/main/java/train/client/render/models/ModelSwitchStandOff.java b/src/main/java/train/client/render/models/ModelSwitchStandOff.java index 9fe8858854..5b3ec9e33e 100644 --- a/src/main/java/train/client/render/models/ModelSwitchStandOff.java +++ b/src/main/java/train/client/render/models/ModelSwitchStandOff.java @@ -10,8 +10,8 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelSwitchStandOff extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelSwitchStandOn.java b/src/main/java/train/client/render/models/ModelSwitchStandOn.java index 4b1e1f62d4..13ec116a4e 100644 --- a/src/main/java/train/client/render/models/ModelSwitchStandOn.java +++ b/src/main/java/train/client/render/models/ModelSwitchStandOn.java @@ -10,8 +10,8 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelSwitchStandOn extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelT262.java b/src/main/java/train/client/render/models/ModelT262.java index bf2eb2c2e0..fddc0f09f3 100644 --- a/src/main/java/train/client/render/models/ModelT262.java +++ b/src/main/java/train/client/render/models/ModelT262.java @@ -9,8 +9,8 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelT262 extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelTW305.java b/src/main/java/train/client/render/models/ModelTW305.java index 76a45e7eba..f1e7177f5e 100644 --- a/src/main/java/train/client/render/models/ModelTW305.java +++ b/src/main/java/train/client/render/models/ModelTW305.java @@ -12,8 +12,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelTW305 extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelTankWagon.java b/src/main/java/train/client/render/models/ModelTankWagon.java index 4d5170ae23..59f5ec5066 100644 --- a/src/main/java/train/client/render/models/ModelTankWagon.java +++ b/src/main/java/train/client/render/models/ModelTankWagon.java @@ -1,7 +1,7 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; import train.common.core.handlers.ConfigHandler; diff --git a/src/main/java/train/client/render/models/ModelTankWagon2.java b/src/main/java/train/client/render/models/ModelTankWagon2.java index 891dc1b0de..b3b4c468ef 100644 --- a/src/main/java/train/client/render/models/ModelTankWagon2.java +++ b/src/main/java/train/client/render/models/ModelTankWagon2.java @@ -1,7 +1,7 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; import train.common.core.handlers.ConfigHandler; diff --git a/src/main/java/train/client/render/models/ModelTankWagonThreeDome.java b/src/main/java/train/client/render/models/ModelTankWagonThreeDome.java index 73bac1338f..14d9dbef81 100644 --- a/src/main/java/train/client/render/models/ModelTankWagonThreeDome.java +++ b/src/main/java/train/client/render/models/ModelTankWagonThreeDome.java @@ -12,9 +12,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.library.Info; public class ModelTankWagonThreeDome extends ModelBase diff --git a/src/main/java/train/client/render/models/ModelTankWagonUS.java b/src/main/java/train/client/render/models/ModelTankWagonUS.java index 41749c89d8..898cb86c76 100644 --- a/src/main/java/train/client/render/models/ModelTankWagonUS.java +++ b/src/main/java/train/client/render/models/ModelTankWagonUS.java @@ -1,7 +1,7 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; public class ModelTankWagonUS extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelTankWagon_DB.java b/src/main/java/train/client/render/models/ModelTankWagon_DB.java index 043ec420d8..0e03b3def4 100644 --- a/src/main/java/train/client/render/models/ModelTankWagon_DB.java +++ b/src/main/java/train/client/render/models/ModelTankWagon_DB.java @@ -1,7 +1,7 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; import train.common.core.handlers.ConfigHandler; diff --git a/src/main/java/train/client/render/models/ModelTankerUK.java b/src/main/java/train/client/render/models/ModelTankerUK.java index a64b210654..24bd2e21bb 100644 --- a/src/main/java/train/client/render/models/ModelTankerUK.java +++ b/src/main/java/train/client/render/models/ModelTankerUK.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelTankerUK extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelTender.java b/src/main/java/train/client/render/models/ModelTender.java index fdc7169730..b997985a24 100644 --- a/src/main/java/train/client/render/models/ModelTender.java +++ b/src/main/java/train/client/render/models/ModelTender.java @@ -1,7 +1,7 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; import train.common.core.handlers.ConfigHandler; diff --git a/src/main/java/train/client/render/models/ModelTenderA4.java b/src/main/java/train/client/render/models/ModelTenderA4.java index 24893e4fad..127c6b5bce 100644 --- a/src/main/java/train/client/render/models/ModelTenderA4.java +++ b/src/main/java/train/client/render/models/ModelTenderA4.java @@ -10,8 +10,8 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelTenderA4 extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelTenderAdler.java b/src/main/java/train/client/render/models/ModelTenderAdler.java index d8d7059b44..a1aa7a40cc 100644 --- a/src/main/java/train/client/render/models/ModelTenderAdler.java +++ b/src/main/java/train/client/render/models/ModelTenderAdler.java @@ -8,1264 +8,1264 @@ package train.client.render.models; -import net.minecraft.client.model.ModelRenderer; +import fexcraft.tmt.slim.ModelRendererTurbo; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; public class ModelTenderAdler extends ModelBase { - ModelRenderer Shape1; - ModelRenderer Shape2; - ModelRenderer Shape3; - ModelRenderer Shape4; - ModelRenderer Shape5; - ModelRenderer Shape6; - ModelRenderer Shape7; - ModelRenderer Shape8; - ModelRenderer Shape9; - ModelRenderer Shape10; - ModelRenderer Shape11; - ModelRenderer Shape12; - ModelRenderer Shape13; - ModelRenderer Shape14; - ModelRenderer Shape15; - ModelRenderer Shape16; - ModelRenderer Shape17; - ModelRenderer Shape18; - ModelRenderer Shape19; - ModelRenderer Shape20; - ModelRenderer Shape21; - ModelRenderer Shape22; - ModelRenderer Shape23; - ModelRenderer Shape24; - ModelRenderer Shape25; - ModelRenderer Shape26; - ModelRenderer Shape27; - ModelRenderer Shape28; - ModelRenderer Shape29; - ModelRenderer Shape30; - ModelRenderer Shape31; - ModelRenderer Shape32; - ModelRenderer Shape33; - ModelRenderer Shape34; - ModelRenderer Shape35; - ModelRenderer Shape36; - ModelRenderer Shape37; - ModelRenderer Shape38; - ModelRenderer Shape39; - ModelRenderer Shape40; - ModelRenderer Shape41; - ModelRenderer Shape42; - ModelRenderer Shape43; - ModelRenderer Shape44; - ModelRenderer Shape45; - ModelRenderer Shape46; - ModelRenderer Shape47; - ModelRenderer Shape48; - ModelRenderer Shape49; - ModelRenderer Shape50; - ModelRenderer Shape51; - ModelRenderer Shape52; - ModelRenderer Shape53; - ModelRenderer Shape54; - ModelRenderer Shape55; - ModelRenderer Shape56; - ModelRenderer Shape57; - ModelRenderer Shape58; - ModelRenderer Shape59; - ModelRenderer Shape60; - ModelRenderer Shape61; - ModelRenderer Shape62; - ModelRenderer Shape63; - ModelRenderer Shape64; - ModelRenderer Shape65; - ModelRenderer Shape66; - ModelRenderer Shape67; - ModelRenderer Shape68; - ModelRenderer Shape69; - ModelRenderer Shape70; - ModelRenderer Shape71; - ModelRenderer Shape72; - ModelRenderer Shape73; - ModelRenderer Shape74; - ModelRenderer Shape75; - ModelRenderer Shape76; - ModelRenderer Shape77; - ModelRenderer Shape78; - ModelRenderer Shape79; - ModelRenderer Shape80; - ModelRenderer Shape81; - ModelRenderer Shape82; - ModelRenderer Shape83; - ModelRenderer Shape84; - ModelRenderer Shape85; - ModelRenderer Shape86; - ModelRenderer Shape87; - ModelRenderer Shape89; - ModelRenderer Shape90; - ModelRenderer Shape91; - ModelRenderer Shape92; - ModelRenderer Shape93; - ModelRenderer Shape94; - ModelRenderer Shape95; - ModelRenderer Shape96; - ModelRenderer Shape97; - ModelRenderer Shape98; - ModelRenderer Shape99; - ModelRenderer Shape100; - ModelRenderer Shape101; - ModelRenderer Shape102; - ModelRenderer Shape103; - ModelRenderer Shape104; - ModelRenderer Shape105; - ModelRenderer Shape106; - ModelRenderer Shape107; - ModelRenderer Shape108; - ModelRenderer Shape109; - ModelRenderer Shape110; - ModelRenderer Shape111; - ModelRenderer Shape112; - ModelRenderer Shape113; - ModelRenderer Shape114; - ModelRenderer Shape115; - ModelRenderer Shape116; - ModelRenderer Shape117; - ModelRenderer Shape118; - ModelRenderer Shape119; - ModelRenderer Shape120; - ModelRenderer Shape121; - ModelRenderer Shape122; - ModelRenderer Shape123; - ModelRenderer Shape124; - ModelRenderer Shape125; - ModelRenderer Shape126; - ModelRenderer Shape127; - ModelRenderer Shape128; - ModelRenderer Shape129; - ModelRenderer Shape130; - ModelRenderer Shape131; - ModelRenderer Shape132; - ModelRenderer Shape133; - ModelRenderer Shape134; - ModelRenderer Shape135; - ModelRenderer Shape136; - ModelRenderer Shape137; - ModelRenderer Shape138; - ModelRenderer Shape139; - ModelRenderer Shape140; - ModelRenderer Shape141; - ModelRenderer Shape142; - ModelRenderer Shape143; - ModelRenderer Shape144; - ModelRenderer Shape145; - ModelRenderer Shape146; - ModelRenderer Shape147; - ModelRenderer Shape148; - ModelRenderer Shape149; - ModelRenderer Shape150; - ModelRenderer Shape151; - ModelRenderer Shape152; - ModelRenderer Shape153; - ModelRenderer Shape154; - ModelRenderer Shape155; - ModelRenderer Shape156; - ModelRenderer Shape157; - ModelRenderer Shape158; - ModelRenderer Shape159; - ModelRenderer Shape160; - ModelRenderer Shape161; - ModelRenderer Shape162; - ModelRenderer Shape163; - ModelRenderer Shape164; - ModelRenderer Shape165; - ModelRenderer Shape166; - ModelRenderer Shape167; - ModelRenderer Shape168; - ModelRenderer Shape169; - ModelRenderer Shape170; - ModelRenderer Shape171; - ModelRenderer Shape172; - ModelRenderer Shape173; - ModelRenderer Shape174; - ModelRenderer Shape175; - ModelRenderer Shape176; - ModelRenderer Shape177; - ModelRenderer Shape178; - ModelRenderer Shape179; - ModelRenderer Shape180; + ModelRendererTurbo Shape1; + ModelRendererTurbo Shape2; + ModelRendererTurbo Shape3; + ModelRendererTurbo Shape4; + ModelRendererTurbo Shape5; + ModelRendererTurbo Shape6; + ModelRendererTurbo Shape7; + ModelRendererTurbo Shape8; + ModelRendererTurbo Shape9; + ModelRendererTurbo Shape10; + ModelRendererTurbo Shape11; + ModelRendererTurbo Shape12; + ModelRendererTurbo Shape13; + ModelRendererTurbo Shape14; + ModelRendererTurbo Shape15; + ModelRendererTurbo Shape16; + ModelRendererTurbo Shape17; + ModelRendererTurbo Shape18; + ModelRendererTurbo Shape19; + ModelRendererTurbo Shape20; + ModelRendererTurbo Shape21; + ModelRendererTurbo Shape22; + ModelRendererTurbo Shape23; + ModelRendererTurbo Shape24; + ModelRendererTurbo Shape25; + ModelRendererTurbo Shape26; + ModelRendererTurbo Shape27; + ModelRendererTurbo Shape28; + ModelRendererTurbo Shape29; + ModelRendererTurbo Shape30; + ModelRendererTurbo Shape31; + ModelRendererTurbo Shape32; + ModelRendererTurbo Shape33; + ModelRendererTurbo Shape34; + ModelRendererTurbo Shape35; + ModelRendererTurbo Shape36; + ModelRendererTurbo Shape37; + ModelRendererTurbo Shape38; + ModelRendererTurbo Shape39; + ModelRendererTurbo Shape40; + ModelRendererTurbo Shape41; + ModelRendererTurbo Shape42; + ModelRendererTurbo Shape43; + ModelRendererTurbo Shape44; + ModelRendererTurbo Shape45; + ModelRendererTurbo Shape46; + ModelRendererTurbo Shape47; + ModelRendererTurbo Shape48; + ModelRendererTurbo Shape49; + ModelRendererTurbo Shape50; + ModelRendererTurbo Shape51; + ModelRendererTurbo Shape52; + ModelRendererTurbo Shape53; + ModelRendererTurbo Shape54; + ModelRendererTurbo Shape55; + ModelRendererTurbo Shape56; + ModelRendererTurbo Shape57; + ModelRendererTurbo Shape58; + ModelRendererTurbo Shape59; + ModelRendererTurbo Shape60; + ModelRendererTurbo Shape61; + ModelRendererTurbo Shape62; + ModelRendererTurbo Shape63; + ModelRendererTurbo Shape64; + ModelRendererTurbo Shape65; + ModelRendererTurbo Shape66; + ModelRendererTurbo Shape67; + ModelRendererTurbo Shape68; + ModelRendererTurbo Shape69; + ModelRendererTurbo Shape70; + ModelRendererTurbo Shape71; + ModelRendererTurbo Shape72; + ModelRendererTurbo Shape73; + ModelRendererTurbo Shape74; + ModelRendererTurbo Shape75; + ModelRendererTurbo Shape76; + ModelRendererTurbo Shape77; + ModelRendererTurbo Shape78; + ModelRendererTurbo Shape79; + ModelRendererTurbo Shape80; + ModelRendererTurbo Shape81; + ModelRendererTurbo Shape82; + ModelRendererTurbo Shape83; + ModelRendererTurbo Shape84; + ModelRendererTurbo Shape85; + ModelRendererTurbo Shape86; + ModelRendererTurbo Shape87; + ModelRendererTurbo Shape89; + ModelRendererTurbo Shape90; + ModelRendererTurbo Shape91; + ModelRendererTurbo Shape92; + ModelRendererTurbo Shape93; + ModelRendererTurbo Shape94; + ModelRendererTurbo Shape95; + ModelRendererTurbo Shape96; + ModelRendererTurbo Shape97; + ModelRendererTurbo Shape98; + ModelRendererTurbo Shape99; + ModelRendererTurbo Shape100; + ModelRendererTurbo Shape101; + ModelRendererTurbo Shape102; + ModelRendererTurbo Shape103; + ModelRendererTurbo Shape104; + ModelRendererTurbo Shape105; + ModelRendererTurbo Shape106; + ModelRendererTurbo Shape107; + ModelRendererTurbo Shape108; + ModelRendererTurbo Shape109; + ModelRendererTurbo Shape110; + ModelRendererTurbo Shape111; + ModelRendererTurbo Shape112; + ModelRendererTurbo Shape113; + ModelRendererTurbo Shape114; + ModelRendererTurbo Shape115; + ModelRendererTurbo Shape116; + ModelRendererTurbo Shape117; + ModelRendererTurbo Shape118; + ModelRendererTurbo Shape119; + ModelRendererTurbo Shape120; + ModelRendererTurbo Shape121; + ModelRendererTurbo Shape122; + ModelRendererTurbo Shape123; + ModelRendererTurbo Shape124; + ModelRendererTurbo Shape125; + ModelRendererTurbo Shape126; + ModelRendererTurbo Shape127; + ModelRendererTurbo Shape128; + ModelRendererTurbo Shape129; + ModelRendererTurbo Shape130; + ModelRendererTurbo Shape131; + ModelRendererTurbo Shape132; + ModelRendererTurbo Shape133; + ModelRendererTurbo Shape134; + ModelRendererTurbo Shape135; + ModelRendererTurbo Shape136; + ModelRendererTurbo Shape137; + ModelRendererTurbo Shape138; + ModelRendererTurbo Shape139; + ModelRendererTurbo Shape140; + ModelRendererTurbo Shape141; + ModelRendererTurbo Shape142; + ModelRendererTurbo Shape143; + ModelRendererTurbo Shape144; + ModelRendererTurbo Shape145; + ModelRendererTurbo Shape146; + ModelRendererTurbo Shape147; + ModelRendererTurbo Shape148; + ModelRendererTurbo Shape149; + ModelRendererTurbo Shape150; + ModelRendererTurbo Shape151; + ModelRendererTurbo Shape152; + ModelRendererTurbo Shape153; + ModelRendererTurbo Shape154; + ModelRendererTurbo Shape155; + ModelRendererTurbo Shape156; + ModelRendererTurbo Shape157; + ModelRendererTurbo Shape158; + ModelRendererTurbo Shape159; + ModelRendererTurbo Shape160; + ModelRendererTurbo Shape161; + ModelRendererTurbo Shape162; + ModelRendererTurbo Shape163; + ModelRendererTurbo Shape164; + ModelRendererTurbo Shape165; + ModelRendererTurbo Shape166; + ModelRendererTurbo Shape167; + ModelRendererTurbo Shape168; + ModelRendererTurbo Shape169; + ModelRendererTurbo Shape170; + ModelRendererTurbo Shape171; + ModelRendererTurbo Shape172; + ModelRendererTurbo Shape173; + ModelRendererTurbo Shape174; + ModelRendererTurbo Shape175; + ModelRendererTurbo Shape176; + ModelRendererTurbo Shape177; + ModelRendererTurbo Shape178; + ModelRendererTurbo Shape179; + ModelRendererTurbo Shape180; public ModelTenderAdler() { textureWidth = 128; textureHeight = 128; - Shape1 = new ModelRenderer(this, 0, 0); + Shape1 = new ModelRendererTurbo(this, 0, 0); Shape1.addBox(0F, 0F, 0F, 1, 1, 4); Shape1.setRotationPoint(-5F, 23F, 4F); Shape1.setTextureSize(128, 128); Shape1.mirror = true; setRotation(Shape1, 0F, 0F, 0F); - Shape2 = new ModelRenderer(this, 11, 0); + Shape2 = new ModelRendererTurbo(this, 11, 0); Shape2.addBox(0F, 0F, 0F, 1, 1, 4); Shape2.setRotationPoint(-5F, 23F, -7F); Shape2.setTextureSize(128, 128); Shape2.mirror = true; setRotation(Shape2, 0F, 0F, 0F); - Shape3 = new ModelRenderer(this, 0, 28); + Shape3 = new ModelRendererTurbo(this, 0, 28); Shape3.addBox(0F, 0F, 0F, 1, 1, 4); Shape3.setRotationPoint(4F, 23F, 4F); Shape3.setTextureSize(128, 128); Shape3.mirror = true; setRotation(Shape3, 0F, 0F, 0F); - Shape4 = new ModelRenderer(this, 11, 28); + Shape4 = new ModelRendererTurbo(this, 11, 28); Shape4.addBox(0F, 0F, 0F, 1, 1, 4); Shape4.setRotationPoint(4F, 23F, -7F); Shape4.setTextureSize(128, 128); Shape4.mirror = true; setRotation(Shape4, 0F, 0F, 0F); - Shape5 = new ModelRenderer(this, 0, 18); + Shape5 = new ModelRendererTurbo(this, 0, 18); Shape5.addBox(0F, 0F, 0F, 1, 1, 4); Shape5.setRotationPoint(-5F, 16F, 4F); Shape5.setTextureSize(128, 128); Shape5.mirror = true; setRotation(Shape5, 0F, 0F, 0F); - Shape6 = new ModelRenderer(this, 11, 18); + Shape6 = new ModelRendererTurbo(this, 11, 18); Shape6.addBox(0F, 0F, 0F, 1, 1, 4); Shape6.setRotationPoint(-5F, 16F, -7F); Shape6.setTextureSize(128, 128); Shape6.mirror = true; setRotation(Shape6, 0F, 0F, 0F); - Shape7 = new ModelRenderer(this, 11, 46); + Shape7 = new ModelRendererTurbo(this, 11, 46); Shape7.addBox(0F, 0F, 0F, 1, 1, 4); Shape7.setRotationPoint(4F, 16F, -7F); Shape7.setTextureSize(128, 128); Shape7.mirror = true; setRotation(Shape7, 0F, 0F, 0F); - Shape8 = new ModelRenderer(this, 0, 46); + Shape8 = new ModelRendererTurbo(this, 0, 46); Shape8.addBox(0F, 0F, 0F, 1, 1, 4); Shape8.setRotationPoint(4F, 16F, 4F); Shape8.setTextureSize(128, 128); Shape8.mirror = true; setRotation(Shape8, 0F, 0F, 0F); - Shape9 = new ModelRenderer(this, 0, 6); + Shape9 = new ModelRendererTurbo(this, 0, 6); Shape9.addBox(0F, 0F, 0F, 1, 1, 1); Shape9.setRotationPoint(-5F, 22F, 8F); Shape9.setTextureSize(128, 128); Shape9.mirror = true; setRotation(Shape9, 0F, 0F, 0F); - Shape10 = new ModelRenderer(this, 5, 6); + Shape10 = new ModelRendererTurbo(this, 5, 6); Shape10.addBox(0F, 0F, 0F, 1, 1, 1); Shape10.setRotationPoint(-5F, 22F, 3F); Shape10.setTextureSize(128, 128); Shape10.mirror = true; setRotation(Shape10, 0F, 0F, 0F); - Shape11 = new ModelRenderer(this, 15, 6); + Shape11 = new ModelRendererTurbo(this, 15, 6); Shape11.addBox(0F, 0F, 0F, 1, 1, 1); Shape11.setRotationPoint(-5F, 22F, -8F); Shape11.setTextureSize(128, 128); Shape11.mirror = true; setRotation(Shape11, 0F, 0F, 0F); - Shape12 = new ModelRenderer(this, 10, 6); + Shape12 = new ModelRendererTurbo(this, 10, 6); Shape12.addBox(0F, 0F, 0F, 1, 1, 1); Shape12.setRotationPoint(-5F, 22F, -3F); Shape12.setTextureSize(128, 128); Shape12.mirror = true; setRotation(Shape12, 0F, 0F, 0F); - Shape13 = new ModelRenderer(this, 0, 15); + Shape13 = new ModelRendererTurbo(this, 0, 15); Shape13.addBox(0F, 0F, 0F, 1, 1, 1); Shape13.setRotationPoint(-5F, 17F, 8F); Shape13.setTextureSize(128, 128); Shape13.mirror = true; setRotation(Shape13, 0F, 0F, 0F); - Shape14 = new ModelRenderer(this, 5, 15); + Shape14 = new ModelRendererTurbo(this, 5, 15); Shape14.addBox(0F, 0F, 0F, 1, 1, 1); Shape14.setRotationPoint(-5F, 17F, 3F); Shape14.setTextureSize(128, 128); Shape14.mirror = true; setRotation(Shape14, 0F, 0F, 0F); - Shape15 = new ModelRenderer(this, 15, 15); + Shape15 = new ModelRendererTurbo(this, 15, 15); Shape15.addBox(0F, 0F, 0F, 1, 1, 1); Shape15.setRotationPoint(-5F, 17F, -8F); Shape15.setTextureSize(128, 128); Shape15.mirror = true; setRotation(Shape15, 0F, 0F, 0F); - Shape16 = new ModelRenderer(this, 10, 15); + Shape16 = new ModelRendererTurbo(this, 10, 15); Shape16.addBox(0F, 0F, 0F, 1, 1, 1); Shape16.setRotationPoint(-5F, 17F, -3F); Shape16.setTextureSize(128, 128); Shape16.mirror = true; setRotation(Shape16, 0F, 0F, 0F); - Shape17 = new ModelRenderer(this, 0, 43); + Shape17 = new ModelRendererTurbo(this, 0, 43); Shape17.addBox(0F, 0F, 0F, 1, 1, 1); Shape17.setRotationPoint(4F, 17F, 8F); Shape17.setTextureSize(128, 128); Shape17.mirror = true; setRotation(Shape17, 0F, 0F, 0F); - Shape18 = new ModelRenderer(this, 5, 43); + Shape18 = new ModelRendererTurbo(this, 5, 43); Shape18.addBox(0F, 0F, 0F, 1, 1, 1); Shape18.setRotationPoint(4F, 17F, 3F); Shape18.setTextureSize(128, 128); Shape18.mirror = true; setRotation(Shape18, 0F, 0F, 0F); - Shape19 = new ModelRenderer(this, 15, 43); + Shape19 = new ModelRendererTurbo(this, 15, 43); Shape19.addBox(0F, 0F, 0F, 1, 1, 1); Shape19.setRotationPoint(4F, 17F, -8F); Shape19.setTextureSize(128, 128); Shape19.mirror = true; setRotation(Shape19, 0F, 0F, 0F); - Shape20 = new ModelRenderer(this, 10, 43); + Shape20 = new ModelRendererTurbo(this, 10, 43); Shape20.addBox(0F, 0F, 0F, 1, 1, 1); Shape20.setRotationPoint(4F, 17F, -3F); Shape20.setTextureSize(128, 128); Shape20.mirror = true; setRotation(Shape20, 0F, 0F, 0F); - Shape21 = new ModelRenderer(this, 0, 34); + Shape21 = new ModelRendererTurbo(this, 0, 34); Shape21.addBox(0F, 0F, 0F, 1, 1, 1); Shape21.setRotationPoint(4F, 22F, 8F); Shape21.setTextureSize(128, 128); Shape21.mirror = true; setRotation(Shape21, 0F, 0F, 0F); - Shape22 = new ModelRenderer(this, 5, 34); + Shape22 = new ModelRendererTurbo(this, 5, 34); Shape22.addBox(0F, 0F, 0F, 1, 1, 1); Shape22.setRotationPoint(4F, 22F, 3F); Shape22.setTextureSize(128, 128); Shape22.mirror = true; setRotation(Shape22, 0F, 0F, 0F); - Shape23 = new ModelRenderer(this, 15, 34); + Shape23 = new ModelRendererTurbo(this, 15, 34); Shape23.addBox(0F, 0F, 0F, 1, 1, 1); Shape23.setRotationPoint(4F, 22F, -8F); Shape23.setTextureSize(128, 128); Shape23.mirror = true; setRotation(Shape23, 0F, 0F, 0F); - Shape24 = new ModelRenderer(this, 10, 34); + Shape24 = new ModelRendererTurbo(this, 10, 34); Shape24.addBox(0F, 0F, 0F, 1, 1, 1); Shape24.setRotationPoint(4F, 22F, -3F); Shape24.setTextureSize(128, 128); Shape24.mirror = true; setRotation(Shape24, 0F, 0F, 0F); - Shape25 = new ModelRenderer(this, 0, 9); + Shape25 = new ModelRendererTurbo(this, 0, 9); Shape25.addBox(0F, 0F, 0F, 1, 4, 1); Shape25.setRotationPoint(-5F, 18F, 9F); Shape25.setTextureSize(128, 128); Shape25.mirror = true; setRotation(Shape25, 0F, 0F, 0F); - Shape26 = new ModelRenderer(this, 5, 9); + Shape26 = new ModelRendererTurbo(this, 5, 9); Shape26.addBox(0F, 0F, 0F, 1, 4, 1); Shape26.setRotationPoint(-5F, 18F, 2F); Shape26.setTextureSize(128, 128); Shape26.mirror = true; setRotation(Shape26, 0F, 0F, 0F); - Shape27 = new ModelRenderer(this, 15, 9); + Shape27 = new ModelRendererTurbo(this, 15, 9); Shape27.addBox(0F, 0F, 0F, 1, 4, 1); Shape27.setRotationPoint(-5F, 18F, -9F); Shape27.setTextureSize(128, 128); Shape27.mirror = true; setRotation(Shape27, 0F, 0F, 0F); - Shape28 = new ModelRenderer(this, 10, 9); + Shape28 = new ModelRendererTurbo(this, 10, 9); Shape28.addBox(0F, 0F, 0F, 1, 4, 1); Shape28.setRotationPoint(-5F, 18F, -2F); Shape28.setTextureSize(128, 128); Shape28.mirror = true; setRotation(Shape28, 0F, 0F, 0F); - Shape29 = new ModelRenderer(this, 0, 37); + Shape29 = new ModelRendererTurbo(this, 0, 37); Shape29.addBox(0F, 0F, 0F, 1, 4, 1); Shape29.setRotationPoint(4F, 18F, 9F); Shape29.setTextureSize(128, 128); Shape29.mirror = true; setRotation(Shape29, 0F, 0F, 0F); - Shape30 = new ModelRenderer(this, 5, 37); + Shape30 = new ModelRendererTurbo(this, 5, 37); Shape30.addBox(0F, 0F, 0F, 1, 4, 1); Shape30.setRotationPoint(4F, 18F, 2F); Shape30.setTextureSize(128, 128); Shape30.mirror = true; setRotation(Shape30, 0F, 0F, 0F); - Shape31 = new ModelRenderer(this, 15, 37); + Shape31 = new ModelRendererTurbo(this, 15, 37); Shape31.addBox(0F, 0F, 0F, 1, 4, 1); Shape31.setRotationPoint(4F, 18F, -9F); Shape31.setTextureSize(128, 128); Shape31.mirror = true; setRotation(Shape31, 0F, 0F, 0F); - Shape32 = new ModelRenderer(this, 10, 37); + Shape32 = new ModelRendererTurbo(this, 10, 37); Shape32.addBox(0F, 0F, 0F, 1, 4, 1); Shape32.setRotationPoint(4F, 18F, -2F); Shape32.setTextureSize(128, 128); Shape32.mirror = true; setRotation(Shape32, 0F, 0F, 0F); - Shape33 = new ModelRenderer(this, 28, 0); + Shape33 = new ModelRendererTurbo(this, 28, 0); Shape33.addBox(0F, 0F, 0F, 1, 2, 2); Shape33.setRotationPoint(-5F, 19F, 5F); Shape33.setTextureSize(128, 128); Shape33.mirror = true; setRotation(Shape33, 0F, 0F, 0F); - Shape34 = new ModelRenderer(this, 35, 0); + Shape34 = new ModelRendererTurbo(this, 35, 0); Shape34.addBox(0F, 0F, 0F, 1, 2, 2); Shape34.setRotationPoint(-5F, 19F, -6F); Shape34.setTextureSize(128, 128); Shape34.mirror = true; setRotation(Shape34, 0F, 0F, 0F); - Shape35 = new ModelRenderer(this, 28, 28); + Shape35 = new ModelRendererTurbo(this, 28, 28); Shape35.addBox(0F, 0F, 0F, 1, 2, 2); Shape35.setRotationPoint(4F, 19F, 5F); Shape35.setTextureSize(128, 128); Shape35.mirror = true; setRotation(Shape35, 0F, 0F, 0F); - Shape36 = new ModelRenderer(this, 35, 28); + Shape36 = new ModelRendererTurbo(this, 35, 28); Shape36.addBox(0F, 0F, 0F, 1, 2, 2); Shape36.setRotationPoint(4F, 19F, -6F); Shape36.setTextureSize(128, 128); Shape36.mirror = true; setRotation(Shape36, 0F, 0F, 0F); - Shape37 = new ModelRenderer(this, 28, 5); + Shape37 = new ModelRendererTurbo(this, 28, 5); Shape37.addBox(0F, 0F, 0F, 0, 2, 1); Shape37.setRotationPoint(-4.5F, 21F, 5.5F); Shape37.setTextureSize(128, 128); Shape37.mirror = true; setRotation(Shape37, 0F, 0F, 0F); - Shape38 = new ModelRenderer(this, 28, 13); + Shape38 = new ModelRendererTurbo(this, 28, 13); Shape38.addBox(0F, 0F, 0F, 0, 2, 1); Shape38.setRotationPoint(-4.5F, 17F, 5.5F); Shape38.setTextureSize(128, 128); Shape38.mirror = true; setRotation(Shape38, 0F, 0F, 0F); - Shape39 = new ModelRenderer(this, 31, 5); + Shape39 = new ModelRendererTurbo(this, 31, 5); Shape39.addBox(0F, 0F, 0F, 0, 2, 1); Shape39.setRotationPoint(-4.5F, 21F, -5.5F); Shape39.setTextureSize(128, 128); Shape39.mirror = true; setRotation(Shape39, 0F, 0F, 0F); - Shape40 = new ModelRenderer(this, 31, 13); + Shape40 = new ModelRendererTurbo(this, 31, 13); Shape40.addBox(0F, 0F, 0F, 0, 2, 1); Shape40.setRotationPoint(-4.5F, 17F, -5.5F); Shape40.setTextureSize(128, 128); Shape40.mirror = true; setRotation(Shape40, 0F, 0F, 0F); - Shape41 = new ModelRenderer(this, 28, 33); + Shape41 = new ModelRendererTurbo(this, 28, 33); Shape41.addBox(0F, 0F, 0F, 0, 2, 1); Shape41.setRotationPoint(4.5F, 21F, 5.5F); Shape41.setTextureSize(128, 128); Shape41.mirror = true; setRotation(Shape41, 0F, 0F, 0F); - Shape42 = new ModelRenderer(this, 28, 41); + Shape42 = new ModelRendererTurbo(this, 28, 41); Shape42.addBox(0F, 0F, 0F, 0, 2, 1); Shape42.setRotationPoint(4.5F, 17F, 5.5F); Shape42.setTextureSize(128, 128); Shape42.mirror = true; setRotation(Shape42, 0F, 0F, 0F); - Shape43 = new ModelRenderer(this, 31, 33); + Shape43 = new ModelRendererTurbo(this, 31, 33); Shape43.addBox(0F, 0F, 0F, 0, 2, 1); Shape43.setRotationPoint(4.5F, 21F, -5.5F); Shape43.setTextureSize(128, 128); Shape43.mirror = true; setRotation(Shape43, 0F, 0F, 0F); - Shape44 = new ModelRenderer(this, 31, 41); + Shape44 = new ModelRendererTurbo(this, 31, 41); Shape44.addBox(0F, 0F, 0F, 0, 2, 1); Shape44.setRotationPoint(4.5F, 17F, -5.5F); Shape44.setTextureSize(128, 128); Shape44.mirror = true; setRotation(Shape44, 0F, 0F, 0F); - Shape45 = new ModelRenderer(this, 28, 15); + Shape45 = new ModelRendererTurbo(this, 28, 15); Shape45.addBox(0F, 0F, 0F, 0, 1, 2); Shape45.setRotationPoint(-4.5F, 19.5F, 7F); Shape45.setTextureSize(128, 128); Shape45.mirror = true; setRotation(Shape45, 0F, 0F, 0F); - Shape46 = new ModelRenderer(this, 28, 9); + Shape46 = new ModelRendererTurbo(this, 28, 9); Shape46.addBox(0F, 0F, 0F, 0, 1, 2); Shape46.setRotationPoint(-4.5F, 19.5F, 3F); Shape46.setTextureSize(128, 128); Shape46.mirror = true; setRotation(Shape46, 0F, 0F, 0F); - Shape47 = new ModelRenderer(this, 33, 9); + Shape47 = new ModelRendererTurbo(this, 33, 9); Shape47.addBox(0F, 0F, 0F, 0, 1, 2); Shape47.setRotationPoint(-4.5F, 19.5F, -8F); Shape47.setTextureSize(128, 128); Shape47.mirror = true; setRotation(Shape47, 0F, 0F, 0F); - Shape48 = new ModelRenderer(this, 28, 17); + Shape48 = new ModelRendererTurbo(this, 28, 17); Shape48.addBox(0F, 0F, 0F, 0, 1, 2); Shape48.setRotationPoint(-4.5F, 19.5F, -4F); Shape48.setTextureSize(128, 128); Shape48.mirror = true; setRotation(Shape48, 0F, 0F, 0F); - Shape49 = new ModelRenderer(this, 28, 43); + Shape49 = new ModelRendererTurbo(this, 28, 43); Shape49.addBox(0F, 0F, 0F, 0, 1, 2); Shape49.setRotationPoint(4.5F, 19.5F, 7F); Shape49.setTextureSize(128, 128); Shape49.mirror = true; setRotation(Shape49, 0F, 0F, 0F); - Shape50 = new ModelRenderer(this, 28, 37); + Shape50 = new ModelRendererTurbo(this, 28, 37); Shape50.addBox(0F, 0F, 0F, 0, 1, 2); Shape50.setRotationPoint(4.5F, 19.5F, 3F); Shape50.setTextureSize(128, 128); Shape50.mirror = true; setRotation(Shape50, 0F, 0F, 0F); - Shape51 = new ModelRenderer(this, 33, 37); + Shape51 = new ModelRendererTurbo(this, 33, 37); Shape51.addBox(0F, 0F, 0F, 0, 1, 2); Shape51.setRotationPoint(4.5F, 19.5F, -8F); Shape51.setTextureSize(128, 128); Shape51.mirror = true; setRotation(Shape51, 0F, 0F, 0F); - Shape52 = new ModelRenderer(this, 28, 45); + Shape52 = new ModelRendererTurbo(this, 28, 45); Shape52.addBox(0F, 0F, 0F, 0, 1, 2); Shape52.setRotationPoint(4.5F, 19.5F, -4F); Shape52.setTextureSize(128, 128); Shape52.mirror = true; setRotation(Shape52, 0F, 0F, 0F); - Shape53 = new ModelRenderer(this, 33, 14); + Shape53 = new ModelRendererTurbo(this, 33, 14); Shape53.addBox(0F, 0F, 0F, 0, 1, 3); Shape53.setRotationPoint(-4.5F, 20.1F, 6.8F); Shape53.setTextureSize(128, 128); Shape53.mirror = true; setRotation(Shape53, -0.7853982F, 0F, 0F); - Shape54 = new ModelRenderer(this, 38, 6); + Shape54 = new ModelRendererTurbo(this, 38, 6); Shape54.addBox(0F, 0F, 0F, 0, 1, 3); Shape54.setRotationPoint(-4.5F, 17F, 3.7F); Shape54.setTextureSize(128, 128); Shape54.mirror = true; setRotation(Shape54, -0.7853982F, 0F, 0F); - Shape55 = new ModelRenderer(this, 33, 16); + Shape55 = new ModelRendererTurbo(this, 33, 16); Shape55.addBox(0F, 0F, 0F, 0, 1, 3); Shape55.setRotationPoint(-4.5F, 20.1F, -4.2F); Shape55.setTextureSize(128, 128); Shape55.mirror = true; setRotation(Shape55, -0.7853982F, 0F, 0F); - Shape56 = new ModelRenderer(this, 38, 8); + Shape56 = new ModelRendererTurbo(this, 38, 8); Shape56.addBox(0F, 0F, 0F, 0, 1, 3); Shape56.setRotationPoint(-4.5F, 17F, -7.3F); Shape56.setTextureSize(128, 128); Shape56.mirror = true; setRotation(Shape56, -0.7853982F, 0F, 0F); - Shape57 = new ModelRenderer(this, 33, 42); + Shape57 = new ModelRendererTurbo(this, 33, 42); Shape57.addBox(0F, 0F, 0F, 0, 1, 3); Shape57.setRotationPoint(4.5F, 20.1F, 6.8F); Shape57.setTextureSize(128, 128); Shape57.mirror = true; setRotation(Shape57, -0.7853982F, 0F, 0F); - Shape58 = new ModelRenderer(this, 38, 34); + Shape58 = new ModelRendererTurbo(this, 38, 34); Shape58.addBox(0F, 0F, 0F, 0, 1, 3); Shape58.setRotationPoint(4.5F, 17F, 3.7F); Shape58.setTextureSize(128, 128); Shape58.mirror = true; setRotation(Shape58, -0.7853982F, 0F, 0F); - Shape59 = new ModelRenderer(this, 33, 44); + Shape59 = new ModelRendererTurbo(this, 33, 44); Shape59.addBox(0F, 0F, 0F, 0, 1, 3); Shape59.setRotationPoint(4.5F, 20.1F, -4.2F); Shape59.setTextureSize(128, 128); Shape59.mirror = true; setRotation(Shape59, -0.7853982F, 0F, 0F); - Shape60 = new ModelRenderer(this, 38, 36); + Shape60 = new ModelRendererTurbo(this, 38, 36); Shape60.addBox(0F, 0F, 0F, 0, 1, 3); Shape60.setRotationPoint(4.5F, 17F, -7.3F); Shape60.setTextureSize(128, 128); Shape60.mirror = true; setRotation(Shape60, -0.7853982F, 0F, 0F); - Shape61 = new ModelRenderer(this, 34, 2); + Shape61 = new ModelRendererTurbo(this, 34, 2); Shape61.addBox(0F, 0F, 0F, 0, 1, 3); Shape61.setRotationPoint(-4.5F, 22F, 3.3F); Shape61.setTextureSize(128, 128); Shape61.mirror = true; setRotation(Shape61, 0.7853982F, 0F, 0F); - Shape62 = new ModelRenderer(this, 34, 10); + Shape62 = new ModelRendererTurbo(this, 34, 10); Shape62.addBox(0F, 0F, 0F, 0, 1, 3); Shape62.setRotationPoint(-4.5F, 19.2F, 6.1F); Shape62.setTextureSize(128, 128); Shape62.mirror = true; setRotation(Shape62, 0.7853982F, 0F, 0F); - Shape63 = new ModelRenderer(this, 34, 12); + Shape63 = new ModelRendererTurbo(this, 34, 12); Shape63.addBox(0F, 0F, 0F, 0, 1, 3); Shape63.setRotationPoint(-4.5F, 19.2F, -4.9F); Shape63.setTextureSize(128, 128); Shape63.mirror = true; setRotation(Shape63, 0.7853982F, 0F, 0F); - Shape64 = new ModelRenderer(this, 34, 4); + Shape64 = new ModelRendererTurbo(this, 34, 4); Shape64.addBox(0F, 0F, 0F, 0, 1, 3); Shape64.setRotationPoint(-4.5F, 22F, -7.7F); Shape64.setTextureSize(128, 128); Shape64.mirror = true; setRotation(Shape64, 0.7853982F, 0F, 0F); - Shape65 = new ModelRenderer(this, 34, 38); + Shape65 = new ModelRendererTurbo(this, 34, 38); Shape65.addBox(0F, 0F, 0F, 0, 1, 3); Shape65.setRotationPoint(4.5F, 19.2F, 6.1F); Shape65.setTextureSize(128, 128); Shape65.mirror = true; setRotation(Shape65, 0.7853982F, 0F, 0F); - Shape66 = new ModelRenderer(this, 34, 30); + Shape66 = new ModelRendererTurbo(this, 34, 30); Shape66.addBox(0F, 0F, 0F, 0, 1, 3); Shape66.setRotationPoint(4.5F, 22F, 3.3F); Shape66.setTextureSize(128, 128); Shape66.mirror = true; setRotation(Shape66, 0.7853982F, 0F, 0F); - Shape67 = new ModelRenderer(this, 34, 40); + Shape67 = new ModelRendererTurbo(this, 34, 40); Shape67.addBox(0F, 0F, 0F, 0, 1, 3); Shape67.setRotationPoint(4.5F, 19.2F, -4.9F); Shape67.setTextureSize(128, 128); Shape67.mirror = true; setRotation(Shape67, 0.7853982F, 0F, 0F); - Shape68 = new ModelRenderer(this, 34, 32); + Shape68 = new ModelRendererTurbo(this, 34, 32); Shape68.addBox(0F, 0F, 0F, 0, 1, 3); Shape68.setRotationPoint(4.5F, 22F, -7.7F); Shape68.setTextureSize(128, 128); Shape68.mirror = true; setRotation(Shape68, 0.7853982F, 0F, 0F); - Shape69 = new ModelRenderer(this, 67, 92); + Shape69 = new ModelRendererTurbo(this, 67, 92); Shape69.addBox(0F, 0F, 0F, 12, 1, 1); Shape69.setRotationPoint(-6F, 19.5F, 5.5F); Shape69.setTextureSize(128, 128); Shape69.mirror = true; setRotation(Shape69, 0F, 0F, 0F); - Shape70 = new ModelRenderer(this, 67, 89); + Shape70 = new ModelRendererTurbo(this, 67, 89); Shape70.addBox(0F, 0F, 0F, 12, 1, 1); Shape70.setRotationPoint(-6F, 19.5F, -5.5F); Shape70.setTextureSize(128, 128); Shape70.mirror = true; setRotation(Shape70, 0F, 0F, 0F); - Shape71 = new ModelRenderer(this, 46, 8); + Shape71 = new ModelRendererTurbo(this, 46, 8); Shape71.addBox(0F, 0F, 0F, 1, 3, 1); Shape71.setRotationPoint(-6.5F, 18.5F, 6.5F); Shape71.setTextureSize(128, 128); Shape71.mirror = true; setRotation(Shape71, 0F, 0F, 0F); - Shape72 = new ModelRenderer(this, 50, 8); + Shape72 = new ModelRendererTurbo(this, 50, 8); Shape72.addBox(0F, 0F, 0F, 1, 3, 1); Shape72.setRotationPoint(-6.5F, 18.5F, 4.5F); Shape72.setTextureSize(128, 128); Shape72.mirror = true; setRotation(Shape72, 0F, 0F, 0F); - Shape73 = new ModelRenderer(this, 58, 8); + Shape73 = new ModelRendererTurbo(this, 58, 8); Shape73.addBox(0F, 0F, 0F, 1, 3, 1); Shape73.setRotationPoint(-6.5F, 18.5F, -6.5F); Shape73.setTextureSize(128, 128); Shape73.mirror = true; setRotation(Shape73, 0F, 0F, 0F); - Shape74 = new ModelRenderer(this, 54, 8); + Shape74 = new ModelRendererTurbo(this, 54, 8); Shape74.addBox(0F, 0F, 0F, 1, 3, 1); Shape74.setRotationPoint(-6.5F, 18.5F, -4.5F); Shape74.setTextureSize(128, 128); Shape74.mirror = true; setRotation(Shape74, 0F, 0F, 0F); - Shape75 = new ModelRenderer(this, 46, 13); + Shape75 = new ModelRendererTurbo(this, 46, 13); Shape75.addBox(0F, 0F, 0F, 1, 3, 1); Shape75.setRotationPoint(5.5F, 18.5F, 6.5F); Shape75.setTextureSize(128, 128); Shape75.mirror = true; setRotation(Shape75, 0F, 0F, 0F); - Shape76 = new ModelRenderer(this, 50, 13); + Shape76 = new ModelRendererTurbo(this, 50, 13); Shape76.addBox(0F, 0F, 0F, 1, 3, 1); Shape76.setRotationPoint(5.5F, 18.5F, 4.5F); Shape76.setTextureSize(128, 128); Shape76.mirror = true; setRotation(Shape76, 0F, 0F, 0F); - Shape77 = new ModelRenderer(this, 58, 13); + Shape77 = new ModelRendererTurbo(this, 58, 13); Shape77.addBox(0F, 0F, 0F, 1, 3, 1); Shape77.setRotationPoint(5.5F, 18.5F, -6.5F); Shape77.setTextureSize(128, 128); Shape77.mirror = true; setRotation(Shape77, 0F, 0F, 0F); - Shape78 = new ModelRenderer(this, 54, 13); + Shape78 = new ModelRendererTurbo(this, 54, 13); Shape78.addBox(0F, 0F, 0F, 1, 3, 1); Shape78.setRotationPoint(5.5F, 18.5F, -4.5F); Shape78.setTextureSize(128, 128); Shape78.mirror = true; setRotation(Shape78, 0F, 0F, 0F); - Shape79 = new ModelRenderer(this, 0, 28); + Shape79 = new ModelRendererTurbo(this, 0, 28); Shape79.addBox(0F, 0F, 0F, 1, 2, 25); Shape79.setRotationPoint(-6.5F, 17F, -12F); Shape79.setTextureSize(128, 128); Shape79.mirror = true; setRotation(Shape79, 0F, 0F, 0F); - Shape80 = new ModelRenderer(this, 0, 0); + Shape80 = new ModelRendererTurbo(this, 0, 0); Shape80.addBox(0F, 0F, 0F, 1, 2, 25); Shape80.setRotationPoint(5.5F, 17F, -12F); Shape80.setTextureSize(128, 128); Shape80.mirror = true; setRotation(Shape80, 0F, 0F, 0F); - Shape81 = new ModelRenderer(this, 45, 4); + Shape81 = new ModelRendererTurbo(this, 45, 4); Shape81.addBox(0F, 0F, 0F, 11, 2, 1); Shape81.setRotationPoint(-5.5F, 17F, 12F); Shape81.setTextureSize(128, 128); Shape81.mirror = true; setRotation(Shape81, 0F, 0F, 0F); - Shape82 = new ModelRenderer(this, 42, 0); + Shape82 = new ModelRendererTurbo(this, 42, 0); Shape82.addBox(0F, 0F, 0F, 15, 2, 1); Shape82.setRotationPoint(-7.5F, 17F, -12.2F); Shape82.setTextureSize(128, 128); Shape82.mirror = true; setRotation(Shape82, 0F, 0F, 0F); - Shape83 = new ModelRenderer(this, 39, 28); + Shape83 = new ModelRendererTurbo(this, 39, 28); Shape83.addBox(0F, 0F, 0F, 1, 0, 3); Shape83.setRotationPoint(-7.5F, 17F, 9.5F); Shape83.setTextureSize(128, 128); Shape83.mirror = true; setRotation(Shape83, 0F, 0F, 0F); - Shape84 = new ModelRenderer(this, 42, 28); + Shape84 = new ModelRendererTurbo(this, 42, 28); Shape84.addBox(0F, 0F, 0F, 1, 0, 3); Shape84.setRotationPoint(6.5F, 17F, 9.5F); Shape84.setTextureSize(128, 128); Shape84.mirror = true; setRotation(Shape84, 0F, 0F, 0F); - Shape85 = new ModelRenderer(this, 41, 13); + Shape85 = new ModelRendererTurbo(this, 41, 13); Shape85.addBox(0F, 0F, 0F, 0, 1, 1); Shape85.setRotationPoint(-6.5F, 19F, 10.5F); Shape85.setTextureSize(128, 128); Shape85.mirror = true; setRotation(Shape85, 0F, 0F, 0F); - Shape86 = new ModelRenderer(this, 43, 13); + Shape86 = new ModelRendererTurbo(this, 43, 13); Shape86.addBox(0F, 0F, 0F, 0, 1, 1); Shape86.setRotationPoint(6.5F, 19F, 10.5F); Shape86.setTextureSize(128, 128); Shape86.mirror = true; setRotation(Shape86, 0F, 0F, 0F); - Shape87 = new ModelRenderer(this, 39, 16); + Shape87 = new ModelRendererTurbo(this, 39, 16); Shape87.addBox(0F, 0F, 0F, 1, 0, 2); Shape87.setRotationPoint(-7.5F, 20F, 10F); Shape87.setTextureSize(128, 128); Shape87.mirror = true; setRotation(Shape87, 0F, 0F, 0F); - Shape89 = new ModelRenderer(this, 41, 16); + Shape89 = new ModelRendererTurbo(this, 41, 16); Shape89.addBox(0F, 0F, 0F, 1, 0, 2); Shape89.setRotationPoint(6.5F, 20F, 10F); Shape89.setTextureSize(128, 128); Shape89.mirror = true; setRotation(Shape89, 0F, 0F, 0F); - Shape90 = new ModelRenderer(this, 24, 88); + Shape90 = new ModelRendererTurbo(this, 24, 88); Shape90.addBox(0F, 0F, 0F, 1, 2, 3); Shape90.setRotationPoint(-6.4F, 15F, -1F); Shape90.setTextureSize(128, 128); Shape90.mirror = true; setRotation(Shape90, 0F, 0F, 0F); - Shape91 = new ModelRenderer(this, 55, 86); + Shape91 = new ModelRendererTurbo(this, 55, 86); Shape91.addBox(0F, 0F, 0F, 1, 2, 3); Shape91.setRotationPoint(5.4F, 15F, -1F); Shape91.setTextureSize(128, 128); Shape91.mirror = true; setRotation(Shape91, 0F, 0F, 0F); - Shape92 = new ModelRenderer(this, 34, 80); + Shape92 = new ModelRendererTurbo(this, 34, 80); Shape92.addBox(0F, 0F, 0F, 1, 2, 1); Shape92.setRotationPoint(-6.5F, 15F, 2F); Shape92.setTextureSize(128, 128); Shape92.mirror = true; setRotation(Shape92, 0F, 0F, 0F); - Shape93 = new ModelRenderer(this, 39, 80); + Shape93 = new ModelRendererTurbo(this, 39, 80); Shape93.addBox(0F, 0F, 0F, 1, 2, 1); Shape93.setRotationPoint(-6.5F, 15F, -2F); Shape93.setTextureSize(128, 128); Shape93.mirror = true; setRotation(Shape93, 0F, 0F, 0F); - Shape94 = new ModelRenderer(this, 54, 82); + Shape94 = new ModelRendererTurbo(this, 54, 82); Shape94.addBox(0F, 0F, 0F, 1, 2, 1); Shape94.setRotationPoint(5.5F, 15F, 2F); Shape94.setTextureSize(128, 128); Shape94.mirror = true; setRotation(Shape94, 0F, 0F, 0F); - Shape95 = new ModelRenderer(this, 59, 82); + Shape95 = new ModelRendererTurbo(this, 59, 82); Shape95.addBox(0F, 0F, 0F, 1, 2, 1); Shape95.setRotationPoint(5.5F, 15F, -2F); Shape95.setTextureSize(128, 128); Shape95.mirror = true; setRotation(Shape95, 0F, 0F, 0F); - Shape96 = new ModelRenderer(this, 45, 32); + Shape96 = new ModelRendererTurbo(this, 45, 32); Shape96.addBox(0F, 0F, 0F, 1, 1, 2); Shape96.setRotationPoint(-6.5F, 17.5F, -14F); Shape96.setTextureSize(128, 128); Shape96.mirror = true; setRotation(Shape96, 0F, 0F, 0F); - Shape97 = new ModelRenderer(this, 45, 36); + Shape97 = new ModelRendererTurbo(this, 45, 36); Shape97.addBox(0F, 0F, 0F, 1, 1, 2); Shape97.setRotationPoint(5.5F, 17.5F, -14F); Shape97.setTextureSize(128, 128); Shape97.mirror = true; setRotation(Shape97, 0F, 0F, 0F); - Shape98 = new ModelRenderer(this, 38, 20); + Shape98 = new ModelRendererTurbo(this, 38, 20); Shape98.addBox(0F, 0F, 0F, 1, 1, 3); Shape98.setRotationPoint(-0.5F, 17F, 13F); Shape98.setTextureSize(128, 128); Shape98.mirror = true; setRotation(Shape98, 0F, 0F, 0F); - Shape99 = new ModelRenderer(this, 28, 40); + Shape99 = new ModelRendererTurbo(this, 28, 40); Shape99.addBox(0F, 0F, 0F, 0, 1, 9); Shape99.setRotationPoint(-6F, 20F, -4F); Shape99.setTextureSize(128, 128); Shape99.mirror = true; setRotation(Shape99, 0F, 0F, 0F); - Shape100 = new ModelRenderer(this, 28, 42); + Shape100 = new ModelRendererTurbo(this, 28, 42); Shape100.addBox(0F, 0F, 0F, 0, 1, 9); Shape100.setRotationPoint(6F, 20F, -4F); Shape100.setTextureSize(128, 128); Shape100.mirror = true; setRotation(Shape100, 0F, 0F, 0F); - Shape101 = new ModelRenderer(this, 34, 84); + Shape101 = new ModelRendererTurbo(this, 34, 84); Shape101.addBox(0F, 0F, 0F, 1, 2, 2); Shape101.setRotationPoint(-6.4F, 15F, 10F); Shape101.setTextureSize(128, 128); Shape101.mirror = true; setRotation(Shape101, 0F, 0F, 0F); - Shape102 = new ModelRenderer(this, 44, 95); + Shape102 = new ModelRendererTurbo(this, 44, 95); Shape102.addBox(0F, 0F, 0F, 1, 2, 2); Shape102.setRotationPoint(5.4F, 15F, 10F); Shape102.setTextureSize(128, 128); Shape102.mirror = true; setRotation(Shape102, 0F, 0F, 0F); - Shape103 = new ModelRenderer(this, 34, 89); + Shape103 = new ModelRendererTurbo(this, 34, 89); Shape103.addBox(0F, 0F, 0F, 1, 2, 2); Shape103.setRotationPoint(-6.4F, 15F, -11F); Shape103.setTextureSize(128, 128); Shape103.mirror = true; setRotation(Shape103, 0F, 0F, 0F); - Shape104 = new ModelRenderer(this, 51, 95); + Shape104 = new ModelRendererTurbo(this, 51, 95); Shape104.addBox(0F, 0F, 0F, 1, 2, 2); Shape104.setRotationPoint(5.4F, 15F, -11F); Shape104.setTextureSize(128, 128); Shape104.mirror = true; setRotation(Shape104, 0F, 0F, 0F); - Shape105 = new ModelRenderer(this, 29, 80); + Shape105 = new ModelRendererTurbo(this, 29, 80); Shape105.addBox(0F, 0F, 0F, 1, 2, 1); Shape105.setRotationPoint(-6.5F, 15F, 9F); Shape105.setTextureSize(128, 128); Shape105.mirror = true; setRotation(Shape105, 0F, 0F, 0F); - Shape106 = new ModelRenderer(this, 24, 84); + Shape106 = new ModelRendererTurbo(this, 24, 84); Shape106.addBox(0F, 0F, 0F, 1, 2, 1); Shape106.setRotationPoint(-6.5F, 15F, -9F); Shape106.setTextureSize(128, 128); Shape106.mirror = true; setRotation(Shape106, 0F, 0F, 0F); - Shape107 = new ModelRenderer(this, 49, 82); + Shape107 = new ModelRendererTurbo(this, 49, 82); Shape107.addBox(0F, 0F, 0F, 1, 2, 1); Shape107.setRotationPoint(5.5F, 15F, 9F); Shape107.setTextureSize(128, 128); Shape107.mirror = true; setRotation(Shape107, 0F, 0F, 0F); - Shape108 = new ModelRenderer(this, 44, 86); + Shape108 = new ModelRendererTurbo(this, 44, 86); Shape108.addBox(0F, 0F, 0F, 1, 2, 1); Shape108.setRotationPoint(5.5F, 15F, -9F); Shape108.setTextureSize(128, 128); Shape108.mirror = true; setRotation(Shape108, 0F, 0F, 0F); - Shape109 = new ModelRenderer(this, 49, 86); + Shape109 = new ModelRendererTurbo(this, 49, 86); Shape109.addBox(0F, 0F, 0F, 1, 2, 1); Shape109.setRotationPoint(5.5F, 15F, -12F); Shape109.setTextureSize(128, 128); Shape109.mirror = true; setRotation(Shape109, 0F, 0F, 0F); - Shape110 = new ModelRenderer(this, 29, 84); + Shape110 = new ModelRendererTurbo(this, 29, 84); Shape110.addBox(0F, 0F, 0F, 1, 2, 1); Shape110.setRotationPoint(-6.5F, 15F, -12F); Shape110.setTextureSize(128, 128); Shape110.mirror = true; setRotation(Shape110, 0F, 0F, 0F); - Shape111 = new ModelRenderer(this, 10, 90); + Shape111 = new ModelRendererTurbo(this, 10, 90); Shape111.addBox(0F, 0F, 0F, 1, 2, 1); Shape111.setRotationPoint(-2.5F, 15F, -12F); Shape111.setTextureSize(128, 128); Shape111.mirror = true; setRotation(Shape111, 0F, 0F, 0F); - Shape112 = new ModelRenderer(this, 15, 90); + Shape112 = new ModelRendererTurbo(this, 15, 90); Shape112.addBox(0F, 0F, 0F, 1, 2, 1); Shape112.setRotationPoint(1.5F, 15F, -12F); Shape112.setTextureSize(128, 128); Shape112.mirror = true; setRotation(Shape112, 0F, 0F, 0F); - Shape113 = new ModelRenderer(this, 24, 80); + Shape113 = new ModelRendererTurbo(this, 24, 80); Shape113.addBox(0F, 0F, 0F, 1, 2, 1); Shape113.setRotationPoint(-6.5F, 15F, 12F); Shape113.setTextureSize(128, 128); Shape113.mirror = true; setRotation(Shape113, 0F, 0F, 0F); - Shape114 = new ModelRenderer(this, 44, 82); + Shape114 = new ModelRendererTurbo(this, 44, 82); Shape114.addBox(0F, 0F, 0F, 1, 2, 1); Shape114.setRotationPoint(5.5F, 15F, 12F); Shape114.setTextureSize(128, 128); Shape114.mirror = true; setRotation(Shape114, 0F, 0F, 0F); - Shape115 = new ModelRenderer(this, 58, 36); + Shape115 = new ModelRendererTurbo(this, 58, 36); Shape115.addBox(0F, 0F, 0F, 1, 1, 1); Shape115.setRotationPoint(1.5F, 16F, 12F); Shape115.setTextureSize(128, 128); Shape115.mirror = true; setRotation(Shape115, 0F, 0F, 0F); - Shape116 = new ModelRenderer(this, 53, 36); + Shape116 = new ModelRendererTurbo(this, 53, 36); Shape116.addBox(0F, 0F, 0F, 1, 1, 1); Shape116.setRotationPoint(-2.5F, 16F, 12F); Shape116.setTextureSize(128, 128); Shape116.mirror = true; setRotation(Shape116, 0F, 0F, 0F); - Shape117 = new ModelRenderer(this, 67, 80); + Shape117 = new ModelRendererTurbo(this, 67, 80); Shape117.addBox(0F, 0F, 0F, 3, 2, 1); Shape117.setRotationPoint(-5.5F, 15F, -11.9F); Shape117.setTextureSize(128, 128); Shape117.mirror = true; setRotation(Shape117, 0F, 0F, 0F); - Shape118 = new ModelRenderer(this, 67, 84); + Shape118 = new ModelRendererTurbo(this, 67, 84); Shape118.addBox(0F, 0F, 0F, 3, 2, 1); Shape118.setRotationPoint(2.5F, 15F, -11.9F); Shape118.setTextureSize(128, 128); Shape118.mirror = true; setRotation(Shape118, 0F, 0F, 0F); - Shape119 = new ModelRenderer(this, 0, 95); + Shape119 = new ModelRendererTurbo(this, 0, 95); Shape119.addBox(0F, 0F, 0F, 3, 2, 1); Shape119.setRotationPoint(-5.5F, 15F, 11.9F); Shape119.setTextureSize(128, 128); Shape119.mirror = true; setRotation(Shape119, 0F, 0F, 0F); - Shape120 = new ModelRenderer(this, 10, 95); + Shape120 = new ModelRendererTurbo(this, 10, 95); Shape120.addBox(0F, 0F, 0F, 3, 2, 1); Shape120.setRotationPoint(2.5F, 15F, 11.9F); Shape120.setTextureSize(128, 128); Shape120.mirror = true; setRotation(Shape120, 0F, 0F, 0F); - Shape121 = new ModelRenderer(this, 76, 82); + Shape121 = new ModelRendererTurbo(this, 76, 82); Shape121.addBox(0F, 0F, 0F, 3, 2, 1); Shape121.setRotationPoint(-1.5F, 15F, -11.9F); Shape121.setTextureSize(128, 128); Shape121.mirror = true; setRotation(Shape121, 0F, 0F, 0F); - Shape122 = new ModelRenderer(this, 45, 76); + Shape122 = new ModelRendererTurbo(this, 45, 76); Shape122.addBox(0F, 0F, 0F, 5, 1, 4); Shape122.setRotationPoint(-2.5F, 16F, 8.9F); Shape122.setTextureSize(128, 128); Shape122.mirror = true; setRotation(Shape122, 0F, 0F, 0F); - Shape123 = new ModelRenderer(this, 47, 20); + Shape123 = new ModelRendererTurbo(this, 47, 20); Shape123.addBox(0F, 0F, 0F, 1, 1, 3); Shape123.setRotationPoint(-0.5F, 17.5F, -14.5F); Shape123.setTextureSize(128, 128); Shape123.mirror = true; setRotation(Shape123, 0F, 0F, 0F); - Shape124 = new ModelRenderer(this, 28, 21); + Shape124 = new ModelRendererTurbo(this, 28, 21); Shape124.addBox(0F, 0F, 0F, 0, 1, 2); Shape124.setRotationPoint(-2F, 17.5F, -13.2F); Shape124.setTextureSize(128, 128); Shape124.mirror = true; setRotation(Shape124, 0F, 0F, 0F); - Shape125 = new ModelRenderer(this, 33, 21); + Shape125 = new ModelRendererTurbo(this, 33, 21); Shape125.addBox(0F, 0F, 0F, 0, 1, 2); Shape125.setRotationPoint(2F, 17.5F, -13.2F); Shape125.setTextureSize(128, 128); Shape125.mirror = true; setRotation(Shape125, 0F, 0F, 0F); - Shape126 = new ModelRenderer(this, 47, 18); + Shape126 = new ModelRendererTurbo(this, 47, 18); Shape126.addBox(0F, 0F, 0F, 4, 1, 0); Shape126.setRotationPoint(-2F, 17.5F, -13.2F); Shape126.setTextureSize(128, 128); Shape126.mirror = true; setRotation(Shape126, 0F, 0F, 0F); - Shape127 = new ModelRenderer(this, 81, 51); + Shape127 = new ModelRendererTurbo(this, 81, 51); Shape127.addBox(0F, 0F, 0F, 4, 1, 5); Shape127.setRotationPoint(-6.5F, 14F, 8F); Shape127.setTextureSize(128, 128); Shape127.mirror = true; setRotation(Shape127, 0F, 0F, 0F); - Shape128 = new ModelRenderer(this, 81, 58); + Shape128 = new ModelRendererTurbo(this, 81, 58); Shape128.addBox(0F, 0F, 0F, 4, 1, 5); Shape128.setRotationPoint(2.5F, 14F, 8F); Shape128.setTextureSize(128, 128); Shape128.mirror = true; setRotation(Shape128, 0F, 0F, 0F); - Shape129 = new ModelRenderer(this, 42, 56); + Shape129 = new ModelRendererTurbo(this, 42, 56); Shape129.addBox(0F, 0F, 0F, 1, 2, 3); Shape129.setRotationPoint(-3.5F, 15F, 9F); Shape129.setTextureSize(128, 128); Shape129.mirror = true; setRotation(Shape129, 0F, 0F, 0F); - Shape130 = new ModelRenderer(this, 42, 62); + Shape130 = new ModelRendererTurbo(this, 42, 62); Shape130.addBox(0F, 0F, 0F, 1, 2, 3); Shape130.setRotationPoint(2.5F, 15F, 9F); Shape130.setTextureSize(128, 128); Shape130.mirror = true; setRotation(Shape130, 0F, 0F, 0F); - Shape131 = new ModelRenderer(this, 90, 26); + Shape131 = new ModelRendererTurbo(this, 90, 26); Shape131.addBox(0F, 0F, 0F, 6, 8, 1); Shape131.setRotationPoint(-3F, 8.3F, 8F); Shape131.setTextureSize(128, 128); Shape131.mirror = true; setRotation(Shape131, 0F, 0F, 0F); - Shape132 = new ModelRenderer(this, 56, 27); + Shape132 = new ModelRendererTurbo(this, 56, 27); Shape132.addBox(0F, 0F, 0F, 1, 5, 3); Shape132.setRotationPoint(-3.6F, 9F, 8F); Shape132.setTextureSize(128, 128); Shape132.mirror = true; setRotation(Shape132, 0F, 0F, 0F); - Shape133 = new ModelRenderer(this, 56, 18); + Shape133 = new ModelRendererTurbo(this, 56, 18); Shape133.addBox(0F, 0F, 0F, 1, 5, 3); Shape133.setRotationPoint(2.6F, 9F, 8F); Shape133.setTextureSize(128, 128); Shape133.mirror = true; setRotation(Shape133, 0F, 0F, 0F); - Shape134 = new ModelRenderer(this, 100, 36); + Shape134 = new ModelRendererTurbo(this, 100, 36); Shape134.addBox(0F, 0F, 0F, 1, 8, 1); Shape134.setRotationPoint(-2F, 8.5F, 8.3F); Shape134.setTextureSize(128, 128); Shape134.mirror = true; setRotation(Shape134, 0F, 0F, 0F); - Shape135 = new ModelRenderer(this, 95, 36); + Shape135 = new ModelRendererTurbo(this, 95, 36); Shape135.addBox(0F, 0F, 0F, 1, 8, 1); Shape135.setRotationPoint(1F, 8.5F, 8.3F); Shape135.setTextureSize(128, 128); Shape135.mirror = true; setRotation(Shape135, 0F, 0F, 0F); - Shape136 = new ModelRenderer(this, 87, 72); + Shape136 = new ModelRendererTurbo(this, 87, 72); Shape136.addBox(0F, 0F, 0F, 2, 1, 2); Shape136.setRotationPoint(-1F, 15F, 9F); Shape136.setTextureSize(128, 128); Shape136.mirror = true; setRotation(Shape136, -0.8726646F, 0F, 0F); - Shape137 = new ModelRenderer(this, 44, 80); + Shape137 = new ModelRendererTurbo(this, 44, 80); Shape137.addBox(0F, 0F, 0F, 1, 1, 20); Shape137.setRotationPoint(-6.5F, 14F, -12F); Shape137.setTextureSize(128, 128); Shape137.mirror = true; setRotation(Shape137, 0F, 0F, 0F); - Shape138 = new ModelRenderer(this, 1, 80); + Shape138 = new ModelRendererTurbo(this, 1, 80); Shape138.addBox(0F, 0F, 0F, 1, 1, 20); Shape138.setRotationPoint(5.5F, 14F, -12F); Shape138.setTextureSize(128, 128); Shape138.mirror = true; setRotation(Shape138, 0F, 0F, 0F); - Shape139 = new ModelRenderer(this, 29, 102); + Shape139 = new ModelRendererTurbo(this, 29, 102); Shape139.addBox(0F, 0F, 0F, 11, 1, 1); Shape139.setRotationPoint(-5.5F, 14F, -12F); Shape139.setTextureSize(128, 128); Shape139.mirror = true; setRotation(Shape139, 0F, 0F, 0F); - Shape140 = new ModelRenderer(this, 26, 97); + Shape140 = new ModelRendererTurbo(this, 26, 97); Shape140.addBox(0F, 0F, 0F, 1, 0, 2); Shape140.setRotationPoint(-6.5F, 15.8F, 3.7F); Shape140.setTextureSize(128, 128); Shape140.mirror = true; setRotation(Shape140, -0.1745329F, 0F, 0F); - Shape141 = new ModelRenderer(this, 22, 97); + Shape141 = new ModelRendererTurbo(this, 22, 97); Shape141.addBox(0F, 0F, 0F, 1, 0, 2); Shape141.setRotationPoint(-6.5F, 15.8F, 8.3F); Shape141.setTextureSize(128, 128); Shape141.mirror = true; setRotation(Shape141, -2.96706F, 0F, 0F); - Shape142 = new ModelRenderer(this, 24, 94); + Shape142 = new ModelRendererTurbo(this, 24, 94); Shape142.addBox(0F, 0F, 0F, 1, 1, 1); Shape142.setRotationPoint(-6.5F, 16F, 5.5F); Shape142.setTextureSize(128, 128); Shape142.mirror = true; setRotation(Shape142, 0F, 0F, 0F); - Shape143 = new ModelRenderer(this, 29, 94); + Shape143 = new ModelRendererTurbo(this, 29, 94); Shape143.addBox(0F, 0F, 0F, 1, 1, 1); Shape143.setRotationPoint(-6.5F, 16F, -5.5F); Shape143.setTextureSize(128, 128); Shape143.mirror = true; setRotation(Shape143, 0F, 0F, 0F); - Shape144 = new ModelRenderer(this, 34, 97); + Shape144 = new ModelRendererTurbo(this, 34, 97); Shape144.addBox(0F, 0F, 0F, 1, 0, 2); Shape144.setRotationPoint(-6.5F, 15.8F, -7.3F); Shape144.setTextureSize(128, 128); Shape144.mirror = true; setRotation(Shape144, -0.1745329F, 0F, 0F); - Shape145 = new ModelRenderer(this, 30, 97); + Shape145 = new ModelRendererTurbo(this, 30, 97); Shape145.addBox(0F, 0F, 0F, 1, 0, 2); Shape145.setRotationPoint(-6.5F, 15.8F, -2.7F); Shape145.setTextureSize(128, 128); Shape145.mirror = true; setRotation(Shape145, -2.96706F, 0F, 0F); - Shape146 = new ModelRenderer(this, 59, 92); + Shape146 = new ModelRendererTurbo(this, 59, 92); Shape146.addBox(0F, 0F, 0F, 1, 1, 1); Shape146.setRotationPoint(5.5F, 16F, 5.5F); Shape146.setTextureSize(128, 128); Shape146.mirror = true; setRotation(Shape146, 0F, 0F, 0F); - Shape147 = new ModelRenderer(this, 59, 95); + Shape147 = new ModelRendererTurbo(this, 59, 95); Shape147.addBox(0F, 0F, 0F, 1, 1, 1); Shape147.setRotationPoint(5.5F, 16F, -5.5F); Shape147.setTextureSize(128, 128); Shape147.mirror = true; setRotation(Shape147, 0F, 0F, 0F); - Shape148 = new ModelRenderer(this, 42, 92); + Shape148 = new ModelRendererTurbo(this, 42, 92); Shape148.addBox(0F, 0F, 0F, 1, 0, 2); Shape148.setRotationPoint(5.5F, 15.8F, 8.3F); Shape148.setTextureSize(128, 128); Shape148.mirror = true; setRotation(Shape148, -2.96706F, 0F, 0F); - Shape149 = new ModelRenderer(this, 50, 92); + Shape149 = new ModelRendererTurbo(this, 50, 92); Shape149.addBox(0F, 0F, 0F, 1, 0, 2); Shape149.setRotationPoint(5.5F, 15.8F, -2.7F); Shape149.setTextureSize(128, 128); Shape149.mirror = true; setRotation(Shape149, -2.96706F, 0F, 0F); - Shape150 = new ModelRenderer(this, 46, 92); + Shape150 = new ModelRendererTurbo(this, 46, 92); Shape150.addBox(0F, 0F, 0F, 1, 0, 2); Shape150.setRotationPoint(5.5F, 15.8F, 3.7F); Shape150.setTextureSize(128, 128); Shape150.mirror = true; setRotation(Shape150, -0.1745329F, 0F, 0F); - Shape151 = new ModelRenderer(this, 54, 92); + Shape151 = new ModelRendererTurbo(this, 54, 92); Shape151.addBox(0F, 0F, 0F, 1, 0, 2); Shape151.setRotationPoint(5.5F, 15.8F, -7.3F); Shape151.setTextureSize(128, 128); Shape151.mirror = true; setRotation(Shape151, -0.1745329F, 0F, 0F); - Shape152 = new ModelRenderer(this, 0, 80); + Shape152 = new ModelRendererTurbo(this, 0, 80); Shape152.addBox(0F, 0F, 0F, 1, 5, 1); Shape152.setRotationPoint(-6.5F, 9F, 3F); Shape152.setTextureSize(128, 128); Shape152.mirror = true; setRotation(Shape152, 0F, 0F, 0F); - Shape153 = new ModelRenderer(this, 5, 80); + Shape153 = new ModelRendererTurbo(this, 5, 80); Shape153.addBox(0F, 0F, 0F, 1, 5, 1); Shape153.setRotationPoint(-6.5F, 9F, -8F); Shape153.setTextureSize(128, 128); Shape153.mirror = true; setRotation(Shape153, 0F, 0F, 0F); - Shape154 = new ModelRenderer(this, 0, 87); + Shape154 = new ModelRendererTurbo(this, 0, 87); Shape154.addBox(0F, 0F, 0F, 1, 5, 1); Shape154.setRotationPoint(5.5F, 9F, 3F); Shape154.setTextureSize(128, 128); Shape154.mirror = true; setRotation(Shape154, 0F, 0F, 0F); - Shape155 = new ModelRenderer(this, 5, 87); + Shape155 = new ModelRendererTurbo(this, 5, 87); Shape155.addBox(0F, 0F, 0F, 1, 5, 1); Shape155.setRotationPoint(5.5F, 9F, -8F); Shape155.setTextureSize(128, 128); Shape155.mirror = true; setRotation(Shape155, 0F, 0F, 0F); - Shape156 = new ModelRenderer(this, 85, 72); + Shape156 = new ModelRendererTurbo(this, 85, 72); Shape156.addBox(0F, 0F, 0F, 1, 1, 15); Shape156.setRotationPoint(-6.5F, 8F, -11.9F); Shape156.setTextureSize(128, 128); Shape156.mirror = true; setRotation(Shape156, 0F, 0F, 0F); - Shape157 = new ModelRenderer(this, 85, 55); + Shape157 = new ModelRendererTurbo(this, 85, 55); Shape157.addBox(0F, 0F, 0F, 1, 1, 15); Shape157.setRotationPoint(5.5F, 8F, -11.9F); Shape157.setTextureSize(128, 128); Shape157.mirror = true; setRotation(Shape157, 0F, 0F, 0F); - Shape158 = new ModelRenderer(this, 65, 0); + Shape158 = new ModelRendererTurbo(this, 65, 0); Shape158.addBox(0F, 0F, 0F, 1, 5, 10); Shape158.setRotationPoint(-6.4F, 9F, -7F); Shape158.setTextureSize(128, 128); Shape158.mirror = true; setRotation(Shape158, 0F, 0F, 0F); - Shape159 = new ModelRenderer(this, 0, 56); + Shape159 = new ModelRendererTurbo(this, 0, 56); Shape159.addBox(0F, 0F, 0F, 1, 5, 4); Shape159.setRotationPoint(-6.4F, 9F, -11.8F); Shape159.setTextureSize(128, 128); Shape159.mirror = true; setRotation(Shape159, 0F, 0F, 0F); - Shape160 = new ModelRenderer(this, 10, 80); + Shape160 = new ModelRendererTurbo(this, 10, 80); Shape160.addBox(0F, 0F, 0F, 1, 5, 4); Shape160.setRotationPoint(5.4F, 9F, -11.8F); Shape160.setTextureSize(128, 128); Shape160.mirror = true; setRotation(Shape160, 0F, 0F, 0F); - Shape161 = new ModelRenderer(this, 45, 39); + Shape161 = new ModelRendererTurbo(this, 45, 39); Shape161.addBox(0F, 0F, 0F, 4, 1, 8); Shape161.setRotationPoint(-6.5F, 8F, 3.1F); Shape161.setTextureSize(128, 128); Shape161.mirror = true; setRotation(Shape161, 0F, 0F, 0F); - Shape162 = new ModelRenderer(this, 72, 39); + Shape162 = new ModelRendererTurbo(this, 72, 39); Shape162.addBox(0F, 0F, 0F, 4, 1, 8); Shape162.setRotationPoint(2.5F, 8F, 3.1F); Shape162.setTextureSize(128, 128); Shape162.mirror = true; setRotation(Shape162, 0F, 0F, 0F); - Shape163 = new ModelRenderer(this, 88, 0); + Shape163 = new ModelRendererTurbo(this, 88, 0); Shape163.addBox(0F, 0F, 0F, 1, 5, 7); Shape163.setRotationPoint(-6.4F, 9F, 4F); Shape163.setTextureSize(128, 128); Shape163.mirror = true; setRotation(Shape163, 0F, 0F, 0F); - Shape164 = new ModelRenderer(this, 88, 13); + Shape164 = new ModelRendererTurbo(this, 88, 13); Shape164.addBox(0F, 0F, 0F, 1, 5, 7); Shape164.setRotationPoint(5.4F, 9F, 4F); Shape164.setTextureSize(128, 128); Shape164.mirror = true; setRotation(Shape164, 0F, 0F, 0F); - Shape165 = new ModelRenderer(this, 79, 18); + Shape165 = new ModelRendererTurbo(this, 79, 18); Shape165.addBox(0F, 0F, 0F, 2, 5, 1); Shape165.setRotationPoint(-5.5F, 9F, 10F); Shape165.setTextureSize(128, 128); Shape165.mirror = true; setRotation(Shape165, 0F, 0F, 0F); - Shape166 = new ModelRenderer(this, 67, 18); + Shape166 = new ModelRendererTurbo(this, 67, 18); Shape166.addBox(0F, 0F, 0F, 2, 5, 1); Shape166.setRotationPoint(3.5F, 9F, 10F); Shape166.setTextureSize(128, 128); Shape166.mirror = true; setRotation(Shape166, 0F, 0F, 0F); - Shape167 = new ModelRenderer(this, 0, 102); + Shape167 = new ModelRendererTurbo(this, 0, 102); Shape167.addBox(0F, 0F, 0F, 13, 1, 1); Shape167.setRotationPoint(-6.5F, 8F, -11.9F); Shape167.setTextureSize(128, 128); Shape167.mirror = true; setRotation(Shape167, 0F, 0F, 0F); - Shape168 = new ModelRenderer(this, 65, 32); + Shape168 = new ModelRendererTurbo(this, 65, 32); Shape168.addBox(0F, 0F, 0F, 11, 5, 1); Shape168.setRotationPoint(-5.5F, 9F, -11.8F); Shape168.setTextureSize(128, 128); Shape168.mirror = true; setRotation(Shape168, 0F, 0F, 0F); - Shape169 = new ModelRenderer(this, 43, 51); + Shape169 = new ModelRendererTurbo(this, 43, 51); Shape169.addBox(0F, 0F, 0F, 0, 3, 21); Shape169.setRotationPoint(-7.6F, 6F, -11F); Shape169.setTextureSize(128, 128); Shape169.mirror = true; setRotation(Shape169, -0.0523599F, 0F, -0.5061455F); - Shape170 = new ModelRenderer(this, 0, 51); + Shape170 = new ModelRendererTurbo(this, 0, 51); Shape170.addBox(0F, 0F, 0F, 0, 3, 21); Shape170.setRotationPoint(7.6F, 6F, -11F); Shape170.setTextureSize(128, 128); Shape170.mirror = true; setRotation(Shape170, -0.0523599F, 0F, 0.5061455F); - Shape171 = new ModelRenderer(this, 0, 76); + Shape171 = new ModelRendererTurbo(this, 0, 76); Shape171.addBox(0F, 0F, 0F, 13, 3, 0); Shape171.setRotationPoint(-6.5F, 6F, -13F); Shape171.setTextureSize(128, 128); Shape171.mirror = true; setRotation(Shape171, 0.5235988F, 0F, 0F); - Shape172 = new ModelRenderer(this, 52, 56); + Shape172 = new ModelRendererTurbo(this, 52, 56); Shape172.addBox(0F, 0F, 0F, 0, 3, 1); Shape172.setRotationPoint(-7.6F, 6F, -11.9F); Shape172.setTextureSize(128, 128); Shape172.mirror = true; setRotation(Shape172, 0F, 0F, -0.5061455F); - Shape173 = new ModelRenderer(this, 52, 61); + Shape173 = new ModelRendererTurbo(this, 52, 61); Shape173.addBox(0F, 0F, 0F, 0, 3, 1); Shape173.setRotationPoint(7.6F, 6F, -11.9F); Shape173.setTextureSize(128, 128); Shape173.mirror = true; setRotation(Shape173, 0F, 0F, 0.5061455F); - Shape174 = new ModelRenderer(this, 0, 56); + Shape174 = new ModelRendererTurbo(this, 0, 56); Shape174.addBox(0F, 0F, 0F, 11, 1, 14); Shape174.setRotationPoint(-5.5F, 8F, -10.9F); Shape174.setTextureSize(128, 128); Shape174.mirror = true; setRotation(Shape174, 0F, 0F, 0F); - Shape175 = new ModelRenderer(this, 37, 49); + Shape175 = new ModelRendererTurbo(this, 37, 49); Shape175.addBox(0F, 0F, 0F, 12, 1, 19); Shape175.setRotationPoint(-6F, 14F, -11F); Shape175.setTextureSize(128, 128); Shape175.mirror = true; setRotation(Shape175, 0F, 0F, 0F); - Shape176 = new ModelRenderer(this, 71, 39); + Shape176 = new ModelRendererTurbo(this, 71, 39); Shape176.addBox(0F, 0F, 0F, 2, 2, 2); Shape176.setRotationPoint(-4.5F, 6.5F, -10F); Shape176.setTextureSize(128, 128); Shape176.mirror = true; setRotation(Shape176, 0F, 0F, 0F); - Shape177 = new ModelRenderer(this, 62, 39); + Shape177 = new ModelRendererTurbo(this, 62, 39); Shape177.addBox(0F, 0F, 0F, 2, 2, 2); Shape177.setRotationPoint(2.5F, 6.5F, -10F); Shape177.setTextureSize(128, 128); Shape177.mirror = true; setRotation(Shape177, 0F, 0F, 0F); - Shape178 = new ModelRenderer(this, 79, 76); + Shape178 = new ModelRendererTurbo(this, 79, 76); Shape178.addBox(0F, 0F, 0F, 6, 1, 4); Shape178.setRotationPoint(-3F, 8F, 5F); Shape178.setTextureSize(128, 128); Shape178.mirror = true; setRotation(Shape178, -0.2268928F, 0F, 0F); - Shape179 = new ModelRenderer(this, 62, 76); + Shape179 = new ModelRendererTurbo(this, 62, 76); Shape179.addBox(0F, 0F, 0F, 6, 1, 2); Shape179.setRotationPoint(-3F, 8.5F, 3.1F); Shape179.setTextureSize(128, 128); Shape179.mirror = true; setRotation(Shape179, 0.2443461F, 0F, 0F); - Shape180 = new ModelRenderer(this, 65, 16); + Shape180 = new ModelRendererTurbo(this, 65, 16); Shape180.addBox(0F, 0F, 0F, 1, 5, 10); Shape180.setRotationPoint(5.4F, 9F, -7F); Shape180.setTextureSize(128, 128); @@ -1456,7 +1456,7 @@ public void render(Entity entity, float f, float f1, float f2, float f3, float f Shape180.render(f5); } - private void setRotation(ModelRenderer model, float x, float y, float z) { + private void setRotation(ModelRendererTurbo model, float x, float y, float z) { model.rotateAngleX = x; model.rotateAngleY = y; model.rotateAngleZ = z; diff --git a/src/main/java/train/client/render/models/ModelTenderBR01_DB.java b/src/main/java/train/client/render/models/ModelTenderBR01_DB.java index 055fc98524..685e3ab55b 100644 --- a/src/main/java/train/client/render/models/ModelTenderBR01_DB.java +++ b/src/main/java/train/client/render/models/ModelTenderBR01_DB.java @@ -3,7 +3,7 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.core.ClientProxy; import train.client.render.CustomModelRenderer; import train.common.entity.rollingStock.EntityTenderBR01_DB; @@ -353,7 +353,7 @@ public ModelTenderBR01_DB() { public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { if (ClientProxy.isHoliday()) { - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, "textures/trains/tenderBR01_DB_winter.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, "textures/trains/tenderBR01_DB_winter.png")); } box.render(f5); diff --git a/src/main/java/train/client/render/models/ModelTenderC41.java b/src/main/java/train/client/render/models/ModelTenderC41.java index 8a3bd4b919..d1ca64fa69 100644 --- a/src/main/java/train/client/render/models/ModelTenderC41.java +++ b/src/main/java/train/client/render/models/ModelTenderC41.java @@ -9,8 +9,8 @@ package train.client.render.models; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelTenderC41 extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelTenderC62Class.java b/src/main/java/train/client/render/models/ModelTenderC62Class.java index d6fd3d5781..20d8fba253 100644 --- a/src/main/java/train/client/render/models/ModelTenderC62Class.java +++ b/src/main/java/train/client/render/models/ModelTenderC62Class.java @@ -1,7 +1,7 @@ package train.client.render.models; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelTenderC62Class extends ModelConverter { diff --git a/src/main/java/train/client/render/models/ModelTenderEr_Ussr.java b/src/main/java/train/client/render/models/ModelTenderEr_Ussr.java index 47c2666318..373d2f4d67 100644 --- a/src/main/java/train/client/render/models/ModelTenderEr_Ussr.java +++ b/src/main/java/train/client/render/models/ModelTenderEr_Ussr.java @@ -2,7 +2,7 @@ import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; import train.common.api.Freight; diff --git a/src/main/java/train/client/render/models/ModelTenderHeavy.java b/src/main/java/train/client/render/models/ModelTenderHeavy.java index a126913c74..d762782b3b 100644 --- a/src/main/java/train/client/render/models/ModelTenderHeavy.java +++ b/src/main/java/train/client/render/models/ModelTenderHeavy.java @@ -1,7 +1,7 @@ package train.client.render.models; //tender import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; public class ModelTenderHeavy extends ModelBase diff --git a/src/main/java/train/client/render/models/ModelTenderU57.java b/src/main/java/train/client/render/models/ModelTenderU57.java index 5d80dd4cec..b705ddd36e 100644 --- a/src/main/java/train/client/render/models/ModelTenderU57.java +++ b/src/main/java/train/client/render/models/ModelTenderU57.java @@ -1,7 +1,7 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; public class ModelTenderU57 extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelTipperUK.java b/src/main/java/train/client/render/models/ModelTipperUK.java index ee7280c119..eaecf8dd9a 100644 --- a/src/main/java/train/client/render/models/ModelTipperUK.java +++ b/src/main/java/train/client/render/models/ModelTipperUK.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelTipperUK extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelTram.java b/src/main/java/train/client/render/models/ModelTram.java index bb20015894..383dd49c21 100644 --- a/src/main/java/train/client/render/models/ModelTram.java +++ b/src/main/java/train/client/render/models/ModelTram.java @@ -2,7 +2,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; public class ModelTram extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelTramNY.java b/src/main/java/train/client/render/models/ModelTramNY.java index cf5cb6c0b8..8a618c368b 100644 --- a/src/main/java/train/client/render/models/ModelTramNY.java +++ b/src/main/java/train/client/render/models/ModelTramNY.java @@ -1,7 +1,7 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; import train.common.core.handlers.ConfigHandler; diff --git a/src/main/java/train/client/render/models/ModelTrimountTrucc.java b/src/main/java/train/client/render/models/ModelTrimountTrucc.java index 3190a4c5b8..91511c6414 100644 --- a/src/main/java/train/client/render/models/ModelTrimountTrucc.java +++ b/src/main/java/train/client/render/models/ModelTrimountTrucc.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelTrimountTrucc extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelTypeA.java b/src/main/java/train/client/render/models/ModelTypeA.java index cb0bfe9cde..867bda9827 100644 --- a/src/main/java/train/client/render/models/ModelTypeA.java +++ b/src/main/java/train/client/render/models/ModelTypeA.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelTypeA extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelTypeB.java b/src/main/java/train/client/render/models/ModelTypeB.java index 6ad11b4f0a..2fff0bef42 100644 --- a/src/main/java/train/client/render/models/ModelTypeB.java +++ b/src/main/java/train/client/render/models/ModelTypeB.java @@ -9,8 +9,8 @@ package train.client.render.models; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelTypeB extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelTypeBnew.java b/src/main/java/train/client/render/models/ModelTypeBnew.java index bdd6d86588..2e4c281178 100644 --- a/src/main/java/train/client/render/models/ModelTypeBnew.java +++ b/src/main/java/train/client/render/models/ModelTypeBnew.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelTypeBnew extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelU18B.java b/src/main/java/train/client/render/models/ModelU18B.java index d3040ac986..ce88b2ab1c 100644 --- a/src/main/java/train/client/render/models/ModelU18B.java +++ b/src/main/java/train/client/render/models/ModelU18B.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelU23B.java b/src/main/java/train/client/render/models/ModelU23B.java index 5436cd6df2..81e9315027 100644 --- a/src/main/java/train/client/render/models/ModelU23B.java +++ b/src/main/java/train/client/render/models/ModelU23B.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelU36C.java b/src/main/java/train/client/render/models/ModelU36C.java index 8c1095b5fb..e1a2de37c4 100644 --- a/src/main/java/train/client/render/models/ModelU36C.java +++ b/src/main/java/train/client/render/models/ModelU36C.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelUSATCUK.java b/src/main/java/train/client/render/models/ModelUSATCUK.java index f10c525b8d..e719144873 100644 --- a/src/main/java/train/client/render/models/ModelUSATCUK.java +++ b/src/main/java/train/client/render/models/ModelUSATCUK.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located import net.minecraft.entity.Entity; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelUSATCUK extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelUSATCUS.java b/src/main/java/train/client/render/models/ModelUSATCUS.java index 09ae228765..3eb78b0059 100644 --- a/src/main/java/train/client/render/models/ModelUSATCUS.java +++ b/src/main/java/train/client/render/models/ModelUSATCUS.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located import net.minecraft.entity.Entity; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelUSATCUS extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelV60.java b/src/main/java/train/client/render/models/ModelV60.java index 68fcff19c0..6c6938de12 100644 --- a/src/main/java/train/client/render/models/ModelV60.java +++ b/src/main/java/train/client/render/models/ModelV60.java @@ -2,7 +2,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; public class ModelV60 extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelVB040.java b/src/main/java/train/client/render/models/ModelVB040.java index 59b926ee71..6db09dd5f0 100644 --- a/src/main/java/train/client/render/models/ModelVB040.java +++ b/src/main/java/train/client/render/models/ModelVB040.java @@ -10,8 +10,8 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelVB040 extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelVBShay.java b/src/main/java/train/client/render/models/ModelVBShay.java index e43e00d1a3..9e29eb7e87 100644 --- a/src/main/java/train/client/render/models/ModelVBShay.java +++ b/src/main/java/train/client/render/models/ModelVBShay.java @@ -9,8 +9,8 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelVBShay extends ModelBase { int textureX = 512; diff --git a/src/main/java/train/client/render/models/ModelVL10.java b/src/main/java/train/client/render/models/ModelVL10.java index 496169c806..903aae85b4 100644 --- a/src/main/java/train/client/render/models/ModelVL10.java +++ b/src/main/java/train/client/render/models/ModelVL10.java @@ -2,7 +2,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; public class ModelVL10 extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelVentilatedVan.java b/src/main/java/train/client/render/models/ModelVentilatedVan.java index 9e2b072f1a..d0520b8def 100644 --- a/src/main/java/train/client/render/models/ModelVentilatedVan.java +++ b/src/main/java/train/client/render/models/ModelVentilatedVan.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelVentilatedVan extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelVersaLongi.java b/src/main/java/train/client/render/models/ModelVersaLongi.java index 9a1e610fd4..769954c910 100644 --- a/src/main/java/train/client/render/models/ModelVersaLongi.java +++ b/src/main/java/train/client/render/models/ModelVersaLongi.java @@ -12,9 +12,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.api.Freight; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelVersaTrans.java b/src/main/java/train/client/render/models/ModelVersaTrans.java index 514fd3c2df..370b6fad13 100644 --- a/src/main/java/train/client/render/models/ModelVersaTrans.java +++ b/src/main/java/train/client/render/models/ModelVersaTrans.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.api.Freight; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelVertiBoi2.java b/src/main/java/train/client/render/models/ModelVertiBoi2.java index 4891cad707..60588bace3 100644 --- a/src/main/java/train/client/render/models/ModelVertiBoi2.java +++ b/src/main/java/train/client/render/models/ModelVertiBoi2.java @@ -11,8 +11,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelVertiBoi2 extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelWLs40.java b/src/main/java/train/client/render/models/ModelWLs40.java index 836190f6c4..d3295a1743 100644 --- a/src/main/java/train/client/render/models/ModelWLs40.java +++ b/src/main/java/train/client/render/models/ModelWLs40.java @@ -11,8 +11,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelWLs40 extends ModelBase { @@ -1880,10 +1880,10 @@ public void render(Entity entity, float f, float f1, float f2, float f3, float f for (ModelRendererTurbo mrt : wls40Model) { if (mrt.boxName.equals("lamp")) { Minecraft.getMinecraft().entityRenderer.disableLightmap(1D); - mrt.render(f5, false); + mrt.render(f5); Minecraft.getMinecraft().entityRenderer.enableLightmap(1D); } else { - mrt.render(f5, false); + mrt.render(f5); } } } diff --git a/src/main/java/train/client/render/models/ModelWVcaboose.java b/src/main/java/train/client/render/models/ModelWVcaboose.java index 06d5c82179..76873bef6e 100644 --- a/src/main/java/train/client/render/models/ModelWVcaboose.java +++ b/src/main/java/train/client/render/models/ModelWVcaboose.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.library.Info; public class ModelWVcaboose extends ModelConverter //Same as Filename diff --git a/src/main/java/train/client/render/models/ModelWWCP40FootBox.java b/src/main/java/train/client/render/models/ModelWWCP40FootBox.java index 43d36e540c..973face365 100644 --- a/src/main/java/train/client/render/models/ModelWWCP40FootBox.java +++ b/src/main/java/train/client/render/models/ModelWWCP40FootBox.java @@ -12,9 +12,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.library.Info; public class ModelWWCP40FootBox extends ModelConverter //Same as Filename diff --git a/src/main/java/train/client/render/models/ModelWWCPBlomberg.java b/src/main/java/train/client/render/models/ModelWWCPBlomberg.java index 92db819d5e..42d8d09146 100644 --- a/src/main/java/train/client/render/models/ModelWWCPBlomberg.java +++ b/src/main/java/train/client/render/models/ModelWWCPBlomberg.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelWWCPBlomberg extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelWWCPClass062T.java b/src/main/java/train/client/render/models/ModelWWCPClass062T.java index 764442ae04..95270e59d6 100644 --- a/src/main/java/train/client/render/models/ModelWWCPClass062T.java +++ b/src/main/java/train/client/render/models/ModelWWCPClass062T.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelWWCPClass062T extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelWWCPFreightTruck.java b/src/main/java/train/client/render/models/ModelWWCPFreightTruck.java index 55c010e639..9e4526a7b0 100644 --- a/src/main/java/train/client/render/models/ModelWWCPFreightTruck.java +++ b/src/main/java/train/client/render/models/ModelWWCPFreightTruck.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelWWCPFreightTruck extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelWWCPGP7.java b/src/main/java/train/client/render/models/ModelWWCPGP7.java index cef0e133a6..678dccc343 100644 --- a/src/main/java/train/client/render/models/ModelWWCPGP7.java +++ b/src/main/java/train/client/render/models/ModelWWCPGP7.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelWagon.java b/src/main/java/train/client/render/models/ModelWagon.java index 500842db35..cdb986b73f 100644 --- a/src/main/java/train/client/render/models/ModelWagon.java +++ b/src/main/java/train/client/render/models/ModelWagon.java @@ -1,7 +1,7 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; import train.common.core.handlers.ConfigHandler; diff --git a/src/main/java/train/client/render/models/ModelWatertransp.java b/src/main/java/train/client/render/models/ModelWatertransp.java index 3e36cfe0e9..7bf05fd482 100644 --- a/src/main/java/train/client/render/models/ModelWatertransp.java +++ b/src/main/java/train/client/render/models/ModelWatertransp.java @@ -3,7 +3,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; import train.common.api.LiquidTank; diff --git a/src/main/java/train/client/render/models/ModelWellcar.java b/src/main/java/train/client/render/models/ModelWellcar.java index 3e1bd125be..bb0c6dd895 100644 --- a/src/main/java/train/client/render/models/ModelWellcar.java +++ b/src/main/java/train/client/render/models/ModelWellcar.java @@ -12,9 +12,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.library.Info; public class ModelWellcar extends ModelBase diff --git a/src/main/java/train/client/render/models/ModelWellcarBogie.java b/src/main/java/train/client/render/models/ModelWellcarBogie.java index 287b979ef2..f9c0e35e2e 100644 --- a/src/main/java/train/client/render/models/ModelWellcarBogie.java +++ b/src/main/java/train/client/render/models/ModelWellcarBogie.java @@ -10,8 +10,8 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelBase; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelWellcarBogie extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelWood.java b/src/main/java/train/client/render/models/ModelWood.java index dce6e1a24c..c9f714e441 100644 --- a/src/main/java/train/client/render/models/ModelWood.java +++ b/src/main/java/train/client/render/models/ModelWood.java @@ -1,7 +1,7 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; import train.common.api.Freight; diff --git a/src/main/java/train/client/render/models/ModelWoodchipHopper.java b/src/main/java/train/client/render/models/ModelWoodchipHopper.java index 97660cec42..0f876bee01 100644 --- a/src/main/java/train/client/render/models/ModelWoodchipHopper.java +++ b/src/main/java/train/client/render/models/ModelWoodchipHopper.java @@ -3,9 +3,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModelWoodenTramCoach.java b/src/main/java/train/client/render/models/ModelWoodenTramCoach.java index d43cd32532..d3fa4c5e85 100644 --- a/src/main/java/train/client/render/models/ModelWoodenTramCoach.java +++ b/src/main/java/train/client/render/models/ModelWoodenTramCoach.java @@ -9,8 +9,8 @@ package train.client.render.models; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelWoodenTramCoach extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModelWorkCaboose.java b/src/main/java/train/client/render/models/ModelWorkCaboose.java index 60f403a225..eaf2473f35 100644 --- a/src/main/java/train/client/render/models/ModelWorkCaboose.java +++ b/src/main/java/train/client/render/models/ModelWorkCaboose.java @@ -1,7 +1,7 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; import train.common.core.handlers.ConfigHandler; diff --git a/src/main/java/train/client/render/models/ModelWorkCart.java b/src/main/java/train/client/render/models/ModelWorkCart.java index 5c98a35ece..6326205444 100644 --- a/src/main/java/train/client/render/models/ModelWorkCart.java +++ b/src/main/java/train/client/render/models/ModelWorkCart.java @@ -1,7 +1,7 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; public class ModelWorkCart extends ModelBase { diff --git a/src/main/java/train/client/render/models/ModelZeppelinOneBalloon.java b/src/main/java/train/client/render/models/ModelZeppelinOneBalloon.java index 3e01fc5197..411ef38e12 100644 --- a/src/main/java/train/client/render/models/ModelZeppelinOneBalloon.java +++ b/src/main/java/train/client/render/models/ModelZeppelinOneBalloon.java @@ -1,7 +1,7 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; import train.common.entity.zeppelin.EntityZeppelinOneBalloon; diff --git a/src/main/java/train/client/render/models/ModelZeppelinTwoBalloons.java b/src/main/java/train/client/render/models/ModelZeppelinTwoBalloons.java index 640def96c1..10052165d6 100644 --- a/src/main/java/train/client/render/models/ModelZeppelinTwoBalloons.java +++ b/src/main/java/train/client/render/models/ModelZeppelinTwoBalloons.java @@ -1,7 +1,7 @@ package train.client.render.models; import net.minecraft.entity.Entity; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; import train.common.core.handlers.ConfigHandler; import train.common.entity.zeppelin.EntityZeppelinTwoBalloons; diff --git a/src/main/java/train/client/render/models/Modelasteri.java b/src/main/java/train/client/render/models/Modelasteri.java index 4c81fd23e6..b95d2b6eec 100644 --- a/src/main/java/train/client/render/models/Modelasteri.java +++ b/src/main/java/train/client/render/models/Modelasteri.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class Modelasteri extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/Modelbuckeye3axletruck.java b/src/main/java/train/client/render/models/Modelbuckeye3axletruck.java index eaeb2feb9e..48d908ccfa 100644 --- a/src/main/java/train/client/render/models/Modelbuckeye3axletruck.java +++ b/src/main/java/train/client/render/models/Modelbuckeye3axletruck.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class Modelbuckeye3axletruck extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/Modelcaboosetruck.java b/src/main/java/train/client/render/models/Modelcaboosetruck.java index faecb4a5a3..1bd5213333 100644 --- a/src/main/java/train/client/render/models/Modelcaboosetruck.java +++ b/src/main/java/train/client/render/models/Modelcaboosetruck.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class Modelcaboosetruck extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/Modelcq310loco.java b/src/main/java/train/client/render/models/Modelcq310loco.java index 72e3c2da89..1ccc9bb001 100644 --- a/src/main/java/train/client/render/models/Modelcq310loco.java +++ b/src/main/java/train/client/render/models/Modelcq310loco.java @@ -9,8 +9,8 @@ package train.client.render.models; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class Modelcq310loco extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/Modelfeve3300front.java b/src/main/java/train/client/render/models/Modelfeve3300front.java index f3b61832c9..f564381e44 100644 --- a/src/main/java/train/client/render/models/Modelfeve3300front.java +++ b/src/main/java/train/client/render/models/Modelfeve3300front.java @@ -12,8 +12,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class Modelfeve3300front extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/Modelfeve3300rear.java b/src/main/java/train/client/render/models/Modelfeve3300rear.java index 7358bbae9f..a29e60f9b7 100644 --- a/src/main/java/train/client/render/models/Modelfeve3300rear.java +++ b/src/main/java/train/client/render/models/Modelfeve3300rear.java @@ -11,8 +11,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class Modelfeve3300rear extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/Modelhicube60foot.java b/src/main/java/train/client/render/models/Modelhicube60foot.java index 05f751d57d..6bfd345efc 100644 --- a/src/main/java/train/client/render/models/Modelhicube60foot.java +++ b/src/main/java/train/client/render/models/Modelhicube60foot.java @@ -12,9 +12,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/ModellocoC11.java b/src/main/java/train/client/render/models/ModellocoC11.java index 38955436c8..1ae1bea50a 100644 --- a/src/main/java/train/client/render/models/ModellocoC11.java +++ b/src/main/java/train/client/render/models/ModellocoC11.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.library.Info; public class ModellocoC11 extends ModelConverter //Same as Filename diff --git a/src/main/java/train/client/render/models/ModellocoC11truckFront.java b/src/main/java/train/client/render/models/ModellocoC11truckFront.java index e11a833edb..48f56b1fdb 100644 --- a/src/main/java/train/client/render/models/ModellocoC11truckFront.java +++ b/src/main/java/train/client/render/models/ModellocoC11truckFront.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModellocoC11truckFront extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/ModellocoC11truckRear.java b/src/main/java/train/client/render/models/ModellocoC11truckRear.java index eb687855c8..3566a4e240 100644 --- a/src/main/java/train/client/render/models/ModellocoC11truckRear.java +++ b/src/main/java/train/client/render/models/ModellocoC11truckRear.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModellocoC11truckRear extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/Modelnewgevotruck.java b/src/main/java/train/client/render/models/Modelnewgevotruck.java index 5669bb5815..e4573acf9d 100644 --- a/src/main/java/train/client/render/models/Modelnewgevotruck.java +++ b/src/main/java/train/client/render/models/Modelnewgevotruck.java @@ -10,8 +10,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class Modelnewgevotruck extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/Modelrenfe446end.java b/src/main/java/train/client/render/models/Modelrenfe446end.java index 3378ed8c09..554ca04c95 100644 --- a/src/main/java/train/client/render/models/Modelrenfe446end.java +++ b/src/main/java/train/client/render/models/Modelrenfe446end.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/Modelrenfe446middle.java b/src/main/java/train/client/render/models/Modelrenfe446middle.java index 91bf3ee776..f24a86d417 100644 --- a/src/main/java/train/client/render/models/Modelrenfe446middle.java +++ b/src/main/java/train/client/render/models/Modelrenfe446middle.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/Modelrenfe450endA.java b/src/main/java/train/client/render/models/Modelrenfe450endA.java index 0742fd8ec7..baebd3527e 100644 --- a/src/main/java/train/client/render/models/Modelrenfe450endA.java +++ b/src/main/java/train/client/render/models/Modelrenfe450endA.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/Modelrenfe450endB.java b/src/main/java/train/client/render/models/Modelrenfe450endB.java index a7ccaf3e61..8f48807c94 100644 --- a/src/main/java/train/client/render/models/Modelrenfe450endB.java +++ b/src/main/java/train/client/render/models/Modelrenfe450endB.java @@ -13,9 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/Modelrenfe450middle.java b/src/main/java/train/client/render/models/Modelrenfe450middle.java index f613c845a8..3aac1733a9 100644 --- a/src/main/java/train/client/render/models/Modelrenfe450middle.java +++ b/src/main/java/train/client/render/models/Modelrenfe450middle.java @@ -12,9 +12,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.api.AbstractTrains; import train.common.library.Info; diff --git a/src/main/java/train/client/render/models/Modelrenfebogie.java b/src/main/java/train/client/render/models/Modelrenfebogie.java index 4518fc299d..bd8713a8b7 100644 --- a/src/main/java/train/client/render/models/Modelrenfebogie.java +++ b/src/main/java/train/client/render/models/Modelrenfebogie.java @@ -9,8 +9,8 @@ package train.client.render.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class Modelrenfebogie extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/SM42.java b/src/main/java/train/client/render/models/SM42.java index 6a97a86466..742914cebd 100644 --- a/src/main/java/train/client/render/models/SM42.java +++ b/src/main/java/train/client/render/models/SM42.java @@ -7,9 +7,9 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; -import tmt.Tessellator; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Tessellator; import train.common.library.Info; /** This file was exported via the (Default) FlansMod Exporter of
@@ -2673,7 +2673,7 @@ public SM42(){ bodyModel[618].setRotationPoint(11.75f, 2.0f, -9.0f); bodyModel[619] = new ModelRendererTurbo(this, 501, 173, textureX, textureY); - bodyModel[619].flip = true; + bodyModel[619].mirror = true; bodyModel[619].addCylinder(0, 0, 0, 2, 16, 10, 1.1875f, 1.1875f, 1); bodyModel[619].setRotationPoint(1.1875f, 4.375f, -8.0f); @@ -2738,22 +2738,22 @@ public SM42(){ bodyModel[634].setRotationPoint(6.75f, 6.0f, -9.0f); bodyModel[635] = new ModelRendererTurbo(this, 84, 27, textureX, textureY); - bodyModel[635].flip = true; + bodyModel[635].mirror = true; bodyModel[635].addCylinder(0, 0, 0, 2, 1, 10, 1.1875f, 1.0625f, 1); bodyModel[635].setRotationPoint(1.1875f, 4.375f, -9.0f); bodyModel[636] = new ModelRendererTurbo(this, 75, 27, textureX, textureY); - bodyModel[636].flip = true; + bodyModel[636].mirror = true; bodyModel[636].addCylinder(0, 0, 0, 2, 1, 10, 1.0625f, 0.625f, 1); bodyModel[636].setRotationPoint(1.1875f, 4.375f, -9.75f); bodyModel[637] = new ModelRendererTurbo(this, 66, 27, textureX, textureY); - bodyModel[637].flip = true; + bodyModel[637].mirror = true; bodyModel[637].addCylinder(0, 0, 0, 2, 1, 10, 1.0625f, 1.1875f, 1); bodyModel[637].setRotationPoint(1.1875f, 4.375f, 7.75f); bodyModel[638] = new ModelRendererTurbo(this, 234, 13, textureX, textureY); - bodyModel[638].flip = true; + bodyModel[638].mirror = true; bodyModel[638].addCylinder(0, 0, 0, 2, 1, 10, 0.625f, 1.0625f, 1); bodyModel[638].setRotationPoint(1.1875f, 4.375f, 8.0f); diff --git a/src/main/java/train/client/render/models/SteamCrane.java b/src/main/java/train/client/render/models/SteamCrane.java index 64afe77da8..b555cd80bc 100644 --- a/src/main/java/train/client/render/models/SteamCrane.java +++ b/src/main/java/train/client/render/models/SteamCrane.java @@ -4,8 +4,8 @@ //Using PER-GROUP-INIT mode with limit '500'! package train.client.render.models; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; /** This file was exported via the (Default) FlansMod Exporter of
* FMT (Fex's Modelling Toolbox) v.2.6.5 © 2021 - Fexcraft.net
diff --git a/src/main/java/train/client/render/models/blocks/ModelAmericanStopper.java b/src/main/java/train/client/render/models/blocks/ModelAmericanStopper.java index e4fbd67cd8..fb35f5d358 100644 --- a/src/main/java/train/client/render/models/blocks/ModelAmericanStopper.java +++ b/src/main/java/train/client/render/models/blocks/ModelAmericanStopper.java @@ -11,7 +11,7 @@ import net.minecraftforge.client.model.AdvancedModelLoader; import net.minecraftforge.client.model.IModelCustom; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.common.library.Info; public class ModelAmericanStopper extends ModelBase { @@ -44,7 +44,7 @@ public void render(float f5, int meta) { GL11.glPushMatrix(); GL11.glTranslatef(0, 0, 0); GL11.glRotatef(90, 0, 1, 0); - tmt.Tessellator + fexcraft.tmt.slim.Tessellator .bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "american_stopper.png")); GL11.glColor4f(1, 1, 1, 1); track.renderAll(); @@ -55,7 +55,7 @@ public void render(float f5, int meta) { public void render2(float f5) { GL11.glRotatef(90, 0, 1, 0); - tmt.Tessellator + fexcraft.tmt.slim.Tessellator .bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "american_stopper.png")); GL11.glColor4f(1, 1, 1, 1); track.renderAll(); diff --git a/src/main/java/train/client/render/models/blocks/ModelBlockSignal.java b/src/main/java/train/client/render/models/blocks/ModelBlockSignal.java index 077d2e6669..3f49befc29 100644 --- a/src/main/java/train/client/render/models/blocks/ModelBlockSignal.java +++ b/src/main/java/train/client/render/models/blocks/ModelBlockSignal.java @@ -2,7 +2,7 @@ import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; public class ModelBlockSignal extends ModelBase { diff --git a/src/main/java/train/client/render/models/blocks/ModelBridgePillar.java b/src/main/java/train/client/render/models/blocks/ModelBridgePillar.java index b9264844d8..d0bafb4995 100644 --- a/src/main/java/train/client/render/models/blocks/ModelBridgePillar.java +++ b/src/main/java/train/client/render/models/blocks/ModelBridgePillar.java @@ -7,8 +7,8 @@ package train.client.render.models.blocks; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelBridgePillar extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/blocks/ModelEmbeddedStopper.java b/src/main/java/train/client/render/models/blocks/ModelEmbeddedStopper.java index 9c495ac46a..19ae6c72e3 100644 --- a/src/main/java/train/client/render/models/blocks/ModelEmbeddedStopper.java +++ b/src/main/java/train/client/render/models/blocks/ModelEmbeddedStopper.java @@ -11,7 +11,7 @@ import net.minecraftforge.client.model.AdvancedModelLoader; import net.minecraftforge.client.model.IModelCustom; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; import train.common.library.Info; @@ -102,7 +102,7 @@ public void render(float f5, int meta) { GL11.glPushMatrix(); GL11.glTranslatef(0, 0, 0); GL11.glRotatef(90, 0, 1, 0); - tmt.Tessellator + fexcraft.tmt.slim.Tessellator .bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_embedded.png")); GL11.glColor4f(1, 1, 1, 1); track.renderAll(); @@ -120,7 +120,7 @@ public void render2(float f5) { // box4.render(f5); box5.render(f5); GL11.glRotatef(90, 0, 1, 0); - tmt.Tessellator + fexcraft.tmt.slim.Tessellator .bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_embedded.png")); GL11.glColor4f(1, 1, 1, 1); track.renderAll(); diff --git a/src/main/java/train/client/render/models/blocks/ModelGeneratorDiesel.java b/src/main/java/train/client/render/models/blocks/ModelGeneratorDiesel.java index 5e8309f1bb..0700e1e6d1 100644 --- a/src/main/java/train/client/render/models/blocks/ModelGeneratorDiesel.java +++ b/src/main/java/train/client/render/models/blocks/ModelGeneratorDiesel.java @@ -8,7 +8,7 @@ package train.client.render.models.blocks; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; public class ModelGeneratorDiesel extends ModelBase { diff --git a/src/main/java/train/client/render/models/blocks/ModelLantern.java b/src/main/java/train/client/render/models/blocks/ModelLantern.java index f49475d86f..d211a41412 100644 --- a/src/main/java/train/client/render/models/blocks/ModelLantern.java +++ b/src/main/java/train/client/render/models/blocks/ModelLantern.java @@ -49,7 +49,7 @@ public void render(TileLantern lantern, double x, double y, double z) { GL11.glScalef(0.5f, 0.5f, 0.5f); // Bind the texture, so that OpenGL properly textures our block. - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation,Info.modelTexPrefix + "lantern_uv_draw_2.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation,Info.modelTexPrefix + "lantern_uv_draw_2.png")); int j = lantern.getRandomColor(); //System.out.println(j); float f1 = 1.0F; diff --git a/src/main/java/train/client/render/models/blocks/ModelLargeSlopeTCTrack.java b/src/main/java/train/client/render/models/blocks/ModelLargeSlopeTCTrack.java index 8ae44bf883..aa96f0ee0d 100644 --- a/src/main/java/train/client/render/models/blocks/ModelLargeSlopeTCTrack.java +++ b/src/main/java/train/client/render/models/blocks/ModelLargeSlopeTCTrack.java @@ -46,30 +46,30 @@ public void render(String type, String ballast, int ballastColour) { if(type.equals("wood")) { - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_slope.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_slope.png")); modelLargeSlopeWood.renderAll(); - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); modeltrack.renderAll();} if(type.equals("gravel")) { - tmt.Tessellator.bindTexture(new ResourceLocation("minecraft", "textures/blocks/gravel.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation("minecraft", "textures/blocks/gravel.png")); modelLargeSlopeBallast.renderAll(); - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); modeltrack.renderAll();} if(type.equals("ballast")) { - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, "textures/blocks/ballast_test.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, "textures/blocks/ballast_test.png")); modelLargeSlopeBallast.renderAll(); - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); modeltrack.renderAll();} if (type.equals("snow")) { - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, "textures/blocks/snowgravel.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, "textures/blocks/snowgravel.png")); modelLargeSlopeBallast.renderAll(); - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); modeltrack.renderAll(); } if (type.equals("dynamic")) { - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); modeltrack.renderAll(); - tmt.Tessellator.bindTexture(new ResourceLocation(ballastTexture[0], "textures/blocks/" + ballastTexture[1] +".png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(ballastTexture[0], "textures/blocks/" + ballastTexture[1] +".png")); float r = (float)(ballastColour >> 16 & 255) / 255.0F; float g = (float)(ballastColour >> 8 & 255) / 255.0F; float b = (float)(ballastColour & 255) / 255.0F; @@ -77,9 +77,9 @@ public void render(String type, String ballast, int ballastColour) { modelLargeSlopeBallast.renderAll(); } if (type.equals("embedded_dynamic")) { - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_embedded.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_embedded.png")); modeltrack.renderAll(); - tmt.Tessellator.bindTexture(new ResourceLocation(ballastTexture[0], "textures/blocks/" + ballastTexture[1] +".png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(ballastTexture[0], "textures/blocks/" + ballastTexture[1] +".png")); float r = (float)(ballastColour >> 16 & 255) / 255.0F; float g = (float)(ballastColour >> 8 & 255) / 255.0F; float b = (float)(ballastColour & 255) / 255.0F; diff --git a/src/main/java/train/client/render/models/blocks/ModelLeft45DegreeTurnTCTrack.java b/src/main/java/train/client/render/models/blocks/ModelLeft45DegreeTurnTCTrack.java index ec621de94a..2fd7b010fa 100644 --- a/src/main/java/train/client/render/models/blocks/ModelLeft45DegreeTurnTCTrack.java +++ b/src/main/java/train/client/render/models/blocks/ModelLeft45DegreeTurnTCTrack.java @@ -50,8 +50,8 @@ public void render(String type, String variant ,int facing, double x, double y, // Bind the texture, so that OpenGL properly textures our block. if (variant.contains("embedded")) - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_embedded.png")); - else tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_embedded.png")); + else fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); GL11.glColor4f(r, g, b, a); //GL11.glScalef(0.5f, 0.5f, 0.5f); diff --git a/src/main/java/train/client/render/models/blocks/ModelLeftCurvedSlopeTCTrack.java b/src/main/java/train/client/render/models/blocks/ModelLeftCurvedSlopeTCTrack.java index 370a6ce9a3..e31947560c 100644 --- a/src/main/java/train/client/render/models/blocks/ModelLeftCurvedSlopeTCTrack.java +++ b/src/main/java/train/client/render/models/blocks/ModelLeftCurvedSlopeTCTrack.java @@ -42,9 +42,9 @@ public void render(String type, String ballast, int ballastColour) { } if (type.equals("large")) { - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); modelLargeLeftCurvedTrack.renderAll(); - tmt.Tessellator.bindTexture(new ResourceLocation(ballastTexture[0], "textures/blocks/" + ballastTexture[1] +".png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(ballastTexture[0], "textures/blocks/" + ballastTexture[1] +".png")); float r = (float)(ballastColour >> 16 & 255) / 255.0F; float g = (float)(ballastColour >> 8 & 255) / 255.0F; @@ -55,9 +55,9 @@ public void render(String type, String ballast, int ballastColour) { } if (type.equals("embedded_large")) { - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_embedded.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_embedded.png")); modelLargeLeftCurvedTrack.renderAll(); - tmt.Tessellator.bindTexture(new ResourceLocation(ballastTexture[0], "textures/blocks/" + ballastTexture[1] +".png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(ballastTexture[0], "textures/blocks/" + ballastTexture[1] +".png")); float r = (float)(ballastColour >> 16 & 255) / 255.0F; float g = (float)(ballastColour >> 8 & 255) / 255.0F; @@ -68,9 +68,9 @@ public void render(String type, String ballast, int ballastColour) { } if (type.equals("verylarge")) { - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); modelVeryLargeLeftCurvedTrack.renderAll(); - tmt.Tessellator.bindTexture(new ResourceLocation(ballastTexture[0], "textures/blocks/" + ballastTexture[1] +".png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(ballastTexture[0], "textures/blocks/" + ballastTexture[1] +".png")); float r = (float)(ballastColour >> 16 & 255) / 255.0F; float g = (float)(ballastColour >> 8 & 255) / 255.0F; @@ -81,9 +81,9 @@ public void render(String type, String ballast, int ballastColour) { } if (type.equals("embedded_verylarge")) { - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_embedded.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_embedded.png")); modelVeryLargeLeftCurvedTrack.renderAll(); - tmt.Tessellator.bindTexture(new ResourceLocation(ballastTexture[0], "textures/blocks/" + ballastTexture[1] +".png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(ballastTexture[0], "textures/blocks/" + ballastTexture[1] +".png")); float r = (float)(ballastColour >> 16 & 255) / 255.0F; float g = (float)(ballastColour >> 8 & 255) / 255.0F; @@ -93,9 +93,9 @@ public void render(String type, String ballast, int ballastColour) { } if (type.equals("superlarge")) { - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); modelSuperLargeLeftCurvedTrack.renderAll(); - tmt.Tessellator.bindTexture(new ResourceLocation(ballastTexture[0], "textures/blocks/" + ballastTexture[1] +".png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(ballastTexture[0], "textures/blocks/" + ballastTexture[1] +".png")); float r = (float)(ballastColour >> 16 & 255) / 255.0F; float g = (float)(ballastColour >> 8 & 255) / 255.0F; @@ -106,9 +106,9 @@ public void render(String type, String ballast, int ballastColour) { } if (type.equals("embedded_superlarge")) { - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_embedded.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_embedded.png")); modelSuperLargeLeftCurvedTrack.renderAll(); - tmt.Tessellator.bindTexture(new ResourceLocation(ballastTexture[0], "textures/blocks/" + ballastTexture[1] +".png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(ballastTexture[0], "textures/blocks/" + ballastTexture[1] +".png")); float r = (float)(ballastColour >> 16 & 255) / 255.0F; float g = (float)(ballastColour >> 8 & 255) / 255.0F; diff --git a/src/main/java/train/client/render/models/blocks/ModelLeftDiamondCrossing.java b/src/main/java/train/client/render/models/blocks/ModelLeftDiamondCrossing.java index 2797fba886..1e0a22fbf7 100644 --- a/src/main/java/train/client/render/models/blocks/ModelLeftDiamondCrossing.java +++ b/src/main/java/train/client/render/models/blocks/ModelLeftDiamondCrossing.java @@ -35,8 +35,8 @@ public void render(String type , double x, double y, double z, int facing, float // Bind the texture, so that OpenGL properly textures our block. if (type.contains("embedded")) - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_embedded.png")); - else tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_embedded.png")); + else fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); GL11.glColor4f(r, g, b, a); //GL11.glScalef(0.5f, 0.5f, 0.5f); if (facing == 1 || facing == 3) { diff --git a/src/main/java/train/client/render/models/blocks/ModelLeftParallelCurveTCTrack.java b/src/main/java/train/client/render/models/blocks/ModelLeftParallelCurveTCTrack.java index cc8905d276..7212a70363 100644 --- a/src/main/java/train/client/render/models/blocks/ModelLeftParallelCurveTCTrack.java +++ b/src/main/java/train/client/render/models/blocks/ModelLeftParallelCurveTCTrack.java @@ -42,8 +42,8 @@ public void render(String type,String variant,int facing, double x, double y, do // Bind the texture, so that OpenGL properly textures our block. if (variant.contains("embedded")) - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_embedded.png")); - else tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_embedded.png")); + else fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); GL11.glColor4f(r, g, b, a); //GL11.glScalef(0.5f, 0.5f, 0.5f); /** where l = 0 is SOUTH diff --git a/src/main/java/train/client/render/models/blocks/ModelLeftSwitchTCTrack.java b/src/main/java/train/client/render/models/blocks/ModelLeftSwitchTCTrack.java index 4fede3685b..5b9b9b11f8 100644 --- a/src/main/java/train/client/render/models/blocks/ModelLeftSwitchTCTrack.java +++ b/src/main/java/train/client/render/models/blocks/ModelLeftSwitchTCTrack.java @@ -70,8 +70,8 @@ public void render(String type, String variant, int facing, boolean active, doub // Bind the texture, so that OpenGL properly textures our block. if (variant.contains("embedded")) - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_embedded.png")); - else tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_embedded.png")); + else fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); GL11.glColor4f(r, g, b, a); //GL11.glScalef(0.5f, 0.5f, 0.5f); diff --git a/src/main/java/train/client/render/models/blocks/ModelLeftTurnTCTrack.java b/src/main/java/train/client/render/models/blocks/ModelLeftTurnTCTrack.java index 61a2e19bb4..618150d21b 100644 --- a/src/main/java/train/client/render/models/blocks/ModelLeftTurnTCTrack.java +++ b/src/main/java/train/client/render/models/blocks/ModelLeftTurnTCTrack.java @@ -49,8 +49,8 @@ public void render(String type, int facing, double x, double y, double z, float // Bind the texture, so that OpenGL properly textures our block. if (type.contains("embedded")) - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_embedded.png")); - else tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_embedded.png")); + else fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); GL11.glColor4f(r, g, b, a); //GL11.glScalef(0.5f, 0.5f, 0.5f); diff --git a/src/main/java/train/client/render/models/blocks/ModelLights.java b/src/main/java/train/client/render/models/blocks/ModelLights.java index 021924c068..10061d2477 100644 --- a/src/main/java/train/client/render/models/blocks/ModelLights.java +++ b/src/main/java/train/client/render/models/blocks/ModelLights.java @@ -30,11 +30,11 @@ public void render(int color) { //GL11.glEnable(GL11.GL_LIGHTING); GL11.glPushMatrix(); GL11.glRotatef(90f, 0, 1, 0); - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation,Info.modelTexPrefix + "lights3.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation,Info.modelTexPrefix + "lights3.png")); render("Branch_1"); Minecraft.getMinecraft().entityRenderer.disableLightmap(1D); GL11.glEnable(GL11.GL_BLEND); - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation,Info.modelTexPrefix + "lights.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation,Info.modelTexPrefix + "lights.png")); render("Bulb_1"); GL11.glColor4f(1.0f, 1.0f, 1.0f, 0.3f); render("Plane_1"); diff --git a/src/main/java/train/client/render/models/blocks/ModelMFPBWigWag.java b/src/main/java/train/client/render/models/blocks/ModelMFPBWigWag.java index cf5e7ce998..9d93687417 100644 --- a/src/main/java/train/client/render/models/blocks/ModelMFPBWigWag.java +++ b/src/main/java/train/client/render/models/blocks/ModelMFPBWigWag.java @@ -2,16 +2,17 @@ package train.client.render.models.blocks; +import fexcraft.fvtm.RollingStockModel; +import fexcraft.fvtm.TurboList; +import fexcraft.tmt.slim.ModelRendererTurbo; +import fexcraft.tmt.slim.Vec3f; import net.minecraft.entity.Entity; -import tmt.FVTMFormatBase; -import tmt.ModelRendererTurbo; -import tmt.Vec3f; /** This file was exported via the TiM Exporter V1.0 of
* FMT (Fex's Modelling Toolbox) v.2.6.5 © 2021 - Fexcraft.net
* All rights reserved. For this Model's License contact the Author/Creator. */ -public class ModelMFPBWigWag extends FVTMFormatBase { +public class ModelMFPBWigWag extends RollingStockModel { @Override public void render(Entity entity, float f0, float f1, float f2, float f3, float f4, float scale){ @@ -30,7 +31,7 @@ public ModelMFPBWigWag(){ textureX = 256; textureY = 256; this.addToCreators("Green PC"); // - FVTMFormatBase.TurboList group0 = new FVTMFormatBase.TurboList("group0"); + TurboList group0 = new TurboList("group0"); group0.add(new ModelRendererTurbo(group0, 117, 0, textureX, textureY) .addShapeBox(0, 0, 0, 7, 1, 7, 0, 0.0625f, 0, 0.0625f, 0.0625f, 0, 0.0625f, 0.0625f, 0, 0.0625f, 0.0625f, 0, 0.0625f, 0.1875f, 0, 0.1875f, 0.1875f, 0, 0.1875f, 0.1875f, 0, 0.1875f, 0.1875f, 0, 0.1875f) .setRotationPoint(-3.5f, -1, -3.5f).setRotationAngle(0, 0, 0) @@ -1015,7 +1016,7 @@ public ModelMFPBWigWag(){ ); this.groups.add(group0); // - FVTMFormatBase.TurboList Signal = new FVTMFormatBase.TurboList("Signal"); + TurboList Signal = new TurboList("Signal"); Signal.add(new ModelRendererTurbo(Signal, 150, 6, textureX, textureY).addCylinder(3.8125f, 8, 0, 1, 1, 8, 0.4375f, 0.6875f, 2, new Vec3f(0.9375, 0.0, 0.0)) .setRotationPoint(-3.5f, -34, 0).setRotationAngle(0, 0, 0).setName("Lamp") ); diff --git a/src/main/java/train/client/render/models/blocks/ModelMediumDiagonalStraightTCTrack.java b/src/main/java/train/client/render/models/blocks/ModelMediumDiagonalStraightTCTrack.java index e6bb4800c3..f5a58c4ea1 100644 --- a/src/main/java/train/client/render/models/blocks/ModelMediumDiagonalStraightTCTrack.java +++ b/src/main/java/train/client/render/models/blocks/ModelMediumDiagonalStraightTCTrack.java @@ -45,8 +45,8 @@ public void render( String type, int facing, double x, double y, double z, float // Bind the texture, so that OpenGL properly textures our block. if (type.contains("embedded")) - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_embedded.png")); - else tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_embedded.png")); + else fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); if (facing == 4) { GL11.glTranslatef(1f,0,0f); diff --git a/src/main/java/train/client/render/models/blocks/ModelMediumStraightTCTrack.java b/src/main/java/train/client/render/models/blocks/ModelMediumStraightTCTrack.java index b617e9e70a..32725f022c 100644 --- a/src/main/java/train/client/render/models/blocks/ModelMediumStraightTCTrack.java +++ b/src/main/java/train/client/render/models/blocks/ModelMediumStraightTCTrack.java @@ -31,8 +31,8 @@ public void render(String type, TileTCRail tcRail, double x, double y, double z) GL11.glTranslatef((float) x + 0.5f, (float) y, (float) z + 0.5f); // Bind the texture, so that OpenGL properly textures our block. if (type.contains("embedded")) - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_embedded.png")); - else tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_embedded.png")); + else fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); GL11.glColor4f(1, 1, 1, 1); //GL11.glScalef(0.5f, 0.5f, 0.5f); int facing = tcRail.getWorldObj().getBlockMetadata(tcRail.xCoord, tcRail.yCoord, tcRail.zCoord); diff --git a/src/main/java/train/client/render/models/blocks/ModelMetroMadridOHW.java b/src/main/java/train/client/render/models/blocks/ModelMetroMadridOHW.java index e5376c4407..5e87f2e78f 100644 --- a/src/main/java/train/client/render/models/blocks/ModelMetroMadridOHW.java +++ b/src/main/java/train/client/render/models/blocks/ModelMetroMadridOHW.java @@ -9,8 +9,8 @@ package train.client.render.models.blocks; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelMetroMadridOHW extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/blocks/ModelPresent.java b/src/main/java/train/client/render/models/blocks/ModelPresent.java index c511709135..adbe936e3d 100644 --- a/src/main/java/train/client/render/models/blocks/ModelPresent.java +++ b/src/main/java/train/client/render/models/blocks/ModelPresent.java @@ -29,7 +29,7 @@ public void render(int color) { GL11.glDisable(GL11.GL_LIGHTING); GL11.glPushMatrix(); GL11.glScalef(0.4f, 0.4f, 0.4f); - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation,Info.modelTexPrefix + "present2.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation,Info.modelTexPrefix + "present2.png")); float f1 = 1.0F; float f2 = (float) (color >> 16 & 255) / 255.0F; float f3 = (float) (color >> 8 & 255) / 255.0F; @@ -37,7 +37,7 @@ public void render(int color) { GL11.glColor4f(f1 * f2, f1 * f3, f1 * f4, 1.0F); render(); GL11.glEnable(GL11.GL_LIGHTING); - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation,Info.modelTexPrefix + "present3.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation,Info.modelTexPrefix + "present3.png")); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); render(); GL11.glPopMatrix(); diff --git a/src/main/java/train/client/render/models/blocks/ModelRight45DegreeTurnTCTrack.java b/src/main/java/train/client/render/models/blocks/ModelRight45DegreeTurnTCTrack.java index 6e35bc1600..6444bf196d 100644 --- a/src/main/java/train/client/render/models/blocks/ModelRight45DegreeTurnTCTrack.java +++ b/src/main/java/train/client/render/models/blocks/ModelRight45DegreeTurnTCTrack.java @@ -44,8 +44,8 @@ public void render(String type, String variant, int facing, double x, double y, // Bind the texture, so that OpenGL properly textures our block. if (variant.contains("embedded")) - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_embedded.png")); - else tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_embedded.png")); + else fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); GL11.glColor4f(r, g, b, a); //GL11.glScalef(0.5f, 0.5f, 0.5f); diff --git a/src/main/java/train/client/render/models/blocks/ModelRightCurvedSlopeTCTrack.java b/src/main/java/train/client/render/models/blocks/ModelRightCurvedSlopeTCTrack.java index ba80130c9f..533caec6f4 100644 --- a/src/main/java/train/client/render/models/blocks/ModelRightCurvedSlopeTCTrack.java +++ b/src/main/java/train/client/render/models/blocks/ModelRightCurvedSlopeTCTrack.java @@ -42,9 +42,9 @@ public void render(String type, String ballast, int ballastColour) { } if (type.equals("large")) { - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); modelLargeRightCurvedTrack.renderAll(); - tmt.Tessellator.bindTexture(new ResourceLocation(ballastTexture[0], "textures/blocks/" + ballastTexture[1] +".png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(ballastTexture[0], "textures/blocks/" + ballastTexture[1] +".png")); float r = (float)(ballastColour >> 16 & 255) / 255.0F; float g = (float)(ballastColour >> 8 & 255) / 255.0F; @@ -54,9 +54,9 @@ public void render(String type, String ballast, int ballastColour) { } if (type.equals("embedded_large")) { - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_embedded.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_embedded.png")); modelLargeRightCurvedTrack.renderAll(); - tmt.Tessellator.bindTexture(new ResourceLocation(ballastTexture[0], "textures/blocks/" + ballastTexture[1] +".png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(ballastTexture[0], "textures/blocks/" + ballastTexture[1] +".png")); float r = (float)(ballastColour >> 16 & 255) / 255.0F; float g = (float)(ballastColour >> 8 & 255) / 255.0F; @@ -66,9 +66,9 @@ public void render(String type, String ballast, int ballastColour) { } if (type.equals("verylarge")) { - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); modelVeryLargeRightCurvedTrack.renderAll(); - tmt.Tessellator.bindTexture(new ResourceLocation(ballastTexture[0], "textures/blocks/" + ballastTexture[1] +".png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(ballastTexture[0], "textures/blocks/" + ballastTexture[1] +".png")); float r = (float)(ballastColour >> 16 & 255) / 255.0F; float g = (float)(ballastColour >> 8 & 255) / 255.0F; @@ -78,9 +78,9 @@ public void render(String type, String ballast, int ballastColour) { } if (type.equals("embedded_verylarge")) { - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_embedded.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_embedded.png")); modelVeryLargeRightCurvedTrack.renderAll(); - tmt.Tessellator.bindTexture(new ResourceLocation(ballastTexture[0], "textures/blocks/" + ballastTexture[1] +".png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(ballastTexture[0], "textures/blocks/" + ballastTexture[1] +".png")); float r = (float)(ballastColour >> 16 & 255) / 255.0F; float g = (float)(ballastColour >> 8 & 255) / 255.0F; @@ -90,9 +90,9 @@ public void render(String type, String ballast, int ballastColour) { } if (type.equals("superlarge")) { - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); modelSuperLargeRightCurvedTrack.renderAll(); - tmt.Tessellator.bindTexture(new ResourceLocation(ballastTexture[0], "textures/blocks/" + ballastTexture[1] +".png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(ballastTexture[0], "textures/blocks/" + ballastTexture[1] +".png")); float r = (float)(ballastColour >> 16 & 255) / 255.0F; float g = (float)(ballastColour >> 8 & 255) / 255.0F; @@ -102,9 +102,9 @@ public void render(String type, String ballast, int ballastColour) { } if (type.equals("embedded_superlarge")) { - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_embedded.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_embedded.png")); modelSuperLargeRightCurvedTrack.renderAll(); - tmt.Tessellator.bindTexture(new ResourceLocation(ballastTexture[0], "textures/blocks/" + ballastTexture[1] +".png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(ballastTexture[0], "textures/blocks/" + ballastTexture[1] +".png")); float r = (float)(ballastColour >> 16 & 255) / 255.0F; float g = (float)(ballastColour >> 8 & 255) / 255.0F; diff --git a/src/main/java/train/client/render/models/blocks/ModelRightDiamondCrossing.java b/src/main/java/train/client/render/models/blocks/ModelRightDiamondCrossing.java index cde792f2ca..cbac85f742 100644 --- a/src/main/java/train/client/render/models/blocks/ModelRightDiamondCrossing.java +++ b/src/main/java/train/client/render/models/blocks/ModelRightDiamondCrossing.java @@ -35,8 +35,8 @@ public void render(String type , double x, double y, double z,int facing, float // Bind the texture, so that OpenGL properly textures our block. if (type.contains("embedded")) - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_embedded.png")); - else tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_embedded.png")); + else fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); GL11.glColor4f(r, g, b, a); //GL11.glScalef(0.5f, 0.5f, 0.5f); diff --git a/src/main/java/train/client/render/models/blocks/ModelRightParallelCurveTCTrack.java b/src/main/java/train/client/render/models/blocks/ModelRightParallelCurveTCTrack.java index f012e25663..5db571f28a 100644 --- a/src/main/java/train/client/render/models/blocks/ModelRightParallelCurveTCTrack.java +++ b/src/main/java/train/client/render/models/blocks/ModelRightParallelCurveTCTrack.java @@ -42,8 +42,8 @@ public void render(String type, String variant, int facing, double x, double y, // Bind the texture, so that OpenGL properly textures our block. if (variant.contains("embedded")) - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_embedded.png")); - else tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_embedded.png")); + else fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); GL11.glColor4f(r, g, b, a); //GL11.glScalef(0.5f, 0.5f, 0.5f); /** where l = 0 is SOUTH diff --git a/src/main/java/train/client/render/models/blocks/ModelRightSwitchTCTrack.java b/src/main/java/train/client/render/models/blocks/ModelRightSwitchTCTrack.java index 8a581cd079..0be8f7ee5e 100644 --- a/src/main/java/train/client/render/models/blocks/ModelRightSwitchTCTrack.java +++ b/src/main/java/train/client/render/models/blocks/ModelRightSwitchTCTrack.java @@ -69,8 +69,8 @@ public void render(String type, String variant, int facing, boolean active, doub // Bind the texture, so that OpenGL properly textures our block. if (variant.contains("embedded")) - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_embedded.png")); - else tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_embedded.png")); + else fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); GL11.glColor4f(r, g, b, a); //GL11.glScalef(0.5f, 0.5f, 0.5f); diff --git a/src/main/java/train/client/render/models/blocks/ModelRightTurnTCTrack.java b/src/main/java/train/client/render/models/blocks/ModelRightTurnTCTrack.java index 2531b8920e..69460792e7 100644 --- a/src/main/java/train/client/render/models/blocks/ModelRightTurnTCTrack.java +++ b/src/main/java/train/client/render/models/blocks/ModelRightTurnTCTrack.java @@ -54,8 +54,8 @@ public void render(String type, int facing, double x, double y, double z, float if (type.contains("embedded")) - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_embedded.png")); - else tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_embedded.png")); + else fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); GL11.glColor4f(r, g, b, a); //GL11.glScalef(0.5f, 0.5f, 0.5f); diff --git a/src/main/java/train/client/render/models/blocks/ModelRing.java b/src/main/java/train/client/render/models/blocks/ModelRing.java index e04bda4ece..1cf0359f11 100644 --- a/src/main/java/train/client/render/models/blocks/ModelRing.java +++ b/src/main/java/train/client/render/models/blocks/ModelRing.java @@ -29,7 +29,7 @@ public void render(int color) { //GL11.glEnable(GL11.GL_LIGHTING); GL11.glPushMatrix(); GL11.glColor4f(1, 1, 1, 1); - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "ring.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "ring.png")); render(); GL11.glPopMatrix(); } diff --git a/src/main/java/train/client/render/models/blocks/ModelSlopeTCTrack.java b/src/main/java/train/client/render/models/blocks/ModelSlopeTCTrack.java index 2655ff0537..ad8e97c816 100644 --- a/src/main/java/train/client/render/models/blocks/ModelSlopeTCTrack.java +++ b/src/main/java/train/client/render/models/blocks/ModelSlopeTCTrack.java @@ -40,40 +40,40 @@ public void render(String type, String ballast, int ballastColour) { } if (type.equals("wood")) { - tmt.Tessellator + fexcraft.tmt.slim.Tessellator .bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_slope.png")); modelSlopeWood.renderAll(); - tmt.Tessellator + fexcraft.tmt.slim.Tessellator .bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); modeltrack.renderAll(); } if (type.equals("gravel")) { - tmt.Tessellator + fexcraft.tmt.slim.Tessellator .bindTexture(new ResourceLocation("minecraft", "textures/blocks/gravel.png")); modelSlopeBallast.renderAll(); - tmt.Tessellator + fexcraft.tmt.slim.Tessellator .bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); modeltrack.renderAll(); } if (type.equals("ballast")) { - tmt.Tessellator + fexcraft.tmt.slim.Tessellator .bindTexture(new ResourceLocation(Info.resourceLocation, "textures/blocks/ballast_test.png")); modelSlopeBallast.renderAll(); - tmt.Tessellator + fexcraft.tmt.slim.Tessellator .bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); modeltrack.renderAll(); } if (type.equals("snow")) { - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, "textures/blocks/snowgravel.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, "textures/blocks/snowgravel.png")); modelSlopeBallast.renderAll(); - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); modeltrack.renderAll(); } if (type.equals("dynamic")) { - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); modeltrack.renderAll(); - tmt.Tessellator.bindTexture(new ResourceLocation(ballastTexture[0], "textures/blocks/" + ballastTexture[1] +".png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(ballastTexture[0], "textures/blocks/" + ballastTexture[1] +".png")); float r = (float)(ballastColour >> 16 & 255) / 255.0F; float g = (float)(ballastColour >> 8 & 255) / 255.0F; @@ -84,9 +84,9 @@ public void render(String type, String ballast, int ballastColour) { } if (type.equals("embedded_dynamic")) { - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_embedded.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_embedded.png")); modeltrack.renderAll(); - tmt.Tessellator.bindTexture(new ResourceLocation(ballastTexture[0], "textures/blocks/" + ballastTexture[1] +".png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(ballastTexture[0], "textures/blocks/" + ballastTexture[1] +".png")); float r = (float)(ballastColour >> 16 & 255) / 255.0F; float g = (float)(ballastColour >> 8 & 255) / 255.0F; diff --git a/src/main/java/train/client/render/models/blocks/ModelSmallDiagonalStraightTCTrack.java b/src/main/java/train/client/render/models/blocks/ModelSmallDiagonalStraightTCTrack.java index 28bcce2dc6..9b23b57307 100644 --- a/src/main/java/train/client/render/models/blocks/ModelSmallDiagonalStraightTCTrack.java +++ b/src/main/java/train/client/render/models/blocks/ModelSmallDiagonalStraightTCTrack.java @@ -43,8 +43,8 @@ public void render( String type, int facing, double x, double y, double z, float // Bind the texture, so that OpenGL properly textures our block. if (type.contains("embedded")) - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_embedded.png")); - else tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_embedded.png")); + else fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); if (facing == 4 || facing == 6) { GL11.glTranslatef(0f,0,1f); diff --git a/src/main/java/train/client/render/models/blocks/ModelSmallStraightTCTrack.java b/src/main/java/train/client/render/models/blocks/ModelSmallStraightTCTrack.java index 0f449bad4e..d8132cd83e 100644 --- a/src/main/java/train/client/render/models/blocks/ModelSmallStraightTCTrack.java +++ b/src/main/java/train/client/render/models/blocks/ModelSmallStraightTCTrack.java @@ -58,20 +58,20 @@ public void render( String type, int facing, double x, double y, double z, float // Bind the texture, so that OpenGL properly textures our block. if (type.equals("normal")) { - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); } if (type.equals("embedded")) { - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_embedded.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_embedded.png")); } if (type.equals("crossing")) { - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_roadcrossing.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_roadcrossing.png")); } if (type.equals("crossing1")) { - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_roadcrossing_1.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_roadcrossing_1.png")); } if (type.equals("crossing2")) { - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_roadcrossing_2.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_roadcrossing_2.png")); } GL11.glRotatef(90 * facing , 0, 1, 0); diff --git a/src/main/java/train/client/render/models/blocks/ModelStopper.java b/src/main/java/train/client/render/models/blocks/ModelStopper.java index 784f97418c..812656ce06 100644 --- a/src/main/java/train/client/render/models/blocks/ModelStopper.java +++ b/src/main/java/train/client/render/models/blocks/ModelStopper.java @@ -11,7 +11,7 @@ import net.minecraftforge.client.model.AdvancedModelLoader; import net.minecraftforge.client.model.IModelCustom; import org.lwjgl.opengl.GL11; -import tmt.ModelBase; +import fexcraft.tmt.slim.ModelBase; import train.client.render.CustomModelRenderer; import train.common.library.Info; @@ -102,7 +102,7 @@ public void render(float f5, int meta) { GL11.glPushMatrix(); GL11.glTranslatef(0, 0, 0); GL11.glRotatef(90, 0, 1, 0); - tmt.Tessellator + fexcraft.tmt.slim.Tessellator .bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); GL11.glColor4f(1, 1, 1, 1); track.renderAll(); @@ -120,7 +120,7 @@ public void render2(float f5) { // box4.render(f5); box5.render(f5); GL11.glRotatef(90, 0, 1, 0); - tmt.Tessellator + fexcraft.tmt.slim.Tessellator .bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); GL11.glColor4f(1, 1, 1, 1); track.renderAll(); diff --git a/src/main/java/train/client/render/models/blocks/ModelTCBook.java b/src/main/java/train/client/render/models/blocks/ModelTCBook.java index cdae82f426..2e35205382 100644 --- a/src/main/java/train/client/render/models/blocks/ModelTCBook.java +++ b/src/main/java/train/client/render/models/blocks/ModelTCBook.java @@ -30,7 +30,7 @@ public ModelTCBook() { } public void render(int pages) { - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "book2.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "book2.png")); GL11.glPushMatrix(); GL11.glTranslatef(0.0f, 0.0f, 0.0f); GL11.glScalef(1.0f+(pages*0.158f), 1.0f, 1.0f); @@ -86,7 +86,7 @@ public void render(int pages) { public void render2(int pages) { Tessellator tesselator = Tessellator.instance; - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation,Info.modelTexPrefix + "book2.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation,Info.modelTexPrefix + "book2.png")); GL11.glPushMatrix(); GL11.glTranslatef(0.0f, 0.0f, 0.0f); GL11.glScalef(1.0f+(pages*0.158f), 1.0f, 1.0f); @@ -157,7 +157,7 @@ public void rotate(int pages) { rot -= 360.0f; } Tessellator tesselator = Tessellator.instance; - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "book2.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "book2.png")); GL11.glPushMatrix(); if(settings.guiScale == 0) { GL11.glScalef(0.2f, 0.2f, 0.2f); @@ -180,7 +180,7 @@ public void render(TileBook book, double x, double y, double z) { GL11.glPushMatrix(); GL11.glTranslatef((float) x + 0.5f, (float) y + 0.205f, (float) z + 0.5f); - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "book2.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "book2.png")); GL11.glScalef(0.4f, 0.4f, 0.4f); GL11.glRotatef(-90, 1, 0, 0); int facing = book.getFacing(); diff --git a/src/main/java/train/client/render/models/blocks/ModelTwoWaysCrossingTCTrack.java b/src/main/java/train/client/render/models/blocks/ModelTwoWaysCrossingTCTrack.java index e81e3fcfe9..b8d4785eaa 100644 --- a/src/main/java/train/client/render/models/blocks/ModelTwoWaysCrossingTCTrack.java +++ b/src/main/java/train/client/render/models/blocks/ModelTwoWaysCrossingTCTrack.java @@ -53,8 +53,8 @@ public void render(String type , double x, double y, double z, int facing, float // Bind the texture, so that OpenGL properly textures our block. if (type.contains("embedded")) - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_embedded.png")); - else tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_embedded.png")); + else fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); GL11.glColor4f(r, g, b, a); //GL11.glScalef(0.5f, 0.5f, 0.5f); diff --git a/src/main/java/train/client/render/models/blocks/ModelVeryLargeSlopeTCTrack.java b/src/main/java/train/client/render/models/blocks/ModelVeryLargeSlopeTCTrack.java index 0516627cc6..ad80834dd1 100644 --- a/src/main/java/train/client/render/models/blocks/ModelVeryLargeSlopeTCTrack.java +++ b/src/main/java/train/client/render/models/blocks/ModelVeryLargeSlopeTCTrack.java @@ -37,41 +37,41 @@ public void render(String type, String ballast, int ballastColour) { } if (type.equals("wood")) { - tmt.Tessellator + fexcraft.tmt.slim.Tessellator .bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_slope.png")); modelVeryLargeSlopeWood.renderAll(); - tmt.Tessellator + fexcraft.tmt.slim.Tessellator .bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); modeltrack.renderAll(); } if (type.equals("gravel")) { - tmt.Tessellator + fexcraft.tmt.slim.Tessellator .bindTexture(new ResourceLocation("minecraft", "textures/blocks/gravel.png")); modelVeryLargeSlopeBallast.renderAll(); - tmt.Tessellator + fexcraft.tmt.slim.Tessellator .bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); modeltrack.renderAll(); } if (type.equals("ballast")) { - tmt.Tessellator + fexcraft.tmt.slim.Tessellator .bindTexture(new ResourceLocation(Info.resourceLocation, "textures/blocks/ballast_test.png")); modelVeryLargeSlopeBallast.renderAll(); - tmt.Tessellator + fexcraft.tmt.slim.Tessellator .bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); modeltrack.renderAll(); } if (type.equals("snow")) { - tmt.Tessellator + fexcraft.tmt.slim.Tessellator .bindTexture(new ResourceLocation(Info.resourceLocation, "textures/blocks/snowgravel.png")); modelVeryLargeSlopeBallast.renderAll(); - tmt.Tessellator + fexcraft.tmt.slim.Tessellator .bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); modeltrack.renderAll(); } if (type.equals("dynamic")) { - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_normal.png")); modeltrack.renderAll(); - tmt.Tessellator.bindTexture(new ResourceLocation(ballastTexture[0], "textures/blocks/" + ballastTexture[1] +".png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(ballastTexture[0], "textures/blocks/" + ballastTexture[1] +".png")); float r = (float)(ballastColour >> 16 & 255) / 255.0F; float g = (float)(ballastColour >> 8 & 255) / 255.0F; float b = (float)(ballastColour & 255) / 255.0F; @@ -79,9 +79,9 @@ public void render(String type, String ballast, int ballastColour) { modelVeryLargeSlopeBallast.renderAll(); } if (type.equals("embedded_dynamic")) { - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_embedded.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "track_embedded.png")); modeltrack.renderAll(); - tmt.Tessellator.bindTexture(new ResourceLocation(ballastTexture[0], "textures/blocks/" + ballastTexture[1] +".png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(ballastTexture[0], "textures/blocks/" + ballastTexture[1] +".png")); float r = (float)(ballastColour >> 16 & 255) / 255.0F; float g = (float)(ballastColour >> 8 & 255) / 255.0F; float b = (float)(ballastColour & 255) / 255.0F; diff --git a/src/main/java/train/client/render/models/blocks/ModelWaterWheel.java b/src/main/java/train/client/render/models/blocks/ModelWaterWheel.java index 6ebff6bb37..ee21430229 100644 --- a/src/main/java/train/client/render/models/blocks/ModelWaterWheel.java +++ b/src/main/java/train/client/render/models/blocks/ModelWaterWheel.java @@ -34,7 +34,7 @@ public void render(TileWaterWheel waterWheel, double x, double y, double z) { GL11.glTranslatef((float) x + 0.5f, (float) y + 0.5f, (float) z + 0.5f); // Bind the texture, so that OpenGL properly textures our block. - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation,Info.modelTexPrefix + "water_wheel_uv.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation,Info.modelTexPrefix + "water_wheel_uv.png")); int j = 0x331D14;//0x1C0F0A; //0x5a3222; //System.out.println(j); float f1 = 1.0F; diff --git a/src/main/java/train/client/render/models/blocks/ModelWindMill.java b/src/main/java/train/client/render/models/blocks/ModelWindMill.java index a65b0df5db..65e9057310 100644 --- a/src/main/java/train/client/render/models/blocks/ModelWindMill.java +++ b/src/main/java/train/client/render/models/blocks/ModelWindMill.java @@ -35,7 +35,7 @@ public void render(TileWindMill windMill, double x, double y, double z) { GL11.glTranslatef((float) x + 0.5f, (float) y + 0.43f, (float) z + 0.5f); // Bind the texture, so that OpenGL properly textures our block. - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation,Info.modelTexPrefix + "water_wheel_uv.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation,Info.modelTexPrefix + "water_wheel_uv.png")); int j = 0x331D14;//0x1C0F0A; //0x5a3222; //System.out.println(j); float f1 = 1.0F; diff --git a/src/main/java/train/client/render/models/blocks/ModelWindMillWheel.java b/src/main/java/train/client/render/models/blocks/ModelWindMillWheel.java index 1cb10c1815..57d5d27945 100644 --- a/src/main/java/train/client/render/models/blocks/ModelWindMillWheel.java +++ b/src/main/java/train/client/render/models/blocks/ModelWindMillWheel.java @@ -35,7 +35,7 @@ public void render(TileWindMill windMill, double x, double y, double z) { GL11.glTranslatef((float) x + 0.5f, (float) y + 1.43f, (float) z + 0.5f); // Bind the texture, so that OpenGL properly textures our block. - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation,Info.modelTexPrefix + "water_wheel_uv.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation,Info.modelTexPrefix + "water_wheel_uv.png")); int j = 0x7A7674;//0x331D14;//0x1C0F0A; //0x5a3222; //System.out.println(j); float f1 = 1.0F; diff --git a/src/main/java/train/client/render/models/boxmotor.java b/src/main/java/train/client/render/models/boxmotor.java index 7ae24a63f6..478c354c93 100644 --- a/src/main/java/train/client/render/models/boxmotor.java +++ b/src/main/java/train/client/render/models/boxmotor.java @@ -1,6 +1,7 @@ package train.client.render.models; -import tmt.ModelConverter; + +import fexcraft.tmt.slim.ModelConverter; /** This file was exported via the (Default) FlansMod Exporter of
* FMT (Fex's Modelling Toolbox) v.2.6.5 © 2021 - Fexcraft.net
diff --git a/src/main/java/train/client/render/models/boxmotortrucks.java b/src/main/java/train/client/render/models/boxmotortrucks.java index 29d87dbccc..f9e3e5b42f 100644 --- a/src/main/java/train/client/render/models/boxmotortrucks.java +++ b/src/main/java/train/client/render/models/boxmotortrucks.java @@ -3,8 +3,8 @@ package train.client.render.models; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; /** This file was exported via the (Default) FlansMod Exporter of
* FMT (Fex's Modelling Toolbox) v.2.6.5 © 2021 - Fexcraft.net
@@ -827,12 +827,12 @@ public boxmotortrucks(){ bodyModel[201].setRotationPoint(34.375f, 4.375f, 5.25f); bodyModel[202] = new ModelRendererTurbo(this, 116, 3, textureX, textureY); - bodyModel[202].flip = true; + bodyModel[202].mirror = true; bodyModel[202].addCylinder(0, 0, 0, 1, 12, 14, 1, 1, 0); bodyModel[202].setRotationPoint(27.5f, 5.5f, -6.0f); bodyModel[203] = new ModelRendererTurbo(this, 111, 3, textureX, textureY); - bodyModel[203].flip = true; + bodyModel[203].mirror = true; bodyModel[203].addCylinder(0, 0, 0, 1, 12, 14, 1, 1, 0); bodyModel[203].setRotationPoint(45.5f, 5.5f, -6.0f); diff --git a/src/main/java/train/client/render/models/cabs/ModelD9_Cab4Window.java b/src/main/java/train/client/render/models/cabs/ModelD9_Cab4Window.java index 05542e76d6..60c44065d2 100644 --- a/src/main/java/train/client/render/models/cabs/ModelD9_Cab4Window.java +++ b/src/main/java/train/client/render/models/cabs/ModelD9_Cab4Window.java @@ -5,8 +5,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelD9_Cab4Window extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/cabs/ModelD9_CabSquareWindow.java b/src/main/java/train/client/render/models/cabs/ModelD9_CabSquareWindow.java index 2bfc7e4693..a8f35374a9 100644 --- a/src/main/java/train/client/render/models/cabs/ModelD9_CabSquareWindow.java +++ b/src/main/java/train/client/render/models/cabs/ModelD9_CabSquareWindow.java @@ -3,8 +3,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelD9_CabSquareWindow extends ModelConverter { diff --git a/src/main/java/train/client/render/models/containers/Modelcontainer40.java b/src/main/java/train/client/render/models/containers/Modelcontainer40.java index 5103f6f344..730d421cb3 100644 --- a/src/main/java/train/client/render/models/containers/Modelcontainer40.java +++ b/src/main/java/train/client/render/models/containers/Modelcontainer40.java @@ -9,8 +9,8 @@ package train.client.render.models.containers; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class Modelcontainer40 extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/containers/Modelcontainer53.java b/src/main/java/train/client/render/models/containers/Modelcontainer53.java index 9fc80bf74e..bb57417dff 100644 --- a/src/main/java/train/client/render/models/containers/Modelcontainer53.java +++ b/src/main/java/train/client/render/models/containers/Modelcontainer53.java @@ -9,8 +9,8 @@ package train.client.render.models.containers; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class Modelcontainer53 extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/loads/ModelBigLog.java b/src/main/java/train/client/render/models/loads/ModelBigLog.java index 6d4b3db365..af4f31bfe3 100644 --- a/src/main/java/train/client/render/models/loads/ModelBigLog.java +++ b/src/main/java/train/client/render/models/loads/ModelBigLog.java @@ -9,8 +9,8 @@ package train.client.render.models.loads; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelBigLog extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/loads/ModelMixedLogs.java b/src/main/java/train/client/render/models/loads/ModelMixedLogs.java index d52407537a..5afb28911b 100644 --- a/src/main/java/train/client/render/models/loads/ModelMixedLogs.java +++ b/src/main/java/train/client/render/models/loads/ModelMixedLogs.java @@ -9,8 +9,8 @@ package train.client.render.models.loads; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelMixedLogs extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/models/loads/Modelwrappedwood.java b/src/main/java/train/client/render/models/loads/Modelwrappedwood.java index 08591db4a4..9e02a7b7b0 100644 --- a/src/main/java/train/client/render/models/loads/Modelwrappedwood.java +++ b/src/main/java/train/client/render/models/loads/Modelwrappedwood.java @@ -9,8 +9,8 @@ package train.client.render.models.loads; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class Modelwrappedwood extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/renderSwitch/ItemRenderMILWSwitchStand.java b/src/main/java/train/client/render/renderSwitch/ItemRenderMILWSwitchStand.java index e86f972139..a52ac6b1c1 100644 --- a/src/main/java/train/client/render/renderSwitch/ItemRenderMILWSwitchStand.java +++ b/src/main/java/train/client/render/renderSwitch/ItemRenderMILWSwitchStand.java @@ -4,7 +4,7 @@ import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.IItemRenderer; import org.lwjgl.opengl.GL11; -import tmt.Tessellator; +import fexcraft.tmt.slim.Tessellator; import train.client.render.renderSwitch.models.ModelMILWSwitchStandOff; import train.common.library.Info; diff --git a/src/main/java/train/client/render/renderSwitch/ItemRenderSpeedSign.java b/src/main/java/train/client/render/renderSwitch/ItemRenderSpeedSign.java index e9e7f60687..b0ff550f69 100644 --- a/src/main/java/train/client/render/renderSwitch/ItemRenderSpeedSign.java +++ b/src/main/java/train/client/render/renderSwitch/ItemRenderSpeedSign.java @@ -4,7 +4,7 @@ import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.IItemRenderer; import org.lwjgl.opengl.GL11; -import tmt.Tessellator; +import fexcraft.tmt.slim.Tessellator; import train.common.library.Info; import static train.client.render.renderSwitch.RenderSpeedSign.modelspeedSign; diff --git a/src/main/java/train/client/render/renderSwitch/ItemRenderautoSwitchStand.java b/src/main/java/train/client/render/renderSwitch/ItemRenderautoSwitchStand.java index a1ee5050d7..809e6e649f 100644 --- a/src/main/java/train/client/render/renderSwitch/ItemRenderautoSwitchStand.java +++ b/src/main/java/train/client/render/renderSwitch/ItemRenderautoSwitchStand.java @@ -4,7 +4,7 @@ import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.IItemRenderer; import org.lwjgl.opengl.GL11; -import tmt.Tessellator; +import fexcraft.tmt.slim.Tessellator; import train.client.render.renderSwitch.models.ModelautoSwitchOff; import train.common.library.Info; diff --git a/src/main/java/train/client/render/renderSwitch/ItemRendercircleSwitchStand.java b/src/main/java/train/client/render/renderSwitch/ItemRendercircleSwitchStand.java index 029e227cce..5cb656c23d 100644 --- a/src/main/java/train/client/render/renderSwitch/ItemRendercircleSwitchStand.java +++ b/src/main/java/train/client/render/renderSwitch/ItemRendercircleSwitchStand.java @@ -4,7 +4,7 @@ import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.IItemRenderer; import org.lwjgl.opengl.GL11; -import tmt.Tessellator; +import fexcraft.tmt.slim.Tessellator; import train.client.render.renderSwitch.models.ModelcircleSwitchStandOff; import train.common.library.Info; diff --git a/src/main/java/train/client/render/renderSwitch/ItemRenderkSignal.java b/src/main/java/train/client/render/renderSwitch/ItemRenderkSignal.java index b870590421..080911967f 100644 --- a/src/main/java/train/client/render/renderSwitch/ItemRenderkSignal.java +++ b/src/main/java/train/client/render/renderSwitch/ItemRenderkSignal.java @@ -10,7 +10,7 @@ import net.minecraftforge.client.IItemRenderer; import net.minecraftforge.client.MinecraftForgeClient; import org.lwjgl.opengl.GL11; -import tmt.Tessellator; +import fexcraft.tmt.slim.Tessellator; import train.client.render.renderSwitch.models.ModelkSignal; import train.common.library.BlockIDs; import train.common.library.Info; diff --git a/src/main/java/train/client/render/renderSwitch/ItemRenderoverheadWire.java b/src/main/java/train/client/render/renderSwitch/ItemRenderoverheadWire.java index 7cebf2d4d6..06556dc73e 100644 --- a/src/main/java/train/client/render/renderSwitch/ItemRenderoverheadWire.java +++ b/src/main/java/train/client/render/renderSwitch/ItemRenderoverheadWire.java @@ -4,7 +4,7 @@ import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.IItemRenderer; import org.lwjgl.opengl.GL11; -import tmt.Tessellator; +import fexcraft.tmt.slim.Tessellator; import train.client.render.renderSwitch.models.ModeloverheadWire; import train.common.library.Info; diff --git a/src/main/java/train/client/render/renderSwitch/ItemRenderoverheadWireDouble.java b/src/main/java/train/client/render/renderSwitch/ItemRenderoverheadWireDouble.java index 22706bb5e1..abd9b39bad 100644 --- a/src/main/java/train/client/render/renderSwitch/ItemRenderoverheadWireDouble.java +++ b/src/main/java/train/client/render/renderSwitch/ItemRenderoverheadWireDouble.java @@ -4,7 +4,7 @@ import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.IItemRenderer; import org.lwjgl.opengl.GL11; -import tmt.Tessellator; +import fexcraft.tmt.slim.Tessellator; import train.client.render.renderSwitch.models.ModeloverheadWireDouble; import train.common.library.Info; diff --git a/src/main/java/train/client/render/renderSwitch/ItemRenderowoSwitchStand.java b/src/main/java/train/client/render/renderSwitch/ItemRenderowoSwitchStand.java index f8b6d90045..8f2b0d12ee 100644 --- a/src/main/java/train/client/render/renderSwitch/ItemRenderowoSwitchStand.java +++ b/src/main/java/train/client/render/renderSwitch/ItemRenderowoSwitchStand.java @@ -4,7 +4,7 @@ import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.IItemRenderer; import org.lwjgl.opengl.GL11; -import tmt.Tessellator; +import fexcraft.tmt.slim.Tessellator; import train.client.render.renderSwitch.models.ModelowoSwitchStandOff; import train.common.library.Info; diff --git a/src/main/java/train/client/render/renderSwitch/ItemRenderowoYardSwitchStand.java b/src/main/java/train/client/render/renderSwitch/ItemRenderowoYardSwitchStand.java index 0b9aa3ee00..da6abfd5d1 100644 --- a/src/main/java/train/client/render/renderSwitch/ItemRenderowoYardSwitchStand.java +++ b/src/main/java/train/client/render/renderSwitch/ItemRenderowoYardSwitchStand.java @@ -4,7 +4,7 @@ import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.IItemRenderer; import org.lwjgl.opengl.GL11; -import tmt.Tessellator; +import fexcraft.tmt.slim.Tessellator; import train.client.render.renderSwitch.models.ModelowoYardSwitchStandOff; import train.common.library.Info; diff --git a/src/main/java/train/client/render/renderSwitch/ItemRendersignalSpanish.java b/src/main/java/train/client/render/renderSwitch/ItemRendersignalSpanish.java index 4dcf8a2afe..bdf4a7153b 100644 --- a/src/main/java/train/client/render/renderSwitch/ItemRendersignalSpanish.java +++ b/src/main/java/train/client/render/renderSwitch/ItemRendersignalSpanish.java @@ -8,7 +8,7 @@ import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.IItemRenderer; import org.lwjgl.opengl.GL11; -import tmt.Tessellator; +import fexcraft.tmt.slim.Tessellator; import train.client.render.renderSwitch.models.ModelsignalSpanish; import train.common.library.Info; diff --git a/src/main/java/train/client/render/renderSwitch/RenderMILWSwitchStand.java b/src/main/java/train/client/render/renderSwitch/RenderMILWSwitchStand.java index c0aef34773..4392b1524a 100644 --- a/src/main/java/train/client/render/renderSwitch/RenderMILWSwitchStand.java +++ b/src/main/java/train/client/render/renderSwitch/RenderMILWSwitchStand.java @@ -4,7 +4,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.Tessellator; +import fexcraft.tmt.slim.Tessellator; import train.client.render.renderSwitch.models.ModelMILWSwitchStandOff; import train.client.render.renderSwitch.models.ModelMILWSwitchStandOn; import train.common.library.Info; diff --git a/src/main/java/train/client/render/renderSwitch/RenderSpeedSign.java b/src/main/java/train/client/render/renderSwitch/RenderSpeedSign.java index bc36d5f091..0d822f9eec 100644 --- a/src/main/java/train/client/render/renderSwitch/RenderSpeedSign.java +++ b/src/main/java/train/client/render/renderSwitch/RenderSpeedSign.java @@ -4,7 +4,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.Tessellator; +import fexcraft.tmt.slim.Tessellator; import train.client.render.renderSwitch.models.ModelspeedSign; import train.common.library.Info; import train.common.tile.tileSwitch.TileSpeedSign; diff --git a/src/main/java/train/client/render/renderSwitch/RenderautoSwitchStand.java b/src/main/java/train/client/render/renderSwitch/RenderautoSwitchStand.java index 19f517de4d..9741edd0ef 100644 --- a/src/main/java/train/client/render/renderSwitch/RenderautoSwitchStand.java +++ b/src/main/java/train/client/render/renderSwitch/RenderautoSwitchStand.java @@ -4,7 +4,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.Tessellator; +import fexcraft.tmt.slim.Tessellator; import train.client.render.renderSwitch.models.ModelautoSwitchOff; import train.client.render.renderSwitch.models.ModelautoSwitchOn; import train.common.library.Info; diff --git a/src/main/java/train/client/render/renderSwitch/RendercircleSwitchStand.java b/src/main/java/train/client/render/renderSwitch/RendercircleSwitchStand.java index 884b272276..d3fba9fa83 100644 --- a/src/main/java/train/client/render/renderSwitch/RendercircleSwitchStand.java +++ b/src/main/java/train/client/render/renderSwitch/RendercircleSwitchStand.java @@ -4,7 +4,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.Tessellator; +import fexcraft.tmt.slim.Tessellator; import train.client.render.renderSwitch.models.ModelcircleSwitchStandOff; import train.client.render.renderSwitch.models.ModelcircleSwitchStandOn; import train.common.library.Info; diff --git a/src/main/java/train/client/render/renderSwitch/RenderkSignal.java b/src/main/java/train/client/render/renderSwitch/RenderkSignal.java index a5bcee142e..8064e7d99e 100644 --- a/src/main/java/train/client/render/renderSwitch/RenderkSignal.java +++ b/src/main/java/train/client/render/renderSwitch/RenderkSignal.java @@ -4,7 +4,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.Tessellator; +import fexcraft.tmt.slim.Tessellator; import train.client.render.renderSwitch.models.ModelkSignal; import train.common.library.Info; import train.common.tile.tileSwitch.TilekSignal; diff --git a/src/main/java/train/client/render/renderSwitch/RenderoverheadWire.java b/src/main/java/train/client/render/renderSwitch/RenderoverheadWire.java index dfb72b835a..349205c2db 100644 --- a/src/main/java/train/client/render/renderSwitch/RenderoverheadWire.java +++ b/src/main/java/train/client/render/renderSwitch/RenderoverheadWire.java @@ -4,7 +4,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.Tessellator; +import fexcraft.tmt.slim.Tessellator; import train.client.render.renderSwitch.models.ModeloverheadWire; import train.client.render.renderSwitch.models.ModeloverheadWireOn; import train.common.library.Info; diff --git a/src/main/java/train/client/render/renderSwitch/RenderoverheadWireDouble.java b/src/main/java/train/client/render/renderSwitch/RenderoverheadWireDouble.java index 45b2383cdf..18507e4161 100644 --- a/src/main/java/train/client/render/renderSwitch/RenderoverheadWireDouble.java +++ b/src/main/java/train/client/render/renderSwitch/RenderoverheadWireDouble.java @@ -4,7 +4,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.Tessellator; +import fexcraft.tmt.slim.Tessellator; import train.client.render.renderSwitch.models.ModeloverheadWireDouble; import train.common.library.Info; import train.common.tile.tileSwitch.TileoverheadWireDouble; diff --git a/src/main/java/train/client/render/renderSwitch/RenderowoSwitchStand.java b/src/main/java/train/client/render/renderSwitch/RenderowoSwitchStand.java index 1cc1c78772..c1994dd3ba 100644 --- a/src/main/java/train/client/render/renderSwitch/RenderowoSwitchStand.java +++ b/src/main/java/train/client/render/renderSwitch/RenderowoSwitchStand.java @@ -4,7 +4,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.Tessellator; +import fexcraft.tmt.slim.Tessellator; import train.client.render.renderSwitch.models.ModelowoSwitchStandOff; import train.client.render.renderSwitch.models.ModelowoSwitchStandOn; import train.common.library.Info; diff --git a/src/main/java/train/client/render/renderSwitch/RenderowoYardSwtichStand.java b/src/main/java/train/client/render/renderSwitch/RenderowoYardSwtichStand.java index 2064372d55..d36d876611 100644 --- a/src/main/java/train/client/render/renderSwitch/RenderowoYardSwtichStand.java +++ b/src/main/java/train/client/render/renderSwitch/RenderowoYardSwtichStand.java @@ -4,7 +4,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.Tessellator; +import fexcraft.tmt.slim.Tessellator; import train.client.render.renderSwitch.models.ModelowoYardSwitchStandOff; import train.client.render.renderSwitch.models.ModelowoYardSwitchStandOn; import train.common.library.Info; diff --git a/src/main/java/train/client/render/renderSwitch/RendersignalSpanish.java b/src/main/java/train/client/render/renderSwitch/RendersignalSpanish.java index 08f1b63e7d..5e512ff4b9 100644 --- a/src/main/java/train/client/render/renderSwitch/RendersignalSpanish.java +++ b/src/main/java/train/client/render/renderSwitch/RendersignalSpanish.java @@ -4,7 +4,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.Tessellator; +import fexcraft.tmt.slim.Tessellator; import train.client.render.renderSwitch.models.ModelsignalSpanish; import train.common.library.Info; import train.common.tile.tileSwitch.TilesignalSpanish; diff --git a/src/main/java/train/client/render/renderSwitch/models/ModelMILWSwitchStandOff.java b/src/main/java/train/client/render/renderSwitch/models/ModelMILWSwitchStandOff.java index 158986ecc4..2c5243df75 100644 --- a/src/main/java/train/client/render/renderSwitch/models/ModelMILWSwitchStandOff.java +++ b/src/main/java/train/client/render/renderSwitch/models/ModelMILWSwitchStandOff.java @@ -9,8 +9,8 @@ package train.client.render.renderSwitch.models; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelMILWSwitchStandOff extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/renderSwitch/models/ModelMILWSwitchStandOn.java b/src/main/java/train/client/render/renderSwitch/models/ModelMILWSwitchStandOn.java index 75418d45a5..f48b74026e 100644 --- a/src/main/java/train/client/render/renderSwitch/models/ModelMILWSwitchStandOn.java +++ b/src/main/java/train/client/render/renderSwitch/models/ModelMILWSwitchStandOn.java @@ -9,8 +9,8 @@ package train.client.render.renderSwitch.models; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelMILWSwitchStandOn extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/renderSwitch/models/ModelautoSwitchOff.java b/src/main/java/train/client/render/renderSwitch/models/ModelautoSwitchOff.java index 4bfdbc1778..735f4251ab 100644 --- a/src/main/java/train/client/render/renderSwitch/models/ModelautoSwitchOff.java +++ b/src/main/java/train/client/render/renderSwitch/models/ModelautoSwitchOff.java @@ -9,8 +9,8 @@ package train.client.render.renderSwitch.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelautoSwitchOff extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/renderSwitch/models/ModelautoSwitchOn.java b/src/main/java/train/client/render/renderSwitch/models/ModelautoSwitchOn.java index ad33181801..4be1e268b2 100644 --- a/src/main/java/train/client/render/renderSwitch/models/ModelautoSwitchOn.java +++ b/src/main/java/train/client/render/renderSwitch/models/ModelautoSwitchOn.java @@ -9,8 +9,8 @@ package train.client.render.renderSwitch.models; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelautoSwitchOn extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/renderSwitch/models/ModelcircleSwitchStandOff.java b/src/main/java/train/client/render/renderSwitch/models/ModelcircleSwitchStandOff.java index 4b9f0c1388..84a007a160 100644 --- a/src/main/java/train/client/render/renderSwitch/models/ModelcircleSwitchStandOff.java +++ b/src/main/java/train/client/render/renderSwitch/models/ModelcircleSwitchStandOff.java @@ -9,8 +9,8 @@ package train.client.render.renderSwitch.models; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelcircleSwitchStandOff extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/renderSwitch/models/ModelcircleSwitchStandOn.java b/src/main/java/train/client/render/renderSwitch/models/ModelcircleSwitchStandOn.java index 66ddceb764..3f762be781 100644 --- a/src/main/java/train/client/render/renderSwitch/models/ModelcircleSwitchStandOn.java +++ b/src/main/java/train/client/render/renderSwitch/models/ModelcircleSwitchStandOn.java @@ -9,8 +9,8 @@ package train.client.render.renderSwitch.models; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelcircleSwitchStandOn extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/renderSwitch/models/ModelkSignal.java b/src/main/java/train/client/render/renderSwitch/models/ModelkSignal.java index 7c5367e204..47461d36e0 100644 --- a/src/main/java/train/client/render/renderSwitch/models/ModelkSignal.java +++ b/src/main/java/train/client/render/renderSwitch/models/ModelkSignal.java @@ -10,8 +10,8 @@ package train.client.render.renderSwitch.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelkSignal extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/renderSwitch/models/ModeloverheadWire.java b/src/main/java/train/client/render/renderSwitch/models/ModeloverheadWire.java index 6893496aba..8d0c652386 100644 --- a/src/main/java/train/client/render/renderSwitch/models/ModeloverheadWire.java +++ b/src/main/java/train/client/render/renderSwitch/models/ModeloverheadWire.java @@ -9,8 +9,8 @@ package train.client.render.renderSwitch.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModeloverheadWire extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/renderSwitch/models/ModeloverheadWireDouble.java b/src/main/java/train/client/render/renderSwitch/models/ModeloverheadWireDouble.java index d76209fdd0..8efc0dc02f 100644 --- a/src/main/java/train/client/render/renderSwitch/models/ModeloverheadWireDouble.java +++ b/src/main/java/train/client/render/renderSwitch/models/ModeloverheadWireDouble.java @@ -9,8 +9,8 @@ package train.client.render.renderSwitch.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModeloverheadWireDouble extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/renderSwitch/models/ModeloverheadWireOn.java b/src/main/java/train/client/render/renderSwitch/models/ModeloverheadWireOn.java index 2c08bc7cd3..ca00341c6b 100644 --- a/src/main/java/train/client/render/renderSwitch/models/ModeloverheadWireOn.java +++ b/src/main/java/train/client/render/renderSwitch/models/ModeloverheadWireOn.java @@ -9,8 +9,8 @@ package train.client.render.renderSwitch.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModeloverheadWireOn extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/renderSwitch/models/ModelowoSwitchStandOff.java b/src/main/java/train/client/render/renderSwitch/models/ModelowoSwitchStandOff.java index 55dff6fbd5..629dace89f 100644 --- a/src/main/java/train/client/render/renderSwitch/models/ModelowoSwitchStandOff.java +++ b/src/main/java/train/client/render/renderSwitch/models/ModelowoSwitchStandOff.java @@ -9,8 +9,8 @@ package train.client.render.renderSwitch.models; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelowoSwitchStandOff extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/renderSwitch/models/ModelowoSwitchStandOn.java b/src/main/java/train/client/render/renderSwitch/models/ModelowoSwitchStandOn.java index 7ad5a92eac..faf5ebca45 100644 --- a/src/main/java/train/client/render/renderSwitch/models/ModelowoSwitchStandOn.java +++ b/src/main/java/train/client/render/renderSwitch/models/ModelowoSwitchStandOn.java @@ -9,8 +9,8 @@ package train.client.render.renderSwitch.models; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelowoSwitchStandOn extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/renderSwitch/models/ModelowoYardSwitchStandOff.java b/src/main/java/train/client/render/renderSwitch/models/ModelowoYardSwitchStandOff.java index 86f45c3f83..356d0a0aab 100644 --- a/src/main/java/train/client/render/renderSwitch/models/ModelowoYardSwitchStandOff.java +++ b/src/main/java/train/client/render/renderSwitch/models/ModelowoYardSwitchStandOff.java @@ -9,8 +9,8 @@ package train.client.render.renderSwitch.models; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelowoYardSwitchStandOff extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/renderSwitch/models/ModelowoYardSwitchStandOn.java b/src/main/java/train/client/render/renderSwitch/models/ModelowoYardSwitchStandOn.java index 95182ab28d..13a68972fd 100644 --- a/src/main/java/train/client/render/renderSwitch/models/ModelowoYardSwitchStandOn.java +++ b/src/main/java/train/client/render/renderSwitch/models/ModelowoYardSwitchStandOn.java @@ -9,8 +9,8 @@ package train.client.render.renderSwitch.models; -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelowoYardSwitchStandOn extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/renderSwitch/models/ModelsignalSpanish.java b/src/main/java/train/client/render/renderSwitch/models/ModelsignalSpanish.java index 2f6742e823..5968b8924a 100644 --- a/src/main/java/train/client/render/renderSwitch/models/ModelsignalSpanish.java +++ b/src/main/java/train/client/render/renderSwitch/models/ModelsignalSpanish.java @@ -9,8 +9,8 @@ package train.client.render.renderSwitch.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelsignalSpanish extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/client/render/renderSwitch/models/ModelspeedSign.java b/src/main/java/train/client/render/renderSwitch/models/ModelspeedSign.java index a275880e41..ed419a3baf 100644 --- a/src/main/java/train/client/render/renderSwitch/models/ModelspeedSign.java +++ b/src/main/java/train/client/render/renderSwitch/models/ModelspeedSign.java @@ -9,8 +9,8 @@ package train.client.render.renderSwitch.models; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelspeedSign extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/common/adminbook/GUIAdminBook.java b/src/main/java/train/common/adminbook/GUIAdminBook.java index c92ae0eb9b..ff8e34a25c 100644 --- a/src/main/java/train/common/adminbook/GUIAdminBook.java +++ b/src/main/java/train/common/adminbook/GUIAdminBook.java @@ -7,7 +7,7 @@ import net.minecraft.client.resources.I18n; import net.minecraft.item.ItemStack; import org.lwjgl.opengl.GL11; -import tmt.Tessellator; +import fexcraft.tmt.slim.Tessellator; import train.common.Traincraft; import java.util.ArrayList; diff --git a/src/main/java/train/common/api/TrainRenderRecord.java b/src/main/java/train/common/api/TrainRenderRecord.java index 72e15892d6..853943dbb4 100644 --- a/src/main/java/train/common/api/TrainRenderRecord.java +++ b/src/main/java/train/common/api/TrainRenderRecord.java @@ -1,7 +1,6 @@ package train.common.api; -import tmt.ModelBase; -import train.common.api.AbstractTrains; +import fexcraft.tmt.slim.ModelBase; import net.minecraft.util.ResourceLocation; import java.util.ArrayList; diff --git a/src/main/java/train/common/entity/rollingStock/ModelE103Bogie.java b/src/main/java/train/common/entity/rollingStock/ModelE103Bogie.java index 0c21d76137..a419b4bbce 100644 --- a/src/main/java/train/common/entity/rollingStock/ModelE103Bogie.java +++ b/src/main/java/train/common/entity/rollingStock/ModelE103Bogie.java @@ -9,8 +9,8 @@ package train.common.entity.rollingStock; //Path where the model is located -import tmt.ModelConverter; -import tmt.ModelRendererTurbo; +import fexcraft.tmt.slim.ModelConverter; +import fexcraft.tmt.slim.ModelRendererTurbo; public class ModelE103Bogie extends ModelConverter //Same as Filename { diff --git a/src/main/java/train/common/wellcar/render/FiftyThreeFootContainerRender.java b/src/main/java/train/common/wellcar/render/FiftyThreeFootContainerRender.java index c2005001df..3d63a1c55e 100644 --- a/src/main/java/train/common/wellcar/render/FiftyThreeFootContainerRender.java +++ b/src/main/java/train/common/wellcar/render/FiftyThreeFootContainerRender.java @@ -5,7 +5,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.Tessellator; +import fexcraft.tmt.slim.Tessellator; import train.client.render.models.containers.Modelcontainer53; import train.common.wellcar.BlockFiftyThreeFootContainer; import train.common.wellcar.TileFiftyThreeFootContainer; diff --git a/src/main/java/train/common/wellcar/render/FortyFootContainerRender.java b/src/main/java/train/common/wellcar/render/FortyFootContainerRender.java index a3d01c2161..f903ac766a 100644 --- a/src/main/java/train/common/wellcar/render/FortyFootContainerRender.java +++ b/src/main/java/train/common/wellcar/render/FortyFootContainerRender.java @@ -5,7 +5,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import tmt.Tessellator; +import fexcraft.tmt.slim.Tessellator; import train.client.render.models.containers.Modelcontainer40; import train.common.wellcar.BlockFortyFootContainer; import train.common.wellcar.TileFortyFootContainer; diff --git a/src/main/java/train/common/wellcar/render/ItemRenderFortyFootContainer.java b/src/main/java/train/common/wellcar/render/ItemRenderFortyFootContainer.java index 6cce672aff..16f6847bc9 100644 --- a/src/main/java/train/common/wellcar/render/ItemRenderFortyFootContainer.java +++ b/src/main/java/train/common/wellcar/render/ItemRenderFortyFootContainer.java @@ -46,14 +46,14 @@ private void renderContainer(float f, float g, float h, ItemStack theItem) { Modelcontainer40 theContainer = new Modelcontainer40(); if (theItem.getTagCompound() != null) { if (theItem.getTagCompound().getString("currentColorString").equals("")) { - tmt.Tessellator.bindTexture(new ResourceLocation("tc:textures/trains/container40_generic.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation("tc:textures/trains/container40_generic.png")); } else { - tmt.Tessellator.bindTexture(new ResourceLocation("tc:textures/trains/container40_" + theItem.getTagCompound().getString("currentColorString") + ".png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation("tc:textures/trains/container40_" + theItem.getTagCompound().getString("currentColorString") + ".png")); } } else { - tmt.Tessellator.bindTexture(new ResourceLocation("tc:textures/trains/container40_generic.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation("tc:textures/trains/container40_generic.png")); } GL11.glPushMatrix(); diff --git a/src/main/java/tmt/Angle3D.java b/tmt/Angle3D.java similarity index 100% rename from src/main/java/tmt/Angle3D.java rename to tmt/Angle3D.java diff --git a/src/main/java/tmt/Coord2D.java b/tmt/Coord2D.java similarity index 100% rename from src/main/java/tmt/Coord2D.java rename to tmt/Coord2D.java diff --git a/src/main/java/tmt/CylinderBuilder.java b/tmt/CylinderBuilder.java similarity index 100% rename from src/main/java/tmt/CylinderBuilder.java rename to tmt/CylinderBuilder.java diff --git a/src/main/java/tmt/FVTMFormatBase.java b/tmt/FVTMFormatBase.java similarity index 100% rename from src/main/java/tmt/FVTMFormatBase.java rename to tmt/FVTMFormatBase.java diff --git a/src/main/java/tmt/JsonToTMT.java b/tmt/JsonToTMT.java similarity index 100% rename from src/main/java/tmt/JsonToTMT.java rename to tmt/JsonToTMT.java diff --git a/src/main/java/tmt/Model.java b/tmt/Model.java similarity index 100% rename from src/main/java/tmt/Model.java rename to tmt/Model.java diff --git a/src/main/java/tmt/ModelBase.java b/tmt/ModelBase.java similarity index 100% rename from src/main/java/tmt/ModelBase.java rename to tmt/ModelBase.java diff --git a/src/main/java/tmt/ModelConverter.java b/tmt/ModelConverter.java similarity index 100% rename from src/main/java/tmt/ModelConverter.java rename to tmt/ModelConverter.java diff --git a/src/main/java/tmt/ModelPool.java b/tmt/ModelPool.java similarity index 100% rename from src/main/java/tmt/ModelPool.java rename to tmt/ModelPool.java diff --git a/src/main/java/tmt/ModelPoolEntry.java b/tmt/ModelPoolEntry.java similarity index 100% rename from src/main/java/tmt/ModelPoolEntry.java rename to tmt/ModelPoolEntry.java diff --git a/src/main/java/tmt/ModelPoolObjEntry.java b/tmt/ModelPoolObjEntry.java similarity index 100% rename from src/main/java/tmt/ModelPoolObjEntry.java rename to tmt/ModelPoolObjEntry.java diff --git a/src/main/java/tmt/ModelRendererTurbo.java b/tmt/ModelRendererTurbo.java similarity index 100% rename from src/main/java/tmt/ModelRendererTurbo.java rename to tmt/ModelRendererTurbo.java diff --git a/src/main/java/tmt/README.md b/tmt/README.md similarity index 100% rename from src/main/java/tmt/README.md rename to tmt/README.md diff --git a/src/main/java/tmt/Shape2D.java b/tmt/Shape2D.java similarity index 100% rename from src/main/java/tmt/Shape2D.java rename to tmt/Shape2D.java diff --git a/src/main/java/tmt/Shape3D.java b/tmt/Shape3D.java similarity index 100% rename from src/main/java/tmt/Shape3D.java rename to tmt/Shape3D.java diff --git a/src/main/java/tmt/Tessellator.java b/tmt/Tessellator.java similarity index 100% rename from src/main/java/tmt/Tessellator.java rename to tmt/Tessellator.java diff --git a/src/main/java/tmt/TextureGroup.java b/tmt/TextureGroup.java similarity index 100% rename from src/main/java/tmt/TextureGroup.java rename to tmt/TextureGroup.java diff --git a/src/main/java/tmt/TexturedPolygon.java b/tmt/TexturedPolygon.java similarity index 100% rename from src/main/java/tmt/TexturedPolygon.java rename to tmt/TexturedPolygon.java diff --git a/src/main/java/tmt/TexturedVertex.java b/tmt/TexturedVertex.java similarity index 100% rename from src/main/java/tmt/TexturedVertex.java rename to tmt/TexturedVertex.java diff --git a/src/main/java/tmt/Vec3d.java b/tmt/Vec3d.java similarity index 100% rename from src/main/java/tmt/Vec3d.java rename to tmt/Vec3d.java diff --git a/src/main/java/tmt/Vec3f.java b/tmt/Vec3f.java similarity index 100% rename from src/main/java/tmt/Vec3f.java rename to tmt/Vec3f.java From 8b1df63041e5e2d337b48d8f1410d29e5ef22854 Mon Sep 17 00:00:00 2001 From: Jonathan Date: Thu, 23 Nov 2023 22:41:29 -0600 Subject: [PATCH 5/5] finish backport of TC5 render. buggy but HUGE FPS gain and FMT support --- .../client/render/CustomModelRenderer.java | 166 +- .../train/client/render/ItemRenderBook.java | 4 +- .../render/ItemRenderGeneratorDiesel.java | 2 +- .../client/render/ItemRenderLantern.java | 2 +- .../train/client/render/ItemRenderSignal.java | 2 +- .../client/render/ItemRenderStopper.java | 2 +- .../client/render/ItemRenderWaterWheel.java | 2 +- .../client/render/ItemRenderWindMill.java | 2 +- .../client/render/RenderGeneratorDiesel.java | 2 +- .../train/client/render/RenderStopper.java | 2 +- .../train/client/render/models/ModelBP4.java | 1 + .../models/ModelLocoDieselIC4_DSB_FH.java | 2 +- tmt/Angle3D.java | 93 - tmt/Coord2D.java | 30 - tmt/CylinderBuilder.java | 281 --- tmt/FVTMFormatBase.java | 48 - tmt/JsonToTMT.java | 142 -- tmt/Model.java | 92 - tmt/ModelBase.java | 80 - tmt/ModelConverter.java | 150 -- tmt/ModelPool.java | 93 - tmt/ModelPoolEntry.java | 65 - tmt/ModelPoolObjEntry.java | 195 -- tmt/ModelRendererTurbo.java | 1840 ----------------- tmt/README.md | 24 - tmt/Shape2D.java | 129 -- tmt/Shape3D.java | 13 - tmt/Tessellator.java | 167 -- tmt/TextureGroup.java | 37 - tmt/TexturedPolygon.java | 76 - tmt/TexturedVertex.java | 37 - tmt/Vec3d.java | 28 - tmt/Vec3f.java | 77 - 33 files changed, 95 insertions(+), 3791 deletions(-) delete mode 100644 tmt/Angle3D.java delete mode 100644 tmt/Coord2D.java delete mode 100644 tmt/CylinderBuilder.java delete mode 100644 tmt/FVTMFormatBase.java delete mode 100644 tmt/JsonToTMT.java delete mode 100644 tmt/Model.java delete mode 100644 tmt/ModelBase.java delete mode 100644 tmt/ModelConverter.java delete mode 100644 tmt/ModelPool.java delete mode 100644 tmt/ModelPoolEntry.java delete mode 100644 tmt/ModelPoolObjEntry.java delete mode 100644 tmt/ModelRendererTurbo.java delete mode 100644 tmt/README.md delete mode 100644 tmt/Shape2D.java delete mode 100644 tmt/Shape3D.java delete mode 100644 tmt/Tessellator.java delete mode 100644 tmt/TextureGroup.java delete mode 100644 tmt/TexturedPolygon.java delete mode 100644 tmt/TexturedVertex.java delete mode 100644 tmt/Vec3d.java delete mode 100644 tmt/Vec3f.java diff --git a/src/main/java/train/client/render/CustomModelRenderer.java b/src/main/java/train/client/render/CustomModelRenderer.java index bbc06e9ed3..5a19ba0e48 100644 --- a/src/main/java/train/client/render/CustomModelRenderer.java +++ b/src/main/java/train/client/render/CustomModelRenderer.java @@ -7,90 +7,90 @@ import java.util.ArrayList; public class CustomModelRenderer extends ModelRendererTurbo { - public CustomModelRenderer(ModelBase m, int i, int j, int w, int h) { - super(m, i, j, w, h); - } - @Override - public ModelRendererTurbo addBox(float f, float f1, float f2, int i, int j, int k) { - addBox(f, f1, f2, i, j, k, 0.0f); - return this; - } - // For some odd reason the boxes seem inside out normally, so it's likely the values are reversed - @Override - public ModelRendererTurbo addBox(float f, float f1, float f2, int i, int j, int k, float f3) { - faces = new ArrayList<>(); - float f4 = f + i + f3; - float f5 = f1 + j + f3; - float f6 = f2 + k + f3; + public CustomModelRenderer(ModelBase m, int i, int j, int w, int h) { + super(m,i,j,w,h); + } + + @Override + public ModelRendererTurbo addBox(float f, float f1, float f2, int i, int j, int k) { + addBox(f, f1, f2, i, j, k, 0.0f); + return this; + } + + //for some odd reason the boxes seem inside out normally, so it's likely the values are reversed + @Override + public ModelRendererTurbo addBox(float f, float f1, float f2, int i, int j, int k, float f3) { + faces = new ArrayList(); + float f4 = f + i +f3; + float f5 = f1 + j +f3; + float f6 = f2 + k +f3; + f -= f3; + f1 -= f3; + f2 -= f3; + TexturedVertex TexturedVertex = new TexturedVertex(f, f1, f2, 0.0F, 0.0F); + TexturedVertex TexturedVertex1 = new TexturedVertex(f4, f1, f2, 0.0F, 8F); + TexturedVertex TexturedVertex2 = new TexturedVertex(f4, f5, f2, 8F, 8F); + TexturedVertex TexturedVertex3 = new TexturedVertex(f, f5, f2, 8F, 0.0F); + TexturedVertex TexturedVertex4 = new TexturedVertex(f, f1, f6, 0.0F, 0.0F); + TexturedVertex TexturedVertex5 = new TexturedVertex(f4, f1, f6, 0.0F, 8F); + TexturedVertex TexturedVertex6 = new TexturedVertex(f4, f5, f6, 8F, 8F); + TexturedVertex TexturedVertex7 = new TexturedVertex(f, f5, f6, 8F, 0.0F); + faces.add(generateFaces(new TexturedVertex[] { TexturedVertex5, TexturedVertex1, TexturedVertex2, TexturedVertex6 }, textureOffsetX + k + i, textureOffsetY + k, textureOffsetX + k + i + k, textureOffsetY + k + j, textureWidth, textureHeight)); + faces.add(generateFaces(new TexturedVertex[] { TexturedVertex, TexturedVertex4, TexturedVertex7, TexturedVertex3 }, textureOffsetX, textureOffsetY + k, textureOffsetX + k, textureOffsetY + k + j, textureWidth, textureHeight)); + faces.add(generateFaces(new TexturedVertex[] { TexturedVertex5, TexturedVertex4, TexturedVertex, TexturedVertex1 }, textureOffsetX + k, textureOffsetY, textureOffsetX + k + i, textureOffsetY + k, textureWidth, textureHeight)); + faces.add(generateFaces(new TexturedVertex[] { TexturedVertex2, TexturedVertex3, TexturedVertex7, TexturedVertex6 }, textureOffsetX + k + i, textureOffsetY, textureOffsetX + k + i + i, textureOffsetY + k, textureWidth, textureHeight)); + faces.add(generateFaces(new TexturedVertex[] { TexturedVertex1, TexturedVertex, TexturedVertex3, TexturedVertex2 }, textureOffsetX + k, textureOffsetY + k, textureOffsetX + k + i, textureOffsetY + k + j, textureWidth, textureHeight)); + faces.add(generateFaces(new TexturedVertex[] { TexturedVertex4, TexturedVertex5, TexturedVertex6, TexturedVertex7 }, textureOffsetX + k + i + k, textureOffsetY + k, textureOffsetX + k + i + k + i, textureOffsetY + k + j, textureWidth, textureHeight)); + return this; + } + + private static TexturedPolygon generateFaces(TexturedVertex aPositionTransformVertex[], int i, int j, int k, int l, float textureWidth, float textureHeight) { + aPositionTransformVertex[0] = new TexturedVertex(aPositionTransformVertex[0].vector3F, (float) k / textureWidth - 0.0015625F, (float) j / textureHeight + 0.003125F); + aPositionTransformVertex[1] = new TexturedVertex(aPositionTransformVertex[1].vector3F,(float) i / textureWidth + 0.0015625F, (float) j / textureHeight + 0.003125F); + aPositionTransformVertex[2] = new TexturedVertex(aPositionTransformVertex[2].vector3F,(float) i / textureWidth + 0.0015625F, (float) l / textureHeight - 0.003125F); + aPositionTransformVertex[3] = new TexturedVertex(aPositionTransformVertex[3].vector3F,(float) k / textureWidth - 0.0015625F, (float) l / textureHeight - 0.003125F); + return new TexturedPolygon(aPositionTransformVertex); + } + + private static final float degreesF = (float)(180D/Math.PI); + + //same as super, but old models have inverse Y rotations and I don't even understand the Z rotation + public void render(float worldScale) { + + if(!showModel) { + return; + } + if (rotateAngleX != 0.0F || rotateAngleY != 0.0F || rotateAngleZ != 0.0F) { + GL11.glPushMatrix(); + GL11.glTranslatef(rotationPointX * worldScale, rotationPointY * worldScale, rotationPointZ *worldScale); + if (rotateAngleZ != 0.0F) { + GL11.glRotatef(rotateAngleZ * degreesF, 0.0F, 0.0F, 1.0F); + } + if (rotateAngleY != 0.0F) { + GL11.glRotatef(rotateAngleY * degreesF, 0.0F, 1.0F, 0.0F); + } + if (rotateAngleX != 0.0F) { + GL11.glRotatef(rotateAngleX * degreesF, 1.0F, 0.0F, 0.0F); + } + for (TexturedPolygon poly : faces) { + Tessellator.getInstance().drawTexturedVertsWithNormal(poly, worldScale); + } + GL11.glPopMatrix(); + } + else if (rotationPointX != 0.0F || rotationPointY != 0.0F || rotationPointZ != 0.0F) { + GL11.glTranslatef(rotationPointX * worldScale, rotationPointY * worldScale, rotationPointZ * worldScale); + for (TexturedPolygon poly : faces) { + Tessellator.getInstance().drawTexturedVertsWithNormal(poly, worldScale); + } + GL11.glTranslatef(-rotationPointX * worldScale, -rotationPointY * worldScale, -rotationPointZ * worldScale); + } + else { + for (TexturedPolygon poly : faces) { + Tessellator.getInstance().drawTexturedVertsWithNormal(poly, worldScale); + } + } + } - f -= f3; - f1 -= f3; - f2 -= f3; - - TexturedVertex TexturedVertex = new TexturedVertex(f, f1, f2, 0.0F, 0.0F); - TexturedVertex TexturedVertex1 = new TexturedVertex(f4, f1, f2, 0.0F, 8F); - TexturedVertex TexturedVertex2 = new TexturedVertex(f4, f5, f2, 8F, 8F); - TexturedVertex TexturedVertex3 = new TexturedVertex(f, f5, f2, 8F, 0.0F); - TexturedVertex TexturedVertex4 = new TexturedVertex(f, f1, f6, 0.0F, 0.0F); - TexturedVertex TexturedVertex5 = new TexturedVertex(f4, f1, f6, 0.0F, 8F); - TexturedVertex TexturedVertex6 = new TexturedVertex(f4, f5, f6, 8F, 8F); - TexturedVertex TexturedVertex7 = new TexturedVertex(f, f5, f6, 8F, 0.0F); - - faces.add(generateFaces(new TexturedVertex[]{TexturedVertex5, TexturedVertex1, TexturedVertex2, TexturedVertex6}, textureOffsetX + k + i, textureOffsetY + k, textureOffsetX + k + i + k, textureOffsetY + k + j, textureWidth, textureHeight)); - faces.add(generateFaces(new TexturedVertex[]{TexturedVertex, TexturedVertex4, TexturedVertex7, TexturedVertex3}, textureOffsetX, textureOffsetY + k, textureOffsetX + k, textureOffsetY + k + j, textureWidth, textureHeight)); - faces.add(generateFaces(new TexturedVertex[]{TexturedVertex5, TexturedVertex4, TexturedVertex, TexturedVertex1}, textureOffsetX + k, textureOffsetY, textureOffsetX + k + i, textureOffsetY + k, textureWidth, textureHeight)); - faces.add(generateFaces(new TexturedVertex[]{TexturedVertex2, TexturedVertex3, TexturedVertex7, TexturedVertex6}, textureOffsetX + k + i, textureOffsetY, textureOffsetX + k + i + i, textureOffsetY + k, textureWidth, textureHeight)); - faces.add(generateFaces(new TexturedVertex[]{TexturedVertex1, TexturedVertex, TexturedVertex3, TexturedVertex2}, textureOffsetX + k, textureOffsetY + k, textureOffsetX + k + i, textureOffsetY + k + j, textureWidth, textureHeight)); - faces.add(generateFaces(new TexturedVertex[]{TexturedVertex4, TexturedVertex5, TexturedVertex6, TexturedVertex7}, textureOffsetX + k + i + k, textureOffsetY + k, textureOffsetX + k + i + k + i, textureOffsetY + k + j, textureWidth, textureHeight)); - return this; - } - - private static TexturedPolygon generateFaces(TexturedVertex aPositionTransformVertex[], int i, int j, int k, int l, float textureWidth, float textureHeight) { - aPositionTransformVertex[0] = new TexturedVertex(aPositionTransformVertex[0].vector3F, (float) k / textureWidth - 0.0015625F, (float) j / textureHeight + 0.003125F); - aPositionTransformVertex[1] = new TexturedVertex(aPositionTransformVertex[1].vector3F, (float) i / textureWidth + 0.0015625F, (float) j / textureHeight + 0.003125F); - aPositionTransformVertex[2] = new TexturedVertex(aPositionTransformVertex[2].vector3F, (float) i / textureWidth + 0.0015625F, (float) l / textureHeight - 0.003125F); - aPositionTransformVertex[3] = new TexturedVertex(aPositionTransformVertex[3].vector3F, (float) k / textureWidth - 0.0015625F, (float) l / textureHeight - 0.003125F); - return new TexturedPolygon(aPositionTransformVertex); - } - - private static final float degreesF = (float) (180D / Math.PI); - - // Same as super, but old models have inverse Y rotations and I don't even understand the Z rotation - public void render(float worldScale, boolean invertYZ) { - if (!showModel) { - return; - } - - if (!compiled) { - compileDisplayList(worldScale); - return; - } - - if (rotateAngleX != 0.0F || rotateAngleY != 0.0F || rotateAngleZ != 0.0F) { - GL11.glPushMatrix(); - GL11.glTranslatef(rotationPointX * worldScale, rotationPointY * worldScale, rotationPointZ * worldScale); - if (rotateAngleZ != 0.0F) { - GL11.glRotatef(rotateAngleZ * degreesF, 0.0F, 0.0F, 1.0F); - } - - if (rotateAngleY != 0.0F) { - GL11.glRotatef(rotateAngleY * degreesF, 0.0F, 1.0F, 0.0F); - } - - if (rotateAngleX != 0.0F) { - GL11.glRotatef(rotateAngleX * degreesF, 1.0F, 0.0F, 0.0F); - } - - callDisplayList(); - GL11.glPopMatrix(); - } else if (rotationPointX != 0.0F || rotationPointY != 0.0F || rotationPointZ != 0.0F) { - GL11.glTranslatef(rotationPointX * worldScale, rotationPointY * worldScale, rotationPointZ * worldScale); - callDisplayList(); - GL11.glTranslatef(-rotationPointX * worldScale, -rotationPointY * worldScale, -rotationPointZ * worldScale); - } else { - callDisplayList(); - } - } } diff --git a/src/main/java/train/client/render/ItemRenderBook.java b/src/main/java/train/client/render/ItemRenderBook.java index 8dcb3d97d4..7853ae3491 100644 --- a/src/main/java/train/client/render/ItemRenderBook.java +++ b/src/main/java/train/client/render/ItemRenderBook.java @@ -68,7 +68,7 @@ public void renderItem(ItemRenderType type, ItemStack stack, Object... data) { private void renderBook(float left, float up, float right, float rotation, float x, float y, float z, float scale) { Tessellator tesselator = Tessellator.instance; - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "book2.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "book2.png")); GL11.glPushMatrix(); GL11.glTranslatef(left, up, right); GL11.glRotatef(rotation, x, y, z); @@ -93,7 +93,7 @@ private void rotateBook(float left, float up, float right, float rotation, float // down = false; // } //System.out.println(w/10); - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "book2.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "book2.png")); GL11.glPushMatrix(); GL11.glTranslatef(left, up, right); GL11.glTranslatef(0.5f, 1.f, -0.5f); diff --git a/src/main/java/train/client/render/ItemRenderGeneratorDiesel.java b/src/main/java/train/client/render/ItemRenderGeneratorDiesel.java index 2297714aca..3d28b3d658 100644 --- a/src/main/java/train/client/render/ItemRenderGeneratorDiesel.java +++ b/src/main/java/train/client/render/ItemRenderGeneratorDiesel.java @@ -58,7 +58,7 @@ public void renderItem(ItemRenderType type, ItemStack item, Object... data) { } private void renderGenerator(float f, float g, float h) { - tmt.Tessellator.bindTexture(texture); + fexcraft.tmt.slim.Tessellator.bindTexture(texture); GL11.glPushMatrix(); GL11.glTranslatef(f, g, h); GL11.glScalef(0.7F, 0.7F, 0.7F); diff --git a/src/main/java/train/client/render/ItemRenderLantern.java b/src/main/java/train/client/render/ItemRenderLantern.java index e8ab573853..476b886216 100644 --- a/src/main/java/train/client/render/ItemRenderLantern.java +++ b/src/main/java/train/client/render/ItemRenderLantern.java @@ -52,7 +52,7 @@ private void renderLantern(float x, float y, float z, float scale) { GL11.glTranslatef(x, y, z); GL11.glScalef(scale, scale, scale); - tmt.Tessellator.bindTexture(texture); + fexcraft.tmt.slim.Tessellator.bindTexture(texture); float f2 = (float) (0x4f4e4a >> 16 & 255) / 255.0F; float f3 = (float) (0x4f4e4a >> 8 & 255) / 255.0F; float f4 = (float) (0x4f4e4a & 255) / 255.0F; diff --git a/src/main/java/train/client/render/ItemRenderSignal.java b/src/main/java/train/client/render/ItemRenderSignal.java index 4cb157545b..91db34a46f 100644 --- a/src/main/java/train/client/render/ItemRenderSignal.java +++ b/src/main/java/train/client/render/ItemRenderSignal.java @@ -54,7 +54,7 @@ public void renderItem(ItemRenderType type, ItemStack item, Object... data) { } private void renderSignal(float f, float g, float h, float rotation, float scale) { - tmt.Tessellator.bindTexture(texture); + fexcraft.tmt.slim.Tessellator.bindTexture(texture); GL11.glPushMatrix(); //start GL11.glTranslatef(f, g, h); //size GL11.glRotatef(rotation, f, g, h); diff --git a/src/main/java/train/client/render/ItemRenderStopper.java b/src/main/java/train/client/render/ItemRenderStopper.java index 2ef506ba54..5d38e45729 100644 --- a/src/main/java/train/client/render/ItemRenderStopper.java +++ b/src/main/java/train/client/render/ItemRenderStopper.java @@ -53,7 +53,7 @@ public void renderItem(ItemRenderType type, ItemStack item, Object... data) { } private void renderStopper(float f, float g, float h, float rotation) { - tmt.Tessellator.bindTexture(texture); + fexcraft.tmt.slim.Tessellator.bindTexture(texture); GL11.glPushMatrix(); //start GL11.glTranslatef(f, g, h); //size GL11.glRotatef(rotation, f, g, h); diff --git a/src/main/java/train/client/render/ItemRenderWaterWheel.java b/src/main/java/train/client/render/ItemRenderWaterWheel.java index d0e256f768..f64524a935 100644 --- a/src/main/java/train/client/render/ItemRenderWaterWheel.java +++ b/src/main/java/train/client/render/ItemRenderWaterWheel.java @@ -53,7 +53,7 @@ private void renderWaterWheel(float x, float y, float z, float scale) { GL11.glScalef(0.36F, 0.36F, 1F); GL11.glRotatef(180f, 0f, 1f, 0f); - tmt.Tessellator.bindTexture(texture); + fexcraft.tmt.slim.Tessellator.bindTexture(texture); float f2 = (float) (0x331D14 >> 16 & 255) / 255.0F; float f3 = (float) (0x331D14 >> 8 & 255) / 255.0F; float f4 = (float) (0x331D14 & 255) / 255.0F; diff --git a/src/main/java/train/client/render/ItemRenderWindMill.java b/src/main/java/train/client/render/ItemRenderWindMill.java index 5b275fa051..44946b852a 100644 --- a/src/main/java/train/client/render/ItemRenderWindMill.java +++ b/src/main/java/train/client/render/ItemRenderWindMill.java @@ -54,7 +54,7 @@ private void renderWindMill(float x, float y, float z, float scale) { GL11.glTranslatef(x, y, z); GL11.glScalef(scale, scale, scale); - tmt.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "water_wheel_uv.png")); + fexcraft.tmt.slim.Tessellator.bindTexture(new ResourceLocation(Info.resourceLocation, Info.modelTexPrefix + "water_wheel_uv.png")); float f2 = (float) (0x331D14 >> 16 & 255) / 255.0F; float f3 = (float) (0x331D14 >> 8 & 255) / 255.0F; float f4 = (float) (0x331D14 & 255) / 255.0F; diff --git a/src/main/java/train/client/render/RenderGeneratorDiesel.java b/src/main/java/train/client/render/RenderGeneratorDiesel.java index b653fbdd92..48f9652cc5 100644 --- a/src/main/java/train/client/render/RenderGeneratorDiesel.java +++ b/src/main/java/train/client/render/RenderGeneratorDiesel.java @@ -27,7 +27,7 @@ public void render(TileEntity var1, double x, double y, double z) { GL11.glPushMatrix(); GL11.glTranslated(x, y, z); - tmt.Tessellator.bindTexture(texture); + fexcraft.tmt.slim.Tessellator.bindTexture(texture); //System.out.println(((TileStopper) var1).getFacing()); GL11.glTranslatef(0.5F, 0.0F, 0.5F); diff --git a/src/main/java/train/client/render/RenderStopper.java b/src/main/java/train/client/render/RenderStopper.java index 80946e4e87..376d4ae61a 100644 --- a/src/main/java/train/client/render/RenderStopper.java +++ b/src/main/java/train/client/render/RenderStopper.java @@ -27,7 +27,7 @@ public void render(TileEntity tile, double x, double y, double z) { GL11.glPushMatrix(); GL11.glTranslated(x, y, z); - tmt.Tessellator.bindTexture(texture); + fexcraft.tmt.slim.Tessellator.bindTexture(texture); GL11.glTranslatef(0.5F, 0.0F, 0.5F); modelStopper.render(0.0625F, ((TileStopper) tile).getFacing()); diff --git a/src/main/java/train/client/render/models/ModelBP4.java b/src/main/java/train/client/render/models/ModelBP4.java index 6f9828460e..31ab34f79f 100644 --- a/src/main/java/train/client/render/models/ModelBP4.java +++ b/src/main/java/train/client/render/models/ModelBP4.java @@ -1005,6 +1005,7 @@ public void render(Entity entity, float f, float f1, float f2, float f3, float f GL11.glTranslatef(3.1f,0f,0); bogie.render(entity, f, f1, f2, f3, f4, f5); + GL11.glScalef(1f,1f,1f); GL11.glPopMatrix(); } diff --git a/src/main/java/train/client/render/models/ModelLocoDieselIC4_DSB_FH.java b/src/main/java/train/client/render/models/ModelLocoDieselIC4_DSB_FH.java index a2bffebfc0..dfb6515fb6 100644 --- a/src/main/java/train/client/render/models/ModelLocoDieselIC4_DSB_FH.java +++ b/src/main/java/train/client/render/models/ModelLocoDieselIC4_DSB_FH.java @@ -489,7 +489,7 @@ public void render(Entity entity, float f, float f1, float f2, float f3, float f GL11.glTranslated(0,-1.4f,-2.6); GL11.glScaled(0.7,0.9,1); super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); + //setRotationAngles(f, f1, f2, f3, f4, f5, entity); Left1.render(f5); Left2.render(f5); Left3.render(f5); diff --git a/tmt/Angle3D.java b/tmt/Angle3D.java deleted file mode 100644 index 1fe7a1c8b4..0000000000 --- a/tmt/Angle3D.java +++ /dev/null @@ -1,93 +0,0 @@ -package tmt; - -/** - * This class handles angles. Basically all it does it store angles. You can - * directly alter the angles. - * @author GaryCXJk - * - */ -public class Angle3D { - - public float angleX; - public float angleY; - public float angleZ; - - /** - * The constructor to create a new Angle3D. - * @param x the x-rotation - * @param y the y-rotation - * @param z the z-rotation - */ - public Angle3D(float x, float y, float z){ - angleX = x; - angleY = y; - angleZ = z; - } - - /** - * Adds the given angles to the current angles. - * @param x the x-rotation - * @param y the y-rotation - * @param z the z-rotation - */ - public void addAngles(float x, float y, float z){ - angleX+= x; - angleY+= y; - angleZ+= z; - } - - /** - * Adds the angles of another Angle3D to the current angles. - * @param angles the Angle3D - */ - public void addAngles(Angle3D angles){ - angleX+= angles.angleX; - angleY+= angles.angleY; - angleZ+= angles.angleZ; - } - - /** - * Multiplies the angles with the given angles. - * @param x the x-rotation - * @param y the y-rotation - * @param z the z-rotation - */ - public void multiplyAngles(float x, float y, float z){ - angleX*= x; - angleY*= y; - angleZ*= z; - } - - /** - * Multiplies the angles with a given Angle3D. - * @param angles the Angle3D - */ - public void multiplyAngles(Angle3D angles){ - angleX*= angles.angleX; - angleY*= angles.angleY; - angleZ*= angles.angleZ; - } - - /** - * Gets the center angle between two angles. - * @param angles1 the first Angle3D - * @param angles2 the second Angle3D - * @return the center Angle3D - */ - public static Angle3D getCenter(Angle3D angles1, Angle3D angles2){ - Angle3D angles = new Angle3D(0, 0, 0); - angles.addAngles(angles1); - angles.addAngles(angles2); - angles.multiplyAngles(0.5F, 0.5F, 0.5F); - return angles; - } - - /** - * Copies the current Angle3D over to a new Angle3D instance. - * @return a copy of the Angle3D instance - */ - public Angle3D copy(){ - return new Angle3D(angleX, angleY, angleZ); - } - -} diff --git a/tmt/Coord2D.java b/tmt/Coord2D.java deleted file mode 100644 index 7acfecfa47..0000000000 --- a/tmt/Coord2D.java +++ /dev/null @@ -1,30 +0,0 @@ -package tmt; - -/** - * This class represents a coordinate space and its UV coordinates. This allows for - * easier flat shape planning. - * @author GaryCXJk - * - */ -public class Coord2D { - - public float xCoord; - public float yCoord; - public int uCoord; - public int vCoord; - - public Coord2D(float x, float y){ - xCoord = x; - yCoord = y; - uCoord = (int)Math.floor(x); - vCoord = (int)Math.floor(y); - } - - - public Coord2D(float x, float y, int u, int v){ - this(x, y); - uCoord = u; - vCoord = v; - } - -} diff --git a/tmt/CylinderBuilder.java b/tmt/CylinderBuilder.java deleted file mode 100644 index 6e2a6699ea..0000000000 --- a/tmt/CylinderBuilder.java +++ /dev/null @@ -1,281 +0,0 @@ -package tmt; - -import java.util.ArrayList; - -import static tmt.ModelRendererTurbo.*; - - -/** - * Cylinder Builder Tool, to prevent the need of XYZ amount of chained methods. - * @author Ferdinand Calo' (FEX___96) - */ -public class CylinderBuilder { - - private ModelRendererTurbo root; - private float x, y, z, radius, radius2, length, base_scale, top_scale; - private int segments, seglimit, direction, texDiameterW, texDiameterH, texHeight; - private Vec3f topoff = new Vec3f(); - private boolean[] togglesides = new boolean[]{false,false,false,false}; - private Vec3f toprot; - // - private boolean radialtexture = false; - private float seg_width, seg_height; - - public CylinderBuilder(ModelRendererTurbo root){ - this.root = root == null ? new ModelRendererTurbo("") : root; - } - - public CylinderBuilder setPosition(float x, float y, float z){ - this.x = x; this.y = y; this.z = z; return this; - } - - public CylinderBuilder setRadius(float first, float second){ - this.radius = first; this.radius2 = second; - texDiameterW = (int)Math.floor(radius * 2F); texDiameterH = (int)Math.floor(radius * 2F); return this; - } - - /** Use AFTER `setRadius`, else values will get overriden. */ - public CylinderBuilder setTextureDiameter(int width, int height){ - texDiameterW = width; texDiameterH = height; return this; - } - - public CylinderBuilder setLength(float length){ - this.length = length; texHeight = (int)Math.floor(length); return this; - } - - /** Use AFTER `setLength`, else value will get overriden. */ - public CylinderBuilder setTextureHeight(int height){ - texHeight = height; return this; - } - - public CylinderBuilder setTopOffset(float x, float y, float z){ - topoff = new Vec3f(x, y, z); return this; - } - - public CylinderBuilder setTopOffset(Vec3f vec){ - topoff = vec; return this; - } - - public CylinderBuilder setSidesVisible(boolean[] arr){ - this.togglesides = arr; return this; - } - - public CylinderBuilder setSidesVisible(boolean base, boolean top, boolean outer, boolean inner){ - this.togglesides = new boolean[]{ base, top, outer, inner }; return this; - } - - /** Currently no support for hollow-less cylinders to be segmented. */ - public CylinderBuilder setSegments(int amount, int limit){ - this.segments = amount; this.seglimit = limit; return this; - } - - public CylinderBuilder setScale(float base, float top){ - this.base_scale = base; this.top_scale = top; return this; - } - - /** Currently no support for hollow-less cylinders to be radial-textured. */ - public CylinderBuilder setRadialTexture(float seg_width, float seg_height){ - if(seg_width==0 && seg_height==0){ - return this; - } - radialtexture = true; this.seg_width = seg_width; this.seg_height = seg_height; return this; - } - - public CylinderBuilder setDirection(int dir){ - this.direction = dir; return this; - } - - public CylinderBuilder setTopRotation(float x, float y, float z){ - toprot = new Vec3f(x,y,z); - return this; - } - - public CylinderBuilder setTopRotation(Vec3f vec){ - return setTopRotation(vec.xCoord, vec.yCoord, vec.zCoord); - } - - public CylinderBuilder removePolygon(int index){ - if(index >= 0 && index < 4){ - togglesides[index] = true; - } - return this; - } - - public CylinderBuilder removePolygons(int... poly_indices){ - for(int index : poly_indices){ - if(index >= 0 && index < 4){ - togglesides[index] = true; - } - } - return this; - } - - public CylinderBuilder removePolygons(boolean... sides){ - for(int index = 0; index < 4; index++){ - if(sides.length >= (index + 1) && sides[index]){ - togglesides[index] = true; - } - } - return this; - } - - public ModelRendererTurbo build(){ - if(radius2 == 0f && toprot == null){ - return root.addCylinder(x, y, z, radius, length, segments, base_scale, top_scale, direction, texDiameterW, texDiameterH, texHeight, topoff); - } - if(radius < 1){ texDiameterW = 2; texDiameterH = 2; } if(length < 1){ texHeight = 2; } - // - boolean dirTop = (direction == MR_TOP || direction == MR_BOTTOM); - boolean dirSide = (direction == MR_RIGHT || direction == MR_LEFT); - boolean dirFront = (direction == MR_FRONT || direction == MR_BACK); - boolean dirMirror = (direction == MR_LEFT || direction == MR_BOTTOM || direction == MR_BACK); - if(base_scale == 0) base_scale = 1f; if(top_scale == 0) top_scale = 1f; - if(segments < 3) segments = 3; if(seglimit <= 0) seglimit = segments; boolean segl = seglimit < segments; - ArrayList polis = new ArrayList(); - //Vertex - float xLength = (dirSide ? length : 0), yLength = (dirTop ? length : 0), zLength = (dirFront ? length : 0); - float xStart = (dirMirror ? x + xLength : x); - float yStart = (dirMirror ? y + yLength : y); - float zStart = (dirMirror ? z + zLength : z); - float xEnd = (!dirMirror ? x + xLength : x) + (topoff == null ? 0 : topoff.xCoord); - float yEnd = (!dirMirror ? y + yLength : y) + (topoff == null ? 0 : topoff.yCoord); - float zEnd = (!dirMirror ? z + zLength : z) + (topoff == null ? 0 : topoff.zCoord); - float xCur = xStart, yCur = yStart, zCur = zStart, sCur = base_scale; - //Texture - float uScale = 1.0F / root.textureWidth, vScale = 1.0F / root.textureHeight; - float uOffset = uScale / 20.0F, vOffset = vScale / 20.0F; - float uCircle = texDiameterW * uScale; - float vCircle = texDiameterH * vScale; - float uCircle2 = ((int)Math.floor(radius2 * 2F)) * uScale; - float vCircle2 = ((int)Math.floor(radius2 * 2F)) * vScale; - float uWidth = (uCircle * 2F - uOffset * 2F) / segments; - float vHeight = texHeight * vScale - uOffset * 2f; - float uStart = root.textureOffsetX * uScale, vStart = root.textureOffsetY * vScale; - //Temporary Arrays - ArrayList verts0 = new ArrayList(); - ArrayList verts1 = new ArrayList(); - ArrayList verts2 = new ArrayList(); - ArrayList verts3 = new ArrayList(); - float xSize,ySize,zSize,xPlace,yPlace,zPlace; - for(int repeat = 0; repeat < 2; repeat++){//top/base faces - for(int index = 0; index < segments; index++){ - xSize = (float)((root.mirror ^ dirMirror ? -1 : 1) * Math.sin((ModelRendererTurbo.pi / segments) * index * 2F + ModelRendererTurbo.pi) * radius * sCur); - zSize = (float)(-Math.cos((ModelRendererTurbo.pi / segments) * index * 2F + ModelRendererTurbo.pi) * radius * sCur); - xPlace = xCur + (!dirSide ? xSize : 0); - yPlace = yCur + (!dirTop ? zSize : 0); - zPlace = zCur + (dirSide ? xSize : (dirTop ? zSize : 0)); - verts0.add(new TexturedVertex(xPlace, yPlace, zPlace, 0, 0)); - if(index == segments - 1){ - verts0.add(new TexturedVertex(verts0.get(0))); - } - // - xSize = (float)((root.mirror ^ dirMirror ? -1 : 1) * Math.sin((ModelRendererTurbo.pi / segments) * index * 2F + ModelRendererTurbo.pi) * radius2 * sCur); - zSize = (float)(-Math.cos((ModelRendererTurbo.pi / segments) * index * 2F + ModelRendererTurbo.pi) * radius2 * sCur); - xPlace = xCur + (!dirSide ? xSize : 0); - yPlace = yCur + (!dirTop ? zSize : 0); - zPlace = zCur + (dirSide ? xSize : (dirTop ? zSize : 0)); - verts1.add(new TexturedVertex(xPlace, yPlace, zPlace, 0, 0)); - if(index == segments - 1){ - verts1.add(new TexturedVertex(verts1.get(0))); - } - } - if(repeat == 0){ - verts2.addAll(verts0); - verts2.addAll(verts1); - } else{ - verts3.addAll(verts0); - verts3.addAll(verts1); - } - float mul = radialtexture ? repeat == 0 ? 0 : seg_height : repeat == 0 ? 0.5f : 1.5f; - if((repeat == 0 && !togglesides[0]) || (repeat == 1 && !togglesides[1])){ - for(int i = 0; i < verts0.size(); i++){ - if(i >= (verts0.size() - 1) || i >= seglimit){ - if(repeat != 0 && toprot != null){ - verts0.get(i).vector3F = toprot.getRelativeVector(verts0.get(i).vector3F); - verts1.get(i).vector3F = toprot.getRelativeVector(verts1.get(i).vector3F); - } - break; - } - TexturedVertex[] arr = new TexturedVertex[4]; - if(!radialtexture){ - xSize = (float)(Math.sin((ModelRendererTurbo.pi / segments) * i * 2F + (!dirTop ? 0 : ModelRendererTurbo.pi)) * (0.5F * uCircle - 2F * uOffset)); - ySize = (float)(Math.cos((ModelRendererTurbo.pi / segments) * i * 2F + (!dirTop ? 0 : ModelRendererTurbo.pi)) * (0.5F * vCircle - 2F * vOffset)); - arr[0] = verts0.get(i).setTexturePosition(uStart + mul * uCircle + xSize, vStart + 0.5F * vCircle + ySize); - // - xSize = (float)(Math.sin((ModelRendererTurbo.pi / segments) * i * 2F + (!dirTop ? 0 : ModelRendererTurbo.pi)) * (0.5F * uCircle2 - 2F * uOffset)); - ySize = (float)(Math.cos((ModelRendererTurbo.pi / segments) * i * 2F + (!dirTop ? 0 : ModelRendererTurbo.pi)) * (0.5F * vCircle2 - 2F * vOffset)); - arr[1] = verts1.get(i).setTexturePosition(uStart + mul * uCircle + xSize, vStart + 0.5F * vCircle + ySize); - // - xSize = (float)(Math.sin((ModelRendererTurbo.pi / segments) * (i + 1) * 2F + (!dirTop ? 0 : ModelRendererTurbo.pi)) * (0.5F * uCircle2 - 2F * uOffset)); - ySize = (float)(Math.cos((ModelRendererTurbo.pi / segments) * (i + 1) * 2F + (!dirTop ? 0 : ModelRendererTurbo.pi)) * (0.5F * vCircle2 - 2F * vOffset)); - arr[2] = verts1.get(i + 1).setTexturePosition(uStart + mul * uCircle + xSize, vStart + 0.5F * vCircle + ySize); - // - xSize = (float)(Math.sin((ModelRendererTurbo.pi / segments) * (i + 1) * 2F + (!dirTop ? 0 : ModelRendererTurbo.pi)) * (0.5F * uCircle - 2F * uOffset)); - ySize = (float)(Math.cos((ModelRendererTurbo.pi / segments) * (i + 1) * 2F + (!dirTop ? 0 : ModelRendererTurbo.pi)) * (0.5F * vCircle - 2F * vOffset)); - arr[3] = verts0.get(i + 1).setTexturePosition(uStart + mul * uCircle + xSize, vStart + 0.5F * vCircle + ySize); - } - else { - float diff = (radius - radius2) * uScale / 4; - arr[0] = verts0.get(i).setTexturePosition(uStart + (i * seg_width) * uScale, vStart + (mul * vScale)); - arr[1] = verts1.get(i).setTexturePosition(uStart + (i * seg_width) * uScale + diff, vStart + ((seg_height + mul) * vScale)); - arr[2] = verts1.get(i + 1).setTexturePosition(uStart + ((i + 1) * seg_width) * uScale - diff, vStart + ((seg_height + mul) * vScale)); - arr[3] = verts0.get(i + 1).setTexturePosition(uStart + ((i + 1) * seg_width) * uScale, vStart + (mul * vScale)); - } - if(repeat != 0 && toprot != null){ - arr[0].vector3F = verts0.get(i).vector3F = toprot.getRelativeVector(arr[0].vector3F); - arr[1].vector3F = verts1.get(i).vector3F = toprot.getRelativeVector(arr[1].vector3F); - arr[2].vector3F = /*verts1.get(i + 1).vector3F =*/ toprot.getRelativeVector(arr[2].vector3F); - arr[3].vector3F = /*verts0.get(i + 1).vector3F =*/ toprot.getRelativeVector(arr[3].vector3F); - } - polis.add(new TexturedPolygon(arr)); - if((repeat == 0) != dirFront) { - polis.get(polis.size() - 1 ).flipFace(); - } - } - } - verts0.clear(); verts1.clear(); xCur = xEnd; yCur = yEnd; zCur = zEnd; sCur = top_scale; - } - int halfv2 = verts2.size() / 2; - if(radialtexture){ vCircle = (seg_height + seg_height) * vScale; } - for(int i = 0; i < halfv2; i++){ - if(i >= seglimit && segl){ - TexturedVertex[] arr = new TexturedVertex[4]; float xpos = uStart + uOffset + (uCircle * 2f); - arr[0] = verts2.get(0).setTexturePosition(xpos, vStart + vOffset + vCircle); - arr[1] = verts3.get(0).setTexturePosition(xpos, vStart + vOffset + vCircle + vHeight); - arr[2] = verts3.get(halfv2).setTexturePosition(xpos + ((radius - radius2) * uScale), vStart + vOffset + vCircle + vHeight); - arr[3] = verts2.get(halfv2).setTexturePosition(xpos + ((radius - radius2) * uScale), vStart + vOffset + vCircle); - polis.add(new TexturedPolygon(arr)); - if(!dirFront) polis.get(polis.size() - 1 ).flipFace(); - arr = new TexturedVertex[4]; - arr[0] = verts2.get(seglimit).setTexturePosition(xpos, vStart + vOffset + vCircle + vHeight); - arr[1] = verts3.get(seglimit).setTexturePosition(xpos, vStart + vOffset + vCircle + vHeight + vHeight); - arr[2] = verts3.get(seglimit + halfv2).setTexturePosition(xpos + ((radius - radius2) * uScale), vStart + vOffset + vCircle + vHeight + vHeight); - arr[3] = verts2.get(seglimit + halfv2).setTexturePosition(xpos + ((radius - radius2) * uScale), vStart + vOffset + vCircle + vHeight); - polis.add(new TexturedPolygon(arr)); - if(dirFront) polis.get(polis.size() - 1 ).flipFace(); - break; - } - if(i >= (halfv2 - 1)) break; - TexturedVertex[] arr = new TexturedVertex[4]; - if(!togglesides[2]){ - arr[0] = verts2.get(i + 0).setTexturePosition(uStart + uOffset + uWidth * (i + 0), vStart + vOffset + vCircle); - arr[1] = verts3.get(i + 0).setTexturePosition(uStart + uOffset + uWidth * (i + 0), vStart + vOffset + vCircle + vHeight); - arr[2] = verts3.get(i + 1).setTexturePosition(uStart + uOffset + uWidth * (i + 1), vStart + vOffset + vCircle + vHeight); - arr[3] = verts2.get(i + 1).setTexturePosition(uStart + uOffset + uWidth * (i + 1), vStart + vOffset + vCircle); - polis.add(new TexturedPolygon(arr)); - if(dirFront) polis.get(polis.size() - 1 ).flipFace(); - } - if(!togglesides[3]){ - arr = new TexturedVertex[4]; - arr[0] = verts2.get(i + halfv2 + 0).setTexturePosition(uStart + uOffset + uWidth * (i + 0), vStart + vOffset + vCircle + vHeight); - arr[1] = verts3.get(i + halfv2 + 0).setTexturePosition(uStart + uOffset + uWidth * (i + 0), vStart + vOffset + vCircle + vHeight + vHeight); - arr[2] = verts3.get(i + halfv2 + 1).setTexturePosition(uStart + uOffset + uWidth * (i + 1), vStart + vOffset + vCircle + vHeight + vHeight); - arr[3] = verts2.get(i + halfv2 + 1).setTexturePosition(uStart + uOffset + uWidth * (i + 1), vStart + vOffset + vCircle + vHeight); - polis.add(new TexturedPolygon(arr)); - if(!dirFront) polis.get(polis.size() - 1 ).flipFace(); - } - } - return root.copyTo(null, polis.toArray(new TexturedPolygon[0])); - } - -} \ No newline at end of file diff --git a/tmt/FVTMFormatBase.java b/tmt/FVTMFormatBase.java deleted file mode 100644 index b90eff6ae4..0000000000 --- a/tmt/FVTMFormatBase.java +++ /dev/null @@ -1,48 +0,0 @@ -package tmt; - -import java.util.ArrayList; - -import net.minecraft.entity.Entity; - -/** - * Basic Compatiblity class for FVTM Format Models - * - * @author Ferdinand (FEX___96) - * - */ -public class FVTMFormatBase extends ModelBase { - - protected int textureX, textureY; - public ArrayList groups = new ArrayList(); - - public void addToCreators(String author){ - // - } - - @SuppressWarnings("serial") - public static class TurboList extends ArrayList{ - - public final String name; - - public TurboList(String groupname){ - this.name = groupname; - } - - } - - @Override - public void render(){ - for(TurboList list : groups){ - for(ModelRendererTurbo turbo : list) turbo.render(); - } - } - - - @Override - public void render(Entity entity, float f0, float f1, float f2, float f3, float f4, float scale){ - for(TurboList list : groups){ - for(ModelRendererTurbo turbo : list) turbo.render(); - } - } - -} diff --git a/tmt/JsonToTMT.java b/tmt/JsonToTMT.java deleted file mode 100644 index 6cc0c58262..0000000000 --- a/tmt/JsonToTMT.java +++ /dev/null @@ -1,142 +0,0 @@ -package tmt; - -import com.google.gson.JsonArray; -import com.google.gson.JsonObject; - - -/** -* Tool to parse `ModelRendererTurbo` objects from JSON. -* @Author Ferdinand Calo' (FEX___96) -*/ -public class JsonToTMT { - - //def - public static final float def = 0f; - public static final int idef = 0; - //common - public static final String[] format = new String[]{"format", "form", "f"};//1.1f - public static final String[] width = new String[]{"width", "wid", "w"}; - public static final String[] height = new String[]{"height", "hgt", "h"}; - public static final String[] depth = new String[]{"depth", "dep", "d"}; - public static final String[] offx = new String[]{"offset_x", "off_x", "offx", "ox"}; - public static final String[] offy = new String[]{"offset_y", "off_y", "offy", "oy"}; - public static final String[] offz = new String[]{"offset_z", "off_z", "offz", "oz"}; - public static final String[] expansion = new String[]{"expansion", "exp", "e"}; - public static final String[] scale = new String[]{"scale", "s"}; - public static final String[] texturex = new String[]{"texture_x", "texturex", "tex_x", "tx"}; - public static final String[] texturey = new String[]{"texture_y", "texturey", "tex_y", "ty"}; - // - public static final String[] posx = new String[]{"rotation_point_x", "pos_x", "posx", "px", "x"}; - public static final String[] posy = new String[]{"rotation_point_y", "pos_y", "posy", "py", "y"}; - public static final String[] posz = new String[]{"rotation_point_z", "pos_z", "posz", "pz", "z"}; - public static final String[] rotx = new String[]{"rotation_angle_x", "rotangle_x", "rotanglex", "rot_x", "rx"}; - public static final String[] roty = new String[]{"rotation_angle_y", "rotangle_y", "rotangley", "rot_y", "ry"}; - public static final String[] rotz = new String[]{"rotation_angle_z", "rotangle_z", "rotanglez", "rot_z", "rz"}; - //settings - public static final String[] oldrot = new String[]{"old_ration", "old_rotation_order", "oro"}; - public static final String[] mirror = new String[]{"mirror", "mir", "m"}; - public static final String[] flip = new String[]{"flip", "fl", "usd"}; - //cyl - public static final String[] radius = new String[]{"radius", "rad", "r"}; - public static final String[] length = new String[]{"length", "len", "l"}; - public static final String[] segments = new String[]{"segments", "seg", "sg"}; - public static final String[] basescale = new String[]{"base_scale", "basescale", "bs"}; - public static final String[] topscale = new String[]{"top_scale", "topscale", "ts"}; - public static final String[] direction = new String[]{"direction", "dir", "facing"}; - - - public final static ModelRendererTurbo parse(net.minecraft.client.model.ModelBase base, JsonObject obj, int tx, int ty){ - ModelRendererTurbo model = new ModelRendererTurbo(base, get(texturex, obj, idef), get(texturey, obj, idef), tx, ty); - // - float x = get(offx, obj, def); - float y = get(offy, obj, def); - float z = get(offz, obj, def); - int w = get(width, obj, idef); - int h = get(height, obj, idef); - int d = get(depth, obj, idef); - //Eternal edit: changed the switch to if statements because java6 cant switch on a string. - String s = obj.get("type").getAsString(); - if (s.equals("box") || s.equals("cube") || s.equals("s")){ - model.addBox(x, y, z, w, h, d, get(expansion, obj, def)); - } else if (s.equals("shapebox") || s.equals("sbox") || s.equals("sb")){ - model.addShapeBox(x, y, z, w, h, d, get(scale, obj, def), - get("x0", obj, def), get("y0", obj, def), get("z0", obj, def), - get("x1", obj, def), get("y1", obj, def), get("z1", obj, def), - get("x2", obj, def), get("y2", obj, def), get("z2", obj, def), - get("x3", obj, def), get("y3", obj, def), get("z3", obj, def), - get("x4", obj, def), get("y4", obj, def), get("z4", obj, def), - get("x5", obj, def), get("y5", obj, def), get("z5", obj, def), - get("x6", obj, def), get("y6", obj, def), get("z6", obj, def), - get("x7", obj, def), get("y7", obj, def), get("z7", obj, def) - ); - } else if (s.equals("cylinder") || s.equals("c")){ - model.addCylinder(x, y, z, get(radius, obj, 1f), get(length, obj, 1f), get(segments, obj, 16), get(basescale, obj, 1f), get(topscale, obj, 1f), get(direction, obj, 4)); - } else if (s.equals("cone") || s.equals("cn")){ - model.addCone(x, y, z, get(radius, obj, 1f), get(length, obj, 1f), get(segments, obj, 12), get(basescale, obj, 1f), get(direction, obj, 4)); - } - /* import unavailable: net.fexcraft.mod.lib.util.json.JsonUtil; - model.rotorder = JsonUtil.getIfExists(obj, oldrot, model.rotorder); - model.mirror = JsonUtil.getIfExists(obj, mirror, false); - model.flip = JsonUtil.getIfExists(obj, flip, false); - */ - model.rotateAngleX = get(rotx, obj, def); - model.rotateAngleY = get(roty, obj, def); - model.rotateAngleZ = get(rotz, obj, def); - // - model.setRotationPoint(get(posx, obj, def), get(posy, obj, def), get(posz, obj, def)); - return model; - } - - public final static ModelRendererTurbo[] parse(net.minecraft.client.model.ModelBase base, JsonArray array, int tx, int ty){ - if(array != null){ - ModelRendererTurbo[] model = new ModelRendererTurbo[array.size()]; - for(int i = 0; i < array.size(); i++){ - model[i] = parse(base, array.get(i).getAsJsonObject(), tx, ty); - } - return model; - } - return new ModelRendererTurbo[0]; - } - - public final static ModelRendererTurbo[] parse(net.minecraft.client.model.ModelBase base, String string, JsonObject object, int tx, int ty){ - if(base == null){ - /*unavailable import, could be easily replaced with generic debugger later on - if(Static.dev()){ - Static.halt(); - } - else{ - Print.log("Provided Modelbase is NULL, expect errors!", object); - }*/ - } - if(object.has(string) && object.get(string).isJsonArray()){ - return parse(base, object.get(string).getAsJsonArray(), tx, ty); - } - return new ModelRendererTurbo[0]; - } - - public static final float get(String s, JsonObject obj, float def){ - if(obj.has(s)){ - return obj.get(s).getAsFloat(); - } - return def; - } - - public static final float get(String[] s, JsonObject obj, float def){ - for(String str : s){ - if(obj.has(str)){ - return obj.get(str).getAsFloat(); - } - } - return 0; - } - - public static final int get(String[] s, JsonObject obj, int def){ - for(String str : s){ - if(obj.has(str)){ - return obj.get(str).getAsInt(); - } - } - return 0; - } - -} \ No newline at end of file diff --git a/tmt/Model.java b/tmt/Model.java deleted file mode 100644 index 1c56764ccf..0000000000 --- a/tmt/Model.java +++ /dev/null @@ -1,92 +0,0 @@ -package tmt; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; - -/** -* Replaces the old `ModelBase` in this package. -* @Author Ferdinand Calo' (FEX___96) -*/ - -public abstract class Model extends net.minecraft.client.model.ModelBase { - - public static final Model EMPTY; - static { - EMPTY = new Model(){ - @Override public void render(){} - @Override public void render(Object type, Entity element){} - @Override public void translateAll(float x, float y, float z){} - @Override public void rotateAll(float x, float y, float z){} - }; - } - - /** render whole model */ - public abstract void render(); - - /** render sub-model array */ - public void render(ModelRendererTurbo[] model){ - for(ModelRendererTurbo sub : model){ - if(sub.boxName.contains("lamp")) { - Minecraft.getMinecraft().entityRenderer.disableLightmap(1D); - sub.render(); - Minecraft.getMinecraft().entityRenderer.enableLightmap(1D); - } else { - sub.render(); - } - } - } - - public void render(ModelRendererTurbo[] model, float scale, boolean rotorder){ - for(ModelRendererTurbo sub : model){ - if(sub.boxName.contains("lamp")) { - Minecraft.getMinecraft().entityRenderer.disableLightmap(1D); - sub.render(); - Minecraft.getMinecraft().entityRenderer.enableLightmap(1D); - } else { - sub.render(); - } - } - } - - /** render whole model based on data and entity */ - public abstract void render(T type, Entity entity); - - protected void translate(ModelRendererTurbo[] model, float x, float y, float z){ - for(ModelRendererTurbo mod : model){ - mod.rotationPointX += x; - mod.rotationPointY += y; - mod.rotationPointZ += z; - } - } - - public abstract void translateAll(float x, float y, float z); - - protected void rotate(ModelRendererTurbo[] model, float x, float y, float z) { - for(ModelRendererTurbo mod : model){ - mod.rotateAngleX += x; - mod.rotateAngleY += y; - mod.rotateAngleZ += z; - } - } - - public abstract void rotateAll(float x, float y, float z); - - protected final void fixRotation(ModelRendererTurbo[] model, boolean... bools){ - if(bools.length >= 1 && bools[0]){ - for(ModelRendererTurbo mod : model){ - mod.rotateAngleX = -mod.rotateAngleX; - } - } - if(bools.length >= 2 && bools[1]){ - for(ModelRendererTurbo mod : model){ - mod.rotateAngleY = -mod.rotateAngleY; - } - } - if(bools.length >= 3 && bools[2]){ - for(ModelRendererTurbo mod : model){ - mod.rotateAngleZ = -mod.rotateAngleZ; - } - } - } - -} \ No newline at end of file diff --git a/tmt/ModelBase.java b/tmt/ModelBase.java deleted file mode 100644 index 26a7ffaa1a..0000000000 --- a/tmt/ModelBase.java +++ /dev/null @@ -1,80 +0,0 @@ -package tmt; - -import net.minecraft.entity.Entity; - -/** -* Similar to 'FlansMod'-type Models, for a fast convert. -* @Author Ferdinand Calo' (FEX___96) -*/ -public class ModelBase extends Model { - - public ModelRendererTurbo base[] = new ModelRendererTurbo[0]; - public ModelRendererTurbo open[] = new ModelRendererTurbo[0]; - public ModelRendererTurbo closed[] = new ModelRendererTurbo[0]; - public ModelRendererTurbo r1[] = new ModelRendererTurbo[0]; - public ModelRendererTurbo r2[] = new ModelRendererTurbo[0]; - public ModelRendererTurbo r3[] = new ModelRendererTurbo[0]; - public ModelRendererTurbo r4[] = new ModelRendererTurbo[0]; - public ModelRendererTurbo r5[] = new ModelRendererTurbo[0]; - public ModelRendererTurbo r6[] = new ModelRendererTurbo[0]; - public ModelRendererTurbo r7[] = new ModelRendererTurbo[0]; - public ModelRendererTurbo r8[] = new ModelRendererTurbo[0]; - public ModelRendererTurbo r9[] = new ModelRendererTurbo[0]; - public ModelRendererTurbo r0[] = new ModelRendererTurbo[0]; - - public void render(){ - render(base); - render(open); - render(closed); - render(r0); - render(r1); - render(r2); - render(r3); - render(r4); - render(r5); - render(r6); - render(r7); - render(r8); - render(r9); - } - - @Override - public void render(Object type, Entity ent){ - render(); - } - - @Override - public void translateAll(float x, float y, float z){ - translate(base, x, y, z); - translate(open, x, y, z); - translate(closed, x, y, z); - translate(r0, x, y, z); - translate(r1, x, y, z); - translate(r2, x, y, z); - translate(r3, x, y, z); - translate(r4, x, y, z); - translate(r5, x, y, z); - translate(r6, x, y, z); - translate(r7, x, y, z); - translate(r8, x, y, z); - translate(r9, x, y, z); - } - - @Override - public void rotateAll(float x, float y, float z){ - rotate(base, x, y, z); - rotate(open, x, y, z); - rotate(closed, x, y, z); - rotate(r0, x, y, z); - rotate(r1, x, y, z); - rotate(r2, x, y, z); - rotate(r3, x, y, z); - rotate(r4, x, y, z); - rotate(r5, x, y, z); - rotate(r6, x, y, z); - rotate(r7, x, y, z); - rotate(r8, x, y, z); - rotate(r9, x, y, z); - } - -} diff --git a/tmt/ModelConverter.java b/tmt/ModelConverter.java deleted file mode 100644 index c4bc87df68..0000000000 --- a/tmt/ModelConverter.java +++ /dev/null @@ -1,150 +0,0 @@ -package tmt; - -import net.minecraft.entity.Entity; - -/** -* Converter to use Flansmod-Type vehicle models. -* @Author Ferdinand Calo' (FEX___96) -*/ -public class ModelConverter extends ModelBase { - - public ModelRendererTurbo bodyModel[] = new ModelRendererTurbo[0]; - public ModelRendererTurbo model[] = new ModelRendererTurbo[0]; - public ModelRendererTurbo bodyDoorOpenModel[] = new ModelRendererTurbo[0]; - public ModelRendererTurbo bodyDoorCloseModel[] = new ModelRendererTurbo[0]; - - public ModelRendererTurbo turretModel[] = new ModelRendererTurbo[0]; - public ModelRendererTurbo barrelModel[] = new ModelRendererTurbo[0]; - public ModelRendererTurbo frontWheelModel[] = new ModelRendererTurbo[0]; - public ModelRendererTurbo backWheelModel[] = new ModelRendererTurbo[0]; - public ModelRendererTurbo leftFrontWheelModel[] = new ModelRendererTurbo[0]; - public ModelRendererTurbo rightFrontWheelModel[] = new ModelRendererTurbo[0]; - public ModelRendererTurbo leftBackWheelModel[] = new ModelRendererTurbo[0]; - public ModelRendererTurbo rightBackWheelModel[] = new ModelRendererTurbo[0]; - public ModelRendererTurbo rightTrackModel[] = new ModelRendererTurbo[0]; - public ModelRendererTurbo leftTrackModel[] = new ModelRendererTurbo[0]; - public ModelRendererTurbo rightTrackWheelModels[] = new ModelRendererTurbo[0]; - public ModelRendererTurbo leftTrackWheelModels[] = new ModelRendererTurbo[0]; - public ModelRendererTurbo trailerModel[] = new ModelRendererTurbo[0]; - public ModelRendererTurbo steeringWheelModel[] = new ModelRendererTurbo[0]; - - public void render(){ - render(bodyModel); - render(model); - render(bodyDoorCloseModel); - render(turretModel); - render(barrelModel); - render(frontWheelModel); - render(backWheelModel); - render(leftFrontWheelModel); - render(rightFrontWheelModel); - render(leftBackWheelModel); - render(rightBackWheelModel); - render(rightTrackModel); - render(leftTrackModel); - render(rightTrackWheelModels); - render(leftTrackWheelModels); - render(trailerModel); - render(steeringWheelModel); - } - @Override - public void render(Entity entity,float f0, float f1, float f2, float f3, float f4, float scale){ - render(bodyModel, scale,false); - render(model, scale,false); - render(bodyDoorCloseModel, scale,false); - render(turretModel, scale,false); - render(barrelModel, scale,false); - render(frontWheelModel, scale,false); - render(backWheelModel, scale,false); - render(leftFrontWheelModel, scale,false); - render(rightFrontWheelModel, scale,false); - render(leftBackWheelModel, scale,false); - render(rightBackWheelModel, scale,false); - render(rightTrackModel, scale,false); - render(leftTrackModel, scale,false); - render(rightTrackWheelModels, scale,false); - render(leftTrackWheelModels, scale,false); - render(trailerModel, scale,false); - render(steeringWheelModel, scale,false); - - } - - @Override - public void render(Object type, Entity ent){ - render(); - } - - public void translateAll(float x, float y, float z){ - translate(bodyModel, x, y, z); - translate(model, x, y, z); - translate(bodyDoorOpenModel, x, y, z); - translate(bodyDoorCloseModel, x, y, z); - translate(turretModel, x, y, z); - translate(barrelModel, x, y, z); - translate(frontWheelModel, x, y, z); - translate(backWheelModel, x, y, z); - translate(leftFrontWheelModel, x, y, z); - translate(rightFrontWheelModel, x, y, z); - translate(leftBackWheelModel, x, y, z); - translate(rightBackWheelModel, x, y, z); - translate(rightTrackModel, x, y, z); - translate(leftTrackModel, x, y, z); - translate(rightTrackWheelModels, x, y, z); - translate(leftTrackWheelModels, x, y, z); - translate(trailerModel, x, y, z); - translate(steeringWheelModel, x, y, z); - } - - @Override - public void rotateAll(float x, float y, float z){ - rotate(bodyModel, x, y, z); - rotate(model, x, y, z); - rotate(bodyDoorOpenModel, x, y, z); - rotate(bodyDoorCloseModel, x, y, z); - rotate(turretModel, x, y, z); - rotate(barrelModel, x, y, z); - rotate(frontWheelModel, x, y, z); - rotate(backWheelModel, x, y, z); - rotate(leftFrontWheelModel, x, y, z); - rotate(rightFrontWheelModel, x, y, z); - rotate(leftBackWheelModel, x, y, z); - rotate(rightBackWheelModel, x, y, z); - rotate(rightTrackModel, x, y, z); - rotate(leftTrackModel, x, y, z); - rotate(rightTrackWheelModels, x, y, z); - rotate(leftTrackWheelModels, x, y, z); - rotate(trailerModel, x, y, z); - rotate(steeringWheelModel, x, y, z); - } - - public void flipAll(){ - flip(bodyModel); - flip(model); - flip(bodyDoorOpenModel); - flip(bodyDoorCloseModel); - flip(turretModel); - flip(barrelModel); - flip(frontWheelModel); - flip(backWheelModel); - flip(leftFrontWheelModel); - flip(rightFrontWheelModel); - flip(leftBackWheelModel); - flip(rightBackWheelModel); - flip(rightTrackModel); - flip(leftTrackModel); - flip(rightTrackWheelModels); - flip(leftTrackWheelModels); - flip(trailerModel); - flip(steeringWheelModel); - } - - private void flip(ModelRendererTurbo[] model) { - //for(ModelRendererTurbo sub : model){ - // sub.doMirror(false, true, true); - // sub.setRotationPoint(sub.rotationPointX, -sub.rotationPointY, -sub.rotationPointZ); - //} - - fixRotation(model, false, true, true); - } - -} diff --git a/tmt/ModelPool.java b/tmt/ModelPool.java deleted file mode 100644 index 91243e247f..0000000000 --- a/tmt/ModelPool.java +++ /dev/null @@ -1,93 +0,0 @@ -package tmt; - -import cpw.mods.fml.common.Loader; -import org.apache.commons.io.IOUtils; - -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.util.HashMap; -import java.util.Map; - -public class ModelPool { - - public static ModelPoolEntry addFile(String file, Class modelClass, Map textureGroup){ - ModelPoolEntry entry = null; - if(modelMap.containsKey(file)){ - entry = modelMap.get(file); - entry.applyGroups(textureGroup); - return entry; - } - try{ - entry = (ModelPoolEntry)modelClass.newInstance(); - } - catch(Exception e){ - System.out.println("A new " + entry.getClass().getName() + " could not be initialized."); - System.out.println(e.getMessage()); - return null; - } - File modelFile = null; - for(int i = 0; i < resourceDir.length && (modelFile == null || !modelFile.exists()); i++){ - String absPath = new File(Loader.instance().getConfigDir().getParent(), resourceDir[i]).getAbsolutePath(); - if(!absPath.endsWith("/") || !absPath.endsWith("\\")) - absPath+= "/"; - modelFile = entry.checkValidPath(absPath + file); - } - if(modelFile == null || !modelFile.exists()){ - System.out.println("The model with the name " + file + " does not exist."); - return null; - } - entry.textures = new HashMap(); - entry.name = file; - entry.setTextureGroup("0"); - entry.getModel(modelFile); - entry.applyGroups(textureGroup); - modelMap.put(file, entry); - return entry; - } - - public static ModelPoolEntry addFileF(String file, Class modelClass, Map textureGroup) throws IOException{ - ModelPoolEntry entry = null; - if(modelMap.containsKey(file)){ - entry = modelMap.get(file); - entry.applyGroups(textureGroup); - return entry; - } - try{ - entry = (ModelPoolEntry)modelClass.newInstance(); - } - catch(Exception e){ - System.out.println("A new " + entry.getClass().getName() + " could not be initialized."); - System.out.println(e.getMessage()); - return null; - } - File modelFile = null; - InputStream in = entry.getClass().getResourceAsStream("/assets/" + file + ".obj"); - File tempfile = File.createTempFile(file, ".obj"); - FileOutputStream out = new FileOutputStream(tempfile); - tempfile.deleteOnExit(); - IOUtils.copy(in, out); - System.out.println("RENDER: " + tempfile.getPath().toString()); - modelFile = tempfile; - if(modelFile == null || !modelFile.exists()){ - System.out.println("The model with the name " + file + " does not exist."); - return null; - } - entry.textures = new HashMap(); - entry.name = file; - entry.setTextureGroup("0"); - entry.getModel(modelFile); - entry.applyGroups(textureGroup); - modelMap.put(file, entry); - return entry; - } - - private static Map modelMap = new HashMap(); - private static String[] resourceDir = new String[] { - "minecraft/resources/models/", - "minecraft/resources/mod/models/" - }; - public static final Class OBJ = ModelPoolObjEntry.class; - -} diff --git a/tmt/ModelPoolEntry.java b/tmt/ModelPoolEntry.java deleted file mode 100644 index ba10de7c26..0000000000 --- a/tmt/ModelPoolEntry.java +++ /dev/null @@ -1,65 +0,0 @@ -package tmt; - -import java.io.File; -import java.util.Collection; -import java.util.Iterator; -import java.util.Map; - -public abstract class ModelPoolEntry { - - public String name; - public TexturedVertex[] vertices; - public TexturedPolygon[] faces; - public Map textures; - protected TextureGroup texture; - protected String[] fileExtensions; - - public File checkValidPath(String path){ - File file = null; - for(int index = 0; index < fileExtensions.length && (file == null || !file.exists()); index++){ - String absPath = path; - if(!path.endsWith("." + fileExtensions[index])){ - absPath+= "." + fileExtensions[index]; - } - file = new File(absPath); - } - if(file == null || !file.exists()){ - return null; - } - return file; - } - - public abstract void getModel(File file); - - /** - * Sets the current texture group, which is used to switch the - * textures on a per-model base. Do note that any model that is - * rendered afterwards will use the same texture. To counter it, - * set a default texture, either at initialization or before - * rendering. - * @param groupName The name of the texture group. If the texture - * group doesn't exist, it creates a new group automatically. - */ - protected void setTextureGroup(String groupName){ - if(textures.size() == 0 || !textures.containsKey(groupName)){ - textures.put(groupName, new TextureGroup()); - } - texture = textures.get(groupName); - } - - protected void applyGroups( Map texturesMap){ - Collection texturesCol = textures.keySet(); - Iterator texturesItr = texturesCol.iterator(); - while(texturesItr.hasNext()){ - int nameIdx = 0; - String groupKey = texturesItr.next(); - String currentGroup = name + "_" + nameIdx + ":" + groupKey; - while(texturesMap.containsKey(currentGroup)){ - nameIdx++; - currentGroup = name + "_" + nameIdx + ":" + groupKey; - } - texturesMap.put(currentGroup, textures.get(groupKey)); - } - } - -} diff --git a/tmt/ModelPoolObjEntry.java b/tmt/ModelPoolObjEntry.java deleted file mode 100644 index 9ac9534197..0000000000 --- a/tmt/ModelPoolObjEntry.java +++ /dev/null @@ -1,195 +0,0 @@ -package tmt; - -import java.io.BufferedReader; -import java.io.File; -import java.io.FileReader; -import java.util.ArrayList; - -public class ModelPoolObjEntry extends ModelPoolEntry { - - public ModelPoolObjEntry(){ - fileExtensions = new String[] {"obj"}; - } - - public void getModel(File file){ - try{ - BufferedReader in = new BufferedReader(new FileReader(file)); - String s; - ArrayList verts = new ArrayList(); - ArrayList uvs = new ArrayList(); - ArrayList normals = new ArrayList(); - ArrayList face = new ArrayList(); - while((s = in.readLine()) != null){ - if(s.contains("#")){ - s = s.substring(0, s.indexOf("#")); - } - s = s.trim(); - if(s.equals("")){ - continue; - } - if(s.startsWith("g ")){ - setTextureGroup(s.substring(s.indexOf(" ") + 1).trim()); - continue; - } - if(s.startsWith("v ")){ - s = s.substring(s.indexOf(" ") + 1).trim(); - float[] v = new float[3]; - for(int i = 0; i < 3; i++){ - int ind = s.indexOf(" "); - if(ind > -1){ - v[i] = Float.parseFloat(s.substring(0, ind)); - } - else{ - v[i] = Float.parseFloat(s.substring(0)); - } - s = s.substring(s.indexOf(" ") + 1).trim(); - } - float flt = v[2]; - v[2] = -v[1]; - v[1] = flt; - verts.add(new TexturedVertex(v[0], v[1], v[2], 0, 0)); - continue; - } - if(s.startsWith("vt ")){ - s = s.substring(s.indexOf(" ") + 1).trim(); - float[] v = new float[2]; - for(int i = 0; i < 2; i++){ - int ind = s.indexOf(" "); - if(ind > -1){ - v[i] = Float.parseFloat(s.substring(0, ind)); - } - else{ - v[i] = Float.parseFloat(s.substring(0)); - } - s = s.substring(s.indexOf(" ") + 1).trim(); - } - uvs.add(new float[] {v[0], 1F - v[1]}); - continue; - } - if(s.startsWith("vn ")){ - s = s.substring(s.indexOf(" ") + 1).trim(); - float[] v = new float[3]; - for(int i = 0; i < 3; i++){ - int ind = s.indexOf(" "); - if(ind > -1){ - v[i] = Float.parseFloat(s.substring(0, ind)); - } - else{ - v[i] = Float.parseFloat(s.substring(0)); - } - s = s.substring(s.indexOf(" ") + 1).trim(); - } - float flt = v[2]; - v[2] = v[1]; - v[1] = flt; - normals.add(new float[] {v[0], v[1], v[2]}); - continue; - } - if(s.startsWith("f ")){ - s = s.substring(s.indexOf(" ") + 1).trim(); - ArrayList v = new ArrayList(); - String s1; - int finalPhase = 0; - float[] normal = new float[] {0F, 0F, 0F}; - ArrayList iNormal = new ArrayList(); - do{ - int vInt; - float[] curUV; - float[] curNormals; - int ind = s.indexOf(" "); - s1 = s; - if(ind > -1){ - s1 = s.substring(0, ind); - } - if(s1.indexOf("/") > -1){ - String[] f = s1.split("/"); - vInt = Integer.parseInt(f[0]) - 1; - if(f[1].equals("")){ - f[1] = f[0]; - } - int vtInt = Integer.parseInt(f[1]) - 1; - if(uvs.size() > vtInt){ - curUV = uvs.get(vtInt); - } - else{ - curUV = new float[] {0, 0}; - } - int vnInt = 0; - if(f.length == 3){ - if(f[2].equals("")){ - f[2] = f[0]; - } - vnInt = Integer.parseInt(f[2]) - 1; - } - else{ - vnInt = Integer.parseInt(f[0]) - 1; - } - if(normals.size() > vnInt){ - curNormals = normals.get(vnInt); - } - else{ - curNormals = new float[] {0, 0, 0}; - } - } - else{ - vInt = Integer.parseInt(s1) - 1; - if(uvs.size() > vInt){ - curUV = uvs.get(vInt); - } - else{ - curUV = new float[] {0, 0}; - } - if(normals.size() > vInt){ - curNormals = normals.get(vInt); - } - else{ - curNormals = new float[] {0, 0, 0}; - } - } - iNormal.add(new Vec3f(curNormals[0], curNormals[1], curNormals[2])); - normal[0]+= curNormals[0]; - normal[1]+= curNormals[1]; - normal[2]+= curNormals[2]; - if(vInt < verts.size()){ - v.add(verts.get(vInt).setTexturePosition(curUV[0], curUV[1])); - } - if(ind > -1){ - s = s.substring(s.indexOf(" ") + 1).trim(); - } - else{ - finalPhase++; - } - } - while(finalPhase < 1); - float d = (float)Math.sqrt(normal[0] * normal[0] + normal[1] * normal[1] + normal[2] * normal[2]); - normal[0]/= d; - normal[1]/= d; - normal[2]/= d; - TexturedVertex[] vToArr = new TexturedVertex[v.size()]; - for(int i = 0; i < v.size(); i++){ - vToArr[i] = v.get(i); - } - TexturedPolygon poly = new TexturedPolygon(vToArr); - poly.setNormals(normal[0], normal[1], normal[2]); - poly.setNormals(iNormal); - face.add(poly); - texture.addPoly(poly); - continue; - } - } - vertices = new TexturedVertex[verts.size()]; - for(int i = 0; i < verts.size(); i++){ - vertices[i] = verts.get(i); - } - faces = new TexturedPolygon[face.size()]; - for(int i = 0; i < face.size(); i++){ - faces[i] = face.get(i); - } - in.close(); - } - catch(Throwable e){ - // - } - } - -} diff --git a/tmt/ModelRendererTurbo.java b/tmt/ModelRendererTurbo.java deleted file mode 100644 index 8efccb4417..0000000000 --- a/tmt/ModelRendererTurbo.java +++ /dev/null @@ -1,1840 +0,0 @@ -package tmt; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -import org.lwjgl.opengl.GL11; - -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.client.renderer.GLAllocation; -import net.minecraft.util.MathHelper; -import net.minecraft.util.ResourceLocation; -/** - * An extension to the ModelRenderer class. It basically is a copy to ModelRenderer, - * however, it contains various new methods to make your models. - *

- * Since the ModelRendererTurbo class gets loaded during startup, the models made - * can be very complex. This is why I can afford to add, for example, Wavefont OBJ - * support or have the addSprite method, methods that add a lot of vertices and - * polygons. - * - * This version of TMT was updated, maintened, as well as extended for 1.8 and newer Minecraft versions by FEX___96 - * - * @author GaryCXJk, Ferdinand (FEX___96) - * @license http://fexcraft.net/license?id=tmt - * - */ -public class ModelRendererTurbo { - - public List faces = new ArrayList(); - public float rotationPointX, rotationPointY, rotationPointZ; - public float rotateAngleX, rotateAngleY, rotateAngleZ; - public int textureOffsetX, textureWidth; - public int textureOffsetY, textureHeight; - public boolean compiled; - private int displayList; - private int displayListArray[]; - public Map textureGroup; - private TextureGroup currentTextureGroup; - public boolean mirror; - public boolean flip; - public boolean rotorder = false; - public boolean showModel; - public boolean field_1402_i; - public boolean forcedRecompile; - public boolean useLegacyCompiler; - public List childModels; - public String boxName; - public boolean isShape = false; - - private String defaultTexture; - - public static final int MR_FRONT = 0; - public static final int MR_BACK = 1; - public static final int MR_LEFT = 2; - public static final int MR_RIGHT = 3; - public static final int MR_TOP = 4; - public static final int MR_BOTTOM = 5; - - //Eternal: added scaling to boxes for use with animator. - public float xScale; - public float yScale; - public float zScale; - - public static final float pi = (float)Math.PI; - - public ModelRendererTurbo(Object Object, String s){ - flip = false; - compiled = false; - displayList = 0; - mirror = false; - showModel = true; - field_1402_i = false; - faces = new ArrayList(); - forcedRecompile = false; - textureGroup = new HashMap(); - textureGroup.put("0", new TextureGroup()); - currentTextureGroup = textureGroup.get("0"); - boxName = s; - defaultTexture = ""; - useLegacyCompiler = true; - } - - public ModelRendererTurbo(Object Object){ - this(Object, ""); - } - - /** - * Creates a new ModelRenderTurbo object. It requires the coordinates of the - * position of the texture. - * @param Object - * @param textureX the x-coordinate on the texture - * @param textureY the y-coordinate on the texture - */ - public ModelRendererTurbo(Object Object, int textureX, int textureY){ - this(Object, textureX, textureY, 64, 32); - } - - /** - * Creates a new ModelRenderTurbo object. It requires the coordinates of the - * position of the texture, but also allows you to specify the width and height - * of the texture, allowing you to use bigger textures instead. - * @param Object - * @param textureX - * @param textureY - * @param textureU - * @param textureV - */ - public ModelRendererTurbo(Object Object, int textureX, int textureY, int textureU, int textureV){ - this(Object); - textureOffsetX = textureX; - textureOffsetY = textureY; - textureWidth = textureU; - textureHeight = textureV; - } - - /** - * ETERNAL: new object initialization method for animator support - * Creates a new ModelRenderTurbo object with a name. It requires the coordinates of the - * position of the texture, but also allows you to specify the width and height - * of the texture, allowing you to use bigger textures instead. - * It also requires a string to define the name of the box, this is used for animation - * @param Object the shape. - * @param textureX the texture left position - * @param textureY the texture top position - * @param textureU the texture width - * @param textureV the texture heught - * @param boxName the name of the shape. - */ - public ModelRendererTurbo(Object Object, int textureX, int textureY, int textureU, int textureV, String boxName) { - this(Object, boxName); - textureOffsetX = textureX; - textureOffsetY = textureY; - textureWidth = textureU; - textureHeight = textureV; - } - - /** - * Creates a new polygon. - * @param verts an array of vertices - */ - public void addPolygon(TexturedVertex[] verts){ - copyTo(verts, new TexturedPolygon[] {new TexturedPolygon(verts)}); - } - - /** - * Creates a new polygon, and adds UV mapping to it. - * @param verts an array of vertices - * @param uv an array of UV coordinates - */ - public void addPolygon(TexturedVertex[] verts, int[][] uv){ - try{ - for(int i = 0; i < verts.length; i++){ - verts[i] = verts[i].setTexturePosition(uv[i][0] / textureWidth, uv[i][1] / textureHeight); - } - } - finally{ - addPolygon(verts); - } - } - - /** - * Creates a new polygon with a given UV. - * @param verts an array of vertices - * @param u1 - * @param v1 - * @param u2 - * @param v2 - */ - public void addPolygon(TexturedVertex[] verts, int u1, int v1, int u2, int v2){ - copyTo(verts, new TexturedPolygon[] {addPolygonReturn(verts, u1, v1, u2, v2)}); - } - - private TexturedPolygon addPolygonReturn(TexturedVertex[] verts, float f, float g, float h, float j){ - if(verts.length < 3){ - return null; - } - float uOffs = 1.0F / (textureWidth * 10.0F); - float vOffs = 1.0F / (textureHeight * 10.0F); - if(verts.length < 4){ - float xMin = -1; - float yMin = -1; - float xMax = 0; - float yMax = 0; - for(int i = 0; i < verts.length; i++){ - float xPos = verts[i].textureX; - float yPos = verts[i].textureY; - xMax = Math.max(xMax, xPos); - xMin = (xMin < -1 ? xPos : Math.min(xMin, xPos)); - yMax = Math.max(yMax, yPos); - yMin = (yMin < -1 ? yPos : Math.min(yMin, yPos)); - } - float uMin = f / textureWidth + uOffs; - float vMin = g / textureHeight + vOffs; - float uSize = (h - f) / textureWidth - uOffs * 2; - float vSize = (j - g) / textureHeight - vOffs * 2; - float xSize = xMax - xMin; - float ySize = yMax - yMin; - for(int i = 0; i < verts.length; i++){ - float xPos = verts[i].textureX; - float yPos = verts[i].textureY; - xPos = (xPos - xMin) / xSize; - yPos = (yPos - yMin) / ySize; - verts[i] = verts[i].setTexturePosition(uMin + (xPos * uSize), vMin + (yPos * vSize)); - } - } - else{ - verts[0] = verts[0].setTexturePosition(h / textureWidth - uOffs, g / textureHeight + vOffs); - verts[1] = verts[1].setTexturePosition(f / textureWidth + uOffs, g / textureHeight + vOffs); - verts[2] = verts[2].setTexturePosition(f / textureWidth + uOffs, j / textureHeight - vOffs); - verts[3] = verts[3].setTexturePosition(h / textureWidth - uOffs, j / textureHeight - vOffs); - } - return new TexturedPolygon(verts); - } - - /** - * Adds a rectangular shape. Basically, you can make any eight-pointed shape you want, - * as the method requires eight vector coordinates. - * @param v a float array with three values, the x, y and z coordinates of the vertex - * @param v1 a float array with three values, the x, y and z coordinates of the vertex - * @param v2 a float array with three values, the x, y and z coordinates of the vertex - * @param v3 a float array with three values, the x, y and z coordinates of the vertex - * @param v4 a float array with three values, the x, y and z coordinates of the vertex - * @param v5 a float array with three values, the x, y and z coordinates of the vertex - * @param v6 a float array with three values, the x, y and z coordinates of the vertex - * @param v7 a float array with three values, the x, y and z coordinates of the vertex - * @param w the width of the shape, used in determining the texture - * @param h the height of the shape, used in determining the texture - * @param d the depth of the shape, used in determining the texture - * @return - */ - public ModelRendererTurbo addRectShape(float[] v, float[] v1, float[] v2, float[] v3, float[] v4, float[] v5, float[] v6, float[] v7, float w, float h, float d){ - return addRectShape(v, v1, v2, v3, v4, v5, v6, v7, w, h, d, null); - } - - /** Updated to match the addRectShape method from FCL at 18.Jul.2021 @author Ferdinand (FEX___96) */ - public ModelRendererTurbo addRectShape(float[] v0, float[] v1, float[] v2, float[] v3, float[] v4, float[] v5, float[] v6, float[] v7, float w, float h, float d, boolean[] sides){ - TexturedPolygon[] poly = new TexturedPolygon[6]; - TexturedVertex tv0 = new TexturedVertex(v0[0], v0[1], v0[2], 0.0F, 0.0F); - TexturedVertex tv1 = new TexturedVertex(v1[0], v1[1], v1[2], 0.0F, 8.0F); - TexturedVertex tv2 = new TexturedVertex(v2[0], v2[1], v2[2], 8.0F, 8.0F); - TexturedVertex tv3 = new TexturedVertex(v3[0], v3[1], v3[2], 8.0F, 0.0F); - TexturedVertex tv4 = new TexturedVertex(v4[0], v4[1], v4[2], 0.0F, 0.0F); - TexturedVertex tv5 = new TexturedVertex(v5[0], v5[1], v5[2], 0.0F, 8.0F); - TexturedVertex tv6 = new TexturedVertex(v6[0], v6[1], v6[2], 8.0F, 8.0F); - TexturedVertex tv7 = new TexturedVertex(v7[0], v7[1], v7[2], 8.0F, 0.0F); - //if(w % 1 != 0) w = w < 1 ? 1 : (int)w + (w % 1 > 0.5f ? 1 : 0); - //if(h % 1 != 0) h = h < 1 ? 1 : (int)h + (h % 1 > 0.5f ? 1 : 0); - //if(d % 1 != 0) d = d < 1 ? 1 : (int)d + (d % 1 > 0.5f ? 1 : 0); - if(sides == null){ - poly[0] = addPolygonReturn(new TexturedVertex[] { tv5, tv1, tv2, tv6 }, textureOffsetX + d + w, textureOffsetY + d, textureOffsetX + d + w + d, textureOffsetY + d + h); - poly[1] = addPolygonReturn(new TexturedVertex[] { tv0, tv4, tv7, tv3 }, textureOffsetX + 0, textureOffsetY + d, textureOffsetX + d, textureOffsetY + d + h); - poly[2] = addPolygonReturn(new TexturedVertex[] { tv5, tv4, tv0, tv1 }, textureOffsetX + d, textureOffsetY + 0, textureOffsetX + d + w, textureOffsetY + d); - poly[3] = addPolygonReturn(new TexturedVertex[] { tv2, tv3, tv7, tv6 }, textureOffsetX + d + w, textureOffsetY + 0, textureOffsetX + d + w + w, textureOffsetY + d); - poly[4] = addPolygonReturn(new TexturedVertex[] { tv1, tv0, tv3, tv2 }, textureOffsetX + d, textureOffsetY + d, textureOffsetX + d + w, textureOffsetY + d + h); - poly[5] = addPolygonReturn(new TexturedVertex[] { tv4, tv5, tv6, tv7 }, textureOffsetX + d + w + d, textureOffsetY + d, textureOffsetX + d + w + d + w, textureOffsetY + d + h); - } - else{ - float yp = sides[2] && sides[3] ? 0 : d; - float x0 = sides[1] ? 0 : d; - float x1 = sides[2] ? 0 : w; - float x2 = sides[4] ? 0 : w; - float x3 = sides[0] ? 0 : d; - if(sides.length > 0 && !sides[0]) poly[0] = addPolygonReturn(new TexturedVertex[] { tv5, tv1, tv2, tv6 }, textureOffsetX + x0 + x2, textureOffsetY + yp, textureOffsetX + x0 + x2 + d, textureOffsetY + yp + h); - if(sides.length > 1 && !sides[1]) poly[1] = addPolygonReturn(new TexturedVertex[] { tv0, tv4, tv7, tv3 }, textureOffsetX + 0, textureOffsetY + yp, textureOffsetX + d, textureOffsetY + yp + h); - if(sides.length > 2 && !sides[2]) poly[2] = addPolygonReturn(new TexturedVertex[] { tv5, tv4, tv0, tv1 }, textureOffsetX + x0, textureOffsetY + 0, textureOffsetX + x0 + w, textureOffsetY + d); - if(sides.length > 3 && !sides[3]) poly[3] = addPolygonReturn(new TexturedVertex[] { tv2, tv3, tv7, tv6 }, textureOffsetX + x0 + x1, textureOffsetY + 0, textureOffsetX + x0 + x1 + w, textureOffsetY + d); - if(sides.length > 4 && !sides[4]) poly[4] = addPolygonReturn(new TexturedVertex[] { tv1, tv0, tv3, tv2 }, textureOffsetX + x0, textureOffsetY + yp, textureOffsetX + x0 + w, textureOffsetY + yp + h); - if(sides.length > 5 && !sides[5]) poly[5] = addPolygonReturn(new TexturedVertex[] { tv4, tv5, tv6, tv7 }, textureOffsetX + x0 + x2 + x3, textureOffsetY + yp, textureOffsetX + x0 + x2 + x3 + w, textureOffsetY + yp + h); - } - if(mirror ^ flip){ - for(int l = 0; l < poly.length; l++){ - poly[l].flipFace(); - } - } - if(sides != null){ - int polis = 0, processed = 0; - for(int i = 0; i < poly.length; i++) if(poly[i] != null) polis++; - TexturedPolygon[] polygons = new TexturedPolygon[polis]; - for(int i = 0; i < poly.length; i++){ - if(poly[i] != null){ - polygons[processed] = poly[i]; - processed++; - } - } - poly = polygons; - } - return copyTo(null, poly); - } - - /** - * Adds a new box to the model. - * @param x the starting x-position - * @param y the starting y-position - * @param z the starting z-position - * @param w the width (over the x-direction) - * @param h the height (over the y-direction) - * @param d the depth (over the z-direction) - */ - public ModelRendererTurbo addBox(float x, float y, float z, int w, int h, int d){ - return addBox(x, y, z, w, h, d, 0.0F); - } - - /** - * Adds a new box to the model. - * @param x the starting x-position - * @param y the starting y-position - * @param z the starting z-position - * @param w the width (over the x-direction) - * @param h the height (over the y-direction) - * @param d the depth (over the z-direction) - * @param expansion the expansion of the box. It increases the size in each direction by that many. - */ - public ModelRendererTurbo addBox(float x, float y, float z, int w, int h, int d, float expansion){ - return addBox(x, y, z, w, h, d, expansion, 1F); - } - - /** - * Adds a new box to the model. - * @param x the starting x-position - * @param y the starting y-position - * @param z the starting z-position - * @param w the width (over the x-direction) - * @param h the height (over the y-direction) - * @param d the depth (over the z-direction) - * @param expansion the expansion of the box. It increases the size in each direction by that many. It's independent from the scale. - * @param scale - */ - public ModelRendererTurbo addBox(float x, float y, float z, float w, float h, float d, float expansion, float scale){ - return addBox(x, y, z, w, h, d, expansion, scale, null); - } - - public ModelRendererTurbo addBox(float x, float y, float z, float w, float h, float d, float expansion, float scale, boolean[] sides){ - if(w <1){ - w=0.01F; - x-=0.005F; - } - if(h <1){ - h=0.01F; - y-=0.005F; - } - if(d <1){ - d=0.01F; - z-=0.005F; - } - - xScale = w * scale; - yScale = h * scale; - zScale = d * scale; - - float x1 = x + xScale; - float y1 = y + yScale; - float z1 = z + zScale; - - float expX = expansion + xScale - w; - float expY = expansion + yScale - h; - float expZ = expansion + zScale - d; - - x -= expX; - y -= expY; - z -= expZ; - x1 += expansion; - y1 += expansion; - z1 += expansion; - if(mirror){ - float xTemp = x1; - x1 = x; - x = xTemp; - } - - float[] v = {x, y, z}; - float[] v1 = {x1, y, z}; - float[] v2 = {x1, y1, z}; - float[] v3 = {x, y1, z}; - float[] v4 = {x, y, z1}; - float[] v5 = {x1, y, z1}; - float[] v6 = {x1, y1, z1}; - float[] v7 = {x, y1, z1}; - return addRectShape(v, v1, v2, v3, v4, v5, v6, v7, w, h, d, sides); - } - - /** - * Adds a trapezoid-like shape. It's achieved by expanding the shape on one side. - * You can use the static variables MR_RIGHT, MR_LEFT, - * MR_FRONT, MR_BACK, MR_TOP and - * MR_BOTTOM. - * @param x the starting x-position - * @param y the starting y-position - * @param z the starting z-position - * @param w the width (over the x-direction) - * @param h the height (over the y-direction) - * @param d the depth (over the z-direction) - * @param scale the "scale" of the box. It only increases the size in each direction by that many. - * @param bottomScale the "scale" of the bottom - * @param dir the side the scaling is applied to - */ - public void addTrapezoid(float x, float y, float z, int w, int h, int d, float scale, float bottomScale, int dir){ - float f4 = x + w; - float f5 = y + h; - float f6 = z + d; - x -= scale; - y -= scale; - z -= scale; - f4 += scale; - f5 += scale; - f6 += scale; - - int m = (mirror ? -1 : 1); - if(mirror){ - float f7 = f4; - f4 = x; - x = f7; - } - float[] v = {x, y, z}; - float[] v1 = {f4, y, z}; - float[] v2 = {f4, f5, z}; - float[] v3 = {x, f5, z}; - float[] v4 = {x, y, f6}; - float[] v5 = {f4, y, f6}; - float[] v6 = {f4, f5, f6}; - float[] v7 = {x, f5, f6}; - - switch(dir){ - case MR_RIGHT: - v[1] -= bottomScale; - v[2] -= bottomScale; - v3[1] += bottomScale; - v3[2] -= bottomScale; - v4[1] -= bottomScale; - v4[2] += bottomScale; - v7[1] += bottomScale; - v7[2] += bottomScale; - break; - case MR_LEFT: - v1[1] -= bottomScale; - v1[2] -= bottomScale; - v2[1] += bottomScale; - v2[2] -= bottomScale; - v5[1] -= bottomScale; - v5[2] += bottomScale; - v6[1] += bottomScale; - v6[2] += bottomScale; - break; - case MR_FRONT: - v[0] -= m * bottomScale; - v[1] -= bottomScale; - v1[0] += m * bottomScale; - v1[1] -= bottomScale; - v2[0] += m * bottomScale; - v2[1] += bottomScale; - v3[0] -= m * bottomScale; - v3[1] += bottomScale; - break; - case MR_BACK: - v4[0] -= m * bottomScale; - v4[1] -= bottomScale; - v5[0] += m * bottomScale; - v5[1] -= bottomScale; - v6[0] += m * bottomScale; - v6[1] += bottomScale; - v7[0] -= m * bottomScale; - v7[1] += bottomScale; - break; - case MR_TOP: - v[0] -= m * bottomScale; - v[2] -= bottomScale; - v1[0] += m * bottomScale; - v1[2] -= bottomScale; - v4[0] -= m * bottomScale; - v4[2] += bottomScale; - v5[0] += m * bottomScale; - v5[2] += bottomScale; - break; - case MR_BOTTOM: - v2[0] += m * bottomScale; - v2[2] -= bottomScale; - v3[0] -= m * bottomScale; - v3[2] -= bottomScale; - v6[0] += m * bottomScale; - v6[2] += bottomScale; - v7[0] -= m * bottomScale; - v7[2] += bottomScale; - break; - } - addRectShape(v, v1, v2, v3, v4, v5, v6, v7, w, h, d); - } - - /** - * Adds a trapezoid-like shape. It's achieved by expanding the shape on one side. - * You can use the static variables MR_RIGHT, MR_LEFT, - * MR_FRONT, MR_BACK, MR_TOP and - * MR_BOTTOM. - * @param x the starting x-position - * @param y the starting y-position - * @param z the starting z-position - * @param w the width (over the x-direction) - * @param h the height (over the y-direction) - * @param d the depth (over the z-direction) - * @param scale the "scale" of the box. It only increases the size in each direction by that many. - * @param bScale1 the "scale" of the bottom - Top - * @param bScale2 the "scale" of the bottom - Bottom - * @param bScale3 the "scale" of the bottom - Left - * @param bScale4 the "scale" of the bottom - Right - * @param fScale1 the "scale" of the top - Left - * @param fScale2 the "scale" of the top - Right - * @param dir the side the scaling is applied to - */ - public void addFlexTrapezoid(float x, float y, float z, int w, int h, int d, float scale, float bScale1, float bScale2, float bScale3, float bScale4, float fScale1, float fScale2, int dir) - { - float f4 = x + w; - float f5 = y + h; - float f6 = z + d; - x -= scale; - y -= scale; - z -= scale; - f4 += scale; - f5 += scale; - f6 += scale; - - int m = (mirror ? -1 : 1); - if(mirror) - { - float f7 = f4; - f4 = x; - x = f7; - } - - float[] v = {x, y, z}; - float[] v1 = {f4, y, z}; - float[] v2 = {f4, f5, z}; - float[] v3 = {x, f5, z}; - float[] v4 = {x, y, f6}; - float[] v5 = {f4, y, f6}; - float[] v6 = {f4, f5, f6}; - float[] v7 = {x, f5, f6}; - - - switch(dir) - { - case MR_RIGHT: - v[2] -= fScale1; - v1[2] -= fScale1; - v4[2] += fScale2; - v5[2] += fScale2; - - v[1] -= bScale1; - v[2] -= bScale3; - v3[1] += bScale2; - v3[2] -= bScale3; - v4[1] -= bScale1; - v4[2] += bScale4; - v7[1] += bScale2; - v7[2] += bScale4; - break; - case MR_LEFT: - v[2] -= fScale1; - v1[2] -= fScale1; - v4[2] += fScale2; - v5[2] += fScale2; - - v1[1] -= bScale1; - v1[2] -= bScale3; - v2[1] += bScale2; - v2[2] -= bScale3; - v5[1] -= bScale1; - v5[2] += bScale4; - v6[1] += bScale2; - v6[2] += bScale4; - break; - case MR_FRONT: - v1[1] -= fScale1; - v5[1] -= fScale1; - v2[1] += fScale2; - v6[1] += fScale2; - - v[0] -= m * bScale4; - v[1] -= bScale1; - v1[0] += m * bScale3; - v1[1] -= bScale1; - v2[0] += m * bScale3; - v2[1] += bScale2; - v3[0] -= m * bScale4; - v3[1] += bScale2; - break; - case MR_BACK: - v1[1] -= fScale1; - v5[1] -= fScale1; - v2[1] += fScale2; - v6[1] += fScale2; - - v4[0] -= m * bScale4; - v4[1] -= bScale1; - v5[0] += m * bScale3; - v5[1] -= bScale1; - v6[0] += m * bScale3; - v6[1] += bScale2; - v7[0] -= m * bScale4; - v7[1] += bScale2; - break; - case MR_TOP: - v1[2] -= fScale1; - v2[2] -= fScale1; - v5[2] += fScale2; - v6[2] += fScale2; - - v[0] -= m * bScale1; - v[2] -= bScale3; - v1[0] += m * bScale2; - v1[2] -= bScale3; - v4[0] -= m * bScale1; - v4[2] += bScale4; - v5[0] += m * bScale2; - v5[2] += bScale4; - break; - case MR_BOTTOM: - v1[2] -= fScale1; - v2[2] -= fScale1; - v5[2] += fScale2; - v6[2] += fScale2; - - v2[0] += m * bScale2; - v2[2] -= bScale3; - v3[0] -= m * bScale1; - v3[2] -= bScale3; - v6[0] += m * bScale2; - v6[2] += bScale4; - v7[0] -= m * bScale1; - v7[2] += bScale4; - break; - } - - addRectShape(v, v1, v2, v3, v4, v5, v6, v7, w, h, d); - } - - /** - * Creates a shape from a 2D vector shape. - * @param x the starting x position - * @param y the starting y position - * @param z the starting z position - * @param coordinates an array of coordinates that form the shape - * @param depth the depth of the shape - * @param shapeTextureWidth the width of the texture of one side of the shape - * @param shapeTextureHeight the height of the texture the shape - * @param sideTextureWidth the width of the texture of the side of the shape - * @param sideTextureHeight the height of the texture of the side of the shape - * @param direction the direction the starting point of the shape is facing - */ - public ModelRendererTurbo addShape3D(float x, float y, float z, Coord2D[] coordinates, float depth, int shapeTextureWidth, int shapeTextureHeight, int sideTextureWidth, int sideTextureHeight, int direction){ - return addShape3D(x, y, z, coordinates, depth, shapeTextureWidth, shapeTextureHeight, sideTextureWidth, sideTextureHeight, direction, null); - } - - /** - * Creates a shape from a 2D vector shape. - * @param x the starting x position - * @param y the starting y position - * @param z the starting z position - * @param coordinates an array of coordinates that form the shape - * @param depth the depth of the shape - * @param shapeTextureWidth the width of the texture of one side of the shape - * @param shapeTextureHeight the height of the texture the shape - * @param sideTextureWidth the width of the texture of the side of the shape - * @param sideTextureHeight the height of the texture of the side of the shape - * @param direction the direction the starting point of the shape is facing - * @param faceLengths An array with the length of each face. Used to set - * the texture width of each face on the side manually. - * @return - */ - public ModelRendererTurbo addShape3D(float x, float y, float z, Coord2D[] coordinates, float depth, int shapeTextureWidth, int shapeTextureHeight, int sideTextureWidth, int sideTextureHeight, int direction, float[] faceLengths){ - return addShape3D(x, y, z, new Shape2D(coordinates), depth, shapeTextureWidth, shapeTextureHeight, sideTextureWidth, sideTextureHeight, direction, faceLengths); - } - - /** - * Creates a shape from a 2D vector shape. - * @param x the starting x position - * @param y the starting y position - * @param z the starting z position - * @param coordinates an ArrayList of coordinates that form the shape - * @param depth the depth of the shape - * @param shapeTextureWidth the width of the texture of one side of the shape - * @param shapeTextureHeight the height of the texture the shape - * @param sideTextureWidth the width of the texture of the side of the shape - * @param sideTextureHeight the height of the texture of the side of the shape - * @param direction the direction the starting point of the shape is facing - */ - public void addShape3D(float x, float y, float z, ArrayList coordinates, float depth, int shapeTextureWidth, int shapeTextureHeight, int sideTextureWidth, int sideTextureHeight, int direction){ - addShape3D(x, y, z, coordinates, depth, shapeTextureWidth, shapeTextureHeight, sideTextureWidth, sideTextureHeight, direction, null); - } - - /** - * Creates a shape from a 2D vector shape. - * @param x the starting x position - * @param y the starting y position - * @param z the starting z position - * @param coordinates an ArrayList of coordinates that form the shape - * @param depth the depth of the shape - * @param shapeTextureWidth the width of the texture of one side of the shape - * @param shapeTextureHeight the height of the texture the shape - * @param sideTextureWidth the width of the texture of the side of the shape - * @param sideTextureHeight the height of the texture of the side of the shape - * @param direction the direction the starting point of the shape is facing - * @param faceLengths An array with the length of each face. Used to set - * the texture width of each face on the side manually. - */ - public void addShape3D(float x, float y, float z, ArrayList coordinates, float depth, int shapeTextureWidth, int shapeTextureHeight, int sideTextureWidth, int sideTextureHeight, int direction, float[] faceLengths){ - addShape3D(x, y, z, new Shape2D(coordinates), depth, shapeTextureWidth, shapeTextureHeight, sideTextureWidth, sideTextureHeight, direction, faceLengths); - } - - /** - * Creates a shape from a 2D vector shape. - * @param x the starting x position - * @param y the starting y position - * @param z the starting z position - * @param shape a Shape2D which contains the coordinates of the shape points - * @param depth the depth of the shape - * @param shapeTextureWidth the width of the texture of one side of the shape - * @param shapeTextureHeight the height of the texture the shape - * @param sideTextureWidth the width of the texture of the side of the shape - * @param sideTextureHeight the height of the texture of the side of the shape - * @param direction the direction the starting point of the shape is facing - */ - public void addShape3D(float x, float y, float z, Shape2D shape, float depth, int shapeTextureWidth, int shapeTextureHeight, int sideTextureWidth, int sideTextureHeight, int direction){ - addShape3D(x, y, z, shape, depth, shapeTextureWidth, shapeTextureHeight, sideTextureWidth, sideTextureHeight, direction, null); - } - - /** - * Creates a shape from a 2D vector shape. - * @param x the starting x position - * @param y the starting y position - * @param z the starting z position - * @param shape a Shape2D which contains the coordinates of the shape points - * @param depth the depth of the shape - * @param shapeTextureWidth the width of the texture of one side of the shape - * @param shapeTextureHeight the height of the texture the shape - * @param sideTextureWidth the width of the texture of the side of the shape - * @param sideTextureHeight the height of the texture of the side of the shape - * @param direction the direction the starting point of the shape is facing - * @param faceLengths An array with the length of each face. Used to set - * the texture width of each face on the side manually. - * @return - */ - public ModelRendererTurbo addShape3D(float x, float y, float z, Shape2D shape, float depth, int shapeTextureWidth, int shapeTextureHeight, int sideTextureWidth, int sideTextureHeight, int direction, float[] faceLengths){ - float rotX = 0; - float rotY = 0; - float rotZ = 0; - switch(direction){ - case MR_LEFT: - rotY = pi / 2; - break; - case MR_RIGHT: - rotY = -pi / 2; - break; - case MR_TOP: - rotX = pi / 2; - break; - case MR_BOTTOM: - rotX = -pi / 2; - break; - case MR_FRONT: - rotY = pi; - break; - case MR_BACK: - break; - } - return addShape3D(x, y, z, shape, depth, shapeTextureWidth, shapeTextureHeight, sideTextureWidth, sideTextureHeight, rotX, rotY, rotZ, faceLengths); - } - - /** - * Creates a shape from a 2D vector shape. - * @param x the starting x position - * @param y the starting y position - * @param z the starting z position - * @param shape a Shape2D which contains the coordinates of the shape points - * @param depth the depth of the shape - * @param shapeTextureWidth the width of the texture of one side of the shape - * @param shapeTextureHeight the height of the texture the shape - * @param sideTextureWidth the width of the texture of the side of the shape - * @param sideTextureHeight the height of the texture of the side of the shape - * @param rotX the rotation around the x-axis - * @param rotY the rotation around the y-axis - * @param rotZ the rotation around the z-axis - */ - public void addShape3D(float x, float y, float z, Shape2D shape, float depth, int shapeTextureWidth, int shapeTextureHeight, int sideTextureWidth, int sideTextureHeight, float rotX, float rotY, float rotZ){ - addShape3D(x, y, z, shape, depth, shapeTextureWidth, shapeTextureHeight, sideTextureWidth, sideTextureHeight, rotX, rotY, rotZ, null); - } - - /** - * Eternal: the check for flip was removed, shapes always need to be flipped., added a boolean to define if it's a shape or not so we can properly fix rotations - * NOTE: `x` and `z` are inverted to prevent "Toolbox" or "Flansmod"-type models from being rendered wrong. - * There is currently no other commonly used editor for such models, so let's leave it that way for now. - * NOTE2: Also let's rotate by 180 degrees for whatever reason. - * @return - * @Ferdinand - */ - public ModelRendererTurbo addShape3D(float x, float y, float z, Shape2D shape, float depth, int shapeTextureWidth, int shapeTextureHeight, int sideTextureWidth, int sideTextureHeight, float rotX, float rotY, float rotZ, float[] faceLengths){ - Shape3D shape3D = shape.extrude(-x, y, -z, rotX, rotY, rotZ, depth, textureOffsetX, textureOffsetY, textureWidth, textureHeight, shapeTextureWidth, shapeTextureHeight, sideTextureWidth, sideTextureHeight, faceLengths); - for(int idx = 0; idx < shape3D.faces.length; idx++){ - shape3D.faces[idx].flipFace(); - } - isShape = true; - return copyTo(shape3D.vertices, shape3D.faces); - } - - /** - * Adds a cube the size of one pixel. It will take a pixel from the texture and - * uses that as the texture of said cube. The accurate name would actually be - * "addVoxel". This method has been added to make it more compatible with Techne, - * and allows for easy single-colored boxes. - * @param x the starting x-position - * @param y the starting y-position - * @param z the starting z-position - * @param width the width of the box - * @param height the height of the box - * @param length the length of the box - */ - public void addPixel(float x, float y, float z, float width, float height, float length){ - addPixel(x, y, z, new float[] {width, height, length}, textureOffsetX, textureOffsetY); - } - - /** - * Adds a cube the size of one pixel. It will take a pixel from the texture and - * uses that as the texture of said cube. The accurate name would actually be - * "addVoxel". It will not overwrite the model data, but rather, it will add to - * the model. - * @param x the starting x-position - * @param y the starting y-position - * @param z the starting z-position - * @param scale the "scale" of the cube, where scale is a float integer consisting of three values - * @param w the x-coordinate on the texture - * @param h the y-coordinate on the texture - */ - public void addPixel(float x, float y, float z, float[] scale, int w, int h){ - TexturedVertex[] verts = new TexturedVertex[8]; - TexturedPolygon[] poly = new TexturedPolygon[6]; - float x1 = x + scale[0]; - float y1 = y + scale[1]; - float z1 = z + scale[2]; - float[] f = {x, y, z}; - float[] f1 = {x1, y, z}; - float[] f2 = {x1, y1, z}; - float[] f3 = {x, y1, z}; - float[] f4 = {x, y, z1}; - float[] f5 = {x1, y, z1}; - float[] f6 = {x1, y1, z1}; - float[] f7 = {x, y1, z1}; - TexturedVertex positionTexturevertex = new TexturedVertex(f[0], f[1], f[2], 0.0F, 0.0F); - TexturedVertex positionTexturevertex1 = new TexturedVertex(f1[0], f1[1], f1[2], 0.0F, 8F); - TexturedVertex positionTexturevertex2 = new TexturedVertex(f2[0], f2[1], f2[2], 8F, 8F); - TexturedVertex positionTexturevertex3 = new TexturedVertex(f3[0], f3[1], f3[2], 8F, 0.0F); - TexturedVertex positionTexturevertex4 = new TexturedVertex(f4[0], f4[1], f4[2], 0.0F, 0.0F); - TexturedVertex positionTexturevertex5 = new TexturedVertex(f5[0], f5[1], f5[2], 0.0F, 8F); - TexturedVertex positionTexturevertex6 = new TexturedVertex(f6[0], f6[1], f6[2], 8F, 8F); - TexturedVertex positionTexturevertex7 = new TexturedVertex(f7[0], f7[1], f7[2], 8F, 0.0F); - verts[0] = positionTexturevertex; - verts[1] = positionTexturevertex1; - verts[2] = positionTexturevertex2; - verts[3] = positionTexturevertex3; - verts[4] = positionTexturevertex4; - verts[5] = positionTexturevertex5; - verts[6] = positionTexturevertex6; - verts[7] = positionTexturevertex7; - poly[0] = addPolygonReturn(new TexturedVertex[] { - positionTexturevertex5, positionTexturevertex1, positionTexturevertex2, positionTexturevertex6 - }, w, h, w + 1, h + 1); - poly[1] = addPolygonReturn(new TexturedVertex[] { - positionTexturevertex, positionTexturevertex4, positionTexturevertex7, positionTexturevertex3 - }, w, h, w + 1, h + 1); - poly[2] = addPolygonReturn(new TexturedVertex[] { - positionTexturevertex5, positionTexturevertex4, positionTexturevertex, positionTexturevertex1 - }, w, h, w + 1, h + 1); - poly[3] = addPolygonReturn(new TexturedVertex[] { - positionTexturevertex2, positionTexturevertex3, positionTexturevertex7, positionTexturevertex6 - }, w, h, w + 1, h + 1); - poly[4] = addPolygonReturn(new TexturedVertex[] { - positionTexturevertex1, positionTexturevertex, positionTexturevertex3, positionTexturevertex2 - }, w, h, w + 1, h + 1); - poly[5] = addPolygonReturn(new TexturedVertex[] { - positionTexturevertex4, positionTexturevertex5, positionTexturevertex6, positionTexturevertex7 - }, w, h, w + 1, h + 1); - copyTo(verts, poly); - } - - /** - * Creates a model shaped like the exact image on the texture. Note that this method will - * increase the amount of quads on your model, which could effectively slow down your - * PC, so unless it is really a necessity to use it, I'd suggest you avoid using this - * method to create your model. - * @param x the starting x-position - * @param y the starting y-position - * @param z the starting z-position - * @param w the width of the sprite - * @param h the height of the sprite - * @param expansion the expansion of the sprite. It only increases the size in each direction by that many. - */ - public void addSprite(float x, float y, float z, int w, int h, float expansion){ - addSprite(x, y, z, w, h, 1, false, false, false, false, false, expansion); - } - - /** - * Creates a model shaped like the exact image on the texture. Note that this method will - * increase the amount of quads on your model, which could effectively slow down your - * PC, so unless it is really a necessity to use it, I'd suggest you avoid using this - * method to create your model. - * @param x the starting x-position - * @param y the starting y-position - * @param z the starting z-position - * @param w the width of the sprite - * @param h the height of the sprite - * @param rotX a boolean to define if it rotates 90 degrees around its yaw-axis - * @param rotY a boolean to define if it rotates 90 degrees around its pitch-axis - * @param rotZ a boolean to define if it rotates 90 degrees around its roll-axis - * @param mirrorX a boolean to define if the sprite should be mirrored - * @param mirrorY a boolean to define if the sprite should be flipped - * @param expansion the expansion of the sprite. It only increases the size in each direction by that many. - */ - public void addSprite(float x, float y, float z, int w, int h, boolean rotX, boolean rotY, boolean rotZ, boolean mirrorX, boolean mirrorY, float expansion){ - addSprite(x, y, z, w, h, 1, rotX, rotY, rotZ, mirrorX, mirrorY, expansion); - } - - /** - * Creates a model shaped like the exact image on the texture. Note that this method will - * increase the amount of quads on your model, which could effectively slow down your - * PC, so unless it is really a necessity to use it, I'd suggest you avoid using this - * method to create your model. - * @param x the starting x-position - * @param y the starting y-position - * @param z the starting z-position - * @param w the width of the sprite - * @param h the height of the sprite - * @param d the depth of the shape itself - * @param rotX a boolean to define if it rotates 90 degrees around its yaw-axis - * @param rotY a boolean to define if it rotates 90 degrees around its pitch-axis - * @param rotZ a boolean to define if it rotates 90 degrees around its roll-axis - * @param mirrorX a boolean to define if the sprite should be mirrored - * @param mirrorY a boolean to define if the sprite should be flipped - * @param expansion the expansion of the sprite. It only increases the size in each direction by that many. - */ - public void addSprite(float x, float y, float z, int w, int h, int d, boolean rotX, boolean rotY, boolean rotZ, boolean mirrorX, boolean mirrorY, float expansion){ - addSprite(x, y, z, w, h, d, 1.0F, rotX, rotY, rotZ, mirrorX, mirrorY, expansion); - } - - /** - * Creates a model shaped like the exact image on the texture. Note that this method will - * increase the amount of quads on your model, which could effectively slow down your - * PC, so unless it is really a necessity to use it, I'd suggest you avoid using this - * method to create your model. - * @param x the starting x-position - * @param y the starting y-position - * @param z the starting z-position - * @param w the width of the sprite - * @param h the height of the sprite - * @param d the depth of the shape itself - * @param pixelScale the scale of each individual pixel - * @param rotX a boolean to define if it rotates 90 degrees around its yaw-axis - * @param rotY a boolean to define if it rotates 90 degrees around its pitch-axis - * @param rotZ a boolean to define if it rotates 90 degrees around its roll-axis - * @param mirrorX a boolean to define if the sprite should be mirrored - * @param mirrorY a boolean to define if the sprite should be flipped - * @param expansion the expansion of the sprite. It only increases the size in each direction by that many. - */ - public void addSprite(float x, float y, float z, int w, int h, int d, float pixelScale, boolean rotX, boolean rotY, boolean rotZ, boolean mirrorX, boolean mirrorY, float expansion){ - String[] mask = new String[h]; - char[] str = new char[w]; - Arrays.fill(str, '1'); - Arrays.fill(mask, new String(str)); - addSprite(x, y, z, mask, d, pixelScale, rotX, rotY, rotZ, mirrorX, mirrorY, expansion); - } - - /** - * Creates a model shaped like the exact image on the texture. Note that this method will - * increase the amount of quads on your model, which could effectively slow down your - * PC, so unless it is really a necessity to use it, I'd suggest you avoid using this - * method to create your model. - *

- * This method uses a mask string. This way you can reduce the amount of quads used. To - * use this, create a String array, where you use a 1 to signify that the pixel will be - * drawn. Any other character will cause that pixel to not be drawn. - * @param x the starting x-position - * @param y the starting y-position - * @param z the starting z-position - * @param mask an array with the mask string - * @param d the depth of the shape itself - * @param pixelScale the scale of each individual pixel - * @param rotX a boolean to define if it rotates 90 degrees around its yaw-axis - * @param rotY a boolean to define if it rotates 90 degrees around its pitch-axis - * @param rotZ a boolean to define if it rotates 90 degrees around its roll-axis - * @param mirrorX a boolean to define if the sprite should be mirrored - * @param mirrorY a boolean to define if the sprite should be flipped - * @param expansion the expansion of the sprite. It only increases the size in each direction by that many. - */ - public void addSprite(float x, float y, float z, String[] mask, int d, float pixelScale, boolean rotX, boolean rotY, boolean rotZ, boolean mirrorX, boolean mirrorY, float expansion){ - int w = mask[0].length(); - int h = mask.length; - float x1 = x - expansion; - float y1 = y - expansion; - float z1 = z - expansion; - int wDir = 0; - int hDir = 0; - int dDir = 0; - float wScale = 1F + (expansion / ( w * pixelScale)); - float hScale = 1F + (expansion / ( h * pixelScale)); - if(!rotX){ - if(!rotY){ - if(!rotZ){ - wDir = 0; - hDir = 1; - dDir = 2; - } - else{ - wDir = 1; - hDir = 0; - dDir = 2; - } - } - else{ - if(!rotZ){ - wDir = 2; - hDir = 1; - dDir = 0; - } - else{ - wDir = 2; - hDir = 0; - dDir = 1; - } - } - } - else{ - if(!rotY){ - if(!rotZ){ - wDir = 0; - hDir = 2; - dDir = 1; - } - else{ - wDir = 1; - hDir = 2; - dDir = 0; - } - } - else{ - if(!rotZ){ - wDir = 2; - hDir = 0; - dDir = 1; - } - else{ - wDir = 2; - hDir = 1; - dDir = 0; - } - } - } - int texStartX = textureOffsetX + (mirrorX ? w * 1 - 1 : 0); - int texStartY = textureOffsetY + (mirrorY ? h * 1 - 1 : 0); - int texDirX = (mirrorX ? -1 : 1); - int texDirY = (mirrorY ? -1 : 1); - float wVoxSize = getPixelSize(wScale, hScale, d * pixelScale + expansion * 2, 0, 1, wDir, 1, 1); - float hVoxSize = getPixelSize(wScale, hScale, d * pixelScale + expansion * 2, 0, 1, hDir, 1, 1); - float dVoxSize = getPixelSize(wScale, hScale, d * pixelScale + expansion * 2, 0, 1, dDir, 1, 1); - for(int i = 0; i < w; i++){ - for(int j = 0; j < h; j++){ - if(mask[j].charAt(i) == '1'){ - addPixel(x1 + getPixelSize(wScale, hScale, 0, wDir, hDir, 0, i, j), - y1 + getPixelSize(wScale, hScale, 0, wDir, hDir, 1, i, j), - z1 + getPixelSize(wScale, hScale, 0, wDir, hDir, 2, i, j), - new float[] {wVoxSize, hVoxSize, dVoxSize}, texStartX + texDirX * i, texStartY + texDirY * j); - } - } - } - } - - private float getPixelSize(float wScale, float hScale, float dScale, int wDir, int hDir, int checkDir, int texPosX, int texPosY){ - return (wDir == checkDir ? wScale * texPosX : (hDir == checkDir ? hScale * texPosY : dScale)); - } - - /** - * Adds a spherical shape. - * @param x - * @param y - * @param z - * @param r - * @param segs - * @param rings - * @param textureW - * @param textureH - */ - public ModelRendererTurbo addSphere(float x, float y, float z, float r, int segs, int rings, int textureW, int textureH){ - if(segs < 3){ - segs = 3; - } - rings++; - TexturedVertex[] tempVerts = new TexturedVertex[segs * (rings - 1) + 2]; - TexturedPolygon[] poly = new TexturedPolygon[segs * rings]; - tempVerts[0] = new TexturedVertex(x, y - r, z, 0, 0); - tempVerts[tempVerts.length - 1] = new TexturedVertex(x, y + r, z, 0, 0); - float uOffs = 1.0F / ( textureWidth * 10.0F); - float vOffs = 1.0F / ( textureHeight * 10.0F); - float texW = textureW / textureWidth - 2F * uOffs; - float texH = textureH / textureHeight - 2F * vOffs; - float segW = texW / segs; - float segH = texH / rings; - float startU = textureOffsetX / textureWidth; - float startV = textureOffsetY / textureHeight; - int currentFace = 0; - for(int j = 1; j < rings; j++){ - for(int i = 0; i < segs; i++){ - float yWidth = MathHelper.cos(-pi / 2 + (pi / rings) * j); - float yHeight = MathHelper.sin(-pi / 2 + (pi / rings) * j); - float xSize = MathHelper.sin((pi / segs) * i * 2F + pi) * yWidth; - float zSize = -MathHelper.cos((pi / segs) * i * 2F + pi) * yWidth; - int curVert = 1 + i + segs * (j - 1); - tempVerts[curVert] = new TexturedVertex(x + xSize * r, y + yHeight * r, z + zSize * r, 0, 0); - if(i > 0){ - TexturedVertex[] verts; - if(j == 1){ - verts = new TexturedVertex[4]; - verts[0] = tempVerts[curVert].setTexturePosition(startU + segW * i, startV + segH * j); - verts[1] = tempVerts[curVert - 1].setTexturePosition(startU + segW * (i - 1), startV + segH * j); - verts[2] = tempVerts[0].setTexturePosition(startU + segW * (i - 1), startV); - verts[3] = tempVerts[0].setTexturePosition(startU + segW + segW * i, startV); - } - else{ - verts = new TexturedVertex[4]; - verts[0] = tempVerts[curVert].setTexturePosition(startU + segW * i, startV + segH * j); - verts[1] = tempVerts[curVert - 1].setTexturePosition(startU + segW * (i - 1), startV + segH * j); - verts[2] = tempVerts[curVert - 1 - segs].setTexturePosition(startU + segW * (i - 1), startV + segH * (j - 1)); - verts[3] = tempVerts[curVert - segs].setTexturePosition(startU + segW * i, startV + segH * (j - 1)); - } - poly[currentFace] = new TexturedPolygon(verts); - currentFace++; - } - } - TexturedVertex[] verts; - if(j == 1){ - verts = new TexturedVertex[4]; - verts[0] = tempVerts[1].setTexturePosition(startU + segW * segs, startV + segH * j); - verts[1] = tempVerts[segs].setTexturePosition(startU + segW * (segs - 1), startV + segH * j); - verts[2] = tempVerts[0].setTexturePosition(startU + segW * (segs - 1), startV); - verts[3] = tempVerts[0].setTexturePosition(startU + segW * segs, startV); - } - else{ - verts = new TexturedVertex[4]; - verts[0] = tempVerts[1 + segs * (j - 1)].setTexturePosition(startU + texW, startV + segH * j); - verts[1] = tempVerts[segs * (j - 1) + segs].setTexturePosition(startU + texW - segW, startV + segH * j); - verts[2] = tempVerts[segs * (j - 1)].setTexturePosition(startU + texW - segW, startV + segH * (j - 1)); - verts[3] = tempVerts[1 + segs * (j - 1) - segs].setTexturePosition(startU + texW, startV + segH * (j - 1)); - } - poly[currentFace] = new TexturedPolygon(verts); - currentFace++; - } - for(int i = 0; i < segs; i++){ - TexturedVertex[] verts = new TexturedVertex[3]; - int curVert = tempVerts.length - (segs + 1); - verts[0] = tempVerts[tempVerts.length - 1].setTexturePosition(startU + segW * (i + 0.5F), startV + texH); - verts[1] = tempVerts[curVert + i].setTexturePosition(startU + segW * i, startV + texH - segH); - verts[2] = tempVerts[curVert + ((i + 1) % segs)].setTexturePosition(startU + segW * (i + 1), startV + texH - segH); - poly[currentFace] = new TexturedPolygon(verts); - currentFace++; - } - return copyTo(tempVerts, poly); - } - - /** - * Adds a cone. - * @param x the x-position of the base - * @param y the y-position of the base - * @param z the z-position of the base - * @param radius the radius of the cylinder - * @param length the length of the cylinder - * @param segments the amount of segments the cylinder is made of - */ - public ModelRendererTurbo addCone(float x, float y, float z, float radius, float length, int segments){ - return addCone(x, y, z, radius, length, segments, 1F); - } - - /** - * Adds a cone. - * - * baseScale cannot be zero. If it is, it will automatically be set to 1F. - * - * @param x the x-position of the base - * @param y the y-position of the base - * @param z the z-position of the base - * @param radius the radius of the cylinder - * @param length the length of the cylinder - * @param segments the amount of segments the cylinder is made of - * @param baseScale the scaling of the base. Can be negative. - */ - public ModelRendererTurbo addCone(float x, float y, float z, float radius, float length, int segments, float baseScale){ - return addCone(x, y, z, radius, length, segments, baseScale, MR_TOP); - } - - /** - * Adds a cone. - * - * baseScale cannot be zero. If it is, it will automatically be set to 1F. - * - * Setting the baseDirection to either MR_LEFT, MR_BOTTOM or MR_BACK will result in - * the top being placed at the (x,y,z). - * - * @param x the x-position of the base - * @param y the y-position of the base - * @param z the z-position of the base - * @param radius the radius of the cylinder - * @param length the length of the cylinder - * @param segments the amount of segments the cylinder is made of - * @param baseScale the scaling of the base. Can be negative. - * @param baseDirection the direction it faces - */ - public ModelRendererTurbo addCone(float x, float y, float z, float radius, float length, int segments, float baseScale, int baseDirection){ - return addCone(x, y, z, radius, length, segments, baseScale, baseDirection, (int)Math.floor(radius * 2F), (int)Math.floor(radius * 2F)); - } - - /** - * Adds a cone. - * - * baseScale cannot be zero. If it is, it will automatically be set to 1F. - * - * Setting the baseDirection to either MR_LEFT, MR_BOTTOM or MR_BACK will result in - * the top being placed at the (x,y,z). - * - * The textures for the sides are placed next to each other. - * - * @param x the x-position of the base - * @param y the y-position of the base - * @param z the z-position of the base - * @param radius the radius of the cylinder - * @param length the length of the cylinder - * @param segments the amount of segments the cylinder is made of - * @param baseScale the scaling of the base. Can be negative. - * @param baseDirection the direction it faces - * @param textureCircleDiameterW the diameter width of the circle on the texture - * @param textureCircleDiameterH the diameter height of the circle on the texture - */ - public ModelRendererTurbo addCone(float x, float y, float z, float radius, float length, int segments, float baseScale, int baseDirection, int textureCircleDiameterW, int textureCircleDiameterH){ - return addCylinder(x, y, z, radius, length, segments, baseScale, 0.0F, baseDirection, textureCircleDiameterW, textureCircleDiameterH, 1); - } - - /** - * Adds a cylinder. - * @param x the x-position of the base - * @param y the y-position of the base - * @param z the z-position of the base - * @param radius the radius of the cylinder - * @param length the length of the cylinder - * @param segments the amount of segments the cylinder is made of - */ - public ModelRendererTurbo addCylinder(float x, float y, float z, float radius, float length, int segments){ - return addCylinder(x, y, z, radius, length, segments, 1F, 1F); - } - - /** - * Adds a cylinder. - * - * You can make cones by either setting baseScale or topScale to zero. Setting both - * to zero will set the baseScale to 1F. - * - * @param x the x-position of the base - * @param y the y-position of the base - * @param z the z-position of the base - * @param radius the radius of the cylinder - * @param length the length of the cylinder - * @param segments the amount of segments the cylinder is made of - * @param baseScale the scaling of the base. Can be negative. - * @param topScale the scaling of the top. Can be negative. - */ - public ModelRendererTurbo addCylinder(float x, float y, float z, float radius, float length, int segments, float baseScale, float topScale){ - return addCylinder(x, y, z, radius, length, segments, baseScale, topScale, MR_TOP); - } - - /** - * Adds a cylinder. - * - * You can make cones by either setting baseScale or topScale to zero. Setting both - * to zero will set the baseScale to 1F. - * - * Setting the baseDirection to either MR_LEFT, MR_BOTTOM or MR_BACK will result in - * the top being placed at the (x,y,z). - * - * @param x the x-position of the base - * @param y the y-position of the base - * @param z the z-position of the base - * @param radius the radius of the cylinder - * @param length the length of the cylinder - * @param segments the amount of segments the cylinder is made of - * @param baseScale the scaling of the base. Can be negative. - * @param topScale the scaling of the top. Can be negative. - * @param baseDirection the direction it faces - */ - public ModelRendererTurbo addCylinder(float x, float y, float z, float radius, float length, int segments, float baseScale, float topScale, int baseDirection){ - return addCylinder(x, y, z, radius, length, segments, baseScale, topScale, baseDirection, (int)Math.floor(radius * 2F), (int)Math.floor(radius * 2F), (int)Math.floor(length), null); - } - - public ModelRendererTurbo addCylinder(float x, float y, float z, float radius, float length, int segments, float baseScale, float topScale, int baseDirection, Vec3f topoff){ - return addCylinder(x, y, z, radius, length, segments, baseScale, topScale, baseDirection, (int)Math.floor(radius * 2F), (int)Math.floor(radius * 2F), (int)Math.floor(length), topoff); - } - - /** - * Adds a cylinder. - * - * You can make cones by either setting baseScale or topScale to zero. Setting both - * to zero will set the baseScale to 1F. - * - * Setting the baseDirection to either MR_LEFT, MR_BOTTOM or MR_BACK will result in - * the top being placed at the (x,y,z). - * - * The textures for the base and top are placed next to each other, while the body - * will be placed below the circles. - * - * @param x the x-position of the base - * @param y the y-position of the base - * @param z the z-position of the base - * @param radius the radius of the cylinder - * @param length the length of the cylinder - * @param segments the amount of segments the cylinder is made of - * @param baseScale the scaling of the base. Can be negative. - * @param topScale the scaling of the top. Can be negative. - * @param baseDirection the direction it faces - * @param textureCircleDiameterW the diameter width of the circle on the texture - * @param textureCircleDiameterH the diameter height of the circle on the texture - * @param textureH the height of the texture of the body - */ - public ModelRendererTurbo addCylinder(float x, float y, float z, float radius, float length, int segments, float baseScale, float topScale, int baseDirection, int textureCircleDiameterW, int textureCircleDiameterH, int textureH){ - return addCylinder(x, y, z, radius, length, segments, baseScale, topScale, baseDirection, textureCircleDiameterW, textureCircleDiameterH, textureH, null); - } - - public ModelRendererTurbo addCylinder(float x, float y, float z, float radius, float length, int segments, float baseScale, float topScale, int baseDirection, int textureCircleDiameterW, int textureCircleDiameterH, int textureH, Vec3f topoff){ - if(radius < 1){ - int rad = radius < 0.5 ? 1 : 2; - if(textureCircleDiameterW < rad) textureCircleDiameterW = rad; - if(textureCircleDiameterH < rad) textureCircleDiameterH = rad; - } - if(length < 1) textureH = 1; - else if(length % 1 != 0){ - textureH = (int)length + (length % 1 > 0.5f ? 1 : 0); - } - boolean dirTop = (baseDirection == MR_TOP || baseDirection == MR_BOTTOM); - boolean dirSide = (baseDirection == MR_RIGHT || baseDirection == MR_LEFT); - boolean dirFront = (baseDirection == MR_FRONT || baseDirection == MR_BACK); - boolean dirMirror = (baseDirection == MR_LEFT || baseDirection == MR_BOTTOM || baseDirection == MR_BACK); - boolean coneBase = (baseScale == 0); - boolean coneTop = (topScale == 0); - if(coneBase && coneTop){ baseScale = 1F; coneBase = false; } - TexturedVertex[] tempVerts = new TexturedVertex[segments * (coneBase || coneTop ? 1 : 2) + 2]; - TexturedPolygon[] poly = new TexturedPolygon[segments * (coneBase || coneTop ? 2 : 3)]; - float xLength = (dirSide ? length : 0); - float yLength = (dirTop ? length : 0); - float zLength = (dirFront ? length : 0); - float xStart = (dirMirror ? x + xLength : x); - float yStart = (dirMirror ? y + yLength : y); - float zStart = (dirMirror ? z + zLength : z); - float xEnd = (!dirMirror ? x + xLength : x) + (topoff == null ? 0 : topoff.xCoord); - float yEnd = (!dirMirror ? y + yLength : y) + (topoff == null ? 0 : topoff.yCoord); - float zEnd = (!dirMirror ? z + zLength : z) + (topoff == null ? 0 : topoff.zCoord); - tempVerts[0] = new TexturedVertex(xStart, yStart, zStart, 0, 0); - tempVerts[tempVerts.length - 1] = new TexturedVertex(xEnd, yEnd, zEnd, 0, 0); - float xCur = xStart; - float yCur = yStart; - float zCur = zStart; - float sCur = (coneBase ? topScale : baseScale); - for(int repeat = 0; repeat < (coneBase || coneTop ? 1 : 2); repeat++){ - for(int index = 0; index < segments; index++){ - float xSize = (float)((mirror ^ dirMirror ? -1 : 1) * Math.sin((pi / segments) * index * 2F + pi) * radius * sCur); - float zSize = (float)(-Math.cos((pi / segments) * index * 2F + pi) * radius * sCur); - float xPlace = xCur + (!dirSide ? xSize : 0); - float yPlace = yCur + (!dirTop ? zSize : 0); - float zPlace = zCur + (dirSide ? xSize : (dirTop ? zSize : 0)); - tempVerts[1 + index + repeat * segments] = new TexturedVertex(xPlace, yPlace, zPlace, 0, 0 ); - } - xCur = xEnd; yCur = yEnd; zCur = zEnd; sCur = topScale; - } - float uScale = 1.0F / textureWidth; - float vScale = 1.0F / textureHeight; - float uOffset = 0;//uScale / 20.0F; - float vOffset = 0;//vScale / 20.0F; - float uCircle = textureCircleDiameterW * uScale; - float vCircle = textureCircleDiameterH * vScale; - float uWidth = (uCircle * 2F - uOffset * 2F) / segments; - float vHeight = textureH * vScale - uOffset * 2f; - float uStart = textureOffsetX * uScale; - float vStart = textureOffsetY * vScale; - TexturedVertex[] vert; - for(int index = 0; index < segments; index++){ - int index2 = (index + 1) % segments; - float uSize = (float)(Math.sin((pi / segments) * index * 2F + (!dirTop ? 0 : pi)) * (0.5F * uCircle - 2F * uOffset)); - float vSize = (float)(Math.cos((pi / segments) * index * 2F + (!dirTop ? 0 : pi)) * (0.5F * vCircle - 2F * vOffset)); - float uSize1 = (float)(Math.sin((pi / segments) * index2 * 2F + (!dirTop ? 0 : pi)) * (0.5F * uCircle - 2F * uOffset)); - float vSize1 = (float)(Math.cos((pi / segments) * index2 * 2F + (!dirTop ? 0 : pi)) * (0.5F * vCircle - 2F * vOffset)); - vert = new TexturedVertex[3]; - vert[0] = tempVerts[0].setTexturePosition(uStart + 0.5F * uCircle, vStart + 0.5F * vCircle); - vert[1] = tempVerts[1 + index2].setTexturePosition(uStart + 0.5F * uCircle + uSize1, vStart + 0.5F * vCircle + vSize1); - vert[2] = tempVerts[1 + index].setTexturePosition(uStart + 0.5F * uCircle + uSize, vStart + 0.5F * vCircle + vSize); - poly[index] = new TexturedPolygon(vert); - if(!dirFront || mirror){ - poly[index].flipFace(); - } - if(!coneBase && !coneTop){ - vert = new TexturedVertex[4]; - vert[0] = tempVerts[1 + index].setTexturePosition(uStart + uOffset + uWidth * index, vStart + vOffset + vCircle); - vert[1] = tempVerts[1 + index2].setTexturePosition(uStart + uOffset + uWidth * (index + 1), vStart + vOffset + vCircle); - vert[2] = tempVerts[1 + segments + index2].setTexturePosition(uStart + uOffset + uWidth * (index + 1), vStart + vOffset + vCircle + vHeight); - vert[3] = tempVerts[1 + segments + index].setTexturePosition(uStart + uOffset + uWidth * index, vStart + vOffset + vCircle + vHeight); - poly[index + segments] = new TexturedPolygon(vert); - if(!dirFront || mirror){ - poly[index + segments].flipFace(); - } - } - vert = new TexturedVertex[3]; - vert[0] = tempVerts[tempVerts.length - 1].setTexturePosition(uStart + 1.5F * uCircle, vStart + 0.5F * vCircle); - vert[1] = tempVerts[tempVerts.length - 2 - index].setTexturePosition(uStart + 1.5F * uCircle + uSize1, vStart + 0.5F * vCircle + vSize1); - vert[2] = tempVerts[tempVerts.length - (1 + segments) + ((segments - index) % segments)].setTexturePosition(uStart + 1.5F * uCircle + uSize, vStart + 0.5F * vCircle + vSize); - poly[poly.length - segments + index] = new TexturedPolygon(vert); - if(!dirFront || mirror){ - poly[poly.length - segments + index].flipFace(); - } - } - return copyTo(null, poly); - } - - /** - * Adds a Waveform .obj file as a model. Model files use the entire texture file. - * @param file the location of the .obj file. The location is relative to the base directories, - * which are either resources/models or resources/mods/models. - */ - public ModelRendererTurbo addObj(String file){ - useLegacyCompiler = false; - addModel(file, ModelPool.OBJ); - return this; - } - - public void addObjF(String file){ - try{ - useLegacyCompiler = false; - addModelF(file, ModelPool.OBJ); - } - catch(IOException e) { - e.printStackTrace(); - } - } - - /** - * Adds model format support. Model files use the entire texture file. - * @param file the location of the model file. The location is relative to the base directories, - * which are either resources/models or resources/mods/models. - * @param modelFormat the class of the model format interpreter - */ - public void addModel(String file, Class modelFormat){ - ModelPoolEntry entry = ModelPool.addFile(file, modelFormat, textureGroup); - if(entry == null){ - return; - } - TexturedVertex[] verts = Arrays.copyOf(entry.vertices, entry.vertices.length); - TexturedPolygon[] poly = Arrays.copyOf(entry.faces, entry.faces.length); - if(flip){ - for (TexturedPolygon face : faces) { - face.flipFace(); - } - } - copyTo(verts, poly, false); - } - - public void addModelF(String file, Class modelFormat) throws IOException{ - ModelPoolEntry entry = ModelPool.addFileF(file, modelFormat, textureGroup); - if(entry == null){ - return; - } - TexturedVertex[] verts = Arrays.copyOf(entry.vertices, entry.vertices.length); - TexturedPolygon[] poly = Arrays.copyOf(entry.faces, entry.faces.length); - if(flip){ - for (TexturedPolygon face : faces) { - face.flipFace(); - } - } - copyTo(verts, poly, false); - } - - /** - * Sets a new position for the texture offset. - * @param x the x-coordinate of the texture start - * @param y the y-coordinate of the texture start - */ - public ModelRendererTurbo setTextureOffset(int x, int y){ - textureOffsetX = x; - textureOffsetY = y; - return this; - } - - /** - * Sets the position of the shape, relative to the model's origins. Note that changing - * the offsets will not change the pivot of the model. - * @param x the x-position of the shape - * @param y the y-position of the shape - * @param z the z-position of the shape - * @return - */ - public ModelRendererTurbo setPosition(float x, float y, float z){ - rotationPointX = x; - rotationPointY = y; - rotationPointZ = z; - return this; - } - - /** - * Mirrors the model in any direction. - * @param x whether the model should be mirrored in the x-direction - * @param y whether the model should be mirrored in the y-direction - * @param z whether the model should be mirrored in the z-direction - */ - public void doMirror(boolean x, boolean y, boolean z){ - for(TexturedPolygon face : faces){ - TexturedVertex[] verts = face.vertices; - for(TexturedVertex vert : verts){ - vert.vector3F.addVector( - vert.vector3F.xCoord * (x ? -1 : 1), - vert.vector3F.xCoord * (y ? -1 : 1), - vert.vector3F.xCoord * (z ? -1 : 1)); - } - if(x^y^z){ - face.flipFace(); - } - } - } - - /** - * Sets whether the shape is mirrored or not. This has effect on the way the textures - * get displayed. When working with addSprite, addPixel and addObj, it will be ignored. - * @param isMirrored a boolean to define whether the shape is mirrored - */ - public void setMirrored(boolean isMirrored){ - mirror = isMirrored; - } - - /** - * Sets whether the shape's faces are flipped or not. When GL_CULL_FACE is enabled, - * it won't render the back faces, effectively giving you the possibility to make - * "hollow" shapes. When working with addSprite and addPixel, it will be ignored. - * @param isFlipped a boolean to define whether the shape is flipped - */ - public void setFlipped(boolean isFlipped){ - flip = isFlipped; - } - - /** - * Clears the current shape. Since all shapes are stacked into one shape, you can't - * just replace a shape by overwriting the shape with another one. In this case you - * would need to clear the shape first. - */ - public void clear(){ - faces = new ArrayList(); - } - - /** - * Copies an array of vertices and polygons to the current shape. This mainly is - * used to copy each shape to the main class, but you can just use it to copy - * your own shapes, for example from other classes, into the current class. - * @param verts the array of vertices you want to copy - * @param poly the array of polygons you want to copy - * @return - */ - public ModelRendererTurbo copyTo(TexturedVertex[] verts, TexturedPolygon[] poly){ - return copyTo(verts, poly, true); - } - - public ModelRendererTurbo copyTo(TexturedVertex[] verts, TexturedPolygon[] poly, boolean copyGroup){ - faces = new ArrayList(); - faces.addAll(Arrays.asList(poly)); - return this; - } - - /** - * Sets the current texture group, which is used to switch the - * textures on a per-model base. Do note that any model that is - * rendered afterwards will use the same texture. To counter it, - * set a default texture, either at initialization or before - * rendering. - * @param groupName The name of the texture group. If the texture - * group doesn't exist, it creates a new group automatically. - */ - public void setTextureGroup(String groupName){ - if(!textureGroup.containsKey(groupName)){ - textureGroup.put(groupName, new TextureGroup()); - } - currentTextureGroup = textureGroup.get(groupName); - } - - /** - * Gets the current texture group. - * @return a TextureGroup object. - */ - public TextureGroup getTextureGroup(){ - return currentTextureGroup; - } - - /** - * Gets the texture group with the given name. - * @param groupName the name of the texture group to return - * @return a TextureGroup object. - */ - public TextureGroup getTextureGroup(String groupName){ - if(!textureGroup.containsKey(groupName)) - return null; - return textureGroup.get(groupName); - } - - /** - * Sets the texture of the current texture group. - * @param s the filename - */ - public void setGroupTexture(String s){ - currentTextureGroup.texture = s; - } - - /** - * Sets the default texture. When left as an empty string, - * it will use the texture that has been set previously. - * Note that this will also move on to other rendered models - * of the same entity. - * @param s the filename - */ - public void setDefaultTexture(String s){ - defaultTexture = s; - } - - - - /** - * Instances a new FMT CylinderBuilder - */ - public CylinderBuilder newCylinderBuilder(){ - return new CylinderBuilder(this); - } - - - - public void render(){ - render(0.0625F, rotorder); - } - - //Eternal: why was this removed....? - public void render(float scale){ - render(scale, rotorder); - } - - /** - * Renders the shape. - * @param scale the scale of the shape. Usually is 0.0625. - */ - public void render(float scale, boolean bool){ - if(field_1402_i){ - return; - } - if(!showModel){ - return; - } - if(!compiled || forcedRecompile){ - compileDisplayList(scale); - } - if(rotateAngleX != 0.0F || rotateAngleY != 0.0F || rotateAngleZ != 0.0F){ - GL11.glPushMatrix(); - GL11.glTranslatef(rotationPointX * scale, rotationPointY * scale, rotationPointZ * scale); - if(bool){ - if(rotateAngleZ != 0.0F){ - GL11.glRotatef(rotateAngleZ * 57.29578F, 0.0F, 0.0F, 1.0F); - } - if(rotateAngleY != 0.0F){ - GL11.glRotatef(rotateAngleY * 57.29578F, 0.0F, 1.0F, 0.0F); - } - } - else{ - if(rotateAngleY != 0.0F){ - GL11.glRotatef(rotateAngleY * 57.29578F, 0.0F, 1.0F, 0.0F); - } - if(rotateAngleZ != 0.0F){ - GL11.glRotatef(rotateAngleZ * 57.29578F, 0.0F, 0.0F, 1.0F); - } - } - if(rotateAngleX != 0.0F){ - GL11.glRotatef(rotateAngleX * 57.29578F, 1.0F, 0.0F, 0.0F); - } - callDisplayList(); - if(childModels != null){ - for(Object child : childModels){ - ((ModelRenderer)child).render(scale); - } - } - GL11.glPopMatrix(); - } else - if(rotationPointX != 0.0F || rotationPointY != 0.0F || rotationPointZ != 0.0F){ - GL11.glTranslatef(rotationPointX * scale, rotationPointY * scale, rotationPointZ * scale); - callDisplayList(); - if(childModels != null){ - for(Object child : childModels){ - ((ModelRenderer)child).render(scale); - } - } - GL11.glTranslatef(-rotationPointX * scale, -rotationPointY * scale, -rotationPointZ * scale); - } - else{ - callDisplayList(); - if(childModels != null){ - for(Object child : childModels){ - ((ModelRenderer)child).render(scale); - } - } - } - } - - - public void callDisplayList(){ - if(useLegacyCompiler){ - if(GL11.glIsList(displayList)) { - GL11.glCallList(displayList); - } else { - compiled=false; - } - } - else{ - Iterator itr = textureGroup.values().iterator(); - for(int i = 0; itr.hasNext(); i++){ - if(GL11.glIsList(displayListArray[i])) { - TextureGroup curTexGroup = itr.next(); - curTexGroup.loadTexture(); - GL11.glCallList(displayListArray[i]); - if(!defaultTexture.equals("")){ - Tessellator.bindTexture(new ResourceLocation("", defaultTexture)); - } - } else { - compiled=false; - } - } - } - } - - public void compileDisplayList(float scale){ - if(useLegacyCompiler){ - compileLegacyDisplayList(scale); - } - else{ - Iterator itr = textureGroup.values().iterator(); - displayListArray = new int[textureGroup.size()]; - for(int i = 0; itr.hasNext(); i++){ - displayListArray[i] = GLAllocation.generateDisplayLists(1); - GL11.glNewList(displayListArray[i], GL11.GL_COMPILE); - Tessellator tessellator = Tessellator.getInstance(); - TextureGroup usedGroup = itr.next(); - for(int j = 0; j < usedGroup.poly.size(); j++){ - usedGroup.poly.get(j).draw(tessellator, scale); - } - GL11.glEndList(); - } - } - compiled = true; - } - - private void compileLegacyDisplayList(float scale){ - displayList = GLAllocation.generateDisplayLists(1); - GL11.glNewList(displayList, GL11.GL_COMPILE); - Tessellator tessellator = Tessellator.getInstance(); - for(TexturedPolygon poly : faces){ - poly.draw(tessellator, scale); - } - GL11.glEndList(); - } - - //ETERNAL: changed w/h/d to floats for better support of the custom render on the rails. - public ModelRendererTurbo addShapeBox(float x, float y, float z, float w, float h, float d, float scale, float x0, float y0, float z0, float x1, float y1, float z1, float x2, float y2, float z2, float x3, float y3, float z3, float x4, float y4, float z4, float x5, float y5, float z5, float x6, float y6, float z6, float x7, float y7, float z7){ - w+=w<1?0.0015f:0.001F; - h+=h<1?0.0015f:0.001F; - d+=d<1?0.0015f:0.001F; - x-=w<1?0.001f:0.0005F; - y-=h<1?0.001f:0.0005F; - z-=d<1?0.001f:0.0005F; - float f4 = x + w, f5 = y + h, f6 = z + d; - x -= scale; y -= scale; z -= scale; - f4 += scale; f5 += scale; f6 += scale; - if(mirror){ - float f7 = f4; f4 = x; x = f7; - } - - float[][] v = {{x - x0, y - y0, z - z0}, {f4 + x1, y - y1, z - z1},{f4 + x5, f5 + y5, z - z5}, {x - x4, f5 + y4, z - z4}, {x - x3, y - y3, f6 + z3}, {f4 + x2, y - y2, f6 + z2},{f4 + x6, f5 + y6, f6 + z6}, {x - x7, f5 + y7, f6 + z7}}; - return addRectShape(v[0], v[1], v[2], v[3], v[4], v[5], v[6], v[7], w, h, d); - } - - public final ModelRendererTurbo setOldRotationOrder(boolean bool){ - this.rotorder = bool; - return this; - } - - public String toString(String alt){ - String str = this.toString(); - return str == null || str.equals("") ? alt : str; - } - - public static void filterGeometry(float size, float... params ){ - int param=0; - boolean wasChanged = false; - for(int i=0; i -Modified TMT from https://github.com/Fexcraft/FCL -Original branch version tbis was copied from: https://github.com/Fexcraft/FCL/tree/9331a66cda097e55e743f2590b3dc6cf1b78f137 -
-

Primary license:

-This version of TMT was updated, maintened, as well as extended for 1.8 and newer Minecraft versions by FEX___96 - - @author GaryCXJk, Ferdinand (FEX___96) - @license http://fexcraft.net/license?id=tmt - -
-

Eternal's notes and license:

-This version is a clone of the one in TrainsInMotion: https://github.com/EternalBlueFlame/Trains-In-Motion/tree/4f1f8e4b91e2045b4a095ab352c8c161bce51c63 - - This version of TMT is heavily modified to fix some bugs in my own way, and attempt to improve performance overall. - - TC special change: because TC is written for java 6 and not 7, JsonToTMT had to be reworked because of that. - - for performance reasons, the legacy render mode is used by default since we don't expect multiple textures to be used across the same model. - - The bones system has been fully removed and replaced with some minor support functionality for my static model animator. - - For performance and typesafe reasons PositionTransformVertex has been fully reworked to no longer extend or require the variables from PositionTextureVertex. - - For performance reasons TexturedPolygon has been fully reworked to no longer require TexturedQuad. - - Because of the reworked classes mentioned above, Tessellator has been reworked so it uses floats rather than doubles for performance reasons. - - public void copyTo(PositionTextureVertex[] verts, TexturedQuad[] quad) was removed since the new reworks make it fully obsolete. - - You are free to use any of my changes to this system in any way you want with no restrictions. \ No newline at end of file diff --git a/tmt/Shape2D.java b/tmt/Shape2D.java deleted file mode 100644 index 376577631b..0000000000 --- a/tmt/Shape2D.java +++ /dev/null @@ -1,129 +0,0 @@ -package tmt; - -import net.minecraft.util.MathHelper; - -import java.util.ArrayList; - - -public class Shape2D { - - public ArrayList coords; - - public Shape2D(){ - coords = new ArrayList(); - } - - public Shape2D(Coord2D[] coordArray){ - coords = new ArrayList(); - for(Coord2D coord : coordArray){ - coords.add(coord); - } - } - - public Shape2D(ArrayList coordList){ - coords = coordList; - } - - public Coord2D[] getCoordArray(){ - return (Coord2D[])coords.toArray(); - } - - public Shape3D extrude(float x, float y, float z, float rotX, float rotY, float rotZ, float depth, int u, int v, float textureWidth, float textureHeight, int shapeTextureWidth, int shapeTextureHeight, int sideTextureWidth, int sideTextureHeight, float[] faceLengths){ - TexturedVertex[] verts = new TexturedVertex[coords.size() * 2]; - TexturedVertex[] vertsTop = new TexturedVertex[coords.size()]; - TexturedVertex[] vertsBottom = new TexturedVertex[coords.size()]; - TexturedPolygon[] poly = new TexturedPolygon[coords.size() + 2]; - Vec3f extrudeVector = new Vec3f(0, 0, depth); - - setVectorRotations(extrudeVector, rotX, rotY, rotZ); - - if(faceLengths != null && faceLengths.length < coords.size()){ - faceLengths = null; - } - float totalLength = 0; - for(int idx = 0; idx < coords.size(); idx++){ - Coord2D curCoord = coords.get(idx); - Coord2D nextCoord = coords.get((idx + 1) % coords.size()); - float texU1 = ((float)(curCoord.uCoord + u) / (float)textureWidth); - float texU2 = ((float)(shapeTextureWidth * 2 - curCoord.uCoord + u) / (float)textureWidth); - float texV = ((float)(curCoord.vCoord + v) / (float)textureHeight); - Vec3f vecCoord = new Vec3f(curCoord.xCoord, curCoord.yCoord, 0); - setVectorRotations(vecCoord, rotX, rotY, rotZ); - verts[idx] = new TexturedVertex( - x + vecCoord.xCoord, - y + vecCoord.yCoord, - z + vecCoord.zCoord, texU1, texV); - verts[idx + coords.size()] = new TexturedVertex( - x + vecCoord.xCoord - extrudeVector.xCoord, - y + vecCoord.yCoord - extrudeVector.yCoord, - z + vecCoord.zCoord - extrudeVector.zCoord, texU2, texV); - vertsTop[idx] = new TexturedVertex(verts[idx].vector3F, verts[idx].textureX, verts[idx].textureY); - vertsBottom[coords.size() - idx - 1] = new TexturedVertex(verts[idx + coords.size()].vector3F,verts[idx + coords.size()].textureX,verts[idx + coords.size()].textureY); - if(faceLengths != null){ - totalLength+= faceLengths[idx]; - } - else{ - totalLength+= Math.sqrt(Math.pow(curCoord.xCoord - nextCoord.xCoord, 2) + Math.pow(curCoord.yCoord - nextCoord.yCoord, 2)); - } - } - poly[coords.size()] = new TexturedPolygon(vertsTop); - poly[coords.size() + 1] = new TexturedPolygon(vertsBottom); - float currentLengthPosition = totalLength; - - for(int idx = 0; idx < coords.size(); idx++){ - Coord2D curCoord = coords.get(idx); - Coord2D nextCoord = coords.get((idx + 1) % coords.size()); - float currentLength = (float)Math.sqrt(Math.pow(curCoord.xCoord - nextCoord.xCoord, 2) + Math.pow(curCoord.yCoord - nextCoord.yCoord, 2)); - if(faceLengths != null){ - currentLength = faceLengths[faceLengths.length - idx - 1]; - } - float ratioPosition = currentLengthPosition / totalLength; - float ratioLength = (currentLengthPosition - currentLength) / totalLength; - float texU1 = ((float)(ratioLength * (float)sideTextureWidth + u) / (float)textureWidth); - float texU2 = ((float)(ratioPosition * (float)sideTextureWidth + u) / (float)textureWidth); - float texV1 = (((float)v + (float)shapeTextureHeight) / (float)textureHeight); - float texV2 = (((float)v + (float)shapeTextureHeight + (float)sideTextureHeight) / (float)textureHeight); - TexturedVertex[] polySide = new TexturedVertex[4]; - polySide[0] = new TexturedVertex(verts[idx].vector3F, texU2, texV1); - polySide[1] = new TexturedVertex(verts[coords.size() + idx].vector3F, texU2, texV2); - polySide[2] = new TexturedVertex(verts[coords.size() + ((idx + 1) % coords.size())].vector3F, texU1, texV2); - polySide[3] = new TexturedVertex(verts[(idx + 1) % coords.size()].vector3F, texU1, texV1); - poly[idx] = new TexturedPolygon(polySide); - currentLengthPosition -= currentLength; - } - return new Shape3D(verts, poly); - } - - protected Vec3f setVectorRotations(Vec3f extrudeVector, float xRot, float yRot, float zRot){ - float x = xRot; - float y = yRot; - float z = zRot; - float xC = MathHelper.cos(x); - float xS = MathHelper.sin(x); - float yC = MathHelper.cos(y); - float yS = MathHelper.sin(y); - float zC = MathHelper.cos(z); - float zS = MathHelper.sin(z); - - double xVec = extrudeVector.xCoord; - double yVec = extrudeVector.yCoord; - double zVec = extrudeVector.zCoord; - - // rotation around x - double xy = xC*yVec - xS*zVec; - double xz = xC*zVec + xS*yVec; - // rotation around y - double yz = yC*xz - yS*xVec; - double yx = yC*xVec + yS*xz; - // rotation around z - double zx = zC*yx - zS*xy; - double zy = zC*xy + zS*yx; - - xVec = zx; - yVec = zy; - zVec = yz; - - return new Vec3f((float) xVec, (float) yVec, (float) zVec); - } - -} diff --git a/tmt/Shape3D.java b/tmt/Shape3D.java deleted file mode 100644 index 610bf358c5..0000000000 --- a/tmt/Shape3D.java +++ /dev/null @@ -1,13 +0,0 @@ -package tmt; - -public class Shape3D { - - public TexturedVertex[] vertices; - public TexturedPolygon[] faces; - - public Shape3D(TexturedVertex[] verts, TexturedPolygon[] poly){ - vertices = verts; - faces = poly; - } - -} diff --git a/tmt/Tessellator.java b/tmt/Tessellator.java deleted file mode 100644 index cd1953718d..0000000000 --- a/tmt/Tessellator.java +++ /dev/null @@ -1,167 +0,0 @@ -package tmt; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.GLAllocation; -import net.minecraft.client.renderer.texture.ITextureObject; -import net.minecraft.client.renderer.texture.SimpleTexture; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import train.common.Traincraft; -import train.common.core.CommonProxy; -import train.common.core.handlers.ConfigHandler; - -import java.nio.ByteBuffer; -import java.nio.FloatBuffer; -import java.nio.IntBuffer; -import java.util.Arrays; -import java.util.List; - -import static org.lwjgl.opengl.ARBBufferObject.glBindBufferARB; -import static org.lwjgl.opengl.ARBPixelBufferObject.GL_PIXEL_UNPACK_BUFFER_ARB; -import static org.lwjgl.opengl.GL11.GL_TEXTURE_2D; - -/** -* @Author Ferdinand (FEX___96) -* -*/ -@SideOnly(Side.CLIENT) -public class Tessellator{ - - private static ByteBuffer bbuf = GLAllocation.createDirectByteBuffer(0x200000 * 4); - private int rbs = 0, verts = 0, /*br, c,*/ rbi = 0, /*vertices = 0,*/ dm, n, vtc, o; - private boolean ht = false, in = false, drawing = false; - public static Tessellator INSTANCE = new Tessellator(); - private static FloatBuffer fbuf = bbuf.asFloatBuffer(); - private static IntBuffer ibuf = bbuf.asIntBuffer(); - private float u, v, w, x, y, z; - private int[] rb; - - public static Tessellator getInstance(){ - return INSTANCE; - } - - public Tessellator(){ - super(); - } - - public void startDrawing(int i){ - if(!drawing){ - drawing = true; dm = i; - in = ht = false; - reset(); - GL11.glColor4f(1f, 1f, 1f, 1f); - } - } - - public int draw(){ - if(drawing){ - drawing = false; o = 0; - while(o < verts){ - vtc = Math.min(verts - o, 0x200000 >> 5); - ibuf.clear(); ibuf.put(rb, o * 10, vtc * 10); bbuf.position(0); bbuf.limit(vtc * 40); o += vtc; - if(ht){ - fbuf.position(3); - GL11.glTexCoordPointer(4, 40, fbuf); - GL11.glEnableClientState(GL11.GL_TEXTURE_COORD_ARRAY); - } - if(in){ - bbuf.position(32); - GL11.glNormalPointer(40, bbuf); - GL11.glEnableClientState(GL11.GL_NORMAL_ARRAY); - } - fbuf.position(0); - GL11.glVertexPointer(3, 40, fbuf); - GL11.glEnableClientState(GL11.GL_VERTEX_ARRAY); - GL11.glDrawArrays(dm, 0, vtc); - GL11.glDisableClientState(GL11.GL_VERTEX_ARRAY); - if(ht){ - GL11.glDisableClientState(GL11.GL_TEXTURE_COORD_ARRAY); - } - if(in){ - GL11.glDisableClientState(GL11.GL_NORMAL_ARRAY); - } - } - if(rbs > 0x20000 && rbi < (rbs << 3)){ - rbs = 0; rb = null; - } - reset(); - } - - return 0; - } - - private void reset(){ - verts = rbi = 0;//vertices = 0; - - bbuf.clear(); - } - - public void addVertex(float par1, float par3, float par5){ - if(rbi >= rbs - 40) { - if(rbs == 0){rbs = 0x10000; rb = new int[rbs];} - else{rbs *= 2; rb = Arrays.copyOf(rb, rbs);} - } - if(ht){ - rb[rbi + 3] = Float.floatToRawIntBits(u); rb[rbi + 4] = Float.floatToRawIntBits(v); - rb[rbi + 5] = Float.floatToRawIntBits(0.0F); rb[rbi + 6] = Float.floatToRawIntBits(w); - } - if(in){rb[rbi + 8] = n;} - rb[rbi] = Float.floatToRawIntBits((par1 + x)); - rb[rbi + 1] = Float.floatToRawIntBits((par3 + y)); - rb[rbi + 2] = Float.floatToRawIntBits((par5 + z)); - rbi += 10; verts++; //vertices++; - } - - public void addVertexWithUV(float i, float j, float k, float l, float m){ - this.setTextureUV(l, m); this.addVertex(i, j, k); - } - - public void addVertexWithUVW(float i, float j, float k, float l, float m, float n){ - this.setTextureUVW(l, m, n); this.addVertex(i, j, k); - } - - public void setNormal(float x, float y, float z){ - in = true; - byte b0 = (byte)((int)(x * 127.0F)); byte b1 = (byte)((int)(y * 127.0F)); byte b2 = (byte)((int)(z * 127.0F)); - n = b0 & 255 | (b1 & 255) << 8 | (b2 & 255) << 16; - } - - public void setTextureUV(float i, float j){ - this.ht = true; this.u = i; this.v = j; this.w = 1.0F; - } - - public void setTextureUVW(float i, float j, float k){ - this.ht = true; this.u = i; this.v = j; this.w = k; - } - - public void setTranslation(float x, float y, float z){ - this.x = x; this.y = y; this.z = z; - } - - public void addTranslation(float x, float y, float z){ - this.x += x; this.y += y; this.z += z; - } - - - /** - * Eternal: custom texture binding method, generally same as vanilla, but possible to improve performance later. - * @param textureURI - */ - public static void bindTexture(ResourceLocation textureURI) { - if (ConfigHandler.FORCE_TEXTURE_BINDING) { - Minecraft.getMinecraft().renderEngine.bindTexture(textureURI); - } else { - ITextureObject object = Minecraft.getMinecraft().getTextureManager().getTexture(textureURI); - if (object == null) { - object = new SimpleTexture(textureURI); - Minecraft.getMinecraft().getTextureManager().loadTexture(textureURI, object); - } - if(GL11.glGetInteger(GL11.GL_TEXTURE_2D) != object.getGlTextureId()) { - GL11.glBindTexture(GL_TEXTURE_2D, object.getGlTextureId()); - } - } - } - -} diff --git a/tmt/TextureGroup.java b/tmt/TextureGroup.java deleted file mode 100644 index 0553138fca..0000000000 --- a/tmt/TextureGroup.java +++ /dev/null @@ -1,37 +0,0 @@ -package tmt; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.texture.TextureManager; -import net.minecraft.util.ResourceLocation; - -import java.util.ArrayList; - -public class TextureGroup { - - public ArrayList poly; - public String texture; - - public TextureGroup(){ - poly = new ArrayList(); - texture = ""; - } - - public void addPoly(TexturedPolygon quad){ - poly.add(quad); - } - - public void loadTexture(){ - loadTexture(-1); - } - - public void loadTexture(int defaultTexture){ - if(!texture.equals("")){ - TextureManager renderengine = Minecraft.getMinecraft().renderEngine; - renderengine.bindTexture(new ResourceLocation("", texture)); - } - else if(defaultTexture > -1){ - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation("", "")); - } - } - -} diff --git a/tmt/TexturedPolygon.java b/tmt/TexturedPolygon.java deleted file mode 100644 index 6f34a7c9e9..0000000000 --- a/tmt/TexturedPolygon.java +++ /dev/null @@ -1,76 +0,0 @@ -package tmt; - -import org.lwjgl.opengl.GL11; - -import java.util.ArrayList; - - -public class TexturedPolygon { - - private float[] normals; - private ArrayList iNormals; - public TexturedVertex[] vertices; - - public TexturedPolygon(TexturedVertex apositionTexturevertex[]){ - normals = new float[0]; - iNormals = new ArrayList(); - vertices = apositionTexturevertex; - } - - - public void setNormals(float x, float y, float z){ - normals = new float[] {x, y, z}; - } - - public void setNormals(ArrayList iNormal){ - iNormals = iNormal; - } - - public void draw(Tessellator tessellator, float f){ - if(vertices.length == 3){ - tessellator.startDrawing(GL11.GL_TRIANGLES); - } - else if (vertices.length == 4){ - tessellator.startDrawing(GL11.GL_QUADS); - } - else{ - tessellator.startDrawing(GL11.GL_POLYGON); - } - - if(iNormals.size() == 0){ - if(normals.length == 3){ - tessellator.setNormal(normals[0], normals[1], normals[2]); - } - else if(vertices.length >= 3){ - Vec3f Vec3d2 = - vertices[1].vector3F.subtract(vertices[2].vector3F) - .crossProduct(vertices[1].vector3F.subtract(vertices[0].vector3F)) - .normalize(); - tessellator.setNormal(Vec3d2.xCoord, Vec3d2.yCoord, Vec3d2.zCoord); - } - else{ - return; - } - } - for(int i = 0; i < vertices.length; i++){ - TexturedVertex positionTexturevertex = vertices[i]; - if(i < iNormals.size()){ - tessellator.setNormal(iNormals.get(i).xCoord, iNormals.get(i).yCoord, iNormals.get(i).zCoord); - } - tessellator.addVertexWithUV(positionTexturevertex.vector3F.xCoord * f, positionTexturevertex.vector3F.yCoord * f, positionTexturevertex.vector3F.zCoord * f, positionTexturevertex.textureX, positionTexturevertex.textureY); - } - tessellator.draw(); - } - - - public void flipFace() { - TexturedVertex[] apositiontexturevertex = new TexturedVertex[this.vertices.length]; - - for (int i = 0; i < this.vertices.length; ++i) { - apositiontexturevertex[i] = this.vertices[this.vertices.length - i - 1]; - } - - this.vertices = apositiontexturevertex; - } - -} diff --git a/tmt/TexturedVertex.java b/tmt/TexturedVertex.java deleted file mode 100644 index e6c78b0ccb..0000000000 --- a/tmt/TexturedVertex.java +++ /dev/null @@ -1,37 +0,0 @@ -package tmt; - -import net.minecraft.client.model.PositionTextureVertex; - -//TexturedVertex sounds cooler and is shorter than PositionTextureVertex -public class TexturedVertex { - - public Vec3f vector3F; - public float textureX; - public float textureY; - - public TexturedVertex(float x, float y, float z, float u, float v){ - this(new Vec3f(x, y, z), u, v); - } - - @Deprecated - public TexturedVertex(PositionTextureVertex vertex, float u, float v){ - vector3F = new Vec3f(vertex.vector3D); - textureX = u; - textureY = v; - } - - public TexturedVertex(Vec3f vector, float u, float v){ - vector3F = new Vec3f(vector.xCoord, vector.yCoord, vector.zCoord); - textureX = u; - textureY = v; - } - public TexturedVertex(TexturedVertex vert){ - this(vert.vector3F, vert.textureX, vert.textureY); - } - - public TexturedVertex setTexturePosition(float p_78240_1_, float p_78240_2_) { - return new TexturedVertex(vector3F, p_78240_1_, p_78240_2_); - } - - -} diff --git a/tmt/Vec3d.java b/tmt/Vec3d.java deleted file mode 100644 index 95a6e604c2..0000000000 --- a/tmt/Vec3d.java +++ /dev/null @@ -1,28 +0,0 @@ -package tmt; - -import net.minecraft.util.Vec3; - -/** - * @author EternalBlueFlame - *

Vector 3d

- * this is intended to replicate the Vec3d from minecraft 1.8+ - * mostly it just makes handling vector 3's simpler. - */ -public class Vec3d extends Vec3 { - - public Vec3d(double x, double y, double z){ - super(x,y,z); - } - - public Vec3d(Vec3 vec){super(vec.xCoord, vec.yCoord, vec.zCoord);} - - public void add(Vec3d vec2){ - xCoord += vec2.xCoord; - yCoord += vec2.yCoord; - zCoord += vec2.zCoord; - } - - public Vec3d subtract(Vec3d vec2){ - return new Vec3d(xCoord-vec2.xCoord,yCoord-vec2.yCoord,zCoord-vec2.zCoord); - } -} diff --git a/tmt/Vec3f.java b/tmt/Vec3f.java deleted file mode 100644 index f280ad96b7..0000000000 --- a/tmt/Vec3f.java +++ /dev/null @@ -1,77 +0,0 @@ -package tmt; - -import net.minecraft.util.MathHelper; -import net.minecraft.util.Vec3; -import org.lwjgl.util.vector.Matrix4f; -import org.lwjgl.util.vector.Vector3f; - -/** - * basically the same as Vec3D, but a float. Usually used for storing rotations. - * @author Ferdinand - */ - -public class Vec3f { - - public float xCoord; - public float yCoord; - public float zCoord; - - public Vec3f(){ - xCoord = 0; - yCoord = 0; - zCoord = 0; - } - - public Vec3f(Vec3 v){ - xCoord = (float)v.xCoord; - yCoord = (float)v.yCoord; - zCoord= (float)v.zCoord; - } - - public Vec3f(float f, float g, float h){ - xCoord = f; - yCoord = g; - zCoord = h; - } - - public Vec3f(double x, double y, double z){ - xCoord = (float) x; - yCoord = (float) y; - zCoord = (float) z; - } - - public Vec3f crossProduct(Vec3f p_72431_1_) { - return new Vec3f(this.yCoord * p_72431_1_.zCoord - this.zCoord * p_72431_1_.yCoord, this.zCoord * p_72431_1_.xCoord - this.xCoord * p_72431_1_.zCoord, this.xCoord * p_72431_1_.yCoord - this.yCoord * p_72431_1_.xCoord); - } - - public Vec3f normalize() { - float d0 = MathHelper.sqrt_double(this.xCoord * this.xCoord + this.yCoord * this.yCoord + this.zCoord * this.zCoord); - return d0 < 1.0E-4D ? new Vec3f(0.0F, 0.0F, 0.0F) : new Vec3f(this.xCoord / d0, this.yCoord / d0, this.zCoord / d0); - } - - public void add(Vec3f vec){ - xCoord+=vec.xCoord; - yCoord+=vec.yCoord; - zCoord+=vec.zCoord; - } - public Vec3f addVector(float x, float y, float z){ - return new Vec3f(xCoord + x,yCoord + y,zCoord + z); - } - - public Vec3f subtract(Vec3f vec){ - return new Vec3f(xCoord-vec.xCoord, - yCoord-vec.yCoord, - zCoord-vec.zCoord); - } - - - //this could be moved to vec3f - public Vec3f getRelativeVector(Vec3f vec){ - Matrix4f mat = new Matrix4f(); - mat.m00 = vec.xCoord; mat.m10 = vec.yCoord; mat.m20 = vec.zCoord; - Matrix4f.rotate(zCoord * 3.14159265F / 180, new Vector3f(1F, 0F, 0F), mat, mat); - Matrix4f.rotate(yCoord * 3.14159265F / 180, new Vector3f(0F, 0F, 1F), mat, mat); - Matrix4f.rotate(xCoord * 3.14159265F / 180, new Vector3f(0F, 1F, 0F), mat, mat); - return new Vec3f(mat.m00, mat.m10, mat.m20); - } -}