diff --git a/src/main/java/net/halbear/hvf/Entity/Renderer/VehicleBaseRenderer.java b/src/main/java/net/halbear/hvf/Entity/Renderer/VehicleBaseRenderer.java index 6609973..0365c37 100644 --- a/src/main/java/net/halbear/hvf/Entity/Renderer/VehicleBaseRenderer.java +++ b/src/main/java/net/halbear/hvf/Entity/Renderer/VehicleBaseRenderer.java @@ -9,12 +9,15 @@ import net.minecraft.client.renderer.entity.EntityRenderer; import net.minecraft.client.renderer.entity.EntityRendererManager; import net.minecraft.client.renderer.entity.model.EntityModel; import net.minecraft.client.renderer.texture.OverlayTexture; +import net.minecraft.stats.Stat; import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.vector.Vector3d; import net.minecraft.util.math.vector.Vector3f; import javax.annotation.Nonnull; import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; public class VehicleBaseRenderer> extends EntityRenderer { @@ -23,12 +26,30 @@ public class VehicleBaseRenderer STATE_BASED_MODELS = new HashMap<>(); + private String RenderState = "DEFAULT"; + private final String TextureLocation; - protected VehicleBaseRenderer(EntityRendererManager renderManager, M[] models, String TextureLocation) { + private final Map STATE_BASED_TEXTURE_LOCATIONS = new HashMap<>(); + + + protected VehicleBaseRenderer(EntityRendererManager renderManager, M[] DefaultModels, String TextureLocation) { super(renderManager); this.TextureLocation = TextureLocation; - this.models = models; + STATE_BASED_TEXTURE_LOCATIONS.put("DEFAULT",TextureLocation); + STATE_BASED_MODELS.put("DEFAULT",DefaultModels); + } + + public VehicleBaseRenderer AddRendererState(String StateName, M[] NewState, String StateTextureLocation){ + STATE_BASED_MODELS.put(StateName, NewState); + STATE_BASED_TEXTURE_LOCATIONS.put(StateName,StateTextureLocation); + return this; + } + + public VehicleBaseRenderer AddRendererState(String StateName, M[] NewState){ + STATE_BASED_MODELS.put(StateName, NewState); + STATE_BASED_TEXTURE_LOCATIONS.put(StateName,STATE_BASED_TEXTURE_LOCATIONS.get("DEFAULT")); + return this; } public VehicleBaseRenderer SetPivotPoint(PivotOrigin OriginType, Vector3d Offset){ @@ -54,9 +75,10 @@ public class VehicleBaseRenderer{ + Arrays.asList(STATE_BASED_MODELS.get(RenderState)).forEach(model->{ IVertexBuilder vertexBuilder = buffer.getBuffer(model.getRenderType(getEntityTexture(entity))); model.setRotationAngles(entity, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F); model.render(matrixStack, vertexBuilder, packedLight, OverlayTexture.NO_OVERLAY, 1.0F, 1.0F, 1.0F, 1.0F); }); matrixStack.pop(); super.render(entity, entityYaw, partialTicks, matrixStack, buffer, packedLight); - EventAfterRender(entity, entityYaw, partialTicks, matrixStack, buffer, packedLight); } @Override @Nonnull public ResourceLocation getEntityTexture(T entity) { - return new ResourceLocation(Halsvehicleframework.MOD_ID,TextureLocation); + return new ResourceLocation(Halsvehicleframework.MOD_ID,STATE_BASED_TEXTURE_LOCATIONS.get(RenderState)); } } diff --git a/src/main/java/net/halbear/hvf/Entity/VehicleBaseEntity.java b/src/main/java/net/halbear/hvf/Entity/VehicleBaseEntity.java index cc16c88..5f3230a 100644 --- a/src/main/java/net/halbear/hvf/Entity/VehicleBaseEntity.java +++ b/src/main/java/net/halbear/hvf/Entity/VehicleBaseEntity.java @@ -69,6 +69,13 @@ public class VehicleBaseEntity extends Entity { BASE_FLOAT_PARAMETERS.put("PROPELLER_ROTATION_SPEED",0F); BASE_FLOAT_PARAMETERS.put("MAX_ENGINE_RPM",(float)vehicleBuildInfo.GetMaxEngineRPM()); BASE_INT_PARAMETERS.put("THROTTLE",0); + BASE_INT_PARAMETERS.put("FUEL_TANK_COUNT",vehicleBuildInfo.GetFuelTanks().size()); + for(int i = 0; i < vehicleBuildInfo.GetFuelTanks().size(); i++){ + BASE_FLOAT_PARAMETERS.put("FUEL_TANK_" + i +"_FUEL_CAPACITY", vehicleBuildInfo.GetFuelTanks().get(i)); + BASE_FLOAT_PARAMETERS.put("FUEL_TANK_" + i +"_FUEL_LEVEL", 0f); + } + BASE_STRING_PARAMETERS.put("FUEL_TYPE",vehicleBuildInfo.GetFuelType().toString()); + BASE_STRING_PARAMETERS.put("RENDER_STATE","DEFAULT"); BASE_INT_PARAMETERS.put("YAW_CONTROL_INPUT",0); BASE_INT_PARAMETERS.put("ROLL_CONTROL_INPUT",0); BASE_INT_PARAMETERS.put("PITCH_CONTROL_INPUT",0); @@ -94,7 +101,12 @@ public class VehicleBaseEntity extends Entity { BASE_BOOL_PARAMETERS.forEach(SyncedData::putBoolean); this.dataManager.set(VEHICLE_SYNCHED_PARAMETERS,SyncedData); } - + public void SetRenderState(String NewState){ + SetStringDataValue("RENDER_STATE",NewState); + } + public String GetRenderState(){ + return GetStringDataValue("RENDER_STATE"); + } public void SetIntDataValue(String ValueName, Integer Value){ CompoundNBT SyncedData = this.dataManager.get(VEHICLE_SYNCHED_PARAMETERS).copy(); SyncedData.putInt(ValueName,Value); @@ -152,6 +164,10 @@ public class VehicleBaseEntity extends Entity { SetVehiclePitch(Pitch); } + public void OnPunchedEvent(){ + + } + @Override protected void registerData() { this.dataManager.register(VEHICLE_SYNCHED_PARAMETERS, new CompoundNBT()); diff --git a/src/main/java/net/halbear/hvf/Example/Renderer/AeroplaneRenderer.java b/src/main/java/net/halbear/hvf/Example/Renderer/AeroplaneRenderer.java deleted file mode 100644 index 6fd1724..0000000 --- a/src/main/java/net/halbear/hvf/Example/Renderer/AeroplaneRenderer.java +++ /dev/null @@ -1,16 +0,0 @@ -package net.halbear.hvf.Example.Renderer; - -import net.halbear.hvf.Example.Renderer.Models.AeroplaneModel; -import net.halbear.hvf.Entity.Renderer.VehicleBaseRenderer; -import net.minecraft.client.renderer.entity.EntityRendererManager; -import net.minecraft.client.renderer.entity.model.EntityModel; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.api.distmarker.OnlyIn; - -@OnlyIn(Dist.CLIENT) -public class AeroplaneRenderer extends VehicleBaseRenderer { - - public AeroplaneRenderer(EntityRendererManager renderManagerIn) { - super(renderManagerIn, new EntityModel[]{new AeroplaneModel()},"textures/entities/biplaneupdated.png"); - } -} diff --git a/src/main/java/net/halbear/hvf/Registry/EventHandlers/ClientEventHandler.java b/src/main/java/net/halbear/hvf/Registry/EventHandlers/ClientEventHandler.java index 00ca847..2da1a98 100644 --- a/src/main/java/net/halbear/hvf/Registry/EventHandlers/ClientEventHandler.java +++ b/src/main/java/net/halbear/hvf/Registry/EventHandlers/ClientEventHandler.java @@ -1,7 +1,7 @@ package net.halbear.hvf.Registry.EventHandlers; -import net.halbear.hvf.Example.Renderer.AeroplaneRenderer; -import net.halbear.hvf.Example.Renderer.AirboatRenderer; +import net.halbear.hvf.UsageExamples.Aeroplane.Renderer.AeroplaneRenderer; +import net.halbear.hvf.UsageExamples.Airboat.Renderer.AirboatRenderer; import net.halbear.hvf.Halsvehicleframework; import net.halbear.hvf.Registry.ModEntities; import net.minecraft.block.Block; @@ -16,12 +16,8 @@ import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent; @Mod.EventBusSubscriber(modid = Halsvehicleframework.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD, value = Dist.CLIENT) public class ClientEventHandler { - @SafeVarargs - public static void SetCollectionRenderType(RenderType type, RegistryObject... blocks_list) { //hal - for (RegistryObject blockRegistryObject : blocks_list) { - RenderTypeLookup.setRenderLayer(blockRegistryObject.get(), type); - } - } + + //This is for the example entities, will be removed in the final mod @SubscribeEvent public static void init(final FMLClientSetupEvent event) { RenderingRegistry.registerEntityRenderingHandler(ModEntities.AEROPLANE.get(), AeroplaneRenderer::new); diff --git a/src/main/java/net/halbear/hvf/Registry/EventHandlers/ModEventHandler.java b/src/main/java/net/halbear/hvf/Registry/EventHandlers/ModEventHandler.java new file mode 100644 index 0000000..d407843 --- /dev/null +++ b/src/main/java/net/halbear/hvf/Registry/EventHandlers/ModEventHandler.java @@ -0,0 +1,22 @@ +package net.halbear.hvf.Registry.EventHandlers; + +import net.halbear.hvf.Entity.VehicleBaseEntity; +import net.halbear.hvf.Halsvehicleframework; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraftforge.event.entity.player.AttackEntityEvent; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.common.Mod; + +@Mod.EventBusSubscriber(modid = Halsvehicleframework.MOD_ID, bus = Mod.EventBusSubscriber.Bus.FORGE) +public class ModEventHandler { + + @SubscribeEvent + public static void onEntityPunch(AttackEntityEvent event) { + PlayerEntity player = event.getPlayer(); + Entity Vehicle = event.getTarget(); + if (player.world.isRemote()) { return; } + if (Vehicle instanceof VehicleBaseEntity) {((VehicleBaseEntity) Vehicle).OnPunchedEvent();} + } + +} diff --git a/src/main/java/net/halbear/hvf/Registry/ModEntities.java b/src/main/java/net/halbear/hvf/Registry/ModEntities.java index 769f294..ead7ebe 100644 --- a/src/main/java/net/halbear/hvf/Registry/ModEntities.java +++ b/src/main/java/net/halbear/hvf/Registry/ModEntities.java @@ -1,7 +1,7 @@ package net.halbear.hvf.Registry; -import net.halbear.hvf.Example.Aeroplane; -import net.halbear.hvf.Example.Airboat; +import net.halbear.hvf.UsageExamples.Aeroplane.Aeroplane; +import net.halbear.hvf.UsageExamples.Airboat.Airboat; import net.halbear.hvf.Halsvehicleframework; import net.minecraft.entity.EntityClassification; import net.minecraft.entity.EntityType; diff --git a/src/main/java/net/halbear/hvf/Example/Aeroplane.java b/src/main/java/net/halbear/hvf/UsageExamples/Aeroplane/Aeroplane.java similarity index 91% rename from src/main/java/net/halbear/hvf/Example/Aeroplane.java rename to src/main/java/net/halbear/hvf/UsageExamples/Aeroplane/Aeroplane.java index d173f10..d638854 100644 --- a/src/main/java/net/halbear/hvf/Example/Aeroplane.java +++ b/src/main/java/net/halbear/hvf/UsageExamples/Aeroplane/Aeroplane.java @@ -1,6 +1,5 @@ -package net.halbear.hvf.Example; +package net.halbear.hvf.UsageExamples.Aeroplane; -import net.halbear.hvf.Entity.Renderer.VehicleAnimationManager; import net.halbear.hvf.Entity.VehicleBaseEntity; import net.halbear.hvf.Util.Client.VehicleCameraPreset; import net.halbear.hvf.Util.Client.VehicleCameraSettings; @@ -31,6 +30,11 @@ public class Aeroplane extends VehicleBaseEntity { SetFloatDataValue("PROPELLER_ROTATION_SPEED",(float)(Math.random() * 40)); } + @Override + public void OnPunchedEvent(){ + SetRenderState("DAMAGED"); + } + @Override public void TickUpdateEvent(){ diff --git a/src/main/java/net/halbear/hvf/UsageExamples/Aeroplane/Renderer/AeroplaneRenderer.java b/src/main/java/net/halbear/hvf/UsageExamples/Aeroplane/Renderer/AeroplaneRenderer.java new file mode 100644 index 0000000..dd2427b --- /dev/null +++ b/src/main/java/net/halbear/hvf/UsageExamples/Aeroplane/Renderer/AeroplaneRenderer.java @@ -0,0 +1,32 @@ +package net.halbear.hvf.UsageExamples.Aeroplane.Renderer; + +import com.mojang.blaze3d.matrix.MatrixStack; +import net.halbear.hvf.Entity.VehicleBaseEntity; +import net.halbear.hvf.UsageExamples.Aeroplane.Renderer.Models.AeroplaneModel; +import net.halbear.hvf.Entity.Renderer.VehicleBaseRenderer; +import net.halbear.hvf.UsageExamples.Aeroplane.Renderer.Models.DamagedPlane; +import net.minecraft.client.renderer.IRenderTypeBuffer; +import net.minecraft.client.renderer.entity.EntityRendererManager; +import net.minecraft.client.renderer.entity.model.EntityModel; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.api.distmarker.OnlyIn; + +@OnlyIn(Dist.CLIENT) +public class AeroplaneRenderer extends VehicleBaseRenderer { + + public AeroplaneRenderer(EntityRendererManager renderManagerIn) { + super(renderManagerIn, new EntityModel[]{new AeroplaneModel()},"textures/entities/biplaneupdated.png"); + AddRendererState("DAMAGED",new EntityModel[]{new DamagedPlane()}); + AddRendererState("SUPER_DAMAGED",new EntityModel[]{new DamagedPlane()},"textures/entities/biplaneupdated_DAMAGED.png"); + } + + @Override + public void EventBeforeRender(VehicleBaseEntity entity, float entityYaw, float partialTicks, MatrixStack matrixStack, IRenderTypeBuffer buffer, int packedLight){ + + } + + @Override + public void EventAfterRender(VehicleBaseEntity entity, float entityYaw, float partialTicks, MatrixStack matrixStack, IRenderTypeBuffer buffer, int packedLight){ + + } +} diff --git a/src/main/java/net/halbear/hvf/Example/Renderer/Models/AeroplaneModel.java b/src/main/java/net/halbear/hvf/UsageExamples/Aeroplane/Renderer/Models/AeroplaneModel.java similarity index 99% rename from src/main/java/net/halbear/hvf/Example/Renderer/Models/AeroplaneModel.java rename to src/main/java/net/halbear/hvf/UsageExamples/Aeroplane/Renderer/Models/AeroplaneModel.java index 7ad9f14..21cde50 100644 --- a/src/main/java/net/halbear/hvf/Example/Renderer/Models/AeroplaneModel.java +++ b/src/main/java/net/halbear/hvf/UsageExamples/Aeroplane/Renderer/Models/AeroplaneModel.java @@ -1,10 +1,9 @@ -package net.halbear.hvf.Example.Renderer.Models; +package net.halbear.hvf.UsageExamples.Aeroplane.Renderer.Models; import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.vertex.IVertexBuilder; import net.halbear.hvf.Entity.Renderer.AnimationAxis; -import net.halbear.hvf.Entity.Renderer.VehicleAnimationManager; -import net.halbear.hvf.Example.Aeroplane; +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; diff --git a/src/main/java/net/halbear/hvf/UsageExamples/Aeroplane/Renderer/Models/DamagedPlane.java b/src/main/java/net/halbear/hvf/UsageExamples/Aeroplane/Renderer/Models/DamagedPlane.java new file mode 100644 index 0000000..4e54cd7 --- /dev/null +++ b/src/main/java/net/halbear/hvf/UsageExamples/Aeroplane/Renderer/Models/DamagedPlane.java @@ -0,0 +1,258 @@ +package net.halbear.hvf.UsageExamples.Aeroplane.Renderer.Models; + +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 DamagedPlane extends EntityModel { + 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 propeller; + private final ModelRenderer cube_r28; + + public DamagedPlane() { + 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(292, 89).addBox(11.0F, 13.0F, -4.0F, 2.0F, 8.0F, 8.0F, 0.0F, false); + Body.setTextureOffset(9, 207).addBox(9.0F, 16.0F, -1.0F, 2.0F, 2.0F, 2.0F, 0.0F, false); + + 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(0.0F, -12.0F, -1.0F, 2.0F, 12.0F, 2.0F, 0.0F, false); + + cube_r2 = new ModelRenderer(this); + cube_r2.setRotationPoint(-11.0F, 4.5F, 21.0F); + Body.addChild(cube_r2); + setRotationAngle(cube_r2, 0.2659F, 0.008F, -0.0169F); + cube_r2.setTextureOffset(162, 177).addBox(-1.0F, -22.5F, -2.0F, 2.0F, 24.0F, 2.0F, 0.0F, false); + + cube_r3 = new ModelRenderer(this); + cube_r3.setRotationPoint(11.0F, 4.5F, 21.0F); + Body.addChild(cube_r3); + setRotationAngle(cube_r3, 0.2659F, -0.008F, 0.0169F); + cube_r3.setTextureOffset(170, 177).addBox(-1.0F, -22.5F, -2.0F, 2.0F, 24.0F, 2.0F, 0.0F, false); + + cube_r4 = new ModelRenderer(this); + cube_r4.setRotationPoint(-11.1935F, -5.629F, -1.7596F); + Body.addChild(cube_r4); + setRotationAngle(cube_r4, 0.2223F, 0.008F, -0.0169F); + cube_r4.setTextureOffset(52, 21).addBox(-1.0F, -12.0F, -2.0F, 2.0F, 24.0F, 2.0F, 0.0F, false); + + cube_r5 = new ModelRenderer(this); + cube_r5.setRotationPoint(11.1935F, -5.629F, -1.7596F); + Body.addChild(cube_r5); + setRotationAngle(cube_r5, 0.2223F, -0.008F, 0.0169F); + cube_r5.setTextureOffset(178, 177).addBox(-1.0F, -12.0F, -2.0F, 2.0F, 24.0F, 2.0F, 0.0F, false); + + cube_r6 = new ModelRenderer(this); + cube_r6.setRotationPoint(0.0F, 11.0F, 7.0F); + Body.addChild(cube_r6); + setRotationAngle(cube_r6, 0.0F, 0.0F, -0.0873F); + cube_r6.setTextureOffset(0, 92).addBox(-26.0F, -6.0F, -9.0F, 52.0F, 2.0F, 24.0F, 0.0F, false); + + cube_r7 = new ModelRenderer(this); + cube_r7.setRotationPoint(0.0F, 11.0F, 7.0F); + Body.addChild(cube_r7); + setRotationAngle(cube_r7, 0.0F, 0.0F, 0.0873F); + cube_r7.setTextureOffset(0, 92).addBox(-26.0F, -29.0F, -14.0F, 52.0F, 2.0F, 24.0F, 0.0F, false); + + cube_r8 = new ModelRenderer(this); + cube_r8.setRotationPoint(0.0F, -1.5F, 0.0F); + Body.addChild(cube_r8); + setRotationAngle(cube_r8, -0.3491F, 0.0F, 0.0F); + cube_r8.setTextureOffset(0, 0).addBox(-0.5F, -2.5F, 1.0F, 1.0F, 9.0F, 1.0F, 0.0F, false); + + cube_r9 = new ModelRenderer(this); + cube_r9.setRotationPoint(-10.0F, -3.0F, 52.0F); + Body.addChild(cube_r9); + setRotationAngle(cube_r9, -0.3054F, 0.0F, -1.5708F); + cube_r9.setTextureOffset(144, 0).addBox(-1.0F, -9.0F, -6.0F, 2.0F, 18.0F, 12.0F, 0.0F, false); + + cube_r10 = new ModelRenderer(this); + cube_r10.setRotationPoint(0.0F, -15.0F, 50.0F); + Body.addChild(cube_r10); + setRotationAngle(cube_r10, -0.3054F, 0.0F, 0.0F); + cube_r10.setTextureOffset(54, 144).addBox(-1.0F, -6.0F, -4.0F, 2.0F, 18.0F, 12.0F, 0.0F, false); + + cube_r11 = new ModelRenderer(this); + cube_r11.setRotationPoint(2.0F, 9.25F, 34.0F); + Body.addChild(cube_r11); + setRotationAngle(cube_r11, 0.2528F, -0.1733F, 0.5888F); + cube_r11.setTextureOffset(135, 133).addBox(-0.25F, -6.3007F, -0.9537F, 0.0F, 6.0F, 17.0F, 0.0F, true); + + cube_r12 = new ModelRenderer(this); + cube_r12.setRotationPoint(-2.0F, 9.25F, 34.0F); + Body.addChild(cube_r12); + setRotationAngle(cube_r12, 0.2528F, 0.1733F, -0.5888F); + cube_r12.setTextureOffset(135, 133).addBox(0.25F, -6.3007F, -0.9537F, 0.0F, 6.0F, 17.0F, 0.0F, false); + + cube_r13 = new ModelRenderer(this); + cube_r13.setRotationPoint(0.0F, 9.25F, 33.0F); + Body.addChild(cube_r13); + setRotationAngle(cube_r13, 0.2618F, 0.0F, 0.0F); + cube_r13.setTextureOffset(106, 144).addBox(-2.0F, -6.0F, 0.0F, 4.0F, 6.0F, 21.0F, 0.0F, false); + + cube_r14 = new ModelRenderer(this); + cube_r14.setRotationPoint(-5.0F, 9.0F, 20.0F); + Body.addChild(cube_r14); + setRotationAngle(cube_r14, 0.0F, 0.1745F, 0.0F); + cube_r14.setTextureOffset(38, 201).addBox(0.0F, -1.75F, 0.0F, 5.0F, 2.0F, 14.0F, 0.0F, true); + + cube_r15 = new ModelRenderer(this); + cube_r15.setRotationPoint(5.0F, 9.0F, 20.0F); + Body.addChild(cube_r15); + setRotationAngle(cube_r15, 0.0F, -0.1745F, 0.0F); + cube_r15.setTextureOffset(38, 201).addBox(-5.0F, -1.75F, 0.0F, 5.0F, 2.0F, 14.0F, 0.0F, false); + + cube_r16 = new ModelRenderer(this); + cube_r16.setRotationPoint(-7.0F, -11.0F, 20.0F); + Body.addChild(cube_r16); + setRotationAngle(cube_r16, 0.3925F, -1.2393F, 1.1581F); + cube_r16.setTextureOffset(196, 64).addBox(0.0F, -7.0F, -5.0F, 18.0F, 7.0F, 5.0F, 0.0F, true); + + cube_r17 = new ModelRenderer(this); + cube_r17.setRotationPoint(7.0F, -11.0F, 20.0F); + Body.addChild(cube_r17); + setRotationAngle(cube_r17, 0.3925F, 1.2393F, -1.1581F); + cube_r17.setTextureOffset(196, 64).addBox(-18.0F, -7.0F, -5.0F, 18.0F, 7.0F, 5.0F, 0.0F, false); + + cube_r18 = new ModelRenderer(this); + cube_r18.setRotationPoint(0.0F, -6.0F, 9.0F); + Body.addChild(cube_r18); + setRotationAngle(cube_r18, 0.0F, 0.0F, -1.5708F); + cube_r18.setTextureOffset(42, 182).addBox(-10.0F, -7.0F, 6.0F, 15.0F, 14.0F, 5.0F, 0.0F, false); + cube_r18.setTextureOffset(0, 239).addBox(-15.0F, -7.0F, -28.0F, 15.0F, 14.0F, 0.0F, 0.0F, false); + cube_r18.setTextureOffset(0, 223).addBox(-15.0F, -7.0F, -27.0F, 15.0F, 14.0F, 0.0F, 0.0F, false); + cube_r18.setTextureOffset(96, 55).addBox(-9.0F, -2.0F, -28.0F, 4.0F, 4.0F, 7.0F, 0.0F, false); + cube_r18.setTextureOffset(0, 201).addBox(-14.0F, -7.0F, -26.0F, 14.0F, 14.0F, 5.0F, 0.0F, false); + cube_r18.setTextureOffset(144, 34).addBox(-16.0F, -9.0F, -28.0F, 18.0F, 2.0F, 7.0F, 0.0F, false); + cube_r18.setTextureOffset(42, 0).addBox(0.0F, -7.0F, -28.0F, 2.0F, 14.0F, 7.0F, 0.0F, false); + cube_r18.setTextureOffset(0, 0).addBox(-10.0F, -7.0F, -18.0F, 0.0F, 14.0F, 25.0F, 0.0F, false); + cube_r18.setTextureOffset(0, 0).addBox(1.0F, 0.0F, -26.0F, 15.0F, 0.0F, 66.0F, 0.0F, false); + cube_r18.setTextureOffset(0, 0).addBox(-10.0F, -7.0F, -21.0F, 11.0F, 14.0F, 10.0F, 0.0F, false); + cube_r18.setTextureOffset(54, 144).addBox(-10.0F, -8.0F, -21.0F, 10.0F, 1.0F, 32.0F, 0.0F, false); + + cube_r19 = new ModelRenderer(this); + cube_r19.setRotationPoint(0.0F, -6.0F, 9.0F); + Body.addChild(cube_r19); + setRotationAngle(cube_r19, 0.0F, 0.0F, 1.5708F); + cube_r19.setTextureOffset(144, 34).addBox(-2.0F, -9.0F, -28.0F, 18.0F, 2.0F, 7.0F, 0.0F, true); + cube_r19.setTextureOffset(54, 144).addBox(0.0F, -8.0F, -21.0F, 10.0F, 1.0F, 32.0F, 0.0F, true); + + cube_r20 = new ModelRenderer(this); + cube_r20.setRotationPoint(0.0F, 36.0F, 9.0F); + Body.addChild(cube_r20); + setRotationAngle(cube_r20, 0.0F, 0.0F, 1.5708F); + cube_r20.setTextureOffset(42, 0).addBox(-28.0F, -7.0F, -28.0F, 2.0F, 14.0F, 7.0F, 0.0F, false); + + cube_r21 = new ModelRenderer(this); + cube_r21.setRotationPoint(0.0F, -7.0F, -5.0F); + Body.addChild(cube_r21); + setRotationAngle(cube_r21, 0.0F, -0.4363F, -1.5708F); + cube_r21.setTextureOffset(0, 118).addBox(0.0F, -7.0F, 0.0F, 7.0F, 14.0F, 1.0F, 0.0F, false); + + cube_r22 = new ModelRenderer(this); + cube_r22.setRotationPoint(8.0F, 4.0F, 5.5F); + Body.addChild(cube_r22); + setRotationAngle(cube_r22, 0.0F, 0.0F, 2.0944F); + cube_r22.setTextureOffset(162, 178).addBox(0.0F, 0.0F, -17.5F, 6.0F, 1.0F, 32.0F, 0.0F, true); + + cube_r23 = new ModelRenderer(this); + cube_r23.setRotationPoint(-8.0F, 4.0F, 5.5F); + Body.addChild(cube_r23); + setRotationAngle(cube_r23, 0.0F, 0.0F, -2.0944F); + cube_r23.setTextureOffset(162, 178).addBox(-6.0F, 0.0F, -17.5F, 6.0F, 1.0F, 32.0F, 0.0F, false); + + cube_r24 = new ModelRenderer(this); + cube_r24.setRotationPoint(5.0F, 9.0F, 20.0F); + Body.addChild(cube_r24); + setRotationAngle(cube_r24, 0.1515F, -0.0869F, -1.0538F); + cube_r24.setTextureOffset(0, 182).addBox(-0.1927F, -3.9414F, -0.5209F, 6.0F, 4.0F, 15.0F, 0.0F, false); + + cube_r25 = new ModelRenderer(this); + cube_r25.setRotationPoint(-5.0F, 9.0F, 20.0F); + Body.addChild(cube_r25); + setRotationAngle(cube_r25, 0.1515F, 0.0869F, 1.0538F); + cube_r25.setTextureOffset(82, 118).addBox(-5.8073F, -4.9414F, -0.5209F, 6.0F, 5.0F, 15.0F, 0.0F, false); + + cube_r26 = new ModelRenderer(this); + cube_r26.setRotationPoint(-8.0F, 0.5F, 20.0F); + Body.addChild(cube_r26); + setRotationAngle(cube_r26, 0.1745F, 0.0F, 1.5708F); + cube_r26.setTextureOffset(0, 144).addBox(-6.5F, -4.0F, 0.0F, 10.0F, 4.0F, 34.0F, 0.0F, true); + + cube_r27 = new ModelRenderer(this); + cube_r27.setRotationPoint(8.0F, 0.5F, 20.0F); + Body.addChild(cube_r27); + setRotationAngle(cube_r27, 0.1745F, 0.0F, -1.5708F); + cube_r27.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_r28 = new ModelRenderer(this); + cube_r28.setRotationPoint(0.0F, -7.0F, 29.5F); + propeller.addChild(cube_r28); + setRotationAngle(cube_r28, 0.0F, 0.0F, -1.5708F); + cube_r28.setTextureOffset(32, 0).addBox(-9.0F, -2.0F, -32.0F, 4.0F, 4.0F, 3.0F, 0.0F, false); + cube_r28.setTextureOffset(0, 260).addBox(-22.0F, -15.0F, -29.0F, 30.0F, 30.0F, 0.0F, 0.0F, false); + cube_r28.setTextureOffset(4, 0).addBox(-8.0F, -1.0F, -29.0F, 2.0F, 2.0F, 1.0F, 0.0F, false); + } + + @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); + } + + @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; + } +} \ No newline at end of file diff --git a/src/main/java/net/halbear/hvf/Example/Airboat.java b/src/main/java/net/halbear/hvf/UsageExamples/Airboat/Airboat.java similarity index 97% rename from src/main/java/net/halbear/hvf/Example/Airboat.java rename to src/main/java/net/halbear/hvf/UsageExamples/Airboat/Airboat.java index fd0ad5b..d0c925c 100644 --- a/src/main/java/net/halbear/hvf/Example/Airboat.java +++ b/src/main/java/net/halbear/hvf/UsageExamples/Airboat/Airboat.java @@ -1,4 +1,4 @@ -package net.halbear.hvf.Example; +package net.halbear.hvf.UsageExamples.Airboat; import net.halbear.hvf.Entity.VehicleBaseEntity; import net.halbear.hvf.Util.Client.VehicleCameraPreset; diff --git a/src/main/java/net/halbear/hvf/Example/Renderer/Models/AirboatModel.java b/src/main/java/net/halbear/hvf/UsageExamples/Airboat/Renderer/AirboatModel.java similarity index 99% rename from src/main/java/net/halbear/hvf/Example/Renderer/Models/AirboatModel.java rename to src/main/java/net/halbear/hvf/UsageExamples/Airboat/Renderer/AirboatModel.java index aa6d23d..28e235f 100644 --- a/src/main/java/net/halbear/hvf/Example/Renderer/Models/AirboatModel.java +++ b/src/main/java/net/halbear/hvf/UsageExamples/Airboat/Renderer/AirboatModel.java @@ -1,11 +1,10 @@ -package net.halbear.hvf.Example.Renderer.Models; +package net.halbear.hvf.UsageExamples.Airboat.Renderer; import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.vertex.IVertexBuilder; import net.halbear.hvf.Entity.Renderer.AnimationAxis; import net.halbear.hvf.Entity.VehicleBaseEntity; -import net.halbear.hvf.Example.Aeroplane; -import net.halbear.hvf.Example.Airboat; +import net.halbear.hvf.UsageExamples.Airboat.Airboat; import net.minecraft.client.renderer.entity.model.EntityModel; import net.minecraft.client.renderer.model.ModelRenderer; diff --git a/src/main/java/net/halbear/hvf/Example/Renderer/AirboatRenderer.java b/src/main/java/net/halbear/hvf/UsageExamples/Airboat/Renderer/AirboatRenderer.java similarity index 84% rename from src/main/java/net/halbear/hvf/Example/Renderer/AirboatRenderer.java rename to src/main/java/net/halbear/hvf/UsageExamples/Airboat/Renderer/AirboatRenderer.java index 48dcf8d..7568315 100644 --- a/src/main/java/net/halbear/hvf/Example/Renderer/AirboatRenderer.java +++ b/src/main/java/net/halbear/hvf/UsageExamples/Airboat/Renderer/AirboatRenderer.java @@ -1,7 +1,6 @@ -package net.halbear.hvf.Example.Renderer; +package net.halbear.hvf.UsageExamples.Airboat.Renderer; import net.halbear.hvf.Entity.Renderer.VehicleBaseRenderer; -import net.halbear.hvf.Example.Renderer.Models.AirboatModel; import net.minecraft.client.renderer.entity.EntityRendererManager; import net.minecraft.client.renderer.entity.model.EntityModel; import net.minecraftforge.api.distmarker.Dist; diff --git a/src/main/java/net/halbear/hvf/Util/VehicleData/VehicleBuildInfo.java b/src/main/java/net/halbear/hvf/Util/VehicleData/VehicleBuildInfo.java index d595e67..2373345 100644 --- a/src/main/java/net/halbear/hvf/Util/VehicleData/VehicleBuildInfo.java +++ b/src/main/java/net/halbear/hvf/Util/VehicleData/VehicleBuildInfo.java @@ -11,7 +11,7 @@ public class VehicleBuildInfo { private Vector3d CentreOfMassOffset = new Vector3d(0,0,0); private int EngineCount; private EngineCategories EngineType; - private FuelType FuelType; + private FuelType FuelType = net.halbear.hvf.Util.VehicleData.FuelType.Petrol; private int GasCelCount; private float MaxSpeedMS; private float MaxEngineRPM;