some more burrowing entity base code, stinger rocket textures

This commit is contained in:
Bob 2022-01-27 21:51:55 +01:00
parent d075730108
commit 6954dcf993
15 changed files with 1006 additions and 17 deletions

View File

@ -121,7 +121,7 @@ public class PowerNet implements IPowerNet {
long req = weight.get(i);
double fraction = (double)req / (double)totalReq;
long given = (int) Math.floor(fraction * power);
long given = (long) Math.floor(fraction * power);
totalGiven += (given - con.transferPower(given));
}

View File

@ -34,6 +34,12 @@ public abstract class EntityBurrowingBase extends EntityCreature {
@Override
protected void updateFallState(double distFallen, boolean onGround) { }
/**
* ...and we turn off the default AI routines. We don't care about path-finding anyway.
*/
@Override
protected void updateEntityActionState() { }
/**
* Calls moveFlying to add motion depending on our entity's rotation, then moves. Drag is applied depending on whether it is underground or airborne.
* Called in onLivingUpdate TODO: figure out if strafe and forward are set by one of the superclasses or if this part is pointless
@ -72,6 +78,14 @@ public abstract class EntityBurrowingBase extends EntityCreature {
return false;
}
/**
* Contrary to its name, all I could find about it was that it controlled some rotation behavior. BoT seems to work fine with it, so we'll use it here too.
*/
@Override
protected boolean isAIEnabled() {
return true;
}
/**
* Whether the entity can freely dig up and down or if gravity should be applied instead.
* Some entities might not be able to course-correct when airborne, such as small non-worm entities.

View File

@ -0,0 +1,64 @@
package com.hbm.entity.mob;
import net.minecraft.entity.Entity;
import net.minecraft.util.MathHelper;
import net.minecraft.world.EnumDifficulty;
import net.minecraft.world.World;
/**
* The name comes from the "swinging" movement patterns as part of its custom path-finding. Also handles rotation.
* The end result kind of looks like dolphins jumping out of the water just to dive back in.
* This class assumes that all implementations are indeed hostile mobs.
* @author hbm
*
*/
public abstract class EntityBurrowingSwingingBase extends EntityBurrowingBase {
protected Entity target = null;
public EntityBurrowingSwingingBase(World world) {
super(world);
}
@Override
public void onUpdate() {
super.onUpdate();
double dx = motionX;
double dy = motionY;
double dz = motionZ;
float f3 = MathHelper.sqrt_double(dx * dx + dz * dz);
this.prevRotationYaw = this.rotationYaw = (float) (Math.atan2(dx, dz) * 180.0D / Math.PI);
this.prevRotationPitch = this.rotationPitch = (float) (Math.atan2(dy, f3) * 180.0D / Math.PI);
}
@Override
protected void updateAITasks() {
this.updateEntityActionState();
super.updateAITasks();
swingingMovement();
}
@Override
protected void updateEntityActionState() {
if(!this.worldObj.isRemote && this.worldObj.difficultySetting == EnumDifficulty.PEACEFUL) {
setDead();
}
if((this.target != null) && (this.target.isDead)) {
this.target = null;
}
if(this.posY < -10.0D) {
this.motionY = 1D;
} else if(this.posY < 3.0D) {
this.motionY = 0.3D;
}
}
protected void swingingMovement() {
}
}

View File

@ -9,11 +9,16 @@ import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.IEntityLivingData;
import net.minecraft.entity.IRangedAttackMob;
import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.entity.ai.EntityAIArrowAttack;
import net.minecraft.entity.ai.EntityAIHurtByTarget;
import net.minecraft.entity.ai.EntityAILookIdle;
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.ai.attributes.AttributeModifier;
import net.minecraft.entity.monster.EntityMob;
import net.minecraft.entity.monster.EntitySkeleton;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.DamageSource;
@ -25,6 +30,13 @@ public class EntitySiegeSkeleton extends EntityMob implements IRangedAttackMob,
public EntitySiegeSkeleton(World world) {
super(world);
this.tasks.addTask(1, new EntityAISwimming(this));
this.tasks.addTask(2, new EntityAIArrowAttack(this, 1.0D, 20, 60, 15.0F));
this.tasks.addTask(3, new EntityAIWander(this, 1.0D));
this.tasks.addTask(5, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F));
this.tasks.addTask(5, new EntityAILookIdle(this));
this.targetTasks.addTask(1, new EntityAIHurtByTarget(this, false));
this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityPlayer.class, 0, true));
}
@Override
@ -66,7 +78,6 @@ public class EntitySiegeSkeleton extends EntityMob implements IRangedAttackMob,
protected void entityInit() {
super.entityInit();
this.getDataWatcher().addObject(12, (int) 0);
this.getDataWatcher().addObject(13, (byte) 0);
}
@Override
@ -118,20 +129,28 @@ public class EntitySiegeSkeleton extends EntityMob implements IRangedAttackMob,
@Override
public void attackEntityWithRangedAttack(EntityLivingBase target, float f) {
Vec3 vec = Vec3.createVectorHelper(target.posX - posY, target.posY + target.height * 0.5 - (posY + this.getEyeHeight()), target.posZ -posZ).normalize();
double x = posX;
double y = posY + this.getEyeHeight();
double z = posZ;
Vec3 vec = Vec3.createVectorHelper(target.posX - x, target.posY + target.getYOffset() + target.height * 0.5 - y, target.posZ - z).normalize();
SiegeTier tier = this.getTier();
EntitySiegeLaser laser = new EntitySiegeLaser(worldObj, this);
laser.setThrowableHeading(vec.xCoord, vec.yCoord, vec.zCoord, 1F, 0.15F);
laser.setColor(0x808080);
laser.setDamage(tier.damageMod);
laser.setExplosive(tier.laserExplosive);
laser.setBreakChance(tier.laserBreak);
if(tier.laserIncendiary) laser.setIncendiary();
worldObj.spawnEntityInWorld(laser);
this.playSound("hbm:weapon.ballsLaser", 2.0F, 1.0F);
for(int i = 0; i < 3; i++) {
EntitySiegeLaser laser = new EntitySiegeLaser(worldObj, this);
laser.setPosition(x, y, z);
laser.setThrowableHeading(vec.xCoord, vec.yCoord, vec.zCoord, 1F, i == 1 ? 0.15F : 5F);
laser.setColor(0x808000);
laser.setDamage(tier.damageMod);
laser.setExplosive(tier.laserExplosive);
laser.setBreakChance(tier.laserBreak);
if(tier.laserIncendiary) laser.setIncendiary();
worldObj.spawnEntityInWorld(laser);
}
this.playSound("hbm:weapon.ballsLaser", 2.0F, 0.9F + rand.nextFloat() * 0.2F);
}
@Override

