Merge branch 'HbmMods:master' into master

This commit is contained in:
Vaern 2022-01-27 18:37:56 -08:00 committed by GitHub
commit 73b6a078e5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
36 changed files with 2362 additions and 488 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

@ -831,9 +831,7 @@ public class ModBlocks {
public static Block machine_converter_he_rf;
public static final int guiID_converter_he_rf = 28;
public static Block machine_converter_rf_he;
public static final int guiID_converter_rf_he = 29;
public static Block machine_schrabidium_transmutator;
public static final int guiID_schrabidium_transmutator = 30;

View File

@ -19,26 +19,4 @@ public class BlockConverterRfHe extends BlockContainer {
public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) {
return new TileEntityConverterRfHe();
}
@Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
if(world.isRemote)
{
return true;
} else if(!player.isSneaking())
{
TileEntityConverterRfHe entity = (TileEntityConverterRfHe) world.getTileEntity(x, y, z);
if(entity != null)
{
player.addChatComponentMessage(new ChatComponentText("Note: Buffer may not accuratly represent current conversion rate, keep tact rates in mind."));
player.addChatComponentMessage(new ChatComponentText("HE: " + (entity.buf / 4)));
player.addChatComponentMessage(new ChatComponentText("RF: " + entity.buf));
//FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_converter_rf_he, world, x, y, z);
}
return true;
} else {
return false;
}
}
}

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

