tram trom

This commit is contained in:
Bob 2023-05-03 23:10:28 +02:00
parent ec63136436
commit abc4dc0cbf
10 changed files with 517 additions and 8 deletions

View File

@ -11,6 +11,7 @@ import com.hbm.blocks.machine.*;
import com.hbm.blocks.machine.pile.*;
import com.hbm.blocks.machine.rbmk.*;
import com.hbm.blocks.network.*;
import com.hbm.blocks.rail.RailStandardStraight;
import com.hbm.blocks.siege.*;
import com.hbm.blocks.test.*;
import com.hbm.blocks.turret.*;
@ -1085,6 +1086,8 @@ public class ModBlocks {
public static Block rail_highspeed;
public static Block rail_booster;
public static Block rail_large_straight;
public static Block statue_elb;
public static Block statue_elb_g;
public static Block statue_elb_w;
@ -2109,6 +2112,7 @@ public class ModBlocks {
rail_narrow = new RailGeneric().setBlockName("rail_narrow").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_narrow");
rail_highspeed = new RailGeneric().setMaxSpeed(1F).setFlexible(false).setBlockName("rail_highspeed").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_highspeed");
rail_booster = new RailBooster().setBlockName("rail_booster").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_booster");
rail_large_straight = new RailStandardStraight().setBlockName("rail_large_straight").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":block_steel");
crate = new BlockCrate(Material.wood).setBlockName("crate").setStepSound(Block.soundTypeWood).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.consumableTab).setBlockTextureName(RefStrings.MODID + ":crate");
crate_weapon = new BlockCrate(Material.wood).setBlockName("crate_weapon").setStepSound(Block.soundTypeWood).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.consumableTab).setBlockTextureName(RefStrings.MODID + ":crate_weapon");
@ -3326,6 +3330,7 @@ public class ModBlocks {
GameRegistry.registerBlock(rail_narrow, ItemBlockBase.class, rail_narrow.getUnlocalizedName());
GameRegistry.registerBlock(rail_highspeed, ItemBlockBase.class, rail_highspeed.getUnlocalizedName());
GameRegistry.registerBlock(rail_booster, ItemBlockBase.class, rail_booster.getUnlocalizedName());
register(rail_large_straight);
//Crate
GameRegistry.registerBlock(crate, crate.getUnlocalizedName());

View File

@ -15,8 +15,8 @@ import net.minecraftforge.common.util.ForgeDirection;
public class RailStandardStraight extends BlockDummyable implements IRailNTM {
public RailStandardStraight(Material mat) {
super(mat);
public RailStandardStraight() {
super(Material.iron);
}
@Override
@ -24,6 +24,11 @@ public class RailStandardStraight extends BlockDummyable implements IRailNTM {
return null;
}
@Override
public int getRenderType() {
return 0;
}
@Override
public int[] getDimensions() {
return new int[] {0, 0, 2, 2, 0, 0};

View File

@ -14,6 +14,7 @@ import com.hbm.entity.mob.botprime.*;
import com.hbm.entity.mob.siege.*;
import com.hbm.entity.particle.*;
import com.hbm.entity.projectile.*;
import com.hbm.entity.train.TrainCargoTram;
import com.hbm.main.MainRegistry;
import com.hbm.util.Tuple.Quartet;
@ -205,6 +206,8 @@ public class EntityMappings {
addEntity(EntityChemical.class, "entity_chemthrower_splash", 1000);
addEntity(EntityMist.class, "entity_mist", 1000);
addEntity(TrainCargoTram.class, "entity_ntm_cargo_tram", 250, false);
addMob(EntityCreeperNuclear.class, "entity_mob_nuclear_creeper", 0x204131, 0x75CE00);
addMob(EntityCreeperTainted.class, "entity_mob_tainted_creeper", 0x813b9b, 0xd71fdd);
addMob(EntityCreeperPhosgene.class, "entity_mob_phosgene_creeper", 0xE3D398, 0xB8A06B);

View File

@ -75,7 +75,7 @@ public abstract class EntityRailCarBase extends Entity {
anchor = this.getCurentAnchorPos(); //reset origin to new position
Vec3 frontPos = getRelPosAlongRail(anchor, this.getLengthSpan());
Vec3 backPos = getRelPosAlongRail(anchor, -this.getLengthSpan());
Vec3 backPos = getRelPosAlongRail(anchor, this.getLengthSpan());
if(frontPos == null || backPos == null) {
this.derail();
@ -91,7 +91,7 @@ public abstract class EntityRailCarBase extends Entity {
double overshoot = 0;
float yaw = this.rotationYaw;
Vec3 next = null;
Vec3 next = Vec3.createVectorHelper(posX, posY, posZ);
do {
@ -100,7 +100,7 @@ public abstract class EntityRailCarBase extends Entity {
int z = anchor.getZ();
Block block = worldObj.getBlock(x, y, z);
Vec3 rot = Vec3.createVectorHelper(1, 0, 0);
Vec3 rot = Vec3.createVectorHelper(0, 0, 1);
rot.rotateAroundY(yaw);
if(block instanceof IRailNTM) {
@ -127,7 +127,10 @@ public abstract class EntityRailCarBase extends Entity {
}
public float generateYaw(Vec3 front, Vec3 back) {
return 0F; //TODO
double deltaX = front.xCoord - back.xCoord;
double deltaZ = front.zCoord - back.zCoord;
double radians = Math.atan(deltaZ / deltaX);
return (float) MathHelper.wrapAngleTo180_double(radians * 180D / Math.PI - 90);
}
/** Returns the amount of blocks that the train should move per tick */
@ -144,6 +147,8 @@ public abstract class EntityRailCarBase extends Entity {
public void derail() {
isOnRail = false;
this.setDead();
worldObj.createExplosion(this, posX, posY, posZ, 1F, false);
}
@SideOnly(Side.CLIENT)

View File

@ -2,6 +2,8 @@ package com.hbm.entity.train;
import com.hbm.blocks.rail.IRailNTM.TrackGauge;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.DamageSource;
import net.minecraft.util.Vec3;
import net.minecraft.world.World;
@ -22,11 +24,12 @@ public class TrainCargoTram extends EntityRailCarRidable {
public TrainCargoTram(World world) {
super(world);
this.setSize(2F, 1F);
}
@Override
public double getCurrentSpeed() {
return 0;
return this.riddenByEntity instanceof EntityPlayer ? ((EntityPlayer) this.riddenByEntity).moveForward * 0.125D : 0;
}
@Override
@ -41,6 +44,15 @@ public class TrainCargoTram extends EntityRailCarRidable {
@Override
public Vec3 getRiderSeatPosition() {
return Vec3.createVectorHelper(1, 1, 0);
return Vec3.createVectorHelper(0.75, 1.75, 0.75);
}
@Override
public boolean attackEntityFrom(DamageSource p_70097_1_, float p_70097_2_) {
if(!this.worldObj.isRemote && !this.isDead) {
this.setDead();
}
return true;
}
}

View File

@ -60,6 +60,7 @@ import com.hbm.entity.mob.botprime.*;
import com.hbm.entity.mob.siege.*;
import com.hbm.entity.particle.*;
import com.hbm.entity.projectile.*;
import com.hbm.entity.train.*;
import com.hbm.handler.CasingEjector;
import com.hbm.handler.HbmKeybinds;
import com.hbm.handler.ImpactWorldHandler;
@ -681,6 +682,7 @@ public class ClientProxy extends ServerProxy {
RenderingRegistry.registerEntityRenderingHandler(EntityMinecartCrate.class, new RenderMinecart());
RenderingRegistry.registerEntityRenderingHandler(EntityMinecartNTM.class, new RenderNeoCart());
RenderingRegistry.registerEntityRenderingHandler(EntityMagnusCartus.class, new RenderMagnusCartus());
RenderingRegistry.registerEntityRenderingHandler(TrainCargoTram.class, new RenderTrainCargoTram());
//items
RenderingRegistry.registerEntityRenderingHandler(EntityMovingItem.class, new RenderMovingItem());
RenderingRegistry.registerEntityRenderingHandler(EntityMovingPackage.class, new RenderMovingPackage());

View File

@ -127,6 +127,7 @@ import net.minecraftforge.client.event.RenderWorldLastEvent;
import net.minecraftforge.client.event.TextureStitchEvent;
import net.minecraftforge.client.event.sound.PlaySoundEvent17;
import net.minecraftforge.common.ForgeHooks;
import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.event.entity.player.ItemTooltipEvent;
public class ModEventHandlerClient {
@ -200,6 +201,19 @@ public class ModEventHandlerClient {
GL11.glPopMatrix();
Minecraft.getMinecraft().renderEngine.bindTexture(Gui.icons);
}*/
List<String> text = new ArrayList();
text.add("YAW: " + player.rotationYaw);
text.add("PITCH: " + player.rotationPitch);
int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3;
int j = 0;
if(i == 0) j = 2;
if(i == 1) j = 5;
if(i == 2) j = 3;
if(i == 3) j = 4;
ForgeDirection dir = ForgeDirection.getOrientation(j).getOpposite();
text.add("x: " + dir.offsetX + " z: " + dir.offsetZ);
ILookOverlay.printGeneric(event, "DEBUG", 0xffff00, 0x4040000, text);
}
/// HANLDE ANIMATION BUSES ///

View File

@ -1005,6 +1005,7 @@ public class ResourceManager {
public static final IModelCustom cart = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vehicles/cart.obj"));
public static final IModelCustom cart_destroyer = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vehicles/cart_destroyer.obj"));
public static final IModelCustom cart_powder = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vehicles/cart_powder.obj"));
public static final IModelCustom train_cargo_tram = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vehicles/tram.obj"));
////Texture Entities

View File

@ -0,0 +1,37 @@
package com.hbm.render.entity.item;
import org.lwjgl.opengl.GL11;
import com.hbm.main.MainRegistry;
import com.hbm.main.ResourceManager;
import net.minecraft.client.renderer.entity.Render;
import net.minecraft.entity.Entity;
import net.minecraft.util.ResourceLocation;
public class RenderTrainCargoTram extends Render {
@Override
public void doRender(Entity entity, double x, double y, double z, float swing, float interp) {
GL11.glPushMatrix();
GL11.glTranslated(x, y, z);
GL11.glRotated(180 - entity.rotationYaw, 0, 1, 0);
GL11.glRotated(-entity.rotationPitch, 0, 0, 1);
MainRegistry.proxy.displayTooltip("Yaw: " + entity.rotationYaw, 666);
MainRegistry.proxy.displayTooltip("Pitch: " + entity.rotationPitch, 667);
GL11.glDisable(GL11.GL_CULL_FACE);
bindTexture(ResourceManager.universal);
ResourceManager.train_cargo_tram.renderAll();
GL11.glEnable(GL11.GL_CULL_FACE);
GL11.glPopMatrix();
}
@Override
protected ResourceLocation getEntityTexture(Entity entity) {
return ResourceManager.universal;
}
}

View File

@ -0,0 +1,425 @@
# Blender v2.79 (sub 0) OBJ File: 'tram.blend'
# www.blender.org
o Plane
v -1.000000 0.500000 2.500000
v 1.000000 0.500000 2.500000
v -1.000000 0.500000 -2.500000
v 1.000000 0.500000 -2.500000
v -1.000000 0.250000 2.500000
v 1.000000 0.250000 2.500000
v -1.000000 0.250000 -2.500000
v 1.000000 0.250000 -2.500000
v -1.000000 0.000000 2.250000
v 1.000000 0.000000 2.250000
v -1.000000 0.000000 -2.250000
v 1.000000 0.000000 -2.250000
v -0.125000 0.500000 1.000000
v 0.875000 0.500000 1.000000
v -0.125000 1.500000 1.000000
v 0.875000 1.500000 1.000000
v 0.125000 0.500000 2.000000
v -0.125000 0.500000 1.750000
v 0.875000 0.500000 1.750000
v 0.625000 0.500000 2.000000
v -0.125000 1.500000 1.750000
v 0.125000 1.500000 2.000000
v 0.625000 1.500000 2.000000
v 0.875000 1.500000 1.750000
v -0.625000 0.750000 2.437500
v -0.625000 0.750000 2.312500
v 0.625000 0.750000 2.312500
v 0.625000 0.750000 2.437500
v 0.713388 0.713388 2.312500
v 0.713388 0.713388 2.437500
v 0.750000 0.625000 2.312500
v 0.750000 0.625000 2.437500
v 0.713388 0.536612 2.312500
v 0.713388 0.536612 2.437500
v 0.625000 0.500000 2.312500
v 0.625000 0.500000 2.437500
v 0.536612 0.536612 2.312500
v 0.536612 0.536612 2.437500
v 0.500000 0.625000 2.312500
v 0.500000 0.625000 2.437500
v 0.536612 0.713388 2.312500
v 0.536612 0.713388 2.437500
v -0.536612 0.713388 2.312500
v -0.536612 0.713388 2.437500
v -0.500000 0.625000 2.312500
v -0.500000 0.625000 2.437500
v -0.536612 0.536612 2.312500
v -0.536612 0.536612 2.437500
v -0.625000 0.500000 2.312500
v -0.625000 0.500000 2.437500
v -0.713388 0.536612 2.312500
v -0.713388 0.536612 2.437500
v -0.750000 0.625000 2.312500
v -0.750000 0.625000 2.437500
v -0.713388 0.713388 2.312500
v -0.713388 0.713388 2.437500
v 0.375000 0.500000 2.312500
v 0.875000 0.500000 2.312500
v 0.375000 0.500000 2.187500
v 0.875000 0.500000 2.187500
v 0.375000 0.750000 2.187500
v 0.375000 0.750000 2.312500
v 0.875000 0.750000 2.312500
v 0.875000 0.750000 2.187500
v -0.875000 0.500000 2.312500
v -0.375000 0.500000 2.312500
v -0.875000 0.500000 2.187500
v -0.375000 0.500000 2.187500
v -0.875000 0.750000 2.187500
v -0.875000 0.750000 2.312500
v -0.375000 0.750000 2.312500
v -0.375000 0.750000 2.187500
v -0.875000 0.500000 1.875000
v -0.125000 0.500000 1.875000
v -0.875000 0.500000 1.125000
v -0.125000 0.500000 1.125000
v -0.875000 1.000000 1.125000
v -0.875000 1.000000 1.875000
v -0.125000 1.000000 1.875000
v -0.125000 1.000000 1.125000
v -0.750000 0.500000 -2.250000
v 0.750000 0.500000 -2.250000
v -0.750000 0.500000 -1.750000
v 0.750000 0.500000 -1.750000
v -0.750000 1.000000 -2.250000
v 0.750000 1.000000 -2.250000
v -0.750000 1.000000 -1.750000
v 0.750000 1.000000 -1.750000
vt 0.000000 0.833333
vt 0.320000 0.000000
vt 0.320000 0.833333
vt 0.840000 0.333333
vt 0.800000 0.000000
vt 0.840000 0.000000
vt 0.720000 0.833333
vt 0.720000 0.000000
vt 0.800000 0.041667
vt 0.880000 0.333333
vt 0.880000 0.000000
vt 0.920000 0.333333
vt 0.880000 0.000000
vt 0.920000 0.000000
vt 0.320000 0.000000
vt 0.640000 0.750000
vt 0.320000 0.750000
vt 0.320000 0.791666
vt 0.640000 0.791667
vt 0.640000 0.833333
vt 0.640000 0.000000
vt 0.720000 0.041667
vt 0.800000 0.875000
vt 0.880000 0.708333
vt 0.880000 0.875000
vt 0.640000 0.958333
vt 0.480000 0.833333
vt 0.640000 0.833333
vt 0.280000 1.000000
vt 0.160000 1.000000
vt 0.160000 0.833333
vt 0.160000 0.833333
vt 0.000000 1.000000
vt 0.000000 0.833333
vt 0.640000 0.791667
vt 0.480000 0.916667
vt 0.320000 0.958333
vt 0.320000 0.916667
vt 0.320000 0.791667
vt 0.480000 0.791667
vt 0.760000 0.833333
vt 0.800000 0.916666
vt 0.760000 0.916667
vt 0.906131 0.580162
vt 0.880000 0.568887
vt 0.890824 0.541667
vt 0.400000 0.973065
vt 0.420000 0.958333
vt 0.420000 0.973065
vt 0.320000 1.000000
vt 0.340000 0.958333
vt 0.340000 1.000000
vt 0.460000 0.987796
vt 0.480000 0.973065
vt 0.480000 0.987796
vt 0.360000 0.958333
vt 0.340000 0.973065
vt 0.340000 0.958333
vt 0.760000 0.996828
vt 0.780000 0.955161
vt 0.780000 0.996828
vt 0.380000 0.973065
vt 0.400000 0.958333
vt 0.400000 0.973065
vt 0.360000 0.973065
vt 0.340000 0.987796
vt 0.780000 0.996828
vt 0.800000 0.955161
vt 0.800000 0.996828
vt 0.380000 0.987796
vt 0.400000 0.987796
vt 0.380000 0.987796
vt 0.360000 0.973065
vt 0.380000 0.973065
vt 0.940000 0.583333
vt 0.960000 0.666667
vt 0.940000 0.666667
vt 0.440000 0.973065
vt 0.460000 0.958333
vt 0.460000 0.973065
vt 0.380000 0.958333
vt 0.420000 0.987796
vt 0.440000 0.973065
vt 0.440000 0.987796
vt 0.440000 0.987796
vt 0.460000 0.987796
vt 0.916955 0.571129
vt 0.936955 0.556398
vt 0.936955 0.571129
vt 0.770824 0.916666
vt 0.796955 0.927941
vt 0.786131 0.955161
vt 0.420000 0.973065
vt 0.440000 0.958333
vt 0.916955 0.556398
vt 0.936955 0.541667
vt 0.920000 0.250000
vt 0.960000 0.333333
vt 0.920000 0.333333
vt 0.460000 0.973065
vt 0.480000 0.958333
vt 0.400000 0.987796
vt 0.420000 0.987796
vt 0.920000 0.083333
vt 0.960000 0.166667
vt 0.920000 0.166667
vt 0.940000 0.666667
vt 0.920000 0.708333
vt 0.920000 0.666667
vt 0.920000 0.583333
vt 0.940000 0.666667
vt 0.920000 0.666667
vt 0.960000 0.250000
vt 0.920000 0.166667
vt 0.960000 0.166667
vt 0.800000 0.708333
vt 0.920000 0.583333
vt 0.920000 0.708333
vt 0.640000 0.958333
vt 0.760000 0.833333
vt 0.760000 0.958333
vt 0.960000 0.458333
vt 0.880000 0.333333
vt 0.960000 0.333333
vt 0.960000 0.958333
vt 0.880000 0.833333
vt 0.960000 0.833333
vt 0.880000 1.000000
vt 0.800000 0.875000
vt 0.880000 0.875000
vt 0.880000 0.708333
vt 0.960000 0.833333
vt 0.880000 0.833333
vt 1.000000 0.083333
vt 0.920000 0.000000
vt 1.000000 0.000000
vt 0.880000 0.541667
vt 0.960000 0.458333
vt 0.960000 0.541667
vt 0.800000 0.583333
vt 0.880000 0.333333
vt 0.880000 0.583333
vt 0.000000 0.000000
vt 0.800000 0.333333
vt 0.760000 0.000000
vt 0.800000 0.791666
vt 0.760000 0.833333
vt 0.880000 0.333333
vt 0.640000 0.000000
vt 0.680000 0.000000
vt 0.720000 0.791667
vt 0.680000 0.833333
vt 0.800000 0.708333
vt 0.480000 0.958333
vt 0.280000 0.833333
vt 0.320000 0.875000
vt 0.320000 0.958333
vt 0.160000 1.000000
vt 0.480000 0.791667
vt 0.480000 0.958333
vt 0.800000 0.833333
vt 0.916955 0.552942
vt 0.916955 0.568887
vt 0.890824 0.580162
vt 0.880000 0.552942
vt 0.906131 0.541667
vt 0.400000 0.958333
vt 0.320000 0.958333
vt 0.760000 0.955161
vt 0.380000 0.958333
vt 0.360000 0.987796
vt 0.780000 0.955161
vt 0.960000 0.583333
vt 0.440000 0.958333
vt 0.360000 0.958333
vt 0.760000 0.943886
vt 0.760000 0.927941
vt 0.786131 0.916666
vt 0.796955 0.943886
vt 0.770824 0.955161
vt 0.420000 0.958333
vt 0.916955 0.541667
vt 0.960000 0.250000
vt 0.460000 0.958333
vt 0.960000 0.083333
vt 0.940000 0.708333
vt 0.940000 0.583333
vt 0.920000 0.250000
vt 0.800000 0.583333
vt 0.640000 0.833333
vt 0.880000 0.458333
vt 0.880000 0.958333
vt 0.800000 1.000000
vt 0.960000 0.708333
vt 0.920000 0.083333
vt 0.880000 0.458333
vt 0.800000 0.333333
vn 0.0000 1.0000 0.0000
vn 0.0000 -0.7071 -0.7071
vn 1.0000 0.0000 0.0000
vn 0.0000 0.0000 -1.0000
vn 0.0000 0.0000 1.0000
vn 0.0000 -1.0000 0.0000
vn 0.0000 -0.7071 0.7071
vn -1.0000 0.0000 0.0000
vn 0.7071 0.0000 0.7071
vn -0.7071 0.0000 0.7071
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.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
s off
f 2/1/1 3/2/1 1/3/1
f 8/4/2 11/5/2 7/6/2
f 4/7/3 2/8/3 10/9/3
f 4/10/4 7/6/4 3/11/4
f 1/12/5 6/13/5 2/14/5
f 11/15/6 10/16/6 9/17/6
f 5/18/7 10/16/7 6/19/7
f 1/20/8 3/21/8 11/22/8
f 20/23/5 22/24/5 17/25/5
f 14/26/3 24/27/3 19/28/3
f 24/29/1 16/30/1 15/31/1
f 13/32/4 16/33/4 14/34/4
f 24/27/9 20/35/9 19/28/9
f 18/36/10 22/37/10 21/38/10
f 18/36/8 15/39/8 13/40/8
f 58/41/5 62/42/5 57/43/5
f 25/44/5 54/45/5 50/46/5
f 28/47/11 29/48/11 27/49/11
f 65/50/8 69/51/8 67/52/8
f 52/53/12 53/54/12 51/55/12
f 30/56/13 31/57/13 29/58/13
f 57/59/8 61/60/8 59/61/8
f 50/62/14 51/63/14 49/64/14
f 32/65/15 33/66/15 31/57/15
f 60/67/3 63/68/3 58/69/3
f 48/70/16 49/64/16 47/71/16
f 33/72/16 36/73/16 35/74/16
f 63/75/1 61/76/1 62/77/1
f 46/78/15 47/79/15 45/80/15
f 36/73/14 37/81/14 35/74/14
f 56/82/17 26/83/17 55/84/17
f 44/85/13 45/80/13 43/86/13
f 38/87/12 39/88/12 37/89/12
f 28/90/5 40/91/5 36/92/5
f 25/93/11 43/94/11 26/83/11
f 40/95/18 41/96/18 39/88/18
f 59/97/4 64/98/4 60/99/4
f 54/100/18 55/101/18 53/54/18
f 42/102/17 27/49/17 41/103/17
f 66/104/5 70/105/5 65/106/5
f 68/107/3 71/108/3 66/109/3
f 71/110/1 69/111/1 70/112/1
f 67/113/4 72/114/4 68/115/4
f 75/116/6 74/117/6 73/118/6
f 79/119/1 77/120/1 78/121/1
f 76/122/3 79/123/3 74/124/3
f 73/125/8 77/126/8 75/127/8
f 75/128/4 80/129/4 76/130/4
f 74/131/5 78/132/5 73/133/5
f 86/134/3 84/135/3 82/136/3
f 87/137/8 81/138/8 83/139/8
f 85/140/4 82/141/4 81/142/4
f 2/1/1 4/143/1 3/2/1
f 8/4/2 12/144/2 11/5/2
f 2/8/3 6/145/3 10/9/3
f 10/9/3 12/146/3 4/7/3
f 12/146/3 8/147/3 4/7/3
f 4/10/4 8/4/4 7/6/4
f 1/12/5 5/148/5 6/13/5
f 11/15/6 12/149/6 10/16/6
f 5/18/7 9/17/7 10/16/7
f 3/21/8 7/150/8 11/22/8
f 11/22/8 9/151/8 1/20/8
f 9/151/8 5/152/8 1/20/8
f 20/23/5 23/153/5 22/24/5
f 14/26/3 16/154/3 24/27/3
f 15/31/1 21/155/1 24/29/1
f 21/155/1 22/156/1 24/29/1
f 22/156/1 23/157/1 24/29/1
f 13/32/4 15/158/4 16/33/4
f 24/27/9 23/159/9 20/35/9
f 18/36/10 17/160/10 22/37/10
f 18/36/8 21/38/8 15/39/8
f 58/41/5 63/161/5 62/42/5
f 46/162/5 44/163/5 25/44/5
f 25/44/5 56/164/5 54/45/5
f 54/45/5 52/165/5 50/46/5
f 50/46/5 48/166/5 46/162/5
f 46/162/5 25/44/5 50/46/5
f 28/47/11 30/167/11 29/48/11
f 65/50/8 70/168/8 69/51/8
f 52/53/12 54/100/12 53/54/12
f 30/56/13 32/65/13 31/57/13
f 57/59/8 62/169/8 61/60/8
f 50/62/14 52/170/14 51/63/14
f 32/65/15 34/171/15 33/66/15
f 60/67/3 64/172/3 63/68/3
f 48/70/16 50/62/16 49/64/16
f 33/72/16 34/171/16 36/73/16
f 63/75/1 64/173/1 61/76/1
f 46/78/15 48/174/15 47/79/15
f 36/73/14 38/175/14 37/81/14
f 56/82/17 25/93/17 26/83/17
f 44/85/13 46/78/13 45/80/13
f 38/87/12 40/95/12 39/88/12
f 32/176/5 30/177/5 28/90/5
f 28/90/5 42/178/5 40/91/5
f 40/91/5 38/179/5 36/92/5
f 36/92/5 34/180/5 32/176/5
f 32/176/5 28/90/5 36/92/5
f 25/93/11 44/181/11 43/94/11
f 40/95/18 42/182/18 41/96/18
f 59/97/4 61/183/4 64/98/4
f 54/100/18 56/184/18 55/101/18
f 42/102/17 28/47/17 27/49/17
f 66/104/5 71/185/5 70/105/5
f 68/107/3 72/186/3 71/108/3
f 71/110/1 72/187/1 69/111/1
f 67/113/4 69/188/4 72/114/4
f 75/116/6 76/189/6 74/117/6
f 79/119/1 80/190/1 77/120/1
f 76/122/3 80/191/3 79/123/3
f 73/125/8 78/192/8 77/126/8
f 75/128/4 77/193/4 80/129/4
f 74/131/5 79/194/5 78/132/5
f 86/134/3 88/195/3 84/135/3
f 87/137/8 85/196/8 81/138/8
f 85/140/4 86/197/4 82/141/4