View File

@ -0,0 +1,62 @@
package com.hbm.entity.mob.siege;
import com.hbm.entity.mob.EntityBurrowingBase;
import net.minecraft.entity.IEntityLivingData;
import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.entity.ai.attributes.AttributeModifier;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.EnumDifficulty;
import net.minecraft.world.World;
public class EntitySiegeTunneler extends EntityBurrowingBase {
public EntitySiegeTunneler(World world) {
super(world);
}
@Override
protected void entityInit() {
super.entityInit();
this.getDataWatcher().addObject(12, (int) 0);
}
@Override
protected void applyEntityAttributes() {
super.applyEntityAttributes();
this.getEntityAttribute(SharedMonsterAttributes.followRange).setBaseValue(40.0D);
this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.23D);
}
public void setTier(SiegeTier tier) {
this.getDataWatcher().updateObject(12, tier.id);
this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).applyModifier(new AttributeModifier("Tier Speed Mod", tier.speedMod, 1));
this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(tier.health);
this.setHealth(this.getMaxHealth());
}
public SiegeTier getTier() {
SiegeTier tier = SiegeTier.tiers[this.getDataWatcher().getWatchableObjectInt(12)];
return tier != null ? tier : SiegeTier.CLAY;
}
@Override
public void writeEntityToNBT(NBTTagCompound nbt) {
super.writeEntityToNBT(nbt);
nbt.setInteger("siegeTier", this.getTier().id);
}
@Override
public void readEntityFromNBT(NBTTagCompound nbt) {
super.readEntityFromNBT(nbt);
this.setTier(SiegeTier.tiers[nbt.getInteger("siegeTier")]);
}
@Override
public IEntityLivingData onSpawnWithEgg(IEntityLivingData data) {
this.setTier(SiegeTier.tiers[rand.nextInt(SiegeTier.getLength())]);
this.addRandomArmor();
return super.onSpawnWithEgg(data);
}
}

View File

@ -589,6 +589,7 @@ public class ClientProxy extends ServerProxy {
RenderingRegistry.registerEntityRenderingHandler(EntitySiegeUFO.class, new RenderSiegeUFO());
RenderingRegistry.registerEntityRenderingHandler(EntitySiegeCraft.class, new RenderSiegeCraft());
RenderingRegistry.registerEntityRenderingHandler(EntitySiegeSkeleton.class, new RenderSiegeSkeleton());
RenderingRegistry.registerEntityRenderingHandler(EntitySiegeTunneler.class, new RenderSiegeTunneler());
RenderingRegistry.registerEntityRenderingHandler(EntityGhost.class, new RenderGhost());
//"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 }));

View File

@ -496,6 +496,7 @@ public class MainRegistry {
EntityRegistry.registerGlobalEntityID(EntitySiegeSkeleton.class, "entity_meme_skeleton", EntityRegistry.findGlobalUniqueEntityId(), 0x303030, 0x000080);
EntityRegistry.registerGlobalEntityID(EntitySiegeUFO.class, "entity_meme_ufo", EntityRegistry.findGlobalUniqueEntityId(), 0x303030, 0x800000);
EntityRegistry.registerGlobalEntityID(EntitySiegeCraft.class, "entity_meme_craft", EntityRegistry.findGlobalUniqueEntityId(), 0x303030, 0x808000);
EntityRegistry.registerGlobalEntityID(EntitySiegeTunneler.class, "entity_meme_tunneler", EntityRegistry.findGlobalUniqueEntityId(), 0x303030, 0x008080);
EntityRegistry.registerModEntity(EntitySPV.class, "entity_self_propelled_vehicle_mark_1", 160, this, 1000, 1, true);

View File

@ -0,0 +1,45 @@
package com.hbm.render.entity.mob;
import org.lwjgl.opengl.GL11;
import com.hbm.lib.RefStrings;
import com.hbm.render.loader.HFRWavefrontObject;
import net.minecraft.client.renderer.entity.Render;
import net.minecraft.entity.Entity;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.model.IModelCustom;
public class RenderSiegeTunneler extends Render {
public RenderSiegeTunneler() {
this.shadowOpaque = 0.0F;
}
public static final IModelCustom body = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/mobs/tunneler.obj"));
public static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID, "textures/entity/siege_drill.png");
@Override
public void doRender(Entity entity, double x, double y, double z, float f0, float f1) {
GL11.glPushMatrix();
GL11.glTranslated(x, y, z);
GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * f1 - 90.0F, 0.0F, 1.0F, 0.0F);
GL11.glRotatef(entity.prevRotationPitch + (entity.rotationPitch - entity.prevRotationPitch) * f1 - 90, 0.0F, 0.0F, 1.0F);
this.bindEntityTexture(entity);
GL11.glShadeModel(GL11.GL_SMOOTH);
GL11.glDisable(GL11.GL_CULL_FACE);
body.renderAll();
GL11.glEnable(GL11.GL_CULL_FACE);
GL11.glShadeModel(GL11.GL_FLAT);
GL11.glPopMatrix();
}
@Override
protected ResourceLocation getEntityTexture(Entity p_110775_1_) {
return texture;
}
}

View File

@ -45,14 +45,14 @@ public class TileEntityConverterRfHe extends TileEntity implements IEnergyGenera
if(simulate)
return 0;
long capacity = maxReceive * 4L;
long capacity = maxReceive / 4L;
subBuffer = capacity;
for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) {
this.sendPower(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir);
}
return (int) ((capacity - subBuffer) / 4L);
return (int) ((capacity - subBuffer) * 4L);
}
@Override

View File

@ -0,0 +1,783 @@
# Blender v2.79 (sub 0) OBJ File: 'tunneler.blend'
# www.blender.org
o Drill
v 0.000000 0.812500 -0.500000
v -0.143506 0.812500 -0.346455
v -0.353553 0.812500 -0.353553
v -0.346455 0.812500 -0.143506
v -0.500000 0.812500 0.000000
v -0.346455 0.812500 0.143506
v -0.353553 0.812500 0.353553
v -0.143506 0.812500 0.346455
v -0.000000 0.812500 0.500000
v 0.143506 0.812500 0.346455
v 0.353553 0.812500 0.353554
v 0.346455 0.812500 0.143506
v 0.500000 0.812500 0.000000
v 0.346455 0.812500 -0.143506
v 0.353553 0.812500 -0.353554
v 0.143506 0.812500 -0.346455
v 0.000000 1.812500 0.000000
vt 0.312500 0.106061
vt 0.312500 0.060606
vt 0.562500 0.060606
vt 0.312500 0.015152
vt 0.312500 0.106061
vt 0.312500 0.060606
vt 0.312500 0.015152
vt 0.312500 0.106061
vt 0.312500 0.060606
vt 0.312500 0.015152
vt 0.312500 0.106061
vt 0.312500 0.060606
vt 0.312500 0.015152
vt 0.312500 0.106061
vt 0.312500 0.060606
vt 0.312500 0.060606
vt 0.312500 0.015152
vt 0.312500 0.106061
vt 0.312500 0.015152
vt 0.312500 0.106061
vt 0.312500 0.060606
vt 0.312500 0.015152
vt 0.312500 0.060606
vt 0.312500 0.015152
vt 0.312500 0.106061
vt 0.281250 0.060606
vt 0.250000 0.015152
vt 0.281250 0.060606
vt 0.250000 0.015152
vt 0.281250 0.060606
vt 0.250000 0.015152
vt 0.281250 0.060606
vt 0.250000 0.015152
vt 0.281250 0.060606
vt 0.250000 0.015152
vt 0.281250 0.060606
vt 0.250000 0.015152
vt 0.281250 0.060606
vt 0.250000 0.015152
vt 0.281250 0.060606
vt 0.250000 0.015152
vt 0.750000 0.181818
vt 0.687500 0.181818
vt 0.750000 -0.000000
vt 0.625000 0.121212
vt 0.625000 0.060606
vt 0.687500 -0.000000
vt 0.812500 0.060606
vt 0.812500 0.121212
vn 0.6914 0.3231 -0.6462
vn -0.6914 0.3231 -0.6462
vn 0.0320 0.3231 -0.9458
vn -0.9458 0.3231 0.0320
vn -0.6462 0.3231 -0.6914
vn -0.6462 0.3231 0.6914
vn -0.9458 0.3231 -0.0320
vn 0.0320 0.3231 0.9458
vn -0.6914 0.3231 0.6462
vn -0.0320 0.3231 -0.9458
vn 0.9458 0.3231 0.0320
vn 0.6914 0.3231 0.6462
vn -0.0320 0.3231 0.9458
vn 0.9458 0.3231 -0.0320
vn 0.6462 0.3231 -0.6914
vn 0.6462 0.3231 0.6914
vn 0.0000 -1.0000 -0.0000
s off
f 16/1/1 1/2/1 17/3/1
f 1/2/2 2/4/2 17/3/2
f 2/5/3 3/6/3 17/3/3
f 3/6/4 4/7/4 17/3/4
f 4/8/5 5/9/5 17/3/5
f 5/9/6 6/10/6 17/3/6
f 6/11/7 7/12/7 17/3/7
f 7/12/8 8/13/8 17/3/8
f 8/14/9 9/15/9 17/3/9
f 15/16/10 16/17/10 17/3/10
f 14/18/11 15/16/11 17/3/11
f 9/15/12 10/19/12 17/3/12
f 10/20/13 11/21/13 17/3/13
f 11/21/14 12/22/14 17/3/14
f 13/23/15 14/24/15 17/3/15
f 12/25/16 13/23/16 17/3/16
f 13/26/17 12/27/17 14/24/17
f 15/28/17 14/29/17 16/17/17
f 1/30/17 16/31/17 2/4/17
f 3/32/17 2/33/17 4/7/17
f 5/34/17 4/35/17 6/10/17
f 7/36/17 6/37/17 8/13/17
f 9/38/17 8/39/17 10/19/17
f 11/40/17 10/41/17 12/22/17
f 16/42/17 14/43/17 6/44/17
f 14/43/17 12/45/17 10/46/17
f 10/46/17 8/47/17 14/43/17
f 8/47/17 6/44/17 14/43/17
f 6/44/17 4/48/17 2/49/17
f 2/49/17 16/42/17 6/44/17
o Body
v -0.250000 -0.750000 0.500000
v -0.500000 -0.750000 0.250000
v -0.500000 0.750000 0.250000
v -0.250000 0.750000 0.500000
v -0.500000 -0.750000 -0.250000
v -0.250000 -0.750000 -0.500000
v -0.250000 0.750000 -0.500000
v -0.500000 0.750000 -0.250000
v 0.500000 -0.750000 0.250000
v 0.250000 -0.750000 0.500000
v 0.250000 0.750000 0.500000
v 0.500000 0.750000 0.250000
v 0.250000 -0.750000 -0.500000
v 0.500000 -0.750000 -0.250000
v 0.500000 0.750000 -0.250000
v 0.250000 0.750000 -0.500000
v -0.375000 -0.750000 0.375000
v -0.375000 -0.750000 -0.375000
v 0.375000 -0.750000 -0.375000
v 0.375000 -0.750000 0.375000
v -0.375000 -0.875000 0.375000
v -0.375000 -0.875000 -0.375000
v 0.375000 -0.875000 -0.375000
v 0.375000 -0.875000 0.375000
v -0.500000 -0.875000 0.500000
v -0.500000 -0.875000 -0.500000
v 0.500000 -0.875000 -0.500000
v 0.500000 -0.875000 0.500000
v -0.500000 -1.125000 0.500000
v -0.500000 -1.125000 -0.500000
v 0.500000 -1.125000 -0.500000
v 0.500000 -1.125000 0.500000
v 0.000000 0.750000 -0.250000
v -0.176777 0.750000 -0.176777
v -0.250000 0.750000 0.000000
v -0.176777 0.750000 0.176777
v 0.000000 0.750000 0.250000
v 0.176777 0.750000 0.176777
v 0.250000 0.750000 -0.000000
v 0.176777 0.750000 -0.176777
v 0.000000 0.812500 -0.250000
v -0.176777 0.812500 -0.176777
v -0.250000 0.812500 0.000000
v -0.176777 0.812500 0.176777
v 0.000000 0.812500 0.250000
v 0.176777 0.812500 0.176777
v 0.250000 0.812500 -0.000000
v 0.176777 0.812500 -0.176777
v -0.062500 0.062500 0.500000
v -0.062500 -0.025888 0.411612
v 0.062500 0.062500 0.500000
v 0.062500 -0.025888 0.411612
v 0.062500 -0.202665 0.765165
v -0.062500 -0.202665 0.765165
v -0.062500 -0.291053 0.676777
v 0.062500 -0.291053 0.676777
v 0.125000 -0.158471 0.809359
v -0.125000 -0.158471 0.809359
v -0.125000 -0.335248 0.632583
v 0.125000 -0.335248 0.632583
v 0.125000 -0.335248 0.986136
v -0.125000 -0.335248 0.986136
v -0.125000 -0.512024 0.809359
v 0.125000 -0.512024 0.809359
v 0.406250 0.500000 -0.343750
v 0.343750 0.500000 -0.406250
v 0.406250 -0.500000 -0.343750
v 0.343750 -0.500000 -0.406250
v 0.520527 0.000000 -0.583027
v 0.583027 0.000000 -0.520527
v 0.520527 -0.500000 -0.583027
v 0.583027 -0.500000 -0.520527
v -0.406250 0.500000 0.343750
v -0.343750 0.500000 0.406250
v -0.406250 -0.500000 0.343750
v -0.343750 -0.500000 0.406250
v -0.520527 0.000000 0.583027
v -0.583027 0.000000 0.520527
v -0.520527 -0.500000 0.583027
v -0.583027 -0.500000 0.520527
v -0.343750 0.500000 -0.406250
v -0.406250 0.500000 -0.343750
v -0.343750 -0.500000 -0.406250
v -0.406250 -0.500000 -0.343750
v -0.583027 0.000000 -0.520527
v -0.520527 0.000000 -0.583027
v -0.583027 -0.500000 -0.520527
v -0.520527 -0.500000 -0.583027
v 0.343750 0.500000 0.406250
v 0.406250 0.500000 0.343750
v 0.343750 -0.500000 0.406250
v 0.406250 -0.500000 0.343750
v 0.583027 0.000000 0.520527
v 0.520527 0.000000 0.583027
v 0.583027 -0.500000 0.520527
v 0.520527 -0.500000 0.583027
v 0.375000 -1.125000 0.375000
v 0.375000 -1.125000 -0.375000
v -0.375000 -1.125000 0.375000
v -0.375000 -1.125000 -0.375000
v 0.250000 -1.062500 0.250000
v 0.250000 -1.062500 -0.250000
v -0.250000 -1.062500 0.250000
v -0.250000 -1.062500 -0.250000
v 0.062500 0.062500 -0.500000
v 0.062500 -0.025888 -0.411612
v -0.062500 0.062500 -0.500000
v -0.062500 -0.025888 -0.411612
v -0.062500 -0.202665 -0.765165
v 0.062500 -0.202665 -0.765165
v 0.062500 -0.291053 -0.676777
v -0.062500 -0.291053 -0.676777
v -0.125000 -0.158471 -0.809359
v 0.125000 -0.158471 -0.809359
v 0.125000 -0.335248 -0.632583
v -0.125000 -0.335248 -0.632583
v -0.125000 -0.335248 -0.986136
v 0.125000 -0.335248 -0.986136
v 0.125000 -0.512024 -0.809359
v -0.125000 -0.512024 -0.809359
v 0.500000 0.062500 0.062500
v 0.411612 -0.025888 0.062500
v 0.500000 0.062500 -0.062500
v 0.411612 -0.025888 -0.062500
v 0.765165 -0.202665 -0.062500
v 0.765165 -0.202665 0.062500
v 0.676777 -0.291053 0.062500
v 0.676777 -0.291053 -0.062500
v 0.809359 -0.158471 -0.125000
v 0.809359 -0.158471 0.125000
v 0.632583 -0.335248 0.125000
v 0.632583 -0.335248 -0.125000
v 0.986136 -0.335248 -0.125000
v 0.986136 -0.335248 0.125000
v 0.809359 -0.512024 0.125000
v 0.809359 -0.512024 -0.125000
v -0.500000 0.062500 -0.062500
v -0.411612 -0.025888 -0.062500
v -0.500000 0.062500 0.062500
v -0.411612 -0.025888 0.062500
v -0.765165 -0.202665 0.062500
v -0.765165 -0.202665 -0.062500
v -0.676777 -0.291053 -0.062500
v -0.676777 -0.291053 0.062500
v -0.809359 -0.158471 0.125000
v -0.809359 -0.158471 -0.125000
v -0.632583 -0.335248 -0.125000
v -0.632583 -0.335248 0.125000
v -0.986136 -0.335248 0.125000
v -0.986136 -0.335248 -0.125000
v -0.809359 -0.512024 -0.125000
v -0.809359 -0.512024 0.125000
vt 0.750000 0.757576
vt 0.625000 0.393939
vt 0.750000 0.393939
vt 0.187500 0.757576
vt 0.062500 0.393939
vt 0.187500 0.393939
vt 0.375000 0.757576
vt 0.250000 0.393939
vt 0.375000 0.393939
vt 0.562500 0.757576
vt 0.562500 0.393939
vt 0.593750 0.393939
vt 0.406250 0.393939
vt 0.437500 0.393939
vt 0.437500 0.757576
vt 0.218750 0.393939
vt 0.250000 0.757576
vt 0.031250 0.393939
vt 0.062500 0.757576
vt 0.218750 0.363636
vt 0.031250 0.363636
vt 0.781250 0.363636
vt 0.593750 0.363636
vt 0.406250 0.363636
vt 0.593750 0.333333
vt 0.218750 0.333333
vt 0.406250 0.333333
vt 0.781250 0.333333
vt 0.281250 0.333333
vt 0.500000 0.303030
vt 0.468750 0.333333
vt 0.781250 0.333333
vt 1.000000 0.303030
vt 0.968750 0.333333
vt 0.531250 0.333333
vt 0.750000 0.303030
vt 0.718750 0.333333
vt 0.031250 0.333333
vt 0.250000 0.303030
vt 1.000000 0.242424
vt 0.750000 0.242424
vt 0.000000 0.303030
vt 0.250000 0.242424
vt 0.500000 0.242424
vt 0.218750 0.030303
vt 0.250000 0.000000
vt 0.250000 0.939394
vt 0.062500 1.000000
vt 0.484375 0.015152
vt 0.531250 -0.000000
vt 0.531250 0.015152
vt 0.578125 0.015152
vt 0.625000 -0.000000
vt 0.625000 0.015152
vt 0.296875 0.015152
vt 0.343750 -0.000000
vt 0.343750 0.015152
vt 0.390625 0.015152
vt 0.437500 -0.000000
vt 0.437500 0.015152
vt 0.484375 -0.000000
vt 0.578125 -0.000000
vt 0.250000 0.015152
vt 0.296875 -0.000000
vt 0.390625 -0.000000
vt 0.296875 0.848485
vt 0.250000 0.863636
vt 0.265625 0.848485
vt 0.484375 0.757576
vt 0.453125 0.848485
vt 0.453125 0.757576
vt 0.296875 0.757576
vt 0.265625 0.757576
vt 0.390625 0.757576
vt 0.421875 0.848485
vt 0.390625 0.848485
vt 0.359375 0.757576
vt 0.328125 0.848485
vt 0.328125 0.757576
vt 0.437500 0.863636
vt 0.375000 0.924242
vt 0.375000 0.863636
vt 0.312500 0.863636
vt 0.484375 0.848485
vt 0.250000 0.924242
vt 0.312500 0.984848
vt 0.250000 0.984848
vt 0.312500 0.924242
vt 0.500000 0.863636
vt 0.437500 0.924242
vt 0.812500 0.393939
vt 0.828125 0.515152
vt 0.812500 0.515152
vt 0.750000 0.393939
vt 0.750000 0.636364
vt 0.812500 0.636364
vt 0.828125 0.636364
vt 0.890625 0.393939
vt 0.828125 0.393939
vt 0.828125 0.333333
vt 0.812500 0.333333
vt 0.812500 0.393939
vt 0.828125 0.515152
vt 0.812500 0.515152
vt 0.750000 0.393939
vt 0.750000 0.636364
vt 0.812500 0.636364
vt 0.828125 0.636364
vt 0.890625 0.393939
vt 0.828125 0.393939
vt 0.828125 0.333333
vt 0.812500 0.333333
vt 0.812500 0.393939
vt 0.828125 0.515152
vt 0.812500 0.515152
vt 0.750000 0.393939
vt 0.750000 0.636364
vt 0.812500 0.636364
vt 0.828125 0.636364
vt 0.890625 0.393939
vt 0.828125 0.393939
vt 0.812500 0.333333
vt 0.812500 0.393939
vt 0.828125 0.515152
vt 0.812500 0.515152
vt 0.750000 0.393939
vt 0.750000 0.636364
vt 0.812500 0.636364
vt 0.828125 0.636364
vt 0.890625 0.393939
vt 0.828125 0.393939
vt 0.828125 0.333333
vt 0.812500 0.333333
vt 0.062500 0.060606
vt 0.031250 0.030303
vt 0.000000 0.000000
vt 0.031250 0.212121
vt 0.000000 0.242424
vt 0.218750 0.212121
vt 0.187500 0.181818
vt 0.062500 0.181818
vt 0.187500 0.060606
vt 0.296875 0.848485
vt 0.250000 0.863636
vt 0.265625 0.848485
vt 0.484375 0.757576
vt 0.453125 0.848485
vt 0.453125 0.757576
vt 0.296875 0.757576
vt 0.265625 0.757576
vt 0.421875 0.757576
vt 0.390625 0.848485
vt 0.390625 0.757576
vt 0.359375 0.757576
vt 0.328125 0.848485
vt 0.328125 0.757576
vt 0.375000 0.863636
vt 0.437500 0.924242
vt 0.375000 0.924242
vt 0.421875 0.848485
vt 0.312500 0.863636
vt 0.484375 0.848485
vt 0.437500 0.863636
vt 0.250000 0.984848
vt 0.312500 0.924242
vt 0.312500 0.984848
vt 0.500000 0.863636
vt 0.250000 0.924242
vt 0.265625 0.848485
vt 0.312500 0.863636
vt 0.250000 0.863636
vt 0.453125 0.757576
vt 0.484375 0.848485
vt 0.453125 0.848485
vt 0.296875 0.757576
vt 0.265625 0.757576
vt 0.390625 0.757576
vt 0.421875 0.848485
vt 0.390625 0.848485
vt 0.359375 0.757576
vt 0.328125 0.848485
vt 0.328125 0.757576
vt 0.375000 0.863636
vt 0.437500 0.924242
vt 0.375000 0.924242
vt 0.500000 0.863636
vt 0.437500 0.863636
vt 0.250000 0.984848
vt 0.312500 0.924242
vt 0.312500 0.984848
vt 0.250000 0.924242
vt 0.296875 0.848485
vt 0.250000 0.863636
vt 0.265625 0.848485
vt 0.484375 0.757576
vt 0.453125 0.848485
vt 0.453125 0.757576
vt 0.296875 0.757576
vt 0.265625 0.757576
vt 0.390625 0.757576
vt 0.421875 0.848485
vt 0.390625 0.848485
vt 0.359375 0.757576
vt 0.328125 0.848485
vt 0.328125 0.757576
vt 0.375000 0.863636
vt 0.437500 0.924242
vt 0.375000 0.924242
vt 0.437500 0.863636
vt 0.359375 0.848485
vt 0.312500 0.863636
vt 0.484375 0.848485
vt 0.250000 0.984848
vt 0.312500 0.924242
vt 0.312500 0.984848
vt 0.500000 0.924242
vt 0.250000 0.924242
vt 0.625000 0.757576
vt -0.000000 0.757576
vt 0.000000 0.393939
vt -0.000000 0.939394
vt 0.000000 0.818182
vt 0.250000 0.818182
vt 0.187500 1.000000
vt 0.250000 -0.000000
vt 0.421875 0.757576
vt 0.359375 0.848485
vt 0.500000 0.924242
vt 0.890625 0.636364
vt 0.890625 0.636364
vt 0.890625 0.636364
vt 0.828125 0.333333
vt 0.890625 0.636364
vt 0.359375 0.848485
vt 0.500000 0.924242
vt 0.296875 0.848485
vt 0.484375 0.757576
vt 0.421875 0.757576
vt 0.359375 0.848485
vt 0.500000 0.924242
vt 0.421875 0.757576
vt 0.500000 0.863636
vn 0.0000 0.0000 1.0000
vn 1.0000 0.0000 0.0000
vn 0.0000 0.0000 -1.0000
vn -0.7071 0.0000 0.7071
vn -0.7071 0.0000 -0.7071
vn 0.7071 0.0000 -0.7071
vn 0.7071 0.0000 0.7071
vn -1.0000 0.0000 0.0000
vn 0.0000 -1.0000 0.0000
vn 0.0000 1.0000 0.0000
vn 0.9239 0.0000 -0.3827
vn 0.3827 0.0000 0.9239
vn -0.9239 0.0000 0.3827
vn -0.3827 0.0000 -0.9239
vn 0.3827 0.0000 -0.9239
vn 0.9239 0.0000 0.3827
vn -0.3827 0.0000 0.9239
vn -0.9239 0.0000 -0.3827
vn 0.0000 0.7071 -0.7071
vn 0.0000 -0.7071 -0.7071
vn 0.0000 0.7071 0.7071
vn 0.0000 -0.7071 0.7071
vn 0.6325 0.4472 -0.6325
vn -0.6325 0.4472 0.6325
vn -0.6325 0.4472 -0.6325
vn 0.6325 0.4472 0.6325
vn 0.4472 -0.8944 0.0000
vn -0.4472 -0.8944 0.0000
vn 0.0000 -0.8944 0.4472
vn 0.0000 -0.8944 -0.4472
vn -0.7071 0.7071 0.0000
vn -0.7071 -0.7071 0.0000
vn 0.7071 0.7071 0.0000
vn 0.7071 -0.7071 0.0000
s off
f 28/50/18 18/51/18 27/52/18
f 32/53/19 26/54/19 31/55/19
f 24/56/20 30/57/20 23/58/20
f 20/59/21 19/60/21 34/61/21
f 35/62/22 22/63/22 25/64/22
f 36/65/23 30/57/23 33/66/23
f 37/67/24 26/54/24 29/68/24
f 20/59/25 22/63/25 19/60/25
f 36/69/26 26/54/26 37/70/26
f 37/71/26 18/51/26 34/72/26
f 34/72/26 22/63/26 35/73/26
f 35/73/26 30/57/26 36/69/26
f 35/73/25 38/74/25 34/72/25
f 37/70/19 40/75/19 36/69/19
f 36/69/20 39/76/20 35/73/20
f 34/72/18 41/77/18 37/71/18
f 40/78/27 43/79/27 39/80/27
f 38/81/27 45/82/27 41/83/27
f 39/84/27 42/85/27 38/86/27
f 41/87/27 44/88/27 40/75/27
f 42/85/18 49/89/18 45/82/18
f 43/79/25 46/90/25 42/85/25
f 45/91/19 48/92/19 44/88/19
f 44/88/20 47/93/20 43/79/20
f 48/92/26 117/94/26 47/95/26
f 32/53/27 24/96/27 20/97/27
f 57/98/28 64/99/28 56/100/28
f 55/101/29 62/102/29 54/103/29
f 53/104/30 60/105/30 52/106/30
f 51/107/31 58/108/31 50/109/31
f 50/109/32 65/110/32 57/98/32
f 56/100/33 63/111/33 55/101/33
f 54/112/34 61/113/34 53/104/34
f 52/106/35 59/114/35 51/107/35
f 73/115/36 76/116/36 72/117/36
f 67/118/25 71/119/25 66/120/25
f 69/121/37 72/117/37 67/122/37
f 68/123/38 71/124/38 70/125/38
f 68/126/19 73/127/19 69/128/19
f 75/129/38 78/130/38 74/131/38
f 71/124/36 74/131/36 70/125/36
f 73/127/36 74/131/36 77/132/36
f 72/133/36 75/129/36 71/119/36
f 80/134/39 78/135/39 79/136/39
f 77/132/19 78/130/19 81/137/19
f 76/138/25 79/139/25 75/129/25
f 77/132/37 80/134/37 76/116/37
f 89/140/23 86/141/23 87/142/23
f 84/143/24 87/142/24 82/144/24
f 82/145/40 86/141/40 83/146/40
f 85/147/22 86/141/22 88/148/22
f 85/149/26 89/140/26 84/150/26
f 97/151/21 94/152/21 95/153/21
f 92/154/22 95/153/22 90/155/22
f 90/156/41 94/152/41 91/157/41
f 93/158/24 94/152/24 96/159/24
f 93/160/26 97/151/26 92/161/26
f 105/162/22 102/163/22 103/164/22
f 100/165/23 103/164/23 98/166/23
f 98/167/42 102/163/42 99/168/42
f 101/169/21 102/163/21 104/170/21
f 100/171/26 104/170/26 105/162/26
f 113/172/24 110/173/24 111/174/24
f 108/175/21 111/174/21 106/176/21
f 106/177/43 110/173/43 107/178/43
f 109/179/23 110/173/23 112/180/23
f 109/181/26 113/172/26 108/182/26
f 117/94/44 120/183/44 116/184/44
f 46/185/26 114/186/26 49/187/26
f 47/95/26 116/184/26 46/185/26
f 49/187/26 115/188/26 48/92/26
f 120/183/26 119/189/26 118/190/26
f 114/186/45 119/189/45 115/188/45
f 115/188/46 121/191/46 117/94/46
f 116/184/47 118/190/47 114/186/47
f 129/192/38 132/193/38 128/194/38
f 123/195/19 127/196/19 122/197/19
f 125/198/39 128/194/39 123/199/39
f 122/200/36 126/201/36 124/202/36
f 124/203/25 129/204/25 125/205/25
f 130/206/36 135/207/36 134/208/36
f 127/209/38 130/206/38 126/201/38
f 129/204/38 130/206/38 133/210/38
f 128/211/38 131/212/38 127/196/38
f 135/213/37 137/214/37 134/215/37
f 133/210/25 134/208/25 137/214/25
f 132/216/19 135/207/19 131/212/19
f 133/210/39 136/217/39 132/193/39
f 144/218/48 149/219/48 148/220/48
f 138/221/18 144/222/18 143/223/18
f 141/224/49 144/218/49 139/225/49
f 140/226/50 143/227/50 142/228/50
f 140/229/20 145/230/20 141/231/20
f 146/232/50 151/233/50 150/234/50
f 143/227/48 146/232/48 142/228/48
f 145/230/48 146/232/48 149/219/48
f 143/223/48 148/235/48 147/236/48
f 151/237/51 153/238/51 150/239/51
f 149/219/20 150/234/20 153/238/20
f 148/235/18 151/233/18 147/236/18
f 149/219/49 152/240/49 148/220/49
f 161/241/50 164/242/50 160/243/50
f 155/244/20 159/245/20 154/246/20
f 157/247/51 160/243/51 155/248/51
f 156/249/48 159/250/48 158/251/48
f 156/252/18 161/253/18 157/254/18
f 162/255/48 167/256/48 166/257/48
f 158/251/50 163/258/50 162/255/50
f 158/259/50 165/260/50 161/253/50
f 160/261/50 163/258/50 159/245/50
f 167/262/49 169/263/49 166/264/49
f 162/255/18 169/263/18 165/260/18
f 163/258/20 168/265/20 167/256/20
f 165/260/51 168/266/51 164/242/51
f 28/50/18 21/267/18 18/51/18
f 32/53/19 29/68/19 26/54/19
f 24/56/20 33/66/20 30/57/20
f 34/61/21 18/51/21 21/267/21
f 21/267/21 20/59/21 34/61/21
f 25/64/22 24/56/22 35/62/22
f 24/56/22 23/58/22 35/62/22
f 33/66/23 32/53/23 36/65/23
f 32/53/23 31/55/23 36/65/23
f 29/68/24 28/268/24 37/67/24
f 28/268/24 27/269/24 37/67/24
f 20/59/25 25/64/25 22/63/25
f 36/69/26 31/55/26 26/54/26
f 37/71/26 27/52/26 18/51/26
f 34/72/26 19/60/26 22/63/26
f 35/73/26 23/58/26 30/57/26
f 35/73/25 39/76/25 38/74/25
f 37/70/19 41/87/19 40/75/19
f 36/69/20 40/75/20 39/76/20
f 34/72/18 38/74/18 41/77/18
f 40/78/27 44/88/27 43/79/27
f 38/81/27 42/85/27 45/82/27
f 39/84/27 43/79/27 42/85/27
f 41/87/27 45/91/27 44/88/27
f 42/85/18 46/90/18 49/89/18
f 43/79/25 47/93/25 46/90/25
f 45/91/19 49/187/19 48/92/19
f 44/88/20 48/92/20 47/93/20
f 48/92/26 115/188/26 117/94/26
f 20/97/27 21/270/27 28/271/27
f 28/271/27 29/68/27 32/53/27
f 32/53/27 33/272/27 24/96/27
f 24/96/27 25/273/27 20/97/27
f 20/97/27 28/271/27 32/53/27
f 57/98/28 65/110/28 64/99/28
f 55/101/29 63/111/29 62/102/29
f 53/104/30 61/113/30 60/105/30
f 51/107/31 59/114/31 58/108/31
f 50/109/32 58/108/32 65/110/32
f 56/100/33 64/99/33 63/111/33
f 54/112/34 62/274/34 61/113/34
f 52/106/35 60/105/35 59/114/35
f 73/115/36 77/132/36 76/116/36
f 67/118/25 72/133/25 71/119/25
f 69/121/37 73/115/37 72/117/37
f 68/123/38 66/275/38 71/124/38
f 68/126/19 70/276/19 73/127/19
f 75/129/38 79/139/38 78/130/38
f 71/124/36 75/129/36 74/131/36
f 73/127/36 70/276/36 74/131/36
f 72/133/36 76/138/36 75/129/36
f 80/134/39 81/137/39 78/135/39
f 77/132/19 74/131/19 78/130/19
f 76/138/25 80/277/25 79/139/25
f 77/132/37 81/137/37 80/134/37
f 89/140/23 88/148/23 86/141/23
f 84/143/24 89/140/24 87/142/24
f 82/145/40 87/142/40 86/141/40
f 85/147/22 83/278/22 86/141/22
f 85/149/26 88/148/26 89/140/26
f 97/151/21 96/159/21 94/152/21
f 92/154/22 97/151/22 95/153/22
f 90/156/41 95/153/41 94/152/41
f 93/158/24 91/279/24 94/152/24
f 93/160/26 96/159/26 97/151/26
f 105/162/22 104/170/22 102/163/22
f 100/165/23 105/162/23 103/164/23
f 98/167/42 103/164/42 102/163/42
f 101/169/21 99/280/21 102/163/21
f 100/171/26 101/281/26 104/170/26
f 113/172/24 112/180/24 110/173/24
f 108/175/21 113/172/21 111/174/21
f 106/177/43 111/174/43 110/173/43
f 109/179/23 107/282/23 110/173/23
f 109/181/26 112/180/26 113/172/26
f 117/94/44 121/191/44 120/183/44
f 46/185/26 116/184/26 114/186/26
f 47/95/26 117/94/26 116/184/26
f 49/187/26 114/186/26 115/188/26
f 120/183/26 121/191/26 119/189/26
f 114/186/45 118/190/45 119/189/45
f 115/188/46 119/189/46 121/191/46
f 116/184/47 120/183/47 118/190/47
f 129/192/38 133/210/38 132/193/38
f 123/195/19 128/211/19 127/196/19
f 125/198/39 129/192/39 128/194/39
f 122/200/36 127/209/36 126/201/36
f 124/203/25 126/283/25 129/204/25
f 130/206/36 131/212/36 135/207/36
f 127/209/38 131/212/38 130/206/38
f 129/204/38 126/283/38 130/206/38
f 128/211/38 132/216/38 131/212/38
f 135/213/37 136/217/37 137/214/37
f 133/210/25 130/206/25 134/208/25
f 132/216/19 136/284/19 135/207/19
f 133/210/39 137/214/39 136/217/39
f 144/218/48 145/285/48 149/219/48
f 138/221/18 139/286/18 144/222/18
f 141/224/49 145/285/49 144/218/49
f 140/226/50 138/287/50 143/227/50
f 140/229/20 142/288/20 145/230/20
f 146/232/50 147/236/50 151/233/50
f 143/227/48 147/236/48 146/232/48
f 145/230/48 142/288/48 146/232/48
f 143/223/48 144/222/48 148/235/48
f 151/237/51 152/240/51 153/238/51
f 149/219/20 146/232/20 150/234/20
f 148/235/18 152/289/18 151/233/18
f 149/219/49 153/238/49 152/240/49
f 161/241/50 165/260/50 164/242/50
f 155/244/20 160/261/20 159/245/20
f 157/247/51 161/241/51 160/243/51
f 156/249/48 154/290/48 159/250/48
f 156/252/18 158/259/18 161/253/18
f 162/255/48 163/258/48 167/256/48
f 158/251/50 159/250/50 163/258/50
f 158/259/50 162/255/50 165/260/50
f 160/261/50 164/291/50 163/258/50
f 167/262/49 168/266/49 169/263/49
f 162/255/18 166/257/18 169/263/18
f 163/258/20 164/291/20 168/265/20
f 165/260/51 169/263/51 168/266/51

Binary file not shown.

After

Width:  |  Height:  |  Size: 255 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 246 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 246 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 246 B