updating physics and animation
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
package net.halbear.hvf.Entity.Renderer;
|
package net.halbear.hvf.Entity.Renderer;
|
||||||
|
|
||||||
import net.halbear.hvf.Entity.*;
|
import net.halbear.hvf.Entity.*;
|
||||||
|
import net.halbear.hvf.Halsvehicleframework;
|
||||||
import net.minecraft.util.math.vector.Vector3f;
|
import net.minecraft.util.math.vector.Vector3f;
|
||||||
import net.minecraft.client.renderer.model.ModelRenderer;
|
import net.minecraft.client.renderer.model.ModelRenderer;
|
||||||
|
|
||||||
@@ -28,6 +29,24 @@ public class VehicleAnimationManager<T extends VehicleBaseEntity> {
|
|||||||
return BoneIn;
|
return BoneIn;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ModelRenderer WheelAnimationAccurate(ModelRenderer BoneIn, T entity, double WheelDiameterInMetres, AnimationAxis axis, boolean invertAnimation){
|
||||||
|
float PartialTick = VehicleBaseRenderer.PartialTick;
|
||||||
|
double RotationDeg = ((360 * entity.GetPositionDifference())/ (WheelDiameterInMetres * Math.PI))%360;
|
||||||
|
float RotationRad = (float)(RotationDeg * DegToRad);
|
||||||
|
switch(axis){
|
||||||
|
case X_AXIS:
|
||||||
|
BoneIn.rotateAngleX = BoneIn.rotateAngleX + (RotationRad*PartialTick);
|
||||||
|
break;
|
||||||
|
case Y_AXIS:
|
||||||
|
BoneIn.rotateAngleY = BoneIn.rotateAngleY + (RotationRad*PartialTick);
|
||||||
|
break;
|
||||||
|
case Z_AXIS:
|
||||||
|
BoneIn.rotateAngleZ = BoneIn.rotateAngleZ + (RotationRad*PartialTick);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return BoneIn;
|
||||||
|
}
|
||||||
|
|
||||||
public static Vector3f ConvertCartesianToEuler(Vector3f VectorIn){ return new Vector3f(VectorIn.getZ(),VectorIn.getY(),VectorIn.getX());}
|
public static Vector3f ConvertCartesianToEuler(Vector3f VectorIn){ return new Vector3f(VectorIn.getZ(),VectorIn.getY(),VectorIn.getX());}
|
||||||
public static Vector3f ConvertEulerToCartesian(Vector3f VectorIn){
|
public static Vector3f ConvertEulerToCartesian(Vector3f VectorIn){
|
||||||
return ConvertCartesianToEuler(VectorIn);
|
return ConvertCartesianToEuler(VectorIn);
|
||||||
|
|||||||
@@ -37,6 +37,8 @@ public class VehicleBaseEntity extends Entity {
|
|||||||
private final Vector3d[] VehicleSeatOffsets;
|
private final Vector3d[] VehicleSeatOffsets;
|
||||||
private float PartialTick = 1.0f;
|
private float PartialTick = 1.0f;
|
||||||
private EngineCategories EngineType;
|
private EngineCategories EngineType;
|
||||||
|
private Vector3d LastPositionVector = new Vector3d(0,0,0);
|
||||||
|
private Vector3d CurrentPositionVector = new Vector3d(0,0,0);
|
||||||
|
|
||||||
public void SetPartialTick(float PartialTick){this.PartialTick = PartialTick;}
|
public void SetPartialTick(float PartialTick){this.PartialTick = PartialTick;}
|
||||||
public float GetPartialTick(){return PartialTick;}
|
public float GetPartialTick(){return PartialTick;}
|
||||||
@@ -113,6 +115,17 @@ public class VehicleBaseEntity extends Entity {
|
|||||||
BASE_BOOL_PARAMETERS.forEach(SyncedData::putBoolean);
|
BASE_BOOL_PARAMETERS.forEach(SyncedData::putBoolean);
|
||||||
BASE_BYTE_ARRAY_PARAMETERS.forEach(SyncedData::putByteArray);
|
BASE_BYTE_ARRAY_PARAMETERS.forEach(SyncedData::putByteArray);
|
||||||
this.dataManager.set(VEHICLE_SYNCHED_PARAMETERS,SyncedData);
|
this.dataManager.set(VEHICLE_SYNCHED_PARAMETERS,SyncedData);
|
||||||
|
this.LastPositionVector = this.getPositionVec();
|
||||||
|
this.CurrentPositionVector = this.getPositionVec();
|
||||||
|
}
|
||||||
|
|
||||||
|
public Vector3d GetLastEntityPosition(){
|
||||||
|
return this.LastPositionVector;
|
||||||
|
}
|
||||||
|
public double GetPositionDifference(){
|
||||||
|
Vector3d Diff = getPositionVec().subtract(this.LastPositionVector);
|
||||||
|
Diff = Diff.mul(Diff);
|
||||||
|
return Math.sqrt(Diff.x + Diff.y+ Diff.z);
|
||||||
}
|
}
|
||||||
public void SetRenderState(String NewState){
|
public void SetRenderState(String NewState){
|
||||||
SetStringDataValue("RENDER_STATE",NewState);
|
SetStringDataValue("RENDER_STATE",NewState);
|
||||||
@@ -222,6 +235,8 @@ public class VehicleBaseEntity extends Entity {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void tick() {
|
public void tick() {
|
||||||
|
this.LastPositionVector = CurrentPositionVector;
|
||||||
|
CurrentPositionVector = getPositionVec();
|
||||||
super.tick();
|
super.tick();
|
||||||
if(GetBooleanDataValue("ADHERES_TO_GRAVITY")){
|
if(GetBooleanDataValue("ADHERES_TO_GRAVITY")){
|
||||||
if (!this.isOnGround()) {
|
if (!this.isOnGround()) {
|
||||||
|
|||||||
+372
@@ -0,0 +1,372 @@
|
|||||||
|
package net.halbear.hvf.UsageExamples.Aeroplane.Renderer.Models;// Made with Blockbench 5.1.4
|
||||||
|
import com.mojang.blaze3d.matrix.MatrixStack;
|
||||||
|
import com.mojang.blaze3d.vertex.IVertexBuilder;
|
||||||
|
import net.halbear.hvf.Entity.Renderer.AnimationAxis;
|
||||||
|
import net.halbear.hvf.UsageExamples.Aeroplane.Aeroplane;
|
||||||
|
import net.halbear.hvf.Entity.VehicleBaseEntity;
|
||||||
|
import net.minecraft.client.renderer.entity.model.EntityModel;
|
||||||
|
import net.minecraft.client.renderer.model.ModelRenderer;
|
||||||
|
|
||||||
|
|
||||||
|
public class Updatedbiplane extends EntityModel<VehicleBaseEntity> {
|
||||||
|
private final ModelRenderer Body;
|
||||||
|
private final ModelRenderer cube_r1;
|
||||||
|
private final ModelRenderer cube_r2;
|
||||||
|
private final ModelRenderer cube_r3;
|
||||||
|
private final ModelRenderer cube_r4;
|
||||||
|
private final ModelRenderer cube_r5;
|
||||||
|
private final ModelRenderer cube_r6;
|
||||||
|
private final ModelRenderer cube_r7;
|
||||||
|
private final ModelRenderer cube_r8;
|
||||||
|
private final ModelRenderer cube_r9;
|
||||||
|
private final ModelRenderer cube_r10;
|
||||||
|
private final ModelRenderer cube_r11;
|
||||||
|
private final ModelRenderer cube_r12;
|
||||||
|
private final ModelRenderer cube_r13;
|
||||||
|
private final ModelRenderer cube_r14;
|
||||||
|
private final ModelRenderer cube_r15;
|
||||||
|
private final ModelRenderer cube_r16;
|
||||||
|
private final ModelRenderer cube_r17;
|
||||||
|
private final ModelRenderer cube_r18;
|
||||||
|
private final ModelRenderer cube_r19;
|
||||||
|
private final ModelRenderer cube_r20;
|
||||||
|
private final ModelRenderer cube_r21;
|
||||||
|
private final ModelRenderer cube_r22;
|
||||||
|
private final ModelRenderer cube_r23;
|
||||||
|
private final ModelRenderer cube_r24;
|
||||||
|
private final ModelRenderer cube_r25;
|
||||||
|
private final ModelRenderer cube_r26;
|
||||||
|
private final ModelRenderer cube_r27;
|
||||||
|
private final ModelRenderer cube_r28;
|
||||||
|
private final ModelRenderer cube_r29;
|
||||||
|
private final ModelRenderer cube_r30;
|
||||||
|
private final ModelRenderer cube_r31;
|
||||||
|
private final ModelRenderer cube_r32;
|
||||||
|
private final ModelRenderer cube_r33;
|
||||||
|
private final ModelRenderer cube_r34;
|
||||||
|
private final ModelRenderer cube_r35;
|
||||||
|
private final ModelRenderer cube_r36;
|
||||||
|
private final ModelRenderer cube_r37;
|
||||||
|
private final ModelRenderer cube_r38;
|
||||||
|
private final ModelRenderer cube_r39;
|
||||||
|
private final ModelRenderer cube_r40;
|
||||||
|
private final ModelRenderer cube_r41;
|
||||||
|
private final ModelRenderer propeller;
|
||||||
|
private final ModelRenderer cube_r42;
|
||||||
|
private final ModelRenderer LeftWheel;
|
||||||
|
private final ModelRenderer RightWheel;
|
||||||
|
|
||||||
|
public Updatedbiplane() {
|
||||||
|
textureWidth = 512;
|
||||||
|
textureHeight = 512;
|
||||||
|
|
||||||
|
Body = new ModelRenderer(this);
|
||||||
|
Body.setRotationPoint(0.0F, 3.0F, -9.0F);
|
||||||
|
Body.setTextureOffset(144, 0).addBox(-5.0F, 7.25F, -12.0F, 10.0F, 2.0F, 32.0F, 0.0F, false);
|
||||||
|
Body.setTextureOffset(96, 43).addBox(-2.0F, -6.0F, 34.0F, 4.0F, 2.0F, 10.0F, 0.0F, false);
|
||||||
|
Body.setTextureOffset(0, 92).addBox(-2.0F, -6.0F, 50.0F, 4.0F, 10.0F, 6.0F, 0.0F, false);
|
||||||
|
Body.setTextureOffset(0, 92).addBox(-26.0F, -18.0F, -7.0F, 52.0F, 2.0F, 24.0F, 0.0F, false);
|
||||||
|
Body.setTextureOffset(0, 92).addBox(-26.0F, 5.0F, -2.0F, 52.0F, 2.0F, 24.0F, 0.0F, false);
|
||||||
|
Body.setTextureOffset(9, 207).addBox(9.0F, 16.0F, -1.0F, 2.0F, 2.0F, 2.0F, 0.0F, false);
|
||||||
|
Body.setTextureOffset(9, 207).addBox(-11.0F, 16.0F, -1.0F, 2.0F, 2.0F, 2.0F, 0.0F, true);
|
||||||
|
|
||||||
|
cube_r1 = new ModelRenderer(this);
|
||||||
|
cube_r1.setRotationPoint(-9.0F, 18.0F, 0.0F);
|
||||||
|
Body.addChild(cube_r1);
|
||||||
|
setRotationAngle(cube_r1, 0.0F, 0.0F, 0.4363F);
|
||||||
|
cube_r1.setTextureOffset(10, 205).addBox(-2.0F, -12.0F, -1.0F, 2.0F, 12.0F, 2.0F, 0.0F, true);
|
||||||
|
|
||||||
|
cube_r2 = new ModelRenderer(this);
|
||||||
|
cube_r2.setRotationPoint(9.0F, 18.0F, 0.0F);
|
||||||
|
Body.addChild(cube_r2);
|
||||||
|
setRotationAngle(cube_r2, 0.0F, 0.0F, -0.4363F);
|
||||||
|
cube_r2.setTextureOffset(10, 205).addBox(0.0F, -12.0F, -1.0F, 2.0F, 12.0F, 2.0F, 0.0F, false);
|
||||||
|
|
||||||
|
cube_r3 = new ModelRenderer(this);
|
||||||
|
cube_r3.setRotationPoint(-42.0F, 4.0F, 7.0F);
|
||||||
|
Body.addChild(cube_r3);
|
||||||
|
setRotationAngle(cube_r3, 0.1745F, 0.1745F, 0.0F);
|
||||||
|
cube_r3.setTextureOffset(52, 21).addBox(-1.0F, -22.0F, -6.0F, 2.0F, 23.0F, 2.0F, 0.0F, false);
|
||||||
|
|
||||||
|
cube_r4 = new ModelRenderer(this);
|
||||||
|
cube_r4.setRotationPoint(-39.0F, 4.0F, 26.0F);
|
||||||
|
Body.addChild(cube_r4);
|
||||||
|
setRotationAngle(cube_r4, 0.1745F, 0.1745F, 0.0F);
|
||||||
|
cube_r4.setTextureOffset(100, 203).addBox(-1.0F, -22.0F, -6.0F, 2.0F, 23.0F, 2.0F, 0.0F, false);
|
||||||
|
|
||||||
|
cube_r5 = new ModelRenderer(this);
|
||||||
|
cube_r5.setRotationPoint(39.0F, 4.0F, 26.0F);
|
||||||
|
Body.addChild(cube_r5);
|
||||||
|
setRotationAngle(cube_r5, 0.1745F, -0.1745F, 0.0F);
|
||||||
|
cube_r5.setTextureOffset(186, 177).addBox(-1.0F, -22.0F, -6.0F, 2.0F, 23.0F, 2.0F, 0.0F, false);
|
||||||
|
|
||||||
|
cube_r6 = new ModelRenderer(this);
|
||||||
|
cube_r6.setRotationPoint(-11.0F, 4.5F, 21.0F);
|
||||||
|
Body.addChild(cube_r6);
|
||||||
|
setRotationAngle(cube_r6, 0.2659F, 0.008F, -0.0169F);
|
||||||
|
cube_r6.setTextureOffset(162, 177).addBox(-1.0F, -22.5F, -2.0F, 2.0F, 24.0F, 2.0F, 0.0F, false);
|
||||||
|
|
||||||
|
cube_r7 = new ModelRenderer(this);
|
||||||
|
cube_r7.setRotationPoint(11.0F, 4.5F, 21.0F);
|
||||||
|
Body.addChild(cube_r7);
|
||||||
|
setRotationAngle(cube_r7, 0.2659F, -0.008F, 0.0169F);
|
||||||
|
cube_r7.setTextureOffset(170, 177).addBox(-1.0F, -22.5F, -2.0F, 2.0F, 24.0F, 2.0F, 0.0F, false);
|
||||||
|
|
||||||
|
cube_r8 = new ModelRenderer(this);
|
||||||
|
cube_r8.setRotationPoint(-11.1935F, -5.629F, -1.7596F);
|
||||||
|
Body.addChild(cube_r8);
|
||||||
|
setRotationAngle(cube_r8, 0.2223F, 0.008F, -0.0169F);
|
||||||
|
cube_r8.setTextureOffset(52, 21).addBox(-1.0F, -12.0F, -2.0F, 2.0F, 24.0F, 2.0F, 0.0F, false);
|
||||||
|
|
||||||
|
cube_r9 = new ModelRenderer(this);
|
||||||
|
cube_r9.setRotationPoint(11.1935F, -5.629F, -1.7596F);
|
||||||
|
Body.addChild(cube_r9);
|
||||||
|
setRotationAngle(cube_r9, 0.2223F, -0.008F, 0.0169F);
|
||||||
|
cube_r9.setTextureOffset(178, 177).addBox(-1.0F, -12.0F, -2.0F, 2.0F, 24.0F, 2.0F, 0.0F, false);
|
||||||
|
|
||||||
|
cube_r10 = new ModelRenderer(this);
|
||||||
|
cube_r10.setRotationPoint(42.0F, 4.0F, 7.0F);
|
||||||
|
Body.addChild(cube_r10);
|
||||||
|
setRotationAngle(cube_r10, 0.1745F, -0.1745F, 0.0F);
|
||||||
|
cube_r10.setTextureOffset(206, 177).addBox(-1.0F, -22.0F, -6.0F, 2.0F, 23.0F, 2.0F, 0.0F, false);
|
||||||
|
|
||||||
|
cube_r11 = new ModelRenderer(this);
|
||||||
|
cube_r11.setRotationPoint(-26.0F, -18.0F, -7.0F);
|
||||||
|
Body.addChild(cube_r11);
|
||||||
|
setRotationAngle(cube_r11, 0.0F, 0.1309F, 0.0F);
|
||||||
|
cube_r11.setTextureOffset(0, 118).addBox(-29.0F, -0.01F, 0.0F, 29.0F, 2.0F, 24.0F, 0.0F, false);
|
||||||
|
|
||||||
|
cube_r12 = new ModelRenderer(this);
|
||||||
|
cube_r12.setRotationPoint(26.0F, -18.0F, -7.0F);
|
||||||
|
Body.addChild(cube_r12);
|
||||||
|
setRotationAngle(cube_r12, 0.0F, -0.1309F, 0.0F);
|
||||||
|
cube_r12.setTextureOffset(0, 118).addBox(0.0F, -0.01F, 0.0F, 29.0F, 2.0F, 24.0F, 0.0F, true);
|
||||||
|
|
||||||
|
cube_r13 = new ModelRenderer(this);
|
||||||
|
cube_r13.setRotationPoint(-26.0F, 5.0F, -2.0F);
|
||||||
|
Body.addChild(cube_r13);
|
||||||
|
setRotationAngle(cube_r13, 0.0F, 0.1309F, 0.0F);
|
||||||
|
cube_r13.setTextureOffset(64, 177).addBox(-19.0F, -0.01F, 0.0F, 19.0F, 2.0F, 24.0F, 0.0F, false);
|
||||||
|
|
||||||
|
cube_r14 = new ModelRenderer(this);
|
||||||
|
cube_r14.setRotationPoint(26.0F, 5.0F, -2.0F);
|
||||||
|
Body.addChild(cube_r14);
|
||||||
|
setRotationAngle(cube_r14, 0.0F, -0.1309F, 0.0F);
|
||||||
|
cube_r14.setTextureOffset(64, 177).addBox(0.0F, -0.01F, 0.0F, 19.0F, 2.0F, 24.0F, 0.0F, true);
|
||||||
|
|
||||||
|
cube_r15 = new ModelRenderer(this);
|
||||||
|
cube_r15.setRotationPoint(-26.8737F, -5.0F, 6.9632F);
|
||||||
|
Body.addChild(cube_r15);
|
||||||
|
setRotationAngle(cube_r15, 0.1686F, 0.6551F, -0.0096F);
|
||||||
|
cube_r15.setTextureOffset(190, 90).addBox(-19.5F, -12.0F, 1.0F, 39.0F, 24.0F, 0.0F, 0.0F, true);
|
||||||
|
|
||||||
|
cube_r16 = new ModelRenderer(this);
|
||||||
|
cube_r16.setRotationPoint(-26.5867F, -6.1884F, 8.6681F);
|
||||||
|
Body.addChild(cube_r16);
|
||||||
|
setRotationAngle(cube_r16, 0.2164F, -0.4589F, -0.102F);
|
||||||
|
cube_r16.setTextureOffset(190, 90).addBox(-20.5F, -11.0F, 0.0F, 39.0F, 23.0F, 0.0F, 0.0F, true);
|
||||||
|
|
||||||
|
cube_r17 = new ModelRenderer(this);
|
||||||
|
cube_r17.setRotationPoint(26.5867F, -6.1884F, 8.6681F);
|
||||||
|
Body.addChild(cube_r17);
|
||||||
|
setRotationAngle(cube_r17, 0.2164F, 0.4589F, 0.102F);
|
||||||
|
cube_r17.setTextureOffset(190, 90).addBox(-18.5F, -11.0F, 0.0F, 39.0F, 23.0F, 0.0F, 0.0F, false);
|
||||||
|
|
||||||
|
cube_r18 = new ModelRenderer(this);
|
||||||
|
cube_r18.setRotationPoint(26.8737F, -5.0F, 6.9632F);
|
||||||
|
Body.addChild(cube_r18);
|
||||||
|
setRotationAngle(cube_r18, 0.1686F, -0.6551F, 0.0096F);
|
||||||
|
cube_r18.setTextureOffset(190, 90).addBox(-19.5F, -12.0F, 1.0F, 39.0F, 24.0F, 0.0F, 0.0F, false);
|
||||||
|
|
||||||
|
cube_r19 = new ModelRenderer(this);
|
||||||
|
cube_r19.setRotationPoint(0.0F, -1.5F, 0.0F);
|
||||||
|
Body.addChild(cube_r19);
|
||||||
|
setRotationAngle(cube_r19, -0.3491F, 0.0F, 0.0F);
|
||||||
|
cube_r19.setTextureOffset(0, 0).addBox(-0.5F, -2.5F, 1.0F, 1.0F, 9.0F, 1.0F, 0.0F, false);
|
||||||
|
|
||||||
|
cube_r20 = new ModelRenderer(this);
|
||||||
|
cube_r20.setRotationPoint(10.0F, -3.0F, 52.0F);
|
||||||
|
Body.addChild(cube_r20);
|
||||||
|
setRotationAngle(cube_r20, -0.3054F, 0.0F, 1.5708F);
|
||||||
|
cube_r20.setTextureOffset(144, 0).addBox(-1.0F, -9.0F, -6.0F, 2.0F, 18.0F, 12.0F, 0.0F, true);
|
||||||
|
|
||||||
|
cube_r21 = new ModelRenderer(this);
|
||||||
|
cube_r21.setRotationPoint(-10.0F, -3.0F, 52.0F);
|
||||||
|
Body.addChild(cube_r21);
|
||||||
|
setRotationAngle(cube_r21, -0.3054F, 0.0F, -1.5708F);
|
||||||
|
cube_r21.setTextureOffset(144, 0).addBox(-1.0F, -9.0F, -6.0F, 2.0F, 18.0F, 12.0F, 0.0F, false);
|
||||||
|
|
||||||
|
cube_r22 = new ModelRenderer(this);
|
||||||
|
cube_r22.setRotationPoint(0.0F, -15.0F, 50.0F);
|
||||||
|
Body.addChild(cube_r22);
|
||||||
|
setRotationAngle(cube_r22, -0.3054F, 0.0F, 0.0F);
|
||||||
|
cube_r22.setTextureOffset(54, 144).addBox(-1.0F, -6.0F, -4.0F, 2.0F, 18.0F, 12.0F, 0.0F, false);
|
||||||
|
|
||||||
|
cube_r23 = new ModelRenderer(this);
|
||||||
|
cube_r23.setRotationPoint(2.0F, 9.25F, 34.0F);
|
||||||
|
Body.addChild(cube_r23);
|
||||||
|
setRotationAngle(cube_r23, 0.2528F, -0.1733F, 0.5888F);
|
||||||
|
cube_r23.setTextureOffset(135, 133).addBox(-0.25F, -6.3007F, -0.9537F, 0.0F, 6.0F, 17.0F, 0.0F, true);
|
||||||
|
|
||||||
|
cube_r24 = new ModelRenderer(this);
|
||||||
|
cube_r24.setRotationPoint(-2.0F, 9.25F, 34.0F);
|
||||||
|
Body.addChild(cube_r24);
|
||||||
|
setRotationAngle(cube_r24, 0.2528F, 0.1733F, -0.5888F);
|
||||||
|
cube_r24.setTextureOffset(135, 133).addBox(0.25F, -6.3007F, -0.9537F, 0.0F, 6.0F, 17.0F, 0.0F, false);
|
||||||
|
|
||||||
|
cube_r25 = new ModelRenderer(this);
|
||||||
|
cube_r25.setRotationPoint(0.0F, 9.25F, 33.0F);
|
||||||
|
Body.addChild(cube_r25);
|
||||||
|
setRotationAngle(cube_r25, 0.2618F, 0.0F, 0.0F);
|
||||||
|
cube_r25.setTextureOffset(106, 144).addBox(-2.0F, -6.0F, 0.0F, 4.0F, 6.0F, 21.0F, 0.0F, false);
|
||||||
|
|
||||||
|
cube_r26 = new ModelRenderer(this);
|
||||||
|
cube_r26.setRotationPoint(-5.0F, 9.0F, 20.0F);
|
||||||
|
Body.addChild(cube_r26);
|
||||||
|
setRotationAngle(cube_r26, 0.0F, 0.1745F, 0.0F);
|
||||||
|
cube_r26.setTextureOffset(38, 201).addBox(0.0F, -1.75F, 0.0F, 5.0F, 2.0F, 14.0F, 0.0F, true);
|
||||||
|
|
||||||
|
cube_r27 = new ModelRenderer(this);
|
||||||
|
cube_r27.setRotationPoint(5.0F, 9.0F, 20.0F);
|
||||||
|
Body.addChild(cube_r27);
|
||||||
|
setRotationAngle(cube_r27, 0.0F, -0.1745F, 0.0F);
|
||||||
|
cube_r27.setTextureOffset(38, 201).addBox(-5.0F, -1.75F, 0.0F, 5.0F, 2.0F, 14.0F, 0.0F, false);
|
||||||
|
|
||||||
|
cube_r28 = new ModelRenderer(this);
|
||||||
|
cube_r28.setRotationPoint(-7.0F, -11.0F, 20.0F);
|
||||||
|
Body.addChild(cube_r28);
|
||||||
|
setRotationAngle(cube_r28, 0.3925F, -1.2393F, 1.1581F);
|
||||||
|
cube_r28.setTextureOffset(196, 64).addBox(0.0F, -7.0F, -5.0F, 18.0F, 7.0F, 5.0F, 0.0F, true);
|
||||||
|
|
||||||
|
cube_r29 = new ModelRenderer(this);
|
||||||
|
cube_r29.setRotationPoint(7.0F, -11.0F, 20.0F);
|
||||||
|
Body.addChild(cube_r29);
|
||||||
|
setRotationAngle(cube_r29, 0.3925F, 1.2393F, -1.1581F);
|
||||||
|
cube_r29.setTextureOffset(196, 64).addBox(-18.0F, -7.0F, -5.0F, 18.0F, 7.0F, 5.0F, 0.0F, false);
|
||||||
|
|
||||||
|
cube_r30 = new ModelRenderer(this);
|
||||||
|
cube_r30.setRotationPoint(0.0F, -6.0F, 9.0F);
|
||||||
|
Body.addChild(cube_r30);
|
||||||
|
setRotationAngle(cube_r30, 0.0F, 0.0F, -1.5708F);
|
||||||
|
cube_r30.setTextureOffset(42, 182).addBox(-10.0F, -7.0F, 6.0F, 15.0F, 14.0F, 5.0F, 0.0F, false);
|
||||||
|
cube_r30.setTextureOffset(0, 239).addBox(-15.0F, -7.0F, -28.0F, 15.0F, 14.0F, 0.0F, 0.0F, false);
|
||||||
|
cube_r30.setTextureOffset(0, 223).addBox(-15.0F, -7.0F, -27.0F, 15.0F, 14.0F, 0.0F, 0.0F, false);
|
||||||
|
cube_r30.setTextureOffset(96, 55).addBox(-9.0F, -2.0F, -28.0F, 4.0F, 4.0F, 7.0F, 0.0F, false);
|
||||||
|
cube_r30.setTextureOffset(0, 201).addBox(-14.0F, -7.0F, -26.0F, 14.0F, 14.0F, 5.0F, 0.0F, false);
|
||||||
|
cube_r30.setTextureOffset(144, 34).addBox(-16.0F, -9.0F, -28.0F, 18.0F, 2.0F, 7.0F, 0.0F, false);
|
||||||
|
cube_r30.setTextureOffset(42, 0).addBox(0.0F, -7.0F, -28.0F, 2.0F, 14.0F, 7.0F, 0.0F, false);
|
||||||
|
cube_r30.setTextureOffset(0, 0).addBox(-10.0F, -7.0F, -18.0F, 0.0F, 14.0F, 25.0F, 0.0F, false);
|
||||||
|
cube_r30.setTextureOffset(0, 0).addBox(1.0F, 0.0F, -26.0F, 15.0F, 0.0F, 66.0F, 0.0F, false);
|
||||||
|
cube_r30.setTextureOffset(0, 0).addBox(-10.0F, -7.0F, -21.0F, 11.0F, 14.0F, 10.0F, 0.0F, false);
|
||||||
|
cube_r30.setTextureOffset(54, 144).addBox(-10.0F, -8.0F, -21.0F, 10.0F, 1.0F, 32.0F, 0.0F, false);
|
||||||
|
|
||||||
|
cube_r31 = new ModelRenderer(this);
|
||||||
|
cube_r31.setRotationPoint(0.0F, -6.0F, 9.0F);
|
||||||
|
Body.addChild(cube_r31);
|
||||||
|
setRotationAngle(cube_r31, 0.0F, 0.0F, 1.5708F);
|
||||||
|
cube_r31.setTextureOffset(144, 34).addBox(-2.0F, -9.0F, -28.0F, 18.0F, 2.0F, 7.0F, 0.0F, true);
|
||||||
|
cube_r31.setTextureOffset(54, 144).addBox(0.0F, -8.0F, -21.0F, 10.0F, 1.0F, 32.0F, 0.0F, true);
|
||||||
|
|
||||||
|
cube_r32 = new ModelRenderer(this);
|
||||||
|
cube_r32.setRotationPoint(0.0F, 36.0F, 9.0F);
|
||||||
|
Body.addChild(cube_r32);
|
||||||
|
setRotationAngle(cube_r32, 0.0F, 0.0F, 1.5708F);
|
||||||
|
cube_r32.setTextureOffset(42, 0).addBox(-28.0F, -7.0F, -28.0F, 2.0F, 14.0F, 7.0F, 0.0F, false);
|
||||||
|
|
||||||
|
cube_r33 = new ModelRenderer(this);
|
||||||
|
cube_r33.setRotationPoint(0.0F, -7.0F, -5.0F);
|
||||||
|
Body.addChild(cube_r33);
|
||||||
|
setRotationAngle(cube_r33, 0.0F, -0.4363F, -1.5708F);
|
||||||
|
cube_r33.setTextureOffset(0, 118).addBox(0.0F, -7.0F, 0.0F, 7.0F, 14.0F, 1.0F, 0.0F, false);
|
||||||
|
|
||||||
|
cube_r34 = new ModelRenderer(this);
|
||||||
|
cube_r34.setRotationPoint(51.0F, -18.5F, 20.0F);
|
||||||
|
Body.addChild(cube_r34);
|
||||||
|
setRotationAngle(cube_r34, 0.7342F, -0.1119F, -1.4365F);
|
||||||
|
cube_r34.setTextureOffset(53, 0).addBox(-24.5F, 0.0F, 0.0F, 24.0F, 0.0F, 43.0F, 0.0F, false);
|
||||||
|
|
||||||
|
cube_r35 = new ModelRenderer(this);
|
||||||
|
cube_r35.setRotationPoint(-51.0F, -18.5F, 20.0F);
|
||||||
|
Body.addChild(cube_r35);
|
||||||
|
setRotationAngle(cube_r35, 0.7342F, 0.1119F, 1.4365F);
|
||||||
|
cube_r35.setTextureOffset(53, 0).addBox(0.5F, 0.0F, 0.0F, 24.0F, 0.0F, 43.0F, 0.0F, true);
|
||||||
|
|
||||||
|
cube_r36 = new ModelRenderer(this);
|
||||||
|
cube_r36.setRotationPoint(8.0F, 4.0F, 5.5F);
|
||||||
|
Body.addChild(cube_r36);
|
||||||
|
setRotationAngle(cube_r36, 0.0F, 0.0F, 2.0944F);
|
||||||
|
cube_r36.setTextureOffset(162, 178).addBox(0.0F, 0.0F, -17.5F, 6.0F, 1.0F, 32.0F, 0.0F, true);
|
||||||
|
|
||||||
|
cube_r37 = new ModelRenderer(this);
|
||||||
|
cube_r37.setRotationPoint(-8.0F, 4.0F, 5.5F);
|
||||||
|
Body.addChild(cube_r37);
|
||||||
|
setRotationAngle(cube_r37, 0.0F, 0.0F, -2.0944F);
|
||||||
|
cube_r37.setTextureOffset(162, 178).addBox(-6.0F, 0.0F, -17.5F, 6.0F, 1.0F, 32.0F, 0.0F, false);
|
||||||
|
|
||||||
|
cube_r38 = new ModelRenderer(this);
|
||||||
|
cube_r38.setRotationPoint(5.0F, 9.0F, 20.0F);
|
||||||
|
Body.addChild(cube_r38);
|
||||||
|
setRotationAngle(cube_r38, 0.1515F, -0.0869F, -1.0538F);
|
||||||
|
cube_r38.setTextureOffset(0, 182).addBox(-0.1927F, -3.9414F, -0.5209F, 6.0F, 4.0F, 15.0F, 0.0F, false);
|
||||||
|
|
||||||
|
cube_r39 = new ModelRenderer(this);
|
||||||
|
cube_r39.setRotationPoint(-5.0F, 9.0F, 20.0F);
|
||||||
|
Body.addChild(cube_r39);
|
||||||
|
setRotationAngle(cube_r39, 0.1515F, 0.0869F, 1.0538F);
|
||||||
|
cube_r39.setTextureOffset(82, 118).addBox(-5.8073F, -4.9414F, -0.5209F, 6.0F, 5.0F, 15.0F, 0.0F, false);
|
||||||
|
|
||||||
|
cube_r40 = new ModelRenderer(this);
|
||||||
|
cube_r40.setRotationPoint(-8.0F, 0.5F, 20.0F);
|
||||||
|
Body.addChild(cube_r40);
|
||||||
|
setRotationAngle(cube_r40, 0.1745F, 0.0F, 1.5708F);
|
||||||
|
cube_r40.setTextureOffset(0, 144).addBox(-6.5F, -4.0F, 0.0F, 10.0F, 4.0F, 34.0F, 0.0F, true);
|
||||||
|
|
||||||
|
cube_r41 = new ModelRenderer(this);
|
||||||
|
cube_r41.setRotationPoint(8.0F, 0.5F, 20.0F);
|
||||||
|
Body.addChild(cube_r41);
|
||||||
|
setRotationAngle(cube_r41, 0.1745F, 0.0F, -1.5708F);
|
||||||
|
cube_r41.setTextureOffset(0, 144).addBox(-3.5F, -4.0F, 0.0F, 10.0F, 4.0F, 34.0F, 0.0F, false);
|
||||||
|
|
||||||
|
propeller = new ModelRenderer(this);
|
||||||
|
propeller.setRotationPoint(0.0F, 1.0F, -20.5F);
|
||||||
|
Body.addChild(propeller);
|
||||||
|
|
||||||
|
|
||||||
|
cube_r42 = new ModelRenderer(this);
|
||||||
|
cube_r42.setRotationPoint(0.0F, -7.0F, 29.5F);
|
||||||
|
propeller.addChild(cube_r42);
|
||||||
|
setRotationAngle(cube_r42, 0.0F, 0.0F, -1.5708F);
|
||||||
|
cube_r42.setTextureOffset(32, 0).addBox(-9.0F, -2.0F, -32.0F, 4.0F, 4.0F, 3.0F, 0.0F, false);
|
||||||
|
cube_r42.setTextureOffset(0, 260).addBox(-22.0F, -15.0F, -29.0F, 30.0F, 30.0F, 0.0F, 0.0F, false);
|
||||||
|
cube_r42.setTextureOffset(4, 0).addBox(-8.0F, -1.0F, -29.0F, 2.0F, 2.0F, 1.0F, 0.0F, false);
|
||||||
|
|
||||||
|
LeftWheel = new ModelRenderer(this);
|
||||||
|
LeftWheel.setRotationPoint(12.0F, 17.0F, 0.0F);
|
||||||
|
Body.addChild(LeftWheel);
|
||||||
|
LeftWheel.setTextureOffset(292, 89).addBox(-1.0F, -4.0F, -4.0F, 2.0F, 8.0F, 8.0F, 0.0F, false);
|
||||||
|
|
||||||
|
RightWheel = new ModelRenderer(this);
|
||||||
|
RightWheel.setRotationPoint(-12.0F, 17.0F, 0.0F);
|
||||||
|
Body.addChild(RightWheel);
|
||||||
|
RightWheel.setTextureOffset(292, 89).addBox(-1.0F, -4.0F, -4.0F, 2.0F, 8.0F, 8.0F, 0.0F, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setRotationAngles(VehicleBaseEntity entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch){
|
||||||
|
Aeroplane aeroplane = (Aeroplane)entity;
|
||||||
|
aeroplane.GetAnimationManager().PropellerAnimation(propeller, aeroplane, AnimationAxis.Z_AXIS, false);
|
||||||
|
aeroplane.GetAnimationManager().WheelAnimationAccurate(LeftWheel, aeroplane,0.5, AnimationAxis.X_AXIS, false);
|
||||||
|
aeroplane.GetAnimationManager().WheelAnimationAccurate(RightWheel, aeroplane,0.5, AnimationAxis.X_AXIS, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void render(MatrixStack matrixStack, IVertexBuilder buffer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha){
|
||||||
|
Body.render(matrixStack, buffer, packedLight, packedOverlay, red, green, blue, alpha);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRotationAngle(ModelRenderer modelRenderer, float x, float y, float z) {
|
||||||
|
modelRenderer.rotateAngleX = x;
|
||||||
|
modelRenderer.rotateAngleY = y;
|
||||||
|
modelRenderer.rotateAngleZ = z;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -23,6 +23,8 @@ public class VehicleBuildInfo {
|
|||||||
private List<String> BuiltInVehicleInputActions = new ArrayList<>();
|
private List<String> BuiltInVehicleInputActions = new ArrayList<>();
|
||||||
private List<Vector3d> PassengerSeats = new ArrayList<>();
|
private List<Vector3d> PassengerSeats = new ArrayList<>();
|
||||||
private List<Float> FuelTanks = new ArrayList<>();
|
private List<Float> FuelTanks = new ArrayList<>();
|
||||||
|
private Vector3d AtRestAngleOffsets;
|
||||||
|
private Vector3d AtSpeedOnGroundAngleOffsets;
|
||||||
|
|
||||||
public VehicleBuildInfo RegisterInputAction(String ActionName){
|
public VehicleBuildInfo RegisterInputAction(String ActionName){
|
||||||
BuiltInVehicleInputActions.add(ActionName);
|
BuiltInVehicleInputActions.add(ActionName);
|
||||||
|
|||||||
Reference in New Issue
Block a user