mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
nuclear bulkie, better pathfinding
This commit is contained in:
parent
f17a1280d7
commit
0a341411c8
@ -246,6 +246,7 @@ public class EntityMappings {
|
|||||||
addMob(EntityGlyphidBombardier.class, "entity_glyphid_bombardier", 0xDDD919, 0xDBB79D);
|
addMob(EntityGlyphidBombardier.class, "entity_glyphid_bombardier", 0xDDD919, 0xDBB79D);
|
||||||
addMob(EntityGlyphidBlaster.class, "entity_glyphid_blaster", 0xD83737, 0xDBB79D);
|
addMob(EntityGlyphidBlaster.class, "entity_glyphid_blaster", 0xD83737, 0xDBB79D);
|
||||||
addMob(EntityGlyphidScout.class, "entity_glyphid_scout", 0x273038, 0xB9E36B);
|
addMob(EntityGlyphidScout.class, "entity_glyphid_scout", 0x273038, 0xB9E36B);
|
||||||
|
addMob(EntityGlyphidNuclear.class, "entity_glyphid_nuclear", 0x267F00, 0xA0A0A0);
|
||||||
|
|
||||||
addSpawn(EntityCreeperPhosgene.class, 5, 1, 1, EnumCreatureType.monster, BiomeGenBase.getBiomeGenArray());
|
addSpawn(EntityCreeperPhosgene.class, 5, 1, 1, EnumCreatureType.monster, BiomeGenBase.getBiomeGenArray());
|
||||||
addSpawn(EntityCreeperVolatile.class, 10, 1, 1, EnumCreatureType.monster, BiomeGenBase.getBiomeGenArray());
|
addSpawn(EntityCreeperVolatile.class, 10, 1, 1, EnumCreatureType.monster, BiomeGenBase.getBiomeGenArray());
|
||||||
|
|||||||
@ -9,14 +9,6 @@ import com.hbm.main.ResourceManager;
|
|||||||
import net.minecraft.entity.Entity;
|
import net.minecraft.entity.Entity;
|
||||||
import net.minecraft.entity.EnumCreatureAttribute;
|
import net.minecraft.entity.EnumCreatureAttribute;
|
||||||
import net.minecraft.entity.SharedMonsterAttributes;
|
import net.minecraft.entity.SharedMonsterAttributes;
|
||||||
import net.minecraft.entity.ai.EntityAIAttackOnCollide;
|
|
||||||
import net.minecraft.entity.ai.EntityAIHurtByTarget;
|
|
||||||
import net.minecraft.entity.ai.EntityAILookIdle;
|
|
||||||
import net.minecraft.entity.ai.EntityAIMoveTowardsRestriction;
|
|
||||||
import net.minecraft.entity.ai.EntityAINearestAttackableTarget;
|
|
||||||
import net.minecraft.entity.ai.EntityAISwimming;
|
|
||||||
import net.minecraft.entity.ai.EntityAIWander;
|
|
||||||
import net.minecraft.entity.ai.EntityAIWatchClosest;
|
|
||||||
import net.minecraft.entity.monster.EntityMob;
|
import net.minecraft.entity.monster.EntityMob;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
@ -28,14 +20,14 @@ public class EntityGlyphid extends EntityMob {
|
|||||||
|
|
||||||
public EntityGlyphid(World world) {
|
public EntityGlyphid(World world) {
|
||||||
super(world);
|
super(world);
|
||||||
this.tasks.addTask(0, new EntityAISwimming(this));
|
/*this.tasks.addTask(0, new EntityAISwimming(this));
|
||||||
this.tasks.addTask(2, new EntityAIAttackOnCollide(this, EntityPlayer.class, 1.0D, false));
|
this.tasks.addTask(2, new EntityAIAttackOnCollide(this, EntityPlayer.class, 1.0D, false));
|
||||||
this.tasks.addTask(5, new EntityAIMoveTowardsRestriction(this, 1.0D));
|
this.tasks.addTask(5, new EntityAIMoveTowardsRestriction(this, 1.0D));
|
||||||
this.tasks.addTask(7, new EntityAIWander(this, 1.0D));
|
this.tasks.addTask(7, new EntityAIWander(this, 1.0D));
|
||||||
this.tasks.addTask(8, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F));
|
this.tasks.addTask(8, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F));
|
||||||
this.tasks.addTask(8, new EntityAILookIdle(this));
|
this.tasks.addTask(8, new EntityAILookIdle(this));
|
||||||
this.targetTasks.addTask(1, new EntityAIHurtByTarget(this, true));
|
this.targetTasks.addTask(1, new EntityAIHurtByTarget(this, true));
|
||||||
this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityPlayer.class, 0, true));
|
this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityPlayer.class, 0, true));*/
|
||||||
this.setSize(1.75F, 1F);
|
this.setSize(1.75F, 1F);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -64,9 +56,28 @@ public class EntityGlyphid extends EntityMob {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Entity findPlayerToAttack() {
|
protected Entity findPlayerToAttack() {
|
||||||
EntityPlayer entityplayer = this.worldObj.getClosestVulnerablePlayerToEntity(this, 32.0D);
|
EntityPlayer entityplayer = this.worldObj.getClosestVulnerablePlayerToEntity(this, 128.0D);
|
||||||
return entityplayer != null && this.canEntityBeSeen(entityplayer) ? entityplayer : null;
|
return entityplayer != null && this.canEntityBeSeen(entityplayer) ? entityplayer : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void updateEntityActionState() {
|
||||||
|
super.updateEntityActionState();
|
||||||
|
|
||||||
|
if(this.entityToAttack != null) {
|
||||||
|
this.setPathToEntity(this.worldObj.getPathEntityToEntity(this, this.entityToAttack, 128F, true, false, false, true));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected boolean canDespawn() {
|
||||||
|
return entityToAttack == null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getMaxSafePointTries() {
|
||||||
|
return 10;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean attackEntityFrom(DamageSource source, float amount) {
|
public boolean attackEntityFrom(DamageSource source, float amount) {
|
||||||
|
|||||||
100
src/main/java/com/hbm/entity/mob/EntityGlyphidNuclear.java
Normal file
100
src/main/java/com/hbm/entity/mob/EntityGlyphidNuclear.java
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
package com.hbm.entity.mob;
|
||||||
|
|
||||||
|
import com.hbm.blocks.ModBlocks;
|
||||||
|
import com.hbm.explosion.vanillant.ExplosionVNT;
|
||||||
|
import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard;
|
||||||
|
import com.hbm.explosion.vanillant.standard.BlockMutatorDebris;
|
||||||
|
import com.hbm.explosion.vanillant.standard.BlockProcessorStandard;
|
||||||
|
import com.hbm.explosion.vanillant.standard.EntityProcessorStandard;
|
||||||
|
import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard;
|
||||||
|
import com.hbm.main.MainRegistry;
|
||||||
|
import com.hbm.main.ResourceManager;
|
||||||
|
import com.hbm.packet.AuxParticlePacketNT;
|
||||||
|
import com.hbm.packet.PacketDispatcher;
|
||||||
|
|
||||||
|
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
|
||||||
|
import net.minecraft.entity.SharedMonsterAttributes;
|
||||||
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
|
import net.minecraft.util.ResourceLocation;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
|
public class EntityGlyphidNuclear extends EntityGlyphid {
|
||||||
|
|
||||||
|
public int deathTicks;
|
||||||
|
|
||||||
|
public EntityGlyphidNuclear(World world) {
|
||||||
|
super(world);
|
||||||
|
this.setSize(2.5F, 1.75F);
|
||||||
|
this.isImmuneToFire = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ResourceLocation getSkin() {
|
||||||
|
return ResourceManager.glyphid_nuclear_tex;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double getScale() {
|
||||||
|
return 2D;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void applyEntityAttributes() {
|
||||||
|
super.applyEntityAttributes();
|
||||||
|
this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(20D);
|
||||||
|
this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.8D);
|
||||||
|
this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(50D);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getArmorBreakChance(float amount) {
|
||||||
|
return amount < 25 ? 100 : amount > 1000 ? 1 : 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float calculateDamage(float amount) {
|
||||||
|
|
||||||
|
byte armor = this.dataWatcher.getWatchableObjectByte(17);
|
||||||
|
int divisor = 1;
|
||||||
|
|
||||||
|
for(int i = 0; i < 5; i++) {
|
||||||
|
if((armor & (1 << i)) > 0) {
|
||||||
|
divisor += 5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
amount /= divisor;
|
||||||
|
|
||||||
|
return amount;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getDamageThreshold() {
|
||||||
|
return 10F;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onDeathUpdate() {
|
||||||
|
++this.deathTicks;
|
||||||
|
|
||||||
|
if(this.deathTicks == 100) {
|
||||||
|
|
||||||
|
ExplosionVNT vnt = new ExplosionVNT(worldObj, posX, posY, posZ, 25, this);
|
||||||
|
vnt.setBlockAllocator(new BlockAllocatorStandard(24));
|
||||||
|
vnt.setBlockProcessor(new BlockProcessorStandard().withBlockEffect(new BlockMutatorDebris(ModBlocks.volcanic_lava_block, 0)).setNoDrop());
|
||||||
|
vnt.setEntityProcessor(new EntityProcessorStandard().withRangeMod(1.5F));
|
||||||
|
vnt.setPlayerProcessor(new PlayerProcessorStandard());
|
||||||
|
vnt.explode();
|
||||||
|
|
||||||
|
NBTTagCompound data = new NBTTagCompound();
|
||||||
|
data.setString("type", "muke");
|
||||||
|
// if the FX type is "muke", apply random BF effect
|
||||||
|
if(MainRegistry.polaroidID == 11 || rand.nextInt(100) == 0) {
|
||||||
|
data.setBoolean("balefire", true);
|
||||||
|
}
|
||||||
|
PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY + 0.5, posZ), new TargetPoint(dimension, posX, posY, posZ, 250));
|
||||||
|
|
||||||
|
this.setDead();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -730,6 +730,7 @@ public class ClientProxy extends ServerProxy {
|
|||||||
RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidBombardier.class, new RenderGlyphid());
|
RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidBombardier.class, new RenderGlyphid());
|
||||||
RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidBlaster.class, new RenderGlyphid());
|
RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidBlaster.class, new RenderGlyphid());
|
||||||
RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidScout.class, new RenderGlyphid());
|
RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidScout.class, new RenderGlyphid());
|
||||||
|
RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidNuclear.class, new RenderGlyphidNuclear());
|
||||||
//"particles"
|
//"particles"
|
||||||
RenderingRegistry.registerEntityRenderingHandler(EntitySmokeFX.class, new MultiCloudRenderer(new Item[] { ModItems.smoke1, ModItems.smoke2, ModItems.smoke3, ModItems.smoke4, ModItems.smoke5, ModItems.smoke6, ModItems.smoke7, ModItems.smoke8 }));
|
RenderingRegistry.registerEntityRenderingHandler(EntitySmokeFX.class, new MultiCloudRenderer(new Item[] { ModItems.smoke1, ModItems.smoke2, ModItems.smoke3, ModItems.smoke4, ModItems.smoke5, ModItems.smoke6, ModItems.smoke7, ModItems.smoke8 }));
|
||||||
RenderingRegistry.registerEntityRenderingHandler(EntityBSmokeFX.class, new MultiCloudRenderer(new Item[] { ModItems.b_smoke1, ModItems.b_smoke2, ModItems.b_smoke3, ModItems.b_smoke4, ModItems.b_smoke5, ModItems.b_smoke6, ModItems.b_smoke7, ModItems.b_smoke8 }));
|
RenderingRegistry.registerEntityRenderingHandler(EntityBSmokeFX.class, new MultiCloudRenderer(new Item[] { ModItems.b_smoke1, ModItems.b_smoke2, ModItems.b_smoke3, ModItems.b_smoke4, ModItems.b_smoke5, ModItems.b_smoke6, ModItems.b_smoke7, ModItems.b_smoke8 }));
|
||||||
|
|||||||
@ -666,6 +666,7 @@ public class ResourceManager {
|
|||||||
public static final ResourceLocation glyphid_bombardier_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_bombardier.png");
|
public static final ResourceLocation glyphid_bombardier_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_bombardier.png");
|
||||||
public static final ResourceLocation glyphid_blaster_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_blaster.png");
|
public static final ResourceLocation glyphid_blaster_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_blaster.png");
|
||||||
public static final ResourceLocation glyphid_scout_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_scout.png");
|
public static final ResourceLocation glyphid_scout_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_scout.png");
|
||||||
|
public static final ResourceLocation glyphid_nuclear_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_nuclear.png");
|
||||||
|
|
||||||
//ZIRNOX
|
//ZIRNOX
|
||||||
public static final ResourceLocation zirnox_tex = new ResourceLocation(RefStrings.MODID, "textures/models/zirnox.png");
|
public static final ResourceLocation zirnox_tex = new ResourceLocation(RefStrings.MODID, "textures/models/zirnox.png");
|
||||||
|
|||||||
@ -0,0 +1,236 @@
|
|||||||
|
package com.hbm.render.entity.mob;
|
||||||
|
|
||||||
|
import org.lwjgl.opengl.GL11;
|
||||||
|
|
||||||
|
import com.hbm.entity.mob.EntityGlyphid;
|
||||||
|
import com.hbm.entity.mob.EntityGlyphidNuclear;
|
||||||
|
import com.hbm.main.ResourceManager;
|
||||||
|
|
||||||
|
import net.minecraft.client.Minecraft;
|
||||||
|
import net.minecraft.client.model.ModelBase;
|
||||||
|
import net.minecraft.client.renderer.entity.RenderLiving;
|
||||||
|
import net.minecraft.entity.Entity;
|
||||||
|
import net.minecraft.entity.EntityLivingBase;
|
||||||
|
import net.minecraft.util.MathHelper;
|
||||||
|
import net.minecraft.util.ResourceLocation;
|
||||||
|
|
||||||
|
public class RenderGlyphidNuclear extends RenderLiving {
|
||||||
|
|
||||||
|
public RenderGlyphidNuclear() {
|
||||||
|
super(new ModelGlyphid(), 1.0F);
|
||||||
|
this.shadowOpaque = 0.0F;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected ResourceLocation getEntityTexture(Entity entity) {
|
||||||
|
EntityGlyphid glyphid = (EntityGlyphid) entity;
|
||||||
|
return glyphid.getSkin();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void preRenderCallback(EntityLivingBase entity, float interp) {
|
||||||
|
this.preRenderCallback((EntityGlyphidNuclear) entity, interp);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void preRenderCallback(EntityGlyphidNuclear entity, float interp) {
|
||||||
|
float swell = (float) (entity.deathTicks + interp) / 95F;
|
||||||
|
float flash = 1.0F + MathHelper.sin(swell * 100.0F) * swell * 0.01F;
|
||||||
|
|
||||||
|
if(swell < 0.0F) {
|
||||||
|
swell = 0.0F;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(swell > 1.0F) {
|
||||||
|
swell = 1.0F;
|
||||||
|
}
|
||||||
|
|
||||||
|
swell *= swell;
|
||||||
|
swell *= swell;
|
||||||
|
|
||||||
|
float scaleHorizontal = (1.0F + swell * 0.4F) * flash;
|
||||||
|
float scaleVertical = (1.0F + swell * 0.1F) / flash;
|
||||||
|
GL11.glScalef(scaleHorizontal, scaleVertical, scaleHorizontal);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected int getColorMultiplier(EntityLivingBase entity, float lightBrightness, float interp) {
|
||||||
|
return this.getColorMultiplier((EntityGlyphidNuclear) entity, lightBrightness, interp);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected int getColorMultiplier(EntityGlyphidNuclear entity, float lightBrightness, float interp) {
|
||||||
|
float swell = (float) (entity.deathTicks + interp) / 20F;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
int a = (int) (swell * 0.2F * 255.0F);
|
||||||
|
|
||||||
|
if((int) (swell * 10.0F) % 4 < 2)
|
||||||
|
return a *= 0.75;
|
||||||
|
|
||||||
|
if(a < 0) {
|
||||||
|
a = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(a > 255) {
|
||||||
|
a = 255;
|
||||||
|
}
|
||||||
|
|
||||||
|
short r = 255;
|
||||||
|
short g = 255;
|
||||||
|
short b = 255;
|
||||||
|
return a << 24 | r << 16 | g << 8 | b;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class ModelGlyphid extends ModelBase {
|
||||||
|
|
||||||
|
double bite = 0;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setLivingAnimations(EntityLivingBase entity, float limbSwing, float limbSwingAmount, float interp) {
|
||||||
|
bite = entity.getSwingProgress(interp);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void render(Entity entity, float limbSwing, float limbSwingAmount, float rotationYaw, float rotationHeadYaw, float rotationPitch, float scale) {
|
||||||
|
GL11.glPushMatrix();
|
||||||
|
|
||||||
|
GL11.glRotatef(180, 1, 0, 0);
|
||||||
|
GL11.glTranslatef(0, -1.5F, 0);
|
||||||
|
GL11.glEnable(GL11.GL_LIGHTING);
|
||||||
|
GL11.glDisable(GL11.GL_CULL_FACE);
|
||||||
|
|
||||||
|
double s = ((EntityGlyphid) entity).getScale();
|
||||||
|
GL11.glScaled(s, s, s);
|
||||||
|
|
||||||
|
EntityLivingBase living = (EntityLivingBase) entity;
|
||||||
|
byte armor = living.getDataWatcher().getWatchableObjectByte(17);
|
||||||
|
|
||||||
|
double walkCycle = limbSwing;
|
||||||
|
|
||||||
|
double speed = 100000D;
|
||||||
|
double chewing = 200000D;
|
||||||
|
double cy0 = Math.sin(walkCycle % (Math.PI * 2));
|
||||||
|
double cy1 = Math.sin(walkCycle % (Math.PI * 2) - Math.PI * 0.5);
|
||||||
|
double cy2 = Math.sin(walkCycle % (Math.PI * 2) - Math.PI);
|
||||||
|
double cy3 = Math.sin(walkCycle % (Math.PI * 2) - Math.PI * 0.75);
|
||||||
|
|
||||||
|
double bite = MathHelper.clamp_double(Math.sin(this.bite * Math.PI * 2 - Math.PI * 0.5), 0, 1) * 20;
|
||||||
|
double headTilt = Math.sin(this.bite * Math.PI) * 30;
|
||||||
|
|
||||||
|
ResourceManager.glyphid.renderPart("Body");
|
||||||
|
if((armor & (1 << 0)) > 0) ResourceManager.glyphid.renderPart("ArmorFront");
|
||||||
|
if((armor & (1 << 1)) > 0) ResourceManager.glyphid.renderPart("ArmorLeft");
|
||||||
|
if((armor & (1 << 2)) > 0) ResourceManager.glyphid.renderPart("ArmorRight");
|
||||||
|
|
||||||
|
/// LEFT ARM ///
|
||||||
|
GL11.glPushMatrix();
|
||||||
|
GL11.glTranslated(0.25, 0.625, 0.0625);
|
||||||
|
GL11.glRotated(10, 0, 1, 0);
|
||||||
|
GL11.glRotated(35 + cy1 * 20, 1, 0, 0);
|
||||||
|
GL11.glTranslated(-0.25, -0.625, -0.0625);
|
||||||
|
ResourceManager.glyphid.renderPart("ArmLeftUpper");
|
||||||
|
GL11.glTranslated(0.25, 0.625, 0.4375);
|
||||||
|
GL11.glRotated(-75 - cy1 * 20 + cy0 * 20, 1, 0, 0);
|
||||||
|
GL11.glTranslated(-0.25, -0.625, -0.4375);
|
||||||
|
ResourceManager.glyphid.renderPart("ArmLeftMid");
|
||||||
|
GL11.glTranslated(0.25, 0.625, 0.9375);
|
||||||
|
GL11.glRotated(90 - cy0 * 45, 1, 0, 0);
|
||||||
|
GL11.glTranslated(-0.25, -0.625, -0.9375);
|
||||||
|
ResourceManager.glyphid.renderPart("ArmLeftLower");
|
||||||
|
if((armor & (1 << 3)) > 0) ResourceManager.glyphid.renderPart("ArmLeftArmor");
|
||||||
|
GL11.glPopMatrix();
|
||||||
|
|
||||||
|
/// RIGHT ARM ///
|
||||||
|
GL11.glPushMatrix();
|
||||||
|
GL11.glTranslated(-0.25, 0.625, 0.0625);
|
||||||
|
GL11.glRotated(-10, 0, 1, 0);
|
||||||
|
GL11.glRotated(35 + cy2 * 20, 1, 0, 0);
|
||||||
|
GL11.glTranslated(0.25, -0.625, -0.0625);
|
||||||
|
ResourceManager.glyphid.renderPart("ArmRightUpper");
|
||||||
|
GL11.glTranslated(-0.25, 0.625, 0.4375);
|
||||||
|
GL11.glRotated(-75 - cy2 * 20 + cy3 * 20, 1, 0, 0);
|
||||||
|
GL11.glTranslated(0.25, -0.625, -0.4375);
|
||||||
|
ResourceManager.glyphid.renderPart("ArmRightMid");
|
||||||
|
GL11.glTranslated(-0.25, 0.625, 0.9375);
|
||||||
|
GL11.glRotated(90 - cy3 * 45, 1, 0, 0);
|
||||||
|
GL11.glTranslated(0.25, -0.625, -0.9375);
|
||||||
|
ResourceManager.glyphid.renderPart("ArmRightLower");
|
||||||
|
if((armor & (1 << 4)) > 0) ResourceManager.glyphid.renderPart("ArmRightArmor");
|
||||||
|
GL11.glPopMatrix();
|
||||||
|
|
||||||
|
GL11.glPushMatrix();
|
||||||
|
|
||||||
|
GL11.glTranslated(0, 0.5, 0.25);
|
||||||
|
GL11.glRotated(headTilt, 0, 0, 1);
|
||||||
|
GL11.glTranslated(0, -0.5, -0.25);
|
||||||
|
|
||||||
|
GL11.glPushMatrix();
|
||||||
|
GL11.glTranslated(0, 0.5, 0.25);
|
||||||
|
GL11.glRotated(-bite, 1, 0, 0);
|
||||||
|
GL11.glTranslated(0, -0.5, -0.25);
|
||||||
|
ResourceManager.glyphid.renderPart("JawTop");
|
||||||
|
GL11.glPopMatrix();
|
||||||
|
|
||||||
|
GL11.glPushMatrix();
|
||||||
|
GL11.glTranslated(0, 0.5, 0.25);
|
||||||
|
GL11.glRotated(bite, 0, 1, 0);
|
||||||
|
GL11.glRotated(bite, 1, 0, 0);
|
||||||
|
GL11.glTranslated(0, -0.5, -0.25);
|
||||||
|
ResourceManager.glyphid.renderPart("JawLeft");
|
||||||
|
GL11.glPopMatrix();
|
||||||
|
|
||||||
|
GL11.glPushMatrix();
|
||||||
|
GL11.glTranslated(0, 0.5, 0.25);
|
||||||
|
GL11.glRotated(-bite, 0, 1, 0);
|
||||||
|
GL11.glRotated(bite, 1, 0, 0);
|
||||||
|
GL11.glTranslated(0, -0.5, -0.25);
|
||||||
|
ResourceManager.glyphid.renderPart("JawRight");
|
||||||
|
GL11.glPopMatrix();
|
||||||
|
GL11.glPopMatrix();
|
||||||
|
|
||||||
|
double steppy = 15;
|
||||||
|
double bend = 60;
|
||||||
|
|
||||||
|
for(int i = 0; i < 3; i++) {
|
||||||
|
|
||||||
|
double c0 = cy0 * (i == 1 ? -1 : 1);
|
||||||
|
double c1 = cy1 * (i == 1 ? -1 : 1);
|
||||||
|
|
||||||
|
GL11.glPushMatrix();
|
||||||
|
GL11.glTranslated(0, 0.25, 0);
|
||||||
|
GL11.glRotated(i * 30 - 15 + c0 * 7.5, 0, 1, 0);
|
||||||
|
GL11.glRotated(steppy + c1 * steppy, 0, 0, 1);
|
||||||
|
GL11.glTranslated(0, -0.25, 0);
|
||||||
|
ResourceManager.glyphid.renderPart("LegLeftUpper");
|
||||||
|
GL11.glTranslated(0.5625, 0.25, 0);
|
||||||
|
GL11.glRotated(-bend - c1 * steppy, 0, 0, 1);
|
||||||
|
GL11.glTranslated(-0.5625, -0.25, 0);
|
||||||
|
ResourceManager.glyphid.renderPart("LegLeftLower");
|
||||||
|
GL11.glPopMatrix();
|
||||||
|
|
||||||
|
GL11.glPushMatrix();
|
||||||
|
GL11.glTranslated(0, 0.25, 0);
|
||||||
|
GL11.glRotated(i * 30 - 45 + c0 * 7.5, 0, 1, 0);
|
||||||
|
GL11.glRotated(-steppy + c1 * steppy, 0, 0, 1);
|
||||||
|
GL11.glTranslated(0, -0.25, 0);
|
||||||
|
ResourceManager.glyphid.renderPart("LegRightUpper");
|
||||||
|
GL11.glTranslated(-0.5625, 0.25, 0);
|
||||||
|
GL11.glRotated(bend - c1 * steppy, 0, 0, 1);
|
||||||
|
GL11.glTranslated(0.5625, -0.25, 0);
|
||||||
|
ResourceManager.glyphid.renderPart("LegRightLower");
|
||||||
|
GL11.glPopMatrix();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||||
|
GL11.glTranslated(0, 1, 0);
|
||||||
|
GL11.glRotated(90, 1, 0, 0);
|
||||||
|
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.mini_nuke_tex);
|
||||||
|
ResourceManager.projectiles.renderPart("MiniNuke");
|
||||||
|
GL11.glShadeModel(GL11.GL_FLAT);
|
||||||
|
|
||||||
|
GL11.glPopMatrix();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -507,8 +507,12 @@ entity.entity_elder_one.name=Quackos der Älteste
|
|||||||
entity.entity_fucc_a_ducc.name=Ente
|
entity.entity_fucc_a_ducc.name=Ente
|
||||||
entity.entity_glyphid.name=Glyphid
|
entity.entity_glyphid.name=Glyphid
|
||||||
entity.entity_glyphid_behemoth.name=Glyphid-Behemoth
|
entity.entity_glyphid_behemoth.name=Glyphid-Behemoth
|
||||||
|
entity.entity_glyphid_blaster.name=Glyphid-Blaster
|
||||||
|
entity.entity_glyphid_bombardier.name=Glyphid-Bombardierer
|
||||||
entity.entity_glyphid_brawler.name=Glyphid-Schläger
|
entity.entity_glyphid_brawler.name=Glyphid-Schläger
|
||||||
entity.entity_glyphid_brenda.name=Brenda
|
entity.entity_glyphid_brenda.name=Brenda
|
||||||
|
entity.entity_glyphid_nuclear.name=Der dicke Johnson
|
||||||
|
entity.entity_glyphid_scout.name=Glyphid-Späher
|
||||||
entity.entity_ntm_fbi.name=FBI Agent
|
entity.entity_ntm_fbi.name=FBI Agent
|
||||||
entity.entity_ntm_radiation_blaze.name=Kernschmelze-Elementar
|
entity.entity_ntm_radiation_blaze.name=Kernschmelze-Elementar
|
||||||
entity.hbm.entity_ntm_ufo.name=Marsianisches Invasionsschiff
|
entity.hbm.entity_ntm_ufo.name=Marsianisches Invasionsschiff
|
||||||
|
|||||||
@ -953,8 +953,12 @@ entity.entity_elder_one.name=Quackos The Elder One
|
|||||||
entity.entity_fucc_a_ducc.name=Duck
|
entity.entity_fucc_a_ducc.name=Duck
|
||||||
entity.entity_glyphid.name=Glyphid
|
entity.entity_glyphid.name=Glyphid
|
||||||
entity.entity_glyphid_behemoth.name=Glyphid Behemoth
|
entity.entity_glyphid_behemoth.name=Glyphid Behemoth
|
||||||
|
entity.entity_glyphid_blaster.name=Glyphid Blaster
|
||||||
|
entity.entity_glyphid_bombardier.name=Glyphid Bombardier
|
||||||
entity.entity_glyphid_brawler.name=Glyphid Brawler
|
entity.entity_glyphid_brawler.name=Glyphid Brawler
|
||||||
entity.entity_glyphid_brenda.name=Brenda
|
entity.entity_glyphid_brenda.name=Brenda
|
||||||
|
entity.entity_glyphid_nuclear.name=Big Man Johnson
|
||||||
|
entity.entity_glyphid_scout.name=Glyphid Scout
|
||||||
entity.entity_ntm_fbi.name=FBI Agent
|
entity.entity_ntm_fbi.name=FBI Agent
|
||||||
entity.entity_ntm_radiation_blaze.name=Meltdown Elemental
|
entity.entity_ntm_radiation_blaze.name=Meltdown Elemental
|
||||||
entity.hbm.entity_ntm_ufo.name=Martian Invasion Ship
|
entity.hbm.entity_ntm_ufo.name=Martian Invasion Ship
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 2.0 KiB |
Loading…
x
Reference in New Issue
Block a user