@ -9,8 +9,11 @@ import java.util.Map;
import com.hbm.entity.particle.EntityTSmokeFX;
import com.hbm.explosion.ExplosionLarge;
import com.hbm.explosion.ExplosionNukeSmall;
import com.hbm.handler.radiation.ChunkRadiationManager;
import com.hbm.items.ModItems;
import com.hbm.lib.Library;
import com.hbm.main.ModEventHandler;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
@ -19,6 +22,7 @@ import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.IProjectile;
import net.minecraft.entity.monster.EntityEnderman;
import net.minecraft.entity.monster.EntitySkeleton;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.ItemStack;
@ -47,7 +51,17 @@ public class EntityRocketHoming extends Entity implements IProjectile
private int ticksInAir;
private double damage = 2.0D;
private int knockbackStrength;
private float explosionStrength;
private static final String __OBFID = "CL_00001715";
// specifies the type of stinger rocket that was fired
/* 0 = Normal
* 1 = HE
* 2 = Incendiary
* 4 = Nuclear
* 42 = bone-seeking
*/
public int type;
public EntityRocketHoming(World p_i1753_1_)
@ -66,11 +80,12 @@ public class EntityRocketHoming extends Entity implements IProjectile
this.yOffset = 0.0F;
}
public EntityRocketHoming(World p_i1755_1_, EntityLivingBase p_i1755_2_, EntityLivingBase p_i1755_3_, float p_i1755_4_, float p_i1755_5_)
public EntityRocketHoming(World p_i1755_1_, EntityLivingBase p_i1755_2_, EntityLivingBase p_i1755_3_, float p_i1755_4_, float p_i1755_5_, int rocketType)
{
super(p_i1755_1_);
this.renderDistanceWeight = 10.0D;
this.shootingEntity = p_i1755_2_;
this.type = rocketType;
if (p_i1755_2_ instanceof EntityPlayer)
{
@ -96,11 +111,12 @@ public class EntityRocketHoming extends Entity implements IProjectile
}
}
public EntityRocketHoming(World p_i1756_1_, EntityLivingBase p_i1756_2_, float p_i1756_3_)
public EntityRocketHoming(World p_i1756_1_, EntityLivingBase p_i1756_2_, float p_i1756_3_, float strength, int type)
{
super(p_i1756_1_);
this.renderDistanceWeight = 10.0D;
this.shootingEntity = p_i1756_2_;
this.type = type;
if (p_i1756_2_ instanceof EntityPlayer)
{
@ -118,6 +134,7 @@ public class EntityRocketHoming extends Entity implements IProjectile
this.motionZ = MathHelper.cos(this.rotationYaw / 180.0F * (float)Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float)Math.PI);
this.motionY = (-MathHelper.sin(this.rotationPitch / 180.0F * (float)Math.PI));
this.setThrowableHeading(this.motionX, this.motionY, this.motionZ, p_i1756_3_ * 1.5F, 1.0F);
this.explosionStrength = strength;
}
public EntityRocketHoming(World world, int x, int y, int z, double mx, double my, double mz, double grav) {
@ -236,11 +253,9 @@ public class EntityRocketHoming extends Entity implements IProjectile
if (this.inGround)
{
/*int j = this.worldObj.getBlockMetadata(this.field_145791_d, this.field_145792_e, this.field_145789_f);
if (block == this.field_145790_g && j == this.inData)
{
++this.ticksInGround;
if (this.ticksInGround == 1200)
{
this.setDead();
@ -260,7 +275,7 @@ public class EntityRocketHoming extends Entity implements IProjectile
if (!this.worldObj.isRemote)
{
//this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 2.5F, true);
ExplosionLarge.explode(worldObj, posX, posY, posZ, 5, true, false, true);
Explode(this.type, this.explosionStrength);
/*EntityNukeExplosionAdvanced explosion = new EntityNukeExplosionAdvanced(this.worldObj);
explosion.speed = 25;
explosion.coefficient = 5.0F;
@ -288,7 +303,8 @@ public class EntityRocketHoming extends Entity implements IProjectile
Entity entity = null;
List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.addCoord(this.motionX, this.motionY, this.motionZ).expand(1.0D, 1.0D, 1.0D));
double d0 = 0.0D;
System.out.println(list);
double d0 = 0.0D;
int i;
float f1;
@ -314,6 +330,7 @@ public class EntityRocketHoming extends Entity implements IProjectile
}
}
}
if (entity != null)
{
@ -394,7 +411,7 @@ public class EntityRocketHoming extends Entity implements IProjectile
if (!this.worldObj.isRemote)
{
//this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 2.5F, true);
ExplosionLarge.explode(worldObj, posX, posY, posZ, 5, true, false, true);
Explode(this.type, this.explosionStrength);
}
this.setDead();
}
@ -404,7 +421,7 @@ public class EntityRocketHoming extends Entity implements IProjectile
if (!this.worldObj.isRemote)
{
//this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 2.5F, true);
ExplosionLarge.explode(worldObj, posX, posY, posZ, 5, true, false, true);
Explode(this.type, this.explosionStrength);
}
this.setDead();
}
@ -459,12 +476,10 @@ public class EntityRocketHoming extends Entity implements IProjectile
{
this.prevRotationPitch += 360.0F;
}
while (this.rotationYaw - this.prevRotationYaw < -180.0F)
{
this.prevRotationYaw -= 360.0F;
}
while (this.rotationYaw - this.prevRotationYaw >= 180.0F)
{
this.prevRotationYaw += 360.0F;
@ -508,7 +523,13 @@ public class EntityRocketHoming extends Entity implements IProjectile
boolean hasBeeped = false;
private boolean steer() {
List<Entity> all = worldObj.getEntitiesWithinAABBExcludingEntity(this, AxisAlignedBB.getBoundingBox(posX - homingRadius, posY - homingRadius, posZ - homingRadius, posX + homingRadius, posY + homingRadius, posZ + homingRadius));
List<Entity> all = null;
if(this.type == 42) {
all = worldObj.getEntitiesWithinAABB(EntitySkeleton.class, AxisAlignedBB.getBoundingBox(posX - homingRadius, posY - homingRadius, posZ - homingRadius, posX + homingRadius, posY + homingRadius, posZ + homingRadius));
} else {
all = worldObj.getEntitiesWithinAABBExcludingEntity(this, AxisAlignedBB.getBoundingBox(posX - homingRadius, posY - homingRadius, posZ - homingRadius, posX + homingRadius, posY + homingRadius, posZ + homingRadius));
}
HashMap<Entity, Double> targetable = new HashMap();
Vec3 path = Vec3.createVectorHelper(motionX, motionY, motionZ);
double startSpeed = path.lengthVector();
@ -598,6 +619,8 @@ public class EntityRocketHoming extends Entity implements IProjectile
p_70014_1_.setByte("inGround", (byte)(this.inGround ? 1 : 0));
p_70014_1_.setByte("pickup", (byte)this.canBePickedUp);
p_70014_1_.setDouble("damage", this.damage);
p_70014_1_.setFloat("strength", (byte)this.explosionStrength);
p_70014_1_.setByte("type", (byte)this.type);
}
/**
@ -614,6 +637,8 @@ public class EntityRocketHoming extends Entity implements IProjectile
this.inData = p_70037_1_.getByte("inData") & 255;
this.arrowShake = p_70037_1_.getByte("shake") & 255;
this.inGround = p_70037_1_.getByte("inGround") == 1;
this.explosionStrength = p_70037_1_.getFloat("strength");
this.type = p_70037_1_.getByte("type");
if (p_70037_1_.hasKey("damage", 99))
{
@ -640,7 +665,7 @@ public class EntityRocketHoming extends Entity implements IProjectile
{
boolean flag = this.canBePickedUp == 1 || this.canBePickedUp == 2 && p_70100_1_.capabilities.isCreativeMode;
if (this.canBePickedUp == 1 && !p_70100_1_.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_stinger_ammo, 1)))
if (this.canBePickedUp == 1 && !p_70100_1_.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_stinger_rocket, 1)))
{
flag = false;
}
@ -722,4 +747,18 @@ public class EntityRocketHoming extends Entity implements IProjectile
byte b0 = this.dataWatcher.getWatchableObjectByte(16);
return (b0 & 1) != 0;
}
public void Explode(int type, float strength) {
switch(type) {
case 42: ChunkRadiationManager.proxy.incrementRad(worldObj, (int)posX, (int)posY, (int)posZ, 2000);
case 0: ExplosionLarge.explode(worldObj, posX, posY, posZ, strength, true, false, true); break;
case 1: ExplosionLarge.explode(worldObj, posX, posY, posZ, strength * 2, true, false, true); break;
case 2: ExplosionLarge.explodeFire(worldObj, posX, posY, posZ, strength, true, false, false); break;
case 4:
ExplosionLarge.explode(worldObj, posX, posY, posZ, strength * 3, false, false, true);
ExplosionNukeSmall.explode(worldObj, posX, posY, posZ, (int)strength * 5);
break;
default: break;
}
}
}

View File

@ -189,6 +189,12 @@ public class BulletConfigSyncingUtil {
public static int ROCKET_CHAINSAW_LASER = i++;
public static int ROCKET_TOXIC_LASER = i++;
public static int ROCKET_PHOSPHORUS_LASER = i++;
public static int ROCKET_STINGER = i++;
public static int ROCKET_STINGER_HE = i++;
public static int ROCKET_STINGER_INCENDIARY = i++;
public static int ROCKET_STINGER_NUCLEAR = i++;
public static int ROCKET_STINGER_BONES = i++;
public static int SHELL_NORMAL = i++;
public static int SHELL_EXPLOSIVE = i++;
@ -284,6 +290,12 @@ public class BulletConfigSyncingUtil {
configSet.put(ROCKET_TOXIC, GunRocketFactory.getRocketChlorineConfig());
configSet.put(ROCKET_CANISTER, GunRocketFactory.getRocketCanisterConfig());
configSet.put(ROCKET_ERROR, GunRocketFactory.getRocketErrorConfig());
configSet.put(ROCKET_STINGER, GunRocketHomingFactory.getRocketStingerConfig());
configSet.put(ROCKET_STINGER_HE, GunRocketHomingFactory.getRocketStingerHEConfig());
configSet.put(ROCKET_STINGER_INCENDIARY, GunRocketHomingFactory.getRocketStingerIncendiaryConfig());
configSet.put(ROCKET_STINGER_NUCLEAR, GunRocketHomingFactory.getRocketStingerNuclearConfig());
configSet.put(ROCKET_STINGER_BONES, GunRocketHomingFactory.getRocketStingerBonesConfig());
configSet.put(GRENADE_NORMAL, GunGrenadeFactory.getGrenadeConfig());
configSet.put(GRENADE_HE, GunGrenadeFactory.getGrenadeHEConfig());

View File

@ -217,13 +217,6 @@ public class GUIHandler implements IGuiHandler {
return null;
}
case ModBlocks.guiID_converter_rf_he: {
if(entity instanceof TileEntityConverterRfHe) {
return new ContainerConverterRfHe(player.inventory, (TileEntityConverterRfHe) entity);
}
return null;
}
case ModBlocks.guiID_schrabidium_transmutator: {
if(entity instanceof TileEntityMachineSchrabidiumTransmutator) {
return new ContainerMachineSchrabidiumTransmutator(player.inventory, (TileEntityMachineSchrabidiumTransmutator) entity);
@ -1066,13 +1059,6 @@ public class GUIHandler implements IGuiHandler {
return null;
}
case ModBlocks.guiID_converter_rf_he: {
if(entity instanceof TileEntityConverterRfHe) {
return new GUIConverterRfHe(player.inventory, (TileEntityConverterRfHe) entity);
}
return null;
}
case ModBlocks.guiID_schrabidium_transmutator: {
if(entity instanceof TileEntityMachineSchrabidiumTransmutator) {
return new GUIMachineSchrabidiumTransmutator(player.inventory, (TileEntityMachineSchrabidiumTransmutator) entity);

View File

@ -0,0 +1,272 @@
package com.hbm.handler.guncfg;
import java.util.ArrayList;
import com.hbm.entity.projectile.EntityBulletBase;
import com.hbm.entity.projectile.EntityRocket;
import com.hbm.entity.projectile.EntityRocketHoming;
import com.hbm.handler.BulletConfigSyncingUtil;
import com.hbm.handler.BulletConfiguration;
import com.hbm.handler.GunConfiguration;
import com.hbm.interfaces.IBulletUpdateBehavior;
import com.hbm.items.ModItems;
import com.hbm.render.util.RenderScreenOverlay.Crosshair;
import net.minecraft.entity.player.EntityPlayer;
public class GunRocketHomingFactory {
public static GunConfiguration getStingerConfig() {
GunConfiguration config = new GunConfiguration();
config.rateOfFire = 20;
config.roundsPerCycle = 1;
config.gunMode = GunConfiguration.MODE_NORMAL;
config.firingMode = GunConfiguration.FIRE_MANUAL;
config.reloadDuration = 20;
config.firingDuration = 0;
config.ammoCap = 1;
config.reloadType = GunConfiguration.RELOAD_SINGLE;
config.allowsInfinity = true;
config.crosshair = Crosshair.L_KRUCK;
config.firingSound = "hbm:weapon.rpgShoot";
config.reloadSound = GunConfiguration.RSOUND_LAUNCHER;
config.reloadSoundEnd = false;
config.name = "FIM-92 Stinger man-portable air-defense system";
config.manufacturer = "Raytheon Missile Systems";
config.comment.add("Woosh, beep-beep-beep!");
config.config = new ArrayList<Integer>();
config.config.add(BulletConfigSyncingUtil.ROCKET_STINGER);
config.config.add(BulletConfigSyncingUtil.ROCKET_STINGER_HE);
config.config.add(BulletConfigSyncingUtil.ROCKET_STINGER_INCENDIARY);
config.config.add(BulletConfigSyncingUtil.ROCKET_STINGER_NUCLEAR);
config.config.add(BulletConfigSyncingUtil.ROCKET_STINGER_BONES);
config.durability = 250;
return config;
}
public static GunConfiguration getSkyStingerConfig() {
GunConfiguration config = new GunConfiguration();
config.rateOfFire = 20;
config.roundsPerCycle = 1;
config.gunMode = GunConfiguration.MODE_NORMAL;
config.firingMode = GunConfiguration.FIRE_MANUAL;
config.reloadDuration = 20;
config.firingDuration = 0;
config.ammoCap = 1;
config.reloadType = GunConfiguration.RELOAD_SINGLE;
config.allowsInfinity = true;
config.crosshair = Crosshair.L_KRUCK;
config.firingSound = "hbm:weapon.rpgShoot";
config.reloadSound = GunConfiguration.RSOUND_LAUNCHER;
config.reloadSoundEnd = false;
config.name = "The One Sky Stinger";
config.manufacturer = "Equestria Missile Systems";
config.comment.add("Oh, I get it, because of the...nyeees!");
config.comment.add("It all makes sense now!");
config.comment.add("");
config.comment.add("Rockets travel faster, are Three times stronger");
config.comment.add("and fires a second rocket for free");
config.comment.add("");
config.comment.add("[LEGENDARY WEAPON]");
config.config = new ArrayList<Integer>();
config.config.add(BulletConfigSyncingUtil.ROCKET_STINGER);
config.config.add(BulletConfigSyncingUtil.ROCKET_STINGER_HE);
config.config.add(BulletConfigSyncingUtil.ROCKET_STINGER_INCENDIARY);
config.config.add(BulletConfigSyncingUtil.ROCKET_STINGER_NUCLEAR);
config.config.add(BulletConfigSyncingUtil.ROCKET_STINGER_BONES);
config.durability = 1000;
return config;
}
public static BulletConfiguration getRocketStingerConfig() {
BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig();
bullet.ammo = ModItems.ammo_stinger_rocket;
bullet.dmgMin = 20;
bullet.dmgMax = 25;
bullet.explosive = 4F;
bullet.trail = 0;
bullet.bUpdate = new IBulletUpdateBehavior() {
@Override
public void behaveUpdate(EntityBulletBase bullet) {
if(!bullet.worldObj.isRemote) {
EntityPlayer player = bullet.worldObj.getClosestPlayerToEntity(bullet, -1.0D);
EntityRocketHoming rocket = new EntityRocketHoming(bullet.worldObj, player, 1.0F, 5.0F, 0);
if(player.getHeldItem().getItem() == ModItems.gun_skystinger && !player.isSneaking()) {
EntityRocketHoming rocket2 = new EntityRocketHoming(bullet.worldObj, player, 1.5F, 15.0F, 0);
rocket = new EntityRocketHoming(bullet.worldObj, player, 1.5F, 15.0F, 0);
rocket.setIsCritical(true);
rocket2.setIsCritical(true);
bullet.worldObj.spawnEntityInWorld(rocket2);
}
rocket.homingMod = 5;
rocket.homingRadius = 25;
bullet.worldObj.spawnEntityInWorld(rocket);
bullet.setDead();
}
}
};
return bullet;
}
public static BulletConfiguration getRocketStingerHEConfig() {
BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig();
bullet.ammo = ModItems.ammo_stinger_rocket_he;
bullet.dmgMin = 30;
bullet.dmgMax = 35;
bullet.explosive = 8F;
bullet.trail = 0;
bullet.wear = 15;
bullet.bUpdate = new IBulletUpdateBehavior() {
@Override
public void behaveUpdate(EntityBulletBase bullet) {
if(!bullet.worldObj.isRemote) {
EntityPlayer player = bullet.worldObj.getClosestPlayerToEntity(bullet, -1.0D);
EntityRocketHoming rocket = new EntityRocketHoming(bullet.worldObj, player, 1.0F, 5.0F, 1);
if(player.getHeldItem().getItem() == ModItems.gun_skystinger && !player.isSneaking()) {
EntityRocketHoming rocket2 = new EntityRocketHoming(bullet.worldObj, player, 1.5F, 15.0F, 1);
rocket = new EntityRocketHoming(bullet.worldObj, player, 1.5F, 15.0F, 1);
rocket.setIsCritical(true);
rocket2.setIsCritical(true);
bullet.worldObj.spawnEntityInWorld(rocket2);
}
rocket.homingMod = 5;
rocket.homingRadius = 25;
bullet.worldObj.spawnEntityInWorld(rocket);
bullet.setDead();
}
}
};
return bullet;
}
public static BulletConfiguration getRocketStingerIncendiaryConfig() {
BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig();
bullet.ammo = ModItems.ammo_stinger_rocket_incendiary;
bullet.dmgMin = 15;
bullet.dmgMax = 20;
bullet.explosive = 4F;
bullet.trail = 0;
bullet.wear = 12;
bullet.bUpdate = new IBulletUpdateBehavior() {
@Override
public void behaveUpdate(EntityBulletBase bullet) {
if(!bullet.worldObj.isRemote) {
EntityPlayer player = bullet.worldObj.getClosestPlayerToEntity(bullet, -1.0D);
EntityRocketHoming rocket = new EntityRocketHoming(bullet.worldObj, player, 1.0F, 5.0F, 2);
if(player.getHeldItem().getItem() == ModItems.gun_skystinger && !player.isSneaking()) {
EntityRocketHoming rocket2 = new EntityRocketHoming(bullet.worldObj, player, 1.5F, 15.0F, 2);
rocket = new EntityRocketHoming(bullet.worldObj, player, 1.5F, 15.0F, 2);
rocket.setIsCritical(true);
rocket2.setIsCritical(true);
bullet.worldObj.spawnEntityInWorld(rocket2);
}
rocket.homingMod = 5;
rocket.homingRadius = 25;
bullet.worldObj.spawnEntityInWorld(rocket);
bullet.setDead();
}
}
};
return bullet;
}
public static BulletConfiguration getRocketStingerNuclearConfig() {
BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig();
bullet.ammo = ModItems.ammo_stinger_rocket_nuclear;
bullet.dmgMin = 50;
bullet.dmgMax = 55;
bullet.explosive = 15F;
bullet.trail = 0;
bullet.wear = 30;
bullet.bUpdate = new IBulletUpdateBehavior() {
@Override
public void behaveUpdate(EntityBulletBase bullet) {
if(!bullet.worldObj.isRemote) {
EntityPlayer player = bullet.worldObj.getClosestPlayerToEntity(bullet, -1.0D);
EntityRocketHoming rocket = new EntityRocketHoming(bullet.worldObj, player, 1.0F, 5.0F, 4);
if(player.getHeldItem().getItem() == ModItems.gun_skystinger && !player.isSneaking()) {
EntityRocketHoming rocket2 = new EntityRocketHoming(bullet.worldObj, player, 1.5F, 15.0F, 4);
rocket = new EntityRocketHoming(bullet.worldObj, player, 1.5F, 15.0F, 4);
rocket.setIsCritical(true);
rocket2.setIsCritical(true);
bullet.worldObj.spawnEntityInWorld(rocket2);
}
rocket.homingMod = 5;
rocket.homingRadius = 25;
bullet.worldObj.spawnEntityInWorld(rocket);
bullet.setDead();
}
}
};
return bullet;
}
public static BulletConfiguration getRocketStingerBonesConfig() {
BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig();
bullet.ammo = ModItems.ammo_stinger_rocket_bones;
bullet.dmgMin = 20;
bullet.dmgMax = 25;
bullet.explosive = 8F;
bullet.trail = 0;
bullet.bUpdate = new IBulletUpdateBehavior() {
@Override
public void behaveUpdate(EntityBulletBase bullet) {
if(!bullet.worldObj.isRemote) {
EntityPlayer player = bullet.worldObj.getClosestPlayerToEntity(bullet, -1.0D);
EntityRocketHoming rocket = new EntityRocketHoming(bullet.worldObj, player, 1.0F, 5.0F, 42);
if(player.getHeldItem().getItem() == ModItems.gun_skystinger && !player.isSneaking()) {
EntityRocketHoming rocket2 = new EntityRocketHoming(bullet.worldObj, player, 1.5F, 15.0F, 42);
rocket = new EntityRocketHoming(bullet.worldObj, player, 1.5F, 15.0F, 42);
rocket.setIsCritical(true);
rocket2.setIsCritical(true);
bullet.worldObj.spawnEntityInWorld(rocket2);
}
rocket.homingMod = 5;
rocket.homingRadius = 25;
bullet.worldObj.spawnEntityInWorld(rocket);
bullet.setDead();
}
}
};
return bullet;
}
}

View File

@ -1,69 +0,0 @@
package com.hbm.inventory.container;
import com.hbm.tileentity.machine.TileEntityConverterRfHe;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.ICrafting;
import net.minecraft.item.ItemStack;
public class ContainerConverterRfHe extends Container {
private TileEntityConverterRfHe diFurnace;
private int water;
private int flux;
public ContainerConverterRfHe(InventoryPlayer invPlayer, TileEntityConverterRfHe tedf) {
diFurnace = tedf;
}
@Override
public void addCraftingToCrafters(ICrafting crafting) {
super.addCraftingToCrafters(crafting);
crafting.sendProgressBarUpdate(this, 1, this.diFurnace.storage.getEnergyStored());
}
@Override
public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int p_82846_2_)
{
return null;
}
@Override
public boolean canInteractWith(EntityPlayer player) {
return true;
}
@Override
public void detectAndSendChanges() {
super.detectAndSendChanges();
for(int i = 0; i < this.crafters.size(); i++)
{
ICrafting par1 = (ICrafting)this.crafters.get(i);
if(this.flux != this.diFurnace.storage.getEnergyStored())
{
par1.sendProgressBarUpdate(this, 1, this.diFurnace.storage.getEnergyStored());
}
}
this.flux = this.diFurnace.storage.getEnergyStored();
}
@Override
public void updateProgressBar(int i, int j) {
if(i == 0)
{
diFurnace.power = j;
}
if(i == 1)
{
diFurnace.storage.setEnergyStored(j);
}
}
}

View File

@ -1,47 +0,0 @@
package com.hbm.inventory.gui;
import org.lwjgl.opengl.GL11;
import com.hbm.inventory.container.ContainerConverterRfHe;
import com.hbm.lib.RefStrings;
import com.hbm.tileentity.machine.TileEntityConverterRfHe;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.util.ResourceLocation;
public class GUIConverterRfHe extends GuiContainer {
private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_rf_he_converter.png");
private TileEntityConverterRfHe diFurnace;
public GUIConverterRfHe(InventoryPlayer invPlayer, TileEntityConverterRfHe tedf) {
super(new ContainerConverterRfHe(invPlayer, tedf));
diFurnace = tedf;
this.xSize = 176;
this.ySize = 86;
}
@Override
protected void drawGuiContainerForegroundLayer(int i, int j) {
}
@Override
protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) {
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
Minecraft.getMinecraft().getTextureManager().bindTexture(texture);
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize);
if(diFurnace.power > 0) {
int i = (int)diFurnace.getPowerScaled(52);
drawTexturedModalRect(guiLeft + 136, guiTop + 69 - i, 188, 52 - i, 12, i);
}
if(diFurnace.storage.getEnergyStored() > 0) {
int i = diFurnace.getFluxScaled(52);
drawTexturedModalRect(guiLeft + 28, guiTop + 69 - i, 176, 52 - i, 12, i);
}
}
}

View File

@ -1550,6 +1550,11 @@ public class ModItems {
public static Item ammo_dart;
public static Item ammo_dart_nuclear;
public static Item ammo_dart_nerf;
public static Item ammo_stinger_rocket;
public static Item ammo_stinger_rocket_he;
public static Item ammo_stinger_rocket_incendiary;
public static Item ammo_stinger_rocket_nuclear;
public static Item ammo_stinger_rocket_bones;
public static Item gun_rpg;
public static Item gun_rpg_ammo;
@ -4176,6 +4181,11 @@ public class ModItems {
ammo_dart = new ItemAmmo().setUnlocalizedName("ammo_dart");
ammo_dart_nuclear = new ItemAmmo().setUnlocalizedName("ammo_dart_nuclear");
ammo_dart_nerf = new ItemAmmo().setUnlocalizedName("ammo_dart_nerf");
ammo_stinger_rocket = new ItemAmmo().setUnlocalizedName("ammo_stinger_rocket");
ammo_stinger_rocket_he = new ItemAmmo().setUnlocalizedName("ammo_stinger_rocket_he");
ammo_stinger_rocket_incendiary = new ItemAmmo().setUnlocalizedName("ammo_stinger_rocket_incendiary");
ammo_stinger_rocket_nuclear = new ItemAmmo().setUnlocalizedName("ammo_stinger_rocket_nuclear");
ammo_stinger_rocket_bones = new ItemAmmo().setUnlocalizedName("ammo_stinger_rocket_bones");
gun_rpg = new ItemGunBase(GunRocketFactory.getGustavConfig()).setUnlocalizedName("gun_rpg").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_rpg");
gun_karl = new ItemGunBase(GunRocketFactory.getKarlConfig()).setUnlocalizedName("gun_karl").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_karl");
@ -4183,9 +4193,8 @@ public class ModItems {
gun_quadro = new ItemGunBase(GunRocketFactory.getQuadroConfig()).setUnlocalizedName("gun_quadro").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_quadro");
gun_rpg_ammo = new Item().setUnlocalizedName("gun_rpg_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_rpg_ammo_alt");
gun_hk69 = new ItemGunBase(GunGrenadeFactory.getHK69Config()).setUnlocalizedName("gun_hk69").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_hk69");
gun_stinger = new GunStinger().setUnlocalizedName("gun_stinger").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_stinger");
gun_skystinger = new GunStinger().setUnlocalizedName("gun_skystinger").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_skystinger");
gun_stinger_ammo = new Item().setUnlocalizedName("gun_stinger_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_stinger_ammo");
gun_stinger = new ItemGunBase(GunRocketHomingFactory.getStingerConfig()).setUnlocalizedName("gun_stinger").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_stinger");
gun_skystinger = new ItemGunBase(GunRocketHomingFactory.getSkyStingerConfig()).setUnlocalizedName("gun_skystinger").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_skystinger"); gun_stinger_ammo = new Item().setUnlocalizedName("gun_stinger_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_stinger_ammo");
gun_revolver_ammo = new Item().setUnlocalizedName("gun_revolver_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_ammo");
gun_revolver = new ItemGunBase(Gun357MagnumFactory.getRevolverConfig()).setUnlocalizedName("gun_revolver").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver");
gun_revolver_saturnite = new ItemGunBase(Gun357MagnumFactory.getRevolverSaturniteConfig()).setUnlocalizedName("gun_revolver_saturnite").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_saturnite");
@ -7112,6 +7121,11 @@ public class ModItems {
GameRegistry.registerItem(ammo_rocket_nuclear, ammo_rocket_nuclear.getUnlocalizedName());
GameRegistry.registerItem(ammo_rocket_rpc, ammo_rocket_rpc.getUnlocalizedName());
GameRegistry.registerItem(ammo_rocket_digamma, ammo_rocket_digamma.getUnlocalizedName());
GameRegistry.registerItem(ammo_stinger_rocket, ammo_stinger_rocket.getUnlocalizedName());
GameRegistry.registerItem(ammo_stinger_rocket_he, ammo_stinger_rocket_he.getUnlocalizedName());
GameRegistry.registerItem(ammo_stinger_rocket_incendiary, ammo_stinger_rocket_incendiary.getUnlocalizedName());
GameRegistry.registerItem(ammo_stinger_rocket_nuclear, ammo_stinger_rocket_nuclear.getUnlocalizedName());
GameRegistry.registerItem(ammo_stinger_rocket_bones, ammo_stinger_rocket_bones.getUnlocalizedName());
GameRegistry.registerItem(ammo_grenade, ammo_grenade.getUnlocalizedName());
GameRegistry.registerItem(ammo_grenade_he, ammo_grenade_he.getUnlocalizedName());
GameRegistry.registerItem(ammo_grenade_incendiary, ammo_grenade_incendiary.getUnlocalizedName());

View File

@ -1,166 +0,0 @@
package com.hbm.items.weapon;
import java.util.List;
import com.google.common.collect.Multimap;
import com.hbm.entity.projectile.EntityRocketHoming;
import com.hbm.items.ModItems;
import net.minecraft.enchantment.Enchantment;
import net.minecraft.enchantment.EnchantmentHelper;
import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.entity.ai.attributes.AttributeModifier;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.EnumAction;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.entity.player.ArrowLooseEvent;
import net.minecraftforge.event.entity.player.ArrowNockEvent;
public class GunStinger extends Item {
public GunStinger()
{
this.maxStackSize = 1;
if(this == ModItems.gun_stinger)
this.setMaxDamage(500);
if(this == ModItems.gun_skystinger)
this.setMaxDamage(1000);
}
@Override
public void onPlayerStoppedUsing(ItemStack p_77615_1_, World p_77615_2_, EntityPlayer p_77615_3_, int p_77615_4_) {
int j = this.getMaxItemUseDuration(p_77615_1_) - p_77615_4_;
ArrowLooseEvent event = new ArrowLooseEvent(p_77615_3_, p_77615_1_, j);
MinecraftForge.EVENT_BUS.post(event);
if (event.isCanceled()) {
return;
}
j = event.charge;
boolean flag = p_77615_3_.capabilities.isCreativeMode
|| EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, p_77615_1_) > 0;
if (flag || p_77615_3_.inventory.hasItem(ModItems.gun_stinger_ammo)) {
float f = j / 20.0F;
f = (f * f + f * 2.0F) / 3.0F;
if (j < 25.0D) {
return;
}
if (j > 25.0F) {
f = 25.0F;
}
p_77615_1_.damageItem(1, p_77615_3_);
if(this == ModItems.gun_stinger)
p_77615_2_.playSoundAtEntity(p_77615_3_, "hbm:weapon.rpgShoot", 1.0F, 1.0F);
if(this == ModItems.gun_skystinger)
p_77615_2_.playSoundAtEntity(p_77615_3_, "hbm:weapon.rpgShoot", 1.0F, 0.5F);
p_77615_3_.inventory.consumeInventoryItem(ModItems.gun_stinger_ammo);
if (!p_77615_2_.isRemote) {
if(this == ModItems.gun_stinger) {
EntityRocketHoming entityarrow = new EntityRocketHoming(p_77615_2_, p_77615_3_, 1.0F);
if(p_77615_3_.isSneaking())
entityarrow.homingRadius = 0;
p_77615_2_.spawnEntityInWorld(entityarrow);
}
if(this == ModItems.gun_skystinger) {
if(p_77615_3_.isSneaking()) {
EntityRocketHoming entityarrow = new EntityRocketHoming(p_77615_2_, p_77615_3_, 1.5F);
EntityRocketHoming entityarrow1 = new EntityRocketHoming(p_77615_2_, p_77615_3_, 1.5F);
entityarrow.homingMod = 12;
entityarrow1.homingMod = 12;
entityarrow.motionX += p_77615_2_.rand.nextGaussian() * 0.2;
entityarrow.motionY += p_77615_2_.rand.nextGaussian() * 0.2;
entityarrow.motionZ += p_77615_2_.rand.nextGaussian() * 0.2;
entityarrow1.motionX += p_77615_2_.rand.nextGaussian() * 0.2;
entityarrow1.motionY += p_77615_2_.rand.nextGaussian() * 0.2;
entityarrow1.motionZ += p_77615_2_.rand.nextGaussian() * 0.2;
entityarrow.setIsCritical(true);
entityarrow1.setIsCritical(true);
p_77615_2_.spawnEntityInWorld(entityarrow);
p_77615_2_.spawnEntityInWorld(entityarrow1);
} else {
EntityRocketHoming entityarrow = new EntityRocketHoming(p_77615_2_, p_77615_3_, 2.0F);
entityarrow.homingMod = 8;
entityarrow.homingRadius *= 50;
entityarrow.setIsCritical(true);
p_77615_2_.spawnEntityInWorld(entityarrow);
}
}
}
}
}
@Override
public ItemStack onEaten(ItemStack p_77654_1_, World p_77654_2_, EntityPlayer p_77654_3_) {
return p_77654_1_;
}
@Override
public int getMaxItemUseDuration(ItemStack p_77626_1_) {
return 72000;
}
@Override
public EnumAction getItemUseAction(ItemStack p_77661_1_) {
return EnumAction.bow;
}
@Override
public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) {
ArrowNockEvent event = new ArrowNockEvent(p_77659_3_, p_77659_1_);
MinecraftForge.EVENT_BUS.post(event);
p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_));
return p_77659_1_;
}
@Override
public int getItemEnchantability() {
return 1;
}
@Override
public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) {
if(this == ModItems.gun_stinger) {
list.add("Woosh, beep-beep-beep!");
list.add("");
list.add("Ammo: Stinger Rockets");
list.add("Projectiles target entities.");
list.add("Projectiles explode on impact.");
list.add("Alt-fire disables homing effect.");
}
if(this == ModItems.gun_skystinger) {
list.add("Oh, I get it, because of the...nyeees!");
list.add("It all makes sense now!");
list.add("");
list.add("Ammo: Stinger Rockets");
list.add("Projectiles target entities.");
list.add("Projectiles explode on impact.");
list.add("Alt-fire fires a second rocket for free.");
list.add("");
list.add("[LEGENDARY WEAPON]");
}
}
@Override
public Multimap getItemAttributeModifiers() {
Multimap multimap = super.getItemAttributeModifiers();
multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(),
new AttributeModifier(field_111210_e, "Weapon modifier", 4, 0));
return multimap;
}
}

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

@ -52,6 +52,7 @@ import com.hbm.tileentity.bomb.TileEntityNukeCustom.CustomNukeEntry;
import com.hbm.tileentity.bomb.TileEntityNukeCustom.EnumEntryType;
import com.hbm.tileentity.machine.TileEntityNukeFurnace;
import com.hbm.util.I18nUtil;
import com.hbm.util.LoggingUtil;
import com.hbm.util.ArmorRegistry;
import com.hbm.util.ArmorUtil;
import com.hbm.util.ArmorRegistry.HazardClass;
@ -647,13 +648,13 @@ public class ModEventHandlerClient {
if(mc.gameSettings.renderDistanceChunks > 16 && GeneralConfig.enableRenderDistCheck && ! FMLClientHandler.instance().hasOptifine()) {
mc.gameSettings.renderDistanceChunks = 16;
MainRegistry.logger.error("========================== WARNING ==========================");
MainRegistry.logger.error("Dangerous render distance detected: Values over 16 only work on 1.8+ or with Optifine installed!!");
MainRegistry.logger.error("Set '1.25_enableRenderDistCheck' in hbm.cfg to 'false' to disable this check.");
MainRegistry.logger.error("========================== WARNING ==========================");
MainRegistry.logger.error("If you got this error after removing Optifine: Consider deleting your option files after removing mods.");
MainRegistry.logger.error("If you got this error after downgrading your Minecraft version: Consider using a launcher that doesn't reuse the same folders for every game instance. MultiMC for example, it's really good and it comes with a dedicated cat button. You like cats, right? Are you using the Microsoft launcher? The one launcher that turns every version switch into a tightrope act because all the old config and options files are still here because different instances all use the same folder structure instead of different folders like a competent launcher would, because some MO-RON thought that this was an acceptable way of doing things? Really? The launcher that circumcises every crashlog into indecipherable garbage, tricking oblivious people into posting that as a \"crash report\", effectively wasting everyone's time? The launcher made by the company that thought it would be HI-LA-RI-OUS to force everyone to use Microsoft accounts, effectively breaking every other launcher until they implement their terrible auth system?");
MainRegistry.logger.error("========================== WARNING ==========================");
LoggingUtil.errorWithHighlight("========================== WARNING ==========================");
LoggingUtil.errorWithHighlight("Dangerous render distance detected: Values over 16 only work on 1.8+ or with Optifine installed!!");
LoggingUtil.errorWithHighlight("Set '1.25_enableRenderDistCheck' in hbm.cfg to 'false' to disable this check.");
LoggingUtil.errorWithHighlight("========================== WARNING ==========================");
LoggingUtil.errorWithHighlight("If you got this error after removing Optifine: Consider deleting your option files after removing mods.");
LoggingUtil.errorWithHighlight("If you got this error after downgrading your Minecraft version: Consider using a launcher that doesn't reuse the same folders for every game instance. MultiMC for example, it's really good and it comes with a dedicated cat button. You like cats, right? Are you using the Microsoft launcher? The one launcher that turns every version switch into a tightrope act because all the old config and options files are still here because different instances all use the same folder structure instead of different folders like a competent launcher would, because some MO-RON thought that this was an acceptable way of doing things? Really? The launcher that circumcises every crashlog into indecipherable garbage, tricking oblivious people into posting that as a \"crash report\", effectively wasting everyone's time? The launcher made by the company that thought it would be HI-LA-RI-OUS to force everyone to use Microsoft accounts, effectively breaking every other launcher until they implement their terrible auth system?");
LoggingUtil.errorWithHighlight("========================== WARNING ==========================");
}
if(mc.theWorld == null || mc.thePlayer == null)

View File

@ -602,6 +602,7 @@ public class ResourceManager {
public static final IModelCustom ff_nightmare = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/nightmare.obj"));
public static final IModelCustom fireext = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/fireext.obj"));
public static final IModelCustom ar15 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/ar15.obj"));
public static final IModelCustom stinger = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/stinger.obj"));
public static final IModelCustom mg42 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/mg42.obj"));
public static final IModelCustom rem700 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/rem700.obj"));
public static final IModelCustom cursed_revolver = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/cursed.obj"));
@ -668,6 +669,8 @@ public class ResourceManager {
public static final ResourceLocation fireext_foam_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/fireext_foam.png");
public static final ResourceLocation fireext_sand_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/fireext_sand.png");
public static final ResourceLocation ar15_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/carbine.png");
public static final ResourceLocation stinger_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/stinger.png");
public static final ResourceLocation sky_stinger_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/sky_stinger.png");
public static final ResourceLocation mg42_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/ff/mg42.png");
public static final ResourceLocation rem700_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/ff/rem700.png");

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

@ -4,6 +4,7 @@ import org.lwjgl.opengl.GL11;
import com.hbm.items.ModItems;
import com.hbm.lib.RefStrings;
import com.hbm.main.ResourceManager;
import com.hbm.render.model.ModelStinger;
import net.minecraft.client.Minecraft;
@ -13,12 +14,6 @@ import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.IItemRenderer;
public class ItemRenderStinger implements IItemRenderer {
protected ModelStinger stinger;
public ItemRenderStinger() {
stinger = new ModelStinger();
}
@Override
public boolean handleRenderType(ItemStack item, ItemRenderType type) {
@ -38,39 +33,56 @@ public class ItemRenderStinger implements IItemRenderer {
@Override
public void renderItem(ItemRenderType type, ItemStack item, Object... data) {
ResourceLocation stingerTex = item.getItem() == ModItems.gun_stinger ? ResourceManager.stinger_tex : ResourceManager.sky_stinger_tex;
Minecraft.getMinecraft().renderEngine.bindTexture(stingerTex);
GL11.glPushMatrix();
switch(type) {
case EQUIPPED_FIRST_PERSON:
GL11.glPushMatrix();
if(item.getItem() == ModItems.gun_stinger)
Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelStinger.png"));
if(item.getItem() == ModItems.gun_skystinger)
Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelSkyStinger.png"));
GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F);
GL11.glTranslatef(-0.3F, 0.0F, -0.1F);
GL11.glScalef(2.0F, 2.0F, 2.0F);
GL11.glScalef(0.5F, 0.5F, 0.5F);
GL11.glScalef(0.5F, 0.5F, 0.5F);
stinger.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F);
GL11.glPopMatrix();
double s0 = 0.25D;
GL11.glRotated(25, 0, 0, 1);
GL11.glTranslated(-0.5, -0.7, -0.5);
GL11.glRotated(-100, 0, 1, 0);
GL11.glScaled(s0, s0, s0);
break;
case EQUIPPED:
double scale = 0.25D;
GL11.glScaled(scale, scale, scale);
GL11.glRotatef(20F, 0.0F, 0.0F, 1.0F);
GL11.glRotatef(-170, 0.0F, 1.0F, 0.0F);
GL11.glRotatef(-15F, 1.0F, 0.0F, 0.0F);
GL11.glTranslatef(-2F, -3F, 4.0F);
break;
case ENTITY:
GL11.glPushMatrix();
if(item.getItem() == ModItems.gun_stinger)
Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelStinger.png"));
if(item.getItem() == ModItems.gun_skystinger)
Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelSkyStinger.png"));
GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F);
GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F);
GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F);
GL11.glTranslatef(0.0F, -0.2F, -0.5F);
GL11.glRotatef(-5.0F, 0.0F, 0.0F, 1.0F);
GL11.glTranslatef(0.2F, -0.2F, 0.1F);
GL11.glScalef(1.5F, 1.5F, 1.5F);
GL11.glScalef(0.5F, 0.5F, 0.5F);
stinger.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F);
GL11.glPopMatrix();
default: break;
double s1 = 0.2D;
GL11.glScaled(s1, s1, s1);
GL11.glTranslatef(0F, -2.5F, 0F);
break;
case INVENTORY:
GL11.glEnable(GL11.GL_LIGHTING);
double s = 1.75D;
GL11.glTranslated(4, 11, 0);
GL11.glRotated(90, 0, 1, 0);
GL11.glRotated(135, 1, 0, 0);
GL11.glScaled(s, s, -s);
break;
default: break;
}
ResourceManager.stinger.renderAll();
GL11.glPopMatrix();
}
}
}

View File

@ -3,6 +3,7 @@ package com.hbm.tileentity.machine;
import java.util.ArrayList;
import java.util.List;
import com.hbm.interfaces.Untested;
import com.hbm.lib.Library;
import com.hbm.tileentity.TileEntityMachineBase;
@ -10,55 +11,24 @@ import api.hbm.energy.IEnergyGenerator;
import cofh.api.energy.EnergyStorage;
import cofh.api.energy.IEnergyHandler;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityConverterRfHe extends TileEntityMachineBase implements IEnergyGenerator, IEnergyHandler {
public long power;
public long maxPower = 500000000;
public EnergyStorage storage = new EnergyStorage(2000000000, 2000000000, 2000000000);
public int buf;
public TileEntityConverterRfHe() {
super(0);
public class TileEntityConverterRfHe extends TileEntity implements IEnergyGenerator, IEnergyHandler {
@Override
public void setPower(long power) {
subBuffer = power;
}
@Override
public String getName() {
return "";
public long getPower() {
return subBuffer;
}
@Override
public void updateEntity() {
if (!worldObj.isRemote) {
power = storage.getEnergyStored() / 4;
maxPower = Math.max(1000000, power);
buf = storage.getEnergyStored();
for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS)
this.sendPower(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir);
storage.setEnergyStored((int)power * 4);
NBTTagCompound data = new NBTTagCompound();
data.setInteger("rf", storage.getEnergyStored());
data.setInteger("maxrf", storage.getEnergyStored());
data.setLong("he", power);
data.setLong("maxhe", power);
this.networkPack(data, 25);
}
}
public void networkUnpack(NBTTagCompound nbt) {
storage.setEnergyStored(nbt.getInteger("rf"));
storage.setCapacity(nbt.getInteger("maxrf"));
power = nbt.getLong("he");
maxPower = nbt.getLong("maxhe");
public long getMaxPower() {
return subBuffer;
}
@Override
@ -66,67 +36,37 @@ public class TileEntityConverterRfHe extends TileEntityMachineBase implements IE
return true;
}
private long subBuffer;
@Untested
@Override
public int receiveEnergy(ForgeDirection from, int maxReceive, boolean simulate) {
storage.setCapacity(2000000000);
return storage.receiveEnergy(maxReceive, simulate);
}
@Override
public int getEnergyStored(ForgeDirection from) {
return storage.getEnergyStored();
}
@Override
public int getMaxEnergyStored(ForgeDirection from) {
if(storage.getEnergyStored() < 4000000)
return 2000000000;
if(simulate)
return 0;
return storage.getMaxEnergyStored();
}
public long getPowerScaled(long i) {
return (power * i) / maxPower;
}
public int getFluxScaled(int i) {
return (storage.getEnergyStored() * i) / storage.getMaxEnergyStored();
}
@Override
public long getPower() {
return power;
}
@Override
public void setPower(long i) {
this.power = i;
}
@Override
public long getMaxPower() {
return this.maxPower;
}
@Override
public void readFromNBT(NBTTagCompound nbt) {
super.readFromNBT(nbt);
long capacity = maxReceive / 4L;
subBuffer = capacity;
this.power = nbt.getLong("power");
storage.readFromNBT(nbt);
}
@Override
public void writeToNBT(NBTTagCompound nbt) {
super.writeToNBT(nbt);
for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) {
this.sendPower(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir);
}
nbt.setLong("power", power);
storage.writeToNBT(nbt);
return (int) ((capacity - subBuffer) * 4L);
}
@Override
public int extractEnergy(ForgeDirection from, int maxExtract, boolean simulate) {
return 0;
}
@Override
public int getEnergyStored(ForgeDirection from) {
return 0;
}
@Override
public int getMaxEnergyStored(ForgeDirection from) {
return 1000000;
}
}

View File

@ -0,0 +1,23 @@
package com.hbm.util;
import com.hbm.main.MainRegistry;
public class LoggingUtil {
/*
* Only works with ANSI-compatible outputs. http://www.mihai-nita.net/eclipse works really well for dev envs.
*/
public static final String ANSI_RESET = "\u001B[0m";
public static final String ANSI_BLACK = "\u001B[30m";
public static final String ANSI_RED = "\u001B[31m";
public static final String ANSI_GREEN = "\u001B[32m";
public static final String ANSI_YELLOW = "\u001B[33m";
public static final String ANSI_BLUE = "\u001B[34m";
public static final String ANSI_PURPLE = "\u001B[35m";
public static final String ANSI_CYAN = "\u001B[36m";
public static final String ANSI_WHITE = "\u001B[37m";
public static void errorWithHighlight(String error) {
MainRegistry.logger.error(ANSI_RED + error + ANSI_RESET);
}
}

View File

@ -1130,7 +1130,9 @@ item.coin_radiation.name=Strahlungs-Münze
item.coin_siege.name=Belagerungsmünze
item.coin_ufo.name=UFO-Münze
item.coin_worm.name=Balls-O-Tron-Münze
item.coke.name=Koks
item.coke.coal.name=Kohlekoks
item.coke.lignite.name=Braunkohlekoks
item.coke.petroleum.name=Petroleumkoks
item.coltan_tool.name=Koltass
item.combine_scrap.name=CMB Schrott
item.component_emitter.name=Emitterkomponente
@ -1982,6 +1984,8 @@ item.oil_detector.bullseye=Ölvorkommen direkt untertage!
item.oil_detector.detected=Ölvorkommen in der Nähe!
item.oil_detector.noOil=Kein Öl gefunden.
item.oil_tar.name=Ölteer
item.oil_tar.crude.name=Erdölteer
item.oil_tar.crack.name=Crackölteer
item.overfuse.name=Singularitätsschraubenzieher
item.oxy_mask.name=Sauerstoffmaske
item.paa_boots.name=PaA-"olle Latschen"

View File

@ -1285,7 +1285,9 @@ item.coin_radiation.name=Radiation Coin
item.coin_siege.name=Siege Coin
item.coin_ufo.name=UFO Coin
item.coin_worm.name=Balls-O-Tron Coin
item.coke.name=Coke
item.coke.coal.name=Coal Coke
item.coke.lignite.name=Lignite Coke
item.coke.petroleum.name=Petroleum Coke
item.coltan_tool.name=Coltass
item.combine_scrap.name=CMB Scrap Metal
item.component_emitter.name=Emitter Component
@ -2194,7 +2196,8 @@ item.oil_detector.desc2=Detector will only find larger deposits.
item.oil_detector.bullseye=Oil deposit directly below!
item.oil_detector.detected=Oil detected nearby.
item.oil_detector.noOil=No oil detected.
item.oil_tar.name=Oil Tar
item.oil_tar.crude.name=Oil Tar
item.oil_tar.crack.name=Crack Oil Tar
item.overfuse.name=Singularity Screwdriver
item.overfuse.desc=Say what?
item.oxy_mask.name=Oxygen Mask

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

View File

@ -0,0 +1,882 @@
# Blender v2.79 (sub 0) OBJ File: ''
# www.blender.org
mtllib stinger.(1obj.mtl
o Cube.001_Cube.002
v 0.393889 3.128783 -9.337228
v 0.393890 1.846543 -5.892444
v 0.393889 1.846542 -9.337228
v -0.393894 3.128783 -5.892444
v -0.393895 1.846542 -9.337228
v -0.393894 1.846543 -5.892444
v -0.393895 3.128783 -9.337228
v -0.000002 3.303435 -5.049528
v -0.382998 1.728983 -5.208168
v -0.000002 1.728983 -5.049528
v -0.382998 3.303435 -5.208168
v -0.541638 1.728983 -5.591164
v -0.541638 3.303435 -5.591164
v -0.382998 1.728983 -5.974160
v -0.382998 3.303435 -5.974160
v -0.000002 1.728983 -6.132800
v -0.000002 3.303435 -6.132800
v 0.382994 1.728983 -5.974160
v 0.382994 3.303435 -5.974160
v 0.541634 1.728983 -5.591164
v 0.541634 3.303435 -5.591164
v 0.382994 1.728983 -5.208168
v 0.382994 3.303435 -5.208168
v -1.403786 4.699999 -5.797567
v -1.686627 4.582843 -7.948311
v -1.686626 4.582843 -5.797567
v -1.803787 4.299999 -7.948311
v -1.803786 4.299999 -5.797567
v -1.686626 4.017155 -5.797567
v -1.686627 4.017155 -7.948311
v -1.403786 3.899999 -5.797567
v -1.403787 3.899999 -7.948311
v -1.120942 4.017155 -5.797567
v -1.003787 4.299999 -7.948312
v -1.003786 4.299999 -5.797568
v -1.883787 4.299999 -7.982080
v -1.743199 3.960587 -7.982080
v -1.120943 4.582843 -7.948312
v -1.120942 4.582843 -5.797568
v -0.923786 4.299999 -5.755472
v -0.923787 4.299999 -7.982080
v -1.064375 4.639411 -8.277956
v -1.064375 4.639411 -7.982080
v -1.120943 4.017155 -7.948311
v -1.403787 3.819999 -7.982080
v -1.064375 3.960587 -7.982080
v -1.403787 4.699999 -7.948311
v -1.403787 4.779999 -7.982080
v -1.743199 4.639411 -7.982080
v -0.923787 4.299999 -8.277956
v -1.743199 3.960587 -8.277955
v -1.883787 4.299999 -8.277955
v -1.403787 3.819999 -8.277956
v -1.064375 3.960587 -8.277956
v -1.743199 4.639411 -8.277956
v -1.403787 4.779999 -8.277956
v -1.403786 4.779999 -5.755472
v -1.064374 4.639411 -5.489088
v -1.064374 4.639411 -5.755472
v -1.883786 4.299999 -5.755472
v -1.743198 4.639411 -5.755472
v -1.064374 3.960587 -5.755472
v -1.403786 3.819999 -5.755472
v -1.743198 3.960587 -5.755472
v -1.743198 3.960587 -5.489088
v -0.923786 4.299999 -5.489088
v -1.883786 4.299999 -5.489088
v -1.064374 3.960587 -5.489088
v -1.743198 4.639411 -5.489088
v -1.403786 3.819999 -5.489088
v -1.403786 4.779999 -5.489088
v -1.473919 4.208779 -7.811895
v -0.447114 3.729971 -5.941060
v -0.447115 3.729971 -7.811896
v 0.128767 2.756387 -3.983544
v 0.128767 1.614719 -3.555136
v 0.128767 1.614719 -3.983544
v 0.128767 2.756387 -3.555136
v -0.128769 1.614719 -3.555136
v -0.128769 2.756387 -3.555136
v -0.128769 1.614719 -3.983544
v -0.128769 2.756387 -3.983544
v 0.190951 3.077327 -3.167776
v -0.208109 2.727468 -3.531600
v 0.197875 2.727295 -3.523528
v -0.198185 2.731559 -4.030576
v 0.207799 2.731387 -4.022504
v -0.191081 3.087375 -4.380480
v 0.214907 3.087207 -4.372408
v -0.207801 3.932427 -3.521620
v -0.190953 3.586487 -4.376348
v -0.214909 3.576612 -3.171716
v 0.215035 3.586319 -4.368276
v 0.198183 3.932260 -3.513548
v 0.191079 3.576439 -3.163644
v 0.771273 5.530663 -9.417193
v 0.771274 4.098263 -6.669316
v 0.771273 4.098262 -9.417192
v 0.771274 5.530663 -6.669316
v -0.771278 4.098263 -6.669316
v -0.771278 5.530663 -6.669316
v -0.771279 4.098262 -9.417192
v -0.000003 4.089742 -9.779048
v -0.346641 3.977118 9.779048
v 0.000003 4.089750 9.779048
v -0.346647 3.977114 -9.779048
v -0.560881 3.682245 9.779048
v -0.560887 3.682238 -9.779048
v -0.560881 3.317762 9.779048
v -0.560887 3.317755 -9.779048
v -0.346641 3.022886 9.779048
v -0.346647 3.022882 -9.779048
v 0.000003 2.910254 9.779048
v -0.000003 2.910250 -9.779048
v 0.346647 3.022886 9.779048
v 0.346641 3.022882 -9.779048
v 0.560887 3.317762 9.779048
v 0.560881 3.317755 -9.779048
v 0.560887 3.682245 9.779048
v -0.381311 4.024827 -9.822908
v 0.560881 3.682238 -9.779048
v 0.346647 3.977118 9.779048
v 0.346641 3.977114 -9.779048
v 0.519971 4.215673 9.897908
v -0.841321 3.226638 9.897908
v 0.841327 3.773365 9.897908
v -0.841321 3.773365 9.897908
v 0.841327 3.226638 9.897908
v 0.519971 2.784330 9.897908
v 0.000003 2.615382 9.897908
v -0.519965 2.784330 9.897908
v -0.519965 4.215673 9.897908
v 0.000003 4.384622 9.897908
v -0.616975 3.299531 -9.822908
v -0.616975 3.700462 -10.379472
v -0.616975 3.299530 -10.379472
v -0.616975 3.700462 -9.822908
v 0.381305 4.024827 -9.822908
v -0.000003 4.148718 -9.822908
v 0.616969 3.700462 -9.822908
v 0.616969 3.299531 -9.822908
v 0.381305 2.975170 -9.822908
v -0.381311 2.975170 -9.822908
v -0.000003 2.851278 -9.822908
v 0.616969 3.700462 -10.379472
v -0.000003 4.148718 -10.379472
v 0.381305 2.975170 -10.379472
v 0.616969 3.299530 -10.379472
v -0.381311 2.975170 -10.379472
v -0.381311 4.024827 -10.379472
v -0.000003 2.851278 -10.379472
v 0.381305 4.024827 -10.379472
v 0.393890 3.128783 -5.892444
v -1.473918 4.208779 -5.941060
v -0.215037 3.077499 -3.175848
v -0.197877 3.936519 -4.020596
v 0.208107 3.936351 -4.012524
v -0.771279 5.530663 -9.417192
vt 0.527579 0.843077
vt 0.818514 0.903517
vt 0.527579 0.904025
vt 0.818514 0.999529
vt 0.527579 0.938195
vt 0.818514 0.938957
vt 0.451532 0.938195
vt 0.601607 0.751835
vt 0.564045 0.842170
vt 0.601607 0.842170
vt 0.564045 0.751835
vt 0.526858 0.842170
vt 0.526858 0.751835
vt 0.490047 0.842170
vt 0.490047 0.751835
vt 0.452109 0.842170
vt 0.751857 0.751835
vt 0.714295 0.842170
vt 0.751857 0.842170
vt 0.714295 0.751835
vt 0.676356 0.842170
vt 0.676356 0.751835
vt 0.639545 0.842170
vt 0.639545 0.751835
vt 0.525741 0.869077
vt 0.515026 0.885956
vt 0.463759 0.885334
vt 0.601692 0.396030
vt 0.639188 0.583813
vt 0.639188 0.396030
vt 0.676683 0.583813
vt 0.676683 0.396030
vt 0.714179 0.396030
vt 0.714179 0.583813
vt 0.751674 0.396030
vt 0.451711 0.583813
vt 0.489206 0.396030
vt 0.451711 0.396030
vt 0.526701 0.583813
vt 0.526701 0.396030
vt 0.676683 0.593980
vt 0.714179 0.593980
vt 0.564197 0.583813
vt 0.564197 0.396030
vt 0.526701 0.385823
vt 0.526701 0.593980
vt 0.564197 0.619244
vt 0.564197 0.593980
vt 0.489206 0.583813
vt 0.751674 0.583813
vt 0.751674 0.593980
vt 0.489206 0.593980
vt 0.601692 0.583813
vt 0.601692 0.593980
vt 0.639188 0.593980
vt 0.451827 0.314796
vt 0.579610 0.279064
vt 0.601536 0.314798
vt 0.451711 0.619244
vt 0.489206 0.619244
vt 0.714179 0.619244
vt 0.639188 0.619244
vt 0.601692 0.619244
vt 0.526701 0.619244
vt 0.751674 0.619244
vt 0.676683 0.619244
vt 0.601692 0.385823
vt 0.564197 0.365688
vt 0.564197 0.385823
vt 0.676683 0.385823
vt 0.639188 0.385823
vt 0.489206 0.385823
vt 0.451711 0.385823
vt 0.714179 0.385823
vt 0.624771 0.279664
vt 0.751320 0.315075
vt 0.603068 0.315060
vt 0.526701 0.365688
vt 0.489206 0.365688
vt 0.751674 0.385823
vt 0.714179 0.365688
vt 0.639188 0.365688
vt 0.451711 0.365688
vt 0.676683 0.365688
vt 0.601692 0.365688
vt 0.751346 0.193282
vt 0.452761 0.263765
vt 0.751346 0.263765
vt 0.647089 0.751158
vt 0.571440 0.645292
vt 0.647089 0.645292
vt 0.571440 0.751158
vt 0.526386 0.644688
vt 0.526386 0.751158
vt 0.451379 0.644688
vt 0.691237 0.751158
vt 0.691237 0.645292
vt 0.451379 0.619409
vt 0.526386 0.619409
vt 0.820207 0.914045
vt 0.865118 0.939246
vt 0.865118 0.914045
vt 0.954494 0.939246
vt 0.954494 0.914045
vt 1.000067 0.939246
vt 1.000067 0.914045
vt 0.948519 0.999611
vt 0.821154 0.982062
vt 0.999562 0.982062
vt 0.997335 0.982124
vt 0.872418 0.999486
vt 0.821195 0.982124
vt 0.998746 0.842514
vt 0.916847 0.720802
vt 0.916847 0.842514
vt 0.916847 0.665046
vt 0.834948 0.720802
vt 0.753049 0.720802
vt 0.834948 0.842514
vt 0.225330 0.955040
vt 0.262812 0.116603
vt 0.225330 0.116603
vt 0.262812 0.955040
vt 0.300293 0.116603
vt 0.300293 0.955040
vt 0.337775 0.116603
vt 0.337775 0.955040
vt 0.375256 0.116603
vt 0.375256 0.955040
vt 0.412738 0.116603
vt 0.037923 0.955040
vt 0.075404 0.116603
vt 0.037923 0.116603
vt 0.075404 0.955040
vt 0.112886 0.116603
vt 0.112886 0.955040
vt 0.150367 0.116603
vt 0.262812 0.959827
vt 0.150367 0.955040
vt 0.187849 0.116603
vt 0.187849 0.955040
vt 0.187849 0.101602
vt 0.144918 0.065072
vt 0.006436 0.036153
vt 0.145032 0.034460
vt 0.150367 0.101602
vt 0.112886 0.101602
vt 0.075404 0.101602
vt 0.037923 0.101602
vt 0.375256 0.101602
vt 0.337775 0.101602
vt 0.262812 0.101602
vt 0.225330 0.101602
vt 0.300293 0.101602
vt 0.337775 0.959827
vt 0.300293 0.999948
vt 0.337775 0.999948
vt 0.300293 0.959827
vt 0.187849 0.959827
vt 0.225330 0.959827
vt 0.150367 0.959827
vt 0.112886 0.959827
vt 0.075404 0.959827
vt 0.412738 0.955040
vt 0.375256 0.959827
vt 0.412738 0.959827
vt 0.153921 0.065967
vt 0.296232 0.034750
vt 0.295940 0.065362
vt 0.225330 0.999948
vt 0.075404 0.999948
vt 0.112886 0.999948
vt 0.375256 0.999948
vt 0.262812 0.999948
vt 0.150367 0.999948
vt 0.412738 0.999948
vt 0.187849 0.999948
vt 0.037923 0.999948
vt 0.818514 0.843077
vt 0.527579 0.999529
vt 0.451532 0.904025
vt 0.452109 0.751835
vt 0.453239 0.868198
vt 0.463954 0.851318
vt 0.489628 0.844584
vt 0.515221 0.851940
vt 0.489352 0.892690
vt 0.451711 0.593980
vt 0.579613 0.350531
vt 0.473752 0.350529
vt 0.526683 0.365331
vt 0.473750 0.279063
vt 0.526680 0.264262
vt 0.729617 0.350470
vt 0.677205 0.365127
vt 0.624787 0.350459
vt 0.677183 0.265008
vt 0.729601 0.279675
vt 0.751674 0.365688
vt 0.452761 0.193282
vt 0.451379 0.751158
vt 0.820207 0.939246
vt 0.872853 0.939693
vt 0.947243 0.939693
vt 0.999034 0.957243
vt 0.820625 0.957243
vt 0.874129 0.999611
vt 0.821713 0.957571
vt 0.997853 0.957571
vt 0.873670 0.940209
vt 0.946630 0.940209
vt 0.945378 0.999486
vt 0.998746 0.720802
vt 0.834948 0.665046
vt 0.753049 0.842514
vt 0.032998 0.011064
vt 0.075862 0.001081
vt 0.118655 0.010018
vt 0.118356 0.090161
vt 0.032699 0.091207
vt 0.075492 0.100143
vt 0.006322 0.066764
vt 0.412738 0.101602
vt 0.037923 0.959827
vt 0.268581 0.090244
vt 0.224605 0.099890
vt 0.180808 0.090618
vt 0.154212 0.035355
vt 0.181571 0.010473
vt 0.225547 0.000826
vt 0.269344 0.010099
vn 1.0000 0.0000 -0.0000
vn -1.0000 -0.0000 0.0000
vn 0.0000 0.0000 -1.0000
vn 0.0000 -1.0000 0.0000
vn -0.3827 0.0000 0.9239
vn -0.9239 0.0000 0.3827
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.9239 0.0000 0.3827
vn 0.3827 0.0000 0.9239
vn -0.3827 0.9239 0.0000
vn -0.9239 0.3827 0.0000
vn -0.9239 -0.3827 0.0000
vn -0.3827 -0.9239 0.0000
vn 0.3827 -0.9239 0.0000
vn 0.9239 -0.3827 -0.0000
vn -0.3839 -0.1590 0.9096
vn 0.9239 0.3827 -0.0000
vn 0.3827 0.9239 -0.0000
vn 0.4572 0.1894 -0.8689
vn 0.3839 -0.1590 0.9096
vn -0.1590 -0.3839 0.9096
vn 0.3839 0.1590 0.9096
vn -0.3839 0.1590 0.9096
vn 0.1590 -0.3839 0.9096
vn 0.1590 0.3839 0.9096
vn -0.1590 0.3839 0.9096
vn -0.4572 0.1894 -0.8689
vn 0.1894 -0.4572 -0.8689
vn 0.1894 0.4572 -0.8689
vn -0.1894 0.4572 -0.8689
vn -0.4572 -0.1894 -0.8690
vn -0.4572 -0.1894 -0.8689
vn 0.4572 -0.1894 -0.8689
vn -0.1894 -0.4572 -0.8689
vn 0.0000 0.0000 1.0000
vn 0.4226 0.9063 -0.0000
vn -0.0142 -0.7129 0.7011
vn -0.0003 -1.0000 -0.0082
vn 0.0139 -0.7012 -0.7128
vn -0.9998 0.0004 -0.0199
vn 0.9998 -0.0004 0.0199
vn -0.3090 0.9511 -0.0000
vn -0.8090 0.5878 0.0000
vn -0.8090 -0.5878 0.0000
vn -0.3090 -0.9511 0.0000
vn 0.3090 -0.9511 0.0000
vn 0.8090 -0.5878 -0.0000
vn -0.1904 0.5858 0.7877
vn -0.1903 0.5859 0.7877
vn 0.8090 0.5878 -0.0000
vn 0.3090 0.9511 -0.0000
vn 0.1206 0.3711 -0.9207
vn 0.3157 0.2294 -0.9207
vn 0.3902 0.0000 -0.9207
vn 0.3157 -0.2294 -0.9207
vn 0.1206 -0.3711 -0.9207
vn -0.1206 -0.3711 -0.9207
vn -0.3157 -0.2294 -0.9207
vn -0.1206 0.3711 -0.9207
vn -0.3902 0.0000 -0.9207
vn -0.3157 0.2294 -0.9207
vn -0.6160 0.0000 0.7877
vn -0.4984 0.3621 0.7877
vn -0.4983 0.3621 0.7877
vn -0.4983 0.3621 0.7878
vn 0.1904 0.5858 0.7877
vn 0.1903 0.5859 0.7877
vn 0.4984 0.3621 0.7877
vn 0.4983 0.3621 0.7877
vn 0.6160 0.0000 0.7877
vn 0.4984 -0.3621 0.7877
vn 0.1904 -0.5859 0.7877
vn -0.1904 -0.5859 0.7877
vn -0.4984 -0.3621 0.7877
vn -0.4572 0.1894 -0.8690
vn -0.4983 -0.3621 0.7877
usemtl None
s 1
f 1/1/1 2/2/1 3/3/1
f 4/4/2 5/5/2 6/6/2
f 7/7/3 3/3/3 5/5/3
f 6/6/4 3/3/4 2/2/4
f 8/8/5 9/9/5 10/10/5
f 11/11/6 12/12/6 9/9/6
f 13/13/7 14/14/7 12/12/7
f 15/15/8 16/16/8 14/14/8
f 17/17/9 18/18/9 16/19/9
f 19/20/10 20/21/10 18/18/10
f 21/22/11 22/23/11 20/21/11
f 23/24/12 10/10/12 22/23/12
f 16/25/4 18/26/4 22/27/4
f 24/28/13 25/29/13 26/30/13
f 26/30/14 27/31/14 28/32/14
f 27/31/15 29/33/15 28/32/15
f 30/34/16 31/35/16 29/33/16
f 32/36/17 33/37/17 31/38/17
f 33/37/18 34/39/18 35/40/18
f 30/34/19 36/41/19 37/42/19
f 35/40/20 38/43/20 39/44/20
f 38/43/21 24/28/21 39/44/21
f 39/44/22 40/45/22 35/40/22
f 41/46/20 42/47/20 43/48/20
f 44/49/23 41/46/23 34/39/23
f 32/50/24 37/42/24 45/51/24
f 38/43/25 41/46/25 43/48/25
f 25/29/26 36/41/26 27/31/26
f 32/36/27 46/52/27 44/49/27
f 47/53/28 43/48/28 48/54/28
f 47/53/29 49/55/29 25/29/29
f 50/56/3 51/57/3 52/58/3
f 46/52/17 53/59/17 54/60/17
f 36/41/15 51/61/15 37/42/15
f 48/54/13 55/62/13 49/55/13
f 43/48/21 56/63/21 48/54/21
f 46/52/18 50/64/18 41/46/18
f 37/42/16 53/65/16 45/51/16
f 49/55/14 52/66/14 36/41/14
f 57/67/21 58/68/21 59/69/21
f 26/30/30 60/70/30 61/71/30
f 31/38/31 62/72/31 63/73/31
f 24/28/32 59/69/32 39/44/32
f 24/28/33 61/71/33 57/67/33
f 29/33/34 60/70/35 28/32/35
f 33/37/36 40/45/36 62/72/36
f 31/35/37 64/74/37 29/33/37
f 65/75/38 66/76/38 67/77/38
f 62/72/18 66/78/18 68/79/18
f 63/80/16 65/81/16 64/74/16
f 60/70/14 69/82/14 61/71/14
f 40/45/20 58/68/20 66/78/20
f 62/72/17 70/83/17 63/73/17
f 64/74/15 67/84/15 60/70/15
f 61/71/13 71/85/13 57/67/13
f 72/86/39 73/87/39 74/88/39
f 75/89/1 76/90/1 77/91/1
f 78/92/38 79/93/38 76/90/38
f 80/94/2 81/95/2 79/93/2
f 82/96/3 77/91/3 81/97/3
f 79/93/4 77/98/4 76/99/4
f 83/100/40 84/101/40 85/102/40
f 85/102/41 86/103/41 87/104/41
f 87/104/42 88/105/42 89/106/42
f 90/107/43 91/108/43 92/109/43
f 93/110/44 94/111/44 95/112/44
f 96/113/1 97/114/1 98/115/1
f 99/116/38 100/117/38 97/114/38
f 101/118/2 102/119/2 100/117/2
f 100/117/4 98/115/4 97/114/4
f 103/120/45 104/121/45 105/122/45
f 106/123/46 107/124/46 104/121/46
f 108/125/2 109/126/2 107/124/2
f 110/127/47 111/128/47 109/126/47
f 112/129/48 113/130/48 111/128/48
f 114/131/49 115/132/49 113/133/49
f 116/134/50 117/135/50 115/132/50
f 118/136/1 119/137/1 117/135/1
f 103/120/51 120/138/52 106/123/52
f 121/139/53 122/140/53 119/137/53
f 123/141/54 105/122/54 122/140/54
f 105/122/55 124/142/55 122/140/55
f 125/143/38 126/144/38 127/145/38
f 122/140/56 126/146/56 119/137/56
f 117/135/57 126/146/57 128/147/57
f 115/132/58 128/147/58 129/148/58
f 113/133/59 129/148/59 130/149/59
f 113/130/60 131/150/60 111/128/60
f 111/128/61 125/151/61 109/126/61
f 105/122/62 132/152/62 133/153/62
f 109/126/63 127/154/63 107/124/63
f 104/121/64 127/154/64 132/152/64
f 134/155/2 135/156/2 136/157/2
f 108/125/65 134/155/65 110/127/65
f 106/123/66 137/158/67 108/125/68
f 103/120/69 138/159/70 139/160/69
f 123/141/71 140/161/72 138/159/71
f 118/136/73 140/161/73 121/139/73
f 116/134/74 141/162/74 118/136/74
f 114/131/75 142/163/75 116/134/75
f 114/164/76 143/165/76 144/166/76
f 112/129/77 134/155/77 143/165/77
f 145/167/3 136/168/3 135/169/3
f 138/159/54 146/170/54 139/160/54
f 141/162/50 147/171/50 148/172/50
f 143/165/47 136/157/47 149/173/47
f 139/160/45 150/174/45 120/138/45
f 141/162/1 145/175/1 140/161/1
f 144/166/48 149/173/48 151/176/48
f 120/138/46 135/156/46 137/158/46
f 140/161/53 152/177/53 138/159/53
f 142/163/49 151/178/49 147/171/49
f 1/1/1 153/179/1 2/2/1
f 4/4/2 7/180/2 5/5/2
f 7/7/3 1/181/3 3/3/3
f 6/6/4 5/5/4 3/3/4
f 8/8/5 11/11/5 9/9/5
f 11/11/6 13/13/6 12/12/6
f 13/13/7 15/15/7 14/14/7
f 15/15/8 17/182/8 16/16/8
f 17/17/9 19/20/9 18/18/9
f 19/20/10 21/22/10 20/21/10
f 21/22/11 23/24/11 22/23/11
f 23/24/12 8/8/12 10/10/12
f 22/27/4 10/183/4 16/25/4
f 9/184/4 12/185/4 14/186/4
f 14/186/4 16/25/4 10/183/4
f 18/26/4 20/187/4 22/27/4
f 10/183/4 9/184/4 14/186/4
f 24/28/13 47/53/13 25/29/13
f 26/30/14 25/29/14 27/31/14
f 27/31/15 30/34/15 29/33/15
f 30/34/16 32/50/16 31/35/16
f 32/36/17 44/49/17 33/37/17
f 33/37/18 44/49/18 34/39/18
f 30/34/19 27/31/19 36/41/19
f 35/40/20 34/39/20 38/43/20
f 38/43/21 47/53/21 24/28/21
f 39/44/22 59/69/22 40/45/22
f 41/46/20 50/64/20 42/47/20
f 44/49/23 46/52/23 41/46/23
f 32/50/24 30/34/24 37/42/24
f 38/43/25 34/39/25 41/46/25
f 25/29/26 49/55/26 36/41/26
f 32/36/27 45/188/27 46/52/27
f 47/53/28 38/43/28 43/48/28
f 47/53/29 48/54/29 49/55/29
f 52/58/3 55/189/3 42/190/3
f 56/191/3 42/190/3 55/189/3
f 50/56/3 54/192/3 51/57/3
f 53/193/3 51/57/3 54/192/3
f 52/58/3 42/190/3 50/56/3
f 46/52/17 45/188/17 53/59/17
f 36/41/15 52/66/15 51/61/15
f 48/54/13 56/63/13 55/62/13
f 43/48/21 42/47/21 56/63/21
f 46/52/18 54/60/18 50/64/18
f 37/42/16 51/61/16 53/65/16
f 49/55/14 55/62/14 52/66/14
f 57/67/21 71/85/21 58/68/21
f 26/30/30 28/32/78 60/70/30
f 31/38/31 33/37/31 62/72/31
f 24/28/32 57/67/32 59/69/32
f 24/28/33 26/30/33 61/71/33
f 29/33/34 64/74/34 60/70/35
f 33/37/36 35/40/36 40/45/36
f 31/35/37 63/80/37 64/74/37
f 58/194/38 71/195/38 69/196/38
f 69/196/38 67/77/38 58/194/38
f 65/75/38 70/197/38 68/198/38
f 68/198/38 66/76/38 65/75/38
f 58/194/38 67/77/38 66/76/38
f 62/72/18 40/45/18 66/78/18
f 63/80/16 70/199/16 65/81/16
f 60/70/14 67/84/14 69/82/14
f 40/45/20 59/69/20 58/68/20
f 62/72/17 68/79/17 70/83/17
f 64/74/15 65/81/15 67/84/15
f 61/71/13 69/82/13 71/85/13
f 72/86/39 154/200/39 73/87/39
f 75/89/1 78/92/1 76/90/1
f 78/92/38 80/94/38 79/93/38
f 80/94/2 82/201/2 81/95/2
f 82/96/3 75/89/3 77/91/3
f 79/93/4 81/95/4 77/98/4
f 83/100/40 155/202/40 84/101/40
f 85/102/41 84/101/41 86/103/41
f 87/104/42 86/103/42 88/105/42
f 86/203/43 84/204/43 155/205/43
f 155/205/43 92/109/43 88/206/43
f 90/107/43 156/207/43 91/108/43
f 91/108/43 88/206/43 92/109/43
f 86/203/43 155/205/43 88/206/43
f 95/112/44 83/208/44 89/209/44
f 85/210/44 87/211/44 83/208/44
f 89/209/44 93/110/44 95/112/44
f 157/212/44 94/111/44 93/110/44
f 83/208/44 87/211/44 89/209/44
f 96/113/1 99/213/1 97/114/1
f 99/116/38 101/214/38 100/117/38
f 101/118/2 158/215/2 102/119/2
f 100/117/4 102/119/4 98/115/4
f 103/120/45 106/123/45 104/121/45
f 106/123/46 108/125/46 107/124/46
f 108/125/2 110/127/2 109/126/2
f 110/127/47 112/129/47 111/128/47
f 112/129/48 114/164/48 113/130/48
f 114/131/49 116/134/49 115/132/49
f 116/134/50 118/136/50 117/135/50
f 118/136/1 121/139/1 119/137/1
f 103/120/51 139/160/51 120/138/52
f 121/139/53 123/141/53 122/140/53
f 123/141/54 103/120/54 105/122/54
f 105/122/55 133/153/55 124/142/55
f 124/216/38 133/217/38 132/218/38
f 132/218/38 127/145/38 124/216/38
f 125/143/38 131/219/38 129/220/38
f 130/221/38 129/220/38 131/219/38
f 128/222/38 126/144/38 125/143/38
f 124/216/38 127/145/38 126/144/38
f 125/143/38 129/220/38 128/222/38
f 122/140/56 124/142/56 126/146/56
f 117/135/57 119/137/57 126/146/57
f 115/132/58 117/135/58 128/147/58
f 113/133/59 115/132/59 129/148/59
f 113/130/60 130/223/60 131/150/60
f 111/128/61 131/150/61 125/151/61
f 105/122/62 104/121/62 132/152/62
f 109/126/63 125/151/63 127/154/63
f 104/121/64 107/124/64 127/154/64
f 134/155/2 137/158/2 135/156/2
f 108/125/65 137/158/65 134/155/65
f 106/123/66 120/138/66 137/158/67
f 103/120/69 123/141/70 138/159/70
f 123/141/71 121/139/72 140/161/72
f 118/136/73 141/162/73 140/161/73
f 116/134/74 142/163/74 141/162/74
f 114/131/75 144/224/75 142/163/75
f 114/164/76 112/129/76 143/165/76
f 112/129/77 110/127/79 134/155/77
f 135/169/3 150/225/3 145/167/3
f 146/226/3 152/227/3 150/225/3
f 145/167/3 148/228/3 136/168/3
f 147/229/3 151/230/3 149/231/3
f 149/231/3 136/168/3 148/228/3
f 150/225/3 152/227/3 145/167/3
f 148/228/3 147/229/3 149/231/3
f 138/159/54 152/177/54 146/170/54
f 141/162/50 142/163/50 147/171/50
f 143/165/47 134/155/47 136/157/47
f 139/160/45 146/170/45 150/174/45
f 141/162/1 148/172/1 145/175/1
f 144/166/48 143/165/48 149/173/48
f 120/138/46 150/174/46 135/156/46
f 140/161/53 145/175/53 152/177/53
f 142/163/49 144/224/49 151/178/49
o Mag_Cube.002
v -0.089029 2.933951 -0.760703
v -0.089029 1.301304 -1.115814
v -0.089029 1.283170 -0.753593
v 0.138329 2.939292 -1.161489
v -0.089029 2.939292 -1.161489
v 0.138329 2.933951 -0.760703
v 0.110239 1.325914 -0.657225
v 0.138329 1.283170 -0.753593
v -0.060939 3.704485 -0.669529
v 0.110239 3.704485 -0.669529
v 0.138329 3.754883 -1.150658
v -0.089029 3.752410 -0.837243
v 0.138329 3.752410 -0.837243
v -0.089029 3.732157 -0.767971
v 0.138329 3.732157 -0.767971
v 0.138329 2.961623 -0.842189
v 0.138329 2.966964 -1.161489
v -0.089029 2.966964 -1.161489
v -0.089029 2.961623 -0.842189
v -0.089029 3.754883 -1.150658
v -0.089029 3.752410 -0.763026
v 0.138329 3.752410 -0.763026
v -0.060939 1.325914 -0.657225
v 0.138329 1.301304 -1.115814
vt 0.832504 0.337653
vt 0.866722 0.059183
vt 0.831819 0.056090
vt 0.836432 0.315214
vt 0.851387 0.264253
vt 0.851387 0.315214
vt 0.832504 0.337653
vt 0.822533 0.063381
vt 0.831819 0.056090
vt 0.862646 0.264253
vt 0.851387 0.337897
vt 0.851387 0.264253
vt 0.852658 0.180430
vt 0.837703 0.171830
vt 0.852658 0.171830
vt 0.867566 0.223086
vt 0.856749 0.233730
vt 0.856749 0.223086
vt 0.844313 0.232814
vt 0.847847 0.242143
vt 0.844313 0.243458
vt 0.840356 0.342373
vt 0.823718 0.469077
vt 0.836432 0.316075
vt 0.851387 0.316075
vt 0.840356 0.342373
vt 0.871123 0.338564
vt 0.839879 0.477252
vt 0.871123 0.343284
vt 0.836432 0.340586
vt 0.851387 0.340586
vt 0.839879 0.477252
vt 0.833204 0.473797
vt 0.846791 0.232242
vt 0.845893 0.221598
vt 0.846791 0.221598
vt 0.871123 0.343284
vt 0.870079 0.477673
vt 0.833204 0.473797
vt 0.832728 0.477252
vt 0.823718 0.469077
vt 0.871123 0.338564
vt 0.854191 0.233730
vt 0.854191 0.223086
vt 0.839550 0.169214
vt 0.850810 0.169214
vt 0.866722 0.059183
vt 0.822533 0.063381
vt 0.836432 0.264253
vt 0.862646 0.337897
vt 0.837703 0.180430
vt 0.867566 0.233730
vt 0.847847 0.234129
vt 0.870079 0.477673
vt 0.832728 0.477252
vt 0.845893 0.232242
vn -1.0000 0.0000 0.0000
vn 0.0000 -0.0279 -0.9996
vn 0.9599 0.0013 0.2804
vn 0.9594 0.0014 0.2820
vn 0.9602 0.0012 0.2793
vn 0.0000 0.0052 1.0000
vn 0.0000 -0.9987 -0.0500
vn 0.0000 1.0000 0.0079
vn 0.0000 1.0000 -0.0000
vn 0.0000 0.9627 0.2706
vn 0.9993 0.0350 0.0119
vn 0.0000 0.0000 -1.0000
vn 0.0000 0.0137 -0.9999
vn 1.0000 0.0000 0.0000
vn 0.0000 -0.2372 0.9715
vn -0.9632 -0.0258 0.2676
vn 0.0000 -0.9141 0.4055
vn -0.9599 0.0013 0.2804
vn -0.9594 0.0014 0.2820
vn -0.9591 0.0015 0.2831
vn 0.9591 0.0015 0.2831
vn 0.9632 -0.0258 0.2676
vn -0.9993 0.0350 0.0119
vn -0.9602 0.0012 0.2793
usemtl None_NONE
s 1
f 159/232/80 160/233/80 161/234/80
f 162/235/81 160/236/81 163/237/81
f 164/238/82 165/239/83 166/240/84
f 167/241/85 165/242/85 168/243/85
f 160/244/86 166/245/86 161/246/86
f 169/247/87 170/248/87 171/249/88
f 172/250/89 168/251/89 173/252/89
f 174/253/90 168/254/90 164/238/90
f 175/255/91 163/237/91 176/256/92
f 177/257/80 163/258/80 159/232/80
f 170/259/80 176/260/80 177/257/80
f 169/261/92 176/256/92 178/262/92
f 171/263/93 173/264/93 174/253/93
f 179/265/94 173/266/94 180/267/94
f 171/263/93 175/268/93 169/269/93
f 170/259/80 172/270/80 179/271/80
f 177/257/95 167/272/95 172/270/95
f 174/253/93 162/273/93 175/268/93
f 171/249/88 179/274/88 180/275/88
f 161/246/96 165/276/96 181/277/96
f 164/238/93 182/278/93 162/273/93
f 159/232/97 181/279/98 167/272/99
f 159/232/80 163/258/80 160/233/80
f 162/235/81 182/280/81 160/236/81
f 164/238/82 168/254/100 165/239/83
f 167/241/85 181/281/85 165/242/85
f 160/244/86 182/282/86 166/245/86
f 169/247/87 178/283/87 170/248/87
f 172/250/89 167/284/89 168/251/89
f 174/253/101 173/264/101 168/254/101
f 175/255/91 162/235/91 163/237/91
f 177/257/80 176/260/80 163/258/80
f 170/259/80 178/285/80 176/260/80
f 169/261/92 175/255/91 176/256/92
f 171/263/93 180/286/93 173/264/93
f 179/265/94 172/287/94 173/266/94
f 171/263/93 174/253/93 175/268/93
f 170/259/80 177/257/80 172/270/80
f 177/257/102 159/232/102 167/272/102
f 174/253/93 164/238/93 162/273/93
f 171/249/88 170/248/87 179/274/88
f 161/246/96 166/245/96 165/276/96
f 164/238/93 166/240/93 182/278/93
f 159/232/97 161/234/103 181/279/98

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 372 B

After

Width:  |  Height:  |  Size: 324 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 370 B

After

Width:  |  Height:  |  Size: 315 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB