*blows up missile with mind*

This commit is contained in:
Bob 2023-11-22 21:46:35 +01:00
parent 7323fe31da
commit b6f9953b3e
7 changed files with 2194 additions and 33 deletions

View File

@ -87,6 +87,7 @@ public abstract class EntityMissileBaseNT extends EntityThrowableInterp implemen
if(!worldObj.isRemote) { if(!worldObj.isRemote) {
if(hasPropulsion()) {
this.motionY -= decelY * velocity; this.motionY -= decelY * velocity;
Vec3 vector = Vec3.createVectorHelper(targetX - startX, 0, targetZ - startZ); Vec3 vector = Vec3.createVectorHelper(targetX - startX, 0, targetZ - startZ);
@ -103,6 +104,13 @@ public abstract class EntityMissileBaseNT extends EntityThrowableInterp implemen
motionX -= vector.xCoord * velocity; motionX -= vector.xCoord * velocity;
motionZ -= vector.zCoord * velocity; motionZ -= vector.zCoord * velocity;
} }
} else {
motionX *= 0.99;
motionZ *= 0.99;
if(motionY > -1.5)
motionY -= 0.05;
}
if(motionY < -velocity && this.isCluster) { if(motionY < -velocity && this.isCluster) {
cluster(); cluster();
@ -123,6 +131,10 @@ public abstract class EntityMissileBaseNT extends EntityThrowableInterp implemen
while(this.rotationYaw - this.prevRotationYaw >= 180.0F) this.prevRotationYaw += 360.0F; while(this.rotationYaw - this.prevRotationYaw >= 180.0F) this.prevRotationYaw += 360.0F;
} }
public boolean hasPropulsion() {
return true;
}
protected void spawnContrail() { protected void spawnContrail() {
Vec3 vec = Vec3.createVectorHelper(motionX, motionY, motionZ).normalize(); Vec3 vec = Vec3.createVectorHelper(motionX, motionY, motionZ).normalize();
MainRegistry.proxy.particleControl(posX - vec.xCoord, posY - vec.yCoord, posZ - vec.zCoord, 2); MainRegistry.proxy.particleControl(posX - vec.xCoord, posY - vec.yCoord, posZ - vec.zCoord, 2);

View File

@ -74,6 +74,21 @@ public class EntityMissileCustom extends EntityMissileBaseNT implements IChunkLo
ExplosionLarge.spawnShrapnelShower(worldObj, posX, posY, posZ, motionX, motionY, motionZ, 15, 0.075); ExplosionLarge.spawnShrapnelShower(worldObj, posX, posY, posZ, motionX, motionY, motionZ, 15, 0.075);
} }
@Override
public void onUpdate() {
if(!worldObj.isRemote) {
if(this.hasPropulsion()) this.fuel -= this.consumption;
}
super.onUpdate();
}
@Override
public boolean hasPropulsion() {
return this.fuel > 0;
}
@Override @Override
protected void entityInit() { protected void entityInit() {
super.entityInit(); super.entityInit();

View File

@ -1010,6 +1010,7 @@ public class ResourceManager {
//Missiles //Missiles
public static final IModelCustom missileV2 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileV2.obj")); public static final IModelCustom missileV2 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileV2.obj"));
public static final IModelCustom missileABM = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_abm.obj")).asDisplayList();
public static final IModelCustom missileStrong = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileGeneric.obj")); public static final IModelCustom missileStrong = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileGeneric.obj"));
public static final IModelCustom missileHuge = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileHuge.obj")); public static final IModelCustom missileHuge = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileHuge.obj"));
public static final IModelCustom missileNuclear = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileNeon.obj")); public static final IModelCustom missileNuclear = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileNeon.obj"));
@ -1152,7 +1153,7 @@ public class ResourceManager {
public static final ResourceLocation missileV2_IN_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileV2_IN.png"); public static final ResourceLocation missileV2_IN_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileV2_IN.png");
public static final ResourceLocation missileV2_CL_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileV2_CL.png"); public static final ResourceLocation missileV2_CL_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileV2_CL.png");
public static final ResourceLocation missileV2_BU_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileV2_BU.png"); public static final ResourceLocation missileV2_BU_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileV2_BU.png");
public static final ResourceLocation missileAA_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileAA.png"); public static final ResourceLocation missileAA_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_abm.png");
public static final ResourceLocation missileStrong_HE_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileStrong_HE.png"); public static final ResourceLocation missileStrong_HE_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileStrong_HE.png");
public static final ResourceLocation missileStrong_EMP_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileStrong_EMP.png"); public static final ResourceLocation missileStrong_EMP_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileStrong_EMP.png");
public static final ResourceLocation missileStrong_IN_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileStrong_IN.png"); public static final ResourceLocation missileStrong_IN_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileStrong_IN.png");

View File

@ -12,7 +12,8 @@ import net.minecraft.util.ResourceLocation;
public class RenderMissileGeneric extends Render { public class RenderMissileGeneric extends Render {
public RenderMissileGeneric() { } public RenderMissileGeneric() {
}
@Override @Override
public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) {
@ -30,9 +31,15 @@ public class RenderMissileGeneric extends Render {
bindTexture(ResourceManager.missileV2_CL_tex); bindTexture(ResourceManager.missileV2_CL_tex);
if(p_76986_1_ instanceof EntityMissileBunkerBuster) if(p_76986_1_ instanceof EntityMissileBunkerBuster)
bindTexture(ResourceManager.missileV2_BU_tex); bindTexture(ResourceManager.missileV2_BU_tex);
if(p_76986_1_ instanceof EntityMissileAntiBallistic)
if(p_76986_1_ instanceof EntityMissileAntiBallistic) {
bindTexture(ResourceManager.missileAA_tex); bindTexture(ResourceManager.missileAA_tex);
GL11.glShadeModel(GL11.GL_SMOOTH);
ResourceManager.missileABM.renderAll();
GL11.glShadeModel(GL11.GL_FLAT);
} else {
ResourceManager.missileV2.renderAll(); ResourceManager.missileV2.renderAll();
}
GL11.glPopMatrix(); GL11.glPopMatrix();
} }

View File

@ -165,7 +165,9 @@ public class RenderLaunchPadTier1 extends TileEntitySpecialRenderer {
{ {
GL11.glScalef(1.0F, 1.0F, 1.0F); GL11.glScalef(1.0F, 1.0F, 1.0F);
bindTexture(ResourceManager.missileAA_tex); bindTexture(ResourceManager.missileAA_tex);
ResourceManager.missileV2.renderAll(); GL11.glShadeModel(GL11.GL_SMOOTH);
ResourceManager.missileABM.renderAll();
GL11.glShadeModel(GL11.GL_FLAT);
} }
if(state == 22) if(state == 22)
{ {

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB